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

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

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

3天內不再提示

淺析MCU通信、存儲常用的簡單校驗算法

strongerHuang ? 來源:strongerHuang ? 2024-03-07 10:56 ? 次閱讀

UART有一個奇偶校驗,CAN通信有CRC校驗。Modbus、MAVlink、USB等通信協議也有校驗信息

在自定義數據存儲時,有經驗的工程師都會添加一定校驗信息。

你平時通信,或者數據存儲時,你有用到校驗信息嗎?下面就介紹幾種常見的校驗算法

校驗和

校驗和是最基本,也是嵌入式軟件工程師最常用的一種校驗算法,其實現方法很簡單,簡單到只有幾行代碼。

實現的方式方法很多,不同的編程語言,不同的應用有所不同,下面以C語言8位校驗和為例:

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

異或校驗

【異或校驗】與【校驗和】類似,對數據進行“異或”,最終得到一個“異或值”。

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


  for(i=0; i
校驗和、異或校驗的方式有很多種,比如有的還會傳入一個參數作為異或校驗的值。 

當然,以上代碼僅供學習參考,實際應用需結合項目情況修改代碼。

CRC校驗

CRC:Cyclic Redundancy Check,即循環冗余校驗。

CRC是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環冗余檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。

CRC校驗屬于冗余校驗中的一種,大學學計算機相關專業的同學都應該學過CRC校驗(學習時可能沒幾個同學搞明白了)

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

常見CRC參數模型:

a686751e-dc1d-11ee-a297-92fbcf53809c.png ?

比如一種在單片機上實現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
CRC校驗不同場景實現方式不同

網上還有在線計算CRC校驗值以及代碼生成工具,感興趣的讀者可以自行了解。

MD5算法

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

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

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

a69c7670-dc1d-11ee-a297-92fbcf53809c.png

MD5是輸入不定長度信息,輸出固定長度128-bits的算法。經過程序流程,生成四個32位數據,最后聯合起來成為一個128-bits散列。基本方式為,求余、取余、調整長度、與鏈接變量進行循環運算。得出結果。

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

其他算法

隨著變成技術越來越發達,校驗算法也越來越多,有通用的算法,也有特殊領域特定的算法。

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

還有從MD4算法改進而來的SHA-1算法(Secure Hash Algorithm 1即安全散列算法1)。




審核編輯:劉清

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

    關注

    5

    文章

    93

    瀏覽量

    17829
  • C語言
    +關注

    關注

    180

    文章

    7604

    瀏覽量

    136685
  • 嵌入式軟件
    +關注

    關注

    4

    文章

    240

    瀏覽量

    26641
  • CRC校驗
    +關注

    關注

    0

    文章

    84

    瀏覽量

    15207

原文標題:MCU通信、存儲常用的簡單校驗算法

文章出處:【微信號:strongerHuang,微信公眾號:strongerHuang】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    基于C8051F的CRC校驗算法的實現

    基于C8051F的CRC校驗算法的實現 
    發表于 03-14 17:14

    常用校驗算法有哪些?

    常用校驗算法有哪些,是不是和通信規約有關。比如MODBUS一般都用CRC16(不確定是不是叫這個)。這些校驗算法是之前積累下來的嗎。自己也可以定義一個
    發表于 11-03 06:50

    基于iSCSI協議校驗算法的改進

    CRC 校驗作為iSCSI 協議中使用最頻繁的一種檢錯機制,其算法的優劣會直接影響協議的執行效率。文章在分析傳統CRC算法低效率的基礎上,引入了一種快速并行的CRC 算法,并根據iSC
    發表于 11-08 16:45 ?12次下載

    BCH解碼校驗算法

      BCH解碼校驗原理   二元BCH(15,7)碼的解碼校驗原理是在時域上直接利用碼的代數結構進行解碼。首先,由于BCH(15,7)碼的糾錯能力t=2,所以根據接收序列計算伴隨式sk=r(αk),其
    發表于 07-30 09:32 ?5690次閱讀
    BCH解碼<b class='flag-5'>校驗算法</b>

    IP協議校驗算法程序

     IP 協議采用統一的校驗算法,其計算比較簡單:設校驗和初值為0,然后對數據每16位求異或,結果取反,便得校驗和。校驗時將數據(含
    發表于 08-13 10:55 ?1038次閱讀

    LTE系統的CRC校驗算法及DSP實現

    通過對兩種常用CRC校驗算法的研究分析,為TD-LTE測試儀表系統選擇了一種最優的CRC校驗算法,并在TMS320C64xDSP中實現。將CRC校驗程序在CCS3.3中運行,其結果驗證
    發表于 02-23 14:58 ?30次下載

    變壓器設計(經驗算法)

    變壓器設計(經驗算法)
    發表于 03-15 09:12 ?4次下載

    一種基于矩陣的并行CRC校驗算法

    針對高速網絡通信中高位寬并行數據的實時校驗需求,提出了一種可單周期實現的、面向128位并行數據的循環冗余校驗算法(Cyclic Redundancy Check,CRC )。該算法首先
    發表于 10-30 16:39 ?3次下載
    一種基于矩陣的并行CRC<b class='flag-5'>校驗算法</b>

    循環冗余校驗算法

    針對循環冗余校驗(CRC)準則在信道條件惡化時可能使譯碼出現較大迭代次數及錯誤的問題,提出了基于可靠度的迭代停止算法及重傳算法。首先,每次迭代后,計算本次譯碼中間結果的可靠度,通過判斷其是否達到閾值
    發表于 01-14 16:24 ?0次下載
    循環冗余<b class='flag-5'>校驗算法</b>

    如何用SMART編寫CRC校驗算法程序

    CRC即循環冗余校驗碼(Cyclic Redundancy Check):是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段
    的頭像 發表于 11-26 09:50 ?9274次閱讀
    如何用SMART編寫CRC<b class='flag-5'>校驗算法</b>程序

    如何使用SMART編寫CRC的校驗算法程序

    本文檔的主要內容詳細介紹的是如何使用SMART編寫CRC的校驗算法程序。
    發表于 10-24 08:00 ?4次下載
    如何使用SMART編寫CRC的<b class='flag-5'>校驗算法</b>程序

    基于TMS320C64x的CRC校驗算法分析

    CRC(Cyclic Redundancy Check)循環冗余校驗碼是數據通信領域中常用的一種差錯校驗碼,在早期的通信中運用廣泛。
    發表于 08-10 16:46 ?1531次閱讀
    基于TMS320C64x的CRC<b class='flag-5'>校驗算法</b>分析

    CRC校驗算法原理及c語言實現

    CRC校驗算法原理及c語言實現
    發表于 11-30 10:04 ?9次下載

    單片機中常用的輕量級校驗算法

    UART有一個奇偶校驗,CAN通信有CRC校驗。Modbus、MAVlink、USB等通信協議也有校驗信息。
    的頭像 發表于 03-24 10:22 ?821次閱讀

    單片機中幾種常見的校驗算法介紹

    CRC是數據通信領域中最常用的一種查錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。循環冗余檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后
    發表于 06-05 14:25 ?1705次閱讀
    單片機中幾種常見的<b class='flag-5'>校驗算法</b>介紹
    主站蜘蛛池模板: metart中国撒尿人体欣赏| 肉动漫无码无删减在线观看 | 嫩草影院精品视频在线观看| 国内精品伊人久久久影院| 国产精品AV无码免费播放| 成人午夜精品无码区久久漫画日本| 2020无码最新国产在线观看| 亚洲在线无码免费观看| 亚洲精品国产在线网站| 亚洲精品无码专区在线播放| 亚洲、国产综合视频| 午夜福利电影网站鲁片大全| 色琪琪丁香婷婷综合久久| 日日射日日操| 日本亚洲精品无码区国产电影| 欧美美女论坛| 欧美亚洲国产免费高清视频| 欧美日韩亚洲一区二区三区在线观看| 美女扒开尿口直播| 免费无码一区二区三区蜜桃大| 蜜柚在线观看免费高清官网视频 | 草比比过程图| 成人免费视频无遮挡在线看| 荡乳乱公小说| 国产成人免费a在线资源| 国产精品-区区久久久狼| 国产在线观看免费观看不卡| 加勒比一本之道高清视频在线观看| 国语自产一区视频| 久草色视频| 免费国产福利| 日本无码人妻精品一区二区视频 | 黄 色 网 站 免 费 涩涩屋| 久草在线精彩免费视频| 毛片在线网址| 秋葵app秋葵官网18在线观看| 日韩一区二区天海翼| 小伙无套内射老女人| 亚洲天堂视频网站| 97视频免费在线观看| 超碰免费视频部落格|