CRC校驗方法的實現

 

1,確定收發雙方所使用的校驗位數(由收發雙方自定義)

     如1個字節的爲CRC-8校驗,2字節爲CRC-16校驗,4字節爲CRC-32校驗。

2,確定除數(生成多項式)

     根據校驗字節數,確定某個除數G(x),這個除數一般以二進制形式表示,如果選擇CRC-8校驗,除數需要8位以內,CRC-16需要16位以內,同理CRC-32需要32位以內的除數。例如,CRC-8校驗G(x)選擇爲 0b00001010,則G(x) = x^3 + x^1 + x^0,我們又稱這個多項式爲CRC校驗的生成多項式。

      雖然生成多項式可以自定義,不過選擇適當的多項式可以把校驗的出錯概率降到最低,經過磚家們的論證,已經有一些多項式被用來做標準,以降低數據傳輸時出錯的概率,可以百度一下CRC標準多項式。標準多項式中,最高位和最低位必須爲1,如下圖:

 

3,標準生成多項式G(x) = x8+x5+x4+1 最高次冪爲8(R),把需要做校驗的數據C左移8(R)位(低位補0)得到數據C(x)。

4,把C(x)對G(x)做模2除法運算,得到的餘數SUM(餘數位數必須是多項式最高次冪8(R),位數不夠高位補0)便是CRC校驗和。 C+SUM便是CRC校驗後的數據。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章