轉自:點擊打開鏈接http://wpp9977777.blog.163.com/blog/static/4625100720138411281980/
UART和RS232/RS485的關係是什麼?
串口通訊是電子工程師和嵌入式開發工程師面對的最基本問題,RS232則是其中最簡單最常用的通訊方式。但是初學者往往搞不清有關的名詞如UART和RS232或RS485之間是什麼關係,因爲它們經常被放到語句中同等的位置使用。在百度搜索二者的區別,可以看到排在最前面的答案充斥着混淆的概念。就此,談談我對這幾個概念的理解,希望能幫初學者釐清它們之間的關係。
通訊問題,和交通是一樣的。串口通信,我們這裏可以用公交來類比。
公交運行可以簡單分成兩個部分:
1、車站
2、公路
其中車站決定了車上裝什麼(人),怎麼發送(班次)等。
當汽車跑在路上,就要遵守公路交通的規則,過橋有過橋的規則,高速有高速的規則,和車站沒有關係了。
回到串口通訊,其實,UART就相當於車站,而RS232/RS485則對應於公路的規則。
UART,是通用異步收發傳輸器(Universal Asynchronous Receiver/Transmitter),既然是“器”,顯然,它就是個設備而已,要完成一個特定的功能的硬件,它本身並不是協議。那麼它要完成什麼功能呢?它的最基本功能,是串行數據和並行數據之間的轉換。我們知道,計算機中的數據以Byte爲基本單位,對一個Byte的存取是並行的,即,同時取得/寫入8個bit。而串行通信,需要把這個Byte“打碎”,按照時間順序來收發以實現串行。例如:
內存中的數據是: 1 1 1 0 0 1 0 1
串行發送的實際效果是(按時間排序。這裏的例子是小端發送模式,是基本的串口傳輸方式,但是,大端模式的串口傳輸模式也是存在的,少見而已):
1
0
1
0
0
1
1
1
接收則是上述過程的逆過程。
這就是UART做的最基本工作,進一步的,它還要控制“發車的班次”,比如確認一個Byte的這8個bit是什麼時候開始的,又是什麼時候結束的,兩個班次之間至少要隔多長時間的緩衝,等等。這一部分,也具有協議的特徵,但是相對於道路上的協議,更具有一般性,或曰,是與車在什麼道路上開,相對獨立的。
那麼道路上的規定是什麼樣的呢?
RS232/RS485,是兩種不同的電氣協議,也就是說,是對電氣特性以及物理特性的規定,作用於數據的傳輸通路上,它並不內含對數據的處理方式。比如,最顯著的特徵是:RS232使用3-15v有效電平,而UART,因爲對電氣特性並沒有規定,所以直接使用CPU使用的電平,就是所謂的TTL電平(可能在0~3.3V之間)。更具體的,電氣的特性也決定了線路的連接方式,比如RS232,規定用電平表示數據,因此線路就是單線路的,用兩根線才能達到全雙工的目的;而RS485, 使用差分電平表示數據,因此,必須用兩根線才能達到傳輸數據的基本要求,要實現全雙工,必需用4根線。但是,無論使用RS232還是RS485,它們與UART是相對獨立的,但是由於電氣特性的差別,必須要有專用的器件和UART接駁,才能完成數據在線路和UART之間的正常流動。(yasin:從這裏理解,uart是和cpu直接相連的並串轉換器件,而rs232和rs485就是連接在uart器件上的phy,經由這個phy在線路上產生相應的波形。那麼uart和rs232和rs485之間的連接具體如何呢?)
RS232甚至規定了接口的具體樣式,圖爲DB9接口
總結:從某種意義上,可以說,線路上存在的僅僅是電流,RS232/RS485規定了這些電流在什麼樣的線路上流動和流動的樣式;在UART那裏,電流才被解釋和組裝成數據,並變成CPU可直接讀寫的形式。
//=======================================================
以下轉自:http://blog.csdn.net/chun_1959/article/details/45054519
RS232和RS485:是規定了數據通信的電氣特性。是物理層的概念,對應的物理期間有RS232或者RS485驅動芯片,將CPU經過UART傳送過來的電壓信號驅動成RS232或者RS485電平邏輯。
異步串口是目前工業設備最主要的通訊接口之一。在具體的工業現場中,串口的電氣接口以RS232和RS485最爲普遍。串口大多以TTL信號形式從板卡的管腳輸入輸出,客戶需要在自己的應用底板上加入相應的驅動電路單元,以獲得所需的串口接口,如RS232或RS485。在實際的應用中,由於現場的設備串口接口的情況並不確定,這樣就要求客戶設備同時具備RS232和RS485兩種接口的功能。
RS232接口是採用正負電平的單極性信號,一般以3線制的接口最爲普遍,信號包括RS232_TX、RS232_RX及GND,具有全雙工通訊能力。RS485接口採用一對TTL電平的差分信號RS485_D-和RS485_D+,只能半雙工通訊,在通訊方向(接收或發送)的切換方面,一般有兩種方式:一種方式是利用TTL_TXD經過一定處理作爲方向控制,這種方式也稱爲自動方向切換方式;另一種方式是使用串口的RTS控制線來控制方向,RTS有效時處於發送狀態,無效時處於接收狀態。
RS485接口連接器採用DB-9的9芯插頭座,與智能終端RS485接口採用DB-9(孔),與鍵盤連接的鍵盤接口RS485採用DB-9(針)。
"RS-485"是否與"半雙工"等同?
答:否,RS-485接口可連接成半雙工和全雙工兩種通信方式,半雙工通信芯片有SN75176,SN751276,SN75LBC184,MAX485,MAX1478,MAX3082,MAX1483,全雙工通信的有:SN75179,SN75180,MAX488-491,MAX1482 等
二、RS232 與 RS485 的區別:
一.抗干擾性:
1.. RS485 接口是採用平衡驅動器和差分接收器的組合,抗噪聲干擾性好。 2. RS232 接口使用一根信號線和一根信號返回線而構成共地的傳輸形式,這種共地傳輸容 易產生共模干擾,所以抗噪聲干擾性弱。
二.傳輸距離:
1.RS485 接口的最大傳輸距離標準值爲 1200 米(9600bps 時),實際上可達 3000 米。 2. RS232 傳輸距離有限,最大傳輸距離標準值爲 50 米,實際上也只能用在 15 米左右。
三.通信能力:
1.RS-485 接口在總線上是允許連接多達 128 個收發器, 即具有多站能力,這樣用戶可以利用 單一的 RS-485 接口方便地建立起設備網絡 。 2.RS-232 只允許一對一通信。
四.傳輸速率:
1. 傳輸速率較低,在異步傳輸時,波特率爲 20Kbps。 2.RS-485 的數據最高傳輸速率爲 10Mbps 。
五.信號線:
1.RS485 接口組成的半雙工網絡,一般只需二根信號線。 2.RS-232 口一般只使用 RXD、TXD、GND 三條線,即"發送數據"、"接收數據"和"信號地" 。
六.電氣電平值:
1.邏輯"1"以兩線間的電壓差爲+(2-6) V 表示;邏輯"0"以兩線間的電壓差爲-(2-6)V 表 示 。 2.在 RS-232-C 中任何一條信號線的電壓均爲負邏輯關係。即:邏輯"1",-5- -15V;邏輯"0 " +5- +15V 。噪聲容限爲 2V。即要求接收器能識別低至+3V 的信號作爲邏輯"0",高到-3 V 的信號作爲邏輯"1" 。 3.RS232 接口的信號電平值較高, 易損壞接口電路的芯片, 又因爲與 TTL 電平不兼容故需使 用電平轉換電路方能與 TTL 電路連接。 4.RS485 接口信號電平比 RS-232-C 降低了,就不易損壞接口電路的芯片, 且該電平與 TTL 電平兼容,可方便與 TTL 電路連接。
RS232 與 RS485 的聯繫:
1.都可通過 DB-9 連接器連接. 2.接口均可採用屏蔽雙絞線傳輸。 3.都是串行通信。 4.通信方式都是全雙工。 (一般情況 485 是半雙工)
由於有的設備是232接口的,有的是485接口的,如果有一臺232接口的設備與一臺485接口的設備通信,那就需要一個RS232/RS485轉換器,把232接口的設備的232信號轉換成485信號,然後再與485接口的設備通信。如果是兩臺232接口的設備要進行遠距離的通信,那隻要加上兩個RS232/RS485轉換電路就可以了。
市場上所謂的“無源RS232/RS485轉換器”採用從計算機串口偷電技術,而“有源RS232/RS485轉換器”在電路原理圖與跟前者差不多,只是電源部分有所改動而已。
RS232和RS485引腳分配
表1 RS-232端的引腳分配
DB9Female(PIN) |
RS-232C接口信號 |
1 |
保護地 |
2 |
接收數據SIN(RXD) |
3 |
發送數據SOUT(TXD) |
4 |
數據終端準備DTR |
5 |
信號地GND |
6 |
數據裝置準備DSR |
7 |
請求發送RTS |
8 |
清除發送CTS |
9 |
響鈴指示R1 |
表2 RS-485端的引腳分配
DB9Male(PIN) |
輸出信號 |
RS-485半雙工接線 |
1 |
T/R+ |
RS-485(A+) |
2 |
T/R- |
RS-485(B-) |
3 |
RXD+ |
空 |
4 |
RXD- |
空 |
5 |
GND |
地線 |
6 |
VCC |
+5V備用電源輸入 |
表1中因爲不使用監控計算機的傳送控制信號,所以只需三條接口線,即“發送數據”、“接收數據”和“信號地”。表2中T/R+、T/R-代表收發A+、B-,VCC代表備用電源輸入,GND代表公共地線,點到點、點到多點、半雙工通信接兩根線(T/R+、T/R-),接線原則“發/收+”接對方的“發/收+” 、“發/收-”接對方的“發/收-” ,RS-485半雙工模式接線時將T/R+(發/收+)接對方的A+ 、T/R-(發/收-)接對方的B-。
"RS-485"是否與"半雙工"等同?
答:否,RS-485接口可連接成半雙工和全雙工兩種通信方式,半雙工通信芯片有SN75176,SN751276,SN75LBC184,MAX485,MAX1478,MAX3082,MAX1483,全雙工通信的有:SN75179,SN75180,MAX488-491,MAX1482 等。
三、參考文獻:
http://www.360doc.com/content/13/1119/18/13253385_330564821.shtml
http://www.360doc.com/content/11/0404/16/1317564_107153860.shtml (重要,可以仔細的看一下)
http://www.chinadmd.com/file/xoawuzuvowzx66r63iwrpuae_1.html