新聞中心

        EEPW首頁 > 嵌入式系統 > 基礎知識 > CRC是什么--CRC是神馬東東??

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

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

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

        本文引用地址:http://www.104case.com/article/272912.htm

        1.是什么--簡介

          全稱Cyclic Redundancy Check,即循環冗余校驗碼,是數據通信領域中最常用的一種差錯校驗碼,其特征是信息字段和校驗字段的長度可以任意選定。CRC是一種數據傳輸檢錯功能,對數據進行多項式計算,并將得到的結果附在幀的后面,接收設備也執行類似的算法,以保證數據傳輸的正確性和完整性。

        2.--基本知識

          下面我們介紹幾個CRC的基礎知識:

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

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

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

        3.--原理

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

        4.--計算

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

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

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

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

          計算示例

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

        5.CRC是什么--注意

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

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

          2、只要經過嚴格的挑選,并使用位數足夠多的除數 P,那么出現檢測不到的差錯的概率就很小很小。

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

          拓展閱讀:

          1.解讀CRC的校驗原理

          2.CRC標準及計算過程

          3.視頻應用中的CRC測試



        關鍵詞: CRC CRC是什么

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 茌平县| 定襄县| 隆安县| 嘉定区| 西青区| 定边县| 乌兰察布市| 揭东县| 方山县| 华容县| 昌吉市| 盖州市| 清水县| 巴南区| 江口县| 大理市| 印江| 台南县| 无棣县| 天门市| 罗源县| 安庆市| 舟山市| 澜沧| 清水县| 阳信县| 临江市| 哈巴河县| 大荔县| 栖霞市| 河津市| 毕节市| 德安县| 丹凤县| 齐河县| 金沙县| 乐都县| 铁岭市| 夏津县| 阿坝县| 堆龙德庆县|