当前位置:首页 > 嵌入式 > 嵌入式软件
[导读]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协议数据包作为应用层数据封装发送到以太网应用层。[!--empirenews.page--]

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

(1) 读SJA1000 寄存器子程序CANRead()其过程为:Re引脚设为输出;CS片选清零;Rd引脚设为输出;输出地址;置位ALE;延时20 ns ;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类操纵无连接的数据发送较简单,首先生成一个本地套接口,然后利用int CAsyncSocket : : SendTo ( constvoid 3 1pBuf , int nBufLen , UINT nHostPort , LPCTSTR1pszHostAddress = NULL ,int nFlags = 0) 发送数据,intCAsyncSocket : : ReceiveFrom ( void 3 1pBuf , int nBufLen ,CString & rSocketAddess ,UINT & rSocketPort , intnFlags = 0) 接收数据。利用UDP 协议发送和接收都可以是双向的,即管理主机和SX52网关都可以发送和接收数据。在程序设计中,创建了一个CAsyncSocket 派生类CCanSocket ,该派生类CCanSocket 有若干成员函数,通过这些类成员函数,可以很方便地实现CAN总线到Internet 的通信。

结 论

  随着Internet技术的日益成熟测控系统网络和以太网将渐渐融合。CAN总线到Internet的互联网关的设计研究是一项具有重要意义的工作,它有非常广阔的应用前景。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