色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

CRC和Checksum信號的區別 Checksum信號在CAPL中實現的方法

汽車電子設計 ? 來源:北匯信息 ? 作者:北城舊巷 ? 2022-10-14 13:17 ? 次閱讀

CRC與Checksum區別

相信大家在CAN Msg或者ETH PDU中經常會看到Checksum這種信號。提到Checksum,就必須要說明一下CRC校驗,很多工程師會概念混淆,認為兩者是同一個東西,實則它們有很大的區別。

01兩者存放位置不同

CRC校驗:循環冗余檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。

通過CRC概念可以得知,CRC存放在CRC場,而Checksum存放在數據場之中,一般在數據場的第一個字節或者最后一個字節。

38ebe63a-4b7b-11ed-a3b6-dac502259ad0.png

圖1 標準數據幀格式

02兩者應用場景不同

在CAN報文幀中,CRC校驗是發送器根據發送的bit進行多項式計算校驗,結果放在15bit長度的CRC位。接收器也是用相同的多項式計算總線上的數據,與接收到的校驗值進行比較,相同則表示幀正確接收,并在ACK時隙中發送顯性狀態,覆蓋發送器的隱性位;如果不同接收節點在ACK界定符之后發送錯誤幀。

39194440-4b7b-11ed-a3b6-dac502259ad0.png

圖2 CRC校驗原理

CRC校驗是為了保證數據從一個CAN收發器發送到另外一個收發器的信號完整性,而數據場中Checksum校驗算法是為了校驗數據被正確的打包與解包,并且Checksum算法是可以自行制定的,計算規則的靈活度高。

Checksum的應用場景

對于Checksum而言,它的應用場景有以下三點:

01確保數據正確打包

有些ECU內部的變量在傳遞到CAN收發器之前就有可能發生錯誤,這種類型的錯誤CAN收發器是無法檢測到的。報文中的信號和Checksum校驗是在應用層完成的,將報文中的各個字節進行校驗,報文和Checksum一起發送,并且在接收節點進行解析,從而確保數據鏈路完整和數據正確打包。

02實現數據加密

CAN網絡是開放性的,CAN節點可以隨時加入到總線當中,為了保證通信的安全性,ECU傳輸的關鍵控制信號需要進行加密,報文的發送方和接收方使用相同的Checksum算法作為數據加密的密鑰。接收方對比秘鑰,如果不同,此條報文的數據不被使用,從而避免被其他節點的數據影響。Checksum算法不在DBC等數據庫文件中說明,可以單獨保密,從而確保了數據的加密。

03提高數據的可信度

一幀報文在多個字節中可能出現位錯誤,一般情況下CRC8校驗的錯誤率為1/256,crc16校驗的錯誤率為1/65536,crc32校驗的錯誤率為1/(65536*65536)。通過Checksum校驗可以提高數據的可信度。

由于Checksum的作用,其也常應用在車載以太網當中。

在CAPL中Checksum信號實現

通常情況下,Checksum和LiveCounter信號是成對出現的。在CANoe中使用仿真節點與真實控制器交互,需要將LiveCounter和Checksum信號仿真,這樣才能成功通信。LiveCounter長度為4bit,它是用于報文發送計數的生命信號,每發送一幀報文后就對該LiveCounter位加1,會在0~15之間循環增加。在報文其他信號沒有改變時,LiveCounter實時更新使得Checksum信號跟著更新,提高校驗的準確性。那么LiveCounter信號該如何仿真呢?下面以CAN總線DBC為例,介紹在CAPL中實現LiveCounter和Checksum校驗仿真。

CAPL是CANoe和CANalyzer中可用的類C的編程語言。CAPL中程序塊的執行由事件控制,在專用的編譯器中開發和編譯,這樣可以訪問數據庫中的所有對象以及系統變量,被汽車電子工程師們廣泛使用。

下圖為LiveCounter計算的代碼,為了保證數據的準確性,進行一次Checksum計算,這樣就可以實現LiveCounter信號的仿真。

393e2576-4b7b-11ed-a3b6-dac502259ad0.png

圖3 LiveCounter計算代碼

下圖為示例報文中各個信號位置排布關系,在此報文中,Checksum校驗方式為前七個字節異或運算,將運算結果存放到最后一個字節。排布圖中共有8個信號,它們的格式為Motorola格式,也就是俗稱的大端模式。

