S3C2410最小系统设计.docx

上传人:rrsccc 文档编号:9907693 上传时间:2021-04-03 格式:DOCX 页数:10 大小:74.38KB
返回 下载 相关 举报
S3C2410最小系统设计.docx_第1页
第1页 / 共10页
S3C2410最小系统设计.docx_第2页
第2页 / 共10页
S3C2410最小系统设计.docx_第3页
第3页 / 共10页
S3C2410最小系统设计.docx_第4页
第4页 / 共10页
亲,该文档总共10页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《S3C2410最小系统设计.docx》由会员分享,可在线阅读,更多相关《S3C2410最小系统设计.docx(10页珍藏版)》请在三一文库上搜索。

1、题目:S3C2410X最小系统设计已知技术参数和设计要求:1、嵌入式处理器选择S3C2410X处理器;2、最小系统包括电源、时钟、复位、存储器、JTAG接口3、 JTAG接口选择 14 针插头4、存储器容量要求至少16MB的 flah和 16MB的 SDRAM。5、外部提供 5V电源要求完成的主要任务 : (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、存储器等主要元器件选择2、电源电路、时钟电路、复位电路、存储器扩展电路、JTAG接口电路3、protel电路图5、不少于3000 字的课程设计报告时间安排: 20102011 学年第 1 学期 13 14 周指导教师签名:201

2、0年 11月11日教研室主任签名:年月日目录摘要11.S3C2410 基本外围电路设计11.1系统框图11.2电源电路 .11.3晶振电路 .21.4复位电路 .21.5 JTAG 接口21.6SDRAM存储器21.7NAND Flash存储器 .31.8串口电路 .32.S3C2410 启动过程33. 简单 Boot loader的制作 .43.1 Boot loader工作原理43.2 第一阶段43.3 第二阶段53.4 程序的下载和调试54. 心得体会5参考文献 :5S3C2410最小系统设计摘要 :介绍了以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了的复位电路、电源电

3、路、存储器电路和串口电路等硬件组成。还介绍了在下自制的最小Boot loader程序开发和调试方法。S3C2410ADS环境关键字: 嵌入式;S3C2410; ADS; Boot loaderS3C2410是 Samsung 公司基于ARM920T内核的嵌入式微处理器。本文以S3C2410 为核心,配置了最基本外围电路构成了最小的嵌入式系统,并在ADS上开发了启动程序,完成硬件初始化,配置运行环境,串口调试功能。通过本文可以从底层了解S3C2410的特性和工作原理,并对Boot loader程序会有深入的认识,为嵌入式系统的学习做铺垫。1.S3C2410 基本外围电路设计1.1系统框图电源、晶

4、振串口电路S3C2410JTAGSDRAM复位电路Nand Flash图 1系统框图Fig.1 Diagram of System1.2电源电路S3C2410工作时内核需要1.8V 电压, I/O 端口和外设需要3.3V 电压 1 。VDDi/VDDiarm引脚是供 S3C2410内核的 1.8V 电压; VDDalive 引脚是功能复位和端口状态寄存器电压。 M12引脚RTCVDD是 RTC模块的 1.8V 电压,用电池供电保证系统的掉电后保持实时时钟。 VDDOP引脚是 I/O 端口 3.3V 电压; VDDMOP引脚是存储器 I/O 端口电压;还有一系列 VSS引脚需要接到电源地上。 3

5、.3V 电压从 5V用 AMS1117-3.3 转换得到如图 2所示; 1.8V 从 3.3V 通过 MIC5207-1.8 转换得到如图3所示。图 25V 转 3.3V图 33.3V 转 1.8VFig.2 5V to 3.3VFig.3 3.3V to 1.8V1.3 晶振电路S3C2410 内部有时钟管理模块,有2 个锁相环,其中 MPLL产生 CPU主频 FCLK、 AHB总线外设时钟HCLK和 APB总线外设时钟PCLK;UPLL产生 USB模块的时钟。 OM3、OM2都接地时主时钟源和USB模块时钟源都由外接晶振产生1 。在 XTIpll和 XTOpll之间连接主晶振,可以选择12

6、MHz晶振,通过内部寄存器的设置产生不同频率的FCLK、 HCLK和 PCLK;在 XTIrtc 和 XTOrtc 上需要接32.768 kHz 的晶振供RTC模块使用。同时在MPLLCAP和UPLLCAP上也要外接 5pF 的环路滤波电容。晶振电路如图4 所示。C1C3XTIpllXTIrtcC5MPLL CAP5pF15pFY1R115pFY212MHz1M32.768KHzC2C4XTOpllXTOrtcC6UPL LCAP5pF15pF15pF图 4晶振电路Fig.4 Crystal Circuit1.4复位电路S3C2410的 J12 引脚为 nRESET复位引脚, nRESET上给

7、 4 个 FCLK时间的低电平后就可以复位。 可以设计如图5 所示的复位电路,其中上电复位是靠RC电路特性完成, 开关二极管 1N4148 在手动复位时对电容起快速放电的作用,因此可以把复位电平快速拉到 0V。反响门 74HC14可以起到延时作用,保证有足够复位时间。1.5 JTAG接口图5复位电路S3C2410有标准的JTAG接口, TCK( H6)为测试时钟输入;TDI(J1)为测试数据输入;Fig.5Reset CircuitTDO(J5)为测试数据输出;TMS(J3)为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;nTRST( H5)为测试复位,输入引脚,低电平有效。

8、其中nTRST、 TMS、TCK、 TDI 需要接 10K 的上拉电阻。通过JTAG口可以完成芯片测试或在线编程。1.6SDRAM存储器1S3C2410有 32 根数据线和27 根地址线, 因此地址线的寻址范围为128M;但是 S3C2410还有 8 根存储器芯片片选信号线nGCS0 nGCS7,因此总的寻址空间为128M*8=1G。 Nand Flash启动模式下复位时S3C2410的存储器映射如图6 所示。如当访问物理地址0x08000000 0x10000000 内的地址则nGCS1自动为低电平, 以此类推。通过图 6 可知 SDRAM只能连接在nGCS6和 nGCS7片选引脚上。 S3

9、C2410提供了 SDRAM的接口,其中包括 nSRAS:行信号锁存; nSCAS:列信号锁存; nSCS1:0(就是 nGCS6:7 ):片选信号; DQM3:0 :数据屏蔽; SCLK1:0 :时钟; SCKE:时钟有效;nBE3:0 :高 / 低字节有效; nWBE3:0 :写有效。下面以 2 片 HY57V561620 为例介绍 SDRAM和 S3C2410的连接方法。 HY57V561620是 4 块 16 位 32M的 SDRAM存储器, 用 2 片可以构成32 位的 64M存储器。 HY57V561620的行地址13 位 RA0 RA12,列地址 9 位 CA0 CA8,行和列地

10、址是复用的。HY57V561620包括 4 个块,通过 BA0、BA1的组合选择块。 HY57V561620是 16 位存储器,因此数据线为DQ0 DQ15,还有 CS片选, CLK时钟,CKE时钟使能, RAS行锁存, CAS列锁存, WE 写使能等引脚。 图 7 表示了 HY57V561620和 S3C2410的连接方法,其中 BA0、 BA1 需要连接 ADD24和 ADDR25,通过 S3C2410 的说明可知,因为内存总大小是64M因此块选择信号必须使用ADDR24和 ADDR25。因为 HY57V561620的行列地址复用, 因此 S3C2410必须知道行列地址各多少位, 这个需要

11、在 BANKCON6寄存器的 SCAN字段指定。HY57V561620HY57V561620ADDR2-ADDR14A0-A12LDQMnWBE0ADDR2-ADDR14A0-A12LDQMnWBE0nWBE1nWBE1UDQMUDQMDATA0-DATA15nWEDATA16-DATA31nWED0-D15WED0-D15WEADDR24SCLK0ADDR24SCLK0BA0CLKBA0CLKADDR25SCKEADDR25SCKEBA1CKEBA1CKEnSRASnGCS6nSRASnGCS6RASCSRASCSnSCRAnSCRA1.7NCASVDD/VSSCASVDD/VSSANDFl

12、ash存储器 2S3C2410内部有 NANDFlash 控制器,支持从 NADNFlash 启动。图 8 是 K9F1208 64M Flash 芯片和 S3C2410的连接方式。 S3C2410采用一组内部寄存器来完成 NAND Flash 的操作。图 8NAND Flash 连接图图 9 UART 连接图Fig.8NAND Flash ConnectionFig.9 UART Connection1.8 串口电路 3S3C2410 的 UART提供了三个同步串行 IO 口,图9 是 COM0的连接方式。串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCON0 (UART c

13、hannel 0 controlregister ) 寄存器中设置。 UTXH0 (UART channel 0 transmit buffer register )把要发送的数据写入此寄存器。 URXH0 (UARTchannel 0 receive buffer register )读此寄存器获得串口接收的数据。串口一般可以用作程序运行信息的输出和程序调试。2.S3C2410 启动过程 1图 7 Fig.7 S当 S3C2410的 OM0、OM1引脚接低电平时 S3C2410就从 NADNFlash启动模式下上电后NAND Flash 控制器自动将开始NAND Flash 的最前面的 4k

14、 区域拷贝到所谓的“steppingstone”里面。这一过程完全由硬件设置中断向量表启动。在 NANDFlash开始是否启动加载自动实现。“steppingstone”实际上是S3C2410关闭看门狗NY内部的一个 SRAM,因为 NADN Flash 不支持程序片内运行, 因此必须把 NANDFlash 内的指令关闭中断拷贝到 SRAM或 SDRAM中才可以运行。 在拷贝完初始化 SDRAM前 4k 代 码 后 ,NAND Flash 控 制 器 自 动 将设置堆栈“ steppingstone ” 映 射 到 arm 地 址 空 间NandFlash拷贝跳转 main结束初始化 MMU初

15、始化串口加载操作系统初始化网口初始化 USB处理用户命令结束0x00000000 开始的前4k 区域。在映射过程完成后NAND Flash 控制器将pc 指针直接指向arm 地 址空 间的0x00000000 位 置 , 准备 开始执行 “ steppingstone”上的代码 。而“steppingstone”上从 NAND Flash 拷贝过来的4k 代码 , 是程序员写的boot loader 的前4k 代码。 boot loader之前写好 , 并已经被烧写到NAND Flash 的 0x00000000 开始区域。3. 简单 Boot loader的制作3.1 Boot loader

16、工作原理 4Boot loader是引导操作系统的程序,也是开发阶段目标板和PC机的通信工具。 Bootloader 一般都放在 NAND Flash 的起始位置,这样上电后Boot loader的第一个指令被自动执行。由于Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数Boot Loader 都分为 stage1和 stage2 两大部分。依赖于 CPU 体系结构的代码, 比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。 而 stage2则通常用 C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移

17、植性。阶段1 和阶段 2 的工作流程如图 10。3.2 第一阶段图 10流程图第一阶段主要工作是硬件设备初始化,加Fig.10Flow Chart载 Boot Loader 的 stage2 ,准备 RAM空间;拷贝 Boot Loader的 stage2 到 RAM空间中;设置好堆栈;跳转到stage2的 C 入口点。下面介绍 ADS环境下开始制作简单Bootloader的方法。先建立工程命名为myBoot,定义出程序的基本结构如下:AREAmyBoot, CODE, READONLY ;声明一个代码段,名称为myBootENTRY;程序入口声明,程序的开始执行位置_ENTRY;入口名称为

18、_ENTRY ;中间写主要代码END;程序结束在 myBoot 工程的 Settings中做一些设置。首先设置Target-Target Setting-post Link 中选择 ARM fromELF ,表示在链接生成映像文件后,再调用FromELF命令映像文件转换成其他格式的文件。 Linker-Arm Linker-Output-Link Type选 Simple 简单连接方式; ROBase 设置为 0x30008000 代码段连接地址。实际上ROBASE指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的话运行地址和链接地址保持一致时程序才

19、能正常运行,这种代码叫做与位置有关代码。如果连接时没有涉及到绝对地址那么连接地址和运行地址不一样程序也可以正常运行,这种代码叫做位置无关的代码。但是Bootloader 一开始时被加载在 0x00位置开始运行,这会不会和 RO Base 设置地址冲突呢?实际上是会冲突的,解决冲突的办法就采用位置无关代码( PIC)。实际上 Boodloader的绝大部分代码最后想让它运行在0x30000800开始的SDRAM里,只有第一阶段代码运行在0x00 开始的 SRAM里,因此把阶段1 用位置无关的汇编代码实现整个程序就正常运行了。RW Base 是数据段的开始位置,如果不指定数据段就紧接着代码段放置。

20、 如果自己设置的话程序里还需要自己处理加载数据段到实际数据段RWBase 的搬移操作,否则具有初始值的变量的初始值不起作用。在Options-Image entrypoint 指定代码的入口 _ENTRY。程序的第一步要设置中断向量表。 S3C2410有 7 种中断,中断入口地址在 0x00开始处,每个中断占用4 可字节,正好可以放一个跳转指令。程序如下:b ResetHandler ; 复位中断, 也是整个程序的入口, b 指令是根据当前 PC进行跳转,因此可以实现位置无关代码5 。在 ResetHandler中需要做的工作有:关闭看门狗、关闭所有中断、设置主频、初始化SDRAM、设置中断堆

21、栈,最后搬移代码到SDRAM中。最后一步跳转到 C 程序的入口函数main 中。3.3 第二阶段 6这阶段代码用 C语言编写,从 main 函数开始。这个阶段的主要任务有串口初始化、MMU的初始化、 USB初始化、以太网初始化等。 Bootloader 工作时显示屏可能还没有工作,或者目标板根本就没有显示屏或键盘等设备,因此人机交互一般通过串口来实现。因此必须初始化串口, 通过串口打印运行信息或者接收用户输入。用串口连接到PC上,用专用或通用的串口软件来接收信息或输入信息。USB 口、以太网可以实现快速的文件传输,其他程序或操作系统内核可以通过USB或以太网口快速的下载到目标板上。3.4 程序

22、的下载和调试编译工程后会得到一个bin 文件,这就是在目标板上运行最后文件。Bootloader一般用 JTAG口来烧写,因为Bootloader之前板子上其他任何接口(串口、USB、以太网)都是不可用的, Bootloader是板子上运行的第一个程序。PC机上通过 JTAG口烧写文件可以用 sjf2410.exe这个程序,运行方式如下sjf2410/f:myBoot.bin。如果 JTAG口连接正常的话,会发现CPU,然后根据提示选择相应的位置烧写就可以了。烧写完复位板子后可以在 PC上通过串口看到Bootloader的运行情况。4. 心得体会本次课程设计对 S3C2410工作必须的外围电路

23、,以及 ADS下 S3C2410的程序设计方法做了详细的介绍,有不足的地方请老师指正。参考文献 :1 SAMSUNG ELECTRONICS. S3C2410 MICROPROCESSOR data sheet. 2003.2 陈文智 . 嵌入式系统开发原理与实践 M. 北京:清华大学出版社, 2005.3 毕卫红 , 王帅,郝科卿等 .ADS 环境下基于 S3C2410串口应用程序的开发 J. 电子技术,2009, 8: 73 744裴科,张刚,靳荣浩.具有多重下载接口的Bootloader 设计 J. 计算机应用研究 ,2007,24(12):210 3605韦东山 . 嵌入式 Linux

24、 应用开发完全手册M 北京:人民邮电出版社,2008.6许信顺,贾智平 . 嵌入式 Linux 应用编程 M, 北京:机械工业出版社,2008.S3C2410 Minimum System DesignFAN Daoerji LIU Zheng-hong LI Dong(Department of ElectronicEngineering,Collegeof ElectronicInformationEngineering,NeiMongol University,Hohhot 010021)(Beijing Vocational College of Electronic Science,

25、Beijing100070)Abstract: This article introduces a method of building minimum embedded systemwhich base on S3C2410,and analysis reset circuit, power supply circuits, memorycircuitand com port circuit.It also introduces thesmallest bootloader programdevelopment and debugging method on ADS environment.Key words : Embedded System; S3C2410;ADS; Boot loader

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1