打印

请教 MODBUS RTU 模式下数据间时间间隔问题

[复制链接]
9018|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
gunsjhon|  楼主 | 2008-8-20 17:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
 MODBUS RTU方式
数据基本格式如下:
地址  功能代码    数据数量    数据1    ...数据n    CRC高字节    CRC低字节

帧定界 :MODBUS RTU方式下,每两个字符之间发送或者接收的时间间隔不能超过1.5倍 字符传输时间。如果两个字符时间间隔超过了3.5倍的字符传输时间,规约就认为一帧数据已经接收,新的一帧数据传输开始。
问题:
   1、在软件过程中如何实现时间的判断?
   2、严格定义数据之间的时间有何意义?比如不去考虑数据之间的时间而实现通讯,会有什么弊端和好处,或者在什么情况下可以不去考虑数据间的时间间隔问题?
  

相关帖子

沙发
luckyjjjjj| | 2008-8-20 20:54 | 只看该作者

。。

1,从收到第一个字符,规定时间内没收到新的字符就算1帧完了

使用特权

评论回复
板凳
yewuyi| | 2008-8-21 09:30 | 只看该作者

好处就是简单

使用特权

评论回复
地板
mpuhome| | 2008-8-21 09:43 | 只看该作者

一般的UART都有这个功能

两个字符时间间隔超过了3.5倍的字符传输时间,会有一个中断的
如果没有此功能,只能根据最高波特率计算出时间,然后用定时中断判断

使用特权

评论回复
5
zyok| | 2008-8-21 12:36 | 只看该作者

用时间间隔来判断一帧信息的起始...

使用特权

评论回复
6
yewuyi| | 2008-8-21 13:06 | 只看该作者

哪家的UART有这个功能?呵呵,都是自己的代码判断的把

mpuhome 发表于 2008-8-21 09:43 侃单片机 ←返回版面    

4楼: 一般的UART都有这个功能 

两个字符时间间隔超过了3.5倍的字符传输时间,会有一个中断的
如果没有此功能,只能根据最高波特率计算出时间,然后用定时中断判断

 
 

使用特权

评论回复
7
yewuyi| | 2008-8-21 15:55 | 只看该作者

TO LS

那就不能说是‘一般的UART’都带了,呵呵,8BIT/16BIT的好象基本上都不带的啊。。。

使用特权

评论回复
8
yhb8686725| | 2010-11-17 10:12 | 只看该作者
你好   我现在也在做这个,就是MCGS与DSP用Modbus通信,但是如果在组态里面同时设置一区寄存器和4区寄存器的话就不能正常通信,单独设置任何一个寄存器通道却可以,这是咋回事呢?

使用特权

评论回复
9
yuxuefly| | 2013-8-19 16:48 | 只看该作者

使用特权

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

本版积分规则

11

主题

17

帖子

0

粉丝