OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2773|回复: 0

串口数据帧间隔时间的计算

[复制链接]

2

主题

4

帖子

0

精华

新手上路

积分
25
金钱
25
注册时间
2016-11-21
在线时间
2 小时
发表于 2016-12-8 21:53:05 | 显示全部楼层 |阅读模式
本帖最后由 Manito 于 2016-12-9 11:44 编辑


Modbus 通讯时规定主机发送完一组命令必须间隔3.5个字符再发送下一组新命令,这个3.5字符主要用来告诉其他设备这次命令(数据)已结束,而这个3.5字符的时间间隔采用以下方式计算:
1个字符包括1位起始位、8位数据位(一般情况)、1位校验位(或者没有)、1位停止位(一般情况下)

这样说起来一般情况下1个字符就包括11位

那么3.5个字符就是3.5*11=38.5位

还有比如没有校验位的

1个字符包括1位起始位、8位数据位(一般情况)、1位停止位(一般情况下)

这样说起来一般情况下1个字符就包括10位

那么3.5个字符就是3.5*10=35位

波特率含义是每秒传输的二进制位的个数

比如9600bps,意思就是说每1秒(也就是1000毫秒)传输9600个位,

反过来说传输9600个二进制位需要1000毫秒

那么传输38.5个二进制位需要的时间就是:

38.5/9.6=4.0104167毫秒

MODBUS RTU要求一帧数据起始和结束至少有大于等于3.5个字符的时间

在波特率为9600的情况下,只要大于4.0104167毫秒即可!

一般,为了简单起见,可以将传输45Bit的时间四舍五入后的整型值作为两个数据帧之间的时间间隔,并以此来判断报文接收的完整性。

        出自   http://blog.csdn.net/lusirking

  

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 13:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表