UART\RS232與RS485的關係
https://blog.csdn.net/lhl161123/article/details/53510593
串列埠通訊是電子工程師面對的最基本的一個通訊方式,RS-232是其中最簡單的一種。然而,很多初學者往往搞不清楚UART和RS-232、RS-422、RS-485的聯絡和區別,本文將談談我對這幾個概念的理解,幫助大家理清它們之間的關係。
通訊問題,和交通問題一樣,也有高速、低速、擁堵、中斷等等各種情況。如果把串列埠通訊比做交通,UART比作車站,那麼一幀的資料就好比汽車。汽車跑在路上,要遵守交通規則。如果是市內,一般限速30、40,而高速公路則可以到120。而汽車走什麼路,限速多少,就要看協議怎麼規定了。常見的串列埠協議有RS-232、RS-422、RS-485等,那麼誰才是UART中的高速公路?下面我們就一起來探討一下。
一、UART是什麼
UART是通用非同步收發傳輸器(Universal Asynchronous Receiver/Transmitter),通常稱作UART,是一種非同步收發傳輸器,是裝置間進行非同步通訊的關鍵模組。UART負責處理資料匯流排和序列口之間的串/並、並/串轉換,並規定了幀格式;通訊雙方只要採用相同的幀格式和波特率,就能在未共享時鐘訊號的情況下,僅用兩根訊號線(Rx 和Tx)就可以完成通訊過程,因此也稱為非同步序列通訊。
若加入一個合適的電平轉換器,如SP3232E、SP3485,UART 還能用於RS-232、RS-485 通訊,或與計算機的埠連線。UART 應用非常廣泛,手機、工業控制、PC 等應用中都要用到UART。
二、RS-232標準
RS-232是美國電子工業協會EIA(Electronic Industry Association)制定的一種序列物理介面標準。RS是英文“推薦標準”的縮寫,232為標識號。RS-232是對電氣特性以及物理特性的規定,只作用於資料的傳輸通路上,它並不內含對資料的處理方式。需要說明一下,很多人經常把RS-232、RS-422、RS-485 誤稱為通訊協議,這是很不應該的,其實它們僅是關於UART通訊的一個機械和電氣介面標準(頂多是網路協議中的物理層面)。
該標準規定採用一個25 個腳的DB-25 聯結器,對聯結器的每個引腳的訊號內容加以規定,還對各種訊號的電平加以規定。後來IBM的PC 機將RS-232 簡化成了DB-9 聯結器,從而成為今天的事實標準。而工業控制的RS-232 口一般只使用RXD(2)、TXD(3)、GND(5) 三條線。
三、RS-485/ RS-422標準
RS-232介面可以實現點對點的通訊方式,但這種方式不能實現聯網功能。於是,為了解決這個問題,一個新的標準RS-485產生了。RS-485的資料訊號採用差分傳輸方式,也稱作平衡傳輸,它使用一對雙絞線,將其中一線定義為A,另一線定義為B。
通常情況下,傳送驅動器A、B之間的正電平在+2~+6V,是一個邏輯狀態,負電平在-2~6V,是另一個邏輯狀態。另有一個訊號地C,在RS-485中還有一“使能”端,而在RS-422中這是可用可不用的。
RS-422 的電氣效能與RS-485完全一樣。主要的區別在於:RS-422 有4 根訊號線:兩根傳送、兩根接收。由於RS-422 的收與發是分開的所以可以同時收和發(全雙工),也正因為全雙工要求收發要有單獨的通道,所以RS-422適用於兩個站之間通訊,星型網、環網,不可用於匯流排網;RS-485 只有2 根訊號線,所以只能工作在半雙工模式,常用於匯流排網。
四、RS-232與RS-485效能對比
1.抗干擾性:RS485 介面是採用平衡驅動器和差分接收器的組合,抗噪聲干擾性好。RS232 介面使用一根訊號線和一根訊號返回線而構成共地的傳輸形式,這種共地傳輸容易產生共模干擾。
2.傳輸距離:RS485 介面的最大傳輸距離標準值為 1200 米(9600bps 時),實際上可達 3000 米。RS232 傳輸距離有限,最大傳輸距離標準值為 50 米,實際上也只能用在 15 米左右。
3.通訊能力:RS-485 介面在總線上是允許連線多達128個收發器,使用者可以利用單一的 RS-485 介面方便地建立起裝置網路。RS-232只允許一對一通訊。
4.傳輸速率:RS-232傳輸速率較低,在非同步傳輸時,波特率為 20Kbps。RS-485 的資料最高傳輸速率為 10Mbps 。
5.訊號線:RS485 介面組成的半雙工網路,一般只需二根訊號線。RS-232 口一般只使用 RXD、TXD、GND 三條線 。
6.電氣電平值:RS-485的邏輯"1"以兩線間的電壓差為+(2-6) V 表示;邏輯"0"以兩線間的電壓差為-(2-6)V 表 示 。在 RS-232-C 中任何一條訊號線的電壓均為負邏輯關係。即:邏輯"1",-5- -15V;邏輯"0 " +5- +15V 。
串列埠是一種非常通用的裝置介面,是儀器儀表裝置常用的通訊介面,常用於遠端採集裝置資料或者實現遠端控制。串列埠的開發也比較簡單,是很多工程師最喜歡的介面之一。