CRC迴圈冗餘校驗

2021-08-03 06:15:07 字數 780 閱讀 6093

在傳輸幀的過程中,由於電干擾或熱噪音等等影響,幀的位元位會出錯。特別是在光鏈路中,需要差錯檢測機制來及時糾正。最常用的一項技術crc(cyclic redundancy check)迴圈冗餘校驗 。

crc 碼是基於模2建立的校驗碼,它的運算不考慮進製和借位,即倆個相同的數模2恒為0。

crc 編碼的理論基礎源於數學分支中的乙個有限域。聽起來深奧,但基本思想很容易理解。接下來從組成它的每乙個多項式展開。

首先考慮乙個由n次多項式表示的n+1位位元訊息m(x),每一位元位的值為 對應其每項多項式的係數,且從為高位位元開始。如乙個8位元10011010對應的多項式為 m(x)=x^7 +x^4 +x^3 +x^1。

為了計算crc 傳送方和接收方還得協定乙個除數多項式 c(x), c(x) 對檢測差錯有很大影響,且準確的選擇通常是協議設計的一部分,如乙太網使用的就是crc-32 位。

傳送方想要傳送乙個 n+1 比特長的訊息時,其實傳送的是 n+1 +k 位的p(x),k 位 為校驗冗餘碼,指的是額外傳送的位元位,他們不向訊息中加入新訊息,而是用明確的演算法從原始訊息中匯出資訊。我們要做的就是使p(x)能除c(x)且餘數為0,另一方面,如果有傳輸錯誤,就無法整除,會產生乙個非0餘數。

例子如下:有效資訊為1100,生成多項式c(x)=1011,求其crc編碼?

迴圈冗餘校驗 CRC校驗

一 crc校驗概念 即迴圈冗餘校驗碼 cyclic redundancy check 是資料通訊領域中最常用的一種查錯校驗碼,迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。其特徵是資訊字段和...

迴圈冗餘校驗CRC

網上搜到的內容不全面,維基百科講的比較好,原理很清楚傳送門 其實對於程式設計師來講,不用太在意它的數學原理,另外生成碼的選擇不是隨意的,這可能影響到校驗的效能。注意其中的加法不進製,減法不借位,類似是異或邏輯。關於怎樣產生crc,有這樣乙個演算法 下面為crc的計算過程 1 設定crc暫存器,並給其...

CRC迴圈冗餘校驗

crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,它要...