一、基本原理 CRC檢驗原理實際上就是在一個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)系,就可以實現(xiàn)對數(shù)據(jù)正確性的檢驗。 二、幾個基本概念 1、幀檢驗序列FCS(Frame Check Sequence):為了進(jìn)行差錯檢驗而添加的冗余碼。 2、多項式模2運(yùn)行:實際上是按位異或(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。常用的CRC碼的生成多項式有: CRC8=X8+X5+X4+1 CRC-CCITT=X16+X12+X5+1 CRC16=X16+X15+X5+1 CRC12=X12+X11+X3+X2+1 CRC32=X32+X26+X23+X22+X16+X12+X11+X10+X8+X7+X5+X4+X2+X1+1 每一個生成多項式都可以與一個代碼相對應(yīng),如CRC8對應(yīng)代碼:100110001。
|