當前位置:中美貿(mào)易網(wǎng) > 技術(shù)中心 > 所有分類
串口通訊是電氣工程師面對的最基本的一個通訊方式,RS-232是其中的一種。很多初學者往往搞不清楚UART和RS-232、RS-422、RS-485的聯(lián)系和區(qū)別,塔石物聯(lián)網(wǎng)將談?wù)勥@幾個概念的理解,幫助大家理清它們之間的關(guān)系。
如果把串口通訊比做交通,UART比作車站,那么一幀的數(shù)據(jù)就好比汽車。汽車跑在路上,要遵守交通規(guī)則。如果是市內(nèi),一般限速30、40,而高速公路則可以到120。而汽車走什么路,限速多少,就要看協(xié)議怎么規(guī)定了。常見的串口協(xié)議有RS-232、RS-422、RS-485等,他們之間有何細微差別?下面我們就一起來探討一下。
UART是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種異步收發(fā)傳輸器,是設(shè)備間進行異步通信的關(guān)鍵模塊。UART負責處理數(shù)據(jù)總線和串行口之間的串/并、并/串轉(zhuǎn)換,并規(guī)定了幀格式;通信雙方只要采用相同的幀格式和波特率,就能在未共享時鐘信號的情況下,僅用兩根信號線(Rx 和Tx)就可以完成通信過程,因此也稱為異步串行通信。
若加入一個合適的電平轉(zhuǎn)換器,如SP3232E、SP3485,UART 還能用于RS-232、RS-485 通信,或與計算機的端口連接。UART 應(yīng)用非常廣泛,手機、工業(yè)控制、PC 等應(yīng)用中都要用到UART。
UART使用的是異步,串行通信。
串行通信是指利用一條傳輸線將資料一位位地順序傳送。特點是通信線路簡單,利用簡單的線纜就可實現(xiàn)通信,降低成本,適用于遠距離通信,但傳輸速度慢的應(yīng)用場合。
異步通信以一個字符為傳輸單位,通信中兩個字符間的時間間隔多少是不固定的,然而在同一個字符中的兩個相鄰位間的時間間隔是固定的。
數(shù)據(jù)傳送速率用波特率來表示,即每秒鐘傳送的二進制位數(shù)。例如數(shù)據(jù)傳送速率為120字符/秒,而每一個字符為10位(1個起始位,7個數(shù)據(jù)位,1個校驗位,1個結(jié)束位),則其傳送的波特率為10×120=1200字符/秒=1200波特。
其中各位的意義如下:
起始位:先發(fā)出一個邏輯”0”信號,表示傳輸字符的開始。
數(shù)據(jù)位:可以是5~8位邏輯”0”或”1”。如ASCII碼(7位),擴展BCD碼(8位)。小端傳輸
校驗位:數(shù)據(jù)位加上這一位后,使得“1”的位數(shù)應(yīng)為偶數(shù)(偶校驗)或奇數(shù)(奇校驗)
停止位:它是一個字符數(shù)據(jù)的結(jié)束標志??梢允?位、1.5位、2位的高電平。
空閑位:處于邏輯“1”狀態(tài),表示當前線路上沒有資料傳送。
注:異步通信是按字符傳輸?shù)?,接收設(shè)備在收到起始信號之后只要在一個字符的傳輸時間內(nèi)能和發(fā)送設(shè)備保持同步就能正確接收。下一個字符起始位的到來又使同步重新校準(依靠檢測起始位來實現(xiàn)發(fā)送與接收方的時鐘自同步的)
RS-232是美國電子工業(yè)協(xié)會EIA(Electronic Industry Association)制定的一種串行物理接口標準。RS是英文“推薦標準”的縮寫,232為標識號。RS-232是對電氣特性以及物理特性的規(guī)定,只作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對數(shù)據(jù)的處理方式。需要說明一下,很多人經(jīng)常把RS-232、RS-422、RS-485 誤稱為通訊協(xié)議,這是很不應(yīng)該的,其實它們僅是關(guān)于UART通訊的一個機械和電氣接口標準(頂多是網(wǎng)絡(luò)協(xié)議中的物理層面)。
該標準規(guī)定采用一個25 個腳的DB-25 連接器,對連接器的每個引腳的信號內(nèi)容加以規(guī)定,還對各種信號的電平加以規(guī)定。后來IBM的PC 機將RS-232 簡化成了DB-9 連接器,從而成為今天的事實標準。而工業(yè)控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三條線。
早期由于PC都帶有RS-232接口,所以我們需要使用UART時,都選擇RS-232。但是現(xiàn)在個人電腦,不光是筆記本,包括臺式機都不再帶有RS-232的接口,大家看到電腦主板上面沒有DB9的接口。所以現(xiàn)在開發(fā)板都選擇TTL的UART,或者直接UART轉(zhuǎn)USB做在開發(fā)板上。
嵌入式里面說的串口,一般是指UART口, 但是我們經(jīng)常搞不清楚它和COM口的區(qū)別, 以及RS232, TTL等關(guān)系, 實際上UART,COM指的物理接口形式(硬件), 而TTL、RS-232是指的電平標準(電信號).
UART有4個pin(VCC, GND, RX, TX), 用的TTL電平, 低電平為0(0V),高電平為1(3.3V或以上)。
RS-232接口可以實現(xiàn)點對點的通信方式,但這種方式不能實現(xiàn)聯(lián)網(wǎng)功能。于是,為了解決這個問題,一個新的標準RS-485產(chǎn)生了。RS-485的數(shù)據(jù)信號采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。
通常情況下,發(fā)送驅(qū)動器A、B之間的正電平在+2~+6V,是一個邏輯狀態(tài),負電平在-2~6V,是另一個邏輯狀態(tài)。另有一個信號地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的。
RS-422 的電氣性能與RS-485一樣。主要的區(qū)別在于:RS-422 有4 根信號線:兩根發(fā)送、兩根接收。由于RS-422 的收與發(fā)是分開的所以可以同時收和發(fā)(全雙工),也正因為全雙工要求收發(fā)要有單獨的信道,所以RS-422適用于兩個站之間通信,星型網(wǎng)、環(huán)網(wǎng),不可用于總線網(wǎng);RS-485 只有2 根信號線,所以只能工作在半雙工模式,常用于總線網(wǎng)。
1.RS-485的電氣特性:邏輯“1”以兩線間的電壓差為+(2~6)V表示;邏輯“0”以兩線間的電壓差為-(2~6)V表示。接口信號電平比RS-232-C降低了,就不易損壞接口電路的芯片,且該電平與TTL電平兼容,可方便與TTL 電路連接。
2.RS-485的數(shù)據(jù)傳輸速率為10Mbps 。
3.RS-485接口是采用平衡驅(qū)動器和差分接收器的組合,抗共模干擾能力增強,即抗噪聲干擾性好。
4.RS-485的通信距離約為1219M,傳輸速率為10Mb/S,傳輸速率與傳輸距離成反比,在100Kb/S的傳輸速率下,才可以達到的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般支持32個節(jié)點,如果使用特制的485芯片,可以達到128個或者256個節(jié)點,的可以支持到400個節(jié)點。
由于RS-232 接口標準出現(xiàn)較早,難免有不足之處,主要有以下幾點:
(1) 接口的信號電平值較高,易損壞接口電路芯片,又因為232電平與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接;
(2) 傳輸速率較低,在異步傳輸時,波特率為20Kbps?,F(xiàn)在由于采用了新的UART芯片,波特率達到115.2Kbps(1.832M/16);
(3) 接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱;
(4) 傳輸距離有限,傳輸距離標準值為50 米,實際上也只能用在15 米左右;
(5) RS-232 只容許一對一的通信,沒有考慮構(gòu)成串行總線。(這點很重要,在很多控制場景,是一控多,如果主設(shè)備都需要跟從設(shè)備點對點通信,那現(xiàn)場布線成蜘蛛網(wǎng)了)
非平衡型串行通信接口RS-423,RS-449
RS-422(EIA RS-422-A Standard)是Apple的Macintosh計算機的串口連接標準。RS-422使用差分信號,RS-232使用非平衡參考地的信號。差分傳輸使用兩根線發(fā)送和接收信號,對比RS-232,它能更好的抗噪聲和有更遠的傳輸距離。在工業(yè)環(huán)境中更好的抗噪性和更遠的傳輸距離是一個很大的優(yōu)點。
1、抗干擾性:RS485 接口是采用平衡驅(qū)動器和差分接收器的組合,抗噪聲干擾性好。RS232 接口使用一根信號線和一根信號返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾。
2、傳輸距離:RS485 接口的傳輸距離標準值為 1200 米(9600bps 時),實際上可達 3000 米。RS232 傳輸距離有限,傳輸距離標準值為 50 米,實際上也只能用在 15 米左右。
3、通信能力:RS-485 接口在總線上是允許連接多達128個收發(fā)器,用戶可以利用單一的 RS-485 接口方便地建立起設(shè)備網(wǎng)絡(luò)。RS-232只允許一對一通信。
4、傳輸速率:RS-232傳輸速率較低,在異步傳輸時,波特率為 20Kbps。RS-485 的數(shù)據(jù)傳輸速率為 10Mbps 。
5、信號線:RS485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號線。RS-232 口一般只使用 RXD、TXD、GND 三條線 。
6、電氣電平值:RS-485的邏輯"1"以兩線間的電壓差為+(2-6) V 表示;邏輯"0"以兩線間的電壓差為-(2-6)V 表 示 。在 RS-232-C 中任何一條信號線的電壓均為負邏輯關(guān)系。即:邏輯"1",-5- -15V;邏輯"0 " +5- +15V 。
RS-485的電氣性能與RS-422一樣。主要的區(qū)別在于:
1、RS-422 有4 根信號線:兩根發(fā)送(Y、Z)、兩根接收(A、B)。由于RS-422 的收與發(fā)是分開的所以可以同時收和發(fā)(全雙工)。
2、RS-485 只有兩根數(shù)據(jù)線:發(fā)送和接收都是A 和B。由于RS-485 的收與發(fā)是共用兩根線,所以不能同時收和發(fā)(半雙工)。
RS-485標準采用平衡式發(fā)送,差分式接收的數(shù)據(jù)收發(fā)器來驅(qū)動總線,具體規(guī)格要求:
接收器的輸入電阻RIN≥12kΩ
驅(qū)動器能輸出±7V的共模電壓
輸入端的電容≤50pF
在節(jié)點數(shù)為32個,配置了120Ω的終端電阻的情況下,驅(qū)動器至少還能輸出電壓1.5V(終端電阻的大小與所用雙絞線的參數(shù)有關(guān))
接收器的輸入靈敏度為200mV(即(V+)-(V-)≥0.2V,表示信號“0”;(V+)-(V-)≤-0.2V,表示信號“1”)
因為RS-485的遠距離、多節(jié)點(32個)以及傳輸線成本低的特性,使得EIA RS-485成為工業(yè)應(yīng)用中數(shù)據(jù)傳輸?shù)臉藴省?/p>
(1) RS-485 的電氣特性:發(fā)送端:邏輯“0”以兩線間的電壓差+(2 ~6)V 表示;邏輯“1”以兩線間的電壓差-(2 ~6)V 表示。接收端:A 比B 高200mV 以上即認為是邏輯“0”,A 比B 低200mV 以上即認為是邏輯“1”;
(2) RS-485 的數(shù)據(jù)傳輸速率為10Mbps。但是由于RS-485 常常要與PC 機的RS-232 口通信,所以實際上一般115.2Kbps。又由于太高的速率會使RS-485 傳輸距離減小,所以往往為9600bps 左右或以下;
(3) RS-485 接口是采用平衡驅(qū)動器和差分接收器的組合,抗噪聲干擾性好;
(4) RS-485 接口的傳輸距離標準為1200 米(9600bps 時),實際上可達3000米,RS-485 接口在總線上是容許連接多達128 個收發(fā)器、即RS-485 具有多機通信功能,這樣用戶可以利用單一的RS-485 接口方便的建立起網(wǎng)絡(luò)。因為RS-485 接口組成的半雙工網(wǎng)絡(luò),一般只需二根信號線,所以RS-485 接口均采用雙絞線傳輸。RS-485 的國際標準并沒有規(guī)定RS-485 的接口連接器標準、所以采用接線端子或者DB-9、DB-25 等連接器都可以。
在使用RS-485 接口時,對于特定的傳輸線徑,從發(fā)生器到負載其數(shù)據(jù)信號傳輸所容許的電纜長度是數(shù)據(jù)信號速率的函數(shù),這個長度數(shù)據(jù)主要是受信號失真及噪聲等影響所限制。電纜長度與信號速率的關(guān)系曲線是使用24AWG 銅芯雙絞電話電纜(線徑為0.51mm),線間旁路電容為52.5PF/M,終端負載電阻為100 歐時所得出的。(引自GB11014-89 附錄A)。當數(shù)據(jù)信號速率降低到90Kbit/S 以下時,假定容許的信號損失為6dBV 時,則電纜長度被限制在1200m。實際上,在實用時是可以取得比它大的電纜長度。當使用不同線徑的電纜,則取得的電纜長度是不相同的。例如:當數(shù)據(jù)信號速率為600Kbit/S 時,采用24AWG 電纜,電纜長度是200m,若采用19AWG電纜(線徑為0.91mm)則電纜長度將可以大于200m;若采用28AWG 電纜(線徑為0.32mm),則電纜長度只能小于200m。
RS-485的遠距離通信建議采用屏蔽電纜,并且將屏蔽層作為地線。
串口是一種非常通用的設(shè)備接口,是儀器儀表設(shè)備常用的通信接口,常用于遠程采集設(shè)備數(shù)據(jù)或者實現(xiàn)遠程控制。串口的開發(fā)也比較簡單,是很多工程師最喜歡的接口之一。