




已阅读5页,还剩2页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
CAN总线与Ethernet互联网关的设计本研究由广东工业大学高教研究基金项目“构建教育教学质量保障的智能化评价体系”(2009D06)、资助。黄小波 张钢(广东工业大学自动化学院,广东 广州市 510090)摘要:在对CAN协议及TCP/IP协议栈进行深入研究的基础上,设计了以太网与CAN总线互联网关,该设计可以实现基于TCP/IP协议的计算机网络设备与基于CAN总线协议的底层现场网络互联。通过Visual C+ 6.0编写了网关上的程序使用了MSComm和WinSock控件提供串口通信和TCP/IP通信功能,通过数据包发送和接收实验表明Can-Ethernet网关设计的有效性。关键词:以太网;CAN总线;TCP/IP协议栈;RTL8019ASDesign of Can-Ethernet GatewayXiao-Bo Huang, Gang Zhang (Faculty of Automation, Guangdong University of Technology, Guangzhou 510090, Guangdong)Abstract: This paper designs the gateway of Ethernet-CAN based on the study of CAN Protocol and TCP/IP Protocol Stack. It can communicate the computer network based on the TCP/IP protocol with the field network based on the CAN Bus protocol. The experimental program is developed in Visual C+ 6.0 with MSComm and WinSock control that providing TCP/IP and serial port data service. The results of data packet send/receive experiments show that the design of Can-Ethernet is effective.Key words: Ethernet; CAN bus; TCP/IP protocol stack; RTL8019ASCAN总线是一种开放式、数字化、多点通信的控制系统局域网络1。它具有分散控制更彻底、开放性好、报文短、纠错能力强、总体价格比较经济等优点,越来越受到人们的关注。但与现场总线相比,以太网提供了更高的通信速率和更好的兼容性。故以太网以其通信速率高、灵活、方便、可靠、价格低廉、软硬件资源丰富和可持续发展潜力大等优点,在工业控制领域中得到广泛的应用2。如果能将现场总线与以太网互联的话,可实现过程控制中从设备层到管理层的一体化,达到提高效率和降低成本的目的。而本设计以CAN总线作为工业现场总线,实现了CAN总线与Ethernet的互联。1 硬件设计要实现现场总线设备接入Internet,关键就是要实现TCP/IP协议、以及传输信息介质的选择。在本设计中选用ARM7DMI-S CPU的微处理器LPC2292作为处理器,以太网驱动芯片RTL8019AS经耦合隔离滤波器HR61101G和RJ45接口接入以太网,配有RS232和CAN总线两个扩展接口,可以将具有RS232接口的设备或采用CAN总线协议通信的设备连接入以太网上。RS232接口采用MAX232CPE芯片,CAN驱动器采用TJA1050T芯片,CAN控制器经过高速光电隔离器(6N137)和CAN驱动器TJA1050T接到CAN总线。其硬件结构框图如图1所示。图 1 硬件结构框图工作原理为:当以太网中发送数据和请求,通过RJ45送到RTL8019AS,RTL8019AS负责将处理后的以太网帧送入LPC2292的TCP/IP协议栈,由协议栈对数据报进行解析,得到原始的请求和控制信息。请求和控制信息再经过CAN控制器进行CAN协议格式和数据封装,然后和现场的CAN总线设备进行通信。请求和控制的回复信息到局域网的过程与上面正好相反。1.1 微控制器微控制器负责对以太网控制器和CAN控制器进行控制。在微控制器内部驻有TCP/IP通信协议和CAN通信协议,完成以太网协议和CAN总线协议转换,实现以太网接口和CAN接口通信数据的透明传输。本系统采用Philips公司生产的基于一台支持实时仿真和跟踪的16/32位ARM7TDMI-S CPU的微控制器LPC2292,它带有16K字节的片内静态RAM及256K字节嵌入的高速Flash存储器。128位宽度的存储器接口和独特的加速结构使32位代码能够在最大时钟速率60MHz下运行。LPC2292具有较小的144脚封装、极低的功耗、多个32位定时器、8路10位ADC、2路CAN控制器及多达9个外部中断,可使用的GPIO高达76(使用了外部存储器)112个(单片应用)。丰富的片上资源使得LPC2292非常适合于通信网关、协议转换器的应用3。1.2 以太网接口单元 以太网控制器完成与以太网在物理层和数据链路层的连接。本系统的以太网控制器选用RTL8019AS,它为台湾芯片生产商Realtek公司第三代快速以太网连接而设计的10M/100M兼容以太网接口芯片,它支持多种嵌入式处理器芯片。支持IEEE802.3;支持8位或16位数据总线;全双工,收发同时达到10Mbps;支持10Base5、10Base2、10BaseT,并能自动检测所连接的介质。RTL8019AS有3种接口模式,即跳线模式、PnP模式和RT模式。RTL8019AS芯片内部集成了DMA控制器、ISA总线控制器、16KB的SRAM和网络PHY收发器4。用户可以通过DMA方式把需要发送的数据写入片内SRAM中,让芯片自动将数据发送出去;而芯片在接收到数据后,用户可以通过DMA方式将其读出3。RTL8019AS可以兼容8位和16位操作,它的引脚IOCS16是16位I/O的选择脚,当RTL8019AS上电复位的时候,如果这个脚为低电平,选择8位模式,为高电平选择16位模式。由于LPC2292是兼容16位和32位的数据总线,因此要用16位总线模式,所以将这个脚接高电平。因此LPC2292的数据总线D0D15与RTL8019AS的SD0SD15连接。在本设计中RTL8019AS的工作方式采用第一种工作方式,即跳线方式,因此JP引脚接高电平。其基地址为0x300,所以RTL8019AS的SA6、SA7、SA10SA19引脚均接地,SA9接电源。SA8与LPC2292的地址总线A22相连,当SA8为1,SA5为0时,选中RTL8019AS芯片,即操作地址为0x83400000 0x8340001F。RTL8019AS使用引脚TPIN+、TPIN-、TPOUT+和TPOUT-连接耦合隔离滤波器HR61101G,通过RJ45插头实现与以太网连接1。在系统中,RTL8019AS的接口电路工作电压为5V,而LPC2292的I/O电压为3.3V,故二者接口需要使用电平转换器,这里使用了74LVT16245和74LVX4245来实现转换5。RTL8019AS作为以太网的物理层接口,它在收到由主机发来的数据后,侦听网络线路。如果线路忙,它就等到线路空闲为止,否则,立即发送该数据帧。在发送过程中,首先它添加以太网帧头(包括前导字段和帧开始标志),然后生成CRC校验码,最后将此数据帧发送到以太网上。在接收过程中,它将从以太网收到的数据帧在经过解码、去帧头和地址检验等步骤后缓存在片内。在CRC校验过后,它会根据初始化配置情况,通知RTL8018AS收到了数据帧,最后,用某种传输模式(DMA模式)传到存储区中4。1.3 CAN控制器LPC2292内部集成有2路CAN控制器:符合CAN规范CAN2.0B、ISO 11898-1标准; 总线数据波特率均可达1Mbps;可访问32位的寄存器和RAM;全局验收过滤器可识别几乎所有总线的11位和29位Rx标识符;验收过滤器为选择的标准标识符提供了FullCAN-style自动接收功能3。由于LPC2292内部集成了2路CAN控制器,硬件电路只需要在LPC2292的TD1(CAN1的发送器输出脚)与RD1(CAN1的接收器输入脚)外接CAN总线驱动器即可。在本设计中选用TJA1050T作为CAN总线驱动器,它是PCA82C250和PCA82C251高速CAN收发器的后继产品。主要区别在于:1)输出信号CANH和CANL的最佳匹配,使电磁辐射更低。2)节点未供电时,呈现无源特性,不会对总线造成扰动。3)无待机模式。TJA1050T是连接CAN控制器和物理总线之间的接口,提供了对总线的差动发送能力和对CAN控制器的差动接收能力,它同时完全和“ISO11898”标准兼容。为了进一步提高系统的抗干扰能力,一般在CAN总线控制器和CAN总线驱动器TJA1050T之间加接高速光电隔离芯片6N137。由于通信信号传输到导线的端点时会发生反射,而且反射信号会干扰正常信号的传输。因此,总线两端应接有终端电阻R1、R2,以消除反射信号,其阻值应当与传输电缆的特性阻抗大致相当。本设计选用120。它对匹配总线阻抗起着非常重要的作用。1.4 其它外围扩展器件1)EEPROM用来保存以太网与CAN总线互联网关的配置信息,如网关IP地址、MAC地址、CAN控制器的ID网络标示符和总线定时等参数,这样就能够灵活方便地修改网关参数。本设计中EEPROM采用AT24C256芯片。2)配置2片HY57V641620并联构建32位的SRAM存储系统,用来缓存以太网数据包和CAN总线传来的数据,为处理TCP/IP协议和CAN通信协议提供内存空间。3)系统在调试过程中需要使用串口与主机即PC机进行通信,串口作为控制台输入调试命令,显示调试信息。由于RS-232标准所定义的高、低电平和LPC2292系统的LVTTL电路所定义的高、低电平完全不同,RS-232标准采用负逻辑,逻辑“1”对应-5V-15V电平,逻辑“0”对应+5V+15V电平,而LVTTL的逻辑“1”对应2V3.3V电平,逻辑“0”对应0V0.4V电平,两者之间需进行信号电平的转换,采用MAX232实现此转换过程6。2 软件设计 CAN总线与Ethernet互联的软件设计主要包括以太网通信软件设计和CAN通信软件设计。2.1 以太网通信软件设计以太网通信软件设计包括以太网硬件接口驱动以及上层协议软件设计。对于嵌入式系统,由于其内部资源有限,可根据系统的具体要求,对TCP/IP协议栈进行简化并移植到嵌入式系统中。以下简要介绍RTL8019AS的初始化、以太网帧的读/写操作以及上层协议的软件设计。(1)RTL8019AS初始化1)初始化过程首先设置LPC2292的I/O口属性。2)调用复位子程序对RTL8019AS进行复位。有两种复位方式:一是硬件复位,通过拉高拉低RESET引脚达到复位RTL8019AS的目的;二是软件复位,向0x1F端口读写数据从而使RTL8019AS复位。3)向命令寄存器CR写入0x21H使RTL8019AS处于停止模式,设置寄存器。4)设置数据配置寄存器DCR为使用FIFO缓存、普通模式、8位数据传输模式,字节顺序为高位字节在前,低位字节在后。设置RBCR0、RBCR1寄存器为0,即读取RAM字节数。5)设置接收和发送缓冲区起止地址。PSTART接收缓冲区的起始页地址0x46;PSTOP接收缓冲区的结束页地址0x60;BNRY指向最后一个已经读取页的指针0x46;TPSR发送页的起始地址0x40;CURR芯片写内存指针,它指向当前正在写的页的下一个页,即初始化时指向0x47。6) 将以太网控制器置于回环模式(Loopback mode),TCR=02h或04h。7)设置RCR接收配置寄存器为0xCC,使用接收缓冲区,仅接收自己的地址的数据包(以及广播地址数据包)和多点播送地址包,小于64字节的包丢弃,校验错的数据包不接收。设置TCR发送配置寄存器为0xE0,启用crc自动生成和自动校验,工作在正常模式。8)设置ISR为0xFF,清除中断状态寄存器;设置中断屏蔽寄存器IMR为0,屏蔽所有中断请求。9)将物理地址写入PAR05物理地址寄存器。10)最后设置TCR发送配置寄存器为0xE0;设置命令寄存器CR为0x22,芯片进入正常工作状态,RTL8019AS初始化完成。PTL8019AS的寄存器分为4页:PAGE0、PAGE1、PAGE2、PAGE3,由RTL8019AS的CR(Command Register命令寄存器)中的PS0、PS1位来决定要访问的页。在第0页寄存器中设置接收、发送状态配置以及发送缓存区的起始页与接收缓存区起、止页地址;在第1页寄存器中写入以太网接口的MAC地址。(2)以太网帧的读、写操作 对于以太网帧的读、写操作是通过对RTL8019AS内部16KB的双端口RAM的远程DMA(Remote DMA)操作来实现的。LPC2292通过设置RTL8019AS的内部寄存器RSAR0、和RSAR1来设置远端DMA起始地址,通过设置RTL8019AS的内部寄存器RBCR0和RBCR1来设定远端DMA的数据字节数,并通过在CR寄存器中设置读来实现从远端DMA端口寄存器里读出RAM里的数据或设置写来实现把数据写入RAM3。发送和接收的是标准的IEEE 802.3数据包,发送数据包过程是先将数据按照一定的格式,存入RTL8019AS的RAM中,设置发送数据的起始地址和发送数据的长度(写入TPSR TBCR0、1),然后设置寄存器CR=0x3E来启动发送命令即可实现RTL8019AS的发送功能。RTL8019AS会自动将数据转化为物理帧格式在物理信道上传输。同时将发送的结果写入状态寄存器TSR。发送数据包时必须判断缓冲区发送包的大小,若大于1514字节则返回,不进行包的发送,包太小(小于60字节)要进行填充,填充后再发送4。主程序在发送一帧数据时,先要查TSR寄存器判断上一帧是否发送完毕。发送数据包的流程如图2 示。图 2 发送数据包的流程图接收数据的基本过程:本地DMA从网卡接口接收数据并存储在RTL8019AS的内存中,远程DMA将RTL8019AS内存中的数据送往主处理器。RTL8019AS的接收缓冲区是一个循环FIFO队列,接收缓冲区在内存中的位置由页起始寄存器(PSTART)和页终止寄存器(PSTOP)指出。环形队列的当前读写位置由边界页寄存器(BNRY)和当前页寄存器(CURR)指出。寄存器CURR为写入指针受RTL8019AS控制,寄存器BNRY为读出指针由LPC2292程序控制。在查询方式下,主程序通过CURR和BNRY的值来判断是否收到新的一帧数据。当它们的值不等时,即接收缓冲区接收到新帧,主程序读取数据后,以读取帧的第二个字节(下一帧的页地址)更新BNRY,主程序循环跟踪CURR和BNRY达到数据的接收目的4。数据包接收流程图如图3 所示。图 3 接收数据包的流程图(3)TCP/IP协议栈的实现TCP/IP协议栈由网络接口层、网际层、传输层和应用层构成。网络接口层实现对以太网帧的打包和解析工作。在本设计中,以太网帧分为ARP包和IP包2类。ARP包分为ARP请求和ARP答应,用以实现以太网地址与物理地址的映射。IP包分为TCP包、UDP包和ICMP包,TCP包提供一种面向连接的、可靠的字节流报务;UDP包用于无连接的数据传输;ICMP包传递差错报文以及其它需要注意的信息,主要实现目的不可达差错报文和ping查询。网际层要实现IP协议、ARP协议和ICMP协议。IP协议是TCP/IP协议栈的核心,所有的TCP、UDP、ICMP及IGMP数据都以IP数据包的格式传输,IP协议主要实现IP数据包发送和接收功能。ARP协议负责把节点的IP解析成对应的MAC地址,它可以在局域网内寻找IP所对应的MAC地址,并保存起来以供发送使用。ICMP协议为IP数据报提供传输过程中遇到的路由和传送错误报告。传输层实现传输控制协议TCP和用户数据报协议UDP。TCP协议是面向连接的,可靠性高,费用也高;UDP协议是提供最少服务和费用的传输协议。在本主设计中UDP协议和TCP协议都要实现,以方便为应用层提供灵活的服务。应用层实现用户具体的应用,可根据具体应用编写用户协议实现。在本设计中,应用层实现以太网数据与CAN总线数据的透明传输。2.2 CAN总线通信软件设计CAN总线通信软件主要包括初始化CAN控制器函数CAN_Init()、CAN发送数据函数SendDataToCAN()、CAN接收数据函数ReadDataFromCAN()。这3个函数 通过操作LPC2292内部的CAN模式寄存器(CANMOD)、CAN命令寄存器(CANCMR)、CAN全局状态寄存器(CANGSR)、CAN状态寄存器(CANSR)、CAN中断和捕获寄存器(CANICR)、CAN中断使能寄存器(CANIER)、CAN总线时序寄存器(CANBTR)等多个寄存器,再通过对收发缓冲区的读写来实现。LPC2292将以太网送来的数据转换为符合CAN发送帧格式的数据,将该数据通过CAN控制器转发;反过来,LPC2292将来自CAN总线的数据转换为符合以太网发送帧格式的数据,将该数据通过RTL8019AS进行转发。3 测试结果分析我们在Visual C+ 6.0平台上开发了实验程序,用于测试本文的Can总线和Ethernet互联网关的可行性。实验基于Microsoft的Winsock和MSComm控件,利用这两个控件分别提供了TCP/IP协议栈和串口通信协议。我们开发了互联网关上的中间件程序,用于对TCP/IP协议的数据格式和串口通信的数据格式进行相互转换和控制。具体来说,网关被设置为一台同时具有以太网控制模块和串行控制模块的机器,并且在上面运行了本文的实验程序,在Etnernet-Can方向上,利用一台PC机通过TCP/IP协议发送数据包给网关,并由实验程序转换后通过串行品发送到Can总线上,利用与Can总线相连的数据终端设备进行数据接收;在Can-Ethernet方向上,则是上述的相反过程。为了测试在不同数据包大小以及发送速度下网关的性能,我们分别以不同的速率和数据包的大小进行发送。图4展示了实验的基本拓扑结构。图4 实验拓扑结构图在PC机上采用Netxray作为TCP/IP的数据包的控制器,作为数据包的发送源和接收监听器。在Can-Ethernet上,同时使用Netxray和SComAssistant进行网关的以太网口和串口的数据监听。在Can数据终端上使用数据发生器和数据接收显示器进行数据的发送和接收显示。进行上述设置的目的有两个,一是测试网关的连通性,即在一端发送的数据经过网关的转换后,在另一端的接收情况,因此在Ethernet和Can总线两端的设备都同时具有数据发送和接收功能。二是测试网关的转换效率,在网关上的SComAssistant和Netxray只进行监视动作,监视网关进行数据转换的效率。我们设置了如表1所示的数据包大小和发送间隔。在Ethernet-Can的实验中,以ICMP包方式发送,而在Can-Ethernet中,以Raw方式发送数据。表1 测试数据包发送设置Ethernet-CanCan-Ethernet数据包大小发送间隔发送次数数据包大小发送间隔发送次数5b3ms1005b5ms10020b3ms10010b5ms1001k3ms1001k5ms100我们对上表六种情况进行测试,发送的数据内容由一个随机程序生成,数据的长度按照表1中的设置,每种情况的实验
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 科技园区场地合作经营与管理协议书范本
- 餐厅装修及设备采购安装监理合同
- 软件开发采购合同知识产权保护及售后服务协议
- 书法创新活动方案
- 义捐活动策划方案
- 副科干部宿舍管理制度
- 农林牧废弃物综合利用项目环境影响评价报告
- 儿科护理急性感染性喉炎
- 学校联合教研管理制度
- 厨房过失扣分管理制度
- 火锅店员工合同协议书
- 企业如何通过激励措施促进员工参与数字化转型
- 雇人包工免责协议书
- 船舶应急部署表及船员应变卡
- 2025年下半年山东能源集团权属企业内蒙古荣信化工限公司社会招聘易考易错模拟试题(共500题)试卷后附参考答案
- 陕西邮政校招笔试题及答案
- 山东省济南市2025届高三三模历史试卷(含答案)
- 小学语文大单元整体教学设计讲座
- 风力发电场调试规程
- 2024-2025学年广东省深圳市高一数学下学期7月期末考试(附答案)
- 血管内导管相关性血流感染预防与诊治指南(2025)解读课件
评论
0/150
提交评论