微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > Modbus协议的常用基本定义——(RS485总线系统应用之2)

Modbus协议的常用基本定义——(RS485总线系统应用之2)

时间:12-15 来源:互联网 点击:

2个字符

3.2 RTU帧

使用RTU模式,每帧消息发送至少要有3.5个字节时间的间隔停顿。不论在何种网络波特率下,这是最容易实现的(如下图的T1-T2-T3-T4所示)。传输的第一个域是设备地址。可以使用的传输字符是十六进制的0...9,A...F。网络上的设备不断侦测网络总线,当第一个域(地址域)接收到时,每个从设备都进行解码以判断是否发给自己。在最后一个传输字节之后,应至少停顿3.5个字节时间以表示消息结束。一个新的消息可在此停顿后再开始。

整个消息帧必须作为一个连续的流转输。如果在帧完成之前有超过1.5个字符时间的停顿时间,接收设备将刷新不完整的消息并假定下一字节是一个新消息的地址域。同样,如果一个新消息在小于3.5个字节时间内接着前个消息开始,接收的设备将认为它是前一消息的延续,这将导致一个错误,因为在最后的CRC域的值不可能是正确的。典型的消息帧如下所示:

起始位

设备地址

功能代码

数据

CRC校验

结束符

T1-T2-T3-T4

8Bit

8Bit

n个8Bit

16Bit

T1-T2-T3-T4

3.3地址域

消息帧的地址域包含两个字符(ASCII)或8Bit(RTU)。允许的从设备地址范围是十进制的0~247。主设备将要联络的从设备的地址放入消息中的地址域来选通从设备。当从设备发送回应消息时,它把自己的地址放入回应的地址域中,以便主设备知道是哪一个设备作出的回应。

地址0用作广播地址,以使所有的从设备都能认识。当Modbus协议用于更高水准的网络时,广播可能被禁止或以其它方式代替。

3.4功能域

消息帧中的功能码域包含了两个字符(ASCII)或8Bits(RTU)。可能的代码范围是十进制的1~255。有些功能码适用于所有控制器,有些仅适应用于某种控制器,还有些暂且保留以备后用,参见表1表2。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top