特點
RS-232是現在主流的串列通信接口之一。由於RS232接口標準出現較早,難免有不足之處,主要有以下四點:
(1)接口的信號電平值較高,易損壞接口電路的晶片。RS232接口任何一條信號線的電壓均為負邏輯關係。即:邏輯“1”為-3— -15V;邏輯“0”:+3— +15V ,噪聲容限為2V。即要求接收器能識別高於+3V的信號作為邏輯“0”,低於-3V的信號作為邏輯“1”,TTL電平為5V為邏輯正,0為邏輯負 。與TTL電平不兼容故需使用電平轉換電路方能與TTL電路連線。
(2)傳輸速率較低,在異步傳輸時,比特率為20Kbps;因此在51CPLD開發板中,綜合程式波特率只能採用19200,也是這個原因。
(3)接口使用一根信號線和一根信號返回線與地線構成共地的傳輸形式,這種共地傳輸容易產生共模干擾,所以抗噪聲干擾性弱。
(4)傳輸距離有限,最大傳輸距離標準值為50英尺,實際上也只能用在15米左右。
分類
DB9
1 DCD 載波檢測
2 RXD 接收數據
3 TXD 傳送數據
4 DTR 數據終端準備好
5 SGND信號地線
6 DSR數據準備好
7 RTS 請求傳送
8 CTS 清除傳送
9 RI 振鈴提示
DB25
1 禁止地線
2 TXD 傳送數據
3 RXD 接收數據
4 RTS 請求傳送
5 CTS 允許傳送
6 DSR 數據準備好
7 SG 信號地
8 DCD 載波檢測
9 傳送返回(+)
10 未定義
11 數據傳送(-)
12~17 未定義
18 數據接收(+)
19 未定義
20 數據終端準備好 DTR
21 未定義
22 振鈴 RI
23~24 未定義
25 接收返回(-)標準的細節
DB25轉DB9
25芯接口 | 9芯接口 |
2 | 3 |
3 | 2 |
4 | 7 |
5 | 8 |
6 | 6 |
7 | 5 |
8 | 1 |
20 | 4 |
22 | 9 |
在RS-232標準中,字元是以一串列的比特串來一個接一個的串列(serial)方式傳輸,優點是傳輸線少,配線簡單,傳送距離可以較遠。最常用的編碼格式是異步起停(asynchronous start-stop)格式,它使用一個起始比特後面緊跟7或8 個數據比特(bit),然後是可選的奇偶校驗比特,最後是一或兩個停止比特。所以傳送一個字元至少需要10比特,帶來的一個好的效果是使全部的傳輸速率,傳送信號的速率以10劃分。一個最平常的代替異步起停方式的是使用高級數據鏈路控制協定(HDLC)。
在RS-232標準中定義了邏輯1和邏輯0電壓級數,以及標準的傳輸速率和連線器類型。信號大小在正的和負的3-15v之間。RS-232規定接近0的電平是無效的,邏輯1規定為負電平,有效負電平的信號狀態稱為傳號marking,它的功能意義為OFF,邏輯0規定為正電平,有效正電平的信號狀態稱為空號spacing,它的功能意義為ON。根據設備供電電源的不同,±5、±10、±12和±15這樣的電平都是可能的。
mark和space是從電傳打字機中來的術語。電傳打字機原始的通信是一個簡單的中斷直流電路模式,類似與圓轉盤電話撥號的中的信號。Marking狀態是指電路是斷開的,spacing狀態就是指電路是接通的。一個space就表明有一個字元要開始傳送了,相應的停止的時候,停止位就是marking。當線路中斷的時候,電傳打字機不列印任何有效字元,周期性的連續收到全0信號
RS-232設計之初是用來連線數據機做傳輸之用,也因此它的腳位意義通常也和數據機傳輸有關。RS-232的設備可以分為數據終端設備(DTE,Data Terminal Equipment, For example, PC)和數據通信設備(DCE,Data Communication Equipment)兩類,這種分類定義了不同的線路用來傳送和接受信號。一般來說,計算機和終端設備有DTE連線器,數據機和印表機有DCE連線器。但是這么說並不是總是嚴格正確的,用配線分接器測試連線,或者用試誤法來判斷電纜是否工作,常常需要參考相關的檔案說明。
RS-232指定了20個不同的信號連線,由25個D-sub(微型D類)管腳構成的DB-25連線器。很多設備只是用了其中的一小部分管腳,出於節省資金和空間的考慮不少機器採用較小的連線器,特別是9管腳的D-sub或者是DB-9型連線器被廣泛使用絕大多數自IBM的AT機之後的PC機和其他許多設備上。DB-25和DB-9型的連線器在大部分設備上是雌型,但不是所有的都是這樣。最近,8管腳的RJ-45型連線器變得越來越普遍,儘管它的管腳分配相差很大。EIA/TIA 561標準規定了一種管腳分配的方法,但是由Dave Yost發明的被廣泛使用在Unix計算機上的Yost串連設備配線標準("Yost Serial Device Wiring Standard")以及其他很多設備都沒有採用上述任一種連線標準。
下表中列出的是被較多使用的RS-232中的信號和管腳分配:
DB9 Male (Pin Side) DB9 Female (Pin Side)
------------- -------------
\ 1 2 3 4 5 / \ 5 4 3 2 1 /
\ 6 7 8 9 / \ 9 8 7 6 /
--------- ---------信號 DB-25 DB-9 EIA/TIA 561 Yost
公共接地 7 5 4 4,5
傳送數據(TD) 2 3 6 3
接受數據(RD) 3 2 5 6
數據終端準備(DTR) 20 4 3 2
數據準備好(DSR) 6 6 1 7
請求傳送(RTS) 4 7 8 1
清除傳送(CTS) 5 8 7 8
數據載波檢測(DCD) 8 1 2 7
振鈴指示(RI) 22 9 1 -
TXD DTE->DCE DTE SEND DATA
RXD DCE->DTE DTE RECEIVE DATA
RTS DTE->DCE DTE REQUEST SEND
CTS DCE->DTE ACK TO DTE'S RTS
DSR DCE->DTE DCE IS READY
GND
DCD DCE->DTE DC DETECTED
DTR DTE->DCE DTE IS READY
RI DCE->DTE RING INDICATION
信號的標註是從DTE設備的角度出發的,TD、DTR和RTS信號是由DTE產生的,RD、DSR、CTS、DCD和RI信號是由DCE產生的。接地信號是所有連線都公共的,在Yost的標準中接地信號外部有兩個管腳事實上是同一個信號。如果兩個通信設備的距離相差的很遠或者是有兩個不同的供電系統供電,那么地信號在兩個設備間會不一樣,從而導致通信失敗,跟蹤描述這樣的情形是很困難的。
電纜
由於RS-232實現中的各種不同和矛盾,要決定使用哪個合適的電纜來連線兩個通信設備不是一件非常容易的事。用同一種類型的連線器來連線DCE和DTE設備需要直接的電纜還要有合適的終點。凹凸轉換器被用於電纜和連線器間解決性別失配問題。用不同連線器來連線設備需要根據上表,用不同的電纜來連線相應的管腳。電纜一端9管腳,另一端25管腳是很普通的,生產以RJ-45型為連線器的設備廠家通常都會提供DB-25 或者DB-9型接頭的電纜(有時候則是接頭可交換的電纜,可供多種設備工作)。
連線兩個DTE設備需要一個虛擬數據機來充當DCE交換相應的信號(TD-RD, DTR-DSR, and RTS-CTS)。這個可以由單獨的設備加上兩根電纜或者用一根電纜來完成。Yost標準里虛擬數據機是一個全反線,它把一個連線埠的1到8號管腳翻轉和另一個連線埠的8到1號管腳相連線(不要和乙太網的反絞線混淆,乙太網反絞線接線是非常不同的)。
為了配置和診斷RS-232電纜,可以採用配線分接器。配線分接器有凹凸RS-232連線器,可以內嵌式的連線線路,而且提供對應每個管腳的顯示燈,還可以各種配置方式連線管腳。
RS-232電纜和很多連線器都可以在電子產品的商店找到,電纜可能是3到25個管腳的,典型套用的是4到6個管腳的。平RJ(電話線類型)電纜可以和專門的RJ-RS-232連線器一起使用,後者是最容易配置的連線器。
雙向接口能夠只需要3根線製作是因為RS-232的所有信號都共享一個公共接地。非平衡電路使得RS-232非常的容易受兩設備間基點電壓偏移的影響。對於信號的上升期和下降期,RS-232也只有相對較差的控制能力,很容易發生串話的問題。RS-232被推薦在短距離(15m以內)間通信。由於非對稱電路的關係,RS-232接口電纜通常不是由雙絞線製作的。
有些設備也需要“握手”協定,例如,20號管腳一般用於指示“設備就緒”。管腳也可是跳過的或者從連線器接回。例如設備A的一個管腳傳送信號詢問對方“你準備好了嗎?” 假如設備B沒有傳送這樣的指示信號。公共的握手管腳為20、8、4和6。
設定
串列通信在軟體設定里需要做多項設定,最常見的設定包括波特率(Baud Rate)、奇偶校驗(Parity Check)和停止位(Stop Bit)。
波特率(又稱鮑率):是指從一設備發到另一設備的波特率,即每秒鐘多少比特bits per second (bit/s)。典型的波特率是300, 1200, 2400, 9600, 15200, 19200等bit/s。一般通信兩端設備都要設為相同的波特率,但有些設備也可以設定為自動檢測波特率。
奇偶校驗(Parity:是用來驗證數據的正確性。奇偶校驗一般不使用,如果使用,那么既可以做奇校驗(Odd Parity)也可以做偶校驗(Even Parity)。奇偶校驗是通過修改每一傳送位元組(也可以限制傳送的位元組)來工作的。如果不作奇偶校驗,那么數據是不會被改變的。在偶校驗中,因為奇偶校驗位會被相應的置1或0(一般是最高位或最低位),所以數據會被改變以使得所有傳送的數位(含字元的各數位和校驗位)中“1”的個數為偶數;在奇校驗中,所有傳送的數位(含字元的各數位和校驗位)中“1”的個數為奇數。奇偶校驗可以用於接受方檢查傳輸是否傳送生錯誤——如果某一位元組中“1”的個數發生了錯誤,那么這個位元組在傳輸中一定有錯誤發生。如果奇偶校驗是正確的,那么要么沒有發生錯誤要么發生了偶數個的錯誤。如果用戶選擇數據長度為8位,則因為沒有多餘的比特可被用來作為同比特,因此就叫做“無位元(Non Parity)”。
停止位:是在每個位元組傳輸之後傳送的,它用來幫助接受信號方硬體重同步。
RS-232在傳送數據時,並不需要另外使用一條傳輸線來傳送同步信號,就能正確的將數據順利傳送到對方,因此叫做“異步傳輸”,簡稱UART(Universal Asynchronous Receiver Transmitter),不過必須在每一筆數據的前後都加上同步信號,把同步信號與數據混和之後,使用同一條傳輸線來傳輸。比如數據11001010被傳輸時,數據的前後就需加入Start(Low)以及Stop(High)等兩個比特,值得注意的是,Start信號固定為一個比特,但Stop停止比特則可以是1、1.5或者是2比特,由使用RS-232的傳送與接收兩方面自行選擇,但需注意傳送與接受兩者的選擇必須一致。 在串列通信軟體設定中D/P/S是常規的符號表示。8/N/1(非常普遍)表明8bit數據,沒有奇偶校驗,1bit停止位。數據位可以設定為7、8或者9,奇偶校驗位可以設定為無(N)、奇(O)或者偶(E),奇偶校驗可以使用數據中的比特(bit),所以8/E/1就表示一共8位數據位,其中一位用來做奇偶校驗位。停止位可以是1、1.5或者2位的(1.5是用在波特率為60wpm的電傳打字機上的)。
流量控制:當需要傳送握手信號或數據完整性檢測時需要制定其他設定。公用的組合有RTS/CTS, DTR/DSR或者XON/XOFF(實際中不使用連線器管腳而在數據流內插入特殊字元)。
接受方把XON/XOFF信號發給傳送方來控制傳送方何時傳送數據,這些信號是與傳送數據的傳輸方向相反的。XON信號告訴傳送方接受方準備好接受更多的數據,XOFF信號告訴傳送方停止傳送數據直到知道接受方再次準備好。XON/XOFF一般不贊成使用,推薦用RTS/CTS控制流來代替它們。 XON/XOFF是一種工作在終端間的帶內方法,但是必須兩端都支持這個協定,而且在突然啟動的時候會有混淆的可能。 XON/XOFF可以工作於3線的接口。RTS/CTS最初是設計為電傳打字機和數據機半雙工協作通信的,每次它只能一方數據機傳送數據。終端必須傳送請求傳送信號然後等到數據機回應清除傳送信號。儘管RTS/CTS是通過硬體達到握手,但它有自己的優勢。
ASR(Automatic Send Receive)電傳打字機有一個紙帶讀卡機。當讀卡機讀數據的時候字元被發提交去。ASR電傳打字機里收到一個XOFF字元就關掉紙帶讀卡機收到一個XON字元就啟動紙帶讀卡機。當遠端系統有必要降低傳送放的速率時就發出XOFF。在原始的系統中,訊息要用紙帶事先準備好,傳送的時間才能被縮短。那時的頻寬非常有限並且昂貴,有時候傳輸不得不推遲到晚上進行,這也正推動了簡明電報表達的發展。在有些早期的小型機中,ASR紙帶讀卡機和紙帶穿孔器也是唯一的恢復程式的方法。
規範
•ITU-T (前 CCITT) 的對應規範,用語不同,但電氣規格幾乎相同
•ITU-T V.28
•具有相似的通信目的,但功能與電氣規範不同
•RS-422
•RS-423
•RS-449
•RS-485
•RS-232 tutorial
•Yost Serial Device Wiring Standard
•Serial Port Basics
•RS232 serial port info
•Printable ASCII Serial Port Crib Sheets