crc檢驗原理:
在乙個p位二進位制資料序列之後附加乙個r位二進位制檢驗碼(序列),構成乙個總長為n=p+r位的二進位制序列;
附加在資料序列之後的這個檢驗碼與資料序列的內容之間存在著某種特定的關係。如果因干擾等原因使資料序列中的某一位或某些位發生錯誤,這種特定關係就會被破壞;
因此,通過檢查這一關係,就可以實現對資料正確性的檢驗。
傳送方:
(1):確定產生多項式**序列n,長度最高次冪r;
(2):在p位的二進位制資料序列p之後加r個0得到m,長度p+r;
(3):用m對n做模2除法運算取餘數**序列r;
(4):q後附加r得到c。
接受方:
(1):用c對n做模2除法運算餘數為0則傳輸過程中無錯
需要傳送的資訊p為1010001101,產生多項式對應得**n為110101。
解:(1)確定產生多項式**序列n,長度r=5;
(2)m為101000110100000
(3)用m對n做模2除法運算取餘數**序列r為01110;
(4)n為1010001101 01110
接受方:
(1):用c對n做模2除法運算餘數為0則傳輸過程中無錯。
模2運算:即按位異或運算(相同為0,相異為1);
生成多項式:
如上述例子,
110101
多項式為x^5+x^4+0*x^3+x^2+0*x^1+x^0;
即x^5+x^4+x^2+1;
則r=5。
餘數:餘數的長度需等於r,不足則在前面補0。
crc只能判斷是否出錯,不能判斷出錯位置
迴圈冗餘校驗 CRC校驗
一 crc校驗概念 即迴圈冗餘校驗碼 cyclic redundancy check 是資料通訊領域中最常用的一種查錯校驗碼,迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。其特徵是資訊字段和...
迴圈冗餘校驗CRC
網上搜到的內容不全面,維基百科講的比較好,原理很清楚傳送門 其實對於程式設計師來講,不用太在意它的數學原理,另外生成碼的選擇不是隨意的,這可能影響到校驗的效能。注意其中的加法不進製,減法不借位,類似是異或邏輯。關於怎樣產生crc,有這樣乙個演算法 下面為crc的計算過程 1 設定crc暫存器,並給其...
CRC迴圈冗餘校驗
crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要...