我們首先要了解的信息有以下五點:
1、充電機和BMS之間通信網絡採用CAN2.0B通訊協議。
2、在充電過程中,充電機和BMS監測電壓、電流和溫度等參數,同時BMS管理整個充電過程。
3、充電機和BMS之間的CAN通信網絡應由充電機和BMS兩個節點組成。
數據信息傳輸採用低字節先發送的格式。
4、正的的電流表示放電,負的電流表示充電。
5、執行本標準的充電機和BMS宜具備向前兼容性。
1、什麼是報文?
一個或多個具有相同參數組編號的“CAN數據幀”
--《GB/T 27930-2015》3.3
2、什麼是CAN數據幀?
用於傳輸數據的CAN協議所必需的有序位域,以幀起始(SOF)開始,幀結束(EOF)結尾。
--《GB/T 27930-2015》3.2
3、一個CAN數據幀包都含什麼?
每個CAN數據幀包含一個單一的協議數據單元(PDU),協議數據單元由七部分組成,恩別是優先權、保留位、數據頁、PDU格式、PDU待定、源地址和數據域。其中前六部分組成CAN標識符(幀ID)完整的協議數據單元如下:
從上圖可以看出協議數據單元由CAN標識符(幀ID)和數據域組成,而標識符由以下部分組成:
P:優先權,從最高0設置到最低7
R:保留位,本協議中默認爲0
DP:數據頁,本協議中默認爲0
PF:PDU格式,用來確定PDU的格式,以及數據與對應的參數組編號
PS:PDU特定格式,PS值取決於PDU格式,本標準中採用PDU1格式,PS值爲目標地址
SA:源地址,即此發送報文的源地址
DATA:數據域,若給定參數組數據長度≤8字節,按照第九章規定的報文長度進行傳輸。若給定參數組數據長度爲9-1785字節時,數據傳輸需多個CAN數據域,通過傳輸協議功能 的連接管理能力來建立和關閉多包參數組的通信,詳見6.5的規定。附圖如下
以上引自《GB/T 27930-2015》6.2
充電機和BMS的地址分配如下:
裝置 |
首選地址 |
充電機 |
86(56H) |
BMS |
244(F4H) |
由以上信息得知,組成幀ID的29位數據其中R(保留位)、DP(數據頁)、PS(目標地址)、SA(源地址)這18位數據是已知數據,我們要得出幀ID只需再確定P(優先權)、PF(PDU格式)兩項即可。
同時協議中又指出,PGN的第二個字節爲PDU格式(PF)值,高字節和低字節均爲00H。那麼PF值也是已知數據,所以我們只需要根據協議中給出的報文優先權和PGN(參數組便函)值即可得出幀ID。《GB/T 27930-2015》6.4
下面我們以協議中的第一條報文CHM爲例計算它對應的幀ID
從協議中可獲取CHM報文相關信息如下:
SA源地址:56H
PS目的地址:F4H
PGN參數組編號:002600H
PF值:PF值爲PGN的第二個字節,即26H
DP:0
R:0
P:6
將已知數據填充到相應位以後可得上表第三行,然後將十六進制數據展開爲二進制數據可以得到第四行,然後再將29位數據從低位到高位去轉換成16進制數據可以得到第5行數據,所以最後CHM的幀ID爲1826F456H。
按照上面同樣的方法可以得到整個通訊協議中,所有報文的幀ID如下表:
部分報文數據傳輸長度超過8字節,啓動TP.CM協議將數據分包發送,TP.CM協議具體格式在《SAE J1939-21》5.3.10中有詳細說明。