如何识别陌生CAN网络的协议?

时间:2018-02-28

  在CAN网络中,所有节点的数据收发共享一条总线。当面对未知的多节点CAN总线网络时,如何准确分析各节点间的通信协议呢?

  一、CAN总线通信方式

  与485类似,CAN-Bus也是以总线的方式进行通信的,所有的CAN节点都挂在一对差分线上。但CAN总线中的节点不存在主从的概念,当节点有数据需要上传时可自主、即时发送,先进的仲裁机制保证数据不会冲突。

  图1  CAN总线通信方式

  二、CAN总线协议分析

  对比标准的通信七层模型,CAN总线大体可分为物理层、链路层、应用层。对链路层的解析就能得到节点ID号。若对一个“未加密”CAN总线做链路层的解析,使用CAN总线接口卡(也称CAN盒)即可。这类工具能将CAN通讯转换为USB、PCI等通信方式,一般配合电脑使用。若要对CAN总线做全面的分析,则需要的总线分析仪。CANScope是集CAN节点测试与标定、CAN总线故障诊断与解决的综合仪器。

  图2  CAN总线抓包工具及方法

  三、多路CAN卡的应用

  以上提到的总线协议分析是在总线节点少、节点ID已知的前提下进行的。当面对一个协议未知且节点数多、节点ID未知网络时,首先要做的是分别摘取各路CAN中报文、辨识各节点ID。

  图3  数据分离、摘取

  若将每个节点单独取出做测试,则必然破坏原有通信规则。如何在不破坏原有通信的基础上搞清楚一个陌生的收发协议呢?所谓工欲善其事,必先利其器。您需要一个能同时收发、转送多路CAN数据的CAN卡,USBCAN-8E-U正是这种测试工具。

  图4  USBCAN-8E-U

  USBCAN-8E-U集成8路CAN-bus接口,各通道间可做路由(转发)功能。在识别节点ID时,可以将节点同时接到8个CAN接口上,然后设置8路CAN间通信自由转发,保证原有网络通信规则不受破坏。强大的上位机软件将每个通道发送、接收的CAN报文按通道分开显示,数据分析一目了然。

  图5  多节点CAN网络分析

上一篇:电源设计中如何抑制纹波噪声
下一篇:传感器电路噪声分析及抗干扰的研究

免责声明: 凡注明来源本网的所有作品,均为本网合法拥有版权或有权使用的作品,欢迎转载,注明出处。非本网作品均来自互联网,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。

相关技术资料