S3C2410最小系统设计

上传人:仙*** 文档编号:59872990 上传时间:2022-03-05 格式:DOCX 页数:8 大小:91.72KB
返回 下载 相关 举报
S3C2410最小系统设计_第1页
第1页 / 共8页
S3C2410最小系统设计_第2页
第2页 / 共8页
S3C2410最小系统设计_第3页
第3页 / 共8页
点击查看更多>>
资源描述
题 目: S3C2410X最小系统设计 已知技术参数和设计要求:1、 嵌入式处理器选择S3C2410X处理器;2、 最小系统包括电源、时钟、复位、存储器、JTAG接口3、 JTAG接口选择14针插头4、 存储器容量要求至少16MB的flah和16MB的SDRAM。5、 外部提供5V电源要求完成的主要任务: (包括课程设计工作量及其技术要求,以及说明书撰写等具体要求)1、存储器等主要元器件选择2、电源电路、时钟电路、复位电路、存储器扩展电路、JTAG接口电路3、protel电路图5、不少于3000字的课程设计报告时间安排:20102011学年第1学期1314周指导教师签名: 2010年11月11日教研室主任签名: 年 月 日目录摘要11.S3C2410基本外围电路设计1 1.1系统框图11.2 电源电路11.3 晶振电路21.4 复位电路21.5 JTAG接口21.6SDRAM存储器21.7NAND Flash 存储器31.8 串口电路32.S3C2410启动过程43.简单Boot loader的制作43.1 Boot loader工作原理43.2第一阶段43.3第二阶段53.4程序的下载和调试54.心得体会5参考文献:6S3C2410最小系统设计摘要:介绍了以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了S3C2410的复位电路、电源电路、存储器电路和串口电路等硬件组成。还介绍了在ADS环境下自制的最小Boot loader程序开发和调试方法。关键字:嵌入式;S3C2410;ADS;Boot loaderS3C2410是Samsung公司基于ARM920T内核的嵌入式微处理器。本文以S3C2410为核心,配置了最基本外围电路构成了最小的嵌入式系统,并在ADS上开发了启动程序,完成硬件初始化,配置运行环境,串口调试功能。通过本文可以从底层了解S3C2410的特性和工作原理,并对Boot loader程序会有深入的认识,为嵌入式系统的学习做铺垫。1.S3C2410基本外围电路设计S3C2410 1.1系统框图复位电路串口电路电源、晶振SDRAMNand FlashJTAG图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.3V电压从5V用AMS1117-3.3转换得到如图2所示;1.8V从3.3V通过MIC5207-1.8转换得到如图3所示。图3 3.3V转1.8VFig.3 3.3V to 1.8V图2 5V转3.3VFig.2 5V to 3.3V1.3 晶振电路S3C2410内部有时钟管理模块,有2个锁相环,其中MPLL产生CPU主频FCLK、AHB总线外设时钟HCLK和APB总线外设时钟PCLK;UPLL产生USB模块的时钟。OM3、OM2都接地时主时钟源和USB模块时钟源都由外接晶振产生1。在XTIpll和XTOpll之间连接主晶振,可以选择12MHz晶振,通过内部寄存器的设置产生不同频率的FCLK、HCLK和PCLK;在XTIrtc和XTOrtc上需要接32.768 kHz的晶振供RTC模块使用。同时在MPLLCAP和UPLLCAP上也要外接5pF的环路滤波电容。晶振电路如图4所示。图4 晶振电路Fig.4 Crystal Circuit1.4 复位电路图5 复位电路Fig.5 Reset CircuitS3C2410的J12引脚为nRESET复位引脚,nRESET上给4个FCLK时间的低电平后就可以复位。可以设计如图5所示的复位电路,其中上电复位是靠RC电路特性完成,开关二极管1N4148在手动复位时对电容起快速放电的作用,因此可以把复位电平快速拉到0V。反响门74HC14可以起到延时作用,保证有足够复位时间。1.5 JTAG接口S3C2410有标准的JTAG接口,TCK(H6)为测试时钟输入;TDI(J1)为测试数据输入;TDO(J5)为测试数据输出;TMS(J3)为测试模式选择,TMS用来设置JTAG接口处于某种特定的测试模式;nTRST(H5)为测试复位,输入引脚,低电平有效。其中nTRST、TMS、TCK、TDI需要接10K的上拉电阻。通过JTAG口可以完成芯片测试或在线编程。1.6SDRAM存储器1S3C2410有32根数据线和27根地址线,因此地址线的寻址范围为128M;但是S3C2410还有8根存储器芯片片选信号线nGCS0nGCS7,因此总的寻址空间为128M*8=1G。Nand Flash启动模式下复位时S3C2410的存储器映射如图6所示。如当访问物理地址0x080000000x10000000内的地址则nGCS1自动为低电平,以此类推。通过图6可知SDRAM只能连接在nGCS6和nGCS7片选引脚上。S3C2410提供了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位RA0RA12,列地址9位CA0CA8,行和列地址是复用的。HY57V561620包括4个块,通过BA0、BA1的组合选择块。HY57V561620是16位存储器,因此数据线为DQ0DQ15,还有CS片选,CLK时钟,CKE时钟使能,RAS行锁存,CAS列锁存, WE写使能等引脚。图7表示了HY57V561620和S3C2410的连接方法,其中BA0、BA1需要连接ADD24和ADDR25,通过S3C2410的说明可知,因为内存总大小是64M因此块选择信号必须使用ADDR24和ADDR25。因为HY57V561620的行列地址复用,因此S3C2410必须知道行列地址各多少位,这个需要在BANKCON6寄存器的SCAN字段指定。图7 SDRAM连接图Fig.7 SDRAMConnection图6 存储器映射图Fig.6 Map of Memory1.7NAND Flash 存储器2S3C2410内部有NAND Flash控制器,支持从NADN Flash启动。图8是K9F1208 64M Flash芯片和S3C2410的连接方式。S3C2410采用一组内部寄存器来完成NAND Flash的操作。图9 UART连接图Fig.9 UART Connection图8 NAND Flash连接图Fig.8NAND Flash Connection1.8 串口电路3S3C2410的UART提供了三个同步串行IO口,图9是COM0的连接方式。串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCON0 (UART channel 0 control register )寄存器中设置。UTXH0 (UART channel 0 transmit buffer register )把要发送的数据写入此寄存器。URXH0 (UART channel 0 receive buffer register )读此寄存器获得串口接收的数据。串口一般可以用作程序运行信息的输出和程序调试。2.S3C2410启动过程1当S3C2410的OM0、OM1引脚接低电平时S3C2410就从NADN Flash启动。在NAND Flash启动模式下上电后NAND Flash控制器自动将NAND Flash的最前面的4k区域拷贝到所谓的“steppingstone”里面。这一过程完全由硬件自动实现。“steppingstone”实际上是S3C2410内部的一个SRAM,因为NADN Flash不支持程序片内运行,因此必须把NAND Flash内的指令拷贝到SRAM或SDRAM中才可以运行。在拷贝完前4k代码后,NAND Flash控制器自动将“steppingstone”映射到arm地址空间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工作原理4图10 流程图Fig.10 Flow ChartBoot loader是引导操作系统的程序,也是开发阶段目标板和PC机的通信工具。Boot loader一般都放在NAND Flash 的起始位置,这样上电后Boot loader的第一个指令被自动执行。由于 Boot Loader 的实现依赖于 CPU 的体系结构,因此大多数 Boot Loader 都分为 stage1 和 stage2 两大部分。依赖于 CPU 体系结构的代码,比如设备初始化代码等,通常都放在 stage1 中,而且通常都用汇编语言来实现,以达到短小精悍的目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。阶段1和阶段2的工作流程如图10。3.2第一阶段第一阶段主要工作是硬件设备初始化,加载 Boot Loader的stage2,准备RAM 空间;拷贝 Boot Loader的stage2到RAM空间中;设置好堆栈;跳转到 stage2 的 C 入口点。下面介绍ADS环境下开始制作简单Bootloader的方法。先建立工程命名为myBoot,定义出程序的基本结构如下:AREA myBoot, CODE, READONLY ;声明一个代码段,名称为myBootENTRY ;程序入口声明,程序的开始执行位置 _ENTRY ;入口名称为_ENTRY ;中间写主要代码 END ;程序结束在myBoot工程的Settings中做一些设置。首先设置Target-Target Setting- post Link中选择ARM fromELF,表示在链接生成映像文件后,再调用FromELF命令映像文件转换成其他格式的文件。Linker-Arm Linker-Output-Link Type选Simple 简单连接方式;RO Base设置为0x30008000 代码段连接地址。实际上RO BASE指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的话运行地址和链接地址保持一致时程序才能正常运行,这种代码叫做与位置有关代码。如果连接时没有涉及到绝对地址那么连接地址和运行地址不一样程序也可以正常运行,这种代码叫做位置无关的代码。但是Bootloader一开始时被加载在0x00位置开始运行,这会不会和RO Base设置地址冲突呢?实际上是会冲突的,解决冲突的办法就采用位置无关代码(PIC)。实际上Boodloader的绝大部分代码最后想让它运行在0x30000800开始的SDRAM里,只有第一阶段代码运行在0x00开始的SRAM里,因此把阶段1用位置无关的汇编代码实现整个程序就正常运行了。RW Base是数据段的开始位置,如果不指定数据段就紧接着代码段放置。如果自己设置的话程序里还需要自己处理加载数据段到实际数据段RW Base的搬移操作,否则具有初始值的变量的初始值不起作用。在Options-Image entry point指定代码的入口_ENTRY。程序的第一步要设置中断向量表。S3C2410有7种中断,中断入口地址在0x00开始处,每个中断占用4可字节,正好可以放一个跳转指令。程序如下:bResetHandler ;复位中断,也是整个程序的入口,b指令是根据当前PC进行跳转,因此可以实现位置无关代码5。在ResetHandler中需要做的工作有:关闭看门狗、关闭所有中断、设置主频、初始化SDRAM、设置中断堆栈,最后搬移代码到SDRAM中。最后一步跳转到C程序的入口函数main中。3.3第二阶段6这阶段代码用C语言编写,从main函数开始。这个阶段的主要任务有串口初始化、MMU的初始化、USB初始化、以太网初始化等。Bootloader工作时显示屏可能还没有工作,或者目标板根本就没有显示屏或键盘等设备,因此人机交互一般通过串口来实现。因此必须初始化串口,通过串口打印运行信息或者接收用户输入。用串口连接到PC上,用专用或通用的串口软件来接收信息或输入信息。USB口、以太网可以实现快速的文件传输,其他程序或操作系统内核可以通过USB或以太网口快速的下载到目标板上。3.4程序的下载和调试编译工程后会得到一个bin文件,这就是在目标板上运行最后文件。Bootloader一般用JTAG口来烧写,因为Bootloader之前板子上其他任何接口(串口、USB、以太网)都是不可用的,Bootloader是板子上运行的第一个程序。PC机上通过JTAG口烧写文件可以用sjf2410.exe这个程序,运行方式如下sjf2410 /f:myBoot.bin。如果JTAG口连接正常的话,会发现CPU,然后根据提示选择相应的位置烧写就可以了。烧写完复位板子后可以在PC上通过串口看到Bootloader的运行情况。4.心得体会本次课程设计对S3C2410工作必须的外围电路,以及ADS下S3C2410的程序设计方法做了详细的介绍,有不足的地方请老师指正。参考文献:1 SAMSUNG ELECTRONICS. S3C2410 MICROPROCESSOR data sheet. 2003.2 陈文智.嵌入式系统开发原理与实践M.北京:清华大学出版社,2005.3 毕卫红,王帅,郝科卿等.ADS环境下基于S3C2410串口应用程序的开发J.电子技术,2009,8:73744 裴科,张刚,靳荣浩. 具有多重下载接口的Bootloader设计J.计算机应用研究,2007,24(12):2103605 韦东山.嵌入式Linux应用开发完全手册M北京:人民邮电出版社,2008.6 许信顺,贾智平.嵌入式Linux应用编程M, 北京:机械工业出版社,2008.S3C2410 Minimum System Design FAN Daoerji LIU Zheng-hong LI Dong(Department of Electronic Engineering, College of Electronic Information Engineering,NeiMongol University,Hohhot 010021)(Beijing Vocational College of Electronic Science,Beijing 100070 )Abstract: This article introduces a method of building minimum embedded system which base on S3C2410,and analysis reset circuit, power supply circuits, memory circuit and com port circuit. It also introduces the smallest boot loader program development and debugging method on ADS environment. Key words: Embedded System;S3C2410;ADS;Boot loader6
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!