ZCANPRO的.can文件解析

寫在前面

        ZCANPRO是致遠電子ZLG公司推出的canpro繼任軟件,儘管界面花哨了很多,不過個人用得並不習慣。主要原因有以下幾點:

  • ZCANPRO沒有了【導入數據】功能,只能通過【數據回放】來將保存的離線數據進行加載,在一定程度上浪費了點時間;
  • ZCANPRO可顯示的報文列表最大數量僅僅只有100000幀,你沒數錯,就是隻有10萬幀,這對於總線負載比較高的場合也就是幾分鐘數據就得被覆蓋,非常不利於將數據保存下來離線分析。然而原版的CANpro的列表顯示上限不設限制,個人測試中顯示過300多萬幀都不卡。
  • 還是數據量的問題,儘管ZCANPRO也可以進行【實時保存】,但是它每隔10萬幀就會自動分割成兩個文件,不利於離線分析。
    在這裏插入圖片描述

        不過,ZLG官網已經不再提供CANpro的下載了,所以在這裏我們就針對他主推的ZCANPRO軟件的.can文件來分析分析。如果有CANpro安裝包需要,可以點擊這裏到百度網盤下載,提取碼:001q 。ZCANPRO軟件請自行到ZLG官網下載,下圖是ZCANPRO軟件本尊:
在這裏插入圖片描述

言歸正傳

        ZLG公司是國內CAN總線的先驅者,其推出的CAN總線產品也是廣受好評。對於吾等處於無產階級的學生仔來說,ZLG的CANtest、CANpro等軟件可以免費無限制使用真是太好了。ZLG公司也針對其產品,定義了.can格式的二進制文件來保存CAN數據,以降低文件的體積。ZCANPRO軟件作爲CANpro的接棒者,其保存的.can格式文件與CANpro軟件的.can文件並不相同。CANpro軟件生成的.can文件的解析請參看本人另一篇博文《ZLG的CANpro保存的.can文件解析》

先拋結論

  1. CANpro中,.can文件中保存的N幀CAN報文數據的總字節數爲:20+N×24
  2. ZCANPRO中,.can文件中保存的CAN報文數據是變長度的,其N幀報文總字節數爲:
    BytesCount=12+N×58+i=1Nlength(i)BytesCount=12+N×58+ \sum_{i=1}^N{length(i)}
    如有錯誤,請務必指正,謝謝!

這都是什麼鬼東西

固定前綴

ZCANPRO的.can文件的固定前綴爲12字節:ff ff ff ff 00 00 00 00 01 00 00 00。嗯,也不知道它代表啥意思,不像CANpro那樣很直白的“Zhiyuan CAN Data ”。反正就是這麼個前綴。
在這裏插入圖片描述

單幀報文

ZCANPRO的.can文件的單幀報文爲變長度的58~66字節。
在這裏插入圖片描述

Bytes 含義 示例
Byte0~Byte4 組號GROUP_ID 15 00 00 00 01 表示組號爲:0x0100000015
Byte5~Byte29 不詳 -
Byte30~Byte33 CAN_ID ef 1f f1 18 表示組號爲:0x18F11FEF
Byte34 不詳 -
Byte35 幀格式 0x00爲數據幀,0x01爲遠程幀
Byte36 幀類型 0x00爲標準幀,0x01爲擴展幀
Byte37 數據長度length 根據數據長度取值,例如0x08表示長度爲8
Byte38~Byte41 不詳 -
Byte42~Byte(42+length-1) 數據Data[0]~Data[?] 此區域長度爲數據長度。
Byte(42+length)~Byte(42+length+5?) 時間戳(微秒) 單位爲微秒,例如:FC 98 7F 04 00(即0x00047F98FC)表示時間戳爲75.471100 s。特別說明:此處長度有可能不止5字節
Byte(42+length+5?)~Byte(42+length+15) 不詳 -

接下來,我們對不同長度的CAN報文進行測試,爲了更便於觀察,已將前綴10個字節刪去,不同數據長度下單幀報文的數據如下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
通過以上各Bit的解析,即可對.can文件進行數據分析,本人在自開發的X-CAN離線分析軟件中也實現了對ZCANPRO軟件生成的.can文件的數據解析。詳情請看本人博文:CAN報文的離線分析:X-CAN離線分析平臺

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章