在通訊過(guò)程中,用戶(hù)需要利用 CheckSum 信號(hào)對(duì)傳輸數(shù)據(jù)用自己規(guī)定的算法邏輯進(jìn)行校驗(yàn),來(lái)看數(shù)據(jù)在傳輸過(guò)程中是否被更改或傳輸錯(cuò)誤。本文主要介紹 TSMaster 如何設(shè)置自己的 CRC 算法信號(hào)。
CRC相關(guān)知識(shí)介紹
1
原理
CRC 校驗(yàn)本質(zhì)上是選取一個(gè)合適除數(shù),對(duì)要進(jìn)行校驗(yàn)的數(shù)據(jù)(被除數(shù))做模 2 除法,得到的余數(shù)就是 CRC 校驗(yàn)值。
1.標(biāo)準(zhǔn) CRC 生成多項(xiàng)式
2.位寬(W)
多項(xiàng)式二進(jìn)制位數(shù)減一。
3.工程中常用 CRC 校驗(yàn)過(guò)程
△ 余數(shù)初始值:計(jì)算開(kāi)始前,先給變量 CRC 賦的初始值。
△結(jié)果異或值:計(jì)算結(jié)束后,得到的變量 CRC 與這個(gè)值進(jìn)行異或操作,得到最終校驗(yàn)值。
△輸入數(shù)據(jù)反轉(zhuǎn):計(jì)算開(kāi)始前,將需要校驗(yàn)的數(shù)據(jù)反轉(zhuǎn),如 1011 反轉(zhuǎn)為 1101。
△輸出數(shù)據(jù)反轉(zhuǎn):計(jì)算結(jié)束后,與結(jié)果異或值異或之前,計(jì)算值反轉(zhuǎn),如 1011 反轉(zhuǎn)為 1101。
4. 模 2 運(yùn)算
不考慮進(jìn)位和借位的二進(jìn)制數(shù)運(yùn)算。
操作步驟(以 CRC8 為例)
1
利用C腳本對(duì)單一信號(hào)設(shè)置自定義CRC校驗(yàn)算法
1. 打開(kāi) TSMaster,創(chuàng)建一個(gè) C 腳本窗口。
2. 創(chuàng)建 Rollingcount 信號(hào)變量 RC、創(chuàng)建需要校驗(yàn)信號(hào)所對(duì)應(yīng)報(bào)文的預(yù)發(fā)送事件、以及校驗(yàn)算法函數(shù) MakeCheckSum(此處以 ABSData 報(bào)文為例)。
3. 編輯 CRC 自定義算法函數(shù)。
4. 在預(yù)發(fā)送事件中,調(diào)用編輯好的自定義 CRC 算法函數(shù),利用回調(diào)函數(shù)賦值給 CheckSum信號(hào),同時(shí)對(duì) RollingCount 信號(hào)編程做循環(huán)處理。
5. 將 DBC 中 CheckSum 和 RollingCount 信號(hào)添加至信號(hào)曲線(xiàn)進(jìn)行觀察,即可完成通過(guò)腳本對(duì)單一校驗(yàn)信號(hào)設(shè)置自定義的 CRC 校驗(yàn)算法。
2
對(duì)多個(gè)信號(hào)設(shè)置自定義CRC校驗(yàn)算法
1. 添加 DBC 文件進(jìn) TSMaster,打開(kāi) RBS 模塊,找到需要設(shè)置的 CheckSum 信號(hào),點(diǎn)擊鼠標(biāo)右鍵,選擇設(shè)置為 CheckSum 信號(hào)。
2. 在彈出的 CRC 算法庫(kù)中選擇合適的 CRC 算法,如需要自定義則需進(jìn)行以下步驟。
3. 在彈出算法庫(kù)窗口后,進(jìn)入 C 小程序,選擇 CRC Library,在自定義函數(shù)右鍵添加自定義算法函數(shù)(如 MyCRC)。
4. 編輯自定義算法函數(shù)代碼(注意:參數(shù)類(lèi)型需與現(xiàn)有 CRC 算法函數(shù)保持一致:指針指向數(shù)據(jù)首地址,數(shù)據(jù)長(zhǎng)度),編輯好后點(diǎn)擊編譯。
5. 回到 RBS 界面,選中要設(shè)置的 CRC 校驗(yàn)信號(hào),右鍵選擇設(shè)置為 CRC 校驗(yàn)信號(hào),在彈出的算法庫(kù)中便已包含了我們自定義的 CRC 校驗(yàn)算法,這樣即可快速對(duì)多個(gè) CRC 信號(hào)進(jìn)行CRC 校驗(yàn)算法設(shè)置,實(shí)現(xiàn) CheckSum 本地化支持。
6. 在編譯好 CRC 信號(hào)函數(shù)后,我們可以在 RBS 中對(duì) CRC 信號(hào)點(diǎn)擊鼠標(biāo)右鍵,選擇設(shè)置編輯算法參數(shù),在彈出的窗口中,可以選擇切換其他 CRC 校驗(yàn)算法,并設(shè)置首地址和長(zhǎng)度。這樣即可快速對(duì)多個(gè) CRC 信號(hào)進(jìn)行 CRC 校驗(yàn)算法設(shè)置,實(shí)現(xiàn) CheckSum 本地化支持。
-
crc
+關(guān)注
關(guān)注
0文章
199瀏覽量
29592 -
信號(hào)
+關(guān)注
關(guān)注
11文章
2809瀏覽量
77159 -
MASTER
+關(guān)注
關(guān)注
0文章
104瀏覽量
11342
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
如何快速創(chuàng)建用戶(hù)自定義Board和App工程
![如何快速創(chuàng)建用戶(hù)<b class='flag-5'>自定義</b>Board和App工程](https://file.elecfans.com/web2/M00/37/D7/pYYBAGI9l9uAOwALAAAmFmqVYdg094.png)
Altium Designer 15.0自定義元件設(shè)計(jì)
![Altium Designer 15.0<b class='flag-5'>自定義</b>元件設(shè)計(jì)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
think-cell:自定義think-cell(四)
![think-cell:<b class='flag-5'>自定義</b>think-cell(四)](https://file1.elecfans.com/web3/M00/05/B8/wKgZPGeEfMmANJETAAAVy8_tFjA502.jpg)
think-cell;自定義think-cell(一)
![think-cell;<b class='flag-5'>自定義</b>think-cell(一)](https://file1.elecfans.com/web3/M00/05/35/wKgZPGd98hCANIyfAAA-8kRrUjY536.png)
創(chuàng)建自定義的基于閃存的引導(dǎo)加載程序(BSL)
![創(chuàng)建<b class='flag-5'>自定義</b>的基于閃存的引導(dǎo)加載程序(BSL)](https://file.elecfans.com/web1/M00/D9/4E/pIYBAF_1ac2Ac0EEAABDkS1IP1s689.png)
詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗(yàn)方法
![詳解<b class='flag-5'>TSMaster</b> CAN 與 CANFD 的 <b class='flag-5'>CRC</b> E2E <b class='flag-5'>校驗(yàn)</b>方法](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
HarmonyOS開(kāi)發(fā)案例:【 自定義彈窗】
![HarmonyOS開(kāi)發(fā)案例:【 <b class='flag-5'>自定義</b>彈窗】](https://file1.elecfans.com/web2/M00/DB/A2/wKgZomYrohiANIVrAC1lCoegR9s642.jpg)
TSMaster 自定義 LIN 調(diào)度表編程指導(dǎo)
![<b class='flag-5'>TSMaster</b> <b class='flag-5'>自定義</b> LIN 調(diào)度表編程指導(dǎo)](https://file.elecfans.com/web2/M00/40/07/pYYBAGJrUk2AaMaTAAAQONQtdzo461.jpg)
HarmonyOS開(kāi)發(fā)案例:【UIAbility和自定義組件生命周期】
![HarmonyOS開(kāi)發(fā)案例:【UIAbility和<b class='flag-5'>自定義</b>組件生命周期】](https://file1.elecfans.com/web2/M00/C8/E9/wKgaomYX896ABxHEAADUhWgAb6k167.jpg)
鴻蒙ArkUI實(shí)例:【自定義組件】
淺析MCU通信、存儲(chǔ)常用的簡(jiǎn)單校驗(yàn)算法
![淺析MCU通信、存儲(chǔ)常用的簡(jiǎn)單<b class='flag-5'>校驗(yàn)算法</b>](https://file1.elecfans.com/web2/M00/C3/DD/wKgaomXpLV-ADSU6AAAu_rfjFW4822.png)
評(píng)論