新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 基礎(chǔ)知識 > CRC是什么--CRC是神馬東東??

CRC是什么--CRC是神馬東東??

作者:蔣雅嫻 時間:2015-04-21 來源:電子產(chǎn)品世界 收藏

  導(dǎo)讀:本文主要介紹是什么東東,不知道的童鞋們快來看看吧,很漲姿勢的哦~~~

本文引用地址:http://2s4d.com/article/272912.htm

1.是什么--簡介

  全稱Cyclic Redundancy Check,即循環(huán)冗余校驗碼,是數(shù)據(jù)通信領(lǐng)域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。CRC是一種數(shù)據(jù)傳輸檢錯功能,對數(shù)據(jù)進(jìn)行多項式計算,并將得到的結(jié)果附在幀的后面,接收設(shè)備也執(zhí)行類似的算法,以保證數(shù)據(jù)傳輸?shù)恼_性和完整性。

2.--基本知識

  下面我們介紹幾個CRC的基礎(chǔ)知識:

  1、幀檢驗序列FCS(Frame Check Sequence):為了進(jìn)行差錯檢驗而添加的冗余碼。

  2、多項式模2運(yùn)行:實(shí)際上是按位異或(Exclusive OR)運(yùn)算,即相同為0,相異為1,也就是不考慮進(jìn)位、借位的二進(jìn)制加減運(yùn)算。如:10011011 + 11001010 = 01010001。

  3、生成多項式(generator polynomial):當(dāng)進(jìn)行CRC檢驗時,發(fā)送方與接收方需要事先約定一個除數(shù),即生成多項式,一般記作G(x)。生成多項式的最高位與最低位必須是1。

3.--原理

  CRC檢驗原理實(shí)際上就是在一個p位二進(jìn)制數(shù)據(jù)序列之后附加一個r位二進(jìn)制檢驗碼(序列),從而構(gòu)成一個總長為n=p+r位的二進(jìn)制序列;附加在數(shù)據(jù)序列之后的這個檢驗碼與數(shù)據(jù)序列的內(nèi)容之間存在著某種特定的關(guān)系。如果因干擾等原因使數(shù)據(jù)序列中的某一位或某些位發(fā)生錯誤,這種特定關(guān)系就會被破壞。因此,通過檢查這一關(guān)系,就可以實(shí)現(xiàn)對數(shù)據(jù)正確性的檢驗。

4.--計算

  設(shè)信息字段為K位,校驗字段為R位,則碼字長度為N(N=K+R)。設(shè)雙方事先約定了一個R次多項式g(x),則CRC碼:

  V(x)=A(x)g(x)=xRm(x)+r(x)

  其中: m(x)為K次信息多項式, r(x)為R-1次校驗多項式。

  這里r(x)對應(yīng)的代碼即為冗余碼,加在原信息字段后即形成CRC碼。r(x)的計算方法為:在K位信息字段的后面添加R個0,再除以g(x)對應(yīng)的代碼序列,得到的余數(shù)即為r(x)對應(yīng)的代碼(應(yīng)為R-1位;若不足,而在高位補(bǔ)0)。

  計算示例

  設(shè)需要發(fā)送的信息為M = 1010001101,產(chǎn)生多項式對應(yīng)的代碼為P = 110101,R=5。在M后加5個0,然后對P做模2除法運(yùn)算,得余數(shù)r(x)對應(yīng)的代碼:01110。故實(shí)際需要發(fā)送的數(shù)據(jù)是101000110101110。

5.CRC是什么--注意

  有時候有些人會差生一些錯誤的觀點(diǎn),下面小編為大家糾正幾處常犯的錯誤觀點(diǎn):

  1、CRC是一種常用的檢錯碼,并不能用于自動糾錯。

  2、只要經(jīng)過嚴(yán)格的挑選,并使用位數(shù)足夠多的除數(shù) P,那么出現(xiàn)檢測不到的差錯的概率就很小很小。

  3、僅用循環(huán)冗余檢驗 CRC 差錯檢測技術(shù)只能做到無差錯接受(只是非常近似的認(rèn)為是無差錯的),并不能保證可靠傳輸。

  拓展閱讀:

  1.解讀CRC的校驗原理

  2.CRC標(biāo)準(zhǔn)及計算過程

  3.視頻應(yīng)用中的CRC測試



關(guān)鍵詞: CRC CRC是什么

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