加入星計(jì)劃,您可以享受以下權(quán)益:

  • 創(chuàng)作內(nèi)容快速變現(xiàn)
  • 行業(yè)影響力擴(kuò)散
  • 作品版權(quán)保護(hù)
  • 300W+ 專業(yè)用戶
  • 1.5W+ 優(yōu)質(zhì)創(chuàng)作者
  • 5000+ 長(zhǎng)期合作伙伴
立即加入
  • 正文
    • CRC校驗(yàn)原理
    • CRC算法實(shí)現(xiàn)
    • BabyLIN應(yīng)用與驗(yàn)證
    • 結(jié)語
  • 推薦器件
  • 相關(guān)推薦
  • 電子產(chǎn)業(yè)圖譜
申請(qǐng)入駐 產(chǎn)業(yè)圖譜

虹科技術(shù) | 保障數(shù)據(jù)傳輸穩(wěn)定性:BabyLIN產(chǎn)品的CRC算法實(shí)現(xiàn)

2023/12/29
2898
閱讀需 5 分鐘
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點(diǎn)資訊討論

導(dǎo)讀:CRC校驗(yàn)(循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。CAN協(xié)議中,總線通信節(jié)點(diǎn)也常采用CRC算法對(duì)各種總線傳輸?shù)臄?shù)據(jù)進(jìn)行校驗(yàn)。CRC8校驗(yàn)在整車通信系統(tǒng)中應(yīng)用比較廣泛,鑒于此,本篇文章將以CRC8校驗(yàn)為例,介紹在BabyLIN產(chǎn)品中如何使用CRC校驗(yàn)算法。

CRC校驗(yàn)原理

在CAN報(bào)文中,增加Checksum校驗(yàn),能夠用來檢測(cè)或校驗(yàn)數(shù)據(jù)傳輸或者保存后可能出現(xiàn)的錯(cuò)誤。它是利用除法及余數(shù)的原理來作錯(cuò)誤偵測(cè)的。CRC8校驗(yàn)算法,就是對(duì)一幀報(bào)文進(jìn)行校驗(yàn)和計(jì)算的算法。

其主要原理是:在發(fā)送節(jié)點(diǎn),根據(jù)要傳送的數(shù)據(jù)序列,以一定的規(guī)則產(chǎn)生一個(gè)校驗(yàn)用的校驗(yàn)碼(CRC碼),附在原始報(bào)文中,構(gòu)成一個(gè)新的數(shù)據(jù)序列,然后發(fā)送出去。在接收節(jié)點(diǎn),根據(jù)報(bào)文信息和CRC碼之間遵循的規(guī)則進(jìn)行檢驗(yàn),校驗(yàn)采用計(jì)算機(jī)的模二除法(即生成多項(xiàng)式)做異或運(yùn)算,進(jìn)行異或運(yùn)算時(shí)除數(shù)和被除數(shù)最高位對(duì)齊,進(jìn)行按位異或運(yùn)算,若最終的數(shù)據(jù)能被除盡,則傳輸正確;否則,傳輸錯(cuò)誤。

CRC算法實(shí)現(xiàn)

在自定義CRC算法中,CRC算法在線計(jì)算工具中需要填寫以下六項(xiàng)參數(shù)。(具體的CRC算法代碼實(shí)現(xiàn)這里不做展示)

1.寬度位數(shù):CRC校驗(yàn)結(jié)果的比特?cái)?shù)。支持 8 位,16 位,32 位和 64 位。

2.多項(xiàng)式POLY:生成公式的簡(jiǎn)寫,以16進(jìn)制表示。忽略最高位的"1"。

3.初始值INIT:算法初始預(yù)置值,以16進(jìn)制表示。

4.輸入數(shù)據(jù)反轉(zhuǎn)REFIN:輸入數(shù)據(jù)的每個(gè)字節(jié)是否按位反轉(zhuǎn)。

5.輸出數(shù)據(jù)反轉(zhuǎn)REFOUT:在計(jì)算后之后,結(jié)果輸出之前,整個(gè)數(shù)據(jù)是否按位反轉(zhuǎn)。

6.結(jié)果異或值XOROUT:計(jì)算結(jié)果與此參數(shù)異或后得到最終的CRC值。

