- 相關(guān)推薦
計算法簡單實現(xiàn)crc校驗
前一段時間做協(xié)議轉(zhuǎn)換器的時間用到CRC-16校驗,查了不少資料發(fā)現(xiàn)都不理想。查表法要建表太麻煩,而計算法覺得那些例子太羅嗦。最后只好自己寫了,最后發(fā)現(xiàn)原來挺簡單嘛:)兩個子程序搞定。這里用的多項式為:
CRC-16 = X16 + X12 + X5 + X0 = 2^0+2^5+2^12+2^16=0x11021
因最高位一定為“1”,故略去計算只采用0x1021即可
CRC_Byte:計算單字節(jié)的CRC值
CRC_Data:計算一幀數(shù)據(jù)的CRC值
CRC_High CRC_Low:存放單字節(jié)CRC值
CRC16_High CRC16_Low:存放幀數(shù)據(jù)CRC值
;<>-------------------------------------------------------------
; Function: CRC one byte
; Input: CRCByte
; Output: CRC_High CRC_Low
;<>-------------------------------------------------------------
CRC_Byte:
clrf CRC_Low
clrf CRC_High
movlw 09H
movwf v_Loop1
movf CRCByte, w
movwf CRC_High
CRC:
decfsz v_Loop1 &nbs
[1] [2] [3] [4] [5]
【計算法簡單實現(xiàn)crc校驗】相關(guān)文章:
簡單凸多邊形中軸算法改進(jìn)及實現(xiàn)04-28
線源擴(kuò)散模型的建立及算法實現(xiàn)05-02
CORDIC算法實現(xiàn)GPS信號捕獲研究04-28
PSORP航跡規(guī)劃算法設(shè)計與實現(xiàn)04-27