0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

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

上海同星智能科技有限公司 ? 2024-05-25 08:21 ? 次閱讀

面對切換工具鏈的用戶來說,在 TSMaster 上完成總線通訊中的 CRC/E2E 校驗處理不是特別熟悉,該文章可以協(xié)助客戶快速使用 TSMaster 完成 CAN/CAN FD 總線通訊的 CRC/E2E 校驗。

本文關(guān)鍵字:TSMaster,CAN/CANFD,CRC 校驗,E2E 校驗

目錄

Catalog

1.CRC/E2E 在報文傳輸過程中的應(yīng)用

2.基于 TSMaster 剩余總線仿真的 CRC 校驗

3.TSMaster 本地化支持的 CRC 校驗

1.

CRC/E2E 在報文傳輸過程中的應(yīng)用

典型應(yīng)用:兩個 CAN 節(jié)點(diǎn)(ECU)之間進(jìn)行 CAN/CANFD 報文傳輸,雙方規(guī)定對報文(0xC9:ABSdata)Byte0-Byte6 需要進(jìn)行 CRC 校驗,Byte6 的高四位為 RollingCounter,校驗結(jié)果放至 Byte7 中。

因此,在 DBC 發(fā)送這幀報文的節(jié)點(diǎn)來說,在往總線發(fā)出這幀報文之前需要對每幀報文的 RollingCounter 值進(jìn)行不斷自增、循環(huán),然后進(jìn)行 CRC 校驗把校驗值放進(jìn) Byte7 中,最后再把幀報文發(fā)到總線上;而對于 DBC 接收這幀報文的節(jié)點(diǎn)來說,需要對這幀報文也進(jìn)行CRC 校驗,把校驗的結(jié)果與 Byte7 的數(shù)據(jù)進(jìn)行對比,對比結(jié)果一致則這幀報文的數(shù)據(jù)有效,否則丟棄這些數(shù)據(jù)。

E2E(End to End),是 Autosar 官方定義的標(biāo)準(zhǔn),它包含了 CRC 算法、要求了 Counter 的值如何進(jìn)行遞增、并在 Counter 出錯時會記錄對應(yīng)的錯誤狀態(tài)等等。從發(fā)送節(jié)點(diǎn)來說,可以簡單的理解為發(fā)送前填充 Checksum 和 Counter 的值,基本操作與 CRC 相同。

2.

基于 TSMaster 剩余總線仿真的 CRC 校驗

基于剩余總線仿真的 CRC 校驗,該方法在 TSMaster 仿真-CAN 總線仿真中即可完成,無需代碼,但是 CRC 校驗算法是通用的 CRC 算法,例如 CRC8、CRC16、CRC32 等等。使用之前需要先在工程中加載數(shù)據(jù)庫文件并綁定對應(yīng)的應(yīng)用程序通道。

b5bdd61a-1a2c-11ef-bebc-92fbcf53809c.jpg

其次,打開 CAN 總線仿真,激活報文的所有信號及其所在節(jié)點(diǎn)和網(wǎng)絡(luò)(此處以 0xC9ABSdata 為例):

b5c1a84e-1a2c-11ef-bebc-92fbcf53809c.jpg


從這里可以看到 ABS_RC 和 ABS_CheckSum 的信號類型還是普通信號,那么如何通過0 代碼實現(xiàn) RC 的自增循環(huán)以及 CheckSum 校驗值的計算呢?具體的實現(xiàn)在總線仿真這個模塊中已經(jīng)實現(xiàn),用戶只需在該界面中進(jìn)行相關(guān)的設(shè)置即可實現(xiàn),以下是詳細(xì)步驟。


1)右擊 ABS_RC,選擇設(shè)置為 Rolling Counter 信號(RC),完成后即可看到該信號類型已經(jīng)變?yōu)?RC。

b5c59ee0-1a2c-11ef-bebc-92fbcf53809c.jpg

RC 值自增的范圍在該模塊中也是可以直接設(shè)置,在 CAN 總線仿真樹狀圖窗口內(nèi)任意位置右鍵打開編輯 RC 值范圍,然后勾選該信號,對 RC 的最大最小值進(jìn)行手動輸入,確認(rèn)即可保存。

b5dcd5d8-1a2c-11ef-bebc-92fbcf53809c.jpgb5e06c48-1a2c-11ef-bebc-92fbcf53809c.jpg

2)右鍵 ABS_CheckSum,選擇設(shè)置為 Checksum 校驗信號(CRC),隨后會彈出默認(rèn)算法庫,這里以選擇 crc8 例。完成后該信號的類型已經(jīng)變?yōu)?CRC(crc.crc8[0:7]),表示該信號為CRC 校驗信號,校驗算法為 crc 庫中的 crc8,保護(hù)字節(jié)為 0-7:

b5e3e3f0-1a2c-11ef-bebc-92fbcf53809c.jpgb5f134a6-1a2c-11ef-bebc-92fbcf53809c.jpg