BabyLIN應(yīng)用與驗(yàn)證

在BabyLIN產(chǎn)品的SDF程序編寫中,在SessionConf軟件的Signalfunctios中定義了CRC算法的實(shí)現(xiàn)。具體的CRC算法實(shí)現(xiàn)所要設(shè)置的參數(shù)值[*4][*5][*6][*11]和CRC算法在線計(jì)算工具基本一致。如下圖CRC8算法實(shí)現(xiàn)所示,實(shí)際中選擇具體的報(bào)文幀[*0]進(jìn)行CRC校驗(yàn)即可,報(bào)文中進(jìn)行CRC校驗(yàn)的數(shù)據(jù)序列[*1][*2][*7][*8][*9][*10],以及CRC校驗(yàn)值存放位置[*3]均可根據(jù)實(shí)際情況設(shè)置。

Signalfunctios中CRC-8 Bit實(shí)現(xiàn)具體需要設(shè)置的參數(shù)項(xiàng)的含義解釋如圖:

導(dǎo)入含有CRC算法的SDF程序,在BabyLIN產(chǎn)品中建立與ECU的通信,得到CRC算法實(shí)現(xiàn)結(jié)果,可以看出,得到的校驗(yàn)值與CRC算法在線計(jì)算工具中的計(jì)算結(jié)果一致。

結(jié)語

通過在BabyLIN產(chǎn)品中實(shí)現(xiàn)CRC算法,我們可以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。通過合理設(shè)置CRC算法的參數(shù),以及正確應(yīng)用在數(shù)據(jù)傳輸過程中,我們可以大大提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,從而為各種通信系統(tǒng)的正常運(yùn)行提供重要保障。未來,我們還將在總線通信中繼續(xù)探索和應(yīng)用更先進(jìn)的校驗(yàn)算法和技術(shù),并在BabyLIN產(chǎn)品中進(jìn)行實(shí)際應(yīng)用。如有任何疑問,歡迎咨詢虹科工作人員。

了解虹科BabyLIN產(chǎn)品更多應(yīng)用案例,歡迎前往【虹科智能互聯(lián)】官方網(wǎng)站:https://www.intelnect.com/products/linbus/

聯(lián)系虹科工程師:https://tl-tx.dustess.com/OHRgtontq3

TEL:18138758797

推薦器件

更多器件
器件型號(hào) 數(shù)量 器件廠商 器件描述 數(shù)據(jù)手冊(cè) ECAD模型 風(fēng)險(xiǎn)等級(jí) 參考價(jià)格 更多信息
SN65HVD230DR 1 Texas Instruments 3.3 V CAN Transceiver with Standby Mode 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.94 查看
SN65HVD232DR 1 Texas Instruments 3.3 V CAN Transceiver 8-SOIC -40 to 85

ECAD模型

下載ECAD模型
$2.3 查看
SGTL5000XNAA3R2 1 Freescale Semiconductor Audio Codec , Ultra Low-Power, 4 mw for DAC-to-HP, 98 dB SNR and -80 dB THD+N, QFN 32, Reel

ECAD模型

下載ECAD模型
$3.53 查看

相關(guān)推薦

電子產(chǎn)業(yè)圖譜

虹科是一家資源整合及技術(shù)服務(wù)落地供應(yīng)商,與全球頂尖公司深度技術(shù)合作,專注于制造業(yè)、汽車、生物、醫(yī)藥、測(cè)試與測(cè)量、廣播電視與媒體、通信、網(wǎng)絡(luò)安全、光電等領(lǐng)域,為客戶提供:智能自動(dòng)化、工業(yè)物聯(lián)網(wǎng)、智能感知、數(shù)字化+AR、光電、網(wǎng)絡(luò)安全、測(cè)試測(cè)量、衛(wèi)星與無線通信、醫(yī)藥環(huán)境監(jiān)測(cè)與驗(yàn)證、生命科學(xué)、汽車電子、汽車維修診斷、云科技等解決方案。虹科始終致力于為行業(yè)客戶提供創(chuàng)新及前端的產(chǎn)品和技術(shù)解決方案,為科技社會(huì)發(fā)展助力加碼。