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