回覆列表
-
1 # Talk工控白
-
2 # 玩轉嵌入式
RS485電路作為Modbus的一種重要實現介面,已經被廣泛應用了。如今,微控制器上的片上資源非常豐富,實現RS485硬體介面,最常用的方案就是利用微控制器的片上資源(UART)作為核心,再搭配電平轉換晶片就可以實現RS485通訊了。通常為了保證通訊不被幹擾,而用隔離晶片將電源隔開,下面我結合一個我一直在用的帶隔離的典型電路來回答這個問題。
RS-485根據需求會在A,B線之間加一個電阻,這個電阻稱之為終端電阻,終端電阻不是計算出來的,而是根據實際的除錯過程所選出來的一個阻值,通常我們選120歐姆的電阻作為終端電阻。一般在同一個RS485網路中只用一個終端電阻,網路中的裝置是並在一起的,如果存在多個終端電阻那麼,電阻就並在了一起,電阻值變小了。
RS485的典型電路如下圖所示:
RS485常用的電平轉換晶片有MAX485,SP3485等。
上圖中RSDIR接MCU的GPIO,用於控制RS485通訊時的資料方向。
TXD,RXD接MCU的通訊控制管腳,是資料引腳。
上圖使用了光耦和數字隔離晶片進行隔離,以增強電路的抗干擾能力。圖中虛線左側為微控制器的電源網路,右側為RS485的電源網路,兩者透過光耦和雙通道數字隔離晶片ADuM1201實現隔離。電平轉換晶片採用MAX3082實現,電阻R61將匯流排A上拉到電源,電阻R62將匯流排B下拉到地,因為RS485得A,B之間的電平只有0.3V-0.4V之間的差別,上下拉電阻可以保證在通訊的過程中A,B線不會因電平差別太小而出現亂碼的情況。
終端電阻選用120歐姆。
RS-485網路該如何加終端電阻?
以RS485匯流排作為通訊的應用也比較多,RS-485匯流排由於它的介面簡單、價格低廉、通訊距離較長等優勢,在工業現場、環境檢測、樓宇自動化等領域應用較廣泛。RS485匯流排在實際應用過程中會遇到通訊距離過長、電磁干擾輻射大、末端節點數量較多,如果在使用過程不注意這些問題,容易引起RS485匯流排通訊不穩定,嚴重點的話就是匯流排癱瘓等故障。
影響RS485匯流排通訊的可靠性因素。
1、通訊距離過長。會導致通訊傳輸訊號質量變差,增加誤位元速率。2、末端節點數量大。對RS485來說,其實它所承擔的網路節點數量是有限的,網路節點超過一定數量,則會引起RS485匯流排驅動能力下降,導致通訊故障的發生。3、訊號反射干擾。我們使用的RS485是採用雙絞線來傳輸訊號,若果傳輸訊號到達匯流排末端,碰到阻抗不連續或阻抗突變,就會引起訊號反射干擾,此時會導致RS485匯流排傳輸訊號波形失真,甚至會提高誤位元速率、通訊質量變差、通訊故障等。4、起假始訊號。RS485匯流排正常工作是以1bit低電平訊號作資料傳輸的開始訊號,結束後再以1bit高電平訊號作終止訊號。問題就出在,當RS485匯流排出於空閒狀態,突然哪裡蹦出一個低電平訊號,總線上的其它裝置還以為這是資料禎的起始訊號,並開始接受資料。所以這就是假始訊號,但還會佔用匯流排,問題嚴重時會導致通訊不了,甚至匯流排通訊癱瘓等故障。
總上所述,要想提高RS485匯流排通訊可靠性,那就得想出解決辦法。在RS485匯流排末端加終端電阻,這樣就解決了匯流排末端節點阻抗有時不連續性問題,同時也解決了訊號反射干擾等問題。列舉個RS485匯流排應用的簡單圖例,如下所示。從圖中可以看出,在智慧電錶端是並聯了終端電阻的,在資料採集一端的RS485匯流排A、B上還加入偏置端電阻。加入終端電阻的作用前面已經解釋,加入偏置電阻的作用是解決假起始訊號的影響,使匯流排在空閒狀態為維持在已知的高電平狀態,這樣就避免假起始訊號現象發生。
題目說的的終端電阻,也不是隨便用的。因為RS485匯流排用的雙絞線傳輸電纜特性阻抗大致為120Ω,想達到阻抗匹配目的,選用的終端電阻值必須跟傳輸電纜特性阻抗一致。反之,那就不能完全起到消除訊號反射干擾問題及末端節點阻抗不連續性問題。
上述基本上介紹了為何加終端電阻、也簡單的述說如何加終端電阻。其實總體來說,就是RS485匯流排在實際應用中距離過長,通訊可靠性得不到保障,於是採取一些相應措施來提高匯流排的可靠性。