吴忠躺衫网络科技有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

TSMaster中如何自定義CRC校驗算法

上海同星智能科技有限公司 ? 2023-09-09 08:23 ? 次閱讀

在通訊過程中,用戶需要利用 CheckSum 信號對傳輸數據用自己規定的算法邏輯進行校驗,來看數據在傳輸過程中是否被更改或傳輸錯誤。本文主要介紹 TSMaster 如何設置自己的 CRC 算法信號。

CRC相關知識介紹

1

原理

CRC 校驗本質上是選取一個合適除數,對要進行校驗的數據(被除數)做模 2 除法,得到的余數就是 CRC 校驗值。

f261cac4-4ea6-11ee-a20b-92fbcf53809c.png

1.標準 CRC 生成多項式

f2a7469e-4ea6-11ee-a20b-92fbcf53809c.png

2.位寬(W)

多項式二進制位數減一。

3.工程中常用 CRC 校驗過程

△ 余數初始值:計算開始前,先給變量 CRC 賦的初始值。

△結果異或值:計算結束后,得到的變量 CRC 與這個值進行異或操作,得到最終校驗值。

△輸入數據反轉:計算開始前,將需要校驗的數據反轉,如 1011 反轉為 1101。

△輸出數據反轉:計算結束后,與結果異或值異或之前,計算值反轉,如 1011 反轉為 1101。

4. 模 2 運算

不考慮進位和借位的二進制數運算。

f2df75d2-4ea6-11ee-a20b-92fbcf53809c.pngf2fa7512-4ea6-11ee-a20b-92fbcf53809c.png

操作步驟(以 CRC8 為例)

1

利用C腳本對單一信號設置自定義CRC校驗算法

1. 打開 TSMaster,創建一個 C 腳本窗口。

f323310a-4ea6-11ee-a20b-92fbcf53809c.png


2. 創建 Rollingcount 信號變量 RC、創建需要校驗信號所對應報文的預發送事件、以及校驗算法函數 MakeCheckSum(此處以 ABSData 報文為例)。

f37359fa-4ea6-11ee-a20b-92fbcf53809c.png

3. 編輯 CRC 自定義算法函數。

f3f81be0-4ea6-11ee-a20b-92fbcf53809c.png

4. 在預發送事件中,調用編輯好的自定義 CRC 算法函數,利用回調函數賦值給 CheckSum信號,同時對 RollingCount 信號編程做循環處理。

f429cb54-4ea6-11ee-a20b-92fbcf53809c.png


5. 將 DBC 中 CheckSum 和 RollingCount 信號添加至信號曲線進行觀察,即可完成通過腳本對單一校驗信號設置自定義的 CRC 校驗算法。

f49af540-4ea6-11ee-a20b-92fbcf53809c.png

2

對多個信號設置自定義CRC校驗算法

1. 添加 DBC 文件進 TSMaster,打開 RBS 模塊,找到需要設置的 CheckSum 信號,點擊鼠標右鍵,選擇設置為 CheckSum 信號。

f4f959e6-4ea6-11ee-a20b-92fbcf53809c.png

2. 在彈出的 CRC 算法庫中選擇合適的 CRC 算法,如需要自定義則需進行以下步驟。

f53ee24a-4ea6-11ee-a20b-92fbcf53809c.png


3. 在彈出算法庫窗口后,進入 C 小程序,選擇 CRC Library,在自定義函數右鍵添加自定義算法函數(如 MyCRC)。

f5a876d8-4ea6-11ee-a20b-92fbcf53809c.png


4. 編輯自定義算法函數代碼(注意:參數類型需與現有 CRC 算法函數保持一致:指針指向數據首地址,數據長度),編輯好后點擊編譯。

f64b9584-4ea6-11ee-a20b-92fbcf53809c.png


5. 回到 RBS 界面,選中要設置的 CRC 校驗信號,右鍵選擇設置為 CRC 校驗信號,在彈出的算法庫中便已包含了我們自定義的 CRC 校驗算法,這樣即可快速對多個 CRC 信號進行CRC 校驗算法設置,實現 CheckSum 本地化支持。

