《基于ARM的硬件系统设计25630.pptx》由会员分享,可在线阅读,更多相关《基于ARM的硬件系统设计25630.pptx(108页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、13C H A P T E R基于基于ARM的硬的硬件系统设计件系统设计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
2、本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计8存储器系统寄存器高速缓存SRAM主存储器DRAM本地存储器 Flash、ROM、磁盘网络存储器 Flash、ROM、磁盘时钟周期01105010020000000分层结构9存储器种类RAMRAM:随机存取存储器,:随机存取存储器,SRAM SRAM:静态随机存储器,:静态随机存储器,DRAM DRAM:动态随机存储器:动态随机存储器 1 1)SRAMSRAM
3、比比DRAMDRAM快快 2 2)SRAMSRAM比比DRAMDRAM耗电多耗电多 3 3)DRAMDRAM存储密度比存储密度比SRAMSRAM高得多高得多 4 4)DRMDRM需要周期性刷新需要周期性刷新ROMROM:只读存储器:只读存储器EPROMEPROMEEPROMEEPROMFLASHFLASH:闪存:闪存10闪速存储器(FLASH)n相对传统的EPROM芯片,这种芯片可以用电气的方法快速地擦写 n由于快擦写存储器不需要存储电容器,故其集成度更高,制造成本低于DRAM n它使用方便,既具有SRAM读写的灵活性和较快的访问速度,又具有ROM在断电后可不丢失信息的特点,所以快擦写存储器技
4、术发展十分迅速 11NOR技术nNOR技术闪速存储器是最早出现最早出现的Flash Memory,目前仍是多数供应商支持的技术架构,它源于传统的源于传统的EPROMEPROM器件。n与其它Flash Memory技术相比,具有可靠性高、随机读取随机读取速度快的优势。n在擦除和编程操作较少而直接执行代码的场合,尤其是代码(指令)存储的应用中广泛使用。n由于NOR技术Flash Memory的擦除和编程速度较慢,而块尺寸又较大,因此擦除和编程操作所花费的时间很长,在纯数据存储和文件存储的应用中,NOR技术显得力不从心。12NAND技术nNAND技术 Flash Memory具有以下特点:n以页为单
5、位以页为单位进行读和编程操作,1页为256或512字节;以块为单位进行擦除操作,1块为4K、8K或16K字节。具有快编程和快擦除的功能,其块擦除时间是2ms;而NOR技术的块擦除时间达到几百ms。n数据、地址采用同一总线,实现串行读取。随机读取速度慢且不能按字节随机编程。n芯片尺寸小,引脚少,是位成本(bit cost)最低的固态存储器,突破了每兆字节1元的价格限制。n芯片包含有失效块,其数目最大可达到335块(取决于存储器密度)。失效块不会影响有效块的性能,但设计设计者需要将失效块在地址映射表中屏蔽者需要将失效块在地址映射表中屏蔽起来。n基于NAND的存储器可以取代硬盘或其它块设备。13常见
6、的存储器扩充装置nCF扩充装Compact Flashn所有Windows CE 支持14常见的存储器扩充装置nSD扩充装置(Secure Digital)nPanasonic Scandisk Toshiba15常见的存储器扩充装置nMemory SticknSony162410的存储器系统 可通过软件选择大小端 地址空间:每个Bank 128Mbytes(总共 1GB)除 bank0(16/32-bit)外,所有的Bank都可以通过编程选择总线宽度=(8/16/32-bit)共 8 个banksn6个Bank用于控制 ROM,SRAM,etc.n剩余的两个Bank用于控制 ROM,SRAM
7、,SDRAM,etc.7个Bank固定起始地址;最后一个Bank可调整起始地址;最后两个Bank大小可编程所有Bank存储周期可编程控制;17S3C2410的存储器配置18Bank6/Bank7地址分布19Bank0总线宽度配置20与2片8位的ROM连接方法21与1片16位的ROM连接22S3C2410与2片8的FLASH的连接方法23与1片16M的SDRAM的连接方法24与1片16M的SDRAM的连接方法25NAND和NOR性能比较nNOR和NAND是现在市场上两种主要的非易失闪存技术nNOR的读速度比NAND稍快一些nNAND的写入速度比NOR快很多nNAND的擦除速度远比NOR的快n大多
8、数写入操作需要先进行擦除操作nNAND的擦除单元更小,相应的擦除电路更少26接口差别nNOR flash带有SRAM接口,线性寻址,可以很容易地存取其内部的每一个字节nNAND flash使用复用接口和控制IO多次寻址存取数据nNAND读和写操作采用512字节的块,这一点有点像硬盘管理,此类操作易于取代硬盘等类似的块设备27容量和成本nNAND flash生产过程更为简单,成本低n常见的NOR flash为128KB16MB,而NAND flash通常有8128MBnNOR主要应用在代码存储介质中,NAND适合于数据存储nNAND在CompactFlash、Secure Digital、PC
9、Cards和MMC存储卡市场上所占份额最大28可靠性和耐用性n在NAND中每块的最大擦写次数是100万次,而NOR的擦写次数是10万次n位交换的问题NAND flash中更突出,需要ECC纠错nNAND flash中坏块随机分布,需要通过软件标定产品量产的问题29嵌入式系统中应用RAM的情况30本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/O系统设计系统设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计31I/OI/O子系统的层次模型子系统的层次模型nI/O子系统:I/O设
10、备、相关的设备驱动程序和I/O子系统组成嵌入式I/O子系统。nI/O子系统的目标是对RTOS和应用程序员隐藏设备特定的信息,并且对系统的外围I/O设备提供一个统一的访问方法。32从不同角度看I/O系统n从系统软件开发者角度看,I/O操作意味着与设备的通信、对设备编程初始化和请示执行设备与系统之间的实际数据传输以及操作完成后通知请求者。系统软件工程师必须理解设备的物理特性,如寄存器的定义和设备的访问方法。n从RTOS的角度看,I/O操作意味着对I/O请求定位正确的设备,对设备定位正确的设备驱动程序,并解决对设备驱动程序的请求。有时要求RTOS保证对设备的同步访问。RTOS必须进行抽象,对应用程序
11、员隐含设备的特性。n从应用程序员角度看,目标是找到一个简单、统一和精练的方法与系统中出现的所有类型的设备通信。33I/O接口的编址方式端口映射1)I/O接口独立编址端口映射方式n这种编址方式是将存储器地址空间和I/O接口地址空间分开设置,互不影响。设有专门的输入指令(IN)和输出指令(OUT)来完成I/O操作。主要优点:主要优点:内存地址空间与内存地址空间与I/OI/O接口地址空间分开,互不影响,译码电接口地址空间分开,互不影响,译码电路较简单,并设有专门的路较简单,并设有专门的I/OI/O指令,所以编程序易于区分,且执行时间指令,所以编程序易于区分,且执行时间短,快速性好。短,快速性好。缺点
12、:缺点:只用只用I/OI/O指令访问指令访问I/OI/O端口,功能有限且要采用专用端口,功能有限且要采用专用I/OI/O周期和专周期和专用用I/OI/O控制线,使微处理器复杂化。控制线,使微处理器复杂化。34I/O接口的编址方式内存映射1)2)I/O接口与存储器统一编址方式内存映射n这种编址方式不区分存储器地址空间和I/O接口地址空间,把所有的I/O接口的端口都当作是存储器的一个单元对待,每个接口芯片都安排一个或几个与存储器统一编号的地址号。也不设专门的输入/输出指令,所有传送和访问存储器的指令都可用来对I/O接口操作。主要优点:主要优点:访问内存的指令都可用于访问内存的指令都可用于I/OI/
13、O操作,数据处理功能强;同时操作,数据处理功能强;同时I/OI/O接口可与存储器部分共用译码和控制电路。接口可与存储器部分共用译码和控制电路。缺点:缺点:一是一是I/OI/O接口要占用存储器地址空间的一部分;二是因不用专门接口要占用存储器地址空间的一部分;二是因不用专门的的I/OI/O指令,程序中较难区分指令,程序中较难区分I/OI/O操作。操作。35DMA I/ODMA I/OnDMA允许设备直接访问内存而不用包含处理器,在数据传输操作开始之前,处理器设置DMA控制器,在数据传输期间,读写操作均不通过处理器。nDMA传输速度取决于I/O设备的传输速度、内存设备的速度和DMA控制器的速度。n通
14、过指定源地址、目的内存地址和传输到DMA控制器长度,处理器建立传输操作。36字符模式设备与块模式设备 根据设备如何处理与系统之间的数据传输方法可将设备分为字符模式设备和块模式设备n字符模式设备:允许非结构的数据传输。数据传输典型地采用串行的形式,每次一个字节;字符设备通常是简单的设备,如串口、键盘等;当系统到设备的传输速率高于设备的处理速率时,设备驱动程序开设缓冲区,缓存这些数据;n块模式设备:每次传输一个数据块。采用硬件方式控制数据块的大小,有时需要采用固定的传输协议,如USB、以太网等设备37建立通用的I/O接口函数Create()Open()Read()Write()Close()Loc
15、tl()Destroy()Driver_Create()Driver_Open()Driver_Read()Driver_Write()Driver_Close()Driver_Loctl()Driver_Destroy()I/OI/O操作操作设备驱动程序设备驱动程序应应 用用设设 备备38I/O接口设计 I/O接口电路也简称接口电路。它是主机和外围设备之间交换信息的连接部件(电路)。它在主主机和外围设备机和外围设备之间的信息交换中起着桥梁和纽带作用。设置接口电路的必要性:a)解决CPU和外围设备之间的时序配合和通信联络问题。b)解决CPU和外围设备之间的数据格式转换和匹配问题。c)解决CPU
16、的负载能力和外围设备端口选择问题。39本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计40嵌入式开发板与PC机的串行通讯嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接。412410的UARTn S3C2410A 的UART(Universal Asynchronous Receiver and Transmitter)提供了三个独立的异步串行I/O口,每一个都可以工作在中断模式或DMA模式
17、,即UART可以产生中断或DMA请求以在CPU和UART之前传送数据,使用系统时钟,UART最高可以支持230.4K bps 的位传输率。n如果采用外部带时钟的UART,则UART可以实现更度速度的传输;n每个UART包括2个16Byte的接收/发送FIFO。42UART控制框图43异步串行通讯简介n在一条传输线上完成单向传输。n将传输数据的字符一位接一位的传送。n接收方对于同一条线上的一连串连续数学信号,首先将其分割成位,再按位组成字符。n每个字符需要确定起始位和结束位,字符与字符间还可能有长度不定的空闲时间,因此传输效率较低。44字符串行输出格式发送前:线路处于空闲状态,连续发送“1”开始
18、发送:首先,发送一位起始位“0”然后,发送连续的二进制位,数据位可以为5、6、7、8 随后,紧跟一位奇偶校验位(可选择奇/偶/无校验)最后,发送停止位“1”,可以有1位、1.5位或2位停止位45串行通讯硬件规范及连接方法nEIA RS-232C 物理特征:DB-25 DB-15 DB-9 信号连线:保护地、TXD/RXD、RTS/CTS、DCD、DSR、DTR、R1 电平规定:-5V -15V 之间的电平表示逻辑“1”+5V +15V 之间的电平表示逻辑“0”4647UART的操作串口初始化串口初始化发送数据发送数据接收数据接收数据48键盘接口设计n键盘模块可能用来输入数字型数据或者选择控制设
19、备的操作模式。n键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描。嵌入式控制器的功能很强,可能允分利用这一资源。49一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。键盘扫描阵列50键盘扫描过程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。n消抖算法:n组合键处理键盘扫描方法51LCD接口设计LCD显示模块液晶显示是一种被动的显
20、示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向。nLCD的背光:EL(场致发光):2000-3000小时和LED光源:字符模式,50000小时52LCD的显示方式n反射型LCD:底偏光片后面加了一块反射板,它一般在户外和光线良好的办公室使用。n透射型LCD:底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。n透反射型LCD:是处于以上两者之间,底偏光片能部分反光,一般也带背光源,光线好的时候,可关掉背光源;光线差时,可点亮背光源使
21、用LCD。53反射型LCD的结构54nLCD通常由两种方式,一种是带有驱动芯片的LCD模块,基本上属于半成品n一些新型的嵌入式处理器也可以直接使用芯片上的内置LCD控制器来构造显示模块,比如:s3c2410可以支持STN的彩色/灰度/单色三种模式和TFT模式,灰度模式下可支持4级灰度和16级灰度,彩色模式下最多支持256色,LCD的实际尺寸可支持到640X480。LCD的驱动方式55总线驱动方式n一般带有驱动模块的LCD显示屏使用这种驱动方式,由于LCD已经带有驱动硬件电路,因此模块给出的是总线接口,便于与单片机的总线进行接口。n驱动模块具有八位数据总线,外加一些电源接口和控制信号。而且自带显
22、示缓存,只需要将要显示的内容送到显示缓存中就可以实现内容的显示。由于只有八条数据线,因此常常通过引脚信号来实现地址与数据线复用,以达到把相应数据送到相应显示缓存的目的。56控制器扫描方式nS3C2410X中具有内置的LCD控制器,它具有将显示缓存(在系统存储器中)中的LCD图象数据传输到外部LCD驱动电路的逻辑功能。nS3C2410X中内置的LCD控制器可支持灰度LCD和彩色LCD。在灰度LCD上,使用基于时间的抖动算法(time-based dithering algorithm)和FRC(Frame Rate Control)方法,可以支持单色、4级灰度和16级灰度模式的灰度LCD。在彩色
23、LCD上,可以支持256级彩色。对于不同尺寸的LCD,具有不同数量的垂直和水平象素、数据接口的数据宽度、接口时间及刷新率,而LCD控制器可以进行编程控制相应的寄存器值,以适应不同的LCD显示板。57嵌入式处理器与LCD的连接嵌入嵌入式处式处理器理器LCD模块模块数据数据总线总线寄存器选择寄存器选择使能信号使能信号有有LCD控制控制器的嵌入式器的嵌入式处理器处理器LCDLCD控制信控制信号线号线58 从系统结构上来讲,由于显示器模块中已经有显示存储器。显存中的每一个单元对应LCD上的一个点,只要显存中的内容改变,显示结果便进行刷新。于是便存在两种刷新:1直接根据系统要求对显存进行修改,一种是只需
24、修改相应的局部就可以,不需要判断覆盖等;另一种就是有覆盖问题,计算起来比较复杂,而且每做一点小的屏幕改变就进行刷新,将增加系统负担。2 专门开辟显示内存,在需要刷新时候由程序进行显示更新。这样,不但可以减轻总线负荷,而且也比较合理,在有需要的时候进行统一的显示更新,界面也可以比较美观,不致由于无法预料的刷新动作导致显示界面闪烁。LCD模块的显示控制59前后台双重显示缓存的显示前后台双重显示缓存的显示模块结构模块结构 60LCDLCD接口设计接口设计1 1、实现过程简述:、实现过程简述:就是将要显示的数据放到一个特定的地址,这个特定的就是将要显示的数据放到一个特定的地址,这个特定的地址就是地址就
25、是frame memoryframe memory(帧存储器),这块空间是在系(帧存储器),这块空间是在系统内存中。统内存中。然后然后LCDLCD控制器将这些数据配合控制信号送到控制器将这些数据配合控制信号送到LCDLCD驱动驱动器完成显示。器完成显示。有相应的寄存器来设定这个地址及其大小。与显示数据有相应的寄存器来设定这个地址及其大小。与显示数据相配合完成显示的控制信号时序也是由相应的寄存器来相配合完成显示的控制信号时序也是由相应的寄存器来完成的。这些寄存器都在完成的。这些寄存器都在LCDLCD的控制器中。的控制器中。61LCDLCD控制器框图控制器框图62主要的寄存器主要的寄存器nLCD控
26、制寄存器(5个)n帧缓冲开始地址寄存器(3个)n临时调色板寄存器(Temp Palette Register)nLCD中断屏蔽寄存器(LCD Interrupt Mask Register)nLPC3600控制寄存器(LPC3600 Control Register)63LCDLCD控制寄存器的设置控制寄存器的设置n LCD的控制寄存器主要用来设置产生符合LCD屏的时序信号,各个参数要参考具体屏的实际参数,各个参数如下图所示,各个参数在控制寄存器中都由相应的域设置,系统中用的是TFT类型的LCD,时序图如下:64触摸屏接口设计触摸屏接口设计触摸屏的分类n电阻式触摸屏 n表面声波触摸屏 n红外式
27、触摸屏 n电容式触摸屏65电阻式触摸屏电阻式触摸屏n电阻技术触摸屏是一种对外界完全隔离的工作环境,故不怕灰尘、水汽和油污,可以用任何物体来触摸,比较适合工业控制领域及办公室内有限人的使用。n分为四线电阻和五线电阻触摸屏66四线电阻触摸屏原理四线电阻触摸屏原理67测量原理测量原理n在触摸点X、Y坐标的测量过程中,测量电压与测量点的等效电路图所示,图中P为测量点 XVYY68触摸屏芯片69FM(ADS)7843的特点的特点n实现触摸屏的驱动选择控制(X、Y通道)n对于输入电压或附加电压进行AD转换n同步串行接口n最大转换速率125KHzn可编程控制8位或者12位转换模式n工作电压2.7V-5.0V
28、n两个附加的输入端口70FM7843FM7843与与ARMARM的连接的连接71AD7843AD7843的工作时序的工作时序n同步串口(SIO)向ADS7843发送控制字n转换完成后从ADS7843串口读出电压转换值 A/DA/D转换时序(每次转换需要转换时序(每次转换需要2424个时钟周期)个时钟周期)72触摸屏与触摸屏与LCDLCD的配合的配合nFM 7843送回控制器的X与Y值仅是对当前触摸点的电压值的A/D转换值,它不具有实用价值。这个值的大小不但与触摸屏的分辨率有关,而且也与触摸屏与LCD贴合的情况有关。而且,LCD分辨率与触摸屏的分辨率一般来说是不一样,坐标也不一样,因此,如果想得
29、到体现LCD坐标的触摸屏位置,还需要在程序中进行转换。转换公式如下:nx=(x-TchScr_Xmin)*LCDWIDTH/(TchScr_Xmax-TchScr_Xmin)ny=(y-TchScr_Ymin)*LCDHEIGHT/(TchScr_Ymax-TchScr_Ymin)n其中,TchScr_Xmax、TchScr_Xmin、TchScr_Ymax和TchScr_Ymin是触摸屏返回电压值x、y轴的范围,LCDWIDTH、LCDHEIGHT是液晶屏的宽度与高度。73触摸屏(键盘)驱动程序结构触摸屏(键盘)驱动程序结构74触摸屏的驱动触摸屏的驱动#define ADS7843_CTRL
30、_START0 x80#define ADS7843_GET_X0 x50#define ADS7843_GET_Y0 x10#define ADS7843_CTRL_12MODE0 x0#define ADS7843_CTRL_8MODE0 x8#define ADS7843_CTRL_SER0 x4#define ADS7843_CTRL_DFR0 x0#define ADS7843_CTRL_DISPWD0 x3/Disable power down#define ADS7843_CTRL_ENPWD0 x0/enable power down#define ADS7843_PIN_CS
31、(16)/GPF6#define ADS7843_PIN_PEN(15)/GPG5/#define ADS7843_PIN_BUSY(16)/触摸屏动作/#define TCHSCR_ACTION_NULL0#define TCHSCR_ACTION_CLICK1/触摸屏单击#define TCHSCR_ACTION_DBCLICK2/触摸屏双击#define TCHSCR_ACTION_DOWN3/触摸屏按下#define TCHSCR_ACTION_UP4/触摸屏抬起#define TCHSCR_ACTION_MOVE5/触摸屏移动#define TCHSCR_IsPenNotDown()
32、(rPDATG&ADS7843_PIN_PEN)void TchScr_init(void);void TchScr_GetScrXY(int*x,int*y);75函数函数TchScrGetScrXY(int*x,int TchScrGetScrXY(int*x,int*y)*y)的结构的结构76读取触摸点坐标读取触摸点坐标77本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计78以太网接口的基本知
33、识以太网接口的基本知识 1、传输编码n曼彻斯特编码n差分曼彻斯特编码79以太网协议以太网协议 n以太网以太网MACMAC层物理传输帧层物理传输帧 (IEEE802.3 IEEE802.3)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超过1500字节可选32位PRPR:同步位,收发双方的时钟同步,也指明传输的速率(同步位,收发双方的时钟同步,也指明传输的速率(10M10M、100M100M)SDSD:分隔位分隔位,表示下面跟着的是真正的数据表示下面跟着的是真正的数据,而不是同步时钟而不是同步时钟DADA:目目的地址的地址,以太网的地址为以太网的地址为4848位地址。
34、如果为都为位地址。如果为都为F,F,则是广播地址则是广播地址SASA:源地址源地址,48,48位位,表明该帧的数据是哪个网卡发的表明该帧的数据是哪个网卡发的,即发送端网卡地址即发送端网卡地址TYPETYPE:类型字段,表明该帧的数据是什么类型。如:类型字段,表明该帧的数据是什么类型。如:0800H 0800H 表示数据为表示数据为IPIP 包,包,0806H0806H表示数据为表示数据为ARPARP包,包,814CH814CH是是SNMPSNMP包,包,8137H8137H为为IPX/SPXIPX/SPX包包 DATADATA:数据段,该段数据不能超过:数据段,该段数据不能超过15001500
35、字节。字节。PADPAD:填充位。以太网帧传输的数据包最小不能小于填充位。以太网帧传输的数据包最小不能小于6060字节字节,当数据段不当数据段不 足足4646字节时,后面补字节时,后面补000000.(000000.(当然也可以补其它值当然也可以补其它值)FCS:32FCS:32位位CRCCRC数据校验位。该校验由网卡自动完成数据校验位。该校验由网卡自动完成80以太网的数据传输特点以太网的数据传输特点nPR,SD,PAD,FCS这几个数据段是由网卡自动产生的;只需要理解DADA、SASA、TYPETYPE、DATADATA四个段的内容n所有数据位的传输由低位开始(传输的位流使用曼彻斯特编码)n
36、以太网的冲突退避算法是由硬件自动执行的nDA+SA+TYPE+DATA+PAD最小为60字节,最大为1514字节n以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(在嵌入式的环境中一般不用),一个是它自已的地址n任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配。81嵌入式的以太网方案嵌入式的以太网方案n嵌入式处理器网卡芯片(RTL8019)n对嵌入式处理器没有特殊要求,通用性强n处理器和网络数据交换通过外部总线,速度慢,不适合于100M网络n带有以太网络接口的嵌入式处理器n处理器面向网络应用n处理器和网络数据交换通过内部总线,速度快82RTL8019RT
37、L8019的原理框图的原理框图83嵌入式网络接口的特点嵌入式网络接口的特点n与常规的网卡设计思路不同的是,在嵌入式系统中,系统的精简一直是个主要的原则。RTL8019AS作为网卡,时需要一片EEPROM作为配置存储器,来确定通讯的端口地址,中断地址,网卡的物理地址,工作模式,制造厂商等信息;n而在嵌入式系统中,可以使用RTL8019AS的默认配置和一些管脚作为网卡的初始化方法。这样可以节省配置存储器,减小嵌入式硬件平台的体积。84基于基于RTL8019RTL8019的嵌入式以太网设计的嵌入式以太网设计1 RTL8019AS1 RTL8019AS的初始化的初始化 RTL8019支持即插即用模式和
38、非即插即用模式。在嵌入式系统中,网卡的外设通常是不经常插拔的,所以,为了系统的精简,配置RTL8019为非即插即用模式。有着固定的中断,有着固定的端口地址,假设是端口是0 x300(这里的端口是相对于ISA总线来说的端口,对于ARM的总线,需要重新计算地址)。这些配置可以通过RTL8019的外部管脚,在系统上电复位的时候,自动配置起来。85关于关于RTL8019RTL8019的的RAMRAMnRTL8019含有16K字节的RAM,地址为0 x4000-0 x7fff(指的是RTL8019内部的存储地址,是RTL8019工作用的存储器,可以通过远程DMA访问),每256个字节称为一页,共有64页
39、。页的地址就是地址的高8位,页地址为0 x40-0 x7f。这16k的ram的一部分用来存放接收的数据包,一部分用来存储待发送的数据包 862 2 通过通过RTL8019ASRTL8019AS发送数据发送数据 作为一个集成的以太网芯片,数据的发送校验,总线数据包的碰撞检测与避免是由芯片自己完成的。我们只需要配置发送数据的物理层地址的源地址、目的地址、数据包类型以及发送的数据就可以了。873 3、通过、通过RTL8019ASRTL8019AS接收数据接收数据n在RTL8019的初始化程序中已经设置好了接收缓冲区的位置,并且配置好了中断的模式。当有一个正确的数据包到达的时候,RTL8019会产生一
40、个中断信号,在ARM中断处理程序中,接收数据。n数据的接收比较简单,即通过远端DMA把数据从RTL8019的RAM空间读回ARM中处理。88TCP/IP TCP/IP 协议的层次协议的层次应用层(Application)BSD套接字(BSD Sockets)传输层(Transport)TCP、UDP网络层(Network)IP、ARP、ICMP、IGMP数据链路层(Data Link)IEEE802.3 Ethernet MAC物理层(Physical)89嵌入式以太网中主要处理的协议嵌入式以太网中主要处理的协议nARP(Address Resolation Protocol)地址解析协议 n
41、ICMPICMP(Internet Control Messages Protocol)网络控制报文协议(用来与其它主机交换错误报文和其它重要信息,常用的网络诊断工具ping和traceroute)nIP(IP(Internet Protocol)网际协议nTCP(Transfer Control Protocol)传输控制协议nUDP(User Datagram Protocol)用户数据包协议90ARPARP地址解析协议地址解析协议n网络层用32 bit的IP地址来标识不同的主机,而链路层使用48 bit的物理(MAC)地址来标识不同的以太网接口。只知道目的主机的IP地址并不能发送数据帧给
42、它,必须知道目的主机网络接口的MAC地址才能发送数据帧。nARP的功能是实现从IP地址到对应物理地址的转换。源主机发送一份包含目的主机IP地址的ARP请求数据帧给网上的每个主机,称作ARP广播,目的主机的ARP收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个包含目的主机IP地址及对应的MAC地址的ARP回答给源主机。n每台主机上都有一个ARP高速缓存,存放最近的IP地址到硬件地址之间的映射记录。通常每一项的生存时间为20分钟91ICMPICMP网络网络控制报文协议控制报文协议 nIP层的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要控制信息。nICMP报文是
43、在IP数据包内部被传输的。n两个实用的网络诊断工具,Ping和Traceroute(Tracert),都是利用该协议工作的。92IPIP网际协议网际协议nIP工作在网络层,是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP以及IGMP数据都以IP数据包格式传输。nIP数据包最长可达65535字节,其中报头占32 bit的数目。包含各32 bit的源IP地址和目的IP地址。在嵌入式应用中,简化设计,IP数据包长度等于数据链路层的数据长度。93TCPTCP传输控制协议传输控制协议 TCP是一个面向连接的可靠的传输层协议。TCP为两台两台主机提供高可靠性的端到端数据通信。主要包括:
44、n发送方把应用程序交给它的数据分成合适的小块,并添加附加信息(TCP头),包括顺序号,源、目的端口,控制、纠错信息等字段,称为TCP数据包。并将TCP数据包交给下面的网络层处理。n接受方确认接收到的TCP数据包,重组并将数据送往高层。94UDPUDP协议协议 nUDP是一种无连接不可靠的传输层协议。n把应用程序传来的数据加上UDP头(包括端口号,段长等字段),作为UDP数据包发送出去,但是并不保证它们能到达目的地。可靠性由应用层来提供。就象发送一封写有地址的一般信件,却不保证它能到达。95基于基于ARMARM和和uCOS-IIuCOS-II的的TCP/IPTCP/IP协议协议 n向ARM和uC
45、/OS移植一个TCP/IP协议栈n采用uC/OS自带的TCP/IP协议栈96BSDBSD套接字套接字(BSD Sockets)(BSD Sockets)nBSD Sockets使用的最广泛的网络程序编程方法,主要用于应用程序的编写,用于网络上主机与主机之间的相互通信nUNIX,Linux,VxWorks均支持BSD Sockets,Windows的Winsock基本上是来自BSD SocketsnSocket分为Stream Sockets和Data SocketsnStream Sockets是可靠性的双向数据传输,使用TCP协议nData Sockets是不可靠连接,使用UDP协议97套接
46、字的使用套接字的使用UDP服务器端和一个UDP客户端通信的程序过程n创建一个SocketSocketsFd=socketsocket(AF_INET,SOCK_DGRAM,0)n把Socket和本机的IP,UDP口绑定bindbind(sFd,(struct sockaddr*)&serverAddr,sockAddrSize)n循环等待,接收(recvfromrecvfrom)或者发送(sendfrom)信息n关闭Socket,通信终止 closeclose(sFd)98本节提要本节提要1 13 32 25 54 46 6基于基于ARM的硬件系统体系结构的硬件系统体系结构存储器接口设计存储器
47、接口设计网络接口设计网络接口设计I/OI/O接口设计接口设计人机交互接口设计人机交互接口设计其它通讯接口设计其它通讯接口设计99CAN总线设计100CANCAN总线接口设计总线接口设计nController Area Network,控制器局域网,现场总线之一。n是一种多主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。n主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面nCiA(CAN in Automation)为全球应用CAN技术的权威。101CANCAN总线特点总线特点n 低成本n 远距离传输(长达1
48、0Km)n 相对高速的数据传输速率(1Mbit/s)n 可根据报文的ID决定接收或屏蔽该报文 n 可靠的错误处理和检错机制n 发送的信息遭到破坏后,可自动重发 n 节点在错误严重的情况下具有自动退出总线的功能 102CANCAN总线控制器体系结构总线控制器体系结构协议控制器协议控制器状态状态/控制控制寄存器寄存器消息对象消息对象接收缓冲区接收缓冲区宿主机宿主机接口接口总总线线接接口口CAN总线总线103嵌入式系统上的嵌入式系统上的CANCAN总线接口总线接口n处理器本身带有CAN总线控制器n使用CAN总线控制芯片nSJA1000Philips独立CAN控制器,替代82C200,支持CAN2.0
49、AB,同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能,扩展的接收缓冲器(64字节FIFO),增强的环境温度范围(-40-+125)。并行总线接口。nMCP2510/5MicroChip支持CAN2.0AB,同时支持11位和29位ID,位速率可达1M,具有总线仲裁功能。2个接收缓冲区,3个发送缓冲区。高速SPI接口。104CANCAN总线驱动芯片总线驱动芯片n82C250CAN总线收发器,是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动额接收能力,有很强的抗电磁干扰(EMI)的能力,至少可挂110个节点。nTJA1050、1040替代82
50、C250产品,电磁辐射更低,无待机模式105uCOS-IIuCOS-II下的驱动程序下的驱动程序nuCOS-II没有给驱动程序提供统一的标准接口n任何在系统中对于硬件的管理都可以称为uCOS的驱动程序n为了方便驱动程序的模块化划分,提高代码的可重用性,uCOS-II的驱动程序可以自定义标准106驱动程序抽象层驱动程序抽象层n操作系统只和特定的驱动抽象层通讯,无论在抽象层下面对应的是什么类型的设备,对操作系统和用户的应用程序来说都是统一的接口。n通过使用C语言的指针函数的方法,实现了驱动抽象层的软件设计。通过指向不同驱动子程序的函数指针,为同一操作系统挂载了多种驱动程序。107uCOS-IIuC