日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(pí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)方法很簡(jiǎn)單,簡(jiǎ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)和】類似,對(duì)數(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)字段的長(zhǎng)度可以任意選定。循環(huán)冗余檢查(CRC)是一種數(shù)據(jù)傳輸檢錯(cuò)功能,對(duì)數(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)不同場(chǎng)景實(shí)現(xiàn)方式不同,網(wǎng)上也有很多公開的庫(kù)和源碼,比如:

LibCRC – C語言中的開源CRC庫(kù):

網(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是輸入不定長(zhǎng)度信息,輸出固定長(zhǎng)度128-bits的算法。經(jīng)過程序流程,生成四個(gè)32位數(shù)據(jù),最后聯(lián)合起來成為一個(gè)128-bits散列。基本方式為,求余、取余、調(diào)整長(zhǎng)度、與鏈接變量進(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)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 數(shù)據(jù)傳輸
    +關(guān)注

    關(guān)注

    9

    文章

    2230

    瀏覽量

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

    關(guān)注

    0

    文章

    206

    瀏覽量

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

    關(guān)注

    2

    文章

    547

    瀏覽量

    35181
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    華為數(shù)據(jù)通信攜手全球伙伴共探下代網(wǎng)絡(luò)發(fā)展方向

    作為全球互聯(lián)網(wǎng)技術(shù)領(lǐng)域頂級(jí)盛會(huì),第125屆互聯(lián)網(wǎng)工程任務(wù)組會(huì)議(IETF 125)近日在深圳召開。華為數(shù)據(jù)通信深度參與,通過前沿技術(shù)提案與創(chuàng)新實(shí)踐,攜手全球伙伴共探下代網(wǎng)絡(luò)發(fā)展方向。
    的頭像 發(fā)表于 03-24 15:03 ?468次閱讀
    華為<b class='flag-5'>數(shù)據(jù)通信</b>攜手全球伙伴共探下<b class='flag-5'>一</b>代網(wǎng)絡(luò)發(fā)展方向

    智能顯示模塊通信時(shí)有CRC數(shù)據(jù)校驗(yàn)功能嗎?串口通信能不能加上數(shù)據(jù)檢驗(yàn)?

    智能顯示模塊通信時(shí)有CRC數(shù)據(jù)校驗(yàn)功能嗎?串口通信能不能加上數(shù)據(jù)檢驗(yàn)?
    發(fā)表于 02-28 16:13

    文解讀CRC校驗(yàn)

    1、CRC是用來干嘛的? 般都知道是用來校驗(yàn)的,檢測(cè)數(shù)據(jù)傳輸過程中是否出現(xiàn)錯(cuò)誤(某些位,或某幾位,或者某塊區(qū)域位錯(cuò)誤),旦檢測(cè)。 2、
    發(fā)表于 01-26 07:20

    芯源循環(huán)冗余校驗(yàn)CRC)功能

    1 概述 循環(huán)冗余校驗(yàn)(CRC) 主要應(yīng)用于核實(shí)數(shù)據(jù)傳輸或數(shù)據(jù)存儲(chǔ)的正確性和完整性。CW32R030 內(nèi)部集成CRC 計(jì)算單元, 支持采用多
    發(fā)表于 01-12 06:07

    MDB-RS232適配器數(shù)據(jù)通信格式解析

    MDB-RS232適配器數(shù)據(jù)通信格式解析
    的頭像 發(fā)表于 12-20 16:26 ?1859次閱讀
    MDB-RS232適配器<b class='flag-5'>數(shù)據(jù)通信</b>格式解析

    硬件循環(huán)冗余校驗(yàn)CRC)模塊介紹

    CRC一種錯(cuò)誤檢測(cè),用于檢測(cè)數(shù)據(jù)傳輸或存儲(chǔ)中的意外更改。它通過對(duì)數(shù)據(jù)應(yīng)用特定的算法生成個(gè)固
    發(fā)表于 11-21 07:39

    CRC校驗(yàn)的原理和應(yīng)用

    原理: CRC校驗(yàn)數(shù)據(jù)視為個(gè)二進(jìn)制多項(xiàng)式,用個(gè)預(yù)先定義好的生成多項(xiàng)式(Generator Polynomial) 進(jìn)行模2除法,得到的
    發(fā)表于 11-14 06:48

    CRC校驗(yàn)的本質(zhì)和物理意義

    工業(yè)控制系統(tǒng)中,Modbus RTU協(xié)議的CRC校驗(yàn)如同通信網(wǎng)絡(luò)的\"免疫系統(tǒng)\",某石化廠DCS系統(tǒng)曾因CRC計(jì)算錯(cuò)誤導(dǎo)致0.3%的數(shù)據(jù)
    發(fā)表于 11-13 07:58

    8常用CRC算法分享

    CRC 計(jì)算單元可按所選擇的算法和參數(shù)配置來生成數(shù)據(jù)流的 CRC 。有些應(yīng)用中,可利用 CRC 技術(shù)來驗(yàn)證
    發(fā)表于 11-13 07:25

    RVMCU課堂「19」: 手把手教你玩轉(zhuǎn)RVSTAR—CRC計(jì)算篇

    RV-STAR開發(fā)板 CRC(循環(huán)冗余校驗(yàn)) 循環(huán)冗余校驗(yàn)(Cyclic redundancy check,CRC)是一種根據(jù)網(wǎng)
    發(fā)表于 10-30 07:49

    華為發(fā)布數(shù)據(jù)通信未來十大技術(shù)趨勢(shì)報(bào)告

    宏科等多位院士蒞臨大會(huì)作主旨報(bào)告。會(huì)上,華為發(fā)布《數(shù)據(jù)通信未來技術(shù)趨勢(shì)》報(bào)告(以下簡(jiǎn)稱“報(bào)告”),引領(lǐng)未來網(wǎng)絡(luò)發(fā)展方向。 華為數(shù)據(jù)通信產(chǎn)品線研發(fā)副總裁、數(shù)通技術(shù)規(guī)劃部部長(zhǎng)金閩偉表示:“數(shù)據(jù)通信網(wǎng)絡(luò)始終隨終端與應(yīng)用需求的演進(jìn)而持續(xù)
    的頭像 發(fā)表于 09-14 15:37 ?5077次閱讀
    華為發(fā)布<b class='flag-5'>數(shù)據(jù)通信</b>未來十大技術(shù)趨勢(shì)報(bào)告

    工業(yè)數(shù)據(jù)通信網(wǎng)關(guān)是什么?有什么推薦?

    以及數(shù)據(jù)的高效傳輸與處理。 工業(yè)數(shù)據(jù)通信網(wǎng)關(guān)是一種能夠在不同網(wǎng)絡(luò)協(xié)議之間進(jìn)行報(bào)文轉(zhuǎn)換的設(shè)備,可由單片機(jī)、嵌入式設(shè)備、板卡或獨(dú)立設(shè)備實(shí)現(xiàn)這功能,甚至
    的頭像 發(fā)表于 08-27 14:35 ?1143次閱讀
    工業(yè)<b class='flag-5'>數(shù)據(jù)通信</b>網(wǎng)關(guān)是什么?有什么推薦?

    芯知識(shí)|廣州唯創(chuàng)電子語音芯片UART通信協(xié)議解析:發(fā)碼長(zhǎng)度與校驗(yàn)碼計(jì)算

    、UART通信協(xié)議概述UART(通用異步收發(fā)器)是一種廣泛應(yīng)用于嵌入式系統(tǒng)的串行通信協(xié)議,其核心特點(diǎn)為無需時(shí)鐘同步,通過起始位、數(shù)據(jù)位、
    的頭像 發(fā)表于 05-27 08:48 ?922次閱讀
    芯知識(shí)|廣州唯創(chuàng)電子語音芯片UART<b class='flag-5'>通信</b>協(xié)議解析:發(fā)碼長(zhǎng)度與<b class='flag-5'>校驗(yàn)碼</b>計(jì)算

    CYUSB3014采用5根地址線通信,但其中條地址線懸空,對(duì)數(shù)據(jù)通信有影響嗎?

    CYUSB3014采用5根地址線通信,但其中條地址線懸空,對(duì)數(shù)據(jù)通信有影響嗎??是否還能進(jìn)行正常的多個(gè)端點(diǎn)通信,只要跳過那個(gè)地址線對(duì)應(yīng)的socket即可?
    發(fā)表于 05-21 07:59

    2025華為河南商業(yè)市場(chǎng)數(shù)據(jù)通信新品推介會(huì)成功舉行

    近日,以“品智聯(lián)接耀中原,成就商業(yè)好生意”為主題的2025華為河南商業(yè)市場(chǎng)數(shù)據(jù)通信新品推介會(huì)在鄭州成功舉辦。來自數(shù)據(jù)通信領(lǐng)域的眾多精英以及業(yè)內(nèi)知名企業(yè)代表齊聚堂,共同見證華為在
    的頭像 發(fā)表于 05-15 14:12 ?1295次閱讀
    凌源市| 图片| 安西县| 沽源县| 凤山县| 称多县| 米泉市| 运城市| 梨树县| 长阳| 高安市| 澜沧| 临泉县| 卫辉市| 富阳市| 阿合奇县| 灌南县| 桦甸市| 旌德县| 江西省| 津南区| 汕尾市| 绥芬河市| 清苑县| 阿鲁科尔沁旗| 洮南市| 长阳| 阳曲县| 磐安县| 黎城县| 高要市| 宣汉县| 虎林市| 灵台县| 从江县| 拜城县| 佳木斯市| 盐池县| 平罗县| 澄迈县| 南充市|