前言
這個文章的題目有點騙眼球的感覺,其實是自己踩過大坑,很是痛恨這個電路,希望大家以后不要踩了。工程師要畫這個電路時,網(wǎng)上一搜,不經(jīng)深入分析就拿來用,給項目埋了炸彈。
RS485自動收發(fā)電路
因為RS485采用叉分信號,只支持半雙工。正常的RS485芯片驅(qū)動電路是需要GPIO來切換發(fā)送和接收模式。如下圖所示,一般的RS485電平轉(zhuǎn)換芯片都有RE/DE腳,用來切換收發(fā)模式。

RS485標準電路參考
嵌入式行業(yè),特別是MCU相關(guān)的都比較愛摳成本,便宜的MCU往往就是GPIO數(shù)量不夠。如果是上Linux系統(tǒng)的方案,一般串口支持RS485就還得改GPIO驅(qū)動,會有軟件工作量。于是有大聰明發(fā)明了自動切換的電路,省掉了那個GPIO。下圖是網(wǎng)上找的一個自動收發(fā)電路圖,收發(fā)原理直接看圖中文字描述。
1. 不發(fā)送數(shù)據(jù)時,接收模式,沒問題。
2. 發(fā)送數(shù)據(jù)0時,發(fā)送模式,輸出0,沒問題。
3. 發(fā)送數(shù)據(jù)1時,接收模式,外圍A,B由上下拉電路控制,輸出1,問題出在這里。

RS485自動收發(fā)電路
由于自己示波器測量的圖片丟失,網(wǎng)上找別的測試圖來說明,引用文章鏈接:
https://zhuanlan.zhihu.com/p/48018717
三極管的關(guān)斷時間較長(主要是由于三極管關(guān)斷時的存儲時間較長),因此若TXD發(fā)送低電平,DE&RE引腳較長時間后才會升至高電平,才會切到發(fā)送模式,發(fā)送低電平的延時時間較長,如下圖所示為1.204 μs。

關(guān)斷延時
二是自動收發(fā)電路發(fā)送高電平是通過外部上下拉電阻驅(qū)動的,上升沿較緩慢,波形如下圖所示,可以看出,發(fā)送高電平的上升沿較為緩慢,限制了高速通信的應用。

上下拉驅(qū)動上升沿緩慢
RS485自動收發(fā)電路風險
如下圖所示,TXD變?yōu)楦唠娖?,DE&RE引腳降為低電平,AB差分電壓緩慢上升,由于此時RS-485收發(fā)器已經(jīng)處于接收狀態(tài),在AB差分電壓上升至RS-485收發(fā)器門限電平前RXD引腳會出現(xiàn)到一段時間的低電平信號,例如門限電平為-200mV~-50mV的收發(fā)器,AB差分電壓上升至-50mV前RS-485收發(fā)器均可輸出低電平,此低電平信號的時間與AB差分電壓上升時間和RS-485收發(fā)器的接收延時有關(guān)。由于串口一般是將每個位分成16份,檢測中間的3份的電平信號從而確定此位的信號高低,因此若此低電平信號保持至每個位的信號檢測時,則會使MCU接收到一個起始位,從而接收到錯誤的數(shù)據(jù),因此這個問題同樣限制了高速通信的應用并且降低了通信的可靠性。

