在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

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

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

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

CRC為什么是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼?

GReq_mcu168 ? 來源:玩轉(zhuǎn)單片機(jī) ? 作者:玩轉(zhuǎn)單片機(jī) ? 2020-07-01 17:10 ? 次閱讀

UART有一個(gè)奇偶校驗(yàn),CAN通信有CRC校驗(yàn)。Modbus、MAVlink、USB等通信協(xié)議也有校驗(yàn)信息

在自定義數(shù)據(jù)存儲(chǔ)時(shí),有經(jīng)驗(yàn)的工程師都會(huì)添加一定校驗(yàn)信息。

你平時(shí)通信,或者數(shù)據(jù)存儲(chǔ)時(shí),你有用到校驗(yàn)信息嗎?下面就介紹幾種常見的校驗(yàn)算法

一、校驗(yàn)和

校驗(yàn)和是最基本,也是嵌入式工程師最常用的一種校驗(yàn)算法,其實(shí)現(xiàn)方法很簡單,簡單到只有幾行代碼。

實(shí)現(xiàn)的方式方法很多,不同的編程語言,不同的應(yīng)用有所不同,下面以C語言8位校驗(yàn)和為例:

uint8_t CheckSum(uint8_t *Buf, uint8_t Len){uint8_t i = 0;uint8_t sum = 0;uint8_t checksum = 0;

for(i=0; i《Len; i++) { sum += *Buf++; }

checksum = sum & 0xff;

return checksum;}

二、異或校驗(yàn)

【異或校驗(yàn)】與【校驗(yàn)和】類似,對數(shù)據(jù)進(jìn)行“異或”,最終得到一個(gè)“異或值”。

uint8_t CheckXOR(uint8_t *Buf, uint8_t Len){uint8_t i = 0;uint8_t x = 0;

for(i=0; i《Len; i++) { x = x^(*(Buf+i)); }

return x;}

校驗(yàn)和、異或校驗(yàn)的方式有很多種,比如有的還會(huì)傳入一個(gè)參數(shù)作為異或校驗(yàn)的值。

當(dāng)然,以上代碼僅供學(xué)習(xí)參考,實(shí)際應(yīng)用需結(jié)合項(xiàng)目情況修改代碼。

三、CRC校驗(yàn)

CRC:Cyclic Redundancy Check,即循環(huán)冗余校驗(yàn)。

