crc:(迴圈冗餘校驗)
迴圈冗餘校驗是資料通訊領域中最常用的一種差錯校驗碼,主要用來檢測或校驗資料傳輸或者儲存後可能出現的錯誤。其特徵是資訊字段和校驗欄位的長度可以任意選定。
工作原理:
crc檢錯方法的工作原理可以從傳送端與接收端兩個方面進行描述。
1)傳送端將傳送資料位元序列當作乙個多項式f(x),用雙方預先約定的生成多項式g(x)去除,求得乙個餘數多項式r(x)。將餘數多項式加到資料多項式之後,一起傳送到接收端。
&程式設計客棧nbsp; 2)接收端用同樣的生成多項式g(x)去除接收到的資料多項式f'(x),得到計算餘數r'(x)。如果計算餘數多項式r'(x)與接收wvlnwtmf餘數wvlnwtmf多項式r(x)相同,表示傳輸無差錯;否則,表示傳輸有差錯,通知傳送端重傳資料,直至正確為止。
eg: 1)傳送資料位元序列為:f(x)=110011
2)生成多項式位元序列為:g(x)=11001 (n=5,k=4)
3)將傳送資料位元序列乘以2的4次方,即產生的乘積為:1100110000
4)將乘積用生成多項式位元序列去除,按模2演算法求得餘數為:1001
5)將餘數字元序列加到乘積中得:
1 1 0 0 1 1 + 1 0 0 1 = 1 1 0 0 1 1 1 0 0 1
6)如果在資料傳輸過程中沒有傳送錯誤,接收端收到的帶有crc校驗碼的程式設計客棧資料位元序列一定能被相同的生成多項式整除:
crc的檢錯能力:
1)能夠檢查出全部離散的1位錯。
2)能夠檢查出全部離散的2位錯。
3)能夠檢查出全部奇數錯。
4)能夠檢查出全部長度小於或等於k位的突發錯。
5)能以[1-(1/2)^(k-1)]的wvlnwtmf概率檢查出長度為k+1位的突發錯。
本文標題: c++開發之crc校驗例項詳解
本文位址:
crc校驗詳解
crc即迴圈冗餘校驗碼 cyclic redundancy check 1 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸...
Linux 詳解CRC校驗
1.crc校驗概念 crc即迴圈冗餘校驗碼 是資料通訊領域中最常用的一種查錯校驗碼,其特徵是資訊字段和校驗欄位的長度可以任意選定。迴圈冗餘檢查 crc 是一種資料傳輸檢錯功能,對資料進行多項式計算,並將得到的結果附在幀的後面,接收裝置也執行類似的演算法,以保證資料傳輸的正確性和完整性。2.crc校驗...
CRC冗餘校驗原理詳解
在進行crc原理解析之前,我們需要先了解什麼是模二除法,因為在crc校驗中使用的是模二除法,而非算術除法。以120 9為例,比較一下兩種除法的區別 120的二進位制 0b01111000 9的二進位制 1001 算術除法 120 9 13餘3 1101 除數 1001 1111000 0011 餘數...