CRC校验计算子程序

时间:2023-03-16作者:佚名
TITLE=子程序注释
// CRC-16码由两个字节构成,在开始时CRC寄存器的每一位都预置为1,然后把CRC寄存器与8-bit的数据进行异或,之后对CRC寄存器从高到低进行移位,在最高位(MSB)的位置补零,而最低位(LSB),移位后已经被移出CRC寄存器)如果为1,则把寄存器与预定义的多项式码(16#A001)进行 异或,否则如果LSB为零,则无需进行异或。重复上述的由高至低的移位8次,第一个8-bit数据处理完毕,用此时CRC寄存器的值与下一个8-bit数据异或并进行如前一个数据似的8次移位。所有的字符处理完成后CRC寄存器内的值即为最终的CRC值。
//   下面为CRC的计算过程:
//   1.设置CRC寄存器,并给其赋值FFFF(hex)。
//   2.将数据的第一个8-bit字符与16位CRC寄存器的低8位进行异或,并把结果存入CRC寄存器。
//   3.CRC寄存器向右移一位,MSB补零,移出并检查LSB。
//   4.如果LSB为0,重复第三步;若LSB为1,CRC寄存器与多项式码相异或。
//   5.重复第3与第4步直到8次移位全部完成。此时一个8-bit数据处理完毕。
//   6.重复第2至第5步直到所有数据全部处理完成。
//   7.最终CRC寄存器的内容即为CRC值。
//
// 输入参数:
// 待校验数据区指针,第一个字节为数据长度
// LD0 DataBuff IN DWORD
Network 1
LD SM0.0
MOVW 16#FFFF, AC0 //初始化CRC寄存器
BTI *LD0, LW4 //数据缓冲区第一个字节为数据长度
MOVD LD0, LD6
INCD LD6 //指针指向第一个待处理字节
Network 2
LD SM0.0
FOR AC2, 1, LW4 //开始循环处理每一个字节
Network 3
LD SM0.0
XORB *LD6, AC0 //字节首先与CRC寄存器低位进行异或
Network 4
LD SM0.0
FOR AC1, 1, 8 //移位处理循环,处理一个字节的8位
Network 5
LD SM0.0
SRW AC0, 1 //CRC寄存器右移一位
Network 6
LD SM1.1 //如果移出位为0,则进入下一次循环
XORW 16#A001, AC0 //如果移出位为1,CRC寄存器与多项式16#A001异或
Network 7
NEXT
Network 8
LD SM0.0
INCD LD6 //指针加1指向下一个字节
Network 9
NEXT
Network 10
LD SM0.0
SWAP AC0 //交换CRC寄存器高低字节
MOVW AC0, *LD6 //CRC校验值写入数据区结尾

相关阅读

多种电流源电路及差分放大电路的分析方法

学习各种电流源电路及差分放大电路的分析方法。 一.电流源 (1)镜像电流源   (2)改善的镜像电流源 (2)比例式电流源 (2)微电流源 二.差分放大电路 差分放大电路就其功能...
2023-06-01
多种电流源电路及差分放大电路的分析方法

某工程的机电安装各分部优秀做法,值得借鉴

本工程有冷冻机房、热交换机房、空调机房、生活水泵房 、热回收机房、消防泵房等各类机房共计84间,机房多,安装工艺复杂,设备分批进场周期长。 针对机电设备及管线种类繁多、...
2023-06-11
某工程的机电安装各分部优秀做法,值得借鉴

开关接线很难?3分钟教你会接电灯拉线开关、按键开关、手捏开关

开关接线很难?3分钟教你会接电灯拉线开关、按键开关、手捏开关。本文讲解电灯电路、电灯单控接法及原理,电灯拉线开关、按键开关、手捏开关的安装方法。 1、 电灯单控接法及原...
2023-06-11

我们是谁?电工!火了朋友圈!来自电工心里的呐喊!

电工就像灭火器,是用来救急的,但事实上,不会有人愿意看见你闲着。电工是万金油,哪里有事哪有咱。 最近,一张据说是吐槽甲方最狠的图片在广告圈广为流传。 随后,文案版、...
2023-06-11

涨知识:一度电从电厂送到你家还剩多少?

一度电从发电厂发出来,再送到你家,这中间会损失多少、耗去多少呢? 今天就跟大家聊聊这件事~ 输电的损耗 是怎么产生的 线损这个词,电力行业的小伙伴们一定是再熟悉不过了,...
2023-06-11
涨知识:一度电从电厂送到你家还剩多少?

热销商品

德国进口雅马哈风力灭火机大功率手提森林灭火器落叶工地吹雪机汽

德国进口雅马哈风力灭火机是一款高效、可靠的森林灭火和清理设备。它拥有大功率风机,能够迅速吹散落叶、杂草和积雪,有效清理工地和森林地面。这款灭火机采用先进技...
¥ 692.5

3M自粘橡胶条高硬度耐压实心幕墙玻璃舞台搭建货架专用减震密封条

3M自粘橡胶条是一款专为高要求工业及建筑场景设计的高性能密封减震材料,采用高硬度实心橡胶材质,具备优异的耐压性、抗老化性和持久弹性。其独特的自粘背胶设计,安装...
¥ 1.6

公牛官方旗舰店开关插座空调16A插座五孔10A面板暗装多孔G12白灰

公牛官方旗舰店提供一系列高质量的开关插座和空调配件。这款16A插座五孔面板采用暗装设计,适用于多种安装环境,如墙面、天花板等。它具有10A的电流容量,可以满足家庭...
¥ 5.55

电位器旋钮电流调节螺帽直流逆变电焊机二保焊送丝机通用旋钮B102

电位器旋钮电流调节螺帽适用于直流逆变电焊机和二保焊送丝机,是一款通用的旋钮B102。该旋钮采用优质材料制造,具有耐磨损、耐高温、耐腐蚀等特点,能够长时间稳定运行...
¥ 0.7

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店

西门子开关插座无框皓彩米绒白亚光二三插USB10A五孔一开旗舰店,作为西门子品牌的专卖店,提供了一系列高品质、设计新颖的家居电气产品。这里销售的开关插座采用无框...
¥ 8.77

网站栏目