打印

Modbus RTU模式下,T3.5时间问题

[复制链接]
3457|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
3htech|  楼主 | 2015-3-19 12:24 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Modbus-RTU模式下,从机接收到一帧的最后一字节数据时,需要等待T3.5(3.5个字符时间)来确认这一帧数据传输完成;

这个T3.5(3.5个字符时间)的时间到底是如何计算的?

RTU模式下,一字节里面是有2个十六进制字符的,这样算的话的   T3.5 = 3.5/2   *11 / 波特率。
但是我从网上看到许多计算T3.5的方法是   T3.5 = 3.5 * 11 / 波特率,即认为一字节是一个字符。
到底哪种方法modbus_RTU所规定的??

另:我从modbus.org上看到下面这一段话
Remark :
The implementation of RTU reception driver may imply the management of a lot of interruptions due to the t1.5 and t3.5 timers. With
high communication baud rates, this leads to a heavy CPU load. Consequently these two timers must be strictly respected when the
baud rate is equal or lower than 19200 Bps. For baud rates greater than 19200 Bps, fixed values for the 2 timers should be used: it is
recommended to use a value of 750μs for the inter-character time-out (t1.5) and a value of 1.750ms for inter-frame delay (t3.5).
【小于等于19200时,严格按照T3.5和T1.5来进行,高于19200时,T3.5应使用固定值1.75ms】

从1.75ms算的话,貌似modbus.org是按T3.5 = 3.5 * 11 / 波特率。哪种方法modbus_RTU所规定的?

相关帖子

沙发
我滴神啊| | 2015-3-19 13:10 | 只看该作者
一个字节是一个字符。
实际运用中有时候需要更大一点比如3.8
再包括处理时间,串口本身的影响等115200波特率一次完整问答大概速率位200次/秒

使用特权

评论回复
板凳
3htech|  楼主 | 2015-3-20 10:15 | 只看该作者
帖子别沉了!!!

使用特权

评论回复
地板
3htech|  楼主 | 2015-3-20 10:17 | 只看该作者
我滴神啊 发表于 2015-3-19 13:10
一个字节是一个字符。
实际运用中有时候需要更大一点比如3.8
再包括处理时间,串口本身的影响等115200波特 ...

我就是对这里的“字符”理解不准。

RTU模式下,一字节里有2个16进制字符;ASCII模式下,一个字节是一个字符。

所以,我就有点晕了。

使用特权

评论回复
5
gx_huang| | 2015-3-20 13:41 | 只看该作者
这个字符时间,肯定是串口传送一个字节的时间。

使用特权

评论回复
6
henglin| | 2016-9-2 15:13 | 只看该作者

使用特权

评论回复
7
bomisme| | 2016-9-2 16:14 | 只看该作者
“RTU模式下,一字节里有2个16进制字符;ASCII模式下,一个字节是一个字符” 看来楼主的确是晕掉了,字节和ASCII有什么关系呢?ASCII是编码,类似UTF什么的,比如你可以用0x30表示 ASCII字符'0',0x30从人类书写角度看是2个字节,但这个在内存里面却就是一个8比特的字节而已。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:我是一颗小白菜~!

20

主题

416

帖子

3

粉丝