【導(dǎo)讀】通訊問題,和交通問題一樣,也有高速、低速、擁堵、中斷等等各種情況。如果把串口通訊比做交通,UART比作車站,那么一幀的數(shù)據(jù)就好比汽車。汽車跑在路上,要遵守交通規(guī)則。如果是市內(nèi),一般限速30、40,而高速公路則可以到120。而汽車走什么路,限速多少,就要看協(xié)議怎么規(guī)定了。常見的串口協(xié)議有RS-232、RS-422、RS-485等,他們之間有何細(xì)微差別?下面我們就一起來探討一下。
一、UART是什么
UART是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器,是設(shè)備間進(jìn)行異步通信的關(guān)鍵模塊。UART負(fù)責(zé)處理數(shù)據(jù)總線和串行口之間的串/并、并/串轉(zhuǎn)換,并規(guī)定了幀格式;通信雙方只要采用相同的幀格式和波特率,就能在未共享時(shí)鐘信號(hào)的情況下,僅用兩根信號(hào)線(Rx 和Tx)就可以完成通信過程,因此也稱為異步串行通信。
若加入一個(gè)合適的電平轉(zhuǎn)換器,如SP3232E、SP3485,UART 還能用于RS-232、RS-485 通信,或與計(jì)算機(jī)的端口連接。UART 應(yīng)用非常廣泛,手機(jī)、工業(yè)控制、PC 等應(yīng)用中都要用到UART。
UART使用的是 異步,串行通信。
串行通信是指利用一條傳輸線將資料一位位地順序傳送。特點(diǎn)是通信線路簡(jiǎn)單,利用簡(jiǎn)單的線纜就可實(shí)現(xiàn)通信,降低成本,適用于遠(yuǎn)距離通信,但傳輸速度慢的應(yīng)用場(chǎng)合。
異步通信以一個(gè)字符為傳輸單位,通信中兩個(gè)字符間的時(shí)間間隔多少是不固定的,然而在同一個(gè)字符中的兩個(gè)相鄰位間的時(shí)間間隔是固定的。
數(shù)據(jù)傳送速率用波特率來表示,即每秒鐘傳送的二進(jìn)制位數(shù)。例如數(shù)據(jù)傳送速率為120字符/秒,而每一個(gè)字符為10位(1個(gè)起始位,7個(gè)數(shù)據(jù)位,1個(gè)校驗(yàn)位,1個(gè)結(jié)束位),則其傳送的波特率為10×120=1200字符/秒=1200波特。
數(shù)據(jù)通信格式如下圖:
其中各位的意義如下:
起始位:先發(fā)出一個(gè)邏輯”0”信號(hào),表示傳輸字符的開始。
數(shù)據(jù)位:可以是5~8位邏輯”0”或”1”。如ASCII碼(7位),擴(kuò)展BCD碼(8位)。小端傳輸
校驗(yàn)位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗(yàn))或奇數(shù)(奇校驗(yàn))
停止位:它是一個(gè)字符數(shù)據(jù)的結(jié)束標(biāo)志??梢允?位、1.5位、2位的高電平。
空閑位:處于邏輯“1”狀態(tài),表示當(dāng)前線路上沒有資料傳送。
注:異步通信是按字符傳輸?shù)模邮赵O(shè)備在收到起始信號(hào)之后只要在一個(gè)字符的傳輸時(shí)間內(nèi)能和發(fā)送設(shè)備保持同步就能正確接收。下一個(gè)字符起始位的到來又使同步重新校準(zhǔn)(依靠檢測(cè)起始位來實(shí)現(xiàn)發(fā)送與接收方的時(shí)鐘自同步的)
二、RS-232標(biāo)準(zhǔn)
RS-232是美國(guó)電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識(shí)號(hào)。RS-232是對(duì)電氣特性以及物理特性的規(guī)定,只作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對(duì)數(shù)據(jù)的處理方式。需要說明一下,很多人經(jīng)常把RS-232、RS-422、RS-485 誤稱為通訊協(xié)議,這是很不應(yīng)該的,其實(shí)它們僅是關(guān)于UART通訊的一個(gè)機(jī)械和電氣接口標(biāo)準(zhǔn)(頂多是網(wǎng)絡(luò)協(xié)議中的物理層面)。
該標(biāo)準(zhǔn)規(guī)定采用一個(gè)25 個(gè)腳的DB-25 連接器,對(duì)連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對(duì)各種信號(hào)的電平加以規(guī)定。后來IBM的PC 機(jī)將RS-232 簡(jiǎn)化成了DB-9 連接器,從而成為今天的事實(shí)標(biāo)準(zhǔn)。而工業(yè)控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三條線。
早期由于PC都帶有RS-232接口,所以我們需要使用UART時(shí),都選擇RS-232。但是現(xiàn)在個(gè)人電腦,不光是筆記本,包括臺(tái)式機(jī)都不再帶有RS-232的接口,大家看到電腦主板上面沒有DB9的接口。所以現(xiàn)在開發(fā)板都選擇TTL的UART,或者直接UART轉(zhuǎn)USB做在開發(fā)板上。
嵌入式里面說的串口,一般是指UART口, 但是我們經(jīng)常搞不清楚它和COM口的區(qū)別, 以及RS232, TTL等關(guān)系, 實(shí)際上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的電平標(biāo)準(zhǔn)(電信號(hào)).
UART有4個(gè)pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。
三、RS-485/ RS-422標(biāo)準(zhǔn)
RS-232接口可以實(shí)現(xiàn)點(diǎn)對(duì)點(diǎn)的通信方式,但這種方式不能實(shí)現(xiàn)聯(lián)網(wǎng)功能。于是,為了解決這個(gè)問題,一個(gè)新的標(biāo)準(zhǔn)RS-485產(chǎn)生了。RS-485的數(shù)據(jù)信號(hào)采用差分傳輸方式,也稱作平衡傳輸,它使用一對(duì)雙絞線,將其中一線定義為A,另一線定義為B。
通常情況下,發(fā)送驅(qū)動(dòng)器A、B之間的正電平在+2~+6V,是一個(gè)邏輯狀態(tài),負(fù)電平在-2~6V,是另一個(gè)邏輯狀態(tài)。另有一個(gè)信號(hào)地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的。
RS-422 的電氣性能與RS-485完全一樣。主要的區(qū)別在于:RS-422 有4 根信號(hào)線:兩根發(fā)送、兩根接收。由于RS-422 的收與發(fā)是分開的所以可以同時(shí)收和發(fā)(全雙工),也正因?yàn)槿p工要求收發(fā)要有單獨(dú)的信道,所以RS-422適用于兩個(gè)站之間通信,星型網(wǎng)、環(huán)網(wǎng),不可用于總線網(wǎng);RS-485 只有2 根信號(hào)線,所以只能工作在半雙工模式,常用于總線網(wǎng)。
1. RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號(hào)電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接。
2. RS-485的數(shù)據(jù)最高傳輸速率為10Mbps 。
3. RS-485接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗共模干擾能力增強(qiáng),即抗噪聲干擾性好。
4. RS-485最大的通信距離約為1219M,最大傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達(dá)到最大的通信距離,如果需傳輸更長(zhǎng)的距離,需要加485中繼器。RS-485總線一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。
1 RS-423 非平衡串行通信接口
結(jié)構(gòu)、信號(hào)電平、傳輸距離、傳輸速率、接口芯片
2 RS-422 平衡型串行通信接口
結(jié)構(gòu)、信號(hào)電平、接口芯片,MC3486、MC3487、SN75154,SN75155
傳輸速率、傳輸距離
3 RS-485 串行通信總線
結(jié)構(gòu)、信號(hào)電平、接口芯片 MAX485
傳輸速率、傳輸距離,應(yīng)用實(shí)例
由于RS-232 接口標(biāo)準(zhǔn)出現(xiàn)較早,難免有不足之處,主要有以下四點(diǎn):
(1) 接口的信號(hào)電平值較高,易損壞接口電路芯片,又因?yàn)?32電平與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接;
(2) 傳輸速率較低,在異步傳輸時(shí),波特率為20Kbps。現(xiàn)在由于采用了新的UART芯片,波特率達(dá)到115.2Kbps(1.832M/16);
(3) 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱;
(4) 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為50 米,實(shí)際上也只能用在15 米左右;
(5) RS-232 只容許一對(duì)一的通信,沒有考慮構(gòu)成串行總線。(這點(diǎn)很重要,在很多控制場(chǎng)景,是一控多,如果主設(shè)備都需要跟從設(shè)備點(diǎn)對(duì)點(diǎn)通信,那現(xiàn)場(chǎng)布線成蜘蛛網(wǎng)了)
非平衡型串行通信接口RS-423,RS-449
平衡型串行通信接口RS-422
RS-422(EIA RS-422-A Standard)是Apple的Macintosh計(jì)算機(jī)的串口連接標(biāo)準(zhǔn)。RS-422使用差分信號(hào),RS-232使用非平衡參考地的信號(hào)。差分傳輸使用兩根線發(fā)送和接收信號(hào),對(duì)比RS-232,它能更好的抗噪聲和有更遠(yuǎn)的傳輸距離。在工業(yè)環(huán)境中更好的抗噪性和更遠(yuǎn)的傳輸距離是一個(gè)很大的優(yōu)點(diǎn)。
四、RS-232與RS-485對(duì)比
1、抗干擾性:RS485 接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗噪聲干擾性好。RS232 接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾。
2、傳輸距離:RS485 接口的最大傳輸距離標(biāo)準(zhǔn)值為 1200 米(9600bps 時(shí)),實(shí)際上可達(dá) 3000 米。RS232 傳輸距離有限,最大傳輸距離標(biāo)準(zhǔn)值為 50 米,實(shí)際上也只能用在 15 米左右。
3、通信能力:RS-485 接口在總線上是允許連接多達(dá)128個(gè)收發(fā)器,用戶可以利用單一的 RS-485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。RS-232只允許一對(duì)一通信。
4、傳輸速率:RS-232傳輸速率較低,在異步傳輸時(shí),波特率為 20Kbps。RS-485 的數(shù)據(jù)最高傳輸速率為 10Mbps 。
5、信號(hào)線:RS485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號(hào)線。RS-232 口一般只使用 RXD、TXD、GND 三條線 。
6、電氣電平值:RS-485的邏輯"1"以兩線間的電壓差為+(2-6) V 表示;邏輯"0"以兩線間的電壓差為-(2-6)V 表 示 。在 RS-232-C 中任何一條信號(hào)線的電壓均為負(fù)邏輯關(guān)系。即:邏輯"1",-5- -15V;邏輯"0 " +5- +15V 。
五、RS-422與RS-485對(duì)比
RS-485的電氣性能與RS-422完全一樣。主要的區(qū)別在于:
1、RS-422 有4 根信號(hào)線:兩根發(fā)送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發(fā)是分開的所以可以同時(shí)收和發(fā)(全雙工)。
2、RS-485 只有兩根數(shù)據(jù)線:發(fā)送和接收都是A 和B。由于RS-485 的收與發(fā)是共用兩根線,所以不能同時(shí)收和發(fā)(半雙工)。
RS-485標(biāo)準(zhǔn)采用平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動(dòng)總線,具體規(guī)格要求:
接收器的輸入電阻RIN≥12kΩ
驅(qū)動(dòng)器能輸出±7V的共模電壓
輸入端的電容≤50pF
在節(jié)點(diǎn)數(shù)為32個(gè),配置了120Ω的終端電阻的情況下,驅(qū)動(dòng)器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān))
接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號(hào)“0”;(V+)-(V-)≤-0.2V,表示信號(hào)“1”)
因?yàn)镽S-485的遠(yuǎn)距離、多節(jié)點(diǎn)(32個(gè))以及傳輸線成本低的特性,使得EIA RS-485成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)氖走x標(biāo)準(zhǔn)。
(1) RS-485 的電氣特性:發(fā)送端:邏輯“0”以兩線間的電壓差+(2 ~6)V 表示;邏輯“1”以兩線間的電壓差-(2 ~6)V 表示。接收端:A 比B 高200mV 以上即認(rèn)為是邏輯“0”,A 比B 低200mV 以上即認(rèn)為是邏輯“1”;
(2) RS-485 的數(shù)據(jù)最高傳輸速率為10Mbps。但是由于RS-485 常常要與PC 機(jī)的RS-232 口通信,所以實(shí)際上一般最高115.2Kbps。又由于太高的速率會(huì)使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下;
(3) RS-485 接口是采用平衡驅(qū)動(dòng)器和差分接收器的組合,抗噪聲干擾性好;
(4) RS-485 接口的最大傳輸距離標(biāo)準(zhǔn)為1200 米(9600bps 時(shí)),實(shí)際上可達(dá)3000米,RS-485 接口在總線上是容許連接多達(dá)128 個(gè)收發(fā)器、即RS-485 具有多機(jī)通信功能,這樣用戶可以利用單一的RS-485 接口方便的建立起網(wǎng)絡(luò)。因?yàn)镽S-485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號(hào)線,所以RS-485 接口均采用雙絞線傳輸。RS-485 的國(guó)際標(biāo)準(zhǔn)并沒有規(guī)定RS-485 的接口連接器標(biāo)準(zhǔn)、所以采用接線端子或者DB-9、DB-25 等連接器都可以。
在使用RS-485 接口時(shí),對(duì)于特定的傳輸線徑,從發(fā)生器到負(fù)載其數(shù)據(jù)信號(hào)傳輸所容許的最大電纜長(zhǎng)度是數(shù)據(jù)信號(hào)速率的函數(shù),這個(gè)長(zhǎng)度數(shù)據(jù)主要是受信號(hào)失真及噪聲等影響所限制。最大電纜長(zhǎng)度與信號(hào)速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線徑為0.51mm),線間旁路電容為52.5PF/M,終端負(fù)載電阻為100 歐時(shí)所得出的。(引自GB11014-89 附錄A)。當(dāng)數(shù)據(jù)信號(hào)速率降低到90Kbit/S 以下時(shí),假定最大容許的信號(hào)損失為6dBV 時(shí),則電纜長(zhǎng)度被限制在1200m。實(shí)際上,在實(shí)用時(shí)是完全可以取得比它大的電纜長(zhǎng)度。當(dāng)使用不同線徑的電纜,則取得的最大電纜長(zhǎng)度是不相同的。例如:當(dāng)數(shù)據(jù)信號(hào)速率為600Kbit/S 時(shí),采用24AWG 電纜,最大電纜長(zhǎng)度是200m,若采用19AWG電纜(線徑為0.91mm)則電纜長(zhǎng)度將可以大于200m;若采用28AWG 電纜(線徑為0.32mm),則電纜長(zhǎng)度只能小于200m。
RS-485的遠(yuǎn)距離通信建議采用屏蔽電纜,并且將屏蔽層作為地線。
六、影響RS-485總線通訊速度和通信可靠性的三個(gè)因素
1、在通信電纜中的信號(hào)反射
在通信過程中,有兩種信號(hào)因素導(dǎo)致信號(hào)反射:阻抗不連續(xù)和阻抗不匹配。
阻抗不連續(xù),信號(hào)在傳輸線末端突然遇到電纜阻抗很小甚至沒有,信號(hào)在這個(gè)地方就會(huì)引起反射,如圖所示。這種信號(hào)反射的原理,與光從一種媒質(zhì)進(jìn)入另一種媒質(zhì)要引起反射是相似的。消除這種反射的方法,就必須在電纜的末端跨接一個(gè)與電纜的特性阻抗同樣大小的終端電阻,使電纜的阻抗連續(xù)。由于信號(hào)在電纜上的傳輸是雙向的,因此,在通訊電纜的另一端可跨接一個(gè)同樣大小的終端電阻。
從理論上分析,在傳輸電纜的末端只要跨接了與電纜特性阻抗相匹配的終端電阻,就再也不會(huì)出現(xiàn)信號(hào)反射現(xiàn)象。但是,在實(shí)現(xiàn)應(yīng)用中,由于傳輸電纜的特性阻抗與通訊波特率等應(yīng)用環(huán)境有關(guān),特性阻抗不可能與終端電阻完全相等,因此或多或少的信號(hào)反射還會(huì)存在。
引起信號(hào)反射的另一個(gè)原因是數(shù)據(jù)收發(fā)器與傳輸電纜之間的阻抗不匹配。這種原因引起的反射,主要表現(xiàn)在通訊線路處在空閑方式時(shí),整個(gè)網(wǎng)絡(luò)數(shù)據(jù)混亂。
信號(hào)反射對(duì)數(shù)據(jù)傳輸?shù)挠绊?,歸根結(jié)底是因?yàn)榉瓷湫盘?hào)觸發(fā)了接收器輸入端的比較器,使接收器收到了錯(cuò)誤的信號(hào),導(dǎo)致CRC校驗(yàn)錯(cuò)誤或整個(gè)數(shù)據(jù)幀錯(cuò)誤。
在信號(hào)分析,衡量反射信號(hào)強(qiáng)度的參數(shù)是RAF(Refection AttenuationFactor反射衰減因子)。它的計(jì)算公式如式(1)。
RAF=20lg(Vref/Vinc) (1)
式中:Vref—反射信號(hào)的電壓大小;Vinc—在電纜與收發(fā)器或終端電阻連接點(diǎn)的入射信號(hào)的電壓大小。
具體的測(cè)量方法如圖3所示。例如,由實(shí)驗(yàn)測(cè)得2.5MHz的入射信號(hào)正弦波的峰-峰值為+5V,反射信號(hào)的峰-峰值為+0.297V,則該通訊電纜在2.5MHz的通訊速率時(shí),它的反射衰減因子為:
RAF=20lg(0.297/2.5)=-24.52dB
要減弱反射信號(hào)對(duì)通訊線路的影響,通常采用噪聲抑制和加偏置電阻的方法。在實(shí)際應(yīng)用中,對(duì)于比較小的反射信號(hào),為簡(jiǎn)單方便,經(jīng)常采用加偏置電阻的方法。在通訊線路中,如何通過加偏置電阻提高通訊可靠性的原理。
2、在通訊電纜中的信號(hào)衰減
第二個(gè)影響信號(hào)傳輸?shù)囊蛩厥切盘?hào)在電纜的傳輸過程中衰減。一條傳輸電纜可以把它看出由分布電容、分布電感和電阻聯(lián)合組成的等效電路,如圖所示。
電纜的分布電容C主要是由雙絞線的兩條平行導(dǎo)線產(chǎn)生。導(dǎo)線的電阻在這里對(duì)信號(hào)的影響很小,可以忽略不計(jì)。信號(hào)的損失主要是由于電纜的分布電容和分布電感組成的LC低通濾波器。PROFIBUS用的LAN標(biāo)準(zhǔn)型二芯電纜(西門子為DP總線選用的標(biāo)準(zhǔn)電纜),在不同波特率時(shí)的衰減系數(shù)如表1所示。
電纜的衰減系數(shù)
3、在通訊電纜中的純阻負(fù)載
影響通訊性能的第三個(gè)因素是純阻性負(fù)載(也叫直流負(fù)載)的大小。這里指的純阻性負(fù)載主要由終端電阻、偏置電阻和RS-485收發(fā)器三者構(gòu)成。
在敘述EIA RS-485規(guī)范時(shí)曾提到過RS-485驅(qū)動(dòng)器在帶了32個(gè)節(jié)點(diǎn),配置了150Ω終端電阻的情況下,至少能輸出1.5V的差分電壓。一個(gè)接收器的輸入電阻為12kΩ,整個(gè)網(wǎng)絡(luò)的等效電路如圖5所示。按這樣計(jì)算,RS-485驅(qū)動(dòng)器的負(fù)載能力為:
RL=32個(gè)輸入電阻并聯(lián)2個(gè)終端電阻=((12000/32)×(150/2))/(12000/32)+(150/2))≈51.7Ω
現(xiàn)在比較常用的RS-485驅(qū)動(dòng)器有MAX485、DS3695、MAX1488/1489以及和利時(shí)公司使用的SN75176A/D等,其中有的RS-485驅(qū)動(dòng)器負(fù)載能力可以達(dá)到20Ω。在不考慮其它諸多因素的情況下,按照驅(qū)動(dòng)能力和負(fù)載的關(guān)系計(jì)算,一個(gè)驅(qū)動(dòng)器可帶節(jié)點(diǎn)的最大數(shù)量將遠(yuǎn)遠(yuǎn)大于32個(gè)。
在通訊波特率比較高的時(shí)候,在線路上偏置電阻是很有必要的。偏置電阻的連接方法如圖6。它的作用是在線路進(jìn)入空閑狀態(tài)后,把總線上沒有數(shù)據(jù)時(shí)(空閑方式)的電平拉離0電平,如圖7。這樣一來,即使線路中出現(xiàn)了比較小的反射信號(hào)或干擾,掛接在總線上的數(shù)據(jù)接收器也不會(huì)由于這些信號(hào)的到來而產(chǎn)生誤動(dòng)作。
通過下面后例子了,可以計(jì)算出偏置電阻的大小:
終端電阻Rt1=Rr2=120Ω;
假設(shè)反射信號(hào)最大的峰-峰值Vref≤0.3Vp-p,則負(fù)半周的電壓Vref≤0.15V;終端的電阻上由反射信號(hào)引起的反射電流Iref≤0.15/(120||120)=2.5mA。一般RS-485收發(fā)器(包括SN75176)的滯后電壓值(hysteresis value)為50mV,即:
(Ibias-Iref)×(Rt1||Rt2)≥50mV
于是可以計(jì)算出偏置電阻產(chǎn)生的偏置電流Ibias≥3.33mA
+5V=Ibias(R上拉+R下拉+(Rt1||Rt2)) (2)
通過式2可以計(jì)算出R上拉=R下拉=720Ω
在實(shí)際應(yīng)用中,RS-485總線加偏置電阻有兩種方法:
(1)把偏置電阻平衡分配給總線上的每一個(gè)收發(fā)器。這種方法給掛接在RS-485總線上的每一個(gè)收發(fā)器加了偏置電阻,給每一個(gè)收發(fā)器都加了一個(gè)偏置電壓。
(2)在一段總線上只用一對(duì)偏置電阻。這種方法對(duì)總線上存在大的反射信號(hào)或干擾信號(hào)比較有效。值得注意的是偏置電阻的加入,增加了總線的負(fù)載。
七、RS-485總線的負(fù)載能力和通訊電纜長(zhǎng)度之間的關(guān)系
在設(shè)計(jì)RS-485總線組成的網(wǎng)絡(luò)配置(總線長(zhǎng)度和帶負(fù)載個(gè)數(shù))時(shí),應(yīng)該考慮到三個(gè)參數(shù):純阻性負(fù)載、信號(hào)衰減和噪聲容限。純阻性負(fù)載、信號(hào)衰減這兩個(gè)參數(shù),在前面已經(jīng)討論過,現(xiàn)在要討論的是噪聲容限(Noise Margin)。RS-485總線接收器的噪聲容限至少應(yīng)該大于200mV。前面的論述者是在假設(shè)噪聲容限為0的情況下進(jìn)行的。在實(shí)際應(yīng)用中,為了提高總線的抗干擾能力,總希望系統(tǒng)的噪聲容限比EIA RS-485標(biāo)準(zhǔn)中規(guī)定的好一些。從下面的公式能看出總線帶負(fù)載的多少和通訊電纜長(zhǎng)度之間的關(guān)系:
Vend=0.8(Vdriver-Vloss-Vnoise-Vbias)(3)
其中:Vend為總線末端的信號(hào)電壓,在標(biāo)準(zhǔn)測(cè)定時(shí)規(guī)定為0.2V;Vdriver為驅(qū)動(dòng)器的輸出電壓(與負(fù)載數(shù)有關(guān)。負(fù)載數(shù)在5~35個(gè)之間,Vdriver=2.4V;當(dāng)負(fù)載數(shù)小于5,Vdriver=2.5V;當(dāng)負(fù)載數(shù)大于35,Vdriver≤2.3V);Vloss為信號(hào)在總線中的傳輸過程中的損耗(與通訊電纜的規(guī)格和長(zhǎng)度有關(guān)),由表1提供的標(biāo)準(zhǔn)電纜的衰減系數(shù),根據(jù)公式衰減系數(shù)b=20lg(Vout/Vin)可以計(jì)算出Vloss=Vin-Vout=0.6V(注:通訊波特率為9.6kbps,電纜長(zhǎng)度1km,如果特率增加,Vloss會(huì)相應(yīng)增大);Vnoise為噪聲容限,在標(biāo)準(zhǔn)測(cè)定時(shí)規(guī)定為0.1V;Vbias是由偏置電阻提供的偏置電壓(典型值為0.4V)。
式(3)中乘以0.8是為了使通信電纜不進(jìn)入滿載狀態(tài)。從式(3)可以看出,Vdriver的大小和總線上帶負(fù)載數(shù)的多少成反比,Vloss的大小和總線長(zhǎng)度成反比,其他幾個(gè)參數(shù)只和用的驅(qū)動(dòng)器類型有關(guān)。因此,在選定了驅(qū)動(dòng)器的RS-495總線上,在通信波特率一定的情況下,帶負(fù)載數(shù)的多少,與信號(hào)能傳輸?shù)淖畲缶嚯x是直接相關(guān)的。具體關(guān)系是:在總線允許的范圍內(nèi),帶負(fù)載數(shù)越多,信號(hào)能傳輸?shù)木嚯x就越??;帶負(fù)載數(shù)據(jù)少,信號(hào)能傳輸?shù)木嚯x就發(fā)越遠(yuǎn)。
八、分布電容對(duì)RS-485總線傳輸性能的影響
電纜的分布電容主是由雙絞線的兩條平行導(dǎo)線產(chǎn)生。另外,導(dǎo)線和地之間也存在分布電容,雖然很小,但在分析時(shí)也不能忽視。分布電容對(duì)總線傳輸性能的影響,主要是因?yàn)榭偩€上傳輸?shù)氖腔ㄐ盘?hào),信號(hào)的表達(dá)方式只有“1”和“0”。在特殊的字節(jié)中,例如0x01,信號(hào)“0”使得分布電容有足夠的充電時(shí)間,而信號(hào)“1”到來時(shí),由于分布電容中的電荷,來不及放電,(Vin+)—(Vin-)-還大于200mV,結(jié)果使接愛誤認(rèn)為是“0”,而最終導(dǎo)致CRC校驗(yàn)錯(cuò)誤,整個(gè)數(shù)據(jù)幀傳輸錯(cuò)誤。具體過程如圖所示。
由于總線上分布影響,導(dǎo)致數(shù)據(jù)傳輸錯(cuò)誤,從而使整個(gè)網(wǎng)絡(luò)性能降低。解決這個(gè)問題有兩種方法:
(1)降低數(shù)據(jù)傳輸?shù)牟ㄌ芈剩?/div>
(2)使用分布電容小的電纜,提高傳輸線的質(zhì)量。
僅僅用一對(duì)雙絞線將各個(gè)接口的A、B端連接起來,而不對(duì)RS-485通信鏈路的信號(hào)接地,在某些情況下也可以工作,但給系統(tǒng)埋下了隱患。RS-485接口采用差分方式傳輸信號(hào)并不需要對(duì)于某個(gè)參照點(diǎn)來檢測(cè)信號(hào)系統(tǒng),只需檢測(cè)兩線之間的電位差就可以了。但應(yīng)該注意的是收發(fā)器只有在共模電壓不超出一定范圍(-7V至+12V)的條件下才能正常工作。當(dāng)共模電壓超出此范圍,就會(huì)影響通信的可靠直至損壞接口。如圖1所示,當(dāng)發(fā)送器A向接收器B發(fā)送數(shù)據(jù)時(shí),發(fā)送器A的輸出共模電壓為VOS,由于兩個(gè)系統(tǒng)具有各自獨(dú)立的接地系統(tǒng)存在著地電位差VGPD,那么接收器輸入端的共模電壓就會(huì)達(dá)到VCM=VOS+VGPD。RS-485標(biāo)準(zhǔn)規(guī)定VOS≤3V,但VGPD可能會(huì)有很大幅度(十幾伏甚至數(shù)十伏),并可能伴有強(qiáng)干擾信號(hào)致使接收器共模輸入VCM超出正常圍,在信號(hào)線上產(chǎn)生干擾電流影響正常通信,或損壞設(shè)備。
總結(jié):
串口是一種非常通用的設(shè)備接口,是儀器儀表設(shè)備常用的通信接口,常用于遠(yuǎn)程采集設(shè)備數(shù)據(jù)或者實(shí)現(xiàn)遠(yuǎn)程控制。串口的開發(fā)也比較簡(jiǎn)單,是很多工程師最喜歡的接口之一。
推薦閱讀: