UART、RS232、RS422和RS485解讀
串口通訊是硬件工程師經(jīng)常接觸的一個概念,你是否也分不清RS232、RS422、RS485、UART它們之間的關(guān)系,每次見到其中的一個,就像見到熟悉的陌生人,雖說認(rèn)識,卻不知道它有什么特點,殊途同歸的感覺。
先來一段網(wǎng)上比較精辟的總結(jié)。
公交運行可以簡單分成兩個部分:
1、車站
2、公路
其中車站決定了車上裝什么(人),怎么發(fā)送(班次)等。
當(dāng)汽車跑在路上,就要遵守公路交通的規(guī)則,過橋有過橋的規(guī)則,高速有高速的規(guī)則,和車站沒有關(guān)系了。
回到串口通訊,其實,UART就相當(dāng)于車站,而RS232/RS485則對應(yīng)于公路的規(guī)則。
UART,是通用異步收發(fā)傳輸器(Universal Asynchronous Receiver/Transmitter),既然是“器”,顯然,它就是個設(shè)備而已,要完成一個特定的功能的硬件,它本身并不是協(xié)議。那么它要完成什么功能呢?它的最基本功能,是數(shù)據(jù)收發(fā)和串并轉(zhuǎn)換。也就相當(dāng)于車站,決定裝什么人以及怎么樣把人裝上去。
RS232/RS485,是兩種不同的電氣協(xié)議,也就是說,是對電氣特性以及物理特性的規(guī)定,作用于數(shù)據(jù)的傳輸通路上,它并不內(nèi)含對數(shù)據(jù)的處理方式。比如,最顯著的特征是:RS232使用3-15v有效電平,而UART,因為對電氣特性并沒有規(guī)定,所以直接使用CPU使用的電平,就是所謂的TTL電平(可能在0~3.3V之間)。更具體的,電氣的特性也決定了線路的連接方式,比如RS232,規(guī)定用電平表示數(shù)據(jù),因此線路就是單線路的,用兩根線才能達到全雙工的目的;而RS485, 使用差分電平表示數(shù)據(jù)(邏輯“1”為+(2-6)V,邏輯“0”為-(2-6)V),因此,必須用兩根線才能達到傳輸數(shù)據(jù)的基本要求,要實現(xiàn)全雙工,必需用4根線。但是,無論使用RS232還是RS485,它們與UART是相對獨立的,但是由于電氣特性的差別,必須要有專用的器件和UART接駁(例如MAX232),實現(xiàn)電平轉(zhuǎn)換,才能完成數(shù)據(jù)在線路和UART之間的正常流動。
總結(jié):從某種意義上,可以說,線路上存在的僅僅是電流,RS232/RS485規(guī)定了這些電流在什么樣的線路上流動和流動的形式;在UART那里,電流才被解釋和組裝成數(shù)據(jù),并變成CPU可直接讀寫的形式。
RS232簡介
①RS232接口符合由美國電子工業(yè)協(xié)會(EIA)制定的串行數(shù)據(jù)通信接口標(biāo)準(zhǔn)。它被廣泛應(yīng)用于計算機串行接口外設(shè)連接。
②電氣特性:RS232接口任何一條信號線的電壓均為負(fù)邏輯關(guān)系。即:邏輯“1”為-3—-15V;邏輯“0”:+3—+15V,噪聲容限為2V。即要求接收器能識別高于+3V的信號作為邏輯“0”,低于-3V的信號作為邏輯“1”,TTL電平為5V為邏輯正,0為邏輯負(fù)。與TTL電平不兼容故需使用電平轉(zhuǎn)換電路方能與TTL電路連接。
③接口使用一組收發(fā)線構(gòu)成共地的傳輸形式,這種傳輸方式很容易受到共模信號的干擾,因此抗噪聲干擾性弱。
④傳輸速率較低,傳輸距離有限,實際應(yīng)用中只能在15米左右。
⑤RS232常用的3線制連接方式為2、3交叉5直連,即兩個接口之間TXD和RXD互聯(lián),GND直接連接,其余接口不連接。其余接口連接時起流控作用,這里的“流”指的是數(shù)據(jù)流。數(shù)據(jù)在數(shù)據(jù)線上進行傳輸難免會出現(xiàn)錯誤,為了減少錯誤的發(fā)生,某些應(yīng)用條件下需要流控信號來進行信號傳輸過程的控制。
RS485簡介
①在通信距離要求為幾十米到上千米時,廣泛采用RS485串行通信總線。能達到長傳輸距離,主要原因是它采用平衡發(fā)送和差分接收,具有抑制共模信號干擾的能力。
②電氣特性:邏輯“1”以兩線間的電壓差+2V~+6V表示,邏輯“0”以兩線間的電壓差-6V~-2V表示。接口信號電平比RS-232-C降低了,就不容易損壞接口電路芯片,且該電平與TTL電平兼容,刻方便與TTL電路連接。
③RS-485接口的最大傳輸距離實際上可達3000米。
④RS-232-C接口在總線上只允許連接一個收發(fā)器,即單站能力;而RS-485接口在總線上只允許連接多達128個收發(fā)器,即具有多站能力,這樣用戶可以利用單一的RS-485接口方便地建立設(shè)備網(wǎng)絡(luò)。
⑤RS485半雙工接法為:RX+和TX+并聯(lián)為Data+;RX-和TX-并聯(lián)為Data-。
RS422簡介
①RS-422標(biāo)準(zhǔn)全稱是“平衡電壓數(shù)字接口電路的電氣特性”,它定義了接口電路的特性。實際上還有一根信號地線,共5根線。由于接收器采用高輸入阻抗和發(fā)送驅(qū)動器比RS232更強的驅(qū)動能力,故允許在相同傳輸線上連接多個接收節(jié)點,最多可接10個節(jié)點。一個主設(shè)備(Master),其余為從設(shè)備(Slave),從設(shè)備之間不能通信,所以RS-422支持點對多的雙向通信。接收器輸入阻抗為4k,故發(fā)端最大負(fù)載能力是10×4k+100Ω(終接電阻)。
②電氣特性:RS422的電氣特性與RS485完全一樣。主要區(qū)別:RS422有4根信號線:兩根發(fā)送(TXD+、TXD-)、兩根接收(RXD+、RXD-)。由于RS-422的收與發(fā)是分開的所以可以同時接收和發(fā)送(全雙工)。
RS232/RS485/RS422三者間的區(qū)別
1、RS232是全雙工的,RS485是半雙工的,RS422是全雙工的。
2、RS485與RS232僅僅是通訊的物理協(xié)議(即接口標(biāo)準(zhǔn))有區(qū)別,RS485是差分傳輸方式,RS232是單端傳輸方式,但通訊程序沒有太多的差別。
PC機上已經(jīng)配備有RS232,直接使用就行了,若使用RS485通訊,只要在RS232端口上配接一個RS232轉(zhuǎn)RS485的轉(zhuǎn)換頭就可以了,不需要修改程序。