文档库 最新最全的文档下载
当前位置:文档库 › 判断Modbus一帧数据结束的方法

判断Modbus一帧数据结束的方法

判断Modbus一帧数据结束的方法
1、modbus RTU如何编程,知道一帧数据结束.
先给定时器定时大概3.5个字符(更大点也可以),然后在串口的接收中断服务程序中,先将定时器的计数寄存器清零,然后重新开始定时器,如果接收的不是最后一个字节,那么在下个字节来的时候定时器就会又从零开始计数,如果后面再没有数据进来的话,定时器就会因为定时时间到而进入定时器中断,就表示数据接收结束了。
2、Modbus通讯判断通讯结束3.5个字符的含义:
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毫秒即可!


相关文档
相关文档 最新文档