专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
LabView
新人求助,CRC码的验证
2019-07-18 03:50
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
LabVIEW
5054
2
1335
学校里做毕设,设计
Modbus
通信协议
的传输设计,老师给的实验说明书里面有个《串口通讯中MODBUS的应用实验》,按实验步骤做下来得到如图的结果,请问如何判断
通信
是否成功?
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
lleaf
1楼-- · 2019-07-18 05:09
这个具体可以查看国标 GB/T 19582-2008 《基于Modbus协议的工业自动化网络规范》
一共三部分
整体过程比较长,不太好黏贴上来,可以自己查看下。。。
2.5.1.2 CRC 校验
在RTU 模式包含一个对全部报文内容执行的,基于循环冗余校验 (CRC - Cyclical Redundancy
Checking) 算法的错误检验域。CRC 域检验整个报文的内容。不管报文有无奇偶校验,均执行此检
验。
CRC 包含由两个8 位字节组成的一个16 位值。
CRC 域作为报文的最后的域附加在报文之后。计算后,首先附加低字节,然后是高字节。CRC
高字节为报文发送的最后一个子节。
附加在报文后面的CRC 的值由发送设备计算。接收设备在接收报文时重新计算CRC 的值,
并将计算结果于实际接收到的CRC 值相比较。如果两个值不相等,则为错误。
CRC 的计算, 开始对一个16 位寄存器预装全1。然后将报文中的连续的8 位子节对其进行后
续的计算。只有字符中的8个数据位参与生成CRC 的运算,起始位,停止位和校验位不参与CRC
计算。
CRC 的生成过程中, 每个 8–位字符与寄存器中的值异或。然后结果向最低有效位(LSB)方向
移动(Shift) 1位,而最高有效位(MSB)位置充零。然后提取并检查LSB:如果LSB 为1, 则寄存
器中的值与一个固定的预置值异或;如果LSB 为 0, 则不进行异或操作。
这个过程将重复直到执行完8 次移位。完成最后一次(第8 次)移位及相关操作后,下一个8
位字节与寄存器的当前值异或,然后又同上面描述过的一样重复8 次。当所有报文中子节都运算之
后得到的寄存器忠的最终值,就是CRC。
当 CRC 附加在报文之后时,首先附加低字节,然后是高字节。在附录B 含有CRC 生成的详
细示例。
加载中...
280011311
2楼-- · 2019-07-18 06:30
精彩回答 2 元偷偷看……
加载中...
一周热门
更多
>
相关问题
怎么利用公式波形产生所想要的波形
2 个回答
USBCAN-2A与PCI5121D的数据通信
1 个回答
labview调用c时遇到问题
1 个回答
大家帮小弟解决下问题,不胜感激
4 个回答
关于labview插值
1 个回答
菜鸟问题,求助不同类型处理方法~
4 个回答
菜鸟的问题labview中子程序的调用
1 个回答
关于labview作图的新手问题,求指教...
2 个回答
相关文章
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
LabView
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
一共三部分
整体过程比较长,不太好黏贴上来,可以自己查看下。。。
2.5.1.2 CRC 校验
在RTU 模式包含一个对全部报文内容执行的,基于循环冗余校验 (CRC - Cyclical Redundancy
Checking) 算法的错误检验域。CRC 域检验整个报文的内容。不管报文有无奇偶校验,均执行此检
验。
CRC 包含由两个8 位字节组成的一个16 位值。
CRC 域作为报文的最后的域附加在报文之后。计算后,首先附加低字节,然后是高字节。CRC
高字节为报文发送的最后一个子节。
附加在报文后面的CRC 的值由发送设备计算。接收设备在接收报文时重新计算CRC 的值,
并将计算结果于实际接收到的CRC 值相比较。如果两个值不相等,则为错误。
CRC 的计算, 开始对一个16 位寄存器预装全1。然后将报文中的连续的8 位子节对其进行后
续的计算。只有字符中的8个数据位参与生成CRC 的运算,起始位,停止位和校验位不参与CRC
计算。
CRC 的生成过程中, 每个 8–位字符与寄存器中的值异或。然后结果向最低有效位(LSB)方向
移动(Shift) 1位,而最高有效位(MSB)位置充零。然后提取并检查LSB:如果LSB 为1, 则寄存
器中的值与一个固定的预置值异或;如果LSB 为 0, 则不进行异或操作。
这个过程将重复直到执行完8 次移位。完成最后一次(第8 次)移位及相关操作后,下一个8
位字节与寄存器的当前值异或,然后又同上面描述过的一样重复8 次。当所有报文中子节都运算之
后得到的寄存器忠的最终值,就是CRC。
当 CRC 附加在报文之后时,首先附加低字节,然后是高字节。在附录B 含有CRC 生成的详
细示例。
一周热门 更多>