一种用于汽车台架测试的多协议网关设计

2017-03-27 10:25:13蔡淑敏王亚刚
电子科技 2017年3期
关键词:网关以太网嵌入式

李 根,蔡淑敏,王亚刚

(上海理工大学 光电信息与计算机工程学院,上海 200093)

一种用于汽车台架测试的多协议网关设计

李 根,蔡淑敏,王亚刚

(上海理工大学 光电信息与计算机工程学院,上海 200093)

针对传统汽车总线和工业现场总线无法与管理信息的以太网络形成信息共享的弊端,设计出一种多协议转换的网关,该网关作为汽车总线和工业设备到以太网之间的连接桥梁,能实现不同协议的数据之间相互转发。硬件上该网关采用STM32F102主控芯片,利用CAN、UART、Ethernet等外设接口设计了相应协议的数据收发控制电路。软件上网关移植了实时嵌入式操作系统μC/OS-II,并嵌入LwIP网络协议栈,实现了从CAN、RS232及RS485到Ethernet数据的互相转发。将网关用于汽车台架测试中,实际测试结果表明,该网关实时性及可靠性高,具有较低的总线负荷和极低的数据粘包率。

网关;多协议;汽车台架测试;CAN总线

CAN、RS232、RS485等现场总线在工业生产、过程控制及汽车领域中负责底层数据的通信,实现了现场各传感器和智能设备之间的数字通信与信息传输,是交通、智能楼宇、工业生产等多种自动化领域中实现信息共享与通信的基础[1]。随着现场总线技术和以太网(Ethernet)技术的发展,控制系统逐渐变得分散化、网络化和智能化。以太网扩展了控制系统的实现形式,应用领域也逐渐扩大到了传统工业现场控制,但现阶段汽车领域和工业现场检测控制网络主要是由上述各种总线组成的轻量级网络,工业以太网仍然只占其中一小部分,传统现场总线不可能完全被其替代[2]。将现场总线与以太网技术相融合,实现各层信息一体化,不仅能提高控制网络的可靠性和稳定性,还能降低系统成本,具有广阔的发展前景[3]。使用嵌入式网关作为数据中间转发设备是实现不同协议的设备相互连接比较实际可行的方法之一。

1 网关总体架构

网关的主设备控制芯片采用的是STM32F107,片上移植嵌入式实时操作系统μC/OS-II[4],TCP/IP网络协议栈使用LwIP,完成了两路CAN,一路RS232和一路RS485到以太网数据之间的转换。

CAN总线采用差分电平传输信号,拥有非破坏总线仲裁技术,能够实现点对点和一对多及全局广播,直接通信距离最远能达到10 km,最高通信速率达1 Mbit·s-1[5]。其报文采用短帧结构,传输效率高、不易受干扰;CAN总线错误处理机制完善,发送信息失败后可自动重发[6],但使用CAN总线组网需要特定的控制器和收发器,且总线协议复杂,设计调试繁琐。

RS232总线多用在工业控制领域中,其原因主要是RS232总线传输稳定,结构和协议简单[7]。RS485总线是在RS232总线基础上发展起来的,其克服了RS232总线必须工作在一主多从的模式和传输效率低以及通信滞后的弊端,能将各节点组成一个网络,且传输距离远,有较高的抗干扰能力[8]。图1为所设计的网关的拓扑结构。

图1 网关拓扑结构

2 硬件设计

网关硬件是基于STM32F107单片机设计的。STM32F107是一款基于Cortex-M3核的32位低成本、高性能的嵌入式处理芯片[9],内置MAC模块,要实现网络传输需要外扩一片PHY芯片,底层网络驱动就是对PHY芯片的操作,TCP/IP协议采用 LwIP协议栈。芯片集成2路CAN控制器以及3路UART控制器[10]。利用PCA82C251T CAN收发器、SP3232串口转RS232芯片和SN65HVD1176D串口转RS485芯片设计了网关物理层数据收发电路,分别如图2~图4所示。

图2 CAN数据收发电路

图3 RS-232数据收发电路

图4 RS-485数据收发电路

3 软件设计

网关软件基于MDK4.7平台开发,软件以μC/OS-II实时嵌入式操作作为设备管理主程序框架, 同时嵌入了LwIP协议栈作为 TCP/IP 协议。LwIP实现的重点是在保持TCP协议主要功能的基础上减少了对RAM 的占用,只需十几kB的RAM和约40 kB的ROM,这使得LwIP协议栈特别适合在嵌入式系统中使用[11]。图5显示了网关对各协议数据转发任务的流程。

图5 数据处理流程图

网关对到以太网转换协议的物理端口做了如表1分配。

表1 转换的协议物理端口分配

3.1 TCP 与 CAN 双向数据传输

