CAN总线到Ethernet网的网关研究实现-技术方案_第1页
CAN总线到Ethernet网的网关研究实现-技术方案_第2页
CAN总线到Ethernet网的网关研究实现-技术方案_第3页
CAN总线到Ethernet网的网关研究实现-技术方案_第4页
CAN总线到Ethernet网的网关研究实现-技术方案_第5页
已阅读5页,还剩2页未读 继续免费阅读

付费下载

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

精品文档-下载后可编辑CAN总线到Ethernet网的网关研究实现-技术方案引言

CAN总线是一种开放式、数字化、多点通信的控制系统局域网络,是当今自动化领域中有应用前景的技术之一。由于CAN总线具有通信速率高、开放性好、报文短、纠错能力强以及控制简单、扩展能力强、系统成本低等特点,越来越受到人们的关注。以太网具有快速、灵活、方便、可靠的特长,如果把现场总线与以太网互联的话,可实现过程控制中从设备层到管理层的一体化,使得企业可以广泛地应用如互联网、无线通信、智能设备和决策支持系统等新技术,以达到提高效率和降低成本的目的。

硬件设计

硬件选择

要实现现场总线设备接入Internet,关键就是要实现TCP/IP协议、以及传输信息介质的选择。笔者用SX52微控制器作为处理器,以太网驱动芯片RTL8019AS经耦合隔离滤波器HR61101G和RJ45接口接入以太网,配有RS232和CAN总线两个扩展接口,可以将具有RS232接口的设备或采用CAN总线协议通信的设备连到以太网上。RS232接口采用MAX232CPE芯片,CAN总线控制器采用Philips公司的SJA1000芯片,CAN收发器采用PCA82C250芯片。硬件结构框图见图1。

图1硬件结构框图

工作原理为:当以太网中发送数据和请求,通过RJ45送到RTL8019AS,RTL8019AS负责将处理后的以太网帧送入SX52的TCP/IP协议栈,由协议栈对数据报进行解析,得到原始的请求和控制信息。请求和控制信息再经过SJA1000进行CAN协议格式的数据封装,然后和现场的CAN总线设备进行通信。请求和控制的回复信息到局域网的过程与上面正好相反。

硬件电路图

在CAN到Ethernet网关的硬件设计中,在确保通信功能顺利实现的同时,充分利用了SX52芯片I/O口灵活配置的特点,地节约了微控制器SX52的硬件资源。其电路简图见图2。

图2电路简图

SX52有5个I/O口共40个引脚,在设计中利用SX52的C口的RC0~RC7连接RTL8019AS的数据口SD0~SD7,SX52的B口兼顾选址和读写控制功能,在开发中用它与RTL8019AS的地址及读写控制引脚连接。RTL8019AS基地址选择引脚IOS0~IOS3接地,此时I/O基地址为300H,即001100000000,所以地址线SA9、SA8接+5V。又因为寄存器地址偏移量为00H~1FH共32个,对应地址从300H到31FH,所以只需将地址线SA0~SA4接SX52的RB0~RB4,其余地址线接地即可。芯片IORB、IOWB引脚为读写信号线,接SX52的RB6、RB5读写控制引脚。RTL8019AS可以兼容8位和16位操作。图2中IOCS16是16位I/O的选择脚,当RTL8019AS上电复位的时候,如果这个脚为低电平,选择8位模式,为高电平选择16位模式。由于SX52是8位的数据总线,因此要用8位总线模式,所以将这个脚接地。RTL8019AS有3种工作方式,笔者采用种工作方式,此时JP引脚接高电平。AUI引脚决定使用AUI还是BNC接口。高电平时使用AUI接口,低电平时使用BNC接口,支持8线双绞线或同轴电缆。设计中采用双绞线为通信介质,将该引脚接地。RTL8019AS使用引脚TPIN+、TPIN-、TPOUT+和TPOUT-连接耦合隔离滤波器HR61101G,通过RJ45插头实现与以太网的连接。SJA1000是独立的CAN通信控制器,支持CAN2.0B协议。它的AD0~AD7为地址数据复用线,与SX52的D口RD0~RD7相连。当远程用户通过Web服务器查询现场的CAN总线数据时,SJA1000将现场控制单元的CAN总线数据解析,发送到SX52,再传到Internet。PCA82C250对总线提供发送能力并对CAN控制器提供接收能力,它支持1Mbps的速度。为保证SX52与SJA1000协同工作,在硬件设计中将两个芯片共用一个硬件复位线,以确保SX52与SJA1000硬件同步复位。MAX232CPE完成232电平与TTL电平转换。用于提供一个本地接口,为调试和维护提供方便。TXD接SX52的RA2脚,RXD接SX52的RA3脚,RS—RXD和RS—TXD是RS232电平,为标准串口电平。数据可以从串口输入到单片机SX52,SX52再把数据送到RTL8019AS。

