基于ARM的嵌入式系统硬件结构设计.ppt
1嵌入式系统设计与实例开发嵌入式系统设计与实例开发基于基于3232位微处理器与实时操作系统位微处理器与实时操作系统第七讲第七讲 基于基于ARMARM的硬件系统结构设计的硬件系统结构设计2本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计3ARM920T内核结构4S3C2410的内部结构5实验平台的体系结构2410核心资源总线隔离驱动168Pin扩展槽网卡设备LCD驱动音频电路串口设备USB设备PCMCIAIDE/CF卡SD卡接口IO扩展电机等其他资源局部总线扩展总线6读写总线的时序图稳态稳态ReadWrite稳态稳态7本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计82410的存储器系统的存储器系统 可通过软件选择大小端可通过软件选择大小端 地址空间地址空间:每个每个Bank 128Mbytes(总共总共 1GB)除除 bank0(16/32-bit)外,所有的外,所有的Bank都可以通过编程选择总线宽都可以通过编程选择总线宽度度=(8/16/32-bit)共共 8 个个banksl6个个Bank用于控制用于控制 ROM,SRAM,etc.l剩余的两个剩余的两个Bank用于控制用于控制 ROM,SRAM,SDRAM,etc.7个个Bank固定起始地址;固定起始地址;最后一个最后一个Bank可调整起始地址;可调整起始地址;最后两个最后两个Bank大小可编程大小可编程所有所有Bank存储周期可编程控制;存储周期可编程控制;9S3C2410的存储器配置的存储器配置10Bank6/Bank7地址分布地址分布11Bank0总线宽度配置总线宽度配置12与与2片片8位的位的ROM连接方法连接方法13与与1片片16位的位的ROM连接连接14S3C2410与与2片片8位位FLASH的连接方法的连接方法15与与1片片16M的的SDRAM的连接方法的连接方法16与与2片片16M的的SDRAM的连接方法的连接方法17NAND和NOR性能比较NORNOR和和NANDNAND是是现在市在市场上两种主要的非易失上两种主要的非易失闪存技存技术lNORNOR的的读速度比速度比NANDNAND稍快一些稍快一些lNANDNAND的写入速度比的写入速度比NORNOR快很多快很多lNANDNAND的擦除速度的擦除速度远比比NORNOR的快的快l大多数写入操作需要先大多数写入操作需要先进行擦除操作行擦除操作lNANDNAND的擦除的擦除单元更小,相元更小,相应的擦除的擦除电路更少路更少18接口差别lNORflashNORflash带有有SRAMSRAM接口,接口,线性性寻址,可以很容易地存址,可以很容易地存取其内部的每一个字取其内部的每一个字节lNANDflashNANDflash使用复用接口和控制使用复用接口和控制IOIO多次多次寻址存取数据址存取数据lNANDNAND读和写操作采用和写操作采用512512字字节的的块,这一点有点像硬一点有点像硬盘管理,此管理,此类操作易于取代硬操作易于取代硬盘等等类似的似的块设备19容量和成本lNANDflashNANDflash生生产过程更程更为简单,成本低,成本低l常常见的的NORflashNORflash为128KB128KB16MB16MB,而,而NANDNANDflashflash通常有通常有8 8128MB128MBlNORNOR主要主要应用在代用在代码存存储介介质中,中,NANDNAND适合于数据存适合于数据存储lNANDNAND在在CompactFlashCompactFlash、SecureDigitalSecureDigital、PCCardsPCCards和和MMCMMC存存储卡市卡市场上所占份上所占份额最大最大20可靠性和耐用性l在在NAND中每块的最大擦写次数是中每块的最大擦写次数是100万次,而万次,而NOR的的擦写次数是擦写次数是10万次万次l位交换的问题位交换的问题NAND flash中更突出,需要中更突出,需要ECC纠错纠错lNAND flash中坏块随机分布,需要通过软件标定中坏块随机分布,需要通过软件标定产品量产的问题产品量产的问题21嵌入式系统中应用RAM的情况22本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/O系统设计系统设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计23I/O子系统的层次模型lI/OI/O子系子系统:I/OI/O设备、相关的、相关的设备驱动程序和程序和I/OI/O子系子系统组成嵌入式成嵌入式I/OI/O子系子系统。lI/OI/O子系子系统的目的目标是是对RTOSRTOS和和应用程序用程序员隐藏藏设备特定的信息,并且特定的信息,并且对系系统的外的外围I/OI/O设备提供一个提供一个统一的一的访问方法。方法。24从不同角度看I/O系统l从系从系统软件开件开发者角度看,者角度看,I/OI/O操作意味着与操作意味着与设备的通信、的通信、对设备编程初始化和程初始化和请示示执行行设备与系与系统之之间的的实际数据数据传输以及操作完成后通知以及操作完成后通知请求者。系求者。系统软件工程件工程师必必须理理解解设备的物理特性,如寄存器的定的物理特性,如寄存器的定义和和设备的的访问方法。方法。l从从RTOSRTOS的角度看,的角度看,I/OI/O操作意味着操作意味着对I/OI/O请求定位正确的求定位正确的设备,对设备定位正确的定位正确的设备驱动程序,并解决程序,并解决对设备驱动程序的程序的请求。有求。有时要求要求RTOSRTOS保保证对设备的同步的同步访问。RTOSRTOS必必须进行抽象,行抽象,对应用程序用程序员隐含含设备的特性。的特性。l从从应用程序用程序员角度看,角度看,目目标是找到一个是找到一个简单、统一和精一和精练的方法与系的方法与系统中出中出现的所有的所有类型的型的设备通信。通信。25I/O接口的编址方式端口映射1 1)I/OI/O接口独立接口独立编址址端口映射端口映射方式方式l这种种编址方式是将存址方式是将存储器地址器地址空空间和和I/OI/O接口地址空接口地址空间分开分开设置,互不影响。置,互不影响。设有有专门的的输入指令(入指令(ININ)和)和输出指令出指令(OUTOUT)来完成)来完成I/OI/O操作。操作。主要主要优点:点:内存地址空内存地址空间与与I/OI/O接口地址空接口地址空间分开,互不影响,分开,互不影响,译码电路路较简单,并,并设有有专门的的I/OI/O指令,所以指令,所以编程序易于区分,且程序易于区分,且执行行时间短,快速性好。短,快速性好。缺点:缺点:只用只用I/OI/O指令指令访问I/OI/O端口,功能有限且要采用端口,功能有限且要采用专用用I/OI/O周期和周期和专用用I/OI/O控制控制线,使微,使微处理器复理器复杂化。化。26I/O接口的编址方式内存映射1 1)2 2)I/OI/O接口与存接口与存储器器统一一编址方式址方式内内存映射存映射l这种种编址方式不区分存址方式不区分存储器地址空器地址空间和和I/OI/O接口地址空接口地址空间,把所有的,把所有的I/OI/O接口的接口的端口都当作是存端口都当作是存储器的一个器的一个单元元对待,待,每个接口芯片都安排一个或几个与存每个接口芯片都安排一个或几个与存储器器统一一编号的地址号。也不号的地址号。也不设专门的的输入入/输出指令,所有出指令,所有传送和送和访问存存储器的器的指令都可用来指令都可用来对I/OI/O接口操作。接口操作。主要主要优点:点:访问内存的指令都可用于内存的指令都可用于I/OI/O操作,数据操作,数据处理功能理功能强;同;同时I/OI/O接口可与存接口可与存储器部分共用器部分共用译码和控制和控制电路。路。缺点:缺点:一是一是I/OI/O接口要占用存接口要占用存储器地址空器地址空间的一部分;二是因不用的一部分;二是因不用专门的的I/OI/O指令,程序中指令,程序中较难区分区分I/OI/O操作。操作。27DMA I/ODMAI/ODMAI/OlDMADMA允允许设备直接直接访问内存而不用包含内存而不用包含处理器,在数据理器,在数据传输操作开操作开始之前,始之前,处理器理器设置置DMADMA控制器,在数据控制器,在数据传输期期间,读写操作均不写操作均不通通过处理器。理器。lDMADMA传输速度取决于速度取决于I/OI/O设备的的传输速度、内存速度、内存设备的速度和的速度和DMADMA控控制器的速度。制器的速度。l通通过指定源地址、目的内存地址和指定源地址、目的内存地址和传输到到DMADMA控制器控制器长度,度,处理器理器建立建立传输操作。操作。28字符模式设备与块模式设备根据根据设备如何如何处理与系理与系统之之间的数据的数据传输方法可将方法可将设备分分为字符模式字符模式设备和和块模式模式设备l字符模式字符模式设备:允:允许非非结构的数据构的数据传输。数据。数据传输典典型地采用串行的形式,每次一个字型地采用串行的形式,每次一个字节;字符;字符设备通常通常是是简单的的设备,如串口、,如串口、键盘等;当系等;当系统到到设备的的传输速率高于速率高于设备的的处理速率理速率时,设备驱动程序开程序开设缓冲区,冲区,缓存存这些数据;些数据;l块模式模式设备:每次:每次传输一个数据一个数据块。采用硬件方式控。采用硬件方式控制数据制数据块的大小,有的大小,有时需要采用固定的需要采用固定的传输协议,如,如USBUSB、以太网等、以太网等设备29建立通用的I/O接口函数Create()Open()Read()Write()Close()Loctl()Destroy()Driver_Create()Driver_Open()Driver_Read()Driver_Write()Driver_Close()Driver_Loctl()Driver_Destroy()I/OI/O操作操作设备驱动程序程序应 用用设 备30I/O接口设计I/OI/O接口接口电路也路也简称接口称接口电路。它是主机和外路。它是主机和外围设备之之间交交换信息的信息的连接部件(接部件(电路)。它在主机和外路)。它在主机和外围设备之之间的信息交的信息交换中起着中起着桥梁和梁和纽带作用。作用。设置接口置接口电路路的必要性:的必要性:a)a)解决解决CPUCPU和外和外围设备之之间的的时序配合和通信序配合和通信联络问题。b)b)解决解决CPUCPU和外和外围设备之之间的数据格式的数据格式转换和匹配和匹配问题。c)c)解决解决CPUCPU的的负载能力和外能力和外围设备端口端口选择问题。31通用设计原则(I/O设备)lI/O接口接口l接口的概念接口的概念lCPU与外部设备的接口(与外部设备的接口(I/O适配器)适配器)l接口的功能接口的功能l控制控制 l缓冲缓冲l状态状态 l转换转换l整理整理 l程序中断程序中断 32lI/O接口接口l3种寄存器种寄存器l数据寄存器、控制寄存器和状态寄存器数据寄存器、控制寄存器和状态寄存器通用设计原则(I/O设备)数据寄存器状态寄存器控制寄存器I/O接口芯片去I/O设备去CPU33通用设计原则(I/O设备)lI/O设备寻址设备寻址lI/O寻址寻址l定位定位I/O设备内部的寄存器(或一小块存储器)设备内部的寄存器(或一小块存储器)l与存储器共享总线与存储器共享总线l存储器映像法存储器映像法l混合编址混合编址CPU存储器地址总线数据总线读信号写总线译码I/O接口译码34通用设计原则(I/O设备)lI/O设备寻址设备寻址lI/O隔离法隔离法l独立编址独立编址l信号线信号线MERQ/IORQl地址空间地址空间CPU存储器地址总线数据总线读信号写总线I/O接口MERQ/IORQ35lI/O设备的数据输入设备的数据输入/输出输出l输入过程输入过程lCPU把一个地址值放在地址总线上,这一步将选择某一输入设备把一个地址值放在地址总线上,这一步将选择某一输入设备;lCPU等候输入设备的数据成为有效;等候输入设备的数据成为有效;lCPU从数据总线读入数据,并放在一个相应的寄存器中。从数据总线读入数据,并放在一个相应的寄存器中。l输出过程输出过程lCPU把一个地址值放在地址总线上,选择输出设备;把一个地址值放在地址总线上,选择输出设备;lCPU把数据放在数据总线上;把数据放在数据总线上;l输出设备认为数据有效,从而把数据取走。输出设备认为数据有效,从而把数据取走。l究竟什么时候数据才成为有效?通用设计原则(I/O设备)36lI/O设备的定时方式设备的定时方式l简单的外围设备简单的外围设备l机械开关、二极管(无需定时机制,机械开关、二极管(无需定时机制,CPU只要接收或发送数据就可以了)只要接收或发送数据就可以了)l慢速或中速的外围设备慢速或中速的外围设备l速度和速度和CPU速度不在一个数量级,或不规则时间间隔操作速度不在一个数量级,或不规则时间间隔操作(键盘键盘)l异步定时方式异步定时方式l中断方式中断方式l查询方式查询方式l高速的外围设备高速的外围设备l以相等的时间间隔操作,采样同步定时方式以相等的时间间隔操作,采样同步定时方式 l时钟脉冲控制时钟脉冲控制 lDMA通用设计原则(I/O设备)37通用设计原则(I/O设备)lI/O控制方式控制方式l低速设备低速设备l程序查询方式程序查询方式l程序中断方式程序中断方式l高速设备高速设备lDMAl通道方式通道方式l外围处理机(外围处理机(PPU)方式)方式38lI/O接口接口l程序查询方式程序查询方式l读操作流程读操作流程1.CPU测试测试I/O设备状态,等待空闲设备状态,等待空闲2.CPU下达读命令,测试状态寄存器下达读命令,测试状态寄存器3.把数据寄存器中的数据读入到把数据寄存器中的数据读入到CPU中中4.重复执行以上各步重复执行以上各步l写操作流程写操作流程1.CPU测试测试I/O设备状态,等待空闲设备状态,等待空闲2.把数据传输到把数据传输到I/O接口芯片的数据寄接口芯片的数据寄存器中存器中3.CPU下达写命令下达写命令4.重复执行以上各步重复执行以上各步通用设计原则(I/O设备)CPUI/O设备39通用设计原则(I/O设备)lI/O接口接口l中断中断l一种实现一种实现CPU和和I/O设备间异步操作的机制设备间异步操作的机制40通用设计原则(I/O设备)lI/O接口接口l中断中断l响应时间(现场保存)响应时间(现场保存)l中断优先级中断优先级l可屏蔽中断可屏蔽中断l不可屏蔽中断不可屏蔽中断l中断向量(地址)中断向量(地址)l固定固定/不固定不固定41CPUPC 设备设备状态寄存器数据寄存器中断请求中断应答数据/地址通用设计原则(I/O设备)中断处理42lI/O接口接口lDMAlI/O设备和存储器直接进行数据传输设备和存储器直接进行数据传输l使用场合使用场合l速度快,适用于数据连续传输的高速设备速度快,适用于数据连续传输的高速设备l基本操作过程基本操作过程l从外围设备发出从外围设备发出DMA请求;请求;lCPU响应请求,把响应请求,把CPU工作改成工作改成DMA操作方式,操作方式,DMA控制器从控制器从CPU接管总线的控制;接管总线的控制;l由由DMA控制器对内存寻址,并执行数据传送的操作;控制器对内存寻址,并执行数据传送的操作;l向向CPU报告报告DMA操作的结束。操作的结束。通用设计原则(I/O设备)43通用设计原则(I/O设备)lI/O接口接口lDMA传输方式传输方式l停止停止CPU访问内存访问内存44通用设计原则(I/O设备)lI/O接口接口lDMA传输方式传输方式l周期挪用周期挪用45通用设计原则(I/O设备)lI/O接口接口lDMA传输方式传输方式lDMA与与CPU交替访问内存交替访问内存46嵌入式软件的开发过程嵌入式软件的开发过程47ARM的JTAG调试结构AngelJTAG48宿主机调试器l宿主机宿主机调试器通器通过固定的固定的协议控制下位机(控制下位机(协议转换器)。比如,器)。比如,SDTSDT中通中通过AngelAngel协议或者第三方或者第三方调试器所提供的器所提供的协议l宿主机宿主机调试器只器只发送宏送宏观的命令,比如:的命令,比如:程序运行、程序运行、终止。止。读内存、内存、ARMARM寄存器等寄存器等l通通讯的介的介质可以是串口、并口、以太网、可以是串口、并口、以太网、USBUSB等等49JTAG与AngellJTAGJTAG调试:协议转换器解器解释上位机上位机传送送过来的命令,通来的命令,通过JTAGJTAG控控制制ARMARM执行。行。lAngelAngel调试:协议转换器可以直接做器可以直接做为目目标板的板的FirmwareFirmware的一部分。的一部分。直接直接执行从宿主机行从宿主机传送送过来的来的调试命令;并回送相命令;并回送相应的数据。的数据。lAngelAngel可以可以节省省专门的的JTAGJTAG仿真器,但是,它需要仿真器,但是,它需要软件,或者是嵌件,或者是嵌入式操作系入式操作系统的支持,做不到完全的的支持,做不到完全的实时仿真。而仿真。而JTAGJTAG仿真是通仿真是通过硬件和控制硬件和控制ARMARM的的EmbeddedICEEmbeddedICE实现的,可以做到的,可以做到实时仿真。仿真。50什么是JTAG?lJTAGJTAG是是JointTestActionGroupJointTestActionGroup的的缩写是写是IEEE1149.1IEEE1149.1标准准lJTAGJTAG的建立使得集成的建立使得集成电路固定在路固定在PCBPCB上,只通上,只通过边界界扫描便可以被描便可以被测试l在在ARM7TDMIARM7TDMI处理器中,可以通理器中,可以通过JTAGJTAG直接控制直接控制ARMARM的内部的内部总线,IOIO口等信息,从而达到口等信息,从而达到调试的目的的目的51JTAG的典型接口lTMSTMS:测试模式模式选择(TestModeSelectTestModeSelect),通),通过TMSTMS信号控制信号控制JTAGJTAG状状态机的机的状状态lTCKTCK:JTAGJTAG的的时钟信号信号lTDITDI:数据:数据输入信号入信号lTDOTDO:数据:数据输出信号出信号lnTRSTnTRST:JTAGJTAG复位信号,复位复位信号,复位JTAGJTAG的状的状态机和内部的宏机和内部的宏单元(元(MacrocellMacrocell)52JTAG的状态机(TAP)53JTAG链的组成54ARM7TDMI的JTAG标准链(1)55ARM7TDMI的JTAG标准链(2)lScanChain0ScanChain0:包括:包括ARMARM核的所有的核的所有的IOIO和和总线的的输入入输出控制信号出控制信号lScanChain1ScanChain1:包括:包括ARMARM核的数据核的数据总线和一个断点控制和一个断点控制信号。通信号。通过控制控制这个条个条链,可以控制,可以控制ARMARM核核执行指定的行指定的指令。指令。lScanChain2ScanChain2:通:通过控制控制EmbeddedICEEmbeddedICE宏宏单元,元,实现对ARMARM执行指令的断点、行指令的断点、观察点的控制察点的控制56EmbeddedICE的结构57ARM7TDMI中断点的设置l设置置EmbeddedICEEmbeddedICE的两个的两个watchpointwatchpoint单元元主要包括:地址、数据、控制信号等主要包括:地址、数据、控制信号等l当一个(或者两个)当一个(或者两个)watchpointwatchpoint中的地址(也可以包括数据)和中的地址(也可以包括数据)和ARMARM所所执行的当前的指令相同的行的当前的指令相同的时候,候,ARMARM就从运行状就从运行状态进入入DebugDebug状状态l硬件断点:在硬件断点:在ARMARM中直接中直接设定定watchpointwatchpoint中的地址,当中的地址,当ARMARM运行到运行到指定的地址指定的地址时,就,就进入入DebugDebug状状态l软件断点:改件断点:改变存存储器中的器中的ARMARM指令指令为一个特殊的数据一个特殊的数据X X(ARMARM的未的未定定义指令),同指令),同时,设置置watchpointwatchpoint中的断点数据也中的断点数据也为X X,当,当ARMARM把把X X数据作数据作为指令指令读入的入的时候,候,ARMARM就就进入入DebugDebug状状态58硬件断点和软件断点的优缺点l硬件断点:数目受硬件断点:数目受EmbeddedICEEmbeddedICE中的中的WatchpointWatchpoint数目的限制;但是,数目的限制;但是,可以在任何地方可以在任何地方设置断点置断点l软件断点:数目不受限制,但是,件断点:数目不受限制,但是,软件断点是通件断点是通过替替换系系统的断的断点地址的指令点地址的指令实现的,所以,的,所以,软件断点只能在可写的存件断点只能在可写的存储器的地器的地址中址中设置(比如:置(比如:RAMRAM),而不能在),而不能在ROMROM(比如:(比如:FlashFlash)中)中设置置59嵌入式开发板与PC机的串行通讯嵌入式开发板和嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接。机的通讯电缆可以按照如图所示的方式连接。602410的UARTlS3C2410AS3C2410A的的UART(UniversalAsynchronousReceiverUART(UniversalAsynchronousReceiverandTransmitter)andTransmitter)提供了三个独立的异步串行提供了三个独立的异步串行I/OI/O口,每口,每一个都可以工作在中断模式或一个都可以工作在中断模式或DMADMA模式,即模式,即UARTUART可以可以产生中生中断或断或DMADMA请求以在求以在CPUCPU和和UARTUART之前之前传送数据,使用系送数据,使用系统时钟,UARTUART最高可以支持最高可以支持230.4Kbps230.4Kbps的位的位传输率。率。l如果采用外部如果采用外部带时钟的的UARTUART,则UARTUART可以可以实现更度速度的更度速度的传输;l每个每个UARTUART包括包括2 2个个16Byte16Byte的接收的接收/发送送FIFOFIFO。61UART控制框图62异步串行通讯简介l在一条在一条传输线上完成上完成单向向传输。l将将传输数据的字符一位接一位的数据的字符一位接一位的传送。送。l接收方接收方对于同一条于同一条线上的一上的一连串串连续数学信号,首先将数学信号,首先将其分割成位,再按位其分割成位,再按位组成字符。成字符。l每个字符需要确定起始位和每个字符需要确定起始位和结束位,字符与字符束位,字符与字符间还可可能有能有长度不定的空度不定的空闲时间,因此,因此传输效率效率较低。低。63字符串行输出格式:发送前:送前:线路路处于空于空闲状状态,连续发送送“1”开始开始发送:首先,送:首先,发送一位起始位送一位起始位“0”然后,然后,发送送连续的二的二进制位,数据位可以制位,数据位可以为5、6、7、8 随后,随后,紧跟一位奇偶校跟一位奇偶校验位(可位(可选择奇奇/偶偶/无校无校验)最后,最后,发送停止位送停止位“1”,可以有,可以有1位、位、1.5位或位或2位停止位停止位位64串行通讯硬件规范及连接方法lEIA RS-232C 物理特征:物理特征:DB-25 DB-15 DB-9 信号连线:保护地、信号连线:保护地、TXD/RXD、RTS/CTS、DCD、DSR、DTR、R1 电平规定:电平规定:-5V -15V 之间的电平表示逻辑之间的电平表示逻辑“1”+5V +15V 之间的电平表示逻辑之间的电平表示逻辑“0”6566UART的操作串口初始化串口初始化发送数据送数据接收数据接收数据67l显示设备显示设备l单个单个LEDLED显示器显示器l一个发光二极管,亮一个发光二极管,亮/灭代表着一个二进制数灭代表着一个二进制数l典型电流典型电流5 520mA20mAlCPUCPU数据线通过驱动反相数据线通过驱动反相(或同相或同相)驱动器驱动驱动器驱动通用设计原则(I/O设备)I/O端口D7D0VCC与CPU相连68键盘接口设计l键盘模模块可能用来可能用来输入数字型数据或者入数字型数据或者选择控制控制设备的的操作模式。操作模式。l键盘有两种方案:一是采用有两种方案:一是采用现有的一些芯片有的一些芯片实现键盘扫描;再就是用描;再就是用软件件实现键盘扫描。嵌入式控制器的功能描。嵌入式控制器的功能很很强,可能允分利用,可能允分利用这一一资源。源。69l两两组组信信号号线线:输输出出信信号号线线(行行线线),输输入入信信号号线线(列列线线)。列列信信号号线线一一般般通通过过电电阻阻与与电电源源正正极极相相连。连。通用设计原则(I/O设备)D0D1D2D3D4 D5 D6 D7RRRRVcc0123456789ABCDEF44阵列的键盘键盘的行信号线和列信号线均由CPU通过数据线加以控制,CPU通过数据线向行信号线上输出全“0”信号,然后通过数据线读取列信号,若键盘阵列中无任何键按下,则读到的列信号必然是全“1”信号,否则就是非全“1”信号。若是非全“1”信号时,CPU再在行信号线上输出“步进的0”信号,既逐行输出“0”信号,来判断被按下的键具体在哪一行上,然后产生对应的键码。70一一个个瞬瞬时接接触触开开关关(按按钮)放放置置在在每每一一行行与与线一一列列的的交交叉叉点点。矩矩阵所所需需的的键的的数数目目显然然根根据据应用用程程序序而而不不同同。每每一一行行由由一一个个输出出端端口口的的一一位位驱动,而而每每一一列列由由一一个个电阻阻器器上上拉且供拉且供给输入端口一位。入端口一位。键盘扫描阵列71键盘扫描描过程就是程就是让微微处理器按有理器按有规律的律的时间间隔隔查看看键盘矩矩阵,以确定是否有,以确定是否有键被按下。每个被按下。每个键被被分配一个称分配一个称为扫描描码的唯一的唯一标识符。符。应用程序利用用程序利用该扫描描码,根据按下的,根据按下的键来判定来判定应该采取什么行采取什么行动。l消抖算法:消抖算法:l组合合键处理理键盘扫描方法72本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计73LCD接口设计LCDLCD显示模示模块液晶液晶显示是一种被示是一种被动的的显示,它不能示,它不能发光,只能使用周光,只能使用周围环境的光。它境的光。它显示示图案或字符只需很小能量。液晶案或字符只需很小能量。液晶显示所用的液晶材示所用的液晶材料是一种兼有液料是一种兼有液态和固体双重性和固体双重性质的有机物,它的棒状的有机物,它的棒状结构在液晶构在液晶盒内一般平行排列,但在盒内一般平行排列,但在电场作用下能改作用下能改变其排列方向。其排列方向。LCDLCD的背光:的背光:lELEL(场致致发光):光):2000-30002000-3000小小时l和和LEDLED光源:字符模式,光源:字符模式,5000050000小小时74LCD的显示方式l反射型反射型LCDLCD:底偏光片后面加了一:底偏光片后面加了一块反射板,它一般在反射板,它一般在户外和光外和光线良好的良好的办公室使用。公室使用。l透射型透射型LCDLCD:底偏光片是透射偏光片,它需要:底偏光片是透射偏光片,它需要连续使用背光源,一使用背光源,一般在光般在光线差的差的环境使用。境使用。l透反射型透反射型LCDLCD:是:是处于以上两者之于以上两者之间,底偏光片能部分反光,一般,底偏光片能部分反光,一般也也带背光源,光背光源,光线好的好的时候,可关掉背光源;光候,可关掉背光源;光线差差时,可点亮,可点亮背光源使用背光源使用LCDLCD。75反射型LCD的结构76lLCDLCD通常由两种方式,一种是通常由两种方式,一种是带有有驱动芯片的芯片的LCDLCD模模块,基本上属,基本上属于半成品于半成品l一些新型的嵌入式一些新型的嵌入式处理器也可以直接使用芯片上的内置理器也可以直接使用芯片上的内置LCDLCD控制器控制器来构造来构造显示模示模块,比如:,比如:s3c2410s3c2410可以支持可以支持STNSTN的彩色的彩色/灰度灰度/单色色三种模式和三种模式和TFTTFT模式,灰度模式下可支持模式,灰度模式下可支持4 4级灰度和灰度和1616级灰度,彩灰度,彩色模式下最多支持色模式下最多支持256256色,色,LCDLCD的的实际尺寸可支持到尺寸可支持到640X480640X480。LCD的驱动方式77总线驱动方式l一般一般带有有驱动模模块的的LCDLCD显示屏使用示屏使用这种种驱动方式,由方式,由于于LCDLCD已已经带有有驱动硬件硬件电路,因此模路,因此模块给出的是出的是总线接口,便于与接口,便于与单片机的片机的总线进行接口。行接口。l驱动模模块具有八位数据具有八位数据总线,外加一些,外加一些电源接口和控制源接口和控制信号。而且自信号。而且自带显示示缓存,只需要将要存,只需要将要显示的内容送到示的内容送到显示示缓存中就可以存中就可以实现内容的内容的显示。由于只有八条数据示。由于只有八条数据线,因此常常通,因此常常通过引脚信号来引脚信号来实现地址与数据地址与数据线复用,复用,以达到把相以达到把相应数据送到相数据送到相应显示示缓存的目的。存的目的。78控制器扫描方式lS3C2410XS3C2410X中具有内置的中具有内置的LCDLCD控制器,它具有将控制器,它具有将显示示缓存存(在系(在系统存存储器中)中的器中)中的LCDLCD图象数据象数据传输到外部到外部LCDLCD驱动电路的路的逻辑功能。功能。lS3C2410XS3C2410X中内置的中内置的LCDLCD控制器可支持灰度控制器可支持灰度LCDLCD和彩色和彩色LCDLCD。在灰度。在灰度LCDLCD上,使用基于上,使用基于时间的抖的抖动算法(算法(time-time-basedditheringalgorithmbasedditheringalgorithm)和)和FRC(FrameRateFRC(FrameRateControl)Control)方法,可以支持方法,可以支持单色、色、4 4级灰度和灰度和1616级灰度模灰度模式的灰度式的灰度LCDLCD。在彩色在彩色LCDLCD上,可以支持上,可以支持256256级彩色。彩色。对于不同尺寸的于不同尺寸的LCDLCD,具有不同数量的垂直和水平象素、,具有不同数量的垂直和水平象素、数据接口的数据数据接口的数据宽度、接口度、接口时间及刷新率,而及刷新率,而LCDLCD控制控制器可以器可以进行行编程控制相程控制相应的寄存器的寄存器值,以适,以适应不同的不同的LCDLCD显示板。示板。79嵌入式处理器与LCD的连接嵌入嵌入式处式处理器理器LCD模块模块数据数据总线总线寄存器选择寄存器选择使能信号使能信号有有LCD控制控制器的嵌入式器的嵌入式处理器处理器LCDLCD控制信控制信号线号线80从系从系统结构上来构上来讲,由于,由于显示器模示器模块中已中已经有有显示存示存储器。器。显存中的每一个存中的每一个单元元对应LCDLCD上的一个点,只要上的一个点,只要显存中的内容改存中的内容改变,显示示结果便果便进行刷新。于是便存行刷新。于是便存在两种刷新:在两种刷新:1 1直接根据系直接根据系统要求要求对显存存进行修改,一种是只需修改相行修改,一种是只需修改相应的局的局部就可以,不需要判断覆盖等;另一种就是有覆盖部就可以,不需要判断覆盖等;另一种就是有覆盖问题,计算起算起来比来比较复复杂,而且每做一点小的屏幕改,而且每做一点小的屏幕改变就就进行刷新,将增加系行刷新,将增加系统负担。担。22专门开辟开辟显示内存,在需要刷新示内存,在需要刷新时候由程序候由程序进行行显示更新。示更新。这样,不但可以减,不但可以减轻总线负荷,而且也比荷,而且也比较合理,在有需要的合理,在有需要的时候候进行行统一的一的显示更新,界面也可以比示更新,界面也可以比较美美观,不致由于无法,不致由于无法预料料的刷新的刷新动作作导致致显示界面示界面闪烁。LCD模块的显示控制81前后台双重显示缓存的显示模块结构 82集成了LCD控制器的嵌入式处理器体系结构 83LCD接口设计1 1、实现过程简述:、实现过程简述:就是将要显示的数据放到一个特定的地址,这个特定的就是将要显示的数据放到一个特定的地址,这个特定的地址就是地址就是frame memoryframe memory(帧存储器),这块空间是在系(帧存储器),这块空间是在系统内存中。统内存中。然后然后LCDLCD控制器将这些数据配合控制信号送到控制器将这些数据配合控制信号送到LCDLCD驱动驱动器完成显示。器完成显示。有相应的寄存器来设定这个地址及其大小。与显示数据有相应的寄存器来设定这个地址及其大小。与显示数据相配合完成显示的控制信号时序也是由相应的寄存器来相配合完成显示的控制信号时序也是由相应的寄存器来完成的。这些寄存器都在完成的。这些寄存器都在LCDLCD的控制器中。的控制器中。84LCD控制器框图REGBANK REGBANK 是是LCDLCD控制器的寄存器组,用来对控制器的寄存器组,用来对LCDLCD控制器的各项参数进行设控制器的各项参数进行设置。而置。而 LCDCDMA LCDCDMA 则是则是LCDLCD控制器专用的控制器专用的DMADMA信道,负责将视频资料从系统信道,负责将视频资料从系统总线(总线(System BusSystem Bus)上取来,通过)上取来,通过 VIDPRCS VIDPRCS 从从VD23:0VD23:0发送给发送给LCDLCD屏。同时屏。同时 TIMEGEN TIMEGEN 和和 LPC3600 LPC3600 负责产生负责产生 LCDLCD屏所需要的控制时序,例如屏所需要的控制时序,例如VSYNCVSYNC、HSYNCHSYNC、VCLKVCLK、VDENVDEN,然后从,然后从 VIDEO MUX VIDEO MUX 送给送给LCDLCD屏。屏。85主要的寄存器lLCDLCD控制寄存器(控制寄存器(5 5个)个)l帧缓冲开始地址寄存器(帧缓冲开始地址寄存器(3 3个)个)l临时调色板寄存器(临时调色板寄存器(Temp Palette RegisterTemp Palette Register)lLCDLCD中断屏蔽寄存器(中断屏蔽寄存器(LCD Interrupt LCD Interrupt Mask Register Mask Register)lLPC3600LPC3600控制寄存器(控制寄存器(LPC3600 Control Register LPC3600 Control Register)86LCD图形显示方式lLCDLCD显示模块由显示模块由S3C2410S3C2410的的LCDLCD控制器和控制器和64K64K色彩色色彩色LCDLCD显显示器组成。示器组成。l其显示方式以直接操作显示缓冲区的内容进行,其显示方式以直接操作显示缓冲区的内容进行,LCDLCD控控制器会通过制器会通过DMADMA从显示缓冲区中获取数据,不需要从显示缓冲区中获取数据,不需要CPUCPU干预。干预。l本系统采用的本系统采用的