如果用戶需要修改校驗的字節(jié)范圍,同 RC 值范圍,在窗口內(nèi)右鍵打開編輯 CRC 算法參數(shù);在該窗口內(nèi)可以對保護(hù)字節(jié)起始以及保護(hù)字節(jié)數(shù)進(jìn)行編輯。

b600e34c-1a2c-11ef-bebc-92fbcf53809c.jpg

同時該窗口可以對所有的 CRC 信號進(jìn)行統(tǒng)一的編輯,雙擊信號所在的 CRC 算法欄即可打開算法選擇窗口,如果用戶的算法不是標(biāo)準(zhǔn)的 CRC 算法,我們也可以在 crc 這個庫中再去添加自定義函數(shù),這樣也能給這個剩余總線仿真這個模塊識別使用,需要注意的前提條件是自定義算法的接口必須和已存在的相同,也就是函數(shù)的參數(shù)必須是(pu8 data, s32 datalen),這樣才能夠正常使用。

b60b6dee-1a2c-11ef-bebc-92fbcf53809c.jpg


另外一種使用場景,需要在校驗的數(shù)據(jù)內(nèi)容頭部/尾部增加固定的字節(jié)數(shù)據(jù),這一點(diǎn)不難發(fā)現(xiàn)在 CRC 算法參數(shù)編輯窗口也有做了接口處理,用戶可以直接在該框內(nèi)添加數(shù)據(jù),多個數(shù)據(jù)可以用英文符號(,)隔開。

b6200b50-1a2c-11ef-bebc-92fbcf53809c.jpg

以上就是基于總線仿真 CRC 校驗的配置操作過程,完成后運(yùn)行總線仿真即可在報文信息窗口看到發(fā)出的報文。

b62c75d4-1a2c-11ef-bebc-92fbcf53809c.jpg

3.

TSMaster 本地化支持的 CRC 校驗

該方法適用于 CRC 校驗算法與 crc 庫中算法函數(shù)接口不同,還需要利用報文幀的其他信息進(jìn)行校驗的情況,例如將報文 ID 一并進(jìn)行校驗計算。這種情況就可以利用 TSMaster 中的小程序來完成,此工程以 C 小程序為例,Python 小程序同理。


演示前將數(shù)據(jù)庫進(jìn)行加載,在開頭提到過,CRC 校驗往簡單來說就說往報文數(shù)據(jù)填充RC 和 CheckSum 校驗的值,此時用戶就可以在小程序中通過預(yù)發(fā)送事件來修改 RC 和 CheckSum 的值。

b63145fa-1a2c-11ef-bebc-92fbcf53809c.jpg

完成編輯內(nèi)容后需要運(yùn)行小程序,然后在報文發(fā)送窗口進(jìn)行報文發(fā)送或者啟動 CAN 剩余總線仿真(此時需要將 RC 和 CheckSum 設(shè)置為普通信號,使得這兩個信號只受小程序的控制)。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • CAN
    CAN
    +關(guān)注

    關(guān)注

    57

    文章

    2686

    瀏覽量

    462906
  • crc
    crc
    +關(guān)注

    關(guān)注

    0

    文章

    198

    瀏覽量

    29397
  • CANFD
    +關(guān)注

    關(guān)注

    0

    文章

    54

    瀏覽量

    4897
