上面的讨论可通过硬件或软件实现。硬件实现需要建立-个多段的基于生成多项式的移位寄存器。循环冗余校验寄存器为了生成CRC,信息数据位被送进移位寄存器,一次–位。寄存器包含-一个预设值。当每个数据位都已经移进移位寄存器时,所有的位都向右移。LSB和数据位进行XOR运算,结果是:和位1原来的内容XOR(结果放在位0),和位14原来的内容XOR(结果放在位13),最后LSB被移进位15。这样重复执行,直到一个信息里的所有数据位都被处理完。CRC-16软件执行将在下一节中叙述。
当信息被发送,接收装置对所有的数据位和发送CRC执行相同的CRC操作,。如果信息准确被接收,余数(CRC)为0.CRC计算举例RTU设备首先发送最右边的字节(寄存器的或离散数据的)。发送CRC-16的第一位是MSB.因此,例中CRC多项式的MSB在最右边。X”项被丢掉,因为,它只影响商(被丢弃)而不影响余数(CRC字符)。生成的多项式是1010 0000 0000 0001。把余数全部初始化为1。查询不允许使用地址0,因为这不能是–个广播请求。功能代码是01.开始点编号是双字节长,可以是任何小于附属CPU里最高输出点有效编号的值。
GIDDINGS & LEWIS 502-03517-00 NSPP 5020351700
GIDDINGS & LEWIS 502-03907-02 NSFP 5020390702
GIDDINGS & LEWIS 572-03550-00 NSFP 5720355000