MODBUS RTU传输模式介绍

上期我们学习了,第一篇modbus协议基本介绍,今天我们来研究第二篇modbus rtu传输模式介绍。
第二篇 modbus rtu传输模式介绍
当设备使用 rtu(remote terminal unit)模式在modbus串行链路通信,消息中每个8位域都是由两个十六进制字符组成。该模式的主要优点是较高的数据密度,在相同的波特率下比ascii模式有更高的吞吐率。rtu模式的每个报文必须以连续的字符流传送。
rtu模式每个字节(11位)的格式
编码系统:8 位二进制,报文中每个 8 位字节含有两个 4 位十六进制字符(0-9,a-f)。每字节 bit 流:1 起始位、8 数据位,首先发送最低有效位、1 位奇偶检验、1 停止位。偶校验是要求的,其它模式(奇校验、无校验)也可以使用,为了保证兼容性,同时支持无校验模式是建议的。默认校验模式必须为偶校验。
字符如何串行传送:
每个字符或字节均由此顺序发送(从左到右),最低有效位(lsb)…最高有效位(msb)。
rtu模式位序列
设备配置为奇校验、偶校验或无校验都可以接受,如果无奇偶校验,就传送一个附加的停止位以填充字符帧。
rtu模式位序列(无校验的特殊情况)
帧检验域: 循环冗余检验(crc)。
帧描述:
rtu报文帧
modbus报文rtu帧
由发送设备将 modbus 报文构造为带有已知起始和结束标记的帧。这使设备可以在报文的开始接收新帧,并且知道何时报文结束。不完整的报文必须能够被检测到,而错误标志必须作为结果被设置。
在 rtu 模式中,报文帧由时长至少为 3.5 个字符时间的空闲间隔区分。在后续部分,这个时间区间被称为 t3.5。
整个报文帧必须以连续的字符流发送。
如果两个字符直接的空闲间隔大于 1.5 个字符时间,则报文被认为不完整应该被接收设备丢弃,如图:
非正常报文帧
注:rtu 接受驱动程序的实现,由于 t1.5 和 t3.5 的定时,隐含了大量的对中断的管理。在高速通信速率下,这导致 cpu 负担加重。因此,在通信速率等于或低于 19200bps 时,这两个定时必须严格遵守;对于波特率大于 19200bps 的情形,应该使用 2 个定时的固定值:建议的字符间超时时间(t1.5)位 750us,帧间的超时时间(t1.5)位 1.750ms。
下图表示了对 rtu 传输模式状态图的描述。“主设备”和“从设备”的不同角度均在相同的图中表示:
1.从“初始”态到“空闲”态转换需要 t3.5 定时超时:这保证帧间延迟。
2.“空闲”态是没有发送和接收报文要处理的正常状态。
3.在 rtu 模式,当没有活动的传输的实际间隔打达 3.5 个字符长时,通信链路被认为在“空闲”态。
4.在链路空闲时,在链路上检测到的任何传输的字符都被识别为帧起始。链路变为“活动”状态。然后,当链路上没有字符传输的时间间隔达到 t3.5 后,被识别为帧结束。
5.检测到帧结束后,完成 crc 计算和校验。然后,分析地址域以确定帧是否发往此设备,如果不是,则丢弃此帧。为了减少接收处理时间,地址域可以在一接到就分析,而不需要等到整个帧结束。这样,crc 计算只需要在帧寻址到该节点(包括广播帧)时进行。
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)方向移动 1 位,而最高有效位(msb)置 0.然后提取并检查 lsb:如果lsb 为 1,则寄存器中的值与一个固定的预置值异或;如果lsb 为 0,则不进行异或操作。
这个过程将重复直到执行完 8 次移位,完成最后一次(第八次)移位及相关操作后,下一个 8 位字节与寄存器的当前值异或,然后又同上面描述过的一样重复 8 次。当所有报文中字节都预算之后得到的寄存器中的最终值,就是 crc。
简单代码如下:

IDC带你解读2015年十大科技发展趋势
超声波多普勒流速流量仪
TCL实力展现硬核音画质,全球首款最薄MiniLED电视
基于VL813芯片的USB3.0 HUB方案
商汤集团2021年实现营收47亿元
MODBUS RTU传输模式介绍
在FPGA上实现咬尾卷积码的最优算法设计
小米6X和红米6 Pro对比分析,看看两者之间到底有什么区别
国产“章鱼”第二版设计者说
通过触摸实现真实感的Piezo(压电)触觉反馈设备
太阳能MP3播放器(图)
基于区块链技术去中心化的场外交易平台商币平台介绍
不止渲染已久的魅族Pro7首款双面屏手机,还有p25一款神秘新机!
Nordic使能跟踪网关设备新产品的介绍和应用说明
漫谈BTO 笔记本电脑DIY常识课
5G环境下国内光模块将有更大的机会向高端光模块市场发力
关于移动设备快充的方法的分析和应用
首创•中传 首届文创校友沙龙暨中国传媒大学校友创业联合会筹备会 互联网资讯
PLC程序解锁解码的详细介绍
晶振的基本性能及应用注意事项