久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

C語言:CRC校驗

作者:xuchen   來源:xuchen的blog   點擊數:  更新時間:2014年05月28日   【字體:
一、CRC碼
CRC:Cylic Reduancy check譯作漢語就是循環冗余校驗碼。

二、XOR
XOR:邏輯運算符異或,不知道用符號怎么寫,總之其運算法則是,不同為1,相同為0。

三、用XOR代替算術運算上除法的兩個例子。
1、10110010000/11001
第一次異或(相除),得到商為1,余數為1111,加入下一位0,進行
第二次異或,得到商為1,余數為111,加入下一位1,余數為1111,四位與除數5位不能夠異或計算,所以此處商為0,加入下一位0,進行
第三次異或,得到商為1,余數為111,同理第5位商為0,余數繼續加入被除數的下一位0,進行
第四次異或,得到商為1,余數為101,加入后一位被除數的0,得到商為0,最終余數為1010,而最終商為1101010。計算流程如下圖所示:

如若讓被除數10110010000加上余數1010則為10110011010,再除以(異或)11001,則得到余數為0000(此處不再具體計算).
2、1111000/1001
經過三次異或(相除)得到商為1110,余數為110,具體例程如下,

同樣,讓該例的被除數1111000加上余數110后為1111110除以(異或)除數100則得到余數為000.

四、CRC校驗原理
由以上兩個例子可以看出,通信過程中加入想要傳送的數據是“被除數”,加上余數后再傳送。而接收一方接收完整數據后,除以除數,如果余數為0,則說明傳送的數據正確,如果不為0則說明傳送的數據有誤。因為對于一個確定的“除數”,則就會有唯一的余數與之對應。這個過程其實就是一個CRC的校驗過程。不過名稱改一下不能叫做被除數 除數什么的。可以規定上述的除數叫做生成多項式或生成項,用g(x)表示。而余數就叫做CRC校驗碼。由以上知道,對于不同的生成項,則就會有唯一的CRC校驗碼與之對應。而對于要傳送的數據也可以用一個系數僅為0和1取值的多項式一一對應。例如代碼1010111對應的多項式為x^6+x^4+x^2+x+1.而多項式x^5+x^3+x^2+x+1對應的代碼是101111.
實際上,上述的被除數并不是真正的要傳送的數據,真正要傳送的數據是一個多項式左移CRC校驗碼位數后的代碼。定義CRC校驗碼的位數表示它本身的寬度。
另外,關于生成項,不難發現其最高位是1,實際上在除法的每次XOR時候都要被消掉,所以一般第一個1不做參考,后面的幾位才是最重要的。這就是為什么生成項的位數比CRC寬度大1的原因。且生成項的最后一位也必須同時為1.一般生成項簡寫時候不寫最高位的1.以下是各種常用的生成項表達式:
CRC-4:x^4+x+1;-------------------------------->0x03
CRC-8:x^8+x^5+x^4+1;--------------------------->0x31
CRC-8:x^8+x^2+x^1+1;--------------------------->0x07
CRC-8:x^8+x^6+x^4+x^3+x^2+x;------------------->0x5E
CRC-12:x^12+x^11+x^4+x^3+x+1;------------------>0x80
CRC-16:x^16+x^15+x^2+1;------------------------>0x80005
CRC-16:x^16+x^12+x^5+1;------------------------>0x1021
CRC-32:x^32+x^26+x^23+....+x^2+x+1;------------>0x04C11DB7
CRC-32:x^32+x^28+x^27+....+x^8+x^6+1;---------->0x1EDC6F41

五、C語言的實現





附錄:

相關文章

主站蜘蛛池模板: 国产视频一区二区三区四区 | 久久在线| 色婷婷六月 | yy6080午夜 | 婷婷久久五月 | 亚洲精品www久久久久久广东 | 欧美国产在线观看 | 国产成人综合网 | 国产精品毛片一区视频播 | 伊人网视频 | 99热免费 | 国产成人毛片 | 在线免费看黄网站 | 亚洲欧美中文字幕 | 成人免费视频国产免费麻豆 | 超碰777| 天堂中文av | 亚洲欧美精品一区 | 亚洲黄色天堂 | 国产一级特黄aaa大片 | 午夜精品久久久久久久99黑人 | 午夜视频在线看 | 国产午夜三级一区二区三 | 福利在线观看 | 日皮视频在线观看 | 亚洲视频免费在线观看 | 99国产在线观看 | 国产美女av | 午夜性福利| 成人午夜网 | 欧美a一级| 欧美一级片网站 | 又色又爽又黄18网站 | 日韩三级一区二区 | 成人永久免费 | 中文字幕在线看片 | av中文网| 天天干天天拍 | 亚洲视频一区二区三区 | 一道本在线 | 亚洲精品成人 |