RS485設計與應用指南
0. 前言
當前自動控制系統中常用的網路,如現場匯流排CAN、Profibus、INTERBUS-S以及ARCNet的物理層都是基於RS-485的匯流排進行總結和研究。
1、EIA RS-485標準
在自動化領域,隨著分散式控制系統的發展,迫切需要一種匯流排能適合遠距離的數字通訊。在RS-422標準的基礎上,EIA研究出了一種支援多節點、遠距離和接收高靈敏度的RS-485匯流排標準。
RS-485標準採有用平衡式傳送,差分式接收的資料收發器來驅動匯流排,具體規格要求:
1.接收器的輸入電阻RIN≥12kΩ
2.驅動器能輸出±7V的共模電壓
3.輸入端的電容≤50pF
4.在節點數為32個,配置了120Ω的終端電阻的情況下,驅動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的引數有關)
5.接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示訊號“0”;(V+)-(V-)≤-0.2V,表示訊號“1”)
因為RS-485的遠距離、多節點(32個)以及傳輸線成本低的特性,使得EIA RS-485成為工業應用中資料傳輸的首選標準。
2、影響RS-485匯流排通訊速度和通訊可靠性的三個因素
1、在通訊電纜中的訊號反射
在通訊過程中,有兩種訊號因導致訊號反射:阻抗不連續和阻抗不匹配。
阻抗不連續,訊號在傳輸線末端突然遇到電纜阻抗很小甚至沒有,訊號在這個地方就會引起反射,如圖1所示。這種訊號反射的原理,與光從一種媒質進入另一種媒質要引起反射是相似的。消除這種反射的方法,就必須在電纜的末端跨接一個與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續。由於訊號在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個同樣大小的終端電阻,如圖2所示。
從理論上分析,在傳輸電纜的末端只要跨接了與電纜特性阻抗相匹配的終端電阻,就再也不會出現訊號反射現象。但是,在實現應用中,由於傳輸電纜的特性阻抗與通訊波特率等應用環境有關,特性阻抗不可能與終端電阻完全相等,因此或多或少的訊號反射還會存在。
引起訊號反射的另個原因是資料收發器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現在通訊線路處在空閒方式時,整個網路資料混亂。
訊號反射對資料傳輸的影響,歸根結底是因為反射訊號觸發了接收器輸入端的比較器,使接收器收到了錯誤的訊號,導致CRC校驗錯誤或整個資料幀錯誤。
在訊號分析,衡量反射訊號強度的引數是RAF(Refection Attenuation Factor反射衰減因子)。它的計算公式如式(1)。
RAF=20lg(Vref/Vinc) (1)
式中:Vref—反射訊號的電壓大小;Vinc—在電纜與收發器或終端電阻連線點的入射訊號的電壓大小。
具體的測量方法如圖3所示。例如,由實驗測得2.5MHz的入射訊號正弦波的峰-峰值為+5V,反射訊號的峰-峰值為+0.297V,則該通訊電纜在2.5MHz的通訊速率時,它的反射衰減因子為:
RAF=20lg(0.297/2.5)=-24.52dB
要減弱反射訊號對通訊線路的影響,通常採用噪聲抑制和加偏置電阻的方法。在實際應用中,對於比較小的反射訊號,為簡單方便,經常採用加偏置電阻的方法。在通訊線路中,如何通過加偏置電阻提高通訊可靠性的原理,後面將做詳細介紹。
2、在通訊電纜中的訊號衰減
第二個影響訊號傳輸的因素是訊號在電纜的傳輸過程中衰減。一條傳輸電纜可以把它看出由分佈電容、分佈電感和電阻聯合組成的等效電路,如圖4所示。
電纜的分佈電容C主要是由雙絞線的兩條平行導線產生。導線的電阻在這裡對訊號的影響很小,可以忽略不計。訊號的損失主要是由於電纜的分佈電容和分佈電感組成的LC低通濾波器。PROFIBUS用的LAN標準型二芯電感(西門子為DP匯流排選用的標準電纜),在不同波特率時的衰減係數如表1所示。
表1 電纜的衰減係數
通訊波特率 | 16MHz | 4MHz | 38.4kHz | 9.6kHz |
---|---|---|---|---|
衰減體系數(1km) | ≤42dB | ≤22dB | ≤4dB | ≤2.5dB |
3、在通訊電纜中的純阻負載
影響通訊效能的第三個因素是純阻性負載(也叫直流負載)的大小。這裡指的純阻性負載主要由終端電阻、偏置電阻和RS-485收發器三者構成。
在敘述EIA RS-485規範時曾提到過RS-485驅動器在帶了32個節點,配置了150Ω終端電阻的情況下,至少能輸出1.5V的差分電壓。一個接收器的輸入電阻為12kΩ,整個網路的等效電路如圖5所示。按這樣計算,RS-485驅動器的負載能力為:
RL=32個輸入電阻並聯||2個終端電阻=((12000/32)×(150/2))/(12000/32)+(150/2))≈51.7Ω
現在比較常用的RS-485驅動器有MAX485、DS3695、MAX1488/1489以及和利時公司使用的SN75176A/D等,其中有的RS-485驅動器負載能力可以達到20Ω。在不考慮其它諸多因素的情況下,按照驅動能力和負載的關係計算,一個驅動器可帶節點的最大數量將遠遠大於32個。
在通訊波特率比較高的時候,線上路上偏置電阻是很有必要的。偏置電阻的連線方法如圖6。它的作用是線上路進入空閒狀態後,把總線上沒有資料時(空閒方式)的電平拉離0電平,如圖7。這樣一來,即使線路中出現了比較小的反射訊號或干擾,掛接在總線上的資料接收器也不會由於這些訊號的到來而產生誤動作。
通過下面後例子了,可以計算出偏置電阻的大小:
終端電阻Rt1=Rr2=120Ω;
假設反射訊號最大的峰-峰值Vref≤0.3Vp-p,則負半周的電壓Vref≤0.15V;終端的電阻上由反射訊號引起的反射電流Iref≤0.15/(120||120)=2.5mA。一般RS-485收發器(包括SN75176)的滯後電壓值(hysteresis value)為50mV,即:
(Ibias-Iref)×(Rt1||Rt2)≥50mV
於是可以計算出偏置電阻產生的偏置電流Ibias≥3.33mA
+5V=Ibias(R上拉+R下拉+(Rt1||Rt2)) (2)
通過式2可以計算出R上拉=R下拉=720Ω
在實際應用中,RS-485匯流排加偏置電阻有兩種方法:
(1)把偏置電阻平衡分配給總線上的每一個收發器。這種方法給掛接在RS-485總線上的每一個收發器加了偏置電阻,給每一個收發器都加了一個偏置電壓。
(2)在一段總線上只用一對偏置電阻。這種方法對總線上存在大的反射訊號或干擾訊號比較有效。值得注意的是偏置電阻的加入,增加了匯流排的負載。
3、RS-485匯流排的負載能力和通訊電纜長度之間的關係
在設計RS-485匯流排組成的網路配置(匯流排長度和帶負載個數)時,應該考慮到三個引數:純阻性負載、訊號衰減和噪聲容限。純阻性負載、訊號衰減這兩個引數,在前面已經討論過,現在要討論的是噪聲容限(Noise Margin)。RS-485匯流排接收器的噪聲容限至少應該大於200mV。前面的論述者是在假設噪聲容限為0的情況下進行的。在實際應用中,為了提高匯流排的抗干擾能力,總希望系統的噪聲容限比EIA RS-485標準中規定的好一些。從下面的公式能看出匯流排帶負載的多少和通訊電纜長度之間的關係:
Vend=0.8(Vdriver-Vloss-Vnoise-Vbias) (3)
其中:Vend為匯流排末端的訊號電壓,在標準測定時規定為0.2V;Vdriver為驅動器的輸出電壓(與負載數有關。負載數在5~35個之間,Vdriver=2.4V;當負載數小於5,Vdriver=2.5V;當負載數大於35,Vdriver≤2.3V);Vloss為訊號在匯流排中的傳輸過程中的損耗(與通訊電纜的規格和長度有關),由表1提供的標準電纜的衰減係數,根據公式衰減係數b=20lg(Vout/Vin)可以計算出Vloss=Vin-Vout=0.6V(注:通訊波特率為9.6kbps,電纜長度1km,如果特率增加,Vloss會相應增大);Vnoise為噪聲容限,在標準測定時規定為0.1V;Vbias是由偏置電阻提供的偏置電壓(典型值為0.4V)。
式(3)中乘以0.8是為了使通訊電纜不進入滿載狀態。從式(3)可以看出,Vdriver的大小和總線上帶負載數的多少成反比,Vloss的大小和匯流排長度成反比,其他幾個引數只和用的驅動器型別有關。因此,在選定了驅動器的RS-495總線上,在通訊波特率一定的情況下,帶負載數的多少,與訊號能傳輸的最大距離是直接相關的。具體關係是:在匯流排允許的範圍內,帶負載數越多,訊號能傳輸的距離就越小;帶負載資料少,訊號能傳輸的距離就發越遠。
4、分佈電容對RS-485匯流排傳輸效能的影響
電纜的分佈電容主是由雙絞線的兩條平行導線產生。另外,導線和地之間也存在分佈電容,雖然很小,但在分析時也不能忽視。分佈電容對匯流排傳輸效能的影響,主要是因為總線上傳輸的是基波訊號,訊號的表達方式只有“1”和“0”。在特殊的位元組中,例如0x01,訊號“0”使得分佈電容有足夠的充電時間,而訊號“1”到來時,由於分佈電容中的電荷,來不及放電,(Vin+)—(Vin-)-還大於200mV,結果使接愛誤認為是“0”,而最終導致CRC校驗錯誤,整個資料幀傳輸錯誤。具體過程如圖8所示。
由於總線上分佈影響,導致資料傳輸錯誤,從而使整個網路效能降低。解決這個問題有兩種方法:
(1)降低資料傳輸的波特率;
(2)使用分佈電容小的電纜,提高傳輸線的質量。