RTU 模式采用CRC(Cyclical Redundancy Check)侦误值。 CRC 侦误值计算以下列步骤说明: 步骤一:载入一个内容为 FFFFH 之16-bits 寄存器,称之为『CRC』寄存器。 步骤二:将指令信息的第一个位组与16-bits CRC 寄存器的低位组进行Exclusive OR 运 算,并将结果存回CRC 寄存器。 步骤三:检查 CRC 寄存器的最低位(LSB),若此位为0,则右移一位;若此位为1, 则CRC 寄存器值右移一位后,再与A001H 进行Exclusive OR 运算。 步骤四:回到步骤三,直到步骤三已被执行过 8 次,才进到步骤五。 步骤五:对指令信息的下一个位组重复步骤二到步骤四,直到所有位组皆完全处理过, 此时CRC 寄存器的内容即是CRC 侦误值。 说明:计算出 CRC 侦误值之后,在指令信息中,须先填上CRC 的低位,再填上CRC 的高位,请参考以下例子。 例如:从局号为01H 伺服驱动器的0101H 地址读取2 个字(word)。从ADR 至数据数 的最后一位组所算出的CRC 寄存器的最后内容为3794H,则其指令信息如下所示,须注 意的是94H 于37H 之前传送。
2021-08-25 17:59:39 3KB Modbus RTU CRC校验CRC值
1