当前所在位置: 首页 > 计算机 > 正文

计算法简单实现crc校验

本文共计611个字,预计阅读时长3分钟。【 字体:

论文指导服务

毕业论文网专业团队提供毕业设计、论文写作指导及相关咨询服务

论文指导 毕业设计 答辩咨询
微信号已复制到剪贴板

计算法简单实现crc校验

前一段时间做协议转换器的时间用到CRC-16校验,查了不少资料发现都不理想。查表法要建表太麻烦,而计算法觉得那些例子太罗嗦。最后只好自己写了,最后发现原来挺简单嘛:)

两个子程序搞定。这里用的多项式为:

CRC-16    = X16 + X12 + X5 + X0 = 2^0+2^5+2^12+2^16=0x11021

因最高位一定为“1”,故略去计算只采用0x1021即可

CRC_Byte:计算单字节的CRC值

CRC_Data:计算一帧数据的CRC值

CRC_High  CRC_Low:存放单字节CRC值

CRC16_High  CRC16_Low:存放帧数据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] 

阅读全文