CRC是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼,其特征是信息字段和校驗(yàn)字段的長度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對數(shù)據(jù)進(jìn)行多項(xiàng)式計(jì)算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。(來自網(wǎng)絡(luò)

CRC校驗(yàn)屬于冗余校驗(yàn)中的一種,大學(xué)學(xué)計(jì)算機(jī)相關(guān)專業(yè)的同學(xué)都應(yīng)該學(xué)過CRC校驗(yàn)(學(xué)習(xí)時(shí)可能沒幾個(gè)同學(xué)搞明白了)

CRC有多種變體,比如:CRC-1、 CRC-5-USB、 CRC-8、 CRC-16、 CRC-32、 CRC-64等。其中,在嵌入式領(lǐng)域,CRC-16用的比較多。

常見CRC參數(shù)模型:

CRC為什么是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼?

比如一種在單片機(jī)上實(shí)現(xiàn)CRC16的源碼:

uint8_t CRCTAB_H[256] = {/*表省略*/};uint8_t CRCTAB_L[256] = {/*表省略*/};void CRC16(uint8_t *pData, uint8_t Len, uint8_t *CRC_H, uint8_t *CRC_L){uint8_t i;uint8_t index;uint8_t crc_h = 0xFF;uint8_t crc_l = 0xFF;

for(i=0; i《Len; i++) { index = crc_h^*(pData + i); crc_h = crc_l^CRCTAB_H[index]; crc_l = CRCTAB_L[index]; }

*CRC_H = crc_h; *CRC_L = crc_l;}

CRC校驗(yàn)不同場景實(shí)現(xiàn)方式不同,網(wǎng)上也有很多公開的庫和源碼,比如:

LibCRC – C語言中的開源CRC庫:

網(wǎng)上還有在線計(jì)算CRC校驗(yàn)值以及代碼生成工具,感興趣的讀者可以自行了解。

四、MD5算法

MD5:Message-Digest Algorithm 5,即“信息-摘要算法。

從名字來看就知道它是從MD3、MD4發(fā)展而來的一種加密算法,其主要通過采集文件的信息摘要,以此進(jìn)行計(jì)算并加密。

通過MD5算法進(jìn)行加密,文件就可以獲得一個(gè)唯一的MD5值,這個(gè)值是獨(dú)一無二的,就像我們的指紋一樣,因此我們就可以通過文件的MD5值來確定文件是否正確,密碼進(jìn)行加密后也會(huì)生成MD5值,論壇就是通過MD5值來驗(yàn)證用戶的密碼是否正確的。

CRC為什么是數(shù)據(jù)通信領(lǐng)域中最常用的一種查錯(cuò)校驗(yàn)碼?

MD5是輸入不定長度信息,輸出固定長度128-bits的算法。經(jīng)過程序流程,生成四個(gè)32位數(shù)據(jù),最后聯(lián)合起來成為一個(gè)128-bits散列。基本方式為,求余、取余、調(diào)整長度、與鏈接變量進(jìn)行循環(huán)運(yùn)算。得出結(jié)果。

MD5的源碼在網(wǎng)上都能找到現(xiàn)成的,而且有不同編程語言(C、 C++JAVA)版本。

五、其他算法

隨著變成技術(shù)越來越發(fā)達(dá),校驗(yàn)算法也越來越多,有通用的算法,也有特殊領(lǐng)域特定的算法。

比如我之前做過密碼相關(guān)的開發(fā),使用了由密碼管理局發(fā)布的SM3密碼雜湊算法。

還有從MD4算法改進(jìn)而來的SHA-1算法(Secure Hash Algorithm 1即安全散列算法1)。
責(zé)任編輯:pj

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

    關(guān)注

    9

    文章

    1953

    瀏覽量

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

    關(guān)注

    0

    文章

    199

    瀏覽量

    29576
  • 數(shù)據(jù)通信
    +關(guān)注

    關(guān)注

    2

    文章

    433

    瀏覽量

    33880
收藏 人收藏

    評論

    相關(guān)推薦

    利用ADS1293與ARM進(jìn)行SPI數(shù)據(jù)通信的程序設(shè)計(jì)該注意什么?

    請教大家,利用ADS1293與ARM 進(jìn)行SPI 數(shù)據(jù)通信的程序設(shè)計(jì)該注意什么?比如比特率的設(shè)置該設(shè)置什么?有沒有相關(guān)的例程可以參考?3通道24位數(shù)據(jù)是按通道的次序每個(gè)通道24位這樣發(fā)送嗎?這個(gè)24位是不是只是指ECG的信號(hào)?謝謝!
    發(fā)表于 01-06 06:44

    ADS9110使用絲線SPI進(jìn)行ADS數(shù)據(jù)通信,但是在調(diào)試頁面讀取不到數(shù)據(jù),示波器上也未顯示傳輸數(shù)據(jù)波形,怎么解決?

    ADS9110使用絲線SPI進(jìn)行ADS數(shù)據(jù)通信,但是在調(diào)試頁面讀取不到數(shù)據(jù),示波器上也未顯示傳輸數(shù)據(jù)波形,供電電壓正常
    發(fā)表于 11-29 06:38

    意法半導(dǎo)體推出新款增強(qiáng)版移動(dòng)數(shù)據(jù)通信模塊

    意法半導(dǎo)體新推出款增強(qiáng)版移動(dòng)數(shù)據(jù)通信模塊,可簡化大規(guī)模物聯(lián)網(wǎng)設(shè)備的連接和管理,加快可持續(xù)智能電網(wǎng)和智能產(chǎn)業(yè)的應(yīng)用。
    的頭像 發(fā)表于 11-27 13:45 ?298次閱讀

    OSI七層模型與數(shù)據(jù)通信的關(guān)系

    在現(xiàn)代信息技術(shù)中,數(shù)據(jù)通信是信息交換的基石。隨著網(wǎng)絡(luò)技術(shù)的快速發(fā)展,不同設(shè)備和系統(tǒng)之間的數(shù)據(jù)交換變得越來越頻繁。為了確保這些交換能夠順利進(jìn)行,需要個(gè)統(tǒng)的框架來指導(dǎo)
    的頭像 發(fā)表于 11-24 10:50 ?391次閱讀

    TAS5805內(nèi)部的硬件CRC8對應(yīng)標(biāo)準(zhǔn)的哪種? CRC校驗(yàn)數(shù)據(jù)是offset和value值嗎?

    TAS5805 內(nèi)部的硬件 CRC8 對應(yīng)標(biāo)準(zhǔn)的哪種? CRC 校驗(yàn)數(shù)據(jù)是 offset 和 value 值嗎?用 PPC 加載文件計(jì)算出來的值和在線
    發(fā)表于 10-12 06:19

    華為成功舉辦數(shù)據(jù)通信創(chuàng)新峰會(huì)北非站,助力非洲網(wǎng)絡(luò)智能化發(fā)展

    華為數(shù)據(jù)通信創(chuàng)新峰會(huì)北非站在馬拉喀什成功舉辦,來自埃及、科特、埃塞俄比亞、摩洛哥等多個(gè)國家的400多位客戶及伙伴現(xiàn)場參會(huì),共同探討AI時(shí)代下數(shù)據(jù)通信領(lǐng)域的技術(shù)創(chuàng)新與發(fā)展。
    的頭像 發(fā)表于 05-30 09:23 ?758次閱讀
    華為成功舉辦<b class='flag-5'>數(shù)據(jù)通信</b>創(chuàng)新峰會(huì)北非站,助力非洲網(wǎng)絡(luò)智能化發(fā)展

    數(shù)據(jù)通信網(wǎng)關(guān)是什么?數(shù)據(jù)通信網(wǎng)關(guān)的功能作用

    數(shù)據(jù)通信網(wǎng)關(guān)是一種關(guān)鍵的網(wǎng)絡(luò)設(shè)備,它在不同的通信網(wǎng)絡(luò)或者不同協(xié)議的網(wǎng)絡(luò)之間充當(dāng)橋梁,實(shí)現(xiàn)數(shù)據(jù)包的轉(zhuǎn)發(fā)、協(xié)議轉(zhuǎn)換以及網(wǎng)絡(luò)互連。其主要功能和作用包括: 1、網(wǎng)絡(luò)互連:
    的頭像 發(fā)表于 05-29 14:43 ?1014次閱讀

    CRC(循環(huán)冗余校驗(yàn))應(yīng)用舉例

    CRC(循環(huán)冗余校驗(yàn))應(yīng)用舉例
    的頭像 發(fā)表于 05-16 16:12 ?1437次閱讀

    華為IP Club中東中亞會(huì)員計(jì)劃再升級,打造數(shù)據(jù)通信技術(shù)交流與共享平臺(tái)

    近日,華為數(shù)據(jù)通信創(chuàng)新峰會(huì)2024中東中亞站在阿塞拜疆巴庫成功舉辦。
    的頭像 發(fā)表于 05-15 09:11 ?493次閱讀
    華為IP Club中東中亞會(huì)員計(jì)劃再升級,打造<b class='flag-5'>數(shù)據(jù)通信</b>技術(shù)交流與共享平臺(tái)

    速銳得深入解析吉利幾何CAN總線數(shù)據(jù)通信網(wǎng)絡(luò)的拓?fù)鋵蛹壙蚣芗夹g(shù)

    在現(xiàn)代汽車工業(yè)中,車輛的電子控制單元(ECU)之間的通信至關(guān)重要。這種通信大多通過控制器局域網(wǎng)絡(luò)(CAN)總線實(shí)現(xiàn),它是德國BOSCH公司于20世紀(jì)80年代初開發(fā)的一種串行數(shù)據(jù)通信協(xié)議
    的頭像 發(fā)表于 05-13 16:12 ?766次閱讀
    速銳得深入解析吉利幾何CAN總線<b class='flag-5'>數(shù)據(jù)通信</b>網(wǎng)絡(luò)的拓?fù)鋵蛹壙蚣芗夹g(shù)

    如何通過工業(yè)智能網(wǎng)關(guān)實(shí)現(xiàn)Modbus設(shè)備與PLC之間數(shù)據(jù)通信

    隨著工業(yè)自動(dòng)化的快速發(fā)展,數(shù)據(jù)通信在工業(yè)生產(chǎn)過程中扮演著越來越重要的角色。工業(yè)智能網(wǎng)關(guān)作為一種專為工業(yè)環(huán)境設(shè)計(jì)的網(wǎng)絡(luò)連接設(shè)備,能夠?qū)崿F(xiàn)Modbus設(shè)備與PLC之間的數(shù)據(jù)通信,為工業(yè)自動(dòng)化提供了強(qiáng)有力
    的頭像 發(fā)表于 04-30 14:56 ?681次閱讀

    華為數(shù)據(jù)通信入選2024 Gartner?魔力象限領(lǐng)導(dǎo)者

    2024年,華為數(shù)據(jù)通信再次入選Gartner?魔力象限領(lǐng)導(dǎo)者
    的頭像 發(fā)表于 03-25 10:40 ?679次閱讀
    華為<b class='flag-5'>數(shù)據(jù)通信</b>入選2024 Gartner?魔力象限領(lǐng)導(dǎo)者

    STM32F103用ST PROGAMMER工具燒錄后,讀出的校驗(yàn)碼在不同電腦上不同是怎么回事?

    STM32F103用ST PROGAMMER工具燒錄后,讀出的校驗(yàn)碼在不同電腦上不同,有遇到過樣問題的嗎
    發(fā)表于 03-21 06:38

    淺析MCU通信、存儲(chǔ)常用的簡單校驗(yàn)算法

    UART有個(gè)奇偶校驗(yàn),CAN通信CRC校驗(yàn)。Modbus、MAVlink、USB等通信協(xié)議也
    的頭像 發(fā)表于 03-07 10:56 ?572次閱讀
    淺析MCU<b class='flag-5'>通信</b>、存儲(chǔ)<b class='flag-5'>常用</b>的簡單<b class='flag-5'>校驗(yàn)</b>算法

    計(jì)算機(jī)網(wǎng)絡(luò)中最常用通信協(xié)議

    絞線是目前最常用的傳輸介質(zhì)之,它由兩根絞在起的導(dǎo)線組成,可用于傳輸模擬或數(shù)字信號(hào)。同軸電纜也是一種常用的傳輸介質(zhì),它由內(nèi)外兩層導(dǎo)體組成,
    發(fā)表于 02-19 09:51 ?902次閱讀
    主站蜘蛛池模板: 椎名空中文字幕一区二区 | 一级做a爱片在线播放 | 国产精品视频一区国模私拍 | 天天躁夜夜躁狠狠躁2021a | 99在线国产视频 | 天天干影院 | 亚洲人成电影在在线观看网色 | 搜索黄色毛片 | 你懂的网址在线观看 | 欧美日韩啪啪 | h视频在线免费 | 国产美女主播一级成人毛片 | 男女交性视频免费 | 午夜免费视频观看 | jizz免费一区二区三区 | 欧美日韩国产另类一区二区三区 | 69日本xxⅹxxxxx19| 女性一级全黄生活片在线播放 | 天天综合视频网 | 在线视频亚洲欧美 | 亚洲综合五月天欧美 | 免费播放欧美毛片欧美aaaaa | 免费国产综合视频在线看 | aaaaaa精品视频在线观看 | 天天爱综合网 | 久久久久国产精品免费免费不卡 | 日韩欧美亚洲综合久久影院d3 | 成 人 免费 黄 色 视频 | 国产小视频在线观看www | 午夜艹逼 | 国产盗摄女厕美女嘘嘘 | 色香蕉色香蕉在线视频 | 免费观看一级一片 | 午夜精品在线免费观看 | 三级免费黄色片 | 网站色小妹 | 男女交性视频免费播放视频 | 天天看黄色 | 欧美做a欧美 | 亚洲区在线播放 | 91寡妇天天综合久久影院 |