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 通信的穩定性。