CRC校驗原理

2021-08-03 00:08:45 字數 1491 閱讀 2245

基本概念

crc即迴圈校驗碼是資料通訊中最常用的一種差錯校驗碼。資訊欄位的長度和校驗碼的長度是任意的。

基本原理

在k位資訊碼的後面加上r位校驗碼,整個長度是n位, n=k+r。給定乙個(n,r)碼,可以證明存在乙個最高次冪為r的多項式g(x),根據g(x)可以生成k位資訊的校驗碼,而g(x)叫做這個crc碼的生成多項式。

校驗碼生成

生成過程:假設傳送的資訊用c(x)資訊碼表示,將c(x)左移r位得到多項式c(x)乘x的r次,空出來的r位用校驗碼來填補。再用得到的多項式c(x)*x的r次除以生成多項式g(x),得到的餘數就是校驗碼。

數學關係

多項式和二進位制數有直接對應關係:x的最高冪次對應二進位制數的最高位,以下各位對應多項式的各冪次,有此冪次項對應1,無此冪次項對應0。可以看出:x的最高冪次為r,轉換成對應的二進位制數有r+1位。

多項式包括生成多項式g(x)和資訊多項式c(x)。

如生成多項式為g(x)=x^4+x^3+x+1, 可轉換為二進位制數碼11011。

而傳送資訊位 1111,可轉換為資訊多項式為c(x)=x^3+x^2+x+1。

crc校驗碼位數

crc校驗碼位數 = 生成多項式位數 - 1。注意有些生成多項式的簡記式中將生成多項式的最高位1省略了。

生成步驟

1、將x的最高次冪為r的生成多項式g(x)轉換成對應的r+1位二進位制數。

2、將資訊碼左移r位,相當於對應的資訊多項式c(x)*x的r次方。

3、用生成多項式(二進位制數)對資訊碼做除,得到r位的餘數。

4、將餘數拼到資訊碼左移後空出的位置,得到完整的crc碼。

例: 生成多項式x^4假設使用的生成多項式是g(x)=x^3+x+1。原始報文為1010

1、將生成多項式g(x)=x^3+x+1轉換成對應的二進位制除數1011。

2、生成多項式有4位(r+1) (注意:4位的生成多項式計算所得的校驗碼為3位,r為校驗碼位數),要把原始報文c(x)左移3(r)位變成1010 000

3、用生成多項式對應的二進位制數對左移3位後的原始報文進行模2除(高位對齊),相當於按位異或:

1 0 1 0 0 0 0

1 0 1 1

0 0 0 1 0 0 0

_ _ _ _1 0 1 1

_ ___011

得到餘數為011,校驗碼為1010011

用上面例子進行校驗:

1010011

11 ---

-110011

11 ___ 

11 11

___

得到結果無餘數,說明校驗成功

下表中列出了一些見於標準的crc資料:

生成多項式的最高冪次項係數是固定的1,故在簡記式中,將最高的1統一去掉了,如04c11db7實際上是104c11db7。

CRC校驗原理

crc校驗原理 1 迴圈校驗碼 crc碼 是資料通訊領域中最常用的一種差錯校驗碼,其特 徵是資訊字段和校驗欄位的長度可以任意選定。2 生成crc碼的基本原理 任意乙個由二進位制位串組成的 都可以和乙個系 數僅為 0 和 1 取值的多項式一一對應。例如 1010111對應的多項 式為x6 x4 x2 ...

CRC校驗原理

以下內容摘自筆者即將出版的最新著作 深入理解計算機網路 一書。本書將於12月底出版上市,敬請留意!本書原始目錄參見此文 5.3.2 迴圈冗餘校驗檢錯方案 上節介紹的奇偶校驗碼 pcc 只能校驗一位錯誤,本節所要介紹的迴圈冗餘校驗碼 crc 的檢錯能力更強,可以檢出多位錯誤。1.crc校驗原理 crc...

CRC校驗原理

用到多項式和二進位制數之間的轉換 然後用到的主要運算是模2除法 1 迴圈校驗碼 crc碼 是資料通訊領域中最常用的一種差錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。2 生成crc碼的基本原理 任意乙個由二進位制位串組成的 都可以和乙個係數僅為 0 和 1 取值的多項式一一對應。例如 10...