如何快速解決RS485網路通訊問題
RS-485總線的優勢已得到充分證實,並且具有隔離性。 RS-485模組 RS-485網路通常用於確保通訊穩定性。然而,在實際部署RS-485網路的過程中,可能會出現不同程度的通訊故障、錯誤發生或RS-485收發器損壞等問題。本文將深入分析這些網路問題的根本原因。
當發生通訊錯誤或通訊失敗時,首先要確定該應用程式是否屬於表中列出的應用場景。
表1 RS-485匯流排應用場景
| 數位 | 應用程式狀態 | 可能的原因 |
| 1 | 總線上有一個終端電阻,所使用RS-485收發器的閾值電平為±200mV。 | 端電阻使得空閒狀態下的AB差分電壓處於門檻範圍內。 |
| 2 | 節點上添加了上拉電阻和下拉電阻,例如,每個節點都添加了 680 Ω 的上拉電阻和下拉電阻。總線上有 10 個節點。 | 升壓電阻和降壓電阻的阻值太小,超過了晶片的驅動能力。 |
| 3 | CON 切換後立即發送或接收數據 | 發送和接收狀態切換的延遲時間太短 |
| 4 | 此5V模組採用3.3V電平的MCU供電 | 水平不匹配 |
表1列出了四個應用場景,分別對應於終端電阻、上拉/下拉電阻、控制引腳和邏輯輸入電平等問題。詳細分析如下。
1.終端電阻問題
如果將終端電阻器連接到 RS-485 匯流排,且 RS-485 收發器使用 ±200 mV 的閾值電平,則可能會出現表 2 中所述的異常現象。
表2 終端電阻引起的異常現象
| 數位 | 異常現象 |
| 1 | 單塊電路板在正常測試期間可以相互通信,但在連網後或與其他裝置連網後則無法相互通訊。 |
| 2 | 單板測試未通過,但更換RS-485模組後恢復正常。存在一定比例的故障。 |
| 3 | 單板透過 RS-232/485 雙向轉換器與上位機正常通訊(如圖 1 所示); 兩塊單板無法正常通訊; 如果在兩塊電路板上都添加 RS-232/485 雙向轉換器,通訊就會正常。 |

圖 1 RS232/485 雙向轉換器
終端電阻引起的異常原因:
RS-485收發器的接收閾值為±200 mV。具體來說,當AB兩點間的差分電壓超過+200 mV時,輸出為高電平;當差分電壓低於-200 mV時,輸出為低電平;當差分電壓在±200 mV範圍內時,輸出狀態不確定-可能輸出高電平(表示通訊正常),也可能輸出低電平(表示通信異常)。因此,當總線空閒且AB兩點間的差分電壓處於該閾值範圍內時,可能會出現通訊異常。
表 2 現象 1 分析:電路板通訊正常,但在連網後,RS-485 總線上存在終端電阻會導致總線上的差分電壓在閒置狀態下保持在閾值電平內,從而導致通訊異常。出現這種情況時,首先要檢查總線上是否有終端電阻。
表 2 現象 2 分析:在單板測試期間,當電路板或其通訊設備與終端電阻器連接時,如果 AB 之間的差分電壓在閾值範圍內,則可能會出現通訊異常。
表 2:現象 3 分析:此現像也是由端電阻引起的。 RS-232/485 雙向轉換器的 AB 接腳(如圖 1 所示)通常包含小阻值的上拉/下拉電阻(例如 560Ω)。當使用 RS-232/485 雙向轉換器進行通訊時,RS-485 匯流排空閒狀態下的電壓由上拉/下拉電阻和端電阻之間的分壓決定。在這種情況下,空閒狀態下的 AB 差分電壓超過 200 mV,使得 RS-485 收發器輸出穩定的高電平,而不會觸發通訊錯誤。圖 2 顯示了兩個 RSM485PCHT 之間的通信,AB 引腳之間連接了一個 60Ω 電阻,RS-232/485 雙向轉換器的測試波形;空閒電壓為 520 mV,避免了錯誤。圖 3 顯示了在兩個 RSM485PCHT 之間通訊時,AB 之間連接一個 60Ω 電阻的測試波形,結果顯示空閒時 AB 差分電壓為 40 mV - 在閾值範圍內 - 但仍可能導致通訊錯誤。

圖 2:在 AB 之間增加兩個 120Ω 電阻,並安裝 RS-232/485 雙向轉換器。

圖 3:AB 之間只增加了兩個 120Ω 電阻。
主要有三種求解方法,詳見表3:
表3 – 終端電阻問題的解決方案
| 數位 | 解決方案 |
| 1 | 移除終端電阻。當 RS-485 總線上不存在訊號反射問題時,無需添加終端電阻。 |
| 2 | 使用具有輸出功率引腳的收發器(例如 RSM485PCHT),可以透過在外部添加較小的上拉電阻和下拉電阻來調整空閒狀態下的電壓值。 |
| 3 | 使用閾值範圍為 -40mV 至 -200mV 的模組,例如 RSM485ECHT 匯流排 |
2.上拉電阻和下拉電阻問題:並聯電阻值不足可能會導致下列現象,如表 4 所示。
表4 上拉電阻和下拉電阻引起的異常現象
| 數位 | 異常現象 |
| 1 | 當總線上的節點數量增加到一定程度時,總線上的節點將無法正常通訊。減少節點數量後,通訊即可恢復正常。 |
上述問題源自於上拉電阻和下拉電阻的阻值過低,超過了晶片的負載驅動能力。如表5所示,當兩個120Ω的電阻連接在RSM485PCHT的AB接腳之間時,其組合上拉電阻值與低電平輸出差分電壓之間的關係如圖所示。如果上拉電阻和下拉電阻的並聯阻值小於51Ω,晶片可能正常工作,但輸出訊號會超過-200mV,從而可能導致通訊錯誤甚至完全失效。過低的上拉電阻值會導致RS-485收發器功耗過高和發熱量過大,增加過熱保護觸發或元件損壞的風險。為確保通訊可靠性,上拉電阻和下拉電阻的組合阻值通常應大於375Ω。
表 5 不同上拉電阻和下拉電阻值對應的驅動電壓
| 數位 | 上拉電阻和下拉電阻的阻值(Ω)(上拉電阻 A,下拉電阻 B) | A-RGND (V) | B-RGND(V) | AB(V) |
| 1 | 390 | 1.474 | 3.046 | -1.572 |
| 2 | 300 | 1.504 | 2.998 | -1.494 |
| 3 | 200 | 1.569 | 2.896 | -1.327 |
| 4 | 100 | 1.751 | 2.615 | -0.864 |
| 5 | 51 | 2.071 | 2.183 | -0.112 |
3.控制腳問題
由於收發切換涉及一定的延遲,因此在發送或接收資料之前應引入額外的延遲期(例如,RSM485PCHT 至少為 25 μs),以確保 RS-485 收發器已正確配置為發送或接收。
4.關於邏輯輸入端的問題
MCU 的電壓位準必須與 RS-485 收發器的輸入邏輯電平相符;具體來說,如果 MCU 的工作邏輯電平為 5V,則應使用 5V 電源的 RSM 系列隔離模組。










