ImageVerifierCode 换一换
格式:DOCX , 页数:10 ,大小:144.69KB ,
资源ID:9946457      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/9946457.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(S3C2410最小系统设计说明.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

S3C2410最小系统设计说明.docx

1、S3C2410最小系统设计说明题 目: 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周指导教

2、师签名: 2010年11月11日教研室主任签名: 年 月 日 S3C2410最小系统设计摘要:介绍了以嵌入式芯片S3C2410为核心的最小嵌入式系统构建方法,给出了S3C2410的复位电路、电源电路、存储器电路和串口电路等硬件组成。还介绍了在ADS环境下自制的最小Boot loader程序开发和调试方法。关键字:嵌入式;S3C2410;ADS;Boot loaderS3C2410是Samsung公司基于ARM920T内核的嵌入式微处理器。本文以S3C2410为核心,配置了最基本外围电路构成了最小的嵌入式系统,并在ADS上开发了启动程序,完成硬件初始化,配置运行环境,串口调试功能。通过本文可以从

3、底层了解S3C2410的特性和工作原理,并对Boot loader程序会有深入的认识,为嵌入式系统的学习做铺垫。1.S3C2410基本外围电路设计1.1系统框图1.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

4、用AMS1117-3.3转换得到如图2所示;1.8V从3.3V通过MIC5207-1.8转换得到如图3所示。1.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和UP

5、LLCAP上也要外接5pF的环路滤波电容。晶振电路如图4所示。图4 晶振电路Fig.4 Crystal Circuit1.4 复位电路S3C2410的J12引脚为nRESET复位引脚,nRESET上给4个FCLK时间的低电平后就可以复位。可以设计如图5所示的复位电路,其中上电复位是靠RC电路特性完成,开关二极管1N4148在手动复位时对电容起快速放电的作用,因此可以把复位电平快速拉到0V。反响门74HC14可以起到延时作用,保证有足够复位时间。1.5 JTAG接口S3C2410有标准的JTAG接口,TCK(H6)为测试时钟输入;TDI(J1)为测试数据输入;TDO(J5)为测试数据输出;TMS

6、(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自动为低电平,

7、以此类推。通过图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,行和列地址是

8、复用的。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字段指定。1.7NAND F

9、lash 存储器2S3C2410内部有NAND Flash控制器,支持从NADN Flash启动。图8是K9F1208 64M Flash芯片和S3C2410的连接方式。S3C2410采用一组内部寄存器来完成NAND Flash的操作。1.8 串口电路3S3C2410的UART提供了三个同步串行IO口,图9是COM0的连接方式。串口数据的收发有查询方式、中断方式和DMA方式等,这些可以在UCON0 (UART channel 0 control register )寄存器中设置。UTXH0 (UART channel 0 transmit buffer register )把要发送的数据写入此

10、寄存器。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不支持程序片内运行,因此

11、必须把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.简

12、单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 中,而且通常都用汇编语言来实现,以达到短小精悍的

13、目的。而 stage2 则通常用C语言来实现,这样可以实现给复杂的功能,而且代码会具有更好的可读性和可移植性。阶段1和阶段2的工作流程如图10。3.2第一阶段第一阶段主要工作是硬件设备初始化,加载 Boot Loader的stage2,准备RAM 空间;拷贝 Boot Loader的stage2到RAM空间中;设置好堆栈;跳转到 stage2 的 C 入口点。下面介绍ADS环境下开始制作简单Bootloader的方法。先建立工程命名为myBoot,定义出程序的基本结构如下: AREA myBoot, CODE, READONLY ;声明一个代码段,名称为myBoot ENTRY ;程序入口声明

14、,程序的开始执行位置 _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指定了程序的静态连接地址。程序真正被执行时所在的内存地址叫做运行地址。如果连接时用到绝对地址的

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

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

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

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

19、,有不足的地方请老师指正。参考文献: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, 北

20、京:机械工业出版社,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

21、 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 loader

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1