如何識別陌生CAN網(wǎng)絡(luò )的協(xié)議?
在CAN網(wǎng)絡(luò )中,所有節點(diǎn)的數據收發(fā)共享一條總線(xiàn)。當面對未知的多節點(diǎn)CAN總線(xiàn)網(wǎng)絡(luò )時(shí),如何準確分析各節點(diǎn)間的通信協(xié)議呢?
本文引用地址:http://dyxdggzs.com/article/201803/376585.htm一、CAN總線(xiàn)通信方式
與485類(lèi)似,CAN-Bus也是以總線(xiàn)的方式進(jìn)行通信的,所有的CAN節點(diǎn)都掛在一對差分線(xiàn)上。但CAN總線(xiàn)中的節點(diǎn)不存在主從的概念,當節點(diǎn)有數據需要上傳時(shí)可自主、即時(shí)發(fā)送,先進(jìn)的仲裁機制保證數據不會(huì )沖突。

圖1 CAN總線(xiàn)通信方式
二、CAN總線(xiàn)協(xié)議分析
對比標準的通信七層模型,CAN總線(xiàn)大體可分為物理層、鏈路層、應用層。對鏈路層的解析就能得到節點(diǎn)ID號。若對一個(gè)“未加密”CAN總線(xiàn)做鏈路層的解析,使用CAN總線(xiàn)接口卡(也稱(chēng)CAN盒)即可。這類(lèi)工具能將CAN通訊轉換為USB、PCI等通信方式,一般配合電腦使用。若要對CAN總線(xiàn)做全面的分析,則需要專(zhuān)業(yè)的總線(xiàn)分析儀。CANScope是集CAN節點(diǎn)測試與標定、CAN總線(xiàn)故障診斷與解決的綜合儀器。

圖2 CAN總線(xiàn)抓包工具及方法
三、多路CAN卡的應用
以上提到的總線(xiàn)協(xié)議分析是在總線(xiàn)節點(diǎn)少、節點(diǎn)ID已知的前提下進(jìn)行的。當面對一個(gè)協(xié)議未知且節點(diǎn)數多、節點(diǎn)ID未知網(wǎng)絡(luò )時(shí),首先要做的是分別摘取各路CAN中報文、辨識各節點(diǎn)ID。


圖3 數據分離、摘取
若將每個(gè)節點(diǎn)單獨取出做測試,則必然破壞原有通信規則。如何在不破壞原有通信的基礎上搞清楚一個(gè)陌生的收發(fā)協(xié)議呢?所謂工欲善其事,必先利其器。您需要一個(gè)能同時(shí)收發(fā)、轉送多路CAN數據的CAN卡,USBCAN-8E-U正是這種測試工具。

圖4 USBCAN-8E-U
USBCAN-8E-U集成8路CAN-bus接口,各通道間可做路由(轉發(fā))功能。在識別節點(diǎn)ID時(shí),可以將節點(diǎn)同時(shí)接到8個(gè)CAN接口上,然后設置8路CAN間通信自由轉發(fā),保證原有網(wǎng)絡(luò )通信規則不受破壞。強大的上位機軟件將每個(gè)通道發(fā)送、接收的CAN報文按通道分開(kāi)顯示,數據分析一目了然。

圖5 多節點(diǎn)CAN網(wǎng)絡(luò )分析
評論