crc計(jì)算方法
1、加載一值為0XFFFF的16位寄存器,此寄存器為CRC寄存器。
2、把第一個(gè)8位二進(jìn)制數(shù)據(jù)(即通訊信息幀的第一個(gè)字節(jié))與16位的CRC寄存器的相異或,異或的結(jié)果仍存放于該CRC寄存器中。
3、把CRC寄存器的內(nèi)容右移一位,用0填補(bǔ)最高位,并檢測(cè)移出位是0還是1。
4、如果移出位為零,則重復(fù)第三步(再次右移一位);如果移出位為1,CRC寄存器與0XA001進(jìn)行異或。
5、重復(fù)步驟3和4,直到右移8次,這樣整個(gè)8位數(shù)據(jù)全部進(jìn)行了處理。
6、重復(fù)步驟2和5,進(jìn)行通訊信息幀下一個(gè)字節(jié)的處理。
7、將該通訊信息幀所有字節(jié)按上述步驟計(jì)算完成后,得到的16位CRC寄存器的高、低字節(jié)進(jìn)行交換
8、最后得到的CRC寄存器內(nèi)容即為:crc校驗(yàn)碼