T1.5和T3.5时间是实现RTU接收驱动程序过程中非常重要的两个概念。
其中T1.5是用来描述同一modbus报文帧内部两个字符之间的传输间隔时间(实际工程应用中T1.5机制使用比较少,本文忽略)T1.5的图示如下:
重点讲下T3.5。T3.5是用来描述两个不同modbus报文帧之间的传输间隔时间(当前数据帧的结束字符与下一个数据帧的起始字符传输时间间隔)
Modbus-RTU通讯建立在底层串口通讯的基础之上。当串口的一个接收中断到来表明已完成一个字符的接收。Modbus-Rtu通讯是连续的字符流。
那么就引出一个问题,在连续的字符流之中如何判断一帧数据的起始和结束呢???
要解决以上的这个问题,Modbus-Rtu引入了一个“T3.5”的时间间隔。在串口接收的连续字符流之中若出现两个字符之间的接收时间间隔超过3.5个字符时间,则判断为两个数据帧的间隔。接收驱动程序上实现的思路是:
串口在接收到一个字符(假设字符’a’)时便开始计时,时间记为Time1,在接收到下一个字符(假设字符‘b’)时,时间记为Time2。如果Time2 - Time1的时间差值大于3.5个字符时间,则判断字符‘b’为下一数据帧的起始字符。字符‘a’为本帧数据的结束字符。
T3.5 的图示如下:
不同的波特率下,数据帧之间的传输时间间隔是不一样的
具体的计算方法请参考博客 :
如何计算T3.5时间间隔
其它有关T3.5,T1.5的参考博客: