【文档说明】嵌入式系统(第5章-嵌入式系统硬件平台及接口设计)课件.ppt,共(120)页,1.967 MB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-92645.html
以下为本文档部分文字说明:
1嵌入式系统设计——ARM与C/OS-Ⅱ第5章基于ARM的嵌入式硬件结构设计2嵌入式系统的软/硬件框架机械装置嵌入式微处理器SDRAMROMI/OA/DD/A人机交互接口通用接口实时操作系统(RTOS)图形用户接口BSP/HAL硬件抽象层/板极支持
包任务管理文件系统应用程序嵌入式计算机系统传感器1传感器2传感器N......驱动器1驱动器2驱动器N......硬件层软件层中间层功能层被控对象334嵌入式系统的设计步骤体系结构设计系统需求分析:规格说明书机
械系统设计硬件设计软件设计系统集成系统测试产品51)需求分析阶段1.分析用户的需求2.确定硬件软件3.检查需求分析的结果4.确定项目的约束条件5.概要设计6需求分析-罗列用户的需求(1)系统用于什么任务?(2)系统从用户或其他源接收什么输入?(3)系统从用户或其他源输出什么?(4)用户想要如何同
系统打交道?(5)系统的重量和体积如何?(6)系统连接何种外设?(7)系统是否需要运行某些现存的软件?(8)系统处理哪种类型的数据?(9)系统是否要与别的系统通讯?(10)系统是单机还是网络系统?7需求分析-罗列用户的需求(11)系统的响应时间是多少?(1
2)需要什么安全措施?(13)系统在什么样的环境下运行?(14)外部存储媒介和内存需要多大?(15)系统的可拆装性,可靠性和牢固性的期望值是什么(16)如何给系统供电?(17)系统如何向用户通报故障?(18)是否需要任何
手动或机械代用装置?(19)系统是否将具有远程诊断或更正问题的功能?(20)其他问题82)体系结构设计决定因素1.系统是硬实时系统还是软实时系统2.操作系统是否需要嵌入3.物理系统的成本、尺寸和耗电量是否是产品成功的关键因素4.选择处理器和相关硬件5.其他93)详细设计阶段-
硬件与软件划分决定哪些用硬件实现,哪些用软件实现?例如:1.浮点运算2.网络通信控制器实现的功能3.软调制解调器/硬调制解调器4.软件压缩解压/硬件压缩解压图像10详细设计阶段-硬件设计1.设计硬件子系统:top-down方法1.分成模块2.设
计框图3.例:CPU子系统、存储器子系统等2.定义硬件接口1.I/O端口2.硬件寄存器3.共享内存4.硬件中断5.存储器空间分配6.处理器的运行速度11详细设计阶段-软件设计设计软件子系统总体设计、模块设计定义软件接口模块接口、函
数接口12详细设计阶段-检查设计小项目自己审查设计文档中等项目拿给同事朋友并向他们解释你的设计大型项目-审查会设计者应作一个更正式的报告。由于这是一个设计审查会,召集一群人,主要由工程师组成,
并尽可能包括一些对项目有不同看法角度的成员,如做市场的人员、最终用户134)系统集成把系统的软件、硬件和执行装置集成在一起,进行调试,发现并改进设计过程中的错误。5)系统测试对设计好的系统进行测试,看
其是否满足给定的要求。14嵌入式系统的硬件体系结构通用嵌入式微处理器应用软件数据可重构计算部件配置存储器数据ASIC数据通用微处理器可重构计算机ASIC15基于ARM和FPGA的嵌入式系统可重构设计ARM7TDMI嵌入式微处理器内存8MBSDRAM电子硬
盘16MBFLASHBIOS1MBFLASH微处理器模块FPGA配置存储器输入输出接口FPGAI/O模块16S3C2410的内部结构172410的存储器系统—可通过软件选择大小端—地址空间:每个Bank128Mbytes(总共1GB)—共8个ba
nks6个Bank用于控制ROM,SRAM,etc.剩余的两个Bank用于控制ROM,SRAM,SDRAM,etc.—除bank0(16/32-bit)外,所有的Bank都可以通过编程选择总线宽度=(8/16/32-bit)—7个Bank固定
起始地址;—最后一个Bank可调整起始地址;—最后两个Bank大小可编程—所有Bank存储周期可编程控制;18S3C2410的存储器配置19实验平台的体系结构S3C2410微处理器IIS音频电路JTAG调试接口LCD液晶屏SD卡插座USBDEVI
CE接口USBHOST接口10/100网卡ADC电位器RS232串口0,1RS485/IrDA直流电机触摸屏接口CAN总线电路SPISPIPWMUART2UART0,1IISSDADCJTAGSDRAMNand
FlashLCD扩展存储(IDE等)电源、时钟逻辑20基于ARM的嵌入式系统硬件结构设计主要介绍基于ARM7的嵌入式硬件开发平台的设计方法,包括结构、主要接口、存储器选用方案以及外设、显示等方面的内容。嵌入式硬件开发平台的体系结构外围存储器接口设计方法键盘、LCD等人机
交互接口的设计触摸屏的设计以太网设计21基于ARM的嵌入式硬件平台体系结构基于ARM架构的32位微处理器SamsungS3C44B0X1MB线性Flash(BIOS)8MBSDRM(系统内存)16MB非线性Flash(硬盘)USB接口USBN9
603两个RS-232串行通信接口JTAG调试端口LCD显示键盘输入TCP/IP协议CANBUS22ARM实验平台与PC机连接关系框图基于ARM架构的32位微处理器SamsungS3C44B0X1MB线性Flash(BIOS)8MBSDRM(系统内存)16MB非线性Flash(硬盘)USB接口US
BN9603两个RS-232串行通信接口JTAG调试端口LCD显示键盘输入TCP/IP协议CANBUSARM硬件开发平台PC机USB口并口RS232Jtag电缆网口23嵌入式开发板与PC机的串行通讯嵌入式开发板和PC机的通讯电缆可以按照如图所示
的方式连接。PC235235RS-232串行接口RS-232串行接口嵌入式开发板24ARM架构的处理器有的带有指令快存和数据快存。但是片内都不带有RAM和ROM。系统所需的RAM和ROM(包括闪存)都通过总线外接。快存(Cache)是一种小容量、高速度
的存储器,用于处理器与主存之间存放当前被使用的主存内容,以减少访问主存的等待时间。2525高速缓冲存储器工作原理块号M块内地址N主存->cache地址变换块号m块内地址ncache替换策略替换块装入块主存储器未命中已满命中未满虚拟地址(来自CPU)26存储系统的构成分析以基于
S3C44B0X的存储系统为例:支持数据存储的大/小端选择(通过外部引脚和程序进行选择)地址空间:具有8个存储体,每个存储体可达32Mb,总共可达256MB。对所有存储体的访问大小均可进行改变(8
位/16位/32位)8个Bank中,Bank0-Bank5可支持ROM、SRAM;Bank6、Bank7可支持ROM、SRAM和EDO/SDRAM等。27典型系统中存储体的分配情况存储体与存储体的接口Bank0BIOS512K×2FlashBan
k116MFlash硬盘Bank2USB接口Bank3LCD显示模块Bank4保留Bank5保留Bank6系统内存SDRAMBank7保留28系统的存储空间分配Bank0:1片2MBNORFlash,放置系统引导程序,系统上电复位后,PC指针自动指向Ba
nk0的第一个单元,进行系统自举。以便从硬盘中将系统文件和用户应用程序复制到SDRAM内存中执行。Bank1:非线性寻址。Bank1上接16MNANDFlash,当做系统硬盘使用,可以构造文件系统,存放海量数据。用SDRAM当作系统内存,只有Bank
6/Bank7能支持SDRAM,所以将SDRAM接在Bank6上。Bank2:PDIUSBD12。USB设备端接口芯片,占用系统外部中断0。8位数据总线。29Bank5:RTL8019AS,ISA总线兼容的10M以太网(PHY+M
AC层)控制芯片。占用系统外部中断1,16位数据总线;扩展IO口Bank6:SDRAM,起始地址为0xC000000。在SDRAM中,前512Kbyte的空间划分出来,作为系统的LCD显示缓冲区使用(更新其中的数据,就可以更新LCD的显示)。系统的程序存
储空间从0xC080000开始。也就是,引导系统的时候,需要把system.bin文件复制到0xC080000开始的地址空间,把PC指针指向0xC080000。303)BootLoader的任务BootLoa
der是系统加电后首先运行的一段代码,完成整个系统的加载启动任务。它首先完成系统硬件的初始化,包括时钟的设置、存储器的映射等。并设置堆栈指针,然后跳转到操作系统内核入口,如系统在加电或复位时通常从地址0x00000000处开始执行,而在这个地址处安排的通常就是系统的BootLoader程序。每种
嵌入式微处理器体系结构都有不同的BootLoader。通常,BootLoader只有几十KB的大小,其作用相当于普通pc机的BIOS,是在系统复位后执行的第一段代码31BootLoader的操作模式启动加载模式(Au
tonomous):BootLoader从目标机的固体存储设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。这种模式是BootLoader的正常工作模式,因此在嵌入式产品发布的时侯,BootLoader显然必须工作在这种模式下。32下载模式:目标机中的BootLoader通过
串口或网络连接等通信手段从宿主机上下载文件,如操作系统的内核映像和根文件的映像等。从宿主级上下载的文件通常首先被BootLoader保存到目标机的RAM中,然后再被BootLoader写到目标机的Flash中。这种模式通常在
第1次安装操作系统内核和根文件系统时被使用,另外系统更新时也会使用这种方式。334)存储管理单元MMU虚拟内存管理占用了相当一部分系统资源,因此在系统资源非常有限的嵌入式系统中可不采用虚拟内存管理,使用不带有MMU的微处理器。这样要采
用动态内存管理方式,即当程序的某一部分需要使用内存时,利用操作系统提供的分配函数来处理,一旦使用完毕,可通过释放函数来释放所占用的内存,这样内存就可以重复使用。34但在具有MMU的ARM系统中,存储管理单元MMU主要完成工作:虚拟存储
空间到物理存储空间的映射。在ARM中采用了页式虚拟存储管理。存储器访问权限的控制。设置虚拟存储空间的缓冲的特性。352410的UARTS3C2410A的UART(UniversalAsynchronousReceiverandTransmitter)提供了三个独立的异步
串行I/O口,每一个都可以工作在中断模式或DMA模式,即UART可以产生中断或DMA请求以在CPU和UART之前传送数据,使用系统时钟,UART最高可以支持230.4Kbps的位传输率。如果采用外部带时钟
的UART,则UART可以实现更度速度的传输;每个UART包括2个16Byte的接收/发送FIFO。36UART控制框图接收移相器接收FIFO(16Byte)数据接收器波特率发生器发送移相器发送FIFO(16Byte)数据接收器控制单元时钟源TXDnRXDn并行总线37异步串行
通讯简介在一条传输线上完成单向传输。将传输数据的字符一位接一位的传送。接收方对于同一条线上的一连串连续数学信号,首先将其分割成位,再按位组成字符。每个字符需要确定起始位和结束位,字符与字符间还
可能有长度不定的空闲时间,因此传输效率较低。38字符串行输出格式:发送前:线路处于空闲状态,连续发送“1”开始发送:首先,发送一位起始位“0”然后,发送连续的二进制位,数据位可以为5、6、7、8随后,紧跟
一位奇偶校验位(可选择奇/偶/无校验)最后,发送停止位“1”,可以有1位、1.5位或2位停止位39串行通讯硬件规范及连接方法EIARS-232C物理特征:DB-25DB-15DB-9信号连线:保护地、TX
D/RXD、RTS/CTS、DCD、DSR、DTR、R1电平规定:-5V~-15V之间的电平表示逻辑“1”+5V~+15V之间的电平表示逻辑“0”4041UART的操作将寄存器ULCONn、UCONn置零设置寄存器ULC
ONn、UCONn、UBRDIV延时开始发送队列是否为空?延时是否发送数据WrUTXH0(data)开始接收队列是否为满?是否接收数据RdURXHn()串口初始化发送数据接收数据42人机交互接口43嵌入式开发板与PC机的串行通讯嵌入式开发板和PC机的通讯电缆可以按照如图所示的方式连接
。PC235235RS-232串行接口RS-232串行接口嵌入式开发板44人机交互接口LCD显示模块液晶显示是一种被动的显示,它不能发光,只能使用周围环境的光。它显示图案或字符只需很小能量。液晶显示所用的液晶材料是一种
兼有液态和固体双重性质的有机物,它的棒状结构在液晶盒内一般平行排列,但在电场作用下能改变其排列方向45LCD有三种显示方式LCD有三种显示方式:反射型,透射型和透反射型。(1)反射型LCD的底偏光片后面加了一块反
射板,它一般在户外和光线良好的办公室使用。(2)透射型LCD的底偏光片是透射偏光片,它需要连续使用背光源,一般在光线差的环境使用。(3)透反射型LCD是处于以上两者之间,底偏光片能部分反光,一般也带背光源,光线好的时候,可关掉
背光源;光线差时,可点亮背光源使用LCD。46反射型LCD的结构偏光片电极导电橡胶液晶偏光片配向膜玻璃电极胶框电极反射片玻璃47LCD显示方式还分正性和负性。正性LCD呈现白底黑字,在反射和透反射型LCD中显示最佳;负性LCD呈现黑底白字,一般用于透射型LCD,加上背光源,字体清晰,易于阅读。正
显模式(白底黑字)负显模式(黑底白字)48LCD通常有两种方式,一种是带有驱动芯片的LCD模块,基本上属于半成品如果有需要,也可以直接使用芯片上的内置LCD控制器来构造显示模块,它可以支持彩色/灰度/单色三种模式,灰度模式下可支持4级灰度和16级灰度
,彩色模式下最多支持256色.49嵌入式处理器与LCD的连接嵌入式处理器LCD模块数据总线寄存器选择使能信号50键盘模块键盘模块可以用来输入数字型数据或者选择控制设备的操作模式。键盘有两种方案:一是采用现有的一些芯片实现键盘扫描;再就是用软件实现键盘扫描
。嵌入式控制器的功能很强,能允分利用这一资源。51处理器I/O口VCC5-30ms10简单键盘电路按键抖动52一个瞬时接触开关(按钮)放置在每一行与线一列的交叉点。矩阵所需的键的数目显然根据应用程序而不同。每一行由一个输出
端口的一位驱动,而每一列由一个电阻器上拉且供给输入端口一位。+5V123456789B1B2B3B1B2B3行(输出端口)列(输入端口)A1A2A353+5V123456789B1B2B3B1B2B3行(输出端口)列(输入端口)A1A2A354键盘扫描过
程就是让微处理器按有规律的时间间隔查看键盘矩阵,以确定是否有键被按下。每个键被分配一个称为扫描码的唯一标识符。应用程序利用该扫描码,根据按下的键来判定应该采取什么行动。55触摸屏设计56触摸屏分类电阻式触摸屏表面声波触摸屏红外式触摸
屏电容式触摸屏57电阻式触摸屏电阻技术触摸屏是一种对外界完全隔离的工作环境,故不怕灰尘、水汽和油污,可以用任何物体来触摸,比较适合工业控制领域及办公室内使用。分为四线电阻和五线电阻触摸屏58四线电阻触摸屏原理59测量原理在触摸点X、Y坐标的测量过程中,测量电压
与测量点的等效电路图所示,图中P为测量点XVYY60ARMJTAG调试61什么是JTAG?JTAG是JointTestActionGroup的缩写;是IEEE1149.1标准JTAG的建立使得集成电路固定在PCB上,只通过边界扫描便可以被测试在ARM7TDMI处理器中,可以通过J
TAG直接控制ARM的内部总线,IO口等信息,从而达到调试的目的6263几种常用的调试方法指令集模拟器一种利用PC机端的仿真开发软件模拟调试的方法。驻留监控软件驻留监控程序运行在目标板上,PC机端调试软件可通过并口、串口、网口与之交互,以完成程序执行、存储器
及寄存器读写、断点设置等任务JTAG仿真器通过ARM芯片的JTAG边界扫描口与ARM核进行通信,不占用目标板的资源,是目前使用最广泛的调试手段在线仿真器(In-CircuitEmulator,ICE)使用仿真头代替目标板上的CPU,可以完全仿真ARM芯片的行为。但结构较复杂,价格昂贵,通常
用于ARM硬件开发中64ARM的JTAG调试结构AngelJTAG65宿主机调试器宿主机调试器通过固定的协议控制下位机(协议转换器)。比如,SDT中通过Angel协议或者第三方调试器所提供的协议宿主机调试器只发送宏观的命令,比如:程序
运行、终止。读内存、ARM寄存器等通讯的介质可以是串口、并口、以太网、USB等66JTAG与AngelJTAG调试:协议转换器解释上位机传送过来的命令,通过JTAG控制ARM执行。Angel调试:协议转换器可以直接做为目标板的Firmware(固件)的一部分。直接执行从宿主
机传送过来的调试命令;并回送相应的数据。Angel可以节省专门的JTAG仿真器,但是,它需要软件,或者是嵌入式操作系统的支持,做不到完全的实时仿真。而JTAG仿真是通过硬件和控制ARM的EmbeddedICE实现的,可以做到实时仿真。67实验二讲解68键盘及LED驱动实验6970一、实验目
的1.学习键盘及LED驱动原理。2.掌握zlg7289芯片的使用方法。二、实验内容通过zlg7289芯片驱动12键(3x4)的键盘和8个共阴极LED,将按键值在LED上显示出来。717273ZLG7289A的指令分为三种类型
:纯指令、带有数据的指令和读键盘数据指令。复位指令WriteSDIO(0xA4)测试指令WriteSDIO(0xBF)左移指令WriteSDIO(0xA1)右移指令WriteSDIO(0xA0)ZLG7289纯指令(单字节指令)74双字
节指令(长度为16位,分两次传送)写数据指令(方式0译码)WriteSDIO(0x8?);‘?’指定位,即在第几个数码管上显示,开发板最左边管为No.1,依次类推,见下表WriteSDIO(?);‘?’是欲显示的数字(0~9)A2A1A0数码管编号000No.1001No.201
0No.3011No.4100No.5101No.6110No.7111No.875写数据指令(方式1译码)WriteSDIO(0xC?);WriteSDIO(?);含义同上条指令消隐指令WriteSDIO(0x98);WriteSDIO(0x??);‘??’中的每一个二进制
位均对应着一个数码管,0=消隐,1=显示76闪烁指令WriteSDIO(0x88);WriteSDIO(0x??);‘??’中的每一个二进制位均对应着一个数码管,0=闪烁,1=不闪77需要动手编写的内容:在zlg7289.c中7289驱动函数ZLG7
289_ENABLE()发复位命令WriteSDIO(0xA4)ZLG7289_DISABLE()延时Zlg7289复位子函数流程图78从7289读取键值流程图ZLG7289_ENABLE()ZLG7289_DISABLE()读取键制值ReadSDIO()发送读取键值命令WriteS
DIO(0x15)79main.c中主函数流程图开发板初始化7289复位键值读取延时开启7289发送个位数延时键值>9?发送十位数显示十、个位数只显示个位关闭7289是否80main.c中主函数流程图开发板初始化7289复位键值读取延时开启728
9发送个位数延时键值>9?发送十位数显示十、个位数只显示个位关闭7289是否817289命令字定义#defineZLG7289_CMD_RST0xA4//复位#defineZLG7289_CMD_TEST0xBF//测试模式#defineZLG7289_
CMD_LSHIFT0xA1//左移#defineZLG7289_CMD_RSHIFT0xA0//右移#defineZLG7289_CMD_CLSHIFT0xA3//循环左移#defineZLG7289_CMD_CRSHIFT0xA2//循环右移#defineZLG7289_
CMD_DATA00x80//下载数据且按方式0译码#defineZLG7289_CMD_DATA10xC8//下载数据且按方式1译码#defineZLG7289_CMD_DATA30x90//下载数据但不译码#defineZLG7289_CMD_FLASH0x88//闪烁控
制#defineZLG7289_CMD_HIDE0x98//消隐控制#defineZLG7289_CMD_LDOT0xE0//段点亮指令#defineZLG7289_CMD_HDOT0xC0//段关闭指令#defineZLG7289_CMD_RDKEY0x15//读键盘数据指令82DEF.h中
定义的数据类型:#defineU32unsignedint#defineBOOLint#defineU16unsignedshort#defineS32int#defineS16shortint#defineU8unsignedchar#defineS8char#def
ineu32unsignedint#defineu16unsignedshort#defines32int#defines16shortint#defineu8unsignedchar#defines8char83嵌入式以太网设计84以太网接口的基本知识1、传输编码曼彻斯特编
码差分曼彻斯特编码85以太网协议以太网MAC层物理传输帧(IEEE802.3)PRSDDASATYPEDATAPADFCS56位8位48位48位16位不超过1500字节可选32位PR:同步位,收发双方的时钟同
步,也指明传输的速率(10M、100M)SD:分隔位,表示下面跟着的是真正的数据,而不是同步时钟DA:目的地址,以太网的地址为48位地址。如果为都为F,则是广播地址SA:源地址,48位,表明该帧的数据是哪个网卡发的,即发送端的网卡
地址TYPE:类型字段,表明该帧的数据是什么类型的数据。如:0800H表示数据为IP包,0806H表示数据为ARP包,814CH是SNMP包,8137H为IPX/SPX包DATA:数据段,该段数据不能
超过1500字节。PAD:填充位。以太网帧传输的数据包最小不能小于60字节,当数据段不足46字节时,后面补000000.....(当然也可以补其它值)FCS:32位CRC数据校验位。该校验由网卡自动完成86以太网的数据传输特点PR,SD,PA
D,FCS这几个数据段是由网卡自动产生的;只需要理解DA、SA、TYPE、DATA四个段的内容所有数据位的传输由低位开始(传输的位流使用曼彻斯特编码)以太网的冲突退避算法是由硬件自动执行的DA+SA+TYPE+DATA+PAD最小为60字节,最大为1
514字节以太网卡可以接收三种地址的数据,一个是广播地位,一个是多播地址(在嵌入式的环境中一般不用),一个是它自已的地址任何两个网卡的物理地址都是不一样的,是世界上唯一的,网卡地址由专门机构分配。87嵌入式的以太网方案嵌入式处理器+网卡芯片(RT
L8019)对嵌入式处理器没有特殊要求,通用性强处理器和网络数据交换通过外部总线,速度慢,不适合于100M网络带有以太网络接口的嵌入式处理器处理器面向网络应用处理器和网络数据交换通过内部总线,速度快88RTL8019的原理框图嵌入式处理
器(S3C44BOX)10M以太网芯片(RTL8019)网卡隔离变压器RJ45接口89嵌入式网络接口的特点与常规的网卡设计思路不同的是,在嵌入式系统中,系统的精简一直是个主要的原则。RTL8019AS
作为网卡,时需要一片EEPROM作为配置存储器,来确定通讯的端口地址,中断地址,网卡的物理地址,工作模式,制造厂商等信息;而在嵌入式系统中,可以使用RTL8019AS的默认配置和一些管脚作为网卡的初始化方法。这样可以节省配置存储
器,减小嵌入式硬件平台的体积。90基于RTL8019在嵌入式以太网设计1RTL8019AS的初始化RTL8019支持即插即用模式和非即插即用模式。在嵌入式系统中,网卡的外设通常是不经常插拔的,所以,为了系统的精简,配置RTL8019为非即插即用模式。有着固定
的中断,有着固定的端口地址,假设是端口是0x300(这里的端口是相对于ISA总线来说的端口,对于ARM的总线,需要重新计算地址)。这些配置可以通过RTL8019的外部管脚,在系统上电复位的时候,自动配置起来。91关于RTL8019的RAMRTL8019含有16K字
节的RAM,地址为0x4000-0x7fff(指的是RTL8019内部的存储地址,而不是ISA总线的地址,是RTL8019工作用的存储器,可以通过远程DMA访问),每256个字节称为一页,共有64页。页的地址就是地址的高8位,页地址为0x40--0x7f。这16k的ram的一
部分用来存放接收的数据包,一部分用来存储待发送的数据包922通过RTL8019AS发送数据作为一个集成的以太网芯片,数据的发送校验,总线数据包的碰撞检测与避免是由芯片自己完成的。我们只需要配置发送数据的物理层地址的源地址、目的地址、数据包类型以及发送的数据就可以了。933、通过R
TL8019AS接收数据在RTL8019的初始化程序中已经设置好了接收缓冲区的位置,并且配置好了中断的模式。当有一个正确的数据包到达的时候,RTL8019会产生一个中断信号,在ARM中断处理程序中,接收数据。数据的接收比较简单,即通过远
端DMA把数据从RTL8019的RAM空间读回ARM中处理。94TCP/IP协议的层次应用层(Application)BSD套接字(BSDSockets)传输层(Transport)TCP、UDP网络层(Network)IP、ARP、ICMP
、IGMP数据链路层(DataLink)IEEE802.3EthernetMAC物理层(Physical)95嵌入式以太网中主要处理的协议ARP(AddressResolationProtocol)地址解析协议ICMP(I
nternetControlMessagesProtocol)网络控制报文协议IP(InternetProtocol)网际协议TCP(TransferControlProtocol)传输控制协议UDP(UserDatagramProtocol)用户数据包协议96ARP地址解析协议网络
层用32bit的IP地址来标识不同的主机,而链路层使用48bit的物理(MAC)地址来标识不同的以太网接口。只知道目的主机的IP地址并不能发送数据帧给它,必须知道目的主机网络接口的MAC地址才能发送数据帧。ARP的功能是实现从IP地址到对应物理地址的转换。源主机发送一份包含目的主机IP地
址的ARP请求数据帧给网上的每个主机,称作ARP广播,目的主机的ARP收到这份广播报文后,识别出这是发送端在寻问它的IP地址,于是发送一个包含目的主机IP地址及对应的MAC地址的ARP回答给源主机。每台主机上都有一个ARP高速缓存,存放最近的IP地址到硬件地址之间的映射
记录。通常每一项的生存时间为20分钟97ICMP网络控制报文协议IP层的附属协议,IP层用它来与其他主机或路由器交换错误报文和其他重要控制信息。ICMP报文是在IP数据包内部被传输的。两个实用的网络诊断工具,Ping和Traceroute(Tracert),都是利用该协议工作的
。98IP网际协议IP工作在网络层,是TCP/IP协议族中最为核心的协议。所有的TCP,UDP,ICMP以及IGMP数据都以IP数据包格式传输。IP数据包最长可达65535字节,其中报头占32bit的数目。包含
各32bit的源IP地址和目的IP地址。在嵌入式应用中,简化设计,IP数据包长度等于数据链路层的数据长度。99TCP传输控制协议TCP是一个面向连接的可靠的传输层协议。TCP为两台主机提供高可靠性的端到端数据通信。主要包括:发送方把应用程序交给它的数据分成合适的小块,并添
加附加信息(TCP头),包括顺序号,源、目的端口,控制、纠错信息等字段,称为TCP数据包。并将TCP数据包交给下面的网络层处理。接受方确认接收到的TCP数据包,重组并将数据送往高层。100UDP协议UDP是一种无连接不可靠的传输层协议。把应
用程序传来的数据加上UDP头(包括端口号,段长等字段),作为UDP数据包发送出去,但是并不保证它们能到达目的地。可靠性由应用层来提供。就象发送一封写有地址的一般信件,却不保证它能到达。101关于端口TCP和UDP采用16位的端口号来识别上层的TCP用户,即上层应用
协议如FTP,TELNET等。常见的TCP/IP服务都用1-255之间的端口号。例如FTP服务的TCP端口号都是21,Telnet服务的TCP端口号都是23256-1023之间的端口号通常都是提供
一些特定的Unix服务TCP/IP临时端口分配1024-5000之间的端口号102基于ARM和uCOS-II的TCP/IP协议向ARM和uC/OS移植一个TCP/IP协议栈采用uC/OS自带的TCP/IP协议栈103移植TCP/IP
协议栈需要注意的问题字节对齐问题代码A:代码B:struct_A_packedstruct_B{{unsignedchartime;unsignedchartime;unsignedintdata;unsignedintdata;}A;}B;结构体A是成
员4字节的存储方式(sizeof(structA)==8),结构体B是成员非4字节的存储方式(sizeof(structB)==5)。在内存中的存储结构,如图6-35所示。timedatatimedata104BSD套接字(BSDSock
ets)BSDSockets使用的最广泛的网络程序编程方法,主要用于应用程序的编写,用于网络上主机与主机之间的相互通信UNIX,Linux,VxWorks均支持BSDSockets,Windows的Winsock基本上
是来自BSDSocketsSocket分为StreamSockets和DataSocketsStreamSockets是可靠性的双向数据传输,使用TCP协议DataSockets是不可靠连接,使用UDP协议105套接字的使用UDP服
务器端和一个UDP客户端通信的程序过程创建一个SocketsFd=socket(AF_INET,SOCK_DGRAM,0)把Socket和本机的IP,UDP口绑定bind(sFd,(structsockaddr*)&serverAddr,sockAddrSi
ze)循环等待,接收(recvfrom)或者发送(sendfrom)信息关闭Socket,通信终止close(sFd)106CAN总线设计107CAN总线概述ControllerAreaNetwork,控制器局域网,现场总线之一。是一种多
主方式的串行通讯总线,基本设计规范要求有高的位速率,高抗电磁干扰性,而且能够检测出产生的任何错误。主要应用于汽车电控制系统、电梯控制系统、安全监控系统、医疗仪器、纺织机械、船舶运输等方面CiA(CANinAutomation)为全球应用CAN技术的权威。108CAN总线特
点低成本远距离传输(长达10Km)高速的数据传输速率(高达1Mbit/s)可根据报文的ID决定接收或屏蔽该报文可靠的错误处理和检错机制发送的信息遭到破坏后,可自动重发节点在错误严重的情况下具有自动退出总线的功
能109CAN总线控制器体系结构协议控制器状态/控制寄存器消息对象接收缓冲区宿主机接口总线接口CAN总线110CAN总线扩展芯片SJA1000——Philips独立CAN控制器,替代82C200,支持CAN2.0A/B,同时支持11位和29位ID,位
速率可达1M,具有总线仲裁功能,扩展的接收缓冲器(64字节、先进先出FIFO),增强的环境温度范围(-40-+125℃)。82C250CAN总线收发器,是CAN协议控制器和物理总线之间的接口,该器件对总线提供差动发送能力并对CAN控制器提供差动额接收能力,有很强的抗电
磁干扰(EMI)的能力,至少可挂110个节点。TJA1050替代82C250产品,电磁辐射更低,无待机模式111ARM与CAN连接的电路图123456ABCD654321DCBATitleNumberRevisionSizeBDate:2-Nov-2002SheetofFile:F:\WORK\
public\Can\CanForArm\CraftsForCan\ArmCan.ddbDrawnBy:AD023AD124AD225AD326AD427AD528AD61AD72CS4ALE3RD5WR6INT16CLKOUT7RST17TX013T
X114RX019RX120MODE11VDD122VSS18VDD218VSS221VDD312VSS415XTAL19XTAL210U2SJA1000TXD1GND2VCC3RXD4Vref5CANL6
CANH7Rs8U5PCA82C250VCCAD0AD1AD2AD3AD4AD5AD6AD7Y116MHzC215pFC315pFCANCSCANALECANRDCANWRCANINTR24.7KVCCC11uFR150KVCCCANRSTR
31KVCCCANHCANLR4120I/CLK1I12I23I34I45I56I67I78I89I910I1011I/O1014I/O123I1113GND12I/O915I/O816I/O717I/O618I/O519I/O420I/O321I/O22
2VCC24U1GAL22V10VCCCSWRRDB6CANCSCANALECANRDCANWRCANINTINTB712J4RSI/CLK1I12I23I34I45I56I67I78I89I910I1011I/O1014I/O123I1113GND12I/O915I
/O816I/O717I/O618I/O519I/O420I/O321I/O222VCC24U3GAL22V10R11R12R13R14VCCCANVCCGNDCANGND1234J2CANHCANLCA
NVCCCANGND123456789101112J1VCC123J3POWERJACKD1ZENERGNDNC1A02A24A13A35A46A57A68A79GND10B771B672B573B474B375B276B177B078O
E179VCC80NC11A812A1014A913A1115A1216A1317A1418A1519GND20B1561B1462B1363B1264B1165B1066B967B868OE269VCC70N
C21A1622A1824A1723A1925A2026A2127A2228A2329GND30B2351B2252B2153B2054B1955B1856B1757B1658OE359VCC60NC31A2432A2634A2533A2
735A2836A2937A3038A3139GND40B3141B3042B2943B2844B2745B2646B2547B2448OE449VCC50U6QS34X245AD0AD1AD2AD3VCCOEAD4AD5AD
6AD7VCCOERDWRINTCSD0D1D2D3D4D5D6D7GNDnOEnWEEXINT2nGCS3A16A17GNDIICSCLIICSDAIISLRCKIISCLKGPE3SIOTXDSIORDY/GPF
6SIORXDSIOCLKVCCVDD33GPB4GPB512345678910111213141516J1AEXPORT3D0D1D2D3D4D5D6D7D8D9D10D11D12D13D14D15nOEnWEVCCEXINT1DREQ0RESETnRESETnDREQ
0A1A2A3nGCS4A4nGCS5A5A6nWBE0A7nWBE1A9A10A11A14A0A15A8A16EXINT2EXINT3A17123456789101112131415161718192021222324252627282930J2A
EXPORT1A18nGCS3IICSCLIICSDAIISLRCKIISDOIISDIIISCLKGPE3SIOTXDSIORDY/GPF6SIORXDSIOCLKA12A13VCCVDD33GPB4GPB51
2345678910111213141516J1BEXPORT3123456789101112131415161718192021222324252627282930J3BEXPORT2D8D9D10D11AIN0D12AIN1D13AIN2D
14AIN3D15AIN4AIN5AIN6AIN7A1A2A3A4A5A6A7A9A10A11A0A8A12A131234567891011121314151617181920212223242526272
82930J3AEXPORT2AIN0AIN1AIN2AIN3AIN4AIN5AIN6AIN7D0D1D2D3D4D5D6D7nOEnWEVCCEXINT1nRESETnDREQ0nGCS4nGCS5nWBE0nWBE1A14A15A16EXINT2EXINT3A1712345678910111
2131415161718192021222324252627282930J2BEXPORT1A18nGCS3C422uFVCCGNDC11104C12104C13104C14104C15104C16104C17104C18
104VCCGNDVDD33RESETVDD33DREQ0IISDOIISDIB5RSnRESETRESETA4A5A6A7B16B17GNDnRESET1RESET1B4B5B6B7A14A15IISDIIISDOIO1IO2RESET1nRESET1OEVCCIO2IO1B14B
15VCCOEGNDOE1234J5BACK0ABACK1ABACK2ABACK3ABACK4ABACK5ABACK6ABACK7AOEVCCGNDBACK0BBACK1BBACK2BBACK3BBACK4BBACK5BBA
CK6BBACK7B12345678910J6CON1012345678910111213141516J7CON16BACK0ABACK1ABACK2ABACK3ABACK4ABACK5ABACK6ABACK7ABACK0BBACK1BBACK2BBACK3BBACK4BBACK5BBA
CK6BBACK7BA4A14A15A16A17112原理说明ARM和SJA1000以总线方式连接,SJA1000的复用总线和ARM的数据总线连接。SJA1000的片选、读写信号均采用ARM总线信号,ALE信号由读写信
号和地址信号通过GAL产生。在写SJA1000寄存器时,首先往总线的一个地址写数据,作为地址,读写信号无效,ALE变化产生锁存信号;然后写另外一个地址,读写信号有效,作为数据。上述逻辑完全通过GAL产生。控制CAN总线时首先初始化各寄存器,目前采用BASICC
AN方式。发送数据时首先置位命令寄存器,然后写发送缓冲区,最后置位请求发送。接收通过查询状态寄存器,读取接收缓冲区获得信息。113CAN总线时序图ARM总线时序图114需要注意的问题ALE问题。由于ARM总线非复用,而SJA1000
总线复用,所以必须通过逻辑产生地址锁存信号ALE,在本例中该信号由一位地址信号和写信号逻辑产生。电平问题。由于ARM信号为3.3伏,而CAN总线控制器电平为5伏,所以所有信号之间均需要电平转换,本例中使用了QS3
4X245作为电平转换芯片。电阻问题。CAN总线需要在两线间加一个120欧电阻。115CAN高层协议CAN总线每次可以发送十个字节的信息(CAN2.0A)。发送的第一字节和第二字节的前3位为ID号,第四位为远
程帧标记,后四位为有效字节长度,软件设置时可以根据ID号选择是否屏蔽上述信息。也可以通过设置硬件产生自动验收滤波器。八个有效字节内部代表何种参数,可以自行定义内部标准,也可以参照DeviceNet等应用层协议。116CAN总线应用——工
程机械智能监控器117系统框图卫星蜂窝电话接收监控终端显示器服务器控制发送终端手持控制器蜂窝电话手持控制器中心站移动终端定时发送信息控制信息接收118工程机械智能监控器体系结构32位ARM处理器显示接口
键盘接口RS-232USB键盘LCDRS-232CAN接口无线模块无线局域网CAN通讯端口(上载/下传)GPSGSM工程机械单机控制器数据采集模块119嵌入式工程机械智能监控器系统主函数Main液晶屏
显示LED闪烁系统主任务Main_Task键盘扫描串行口扫描120监控中心端控制软件