3960e4a8-4b7b-11ed-a3b6-dac502259ad0.png

圖4 報文中信號排布

CAPL只能訪問到報文中的信號,無法訪問到報文中的每個字節,要進行Checksum計算,需要根據信號排布把前七個字節的真實值重新組合存放在一個byte類型的數組當中,然后對這個數組異或運算獲取的結果為該報文中Checksum信號值。

對于不同長度的信號,需要聲明不同類型的數組來存放不同的信號。byte類型長度為1字節,聲明兩個byte *[8]類型的數組(*為省略的數組名稱)分別存放長度小于一字節的信號和重組后每個字節的真實值;int類型長度為2字節,聲明int *[8]類型的數組存放長度為1-2字節的信號;long類型長度為4字節,聲明long *[8]類型的數組存放長度為2-4字節的信號。下圖為Checksum中信號長度小于1字節的字節重組示例代碼。

399d90c4-4b7b-11ed-a3b6-dac502259ad0.png

圖5 Checksum字節重組示例代碼

另外,參與Checksum計算的是信號的真實值而不是物理值,如果信號中有偏移量和比例因子,在賦值時需要將信號加上偏移量,并除以比例因子以獲得真實值。

39bf3184-4b7b-11ed-a3b6-dac502259ad0.png

圖6 信號描述

為了保證和真實控制器通信正常,Checksum數據必須準確,Checksum計算步驟一般寫成無返回值函數(void),在LiveCounter信號改變或者其他信號改變時調用計算。

正確計算的LiveCounter和Checksum信號曲線如下圖所示。

39d0269c-4b7b-11ed-a3b6-dac502259ad0.png

圖7 LiveCounter和Checksum信號曲線

總結

本文重點描述了CRC和Checksum信號的區別以及Checksum信號在CAPL中實現的方法。CAPL編程作為CANoe的靈魂,使CANoe滿足仿真、分析、測試和診斷的各種復雜的要求,同時使CANoe的功能得以不斷擴展。

北匯信息作為Vector中國的合作伙伴,致力于為中國汽車客戶提供優質的工具支持、解決方案以及測試服務。

注:圖片來自于Vector。

審核編輯:湯梓紅

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

    關注

    57

    文章

    2756

    瀏覽量

    463879
  • crc
    crc
    +關注

    關注

    0

    文章

    199

    瀏覽量

    29481
  • 信號
    +關注

    關注

    11

    文章

    2794

    瀏覽量

    76852

原文標題:CAPL編程的進階應用 | Checksum算法的實現

