12
CRC码的计算方法是:
1.预置1个16位的寄存器为十六进制FFFF(即全为1);称此寄存器为CRC寄存器;
2.把第一个8位二进制数据(既通讯信息帧的第一个字节)与16位的CRC寄存器的低8位相异或,把结果放于CRC寄存器;
3.把CRC寄存器的内容右移一位(朝低位)用0填补最高位,并检查右移后的移出位;
4.如果移出位为0:重复第3步(再次右移一位);
如果移出位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或;
5.重复步骤3和4,直到右移8次,这样整个8位数据全部进行了处理;
6.重复步骤2到步骤5,进行通讯信息帧下一个字节的处理;
7.将该通讯信息帧所有字节按上述步骤计算完成后,得到的16位CRC寄存器的高、低字节进行交换;
8.最后得到的CRC寄存器内容即为:CRC码。
13
通讯错误信息及数据的处理:
当SPC表检测到除了CRC码出错以外的错误时,必须向主机回送信息,功能码的最高位置为1,即从机返送给主机的功能码是在主机发送的功能码的基础上加128 。三相有功功率变送器删除以下的这些代码表明有意外的错误发生。
SPC从主机接收到的信息如有CRC错误,则将被SPC表忽略。
SPC返送的错误码的格式如下(CRC码除外):
地址码: 1字节
功能码: 1字节(最高位为1)
错误码: 1字节
CRC码:2字节。
SPC响应回送如下错误码:
81.非法的功能码。
接收到的功能码SPC表不支持。
82.非法的数据位置。
指定的数据位置超出SPC表的范围。
83.非法的数据值。
接收到主机发送的数据值超出SPC相应地址的数据范围。
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/dianqi/article-46242-2.html
默默祝福你