北极星

搜索历史清空

  • 水处理
您的位置:电力电力新闻发电信息化技术正文

基于LPC2294的CAN与以太网网关互联的设计

2013-08-07 14:59来源:电子科技关键词:以太网存储芯片收藏点赞

投稿

我要投稿

2 软件设计

2.1 报文结构

CAN总线与以太网互联的软件设计主要包括从以太网中提取CAN数据和将CAN总线的数据转换成以太网的数据。其中,CAN报文结构可分为两种不同的帧格式,而两种帧格式的区别在于其标识符的长度不同:标准帧中有11位标识符,扩展帧中有29位标识符。本设计中采用的是扩展帧,且在本网关模块收到CAN板卡的报文时,需按上述以太网数据传输报文格式对CAN数据进行封装及打包并通过以太网发送。在此过程中不必对CAN报文的13 Byte数据进行高低位转换和移位处理,采用透明转换方式。便可减少数据解析及处理的时间,并提高了数据在传输过程中的可靠性。

 

如图3所示,该网关中规定的以太网帧格式包括5部分,按照封装的先后顺序分别为:封装的数据(如本系统中的CAN数据帧等)、自定义UDP首部、标准UDP/TCP首部、IP首部、以太网首部和最终校验。本系统中主要采用的是UDP协议,目的是为了自定义控制字来区别不同类型的报文,包括有:CAN数据报文、时统报文、工作状态请求报文、心跳报文及设备故障诊断信息报文。其中时统报文是在开机时或每30分钟系统发送的对时请求。工作状态报文是在各设备开机或复位并正常工作后自动发送的,还有收到询问报文或状态改变后发送,主要发送时戳和设备ID信息。心跳报文是在各设备开机或复位并正常工作后,每5 s周期发送,作用是通知其所在的网络,是否工作状态正常。设备故障诊断信息报文是当接收到故障诊断请求报文或网关根据CAN板卡数据接收情况,自行检测到网关箱内该板卡故障情况的变化,一般网关在30分钟内未收到参数设置报文中指定的CAN板卡对应节点的数据和远程帧等,可认定此节点故障,并发送故障信息报文。这增添了系统的一些管理信息,根据不同的报文类型完成系统不同的通信功能。自定义UDP封装格式如图4所示。

 

在自定义UDP封装格式中,字节0~3为固定的帧头信息,用以识别本网关模块的数据报信息,无论是CAN报文、时统报文或工作状态请求报文均使用该格式,若不符合该帧头的数据报网关模块不进行处理。需注意的是,第20 bit开始才是真正的数据,每个信息单元均有各自的序号、标识和长度等信息。其中信元的序号表示该信元在UDP数据报中的位置;标识代表信息单元内报文的类型。

2.2 程序设计

网关模块的主要功能是以太网数据包与CAN数据帧之间的格式相互转换,进而完成以太网和CAN网络间通讯。本模块使用嵌入式μC/OS—II作为操作系统,通过裁剪、移植使其能顺利运行于LPC2294控制器。另外,在系统中移植了TCP/IP协议的核心功能函数,并编写了6个任务函数,使其分工合作实现了模块的各项功能,并通过μC/OS—II系统的任务调度管理机制来进行系统资源的分配。

投稿与新闻线索:陈女士 微信/手机:13693626116 邮箱:chenchen#bjxmail.com(请将#改成@)

特别声明:北极星转载其他网站内容,出于传递更多信息而非盈利之目的,同时并不代表赞成其观点或证实其描述,内容仅供参考。版权归原作者所有,若有侵权,请联系我们删除。

凡来源注明北极星*网的内容为北极星原创,转载需获授权。