串口通訊是電子工程師面對的最基本的一個(gè)通訊方式,RS-232是其中最簡單的一種。很多初學(xué)者往往搞不清楚UART和RS-232、RS-422、RS-485的聯(lián)系和區(qū)別,本文將談?wù)勥@幾個(gè)概念的理解,幫助大家理清它們之間的關(guān)系。
如果把串口通訊比做交通,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)是通信線路簡單,利用簡單的線纜就可實(shí)現(xiàn)通信,降低成本,適用于遠(yuǎn)距離通信,但傳輸速度慢的應(yī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ù)?,接收設(shè)備在收到起始信號(hào)之后只要在一個(gè)字符的傳輸時(shí)間內(nèi)能和發(fā)送設(shè)備保持同步就能正確接收。下一個(gè)字符起始位的到來又使同步重新校準(zhǔn)(依靠檢測起始位來實(shí)現(xiàn)發(fā)送與接收方的時(shí)鐘自同步的)
二、RS-232標(biāo)準(zhǔn)
RS-232是美國電子工業(yè)協(xié)會(huì)EIA(Electronic Industry Association)制定的一種串行物理接口標(biāo)準(zhǔn)。RS是英文“推薦標(biāo)準(zhǔn)”的縮寫,232為標(biāo)識(shí)號(hào)。RS-232是對電氣特性以及物理特性的規(guī)定,只作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對數(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 連接器,對連接器的每個(gè)引腳的信號(hào)內(nèi)容加以規(guī)定,還對各種信號(hào)的電平加以規(guī)定。后來IBM的PC 機(jī)將RS-232 簡化成了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)對點(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)采用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為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á)到最大的通信距離,如果需傳輸更長的距離,需要加485中繼器。RS-485總線一般最大支持32個(gè)節(jié)點(diǎn),如果使用特制的485芯片,可以達(dá)到128個(gè)或者256個(gè)節(jié)點(diǎn),最大的可以支持到400個(gè)節(jié)點(diǎn)。
由于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 只容許一對一的通信,沒有考慮構(gòu)成串行總線。(這點(diǎn)很重要,在很多控制場景,是一控多,如果主設(shè)備都需要跟從設(shè)備點(diǎn)對點(diǎn)通信,那現(xiàn)場布線成蜘蛛網(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),對比RS-232,它能更好的抗噪聲和有更遠(yuǎn)的傳輸距離。在工業(yè)環(huán)境中更好的抗噪性和更遠(yuǎn)的傳輸距離是一個(gè)很大的優(yōu)點(diǎn)。
四、RS-232與RS-485對比
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只允許一對一通信。
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對比
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ī)格要求:
驅(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 的國際標(biāo)準(zhǔn)并沒有規(guī)定RS-485 的接口連接器標(biāo)準(zhǔn)、所以采用接線端子或者DB-9、DB-25 等連接器都可以。
在使用RS-485 接口時(shí),對于特定的傳輸線徑,從發(fā)生器到負(fù)載其數(shù)據(jù)信號(hào)傳輸所容許的最大電纜長度是數(shù)據(jù)信號(hào)速率的函數(shù),這個(gè)長度數(shù)據(jù)主要是受信號(hào)失真及噪聲等影響所限制。最大電纜長度與信號(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í),則電纜長度被限制在1200m。實(shí)際上,在實(shí)用時(shí)是完全可以取得比它大的電纜長度。當(dāng)使用不同線徑的電纜,則取得的最大電纜長度是不相同的。例如:當(dāng)數(shù)據(jù)信號(hào)速率為600Kbit/S 時(shí),采用24AWG 電纜,最大電纜長度是200m,若采用19AWG電纜(線徑為0.91mm)則電纜長度將可以大于200m;若采用28AWG 電纜(線徑為0.32mm),則電纜長度只能小于200m。RS-485的遠(yuǎn)距離通信建議采用屏蔽電纜,并且將屏蔽層作為地線。
-
電壓
+關(guān)注
關(guān)注
45文章
5539瀏覽量
115490 -
傳輸速率
+關(guān)注
關(guān)注
0文章
47瀏覽量
16327 -
串行通信
+關(guān)注
關(guān)注
4文章
562瀏覽量
35230
發(fā)布評(píng)論請先 登錄
相關(guān)推薦
評(píng)論