在CAN總線通信的應用領域中,很多客戶需要將CANID 放在CAN報文中,這樣更方便接入不同的設備,有利于用戶通過模塊更方便的組建自己的網絡,使用自定的應用協議。但是要實現這樣的應用,用戶往往需要不停地去修改參數,而億佰特的ECAN-401所具備的協議轉發功能則很好地處理這個問題。首先我們要了解一下此設備的固定協議是怎么樣的格式。
CAN格式轉換固定13字節表示一個CAN幀數據,13個字節內容包括CAN 幀信息+幀ID+幀數據。在該轉換模式下,設置的CANID無效,因為此時發送的標識符(幀 ID)由上述的格式串行幀中的幀ID數據填充。配置的幀類型也無效,由格式串行幀中的幀信息來決定幀類型。格式如下:

幀 ID 的長度為 4 字節,標準幀有效位是 11 位,擴展幀有效位是 29 位。

在串行幀轉CAN報文的過程中,以固定字節(13字節)對齊的串行數據幀中,某段固定字節的數據格式不標準,將會不對固定字節長度進行轉換,接著轉換后面的數據。如果轉換后發現少了某些 CAN 報文,請檢查對應報文的固定字節長度串行數據格式是否不符合標準格式。
幀數據在CAN格式轉換時,長度固定為8字節。有效長度由DLC3~DLC0的值決定,有效數據不足固定長度時,需要補0到固定長度。
此模式下,要注意嚴格按照固定字節的格式串行數據格式才能轉換成功,CAN 模式轉換可參考示例(CAN 格式轉換標準幀示例)所示,轉換時首先要確保幀信息無誤,數據長度表示無誤,否則不會進行轉換。
轉換示例:
串行幀轉CAN報文(協議模式);
該示例配置的CAN配置參數;
轉換模式:協議模式;
幀類別:擴展幀;
轉換方向:雙向;
幀ID:無需配置;
則轉換前后數據如下:

在了解了ECAN-401的協議模式功能后,我們可以開始實際操作,準備以下設備:
ECAN-401一臺
CAN分析儀ECAN-U01一臺
XCOM串口助手
這里我們使用ECAN-401做數據轉換工具,ECAN-U01發送和接收CAN報文,XCOM串口助手軟件模擬串行設備發送串行數據。將ECAN-401與ECAN-U01的CAN_L和CAN_H連接,ECAN-401的485接口通過485換USB轉換器連接到電腦,如下圖所示:

通過ECAN-401的上位機,將設備通訊模式切換為協議模式,CAN波特率1000K,參數配置如下圖:

打開CAN分析儀ECAN-U01以及XCOM軟件,使用XCOM軟件模擬出一串行設備,通過ECAN-401的485串口發送串行數據。首先使用標準幀發送兩包數據:88 01 23 45 67 11 22 33 44 55 66 77 88,這里可以看到ECAN-U01設備已經接收到了ECAN-401所轉換出來的數據:

這里可以看到ECAN-U01已經成功接收到ECAN-401轉化出來的數據,幀類型:擴展幀幀ID:1234567,數據域:11 22 33 44 55 66 77 88 。從ECAN-401的配置參數上看,ECAN-401的設置的幀類型和幀ID是沒生效的,CAN分析儀接收的幀信息由串行幀給出。
再試試串行幀發送08 00 00 01 23 88 77 66 55 44 33 22 11,如下圖所示:

CAN分析儀正常接收到標準幀數據,這樣就可以實現設備到CAN的協議轉發。
-
CAN
+關注
關注
59文章
3067瀏覽量
472748 -
協議
+關注
關注
2文章
618瀏覽量
41080
發布評論請先 登錄
CAN協議的深度剖析
機器人通信協議EtherCAT和CAN如何選擇
虹科答疑 | 3步搞定CAN CC/FD雙向轉換!虹科PCAN-Router FD實操教程來了
如何同時指定can硬件濾波器的只接收id為0 和id為3的報文呢?
移植CANfestival,發現can無法接收數據,為什么?
ProfiNet轉CAN/CANopen網關技術詳解
第十三章 W55MH32 UPnP端口轉發示例
協議分析儀能監測哪些異常行為?
一文讀懂CAN XL協議
【教程】CAN報文固定協議轉發
評論