-
如何计算Modbus RTU协议中的CRC校验详细步骤及CRC值
资源介绍
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 之前传送。