文章出處:【微信號:QCDZSJ,微信公眾號:汽車電子設計】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    CAN通信協議里一種checksum校驗和的方法

    看到了一種checksum校驗和的方法,分享給大家。
    的頭像 發表于 10-31 12:58 ?4656次閱讀
    CAN通信協議里一種<b class='flag-5'>checksum</b>校驗和的<b class='flag-5'>方法</b>

    IAR Embedded Workbench中計算多個地址區間的Checksum

    在前面的文章“使用IAR Embedded Workbench和MCU的CRC模塊來檢查代碼的完整性”中介紹了如何在IAR Embedded Workbench配置生成對應代碼區域的CRC校驗碼
    的頭像 發表于 01-05 12:33 ?1575次閱讀
    <b class='flag-5'>在</b>IAR Embedded Workbench中計算多個地址區間的<b class='flag-5'>Checksum</b>

    求助,關于PSOC4模擬EEPROM的checksum問題求解

    的部分,這樣的話當芯片燒錄了Hex2后運行,通過PSoC Programmer去讀取芯片的checksum會是變化的嗎?謝謝。 [1]main.c的內容如下: const uint8_t
    發表于 02-02 08:48

    CAPL編程進階應用——Checksum算法的實現#CANoe #CAPL #Checksum

    編程
    北匯信息POLELINK
    發布于 :2023年04月21日 23:00:01

    如何在IAR配置CRC參數

    0xB23CD458· 對輸出數據的位反轉。o 例如輸出數據為0x11223344,反轉后為0x22CC4488IAR的CRC配置1.修改Link文件指定checksumFLASH
    發表于 09-06 16:01

    請問如何在IAR配置CRC參數?

    前言 STM32全系列產品都具有CRC外設,對CRC的計算提供硬件支持,為應用程序節省了代碼空間。CRC校驗值可以用于數據傳輸的數據正確性的驗證,也可用于數據存儲時的完整性檢查。
    發表于 07-02 02:32

    如何解決checksum bad的問題?

    怎么解決checksum bad的問題
    發表于 10-23 04:53

    TMS320LF2403A下載時提示的Checksum計算方法

    使用CCS3.3和TDS510仿真器下載時,軟件上提示的Checksum,請問此Checksum是如何計算的,有沒有相關的文檔介紹呢?
    發表于 06-16 15:36

    labview怎樣計算checksum

    labview怎么計算checksum呢?
    發表于 11-24 15:10

    怎么讀取瑞薩mcu的checksum

    怎么讀取瑞薩mcu的checksum
    發表于 02-10 07:03

    M451芯片FMC讀寫flash,如何使用checksum功能?

    M451芯片,FMC讀寫flash,如何使用checksum功能? 另外,5.0V供電時,FMC正常讀寫的最低電壓是多少?會不會出現因為電壓過低而不能寫成功的現象?
    發表于 06-25 10:32

    新功能發布 | TSMaster如何實現checksum和rolling counter的本地化支持

    前言TSMaster近日更新了五大模塊的新功能,主要包含網絡仿真中的checksum和rollingcounter的本地化支持、J1939多幀報文收發、MATLAB自動化控制模塊等等。小編接下來將在
    的頭像 發表于 08-29 10:12 ?1650次閱讀
    新功能發布 | TSMaster如何<b class='flag-5'>實現</b><b class='flag-5'>checksum</b>和rolling counter的本地化支持

    CAPL編程的進階應用 | Checksum算法的實現

    作者:北城舊巷小編:吃不飽CRCChecksum區別相信大家CANMsg或者ETHPDU中經常會看到Checksum這種
    的頭像 發表于 10-11 09:29 ?1242次閱讀
    <b class='flag-5'>CAPL</b>編程的進階應用 | <b class='flag-5'>Checksum</b>算法的<b class='flag-5'>實現</b>

    TSMaster如何自定義CRC校驗算法

    通訊過程,用戶需要利用CheckSum信號對傳輸數據用自己規定的算法邏輯進行校驗,來看數據傳輸過程
    的頭像 發表于 09-09 08:23 ?1511次閱讀
    TSMaster<b class='flag-5'>中</b>如何自定義<b class='flag-5'>CRC</b>校驗算法

    TI電量計Checksum功能的介紹

    電子發燒友網站提供《TI電量計Checksum功能的介紹.pdf》資料免費下載
    發表于 09-05 11:19 ?0次下載
    TI電量計<b class='flag-5'>Checksum</b>功能的介紹
    主站蜘蛛池模板: YY600800新视觉理论私人| 日本电影护士| 最近更新2019中文字幕国语| 欧美精品久久久久性色AV苍井 | 成熟YIN荡美妞A片视频麻豆| 亚洲日韩视频免费观看| 日本伦子欲| 两个人看的www免费高清直播 | 免费视频网站嗯啊轻点| 国语大学生自产拍在线观看| yy8090韩国理伦片在线| 优菈的乳液狂飙天堂W98| 台湾佬综合娱乐网| 欧美另类z0z000高清| 久久久精品久久| 国产精品一区二区三区四区五区| thermo脱色摇床安卓下载| 在线不卡日本v二区| 亚州三级久久电影| 三级电影免费看| 欧美一道本一区二区三区| 两性午夜色视频免费网站| 国色天香社区视频免费高清3| 粉嫩极品国产在线观看| a级毛片高清免费视频| 中文字幕A片视频一区二区| 亚洲欧美精品无码一区二在线| 色戒未删减版在线观看完整| 女性酥酥影院| 男男gaygay拳头| 老司机福利在视频在ae8| 久久www成人看片| 国产在线精品亚洲二品区| 国产成人精品123区免费视频| 哺乳期妇女挤奶水36d| a级全黄试频试看30分钟| 777琪琪午夜理论电影网| 中文字幕亚洲无线码高清不卡| 一个人免费观看HD完整版| 亚洲免费在线视频观看| 亚洲国产在线精品国偷产拍|