Modbus-RTU协议中有字符时间的概念。Modbus-RTU总线通过时间间隔判断一帧数据的结束,3.5在两个字符的周期内没有接收到新数据,则认为该帧结束。什么是字符时间?准确的说,应该是在偶校验的情况下发送一个字节数据的时间。
在RTU (Remote Terminal Unit)模式下,串行链路以字节为单位向单元发送数据。但是Modbus-RTU协议中有字符时间的概念,Modbus-RTU总线通过时间间隔判断一帧数据的结束,3.5在两个字符的周期内没有收到新的数据,到此结束框架被考虑。为什么这个时间叫“字符时间”,而不叫“字节时间”呢,这只是串口发送的一个字节(字节)你玩得开心吗?
你打赌,这个“字符时间”通过串口发送一个字节(字节)数据所花费的实际时间,但孔炳火(公众号:孔炳火)认为,这不是真的,原因如下。根据Modbus国家标准对RTU传输方式的规定,传输一个字节(byte)的数据,占用11 个位置位,1 个起始位,8 个数据位,1 个校验位,1 个停止位。并且需要偶校验,默认模式必须是偶校验,但为了增加设备兼容性,奇校验和不校验也是允许的,但不校验,停止位必须设置为2位。由此可以看出,一个字符时间是发送11个位置位的时间。如果是这样:“字符时间”是串口在偶校验的情况下发送一个字节(byte)数据所花费的实际时间,即11个单独位的时间。
扩展一下,Modbus-RTU有时把通讯参数设置为8位,1位停止位,没有验证,其实不严谨,虽然也能通讯成功。如果所有的Modbus设备都严格遵循11 个单独的位字符时间,就相当于我们统一了判断帧尾时间间隔的标准,有利于Modbus 通信的稳定性。