在通訊過程中,用戶需要利用 CheckSum 信號對傳輸數據用自己規定的算法邏輯進行校驗,來看數據在傳輸過程中是否被更改或傳輸錯誤。本文主要介紹 TSMaster 如何設置自己的 CRC 算法信號。
CRC相關知識介紹
1
原理
CRC 校驗本質上是選取一個合適除數,對要進行校驗的數據(被除數)做模 2 除法,得到的余數就是 CRC 校驗值。
1.標準 CRC 生成多項式
2.位寬(W)
多項式二進制位數減一。
3.工程中常用 CRC 校驗過程
△ 余數初始值:計算開始前,先給變量 CRC 賦的初始值。
△結果異或值:計算結束后,得到的變量 CRC 與這個值進行異或操作,得到最終校驗值。
△輸入數據反轉:計算開始前,將需要校驗的數據反轉,如 1011 反轉為 1101。
△輸出數據反轉:計算結束后,與結果異或值異或之前,計算值反轉,如 1011 反轉為 1101。
4. 模 2 運算
不考慮進位和借位的二進制數運算。
操作步驟(以 CRC8 為例)
1
利用C腳本對單一信號設置自定義CRC校驗算法
1. 打開 TSMaster,創建一個 C 腳本窗口。
2. 創建 Rollingcount 信號變量 RC、創建需要校驗信號所對應報文的預發送事件、以及校驗算法函數 MakeCheckSum(此處以 ABSData 報文為例)。
3. 編輯 CRC 自定義算法函數。
4. 在預發送事件中,調用編輯好的自定義 CRC 算法函數,利用回調函數賦值給 CheckSum信號,同時對 RollingCount 信號編程做循環處理。
5. 將 DBC 中 CheckSum 和 RollingCount 信號添加至信號曲線進行觀察,即可完成通過腳本對單一校驗信號設置自定義的 CRC 校驗算法。
2
對多個信號設置自定義CRC校驗算法
1. 添加 DBC 文件進 TSMaster,打開 RBS 模塊,找到需要設置的 CheckSum 信號,點擊鼠標右鍵,選擇設置為 CheckSum 信號。
2. 在彈出的 CRC 算法庫中選擇合適的 CRC 算法,如需要自定義則需進行以下步驟。
3. 在彈出算法庫窗口后,進入 C 小程序,選擇 CRC Library,在自定義函數右鍵添加自定義算法函數(如 MyCRC)。
4. 編輯自定義算法函數代碼(注意:參數類型需與現有 CRC 算法函數保持一致:指針指向數據首地址,數據長度),編輯好后點擊編譯。
5. 回到 RBS 界面,選中要設置的 CRC 校驗信號,右鍵選擇設置為 CRC 校驗信號,在彈出的算法庫中便已包含了我們自定義的 CRC 校驗算法,這樣即可快速對多個 CRC 信號進行CRC 校驗算法設置,實現 CheckSum 本地化支持。
6. 在編譯好 CRC 信號函數后,我們可以在 RBS 中對 CRC 信號點擊鼠標右鍵,選擇設置編輯算法參數,在彈出的窗口中,可以選擇切換其他 CRC 校驗算法,并設置首地址和長度。這樣即可快速對多個 CRC 信號進行 CRC 校驗算法設置,實現 CheckSum 本地化支持。
-
crc
+關注
關注
0文章
197瀏覽量
29355 -
信號
+關注
關注
11文章
2736瀏覽量
76161 -
MASTER
+關注
關注
0文章
99瀏覽量
11219
發布評論請先 登錄
相關推薦
評論