基于LabVIEW的Modbus协议两种校验码的实现方法

2011-11-30 11:33:20来源: 互联网
基于LabVIEWModbus协议两种校验码的实现方法

介绍基于LabVIEW的Modbus协议两种校验码的实现方法,该方法可在基于PC机的测控系统中加以实际运用。
  关键词:Modbus协议;LabVIEW;CRC校验;LRC校验

  下面仅讨论与本文有关的Modbus协议的内容。
1.1Modbus协议的数据传输方式
  Modbus协议定义了两种数据传输方式,即ASCII模式和RTU模式(表1、表2)。控制器可以设置为两种传输方式(ASCII或RTU)中的任何一种,在标准的Modbus网络中进行通信。用户可选择想要的模式,包括串口通信参数(波特率、检验方式等);在配置每个控制器的时候,在一个Modbus网络上的所有设备都必须选择相同的传输模式和串口参数。
?
1.2.1ASCII帧
  使用ASCII模式,消息以冒号(:)字符(ASCII码3AH)开始,以回车换行符结束(ASCII码0DH,0AH)。
  其他域可以使用的传输字符是十六进制的0…9,A…F。网络上的设备不断侦测“:”字符,当有一个冒号接收到时,每个设备都解码下个域(地址域)来判断是否发给自己。
  消息中字符间发送的时间间隔最长不能超过1s,否则接收的设备将认为传输错误。一个典型消息帧如表3所示。
?
?
  选用ASCII模式作字符帧,错误检测域包含两个ASCII字符。这是使用LRC(纵向冗余检测)方法对消息内容计算得出的,不包括开始的冒号符及回车换行符。LRC字符附加在回车换行符前面。?
1.3.2RTU模式
  选用RTU模式作字符帧,错误检测域包含一16Bits值(用两个8位的字符来实现)。错误检测域的内容是通过对消息内容进行循环冗余检测得出的。CRC域附加在消息的最后,添加时先是低字节然后是高字节。故CRC高字节是发送消息的最后一个字节。
1.4Modbus的数据校验方式
1.4.1CRC-16(循环冗余错误校验)
  冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。
  在进行CRC码计算时只用8位数据位。起始位、停止位、奇偶校验位都不参与CRC码计算。
  计算CRC码的步骤为:
  ① 预置16位寄存器为十六进制FFFF(即全为1)。称此寄存器为CRC寄存器。
  ② 把第一个8位数据与16位CRC寄存器的低位相异或运算,把结果放于CRC寄存器。
  ③ 把寄存器的内容右移一位,用0填补最高位,检查最低位。
  ④ 如果最低位为0:重复第3步,再次右移一位;如果最低位为1:CRC寄存器与多项式A001(1010 0000 0000 0001)进行异或运算。
  ⑤ 重复步骤③和④,直到右移8次,这样整个8位数据全部进行了处理。
  ⑥ 重复步骤②到⑤,进行下个8位数据的处理。
  ⑦ 最后得到的CRC寄存器的值即为CRC码。
  ⑧ 将CRC码分成高8位和低8位,按低位在先,高位在后,将它们加到传送数据之后。
1.4.2LRC(纵向冗余错误校验)
  LRC错误校验用于ASCII模式。这个错误校验码是一个8位二进制数,可作为2个ASCII十六进制字节传送。计算LRC码时,仅设备地址、功能代码、数据块字节参加运算,而冒号(:)、回车符号(CR)、换行字符(LF)不参加运算。具体计算LRC码的步骤为:
  ① 需运算的所有字节相加,所得之和丢弃进位。
  ② 将上步计算出的8位字节取反或由FFH减去该8位字节。
  ③ 将取反后的值加1即为LRC码。
  接收端判断接收到的信息是否正确的简单方法是:将除冒号(:)、回车符号(CR)、换行字符(LF)以外的所有字节,包括LRC码相加并丢弃进位,若结果为0,则表明信息传送正确,否则出错。?
  遵照1.4.1节中计算CRC码的步骤进行软件设计如图1所示。

关键字:基于LabVIEW  Modbus协议  校验码

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2011/1130/article_13253.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
基于LabVIEW
Modbus协议
校验码

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved