提高RS-485總線可靠性的幾種方法及常見故障處理
在MCU之間中長距離通信的諸多方案中,RS-485因硬件設計簡單、控制方便、成本低廉等優點廣泛應用于工廠自動化、工業控制、小區監控、水利自動報測等領域。但RS-485總線在抗干擾、自適應、通信效率等方面仍存在缺陷,一些細節的處理不當常會導致通信失敗甚至系統癱瘓等故障,因此提高RS-485總線的運行可靠性至關重要。
一、RS-485接口電路的硬件設計
1、總線匹配
總線匹配有兩種方法,一種是加匹配電阻,如圖1a所示。位于總線兩端的差分端口VA與VB之間應跨接120Ω匹配電阻,以減少由于不匹配而引起的反射、吸收噪聲,有效地抑制了噪聲干擾。但匹配電阻要消耗較大電流,不適用于功耗限制嚴格的系統。
另外一種比較省電的匹配方案是RC 匹配(圖2 )利用一只電容C 隔斷直流成分,可以節省大部分功率,但電容C的取值是個難點,需要在功耗和匹配質量間進行折衷。除上述兩種外還有一種采用二極管的匹配方案(圖3),這種方案雖未實現真正的匹配,但它利用二極管的鉗位作用,迅速削弱反射信號達到改善信號質量的目的,節能效果顯著。
2、RO及DI端配置上拉電阻
異步通信數據以字節的方式傳送,在每一個字節傳送之前,先要通過一個低電平起始位實現握手。為防止干擾信號誤觸發RO(接收器輸出)產生負跳變,使接收端MCU進入接收狀態,建議RO外接10kΩ上拉電阻。
3、保證系統上電時的RS-485芯片處于接收輸入狀態
對于收發控制端TC建議采用MCU引腳通過反相器進行控制,不宜采用MCU引腳直接進行控制,以防止MCU上電時對總線的干擾,如圖4所示。
4、總線隔離
RS-485總線為并接式二線制接口,一旦有一只芯片故障就可能將總線“拉死”,因此對其二線口VA、VB與總線之間應加以隔離。通常在VA、VB與總線之間各串接一只4~10Ω的PTC電阻,同時與地之間各跨接5V的TVS二極管,以消除線路浪涌干擾。如沒有PTC電阻和TVS二極管,可用普通電阻和穩壓管代替。
5、合理選用芯片
例如,對外置設備為防止強電磁(雷電)沖擊,建議選用TI的75LBC184等防雷擊芯片,對節點數要求較多的可選用SIPEX的SP485R。
二、RS-485網絡配置
1、網絡節點數
網絡節點數與所選RS-485芯片驅動能力和接收器的輸入阻抗有關,如75LBC184標稱最大值為64點,SP485R標稱最大值為400點。實際使用時,因線纜長度、線徑、網絡分布、傳輸速率不同,實際節點數均達不到理論值。例如75LBC184運用在500m分布的RS-485網絡上節點數超過50或速率大于9.6kb/s時,工作可靠性明顯下降。通常推薦節點數按RS-485芯片最大值的70%選取,傳輸速率在1200~9600b/s之間選取。通信距離1km以內,從通信效率、節點數、通信距離等綜合考慮選用4800b/s最佳。通信距離1km以上時,應考慮通過增加中繼模塊或降低速率的方法提高數據傳輸可靠性。
2、節點與主干距離
最后總結,RS-485節點與主干之間距離(T頭,也稱引出線)越短越好。T頭小于10m的節點采用T型,連接對網絡匹配并無太大影響,可放心使用,但對于節點間距非常小(小于1m,如LED模塊組合屏)應采用星型連接,若采用T型或串珠型連接就不能正常工作。RS-485是一種半雙工結構通信總線,大多用于一對多點的通信系統,因此主機(PC)應置于一端,不要置于中間而形成主干的T型分布。