CRC校驗

 【CRC校驗】
【定義】
       CRC即循環冗餘校驗碼:是數據通信領域中最常用的一種查錯校驗碼,其特徵是信息字段和校驗字段的長度可以任意選定。循環冗餘檢查(CRC)是一種數據傳輸檢錯功能,對數據進行多項式計算,並將得到的結果附在幀的後面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。、
【校驗碼位數】
CRC校驗碼位數 = 生成多項式位數 - 1。注意有些生成多項式的簡記式中將生成多項式的最高位1省略了。
【CRC校驗生成步驟】
1、將X的最高次冪爲R的生成多項式G(X)轉換成對應的R+1位二進制數。
2、將信息碼左移R位,相當於對應的信息多項式C(X)*2R。
3、用生成多項式(二進制數)對信息碼做除,得到R位的餘數(注意:這裏的二進制做除法得到的餘數其實是模2除法得到的餘數,並不等於其對應十進制數做除法得到的餘數。)。
4、將餘數拼到信息碼左移後空出的位置,得到完整的CRC碼。
【具體例子】
        現假設選擇的CRC生成多項式爲G(X) = X4 + X3 + 1,要求出二進制序列10110011的CRC校驗碼。下面是具體的計算過程:
   (1)首先把生成多項式轉換成二進制數,由G(X) = X4 + X3 + 1可以知道(,它一共是5位(總位數等於最高位的冪次加1,即4+1=5),然後根據多項式各項的含義(多項式只列出二進制值爲1的位,也就是這個二進制的第4位、第3位、第0位的二進制均爲1,其它位均爲0)很快就可得到它的二進制比特串爲11001。
   (2)因爲生成多項式的位數爲5,根據前面的介紹,得知CRC校驗碼的位數爲4(校驗碼的位數比生成多項式的位數少1)。因爲原數據幀10110011,在它後面再加4個0,得到101100110000,然後把這個數以“模2除法”方式除以生成多項式,得到的餘數(即CRC碼)爲0100,如圖所示。注意參考前面介紹的“模除法”運算法則。

    (3)把上步計算得到的CRC校驗0100替換原始幀101100110000後面的四個“0”,得到新幀101100110100。再把這個新幀發送到接收端。
    (4)當以上新幀到達接收端後,接收端會把這個新幀再用上面選定的除數11001以“模除法”方式去除,驗證餘數是否爲0,如果爲0,則證明該幀數據在傳輸過程中沒有出現差錯,否則出現了差錯。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章