《嵌入式讲座04-arm系统硬件设计》由会员分享,可在线阅读,更多相关《嵌入式讲座04-arm系统硬件设计(106页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统设计,彭刚 ,1,3,2,4,5,硬件系统的调试,6,7,ARM嵌入式系统硬件设计,ARM9系统开发举例,嵌入式系统开发步骤,印刷电路板的设计,硬件抗干扰经验,ARM7系统开发举例,嵌入式系统软硬件框架,嵌入式系统软硬件框架,串口、并口、USB、以太网等,LED、LCD、触摸屏、鼠标、键盘等,Linux、uCLinux、uC/OS-II等,嵌入式系统的开发步骤,嵌入式系统的开发步骤,系统需求分析:确定设计任务和目标,并提炼出设计规格说明书,作为正式设计指导和验收的标准。系统的需求一般分功能性需求和非功能性需求两方面。功能性需求是系统的基本功能,如输入输出信号、操作方式等;非功能需求包
2、括系统性能、成本、功耗、体积、重量等因素。,体系结构设计:描述系统如何实现所述的功能和非功能需求,包括对硬件、软件和执行装置的功能划分以及系统的软件、硬件选型等。一个好的体系结构是设计成功与否的关键。,嵌入式系统的开发步骤,硬件/软件协同设计:基于体系结构,对系统的软件、硬件进行详细设计。为了缩短产品开发周期,设计往往是并行的。,系统集成:把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进单元设计过程中的错误。,系统测试:对设计好的系统进行测试,看其是否满足规格说明书中给定的功能要求。,系统硬件组成,采用三星公司生产的S3C44B0(ARM7),分析某个ARM嵌入式系统的硬件设计步骤
3、、实现细节以及调试技巧等。,硬件配置,CPU: S3C44B0X,Arm7TDMI,工作频率66MHz,FALSH: 4Mbytes Flash(1X2MX16位),SDRAM: 8Mbytes SDRAM(1X4MX16位),6英寸, 320240256色LCD显示器 + 触摸屏,键盘,1个10M以太网口 1个USB 1.1接口,2个RS-232C串行接口 14针JTAG接口,4个可编程的LED指示灯 1个七段数码显示管 蜂鸣器,2个外部中断测试按钮,IIS音频接口,立体声录、放音,1个I2C接口的EEPROM,S3C44B0X微处理器体系结构框图,S3C44B0X微处理器管脚定义图,S3C
4、44B0X片上资源,ARM7TDMI核、工作频率66MHz;,8KB Cache,外部存储器控制器;,LCD控制器;,4个DMA通道;,2通道UART、1个多主I2C总线控制器、1个I2S总线控制器;,5通道PWM定时器及一个内部定时器;,71个通用I/O口;,8个外部中断源;,8通道10位ADC;,实时时钟等。,S3C44B0X特性,内核:2.5V I/O : 3.0 V 到 3.6 V,最高为66MHz,S3C44B0X芯片及引脚分析,S3C44B0X共有160只引脚,采用LQFP封装,具有大量的电源和接地引脚,以及地址总线、数据总线和通用I/O口,以及其他的专用模块如UART、IIC等接
5、口,在硬件系统的设计中,应当注意芯片引脚的类型, S3C44B0X的引脚主要分为三类,即:输入(I)、输出(O)、输入/输出(I/O),输出类型的引脚主要用于S3C44B0X对外设的控制或通信,由S3C44B0X主动发出,这些引脚的连接不会对S3C44B0X自身的运行有太大的影响,输入/输出类型的引脚主要是S3C44B0X与外设的双向数据传输通道,S3C44B0X的引脚信号描述 总线控制信号,S3C44B0X的引脚信号描述 DRAM/SDRAM/SRAM,输入,S3C44B0X的引脚信号描述 LCD控制信号,S3C44B0X的引脚信号描述 TIMER/PWM控制信号,S3C44B0X的引脚信号
6、描述 中断控制信号,S3C44B0X的引脚信号描述 DMA控制信号,S3C44B0X的引脚信号描述 UART控制信号,S3C44B0X的引脚信号描述 IIC-BUS控制信号,S3C44B0X的引脚信号描述 IIS-BUS控制信号,S3C44B0X的引脚信号描述 SIO控制信号,S3C44B0X的引脚信号描述 ADC,S3C44B0X的引脚信号描述 GPIO,S3C44B0X的引脚信号描述 复位和时钟信号,S3C44B0X的引脚信号描述 JTAG测试逻辑,S3C44B0X的引脚信号描述 电源,复位后的S3C44B0X的 存储器映射表,S3C44B0X存储系统的特征,支持数据存储的大/小端选择(通
7、过外部引脚进行选择) 地址空间:具有8个存储体,每个存储体可达32Mb,总共可达256Mb。 对所有存储体的访问大小均可进行改变(8位16位32位) 8个存储体中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FPEDOSDRAM等。 7个存储体的起始地址固定,1个存储体的起始地址可变。,典型系统中存储体的分配情况,S3C44B0X把外部复位信号,也作为一个中断来处理。在系统复位的时候,程序(PC)指针被设置成0,使程序跳转到0x00000000开始运行。此空间对应的是Bank0。这里存储的是供系统的初始化的程序BootLoader。此程序负责配置处
8、理器的结构、工作模式以及自动检测嵌入式控制器的各个硬件是否工作正常。它还负责加载内核。引导程序把程序(PC)指针指向0xc000000地址,系统开始运行。,系统自动检测 引导Rom负责检测系统的启动必须的外设是否正常。主要是系统的SDRAM的检测。 通过引导Rom设置或者查看系统的一些软件信息。包括:通过开启USB端口,更新系统文件system.bin;LCD显示测试;演示程序的装载测试;键盘测试;触摸屏的坐标校准;触摸屏测试;以太网地址的设置等。,使用Bank0上的Flash放置系统Bootloader,系统上电以后,PC指针自动指向Bank0的第一个单元,开始进行系统自举。系统自举完成以后
9、,便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。 Bank1上接Flash,可当做系统硬盘使用,可以构造文件系统,存放海量数据。 用SDRAM当作系统内存,只有Bank6/Bank7能支持SDRAM,所以将SDRAM接在Bank6上。如果同时使用Bank6/Bank7,则要求连接相同容量的存储,而且其地址空间在物理上是连续的。,存储空间分配例子,Bank1:K9F2808(三星 16Mbyte Flash),非线性寻址,每次寻址需要3次写入8位地址线。具体的时序可以参考K9F2808的datasheet Bank2:USBN9603。USB设备端接口芯片,占用系统外部中断0。8
10、位数据总线。 Bank3、Bank4:可以供扩展使用 Bank5:RTL8019AS,ISA总线兼容的10M以太网(PHYMAC层)控制芯片。占用系统外部中断1,16位数据总线,Bank6:SDRAM,起始地址为0xC000000。在SDRAM中,前512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。系统的程序存储空间从0xC080000开始。也就是,引导系统的时候,需要把system.bin文件复制到0xC080000开始的地址空间,把PC指针指向0xC080000。 Bank7:未使用。可以扩展另一片SDRAM,或者其他的外设。 系统的
11、同步串行口(SIO),连接着触摸屏控制芯片FM7843(与ADS7843完全兼容)。在同步串行口上,还可以扩展其他的芯片。靠IO口控制设备的片选信号(CS)来防止设备的冲突。 注:系统的扩展接口上,A0的标号,连接在S3C44B0X的ADDR1上,后面的地址依次向后错位。,电源电路设计DC-DC转换芯片,有很多DC-DC转换器可完成到3.3V的转换,如Linear Technology的LT108X系列。常见的型号和对应的电流输出如下: LT1083 7.5A LT1084 5A LT1085 3A LT1086 1.5A,有很多DC-DC转换器可完成到2.5V的转换,常用的如Linear T
12、echnology的LT1761。,电源电路设计3.3V,需要使用3.3V的直流稳压电源,系统电源电路如下图所示:,DC 7.5V 2A直流电源,整流、定向,DC-DC转换芯片LT1086,滤波电路,电源电路设计2.5V,需要使用2.5V的直流稳压电源,系统电源电路如下图所示:,滤波电路,DC3.3V,晶振电路设计,晶振电路用于向CPU及其他电路提供工作时钟。在该系统中,S3C44B0X使用无源晶振,晶振的接法如下图所示:,系统时钟PLL的滤波电容(700pF左右),系统时钟晶体电路的输入信号,系统时钟晶体电路的输出信号,晶振电路设计,根据S3C44B0X的最高工作频率以及PLL电路的工作方式
13、,选择10MHz的无源晶振,10MHz的晶振频率经过S3C44B0X片内的PLL电路倍频后,最高可以达到66MHz。,片内的PLL电路兼有倍频和信号提纯的功能,因此,系统可以以较低的外部时钟信号获得较高的工作频率,以降低因高速开关时钟所造成的高频噪声。,复位电路设计,采用IMP706看门狗芯片,低电平复位,JP2短接后,必须定时喂狗,否则将引起系统复位,在规定时间内没有喂狗,将输出低电平,复位及看门狗功能是否有效,如果短接则有效,复位按键,JP2短接时才有效,JTAG接口电路设计接口简介,JTAG(Joint Test Action Group,联合测试行动小组)是一种国际标准测试协议,主要用
14、于芯片内部测试及对系统进行仿真、调试。,JTAG技术是一种嵌入式调试技术,它在芯片内部封装了专门的测试电路TAP(Test Access Port,测试访问口),通过专用的JTAG测试工具对内部节点进行测试。,目前大多数比较复杂的器件都支持JTAG协议,如ARM、DSP、FPGA器件等。,标准的JTAG接口是4线:TMS、TCK、TDI、TDO,分别为测试模式选择、测试时钟、测试数据输入和测试数据输出。,JTAG测试允许多个器件通过JTAG接口串联在一起,形成一个JTAG链,能实现对各个器件分别测试。JTAG接口还常用于实现ISP(In-System Programmable在系统编程)功能,
15、如对FLASH器件进行编程等。,通过JTAG接口,可对芯片内部的所有部件进行访问,因而是开发调试嵌入式系统的一种简洁高效的手段。目前JTAG接口的连接有两种标准,即14针接口和20针接口。,JTAG接口电路设计 14针接口及定义,JTAG接口电路设计 20针接口及定义,JTAG接口电路设计接口电路,必须接上拉,最小系统,ARM处理器 + 电源电路 + 晶振电路 + 复位电路 + JTAG接口电路可构成真正意义上的最小系统,程序可运行于S3C44B0X内部的8KB RAM中,程序大小有限,掉电后无法保存,只能通过JTAG接口调试程序,SDRAM接口电路设计SDRAM简介,与Flash存储器相比较
16、,SDRAM不具有掉电保持数据的特性,但其存取速度大大高于Flash存储器,且具有读/写的属性,因此,SDRAM在系统中主要用作程序的运行空间,数据及堆栈区。,当系统启动时,CPU首先从复位地址0x0处读取启动代码,在完成系统的初始化后,程序代码一般应调入SDRAM中运行,以提高系统的运行速度,同时,系统及用户堆栈、运行数据也都放在SDRAM中。,SDRAM具有单位空间存储容量大和价格便宜的优点,已广泛应用在各种嵌入式系统中。SDRAM的存储单元可以理解为一个电容,总是倾向于放电,为避免数据丢失,必须定时刷新(充电)。因此,要在系统中使用SDRAM,就要求微处理器具有刷新控制逻辑,或在系统中另外加入刷新控制逻辑电路。S3C44B0X在片内具有独立的SDRAM刷新控制逻辑,可方便地与SDRAM接口。,SDRAM接口电路设计SDRAM选型,目前常用的SDRAM为8位/16位的数据宽度,工作电压一般为3.3V。主要