crc16.vi是遵循crc16-modbus规则,使用0x8005(A001)作为多项式,初始值为0xFFFF,结果与0x0000异或的图形化编程算法;
crc16node.vi是遵循crc16-modbus规则,使用0x8005(A001)作为多项式,初始值为0xFFFF,结果与0x0000异或的公式节点编程算法;
crc16HJ212-2017.vi是遵循crc16-USB规则,使用0x8005(A001)作为多项式,初始值为0xFFFF,结果与0xFFFF异或的公式节点编程算法;
目前crc16同crc16node采用的是常见主流算法,但是污染气体在线数据传输国标HJ212-2017中给出的例子与crc16HJ212-2017采用算法的计算结果一致,所以项目中的crc校验算法均需与crc16HJ212-2017保持一致。
以上均使用直接计算法,优点是算法与原理完全一样,简单易懂,缺点是运算周期相较于完整校验表查表法和部分校验表查表法来说比较长,在要求高速通讯环节可能会影响传输速度。不过对于本项目应用场景(待校验数据长度、数据发送频率、服务器性能)来说这三种算法的时长都不足一个毫秒,所以目前仍采用直接计算方法,如后期需要可改为查表法。
1