网关的软件设计

整个互联系统的软件设计可以分为3个部分:CAN总线设备接口通信程序、网关协议转换程序和基于以太网的TCP/IP协议的程序实现。

网关协议转换程序

网关协议转换程序的整体设计思路为:当以太网应用层有数据要发送到CAN节点时,首先,数据发送到网关,由以太网控制器协议转换模块从UDP数据报文中解析出完整的CAN协议数据包,存放在数据缓冲区A,再调用CAN控制器协议模块将它发送到CAN总线上。反过来,当CAN设备有数据要发送到用户层时,首先数据发送到网关,由CAN控制器协议模块将完整的CAN协议数据包存放在数据缓冲区B,再调用以太网控制器协议转换模块将完整的CAN协议数据包作为应用层数据封装发送到以太网应用层。

CAN控制器协议模块

CAN控制器协议转换模块程序主要由SJA1000的寄存器读、写程序,初始化程序和发送、接收程序5个子程序组成。之所以要编写单独的SJA1000寄存器读、写子程序,这是由SX52芯片只有I/O端口的特点所决定的。

(1)读SJA1000寄存器子程序CANRead()其过程为:Re引脚设为输出;CS片选清零;Rd引脚设为输出;输出地址;置位ALE;延时20ns;ALE位清零;Rd引脚设为输入;/Read位清零;读入数据;延时20ns;/Read位置位;CS片选置位;返回。

(2)写SJA1000寄存器子程序CANWrite()其过程为:Re引脚设为输出;CS片选清零;置位ALE;Rd引脚设为输出;输出地址;ALE位清零;/wr位清零;输出数据;延时20ns;CS片选置位;返回。

(3)SJA1000初始化子程序CANInit()选用CAN2.0A协议构建CAN总线控制网络,对SJA1000的初始化主要完成控制寄存器CR、验收代码寄存器ACR、验收屏蔽寄存器AMR、总线定时寄存器BTR0,1和输出控制寄存器OCR的设置。

(4)发送接收子程序txdsub(),rxdsub()发送子程序负责节点报文的发送,由CAN控制器SJA1000独立完成。主控制器SX52只需将数据缓冲区A中已按CAN2.0A协议格式组合成的一帧报文送入SJA1000发送缓冲区中,然后将命令寄存器里的发送请求标志置位,即可发送报文。

接收子程序负责节点报文的接收。SJA1000自动接收发往该节点的数据并将收到的数据放到它的接收缓冲器中。SJA1000的报文接收主要有两种方式:中断接收方式和查询接收方式。该系统采用查询接收方式。可以发送给主控制器SX52的接收信息由状态寄存器的接收缓冲器状态标志RBS和接收中断标志RI标出。SX52将会把这一帧数据包存入数据缓冲区B中,然后释放接收缓冲器,再通知总调度程序,由总调度程序调用以太网控制器协议转换模块转发。

以太网控制器协议转换模块

以太网控制器协议转换模块主要负责从UDP数据包中解析出完整CAN协议报文,存入数据缓冲区A。同时,将数据缓冲区B中的完整CAN协议报文封装成UDP数据报后发送到以太网上。采用UDP协议是考虑到CAN协议数据报为短帧形式(每个数据帧多为8个字节),因为TCP协议要进行3次握手建立连接,这对网络来说无疑是一种资源的浪费。而UDP是无连接的传输,这样可以提高网络传输效率,同时,也减轻网关的处理任务。当然,UDP是不可靠的传输协议。为了提高通信的可靠性,在应用层建立回传校验机制,通过实验

测试表明这种方式是行之有效的。以太网控制器协议转换模块主要由若干个ARP、UDP协议的API函数组成。

TCP/IP应用层程序设计

基于以太网的高层通信协议一般采用TCP/IP协议。这里采用流行的SOCKET套接字编程,传输层协议选择UDP(用户数据报协议),通过VisualC++编写应用层程序。WinSock提供了对UDP的支持,通过UDP协议可以向指定IP地址的网关发送CAN协议数据,同时也可以从它接收CAN协议数据,发送和接收方处于相同的地位没有主次之分。利用CAsyncSocket类操纵无连接的数据发送较简单,首先生成一个本地套接口,然后利用intCAsyncSocket::SendTo(constvoid31pBuf,intnBufLen,UINTnHostPort,LPCTSTR1pszHostAddress=NULL,intnFlags=0)发送数据,intCAsyncSocket::ReceiveFrom(void31pBuf,intnBufLen,CStringrSocketAddess,UINTrSocketPort,intnFlags=0)接收数据。利用UDP协议发送和接收都可以是双向的,即管理主机和SX52网关都可

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论