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

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

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

一、CAN总线通信方式

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

[[223364]]

图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网络分析

责任编辑:武晓燕 来源: 电子产品世界
相关推荐

2010-06-10 15:03:13

协议转换器

2010-06-08 15:55:14

CAN总线协议

2009-09-02 15:18:19

2010-07-01 16:52:19

CAN总线协议

2017-05-11 09:10:31

CAN-bus应用层协议

2010-06-08 16:00:34

CAN总线协议

2010-06-08 15:49:26

CAN总线协议

2010-06-08 15:35:55

CAN总线协议

2012-03-19 10:55:27

JavaSocket

2019-10-12 17:42:33

2017-08-21 08:51:22

CAN网络通讯

2011-07-19 11:35:09

linux网络协议

2010-06-08 15:45:47

CAN总线协议

2014-06-13 13:47:31

UDP

2011-08-24 10:31:01

网络协议SLIPPPP

2010-07-05 10:38:49

网络层次协议

2010-09-09 15:25:35

网络协议

2010-06-17 18:00:40

网络通讯协议

2015-04-01 10:22:06

WebSocket网络协议WebSocket协议

2018-12-24 06:56:12

物联网网络协议MiWi
点赞
收藏

51CTO技术栈公众号