RS-485 總線是半雙工的通信總線,因此通常需要MCU控制RS-485收發器的收發狀態。為節省MCU的I/O資源,RS-485自動收發型收發器應運而生,但該類收發器或多或少會遇到一些應用問題,這一類問題該如何解決?本文將從工作原理為你揭曉。
自動收發電路簡介及應用簡析
自動收發電路原理
常見的RS-485自動收發電路如圖1所示,電路的邏輯真值表如表1所示。
當TXD為低電平時,DE和RE為高電平,RS-485收發器處于發送狀態,AB處于低電平,即向其他節點發送低電平信號;
當TXD由低電平變為高電平時,DE和RE變為低電平,RS-485收發器處于接收狀態,此時AB引腳處于高阻狀態,R3將B引腳拉至GND,R4將A引腳拉至VCC,此時AB為高電平,即向其他節點發送高電平信號。
由于TXD為高電平時,RS-485收發器處于接收狀態,因此只需將TXD保持為高電平即可接收數據,即自動收發電路發送高電平時同時也是接收狀態。
圖1 RS-485自動收發示意圖
表1 自動收發電路示意圖
自動收發電路常見應用問題及解決方案
01
通信速度較慢
RS-485自動收發通信速度較慢的原因主要有兩個:
1、若使用圖1所示的自動收發電路,三極管的關斷時間較長(主要是由于三極管關斷時的存儲時間較長),圖1中所示參數的三極管反相電路,開啟延時時間如圖2所示為10.2ns,關斷延時時間如圖3所示為1.14μs,因此若TXD發送低電平,DE&RE引腳較長時間后才會升至高電平,發送低電平的延時時間較長,圖1所示電路發送低電平信號延時時間如圖4所示為1.468μs。
圖2 開啟延時時間
圖3 關斷延時時間
圖4 發送低電平信號延時
2、自動收發電路發送高電平是通過外部上下拉電阻驅動的,上升沿較緩慢,波形如圖5所示,可以看出,發送高電平的上升沿較為緩慢,限制了高速通信的應用。
圖5 發送高電平上升時間
02
高波特率通信時存在通訊異常風險
如圖6所示,TXD變為高電平,DE&RE引腳降為低電平,AB差分電壓緩慢上升,由于此時RS-485收發器已經處于接收狀態,在AB差分電壓上升至RS-485收發器門限電平前RXD引腳會出現到一段時間的低電平信號,例如門限電平為-200mV~-50mV的收發器,AB差分電壓上升至-50mV前RS-485收發器均可輸出低電平,此低電平信號的時間與AB差分電壓上升時間和RS-485收發器的接收延時有關。
由于串口一般是將每個位分成16份,檢測中間的3份的電平信號從而確定此位的信號高低,因此若此低電平信號保持至每個位的信號檢測時,則會使MCU接收到一個起始位,從而接收到錯誤的數據,因此這個問題同樣限制了高速通信的應用并且降低了通信的可靠性。
圖6 TXD發送高電平信號,RXD接收到一段低電平信號
針對此類問題,可選用ZLG致遠電子的寬壓輸入貼片式隔離RS-485自動收發模塊SC4450S(如圖7),該模塊通信速度高達500kbps,并且不會出現發送高電平時接收到一段時間低電平信號的現象,通信波形如圖8所示,極大地提高了通信可靠性。
圖7 貼片式隔離RS-485收發器SC4450S
圖8 SC4450S通信波形
03
外圍電路結電容影響收發器通訊穩定性
在高靜電或浪涌環境下,需要增加外圍保護電路來保護RS-485收發器,若RS-485總線上所加保護電路的結電容較大,則會影響通信波形的質量甚至導致通信異常,使用高結電容保護電路的通信波形如圖9所示,通信波形畸變嚴重,影響了通信質量。
圖9 受高結電容影響的波形
針對此類問題,可選用ZLG致遠電子SC4450S,根據數據手冊中提供的如所示的保護電路圖10,可全面提升RS-485總線的防護能力,EMC防護能力上可以達到靜電接觸±8kV,浪涌共模±4kV,差模±2kV,符合絕大多數工業現場應用需求。
圖10 低結電容保護電路
圖11 增加保護電路后通信波形
04
驅動能力較弱遠距離通訊存在風險
自動收發電路發送高電平時總會有一段時間或全部時間是由上下拉電阻進行驅動的,若要提高發送高電平信號的驅動能力,需要使用較小阻值的上下拉電阻,由于RS-485收發器本身驅動能力的限制,上下拉電阻也不能選擇太小,一般總線上所有節點的上下拉電阻并聯值不能小于375歐,因此自動收發電路發送高電平信號的驅動能力非常有限。RS-485總線增加終端電阻后,發送高電平的AB差分電壓是由終端電阻與上下拉電阻分壓所得,所以此時發送的高電平信號幅值很低,因此使用自動收發RS-485收發器時,盡量不要使用終端電阻。
由于自動收發電路驅動能力有限,其應用的通信距離也受到了限制。使用長度為8m和200m的雙絞線的通信波形如圖12和圖13所示,通信距離8m時,通信波形良好且通信正常,通信距離為200m時已經不能正常通信。因此在通信距離較長時,可在自動收發RS-485收發器外部加上下拉電阻和終端電阻來改善通信波形,增加后的通信波形如圖14所示,波形得到很大的改善,可以正常通信,但發送高電平的信號幅值仍舊較低。
圖12 通過8m雙絞線通信波形
圖13 通過200m雙絞線通信波形
圖14 外部加1k上下拉電阻且RS-485總線首尾加終端電阻
若對通信距離有較高要求,不推薦使用自動收發模塊,可選用ZLG致遠電子具有收發控制功能的隔離RS-485收發器RSM485ECHT或RSM3485ECHT,通信距離可達1200m。通信速度500kbp,通信距離1200m,總線首尾各加120歐終端電阻的通信波形如圖15所示,此時RSM485ECHT發送信號的幅值可達2.6V,極大地提高了通信的可靠性。
圖15 通信距離1200m,總線首尾加終端電阻,RSM485ECHT發送波形
總結
自動收發RS-485收發器可以節省MCU的 IO口,降低編寫程序的工作量,但常規的自動收發電路具有通信速度慢,發送高電平信號時RXD會接收到一段低電平信號等問題,因此若需使用自動收發,推薦使用自動收發隔離RS-485收發器SC4450S,通信的可靠性大大提高,配合SC4450S推薦的低結電容保護電路,可以承受更高的靜電和浪涌等級,提高產品的可靠性。在通信距離較長時,推薦使用增強型隔離RS-485收發器RSM485ECHT/RSM3485ECHT,通信距離可達1200m。
表2 產品推薦應用情況說明
-
收發器
+關注
關注
10文章
3424瀏覽量
105960 -
RS485
+關注
關注
39文章
1156瀏覽量
82291
原文標題:如何解決RS-485自動收發電路應用異常?(工程經驗)
文章出處:【微信號:ZLG_zhiyuan,微信公眾號:ZLG致遠電子】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論