收藏 人收藏

    評論

    相關(guān)推薦

    細(xì)說下與傳統(tǒng)CAN相比CANFD CRC段帶來的變化

    很多人了解過CANFD,可能知道CANFD CRC段與傳統(tǒng)CAN CRC差距是CRC多項式不同,
    的頭像 發(fā)表于 07-15 11:56 ?2180次閱讀

    以前的E2E社區(qū)的資料

    以前的E2E社區(qū)合到這邊來了,那以前的視頻資料哪里能找到阿,我想找Tommy song的C64+的視頻教程~~麻煩,謝謝!
    發(fā)表于 06-21 00:43

    不能糾錯的校驗方法

    昨天做了一道試題下面不能糾錯的校驗方法是:A.奇偶校驗B.校驗和C.CRC校驗D.(忘了這選項是什么了)請問答案是哪個???
    發(fā)表于 09-18 19:57

    CRC校驗方法通過CAN總線通信來實現(xiàn)

    檢測、格式錯誤檢測、填充錯誤檢測、應(yīng)答錯誤檢測和CRC錯誤檢測。作為一種重要的錯誤檢測手段,CRC錯誤檢測是接收節(jié)點(diǎn)判斷CAN幀信息的完整性并向總線確認(rèn)應(yīng)答的依據(jù)。常見的校驗方法1、最
    發(fā)表于 09-25 15:41

    CRC校驗具體實現(xiàn)方式

    CRC校驗具體實現(xiàn)方式CRC校驗是一種常見的校驗方式,最近在做數(shù)據(jù)通訊時遇到一款芯片提到了CRC
    發(fā)表于 12-03 08:30

    crc校驗方法及示例

     CRC即循環(huán)冗余校驗碼(Cyclic Redundancy Check[1] ):是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環(huán)冗余檢查(
    發(fā)表于 12-04 09:35 ?1.5w次閱讀
    <b class='flag-5'>crc</b><b class='flag-5'>校驗方法</b>及示例

    物聯(lián)網(wǎng)轉(zhuǎn)向E2E解決方案

    據(jù)外媒報道,物聯(lián)網(wǎng)連接解決方案已經(jīng)轉(zhuǎn)向E2E(端到端)了。 據(jù)分析師Mullooly預(yù)測,物聯(lián)網(wǎng)據(jù)說在未來數(shù)年內(nèi)從附加服務(wù)中將比接駁費(fèi)獲得更多的收益。預(yù)計這將額外超過非連接的M2M(機(jī)器對機(jī)器)一半
    發(fā)表于 12-05 18:26 ?486次閱讀

    用于單片機(jī)的CRC數(shù)據(jù)校驗方法

    用于單片機(jī)的CRC驗方法一、應(yīng)用場景二、代碼實現(xiàn)1.CRC表格2.CRC函數(shù)3.使用demo閑扯一、應(yīng)用場景前兩天做了一個固件的遠(yuǎn)程升級軟件,是基于stm32的固件,傳輸?shù)臄?shù)據(jù)量少,
    發(fā)表于 12-17 18:35 ?3次下載
    用于單片機(jī)的<b class='flag-5'>CRC</b>數(shù)據(jù)<b class='flag-5'>校驗方法</b>

    細(xì)說CANFD CRC段帶來的變化

    很多人了解過CANFD,可能知道CANFD CRC段與傳統(tǒng)CAN CRC差距是CRC多項式不同,
    的頭像 發(fā)表于 07-15 11:55 ?1533次閱讀

    【Z站推薦】CANFD CRC段與傳統(tǒng)CAN差距有多大?

    :不同數(shù)據(jù)段長度選擇不同的CRC多項式傳統(tǒng)CAN采用的是15位的CRC校驗,由于CANFD支持更大的數(shù)據(jù)量,為提供通信可靠性,針對不同長度的
    的頭像 發(fā)表于 07-21 16:26 ?734次閱讀
    【Z站推薦】<b class='flag-5'>CANFD</b> <b class='flag-5'>CRC</b>段與傳統(tǒng)<b class='flag-5'>CAN</b>差距有多大?

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

    在通訊過程中,用戶需要利用CheckSum信號對傳輸數(shù)據(jù)用自己規(guī)定的算法邏輯進(jìn)行校驗,來看數(shù)據(jù)在傳輸過程中是否被更改或傳輸錯誤。本文主要介紹TSMaster如何設(shè)置自己的CRC算法信號。CRC
    的頭像 發(fā)表于 09-09 08:23 ?1353次閱讀
    <b class='flag-5'>TSMaster</b>中如何自定義<b class='flag-5'>CRC</b><b class='flag-5'>校驗</b>算法

    Autosar E2E介紹及其實現(xiàn)

    E2E(End-to-End)保護(hù)存在于安全性較高的信號,在信號傳遞的過程中,受軟硬件的影響,發(fā)送端和接收端的數(shù)據(jù)可能不一致,此時E2E的作用就體現(xiàn)出來,系統(tǒng)可以快速檢測出E2E異常,以便做出相應(yīng)的異常處理。
    的頭像 發(fā)表于 09-22 10:28 ?2716次閱讀
    Autosar <b class='flag-5'>E2E</b>介紹及其實現(xiàn)

    奇偶校驗crc校驗的區(qū)別 CRC校驗和奇偶校驗之間有什么關(guān)系?

    奇偶校驗crc校驗的區(qū)別 CRC校驗和奇偶校驗之間有什么關(guān)系? 奇偶
    的頭像 發(fā)表于 10-17 16:28 ?3146次閱讀

    CANCANFD的區(qū)別 CANCANFD如何轉(zhuǎn)換

    : 1. 傳輸速率:CAN的標(biāo)準(zhǔn)速率為1Mbps,而CANFD的數(shù)據(jù)傳輸速率可以達(dá)到2Mbps以上,這使得CANFD在傳輸大量數(shù)據(jù)時具有更高的效率和性能。
    的頭像 發(fā)表于 11-22 16:37 ?5186次閱讀

    簡述循環(huán)冗余碼crc校驗方法的工作原理

    循環(huán)冗余碼(CRC校驗是一種常用的錯誤檢測和糾正方法,廣泛應(yīng)用于通信和存儲設(shè)備中,用于確定數(shù)據(jù)在傳輸或存儲過程中是否出現(xiàn)錯誤。 CRC校驗方法
    的頭像 發(fā)表于 12-20 11:27 ?991次閱讀