f6bbb0a8-4ea6-11ee-a20b-92fbcf53809c.png


6. 在編譯好 CRC 信號函數后,我們可以在 RBS 中對 CRC 信號點擊鼠標右鍵,選擇設置編輯算法參數,在彈出的窗口中,可以選擇切換其他 CRC 校驗算法,并設置首地址和長度。這樣即可快速對多個 CRC 信號進行 CRC 校驗算法設置,實現 CheckSum 本地化支持。

f73af0d4-4ea6-11ee-a20b-92fbcf53809c.pngf7aa9434-4ea6-11ee-a20b-92fbcf53809c.png

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • crc
    crc
    +關注

    關注

    0

    文章

    199

    瀏覽量

    29576
  • 信號
    +關注

    關注

    11

    文章

    2807

    瀏覽量

    77113
  • MASTER
    +關注

    關注

    0

    文章

    104

    瀏覽量

    11331
收藏 人收藏

    評論

    相關推薦

    Altium Designer 15.0自定義元件設計

    電子發燒友網站提供《Altium Designer 15.0自定義元件設計.pdf》資料免費下載
    發表于 01-21 15:04 ?0次下載
    Altium Designer 15.0<b class='flag-5'>自定義</b>元件設計

    think-cell:自定義think-cell(四)

    C.5 設置默認議程幻燈片布局 think-cell 議程可以在演示文稿中使用特定的自定義布局來定義議程、位置和議程幻燈片上的其他形狀,例如標題或圖片。通過將此自定義布局添加到模板,您可以為整個組織
    的頭像 發表于 01-13 10:37 ?98次閱讀
    think-cell:<b class='flag-5'>自定義</b>think-cell(四)

    think-cell;自定義think-cell(一)

    本章介紹如何自定義 think-cell,即如何更改默認顏色和其他默認屬性;這是通過 think-cell 的樣式文件完成的,這些文件將在前四個部分中進行討論。 第五部分 C.5 設置默認議程幻燈片
    的頭像 發表于 01-08 11:31 ?150次閱讀
    think-cell;<b class='flag-5'>自定義</b>think-cell(一)

    創建自定義的基于閃存的引導加載程序(BSL)

    電子發燒友網站提供《創建自定義的基于閃存的引導加載程序(BSL).pdf》資料免費下載
    發表于 09-19 10:50 ?0次下載
    創建<b class='flag-5'>自定義</b>的基于閃存的引導加載程序(BSL)

    如何創建TestStand自定義步驟

    在之前的課程簡單地介紹過TestStand自帶的一些步驟類型,如測試、消息彈窗、賦值、標簽等等,這些簡單的步驟從TestStand的插入選版中就可以添加到序列。那么在使用如果碰到需要實現更加靈活、復雜的功能,使用自帶的一些
    的頭像 發表于 09-11 14:46 ?1271次閱讀
    如何創建TestStand<b class='flag-5'>自定義</b>步驟

    NVIDIA NeMo加速并簡化自定義模型開發

    如果企業希望充分發揮出 AI 的力量,就需要根據其行業需求量身定制的自定義模型。
    的頭像 發表于 07-26 11:17 ?824次閱讀
    NVIDIA NeMo加速并簡化<b class='flag-5'>自定義</b>模型開發

    詳解TSMaster CAN 與 CANFD 的 CRC E2E 校驗方法

    面對切換工具鏈的用戶來說,在TSMaster上完成總線通訊CRC/E2E校驗處理不是特別熟悉,該文章可以協助客戶快速使用TSMaster
    的頭像 發表于 05-25 08:21 ?2665次閱讀
    詳解<b class='flag-5'>TSMaster</b> CAN 與 CANFD 的 <b class='flag-5'>CRC</b> E2E <b class='flag-5'>校驗</b>方法

    stm32cubemx如何自定義lwip平臺?

    有人知道stm32cubemx,如何自定義lwip平臺。(默認只
    發表于 05-22 07:50

    HarmonyOS開發案例:【 自定義彈窗】

    基于ArkTS的聲明式開發范式實現了三種不同的彈窗,第一種直接使用公共組件,后兩種使用CustomDialogController實現自定義彈窗
    的頭像 發表于 05-16 18:18 ?1460次閱讀
    HarmonyOS開發案例:【 <b class='flag-5'>自定義</b>彈窗】

    CRC(循環冗余校驗)應用舉例

    CRC(循環冗余校驗)應用舉例
    的頭像 發表于 05-16 16:12 ?1437次閱讀

    TSMaster 自定義 LIN 調度表編程指導

    TSMaster(v2023.10.7.990)之后的版本中新增了實現自定義LIN調度表相關API。今天重點和大家分享一下關于編程實現TSMaster自定義LIN調度表
    的頭像 發表于 05-11 08:21 ?756次閱讀
    <b class='flag-5'>TSMaster</b> <b class='flag-5'>自定義</b> LIN 調度表編程指導

    HarmonyOS開發案例:【UIAbility和自定義組件生命周期】

    本文檔主要描述了應用運行過程UIAbility和自定義組件的生命周期。對于UIAbility,描述了Create、Foreground、Background、Destroy四種生命周期。對于頁面
    的頭像 發表于 05-10 15:31 ?1342次閱讀
    HarmonyOS開發案例:【UIAbility和<b class='flag-5'>自定義</b>組件生命周期】

    HarmonyOS開發實例:【自定義Emitter】

    使用[Emitter]實現事件的訂閱和發布,使用[自定義彈窗]設置廣告信息。
    的頭像 發表于 04-14 11:37 ?1060次閱讀
    HarmonyOS開發實例:【<b class='flag-5'>自定義</b>Emitter】

    鴻蒙ArkUI實例:【自定義組件】

    組件是 OpenHarmony 頁面最小顯示單元,一個頁面可由多個組件組合而成,也可只由一個組件組合而成,這些組件可以是ArkUI開發框架自帶系統組件,比如?`Text`?、?`Button`?等,也可以是自定義組件,本節筆者簡單介紹一下自定義組件的語法規范。
    的頭像 發表于 04-08 10:17 ?709次閱讀

    淺析MCU通信、存儲常用的簡單校驗算法

    UART有一個奇偶校驗,CAN通信有CRC校驗。Modbus、MAVlink、USB等通信協議也有校驗信息。
    的頭像 發表于 03-07 10:56 ?573次閱讀
    淺析MCU通信、存儲常用的簡單<b class='flag-5'>校驗算法</b>
    永利百家乐官网赌场娱乐网规则 | 威尼斯人娱乐城金杯娱乐城| 江山百家乐官网的玩法技巧和规则 | 江都市| 赌百家乐的玩法技巧和规则 | 百家乐官网发牌| 阿合奇县| 百家乐电子发牌盒| pc百家乐官网模拟游戏| 战神国际娱乐城| 先锋百家乐的玩法技巧和规则| 真人百家乐官网赌城| 金宝博滚球| 百家乐全部规则| 百家乐官网怎么押钱| 娱乐城注册送金| 百家乐那个娱乐城信誉好| 巴比伦百家乐官网娱乐城| 澳门百家乐官网单注下限| 顶级赌场手机版官方下载| 百家乐小型抽水泵| 大杀器百家乐官网学院| 百家乐官网打连技巧| 大发888大发8668| 百家乐改单软件| 百家乐官网赌场策略论坛| 澳门百家乐注册| 大发888游戏平台 新葡京| 百家乐霸王闲| 大佬百家乐官网的玩法技巧和规则| 伟易博百家乐官网现金网| 百家乐真人游戏网| 网上百家乐官网做假| 太阳城百家乐官网优惠| 德州扑克下载| 千亿百家乐的玩法技巧和规则| 百家乐可以算牌么| 真人百家乐官网博弈| 百家乐官网软件骗人吗| 工布江达县| 香港六合彩特码|