本文以 Renesas Modbus RTU 解決方案為例,說明 Modbus RTU 的完整通訊流程,包含系統拓撲架構、UART 串列通訊參數設定,以及從站模式(Slave RTU Mode)下的資料收發與訊框處理機制。
Modbus RTU 系統拓撲架構
Modbus RTU 系統通常由一個主站設備與多個從站設備所組成。
系統架構包含:
- 1 個主站設備(PLC、Raspberry Pi 等)
- 多個從站設備(溫濕度傳送器及其他現場設備)
- RS485 半雙工差動匯流排
在此架構中,僅有主站能夠主動發送命令,而從站只能被動回應主站請求,並依循標準的 Request-Response 通訊機制進行資料交換。
Modbus UART 串列通訊參數

(圖片由 Renesas 提供)
1) Baud Rate(鮑率)
- 19200 bps
2) Data Length(資料長度)
- Modbus ASCII:7 Bits
- Modbus RTU:8 Bits
Modbus RTU 採用完整二進位位元組傳輸方式,這也是 RTU 與 ASCII 模式的重要差異之一。
3) Parity(同位元檢查)
- Even Parity (偶同位)
工業溫濕度傳送器最常採用 Even Parity 設定,實際應用中亦常見 No Parity 設定。
4.Stop Bit(停止位元)
- 1 Bit
5. Flow Control(流量控制)
- 不使用硬體流量控制
技術重點: 主站與所有從站的串列通訊參數必須完全一致,否則無法建立正常通訊。
Modbus RTU 透過串列埠時序判斷訊框邊界,因此 Baud Rate 會直接影響訊框識別所需的時間門檻。
Modbus RTU 通訊流程
以下為從站模式(Slave RTU Mode)的完整通訊流程。
1. Idle State(閒置狀態)
RS485 介面預設處於接收模式(P31 低電位)。
主站透過 1 秒定時器觸發資料傳送,而從站則持續監控匯流排狀態。
2. Transmission Phase(傳送階段)
主站或從站將 P31 腳位拉高。
UART 開始輸出包含 CRC 檢查碼的 Modbus RTU 二進位訊框。
3. Reception Phase(接收階段)
P31 腳位拉低後,系統切換至接收模式。
UART 逐位元組接收資料並存入緩衝區,同時由 TAU0 模組即時監控字元間隔時間。
4. Frame End Judgment(訊框結束判定)
當匯流排閒置時間達到或超過 3.5 個字元時間(3.5 Character Times)時,系統停止資料接收。
接收完成的資料隨後交由主程式進行解析。
5. Verification and Business Processing(驗證與業務處理)
系統依序執行以下處理流程:
- CRC 驗證
- 位址驗證
- 功能碼驗證
- 本地暫存器讀寫
- 建立對應回應訊框
6. Log Output(紀錄輸出)
所有收發訊框、錯誤紀錄及 Callback Event 均透過獨立的 UARTA0 介面輸出除錯資訊。
結論
Modbus RTU 採用主從式架構與 Request-Response 通訊機制,並透過 RS485 半雙工差動匯流排完成資料交換。
在實際應用中,主站與所有從站必須使用一致的 UART 參數設定,並依照閒置時間判定訊框邊界,完成 CRC 驗證、位址驗證、功能碼驗證及暫存器存取等流程,才能確保 Modbus RTU 通訊的正確性與可靠性。
