來(lái)源:虹科汽車(chē)智能互聯(lián)虹科技術(shù)| 保障數(shù)據(jù)傳輸穩(wěn)定性:BabyLIN產(chǎn)品的CRC算法實(shí)現(xiàn)
歡迎關(guān)注虹科,為您提供最新資訊!
導(dǎo)讀
CRC校驗(yàn)(循環(huán)冗余校驗(yàn))是數(shù)據(jù)通訊中最常采用的校驗(yàn)方式。CAN協(xié)議中, 總線(xiàn)通信節(jié)點(diǎn)也常采用CRC算法對(duì)各種總線(xiàn)傳輸?shù)臄?shù)據(jù)進(jìn)行校驗(yàn)**** 。CRC8校驗(yàn)在整車(chē)通信系統(tǒng)中應(yīng)用比較廣泛,鑒于此,本篇文章將以CRC8校驗(yàn)為例,介紹在BabyLIN產(chǎn)品中如何使用CRC校驗(yàn)算法。
01CRC校驗(yàn)原理
在CAN報(bào)文中, 增加Checksum校驗(yàn),能夠用來(lái)檢測(cè)和校驗(yàn)數(shù)據(jù)傳輸或保存后可能出現(xiàn)的錯(cuò)誤**** 。它是利用除法及余數(shù)的原理來(lái)作錯(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ò)誤。
02CRC算法實(shí)現(xiàn)
在自定義CRC算法中,CRC算法在線(xiàn)計(jì)算工具中需要填寫(xiě)以下六項(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)寫(xiě),以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值。
03BabyLIN應(yīng)用與驗(yàn)證
BabyLIN產(chǎn)品的SDF程序編寫(xiě)中,在SessionConf軟件的Signalfunctios中定義了CRC算法的實(shí)現(xiàn)。具體的CRC算法實(shí)現(xiàn)所要設(shè)置的參數(shù)值[*4][*5][*6][*11]和CRC算法在線(xiàn)計(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算法在線(xiàn)計(jì)算工具中的計(jì)算結(jié)果一致。
結(jié)語(yǔ)
通過(guò)在BabyLIN產(chǎn)品中實(shí)現(xiàn)CRC算法,我們可以確保數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和可靠性。通過(guò)合理設(shè)置CRC算法的參數(shù),以及正確應(yīng)用在數(shù)據(jù)傳輸過(guò)程中,我們可以大大提高數(shù)據(jù)傳輸?shù)姆€(wěn)定性,從而為各種通信系統(tǒng)的正常運(yùn)行提供重要保障。未來(lái),我們還將在總線(xiàn)通信中繼續(xù)探索和應(yīng)用更先進(jìn)的校驗(yàn)算法和技術(shù),并在BabyLIN產(chǎn)品中進(jìn)行實(shí)際應(yīng)用。如有任何疑問(wèn),歡迎咨詢(xún)虹科工作人員。
虹科是一家在通訊領(lǐng)域,尤其是汽車(chē)電子和智能自動(dòng)化領(lǐng)域擁有超過(guò)15年經(jīng)驗(yàn)的高科技公司,致力于為客戶(hù)提供CAN/CAN FD、LIN、車(chē)載以太網(wǎng)、TSN等全方位的一站式智能互聯(lián)解決方案。
審核編輯 黃宇
-
汽車(chē)電子
+關(guān)注
關(guān)注
3031文章
8144瀏覽量
168706 -
數(shù)據(jù)傳輸
+關(guān)注
關(guān)注
9文章
1981瀏覽量
65215 -
算法
+關(guān)注
關(guān)注
23文章
4660瀏覽量
94046 -
crc
+關(guān)注
關(guān)注
0文章
201瀏覽量
29815 -
數(shù)據(jù)通訊
+關(guān)注
關(guān)注
0文章
45瀏覽量
12076
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
MPU數(shù)據(jù)傳輸協(xié)議詳解
ptp對(duì)實(shí)時(shí)數(shù)據(jù)傳輸的影響
如何提高中繼器的傳輸穩(wěn)定性
RS232接口數(shù)據(jù)傳輸穩(wěn)定性
如何保持RJ45連接器的數(shù)據(jù)傳輸功能特點(diǎn)

質(zhì)量視角下的系統(tǒng)穩(wěn)定性保障--穩(wěn)定性保障常態(tài)化自動(dòng)化實(shí)踐

HTTP海外加速技術(shù):加速跨國(guó)數(shù)據(jù)傳輸,提升用戶(hù)體驗(yàn)
網(wǎng)絡(luò)數(shù)據(jù)傳輸速率的單位是什么
N型插座在數(shù)據(jù)傳輸中的應(yīng)用有哪些

IO模塊介質(zhì)冗余技術(shù):保障數(shù)據(jù)傳輸穩(wěn)定的利器

有沒(méi)有使用SDIO接口和用戶(hù)MCU連接,實(shí)現(xiàn)150Mbps數(shù)據(jù)傳輸速率的產(chǎn)品?
8芯M16插頭數(shù)據(jù)傳輸的準(zhǔn)確性

智能測(cè)徑儀:高穩(wěn)定性成就高精測(cè)量之選!

評(píng)論