CRC16校验码运算

CRC寄存器一开始填充为16位1111 1111 1111 1111 然后将CRC寄存器的低8位1111 1111与报文数据第一个八位数据进行异或运算,报文可以是主站发送的功能码,或者是从站反馈的功能码。得出的8位数据结果与CRC校验的高八位1111 1111合并,例如助手发送的十进制码第一个八位数据为03即0000 0011,与CAR低八位1111 1111异或为1111 1100,合并后为11111111 11111100
将合并后的数据与二项式进行异或运算 。计算中,先将低位移出去再进行判断,如果移出去的是0,则右移不异或,如果移出去的是1,那么就与多项式进行异或,是16位的CRC寄存器与16位的二项式进行异或,注:二项式都是固定的。得出的最终结果,为16位的数据。再将这16位的数据低八位与报文数据的第二个八位数据进行异或,异或完了以后再和高八位合并,步骤与第一次相同,将所有的数据异或完成以后,得出的最终结果,则是校验码!二项式二项式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CRC16校验码计算器是一种用于检测数据传输中错误的校验工具。CRC16即循环冗余校验码,它利用多项式除法来生成校验码计算器的工作原理是将要传输的数据按照特定的算法进行处理,生成一个16位的校验码。接收方在接收到数据后,再次对接收到的数据按照相同的算法进行处理,并将生成的校验码与传输过来的校验码进行比较。如果两个校验码匹配,则表示数据传输无误;如果不匹配,则说明数据传输存在错误。 CRC16校验码计算器的具体步骤如下: 1. 首先,选择一个16位的生成多项式。常用的有CRC-16-CCITT、CRC-16-Modbus等多项式。 2. 将要传输的数据按照字节进行切分,并将每个字节转换为对应的二进制值。 3. 初始化一个16位的寄存器为全1。 4. 将第一个字节的二进制值与寄存器的低8位进行异或运算,并将运算结果更新到寄存器中。 5. 对寄存器中的每一位进行判断,如果为1,则将寄存器的值向右移动1位,并与生成多项式进行异或运算;如果为0,则只向右移动1位。重复此步骤,直到寄存器中的所有位都被处理完毕。 6. 重复第4步和第5步,将每个字节的二进制值与寄存器的值进行运算,直到所有字节都被处理完毕。 7. 最后,寄存器中的值即为生成的CRC16校验码。 通过CRC16校验码计算器,我们可以快速、高效地检测数据传输过程中是否发生了错误。它广泛应用于网络通信、存储设备以及其他数据传输领域,保障了数据的准确性和完整性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值