在通訊過程中,用戶需要利用 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文章
205瀏覽量
30851 -
信號
+關注
關注
12文章
2914瀏覽量
80163 -
MASTER
+關注
關注
0文章
111瀏覽量
12207
發布評論請先 登錄
無圖形界面模式下自定義檢查工具的應用
硬件循環冗余校驗(CRC)模塊介紹
CRC校驗的原理和應用
CRC校驗的本質和物理意義
電能質量在線監測裝置的數據推送協議是否可以自定義配置?
如何在e203 SOC中添加自定義外設
LOTO示波器自定義解碼功能—CANFD解碼
KiCad 中的自定義規則(KiCon 演講)
TSMaster中如何自定義CRC校驗算法
評論