网关的两路CAN通道均可连接任意带有CAN通信接口的物理设备。带CAN通信接口的设备通过网关可将数据发往任意以太网设备。同样的,以太网设备也可通过网关将数据发往CAN设备。

现阶段CAN总线的最大传输速度为1 Mbit·s-1,相对于以太网传输速度来说慢很多[12]。若CAN总线接收到一帧数据即向以太网上发送,这将会造成数据丢帧和网络利用率较低[13]。本网关采用的解决办法是:将接收到的CAN数据帧进行组包处理,接收完一包CAN数据之后再向以太网上发送。CAN数据帧组包方式有多种,本网关选择通过CAN数据帧的个数来组包,即当接收到预定的CAN 数据帧个数(本网关设定为20个)后将接收到的这些CAN数据帧组成一包,然后再发送到以太网上进行传输。

网关两路CAN滤波器的ID均设置为0x00000000,这样做的目的是为了使网关可接收任意标识符的数据帧。表2为网关两路CAN控制器的基本设置。

表2 CAN 接口设置

3.2 TCP 与RS232/485双向数据传输

同网关的CAN数据收发功能一样,带有RS232/485接口的设备可通过网关将数据发往任意以太网设备,以太网设备也可将数据发往对应的RS232/485设备。网关在接收到的RS232/485数据组包后才能向网络上发送数据[14]。一般RS232/485组包方式有两种:(1)通过RS232/485的数据帧结束符来区分一帧数据是否结束;(2)通过单片机内的定时器来进行组帧:接收到一个字节后开始计时,若在规定的时间内没有再接收到数据,则将已接收到的数据打包成一帧数据再发送到网络上。如果RS232/485一直有数据接收(两个Byte间的时间间隔小于规定时间),则当接收的数据的个数超过规定缓冲区长度时,才开始组帧[15]。

比较两种方法,第一种方法需要设置合适的帧结束符,不利于做透传,但实现起来较为容易。由于实际工程中的协议均会有帧结束符和一帧的长度(如Modbus协议),这种方式在实际工程中可得到有效的应用。第二种适合以太网转串口的透明传输,根据字节间的时间间隔来组帧。本网关采用的是第二种组帧方式。即当接收到 RS232/485数据帧时,才将该帧数据打包成以太网数据帧,然后分别向各自的客户端发送数据。当以太网接收到一帧数据时,若是判断是RS232端口接收的,则将该帧数据组帧后通过 RS232端口发送出去;若是RS485端口接收的,则将该帧数据组帧后通过RS485端口发送出去。

4 网关通信测试

为了测试网关的数据转发性能,需要对网关进行丢包、粘包和拆包以及总线负载率等性能的测试。

4.1 测试环境搭建

设计的网关具有CAN、RS232和RS485到Ethernet的转发功能,对传输数据的分包和打包的合理处理是网关正常工作的关键。针对CAN-Ethernet数据收发性能的测试,选用的是Vector公司生产的VN1630 CAN卡,并带有CANalyzer分析软件。CANalyzer是网络和分布式系统开发的通用分析工具,能方便的观察、分析和支持扩展多达32个CAN通道的数据传输。其具有良好的性能,及可编程功能,能满足从简单的网络分析到复杂问题中发现并解决故障(解决纷争)的所有需求[16]。针对RS232/485-Ethernet数据收发性能的测试采用串口调试助手作为测试软件。图6为网关测试实验环境。

图6 网关测试实验环境

测试开始前,将网关和电脑(路由器)连接,并将网关的各物理转换接口同对应的设备接口连接,然后下载编译好的固件,复位单片机。图7和图8显示了CAN 和RS232、RS485到Ethernet的收发情况。

图7 CAN-Ethernet数据收发性能测试

图8 RS232/485-Ethernet数据收发性能测试

4.2 网关数据转发性能测试

实验主要针对数据的丢包、粘包和拆包的性能指标进行测试。理论上由于TCP 是可靠的传输方式,基本不存在丢包的现象。从表3也可看出,粘包主要发生在通过CAN 和RS232、RS485连续发送一帧数据到网关Ethernet的过程中。发送的数据可能分好几次接收,接收间隔可达5 ms,这是由于RS232、RS485及CAN收发器的传输速率较低,无法跟上Socket的速率,故在此环节造成数据粘包的情况。不过在低速率、小数据量方面,网关足以胜任数据的透传。当数据帧大小100 Byte,发送间隔为100 ms时的网关的性能已经可满足众多的工业控制和测试需求。CANalyzer中的总线负载率反映了CAN总线上的数据拥挤程度,数据收发速率同总线负载率负相关。表3中表明,网关在高速数据传输下依然能保证较低的总线负载率,这反映了网关工作效率较高。

表3 网关数据转发能力测试结果

5 结束语

