《六、基于ARM的嵌入式系统硬件结构设计》由会员分享,可在线阅读,更多相关《六、基于ARM的嵌入式系统硬件结构设计(93页珍藏版)》请在金锄头文库上搜索。
1、嵌入式系统设计与实例开发ARM与C/OS-第六讲 基于ARM的硬件系统结构设计北京航空航天大学嵌入式机电控制研究室,本节提要,1,3,2,5,4,6,基于ARM的硬件系统体系结构,存储器接口设计,网络接口设计,I/O接口设计,人机交互接口设计,其他通讯接口设计,基于ARM的硬件设计,主要介绍基于ARM7的嵌入式硬件开发平台的设计方法,包括结构、主要接口、存储器选用方案以及外设、显示等方面的内容: 嵌入式硬件开发平台的体系结构。外围存储器接口设计方法。键盘、LCD等人机交互接口的设计。触摸屏的设计。以太网设计。CAN总线设计。,Samsung S3C44B0X,S3C44B0X微处理器是三星公司
2、专为手持设备和一般应用提供的高性价比和高性能的微控制器解决方案,它使用ARM7TDMI核,工作在66MHz。为了降低系统总成本和减少外围器件,这款芯片中还集成下列部件:8KB Cache、外部存储器控制器、LCD控制器、4个DMA通道、2通道UART、1个多主I2C总线控制器、1个IIS总线控制器,5通道PWM定时器及一个内部定时器、71个通用I/O口、8个外部中断源、实时时钟、8通道10位ADC等。,基于ARM的嵌入式硬件平台体系结构,芯片体系结构,S3C44B0X存储系统的特征,支持数据存储的大/小端选择(通过外部引脚和程序进行选择)。地址空间:具有8个存储体,每个存储体可达32Mb,总共
3、可达256MB。对所有存储体的访问大小均可进行改变(8位16位32位)。8个存储体中,Bank0Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和FPEDOSDRAM等。,复位后的S3C44B0X的存储器映射表,系统的存储空间分配,Bank1:K9F2808(三星 16Mbyte Flash),非线性寻址。具体的时序可以参考K9F2808的datasheet。Bank0:1片2MB NOR Flash,放置系统引导程序,系统上电复位后,PC指针自动指向Bank0的第一个单元,进行系统自举。Bank2:PDIUSBD12、USB设备端接口芯片,占用系统外部中断0。8
4、位数据总线。Bank3、Bank4未接设备,可以供扩展使用。Bank5:RTL8019AS、ISA总线兼容的10M以太网(PHYMAC层)控制芯片。占用系统外部中断1,16位数据总线,扩展IO口。,Bank6:SDRAM,起始地址为0xC000000。在SDRAM中,前512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。系统的程序存储空间从0xC080000开始。也就是,引导系统的时候,需要把system.bin文件复制到0xC080000开始的地址空间,把PC指针指向0xC080000。Bank7:未使用。可以扩展另一片SDRAM,或者其
5、他的外设。系统的同步串行口(SIO),连接着触摸屏控制芯片FM7843(与ADS7843完全兼容);CAN总线控制芯片MCP2510;Max504(D/A);键盘和LED扫描芯片ZLG7289。在同步串行口上,还可以扩展其他的芯片。通过IO口控制设备的片选信号(CS)来防止设备的冲突。 注:系统的外部总线主要有16位和8位。原理图设计的时候需要注意16总线和8位总线的区别。在连接不同总线宽度的外设,地址是否需要依次向后错位。,本节提要,1,3,2,5,4,6,基于ARM的硬件系统体系结构,存储器接口设计,网络接口设计,I/O接口设计,人机交互接口设计,其他通讯接口设计,S3C44B0X与Fla
6、sh的连接(Half Word方式),使用Bank0上的1片2MB Flash来放置系统BIOS,系统上电以后,PC指针自动指向Bank0的第一个单元,开始进行系统自举。系统自举完成以后,便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。Bank1上接16MB NAND Flash,当做系统硬盘使用,可以构造文件系统,存放海量数据。用SDRAM当作系统内存,只有Bank6/Bank7能支持SDRAM,所以将SDRAM接在Bank6上。如果同时使用Bank6/Bank7,则要求连接相同容量的存储器,而且其地址空间在物理上是连续的。,存储器接口设计,NAND和NOR性能比较,NOR和N
7、AND是现在市场上两种主要的非易失闪存技术。其特点比较如下:NOR的读速度比NAND稍快一些。NAND的写入速度比NOR快很多。NAND的擦除速度远比NOR的快。大多数写入操作需要先进行擦除操作。NAND的擦除单元更小,相应的擦除电路更少。,接口差别,NOR Flash带有SRAM接口,线性寻址,可以很容易地存取其内部的每一个字节。NAND Flash使用复用接口和控制IO多次寻址存取数据。NAND读和写操作采用512字节的块,这一点有点像硬盘管理,此类操作易于取代硬盘等类似的块设备。,容量和成本,NAND Flash生产过程更为简单,成本低。常见的NOR Flash为128KB16MB,而N
8、ANDFlash通常有8128MB。NOR主要应用在代码存储介质中,NAND适合于数据存储。NAND在CompactFlash、Secure Digital、PC Cards和MMC存储卡市场上所占份额最大。,可靠性和耐用性,在NAND中每块的最大擦写次数是100万次,而NOR的擦写次数是10万次。位交换的问题NAND Flash中更突出,需要ECC纠错。NAND Flash中坏块随机分布,需要通过软件标定产品量产的问题。,关于BOOT ROM,Bank0:系统的启动ROM(Flash Rom)。在系统复位的时候,处理器的PC(程序计数器)指针指向0x0地址。在Bank0的起始地址的程序,就是
9、系统的初始化程序。此程序的主要任务是:1.管理处理器的中断服务程序处理器的中断是从0x0地址开始,引导ROM负责把这一部分的中断映射到另一个区域,以便系统处理。具体的做法,可以参考44binit.s里面的代码。(这部分代码三星主页可以提供,它把系统的中断,映射到了不同的指针所指向的地址空间(主要就是系统RAM的空间)。,2. 初始化硬件平台,配置其他的Bank S3C44B0X的Bank0是通过外部的一个管脚提供的上拉、下拉电阻来配置的。主要包括:数据位数(8位、16位、32位),数据格式(大端、小端)。而其他的Bank的配置,以及读写周期等信息是靠Bank0内部的代码配置相应的寄存器来实现的
10、。同时,系统的引导Rom也负责配置系统的其他的一些寄存器,比如,系统的PLL(锁频环)配置,系统的IO口等一些端口功能的配置等。,3.系统自动检测 引导Rom负责检测系统的启动所必须的外设是否正常。主要是系统的SDRAM的检测。4.系统的软件设置,更新系统(system.bin) 用户可以在系统启动的时候,按任意键,进入系统的软件设置状态。通过引导Rom设置或者查看系统的一些软件信息。包括:通过开启USB端口;更新系统文件system.bin;LCD显示测试;演示程序的装载测试;键盘测试;触摸屏的坐标校准;触摸屏测试;以太网地址的设置等,嵌入式系统中应用RAM的情况,本节提要,1,3,2,5,
11、4,6,基于ARM的硬件系统体系结构,存储器接口设计,网络接口设计,I/O系统设计,人机交互接口设计,其他通讯接口设计,I/O子系统的层次模型,I/O子系统:I/O设备、相关的设备驱动程序和I/O子系统组成嵌入式I/O子系统。I/O子系统的目标是对RTOS和应用程序员隐藏设备特定的信息,并且对系统的外围I/O设备提供一个统一的访问方法。,从不同角度看I/O系统,从系统软件开发者角度看,I/O操作意味着与设备的通信、对设备编程初始化和请示执行设备与系统之间的实际数据传输以及操作完成后通知请求者。系统软件工程师必须理解设备的物理特性,如寄存器的定义和设备的访问方法。从RTOS的角度看,I/O操作意
12、味着对I/O请求定位正确的设备,对设备定位正确的设备驱动程序,并解决对设备驱动程序的请求。有时要求RTOS保证对设备的同步访问。RTOS必须进行抽象,对应用程序员隐含设备的特性。从应用程序员角度看,目标是找到一个简单、统一和精练的方法与系统中出现的所有类型的设备通信。,I/O接口的编址方式端口映射,1)I/O接口独立编址端口映射方式 这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。,主要优点:内存地址空间与I/O接口地址空间分开,互不影响,译码电路较简单,并设有专门的I/O指令,所以编程序时易于区分,且执行时
13、间短,快速性好。缺点:只用I/O指令访问I/O端口,功能有限且要采用专用I/O周期和专用I/O控制线,使微处理器复杂化。,I/O接口的编址方式内存映射,2)I/O接口与存储器统一编址方式内存映射 这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I/O接口的端口都当作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。,主要优点:访问内存的指令都可用于I/O操作,数据处理功能强;同时I/O接口可与存储器部分共用译码和控制电路。缺点:一是I/O接口要占用存储器地址空间的一部分;二
14、是因不用专门的I/O指令,程序中较难区分I/O操作。,DMA I/O,DMA I/ODMA允许设备直接访问内存而不用包含处理器,在数据传输操作开始之前,处理器设置DMA控制器,在数据传输期间,读写操作均不通过处理器。DMA传输速度取决于I/O设备的传输速度、内存设备的速度和DMA控制器的速度。通过指定源地址、目的内存地址和传输到DMA控制器长度,处理器建立传输操作。,字符模式设备与块模式设备,根据设备如何处理与系统之间的数据传输方法可将设备分为字符模式设备和块模式设备字符模式设备:允许非结构的数据传输。数据传输典型地采用串行的形式,每次一个字节;字符设备通常是简单的设备,如串口和键盘等;当系统
15、到设备的传输速率高于设备的处理速率时,设备驱动程序开设缓冲区,缓存这些数据。块模式设备:每次传输一个数据块。采用硬件方式控制数据块的大小,有时需要采用固定的传输协议,如USB、以太网等设备。,建立通用的I/O接口函数,Create()Open()Read()Write()Close()Loctl()Destroy(),Driver_Create()Driver_Open()Driver_Read()Driver_Write()Driver_Close()Driver_Loctl()Driver_Destroy(),I/O操作,设备驱动程序,应 用,设 备,I/O接口设计,I/O接口电路也简称接
16、口电路。它是主机和外围设备之间交换信息的连接部件(电路)。它在主机和外围设备之间的信息交换中起着桥梁和纽带作用。设置接口电路的必要性:1)解决CPU和外围设备之间的时序配合和通信联络问题。2)解决CPU和外围设备之间的数据格式转换和匹配问题。3)解决CPU的负载能力和外围设备端口选择问题。,本节提要,1,3,2,5,4,6,基于ARM的硬件系统体系结构,存储器接口设计,网络接口设计,I/O接口设计,人机交互接口设计,其他通讯接口设计,嵌入式开发板与PC机的串行通讯,嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接。,S3C44B0的UART,ARM自带两个串行口,各带有16字节的FIFO(先入先出寄存器),最大波特率115.2Kbps。每个UART有7种状态:溢出错误、校验错误、帧错误、暂停态、接收缓冲区准备好、发送缓冲区空、发送移位缓冲器空,这些状态可以由相应的UTRSTATn/UERSTATn表示,并且与发送接收缓冲区相对应的有错误缓冲区。波特率可以通过控制波特率寄存器(UBRDIVn)控制。,