rxd接收到低電平
我們在實際應用中就是遇到這個問題,概率收到錯誤數(shù)據(jù),導致丟包(數(shù)據(jù)校驗不通過而丟棄)。在研發(fā)的環(huán)境中,連接的終端設(shè)備少,距離近,這個丟包概率比較低,不容易發(fā)現(xiàn)。在Modbus應用中,概率丟包只會影響數(shù)值更新速度慢,影響不大。但是我們在現(xiàn)場做升級操作時,幾乎很難成功,因為在研發(fā)環(huán)境沒問題,我們優(yōu)先排查現(xiàn)場環(huán)境信號干擾等問題,浪費了很多時間。這個電路有兩個缺點:
1. 通信速度慢:
三極管有電容效應,導致關(guān)斷時間較長,導致RE/DE從低到高電平變化出現(xiàn)比較大的斜坡.同時485輸出高電平,是依靠上下拉來完成的,會導致上升沿不夠迅速,因此上下拉的阻值選擇也是影響速度的關(guān)鍵。
2. 驅(qū)動能力弱:
由于當tx為高,485電平是由其上拉電阻完成的,因此弱提高驅(qū)動能力,就要減小電阻,由于485芯片驅(qū)動能力有限,電阻太小會導致tx為低的時候,485芯片無法將485總線拉低,因此總線上所有上拉電阻的并聯(lián)值不應該小于375歐。還用當接入120歐的終端電阻的時候,AB兩相的電壓差由終端電阻和上下拉分壓得到,會導致AB兩相的電壓差變小,因此自動收發(fā)串口轉(zhuǎn)RS485設(shè)計不太適合添加終端電阻。
終端電阻的問題
終端電阻主要是為了匹配通信線的特性阻抗,防止信號反射,提高信號質(zhì)量。在組建RS-485總線網(wǎng)絡時,通常使用特性阻抗為120Ω的屏蔽雙絞線,由于RS-485收發(fā)器輸入阻抗一般較高(例如RSM485ECHT輸入阻抗為96kΩ,最多可連接256個節(jié)點),在信號傳輸?shù)娇偩€末端時會由于受到的瞬時阻抗發(fā)生突變(以RSM485ECHT為例,阻抗由120Ω變?yōu)?6kΩ),導致信號發(fā)生反射,影響信號的質(zhì)量。
實際上只有距離+高速率的環(huán)境需要添加終端電阻,例如長度>500米 + 波特率超過500kbps。
總結(jié)和建議
RS485總線和電路看似簡單,但是要看應用場景,對穩(wěn)定性有要求的不建議使用自動收發(fā)驅(qū)動電路。
在沒有遇到信號反射問題時,盡量不要使用終端電阻;硬件設(shè)計時,可以預留外掛或焊接120Ω電阻的位置。
要查看RS485驅(qū)動芯片的輸入阻抗參數(shù),和支持外掛設(shè)備數(shù)。上、下拉電阻與收發(fā)器輸入阻抗的并聯(lián)值應大于375Ω;
如果是現(xiàn)場做工程項目,建議帶上萬用表和示波器,測一下空閑狀態(tài)下的電壓值,收發(fā)的信號質(zhì)量,這樣才安心。
-
RS485
+關(guān)注
關(guān)注
40文章
1335瀏覽量
86003 -
收發(fā)電路
+關(guān)注
關(guān)注
0文章
23瀏覽量
2314
原文標題:踩坑又給項目埋雷,這RS485自動收發(fā)電路設(shè)計
文章出處:【微信號:zfdzszy,微信公眾號:張飛電子實戰(zhàn)營】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
高速低功耗RS485/RS422收發(fā)器:LTC2856/57/58系列解析
探索 LTC2859/LTC2861:高性能 RS485 收發(fā)器的技術(shù)魅力
工控自動化應用方案:RS485轉(zhuǎn)光纖
RS485收發(fā)電路求解!
詳解RS232和RS485接口的區(qū)別
RS485接口電路設(shè)計要點
打造工業(yè)通信“神經(jīng)中樞”:RS485硬件電路設(shè)計深度剖析
解密工業(yè)數(shù)據(jù)橋梁:RS485硬件電路設(shè)計精要
高溫RS485收發(fā)器芯片的基本原理
LTC1535隔離型RS485收發(fā)器技術(shù)手冊
RS485串口服務器:雙向透傳,自動重連
LTC2872具集成型終端的RS232 / RS485雙通道多協(xié)議收發(fā)器技術(shù)手冊
LTC2873具可通斷終端的單總線RS485/RS232多協(xié)議收發(fā)器技術(shù)手冊
工業(yè)RS485通信的收發(fā)機制介紹
踩坑又給項目埋雷,RS485自動收發(fā)電路設(shè)計
評論