在汽车测试领域中,超过80%的车辆均是采用CAN总线进行各模块和传感器间的数据通信,测试设备也主要是采用CAN总线来开发的。但也有相当一部分测试设备是基于RS232、RS485总线或者Ethernet总线设计的,这就导致在实际测试过程中,需要大量协议转换的网关作为中间数据转发设备。由于每种网关结构功能单一,不能根据开发者的需求进行调整,导致测试效率不高。

将本文设计网关用于汽车台架测试中,网关实现了汽车和测试设备之间数据协议的统一,实际工作中网关也获得了良好的测试性能。在当前车联网飞速发展的背景下,本网关成本低、易部署,将拥有广阔的发展前景和市场空间。

[1] 樊良.中间件技术在现场总线互连网关中的应用[D].成都:电子科技大学,2007.

[2] 李刚炎,胡剑.城市客车信息集中控制与CAN总线[C].西安:中国客车学术年会,2005.

[3] 陈磊.从现场总线到工业以太网的实时性问题研究[D].杭州:浙江大学,2004.

[4] 曹万科.CAN协议车载网络若干关键理论研究[D].沈阳:东北大学,2008.

[5] 常英亮.基于嵌入式 Linux 的物联网网关研究与实现[D].北京:北京交通大学,2014.

[6] Thompson B.Understanding controller area networks[J].Mo-tor,2008,209(1):46-50.

[7] Aberu E,Lightstone M,Mitra S K,et al.A new efficient ap-proach for the removal of impulse noise from highly corrupted images[J].IEEE Transactions on Image Processing,1996,5(6):1012-1025.

[8] Mazzaferri J,Campus J,Escalera J C,et al. Edge detector tol-erant to object defocusing[J].Optics Communications,2010,283(19):3639-3645.

[9] 徐闻拯.多模物联网网关系统设计与实现[D].西安:西安电子科技大学,2014.

[10] 刘承智,丁国良,原亮,等. 改进型CAN总线协议的实时性研究[J]. 计算机技术与发展,2012,22(7):81-84.

[11] 李阳铭.基于ARM的嵌入式网关研究[D].合肥:合肥工业大学,2006.

[12] 李正军.现场总线与工业以太网及其应用技术[M].北京:机械工业出版社,2011.

[13] 王文博.时分双工CDMA移动通信技术[M].北京:北京邮电大学出版社,2003.

[14] 张大鹏.CAN总线与以太网互联关键技术的研究[D].南京:南京航空航天大学,2006

[15] 赵浩.基于CAN总线和以太网的嵌入式系统设计与研究[D].西安:西北工业大学,2007.

[16] 孔令伟.车载CAN网络的网关设计方法研究[D].哈尔滨:哈尔滨工业大学,2008.

Design of Multi-protocol Gateway for Vehicle Bench Testing

LI Gen,CAI Shumin,WANG Yagang

(School of optical-Electrical and Computer Engineering, University of Shanghai for Science and Technology, Shanghai 200093, China)

In view of the insufficient aspect of traditional vehicle bus cannot share local information with management information of the Ethernet network, a multi-protocol conversion gateway is designed, as the bridge between the vehicles bus and other test devices to the Ethernet, the gateway can transfer data between different protocols. On the hardware, the gateway based on STM32F102 host device, using CAN, UART, Ethernet and some other peripheral interfaces for data receiving and transmitting control circuit. On the part of software, the gateway transplant the real-time embedded operating system μC/OS-II, LwIP protocol stack, and finally realize the data transfer function between CAN, RS232 and RS485 to Ethernet. Using the gateway in vehicle bench testing, the results show the gateway has high real-time performance and high reliability, a low bus load rate and a very low transmission error rate.

gateway; multi-protocol; vehicles bench testing; CAN bus

2016- 04- 24

李根(1990-),男,硕士研究生。研究方向:嵌入式等。蔡淑敏(1993-),女,硕士研究生。研究方向:嵌入式等。王亚刚(1967-),男,博士,硕士生导师。研究方向:工业过程控制等。

10.16180/j.cnki.issn1007-7820.2017.03.025

TN915.05

A

1007-7820(2017)03-091-04

猜你喜欢
网关以太网嵌入式
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
基于改进RPS技术的IPSEC VPN网关设计
搭建基于Qt的嵌入式开发平台
谈实时以太网EtherCAT技术在变电站自动化中的应用
电子制作(2017年24期)2017-02-02 07:14:44
嵌入式软PLC在电镀生产流程控制系统中的应用
电镀与环保(2016年3期)2017-01-20 08:15:32
LTE Small Cell网关及虚拟网关技术研究
移动通信(2015年18期)2015-08-24 07:45:08
一种90W高功率以太网供电系统的设计
电源技术(2015年7期)2015-08-22 08:48:48
浅谈EPON与工业以太网在贵遵高速公路中的应用
应对气候变化需要打通“网关”
太阳能(2015年7期)2015-04-12 06:49:50
Altera加入嵌入式视觉联盟