RS-232-C
RS-232-C
RS-232-C是OSI基本參考模型物理層部分的規格,它決定了連接器形狀等物理特性、以0和1表示的電氣特性及表示信號意義的邏輯特性。
RS-232-C是EIA發表的,是RS-232-B的修改版。本來是為連接模擬通信線路中的數據機等DCE及電傳印表機等DTE拉介面而標準化的。現在很多個人計算機也用RS-232-C作為輸入輸出介面,用RS-232-C作為介面的個人計算機也很普及。
RS-232-C的如下特點:採用直通方式,雙向通信,基本頻帶,電流環方式,串列傳輸方式,DCE-DTE間使用的信號形態,交接方式,全雙工通信。RS-232-C在ITU建議的V.24和V.28規定的25引腳連接器在功能上具有互換性。RS-232-C所使用的連接器為25引腳插入式連接器,一般稱為25引腳D-SUB。DTE端的電纜頂端接公插頭,DCE端接母插座。RS-232-C所用電纜的形狀並不固定,但大多使用帶屏蔽的24芯電纜。電纜的最大長度為15m。使用RS-232-C在20K位/秒以下的任何速率都能進行數據傳輸。
串列通信介面標準經過使用和發展,目前已經有幾種。但都是在 RS-232標準的基礎上經過改進而形成的。所以,以RS-232C為主來討論。RS-232C標準是美國EIA(電子工業聯合會)與BELL等公司一起開發的1969年公布的通信協議。它適合於數據傳輸速率在0~20000b/s範圍內的通信。這個標準對串列通信介面的有關問題,如信號線功能、電器特性都作了明確規定。由於通信設備廠商都生產與RS-232C制式兼容的通信設備,因此,它作為一種標準,目前已在微機通信介面中廣泛採用。
在討論RS-232C介面標準的內容之前,先說明兩點:
首先,RS-232-C標準最初是遠程通信連接數據終端設備DTE(Data Terminal Equipment)與數據通信設備DCE(Data Communication Equipment)而制定的。因此這個標準的制定,並未考慮計算機系統的應用要求。但目前它又廣泛地被借來用於計算機(更準確的說,是計算機介面)與終端或外設之間的近端連接標準。顯然,這個標準的有些規定及和計算機系統是不一致的,甚至是相矛盾的。有了對這種背景的了解,我們對RS-232C標準與計算機不兼容的地方就不難理解了。
其次,RS-232C標準中所提到的“發送”和“接收”,都是站在DTE立場上,而不是站在DCE的立場來定義的。由於在計算機系統中,往往是CPU和I/O設備之間傳送信息,兩者都是DTE,因此雙方都能發送和接收。
RS -232C標準(協議)的全稱是EIA-RS-232C標準,其中EIA(Electronic Industry Association)代表美國電子工業協會,RS(recommended standard)代表推薦標準,232是標識號,C代表RS232的最新一次修改(1969),在這之前,有RS232B、RS232A。它規定連接電纜和機械、電氣特性、信號功能及傳送過程。常用物理標準還有有EIA-RS-232-C、EIA-RS-422-A、 EIA-RS-423A、EIA-RS-485。這裡只介紹EIA-RS-232-C(簡稱232,RS232)。例如,目前在IBM PC機上的COM1、COM2介面,就是RS-232C介面。
EIA-RS-232C對電器特性、邏輯電平和各種信號線功能都作了規定。
在TxD和RxD上:邏輯1(MARK)=-3V~-15V
邏輯0(SPACE)=+3~+15V
在RTS、CTS、DSR、DTR和DCD等控制線上:
信號有效(接通,ON狀態,正電壓)=+3V~+15V
信號無效(斷開,OFF狀態,負電壓)=-3V~-15V
以上規定說明了RS-323C標準對邏輯電平的定義。對於數據(信息碼):邏輯“1”(傳號)的電平低於-3V,邏輯“0”(空號)的電平高於+3V;對於控制信號;接通狀態(ON)即信號有效的電平高於+ 3V,斷開狀態(OFF)即信號無效的電平低於-3V,也就是當傳輸電平的絕對值大於3V時,電路可以有效地檢查出來,介於-3~+3V之間的電壓無意義,低於-15V或高於+15V的電壓也認為無意義,因此,實際工作時,應保證電平在±(3~15)V之間。
EIA -RS-232C與TTL轉換:EIA-RS-232C是用正負電壓來表示邏輯狀態,與TTL以高低電平表示邏輯狀態的規定不同。因此,為了能夠同計算機介面或終端的TTL器件連接,必須在EIA-RS-232C與TTL電路之間進行電平和邏輯關係的變換。實現這種變換的方法可用分立元件,也可用集成電路晶元。目前較為廣泛地使用集成電路轉換器件,如MC1488、SN75150晶元可完成TTL電平到EIA電平的轉換,而MC1489、SN75154可實現EIA電平到TTL電平的轉換。MAX232晶元可完成TTL←→EIA雙向電平轉換,圖1顯示了1488和1489的內部結構和引腳。MC1488 的引腳⑵、(4,5)、(9,10)和(12,13)接TTL輸入。引腳3、6、8、11輸出端接EIA-RS-232C。MC1498的14的1、 4、10、13腳接EIA輸入,而3、6、8、11腳接TTL輸出。具體連接方法如圖2所示。圖中的左邊是微機串列介面電路中的主晶元UART,它是 TTL器件,右邊是EIA-RS-232C連接器,要求EIA高電壓。因此,RS-232C所有的輸出、輸入信號都要分別經過MC1488和MC1498轉換器,進行電平轉換后才能送到連接器上去或從連接器上送進來。
⑴DB-25:PC和XT機採用DB-25型連接器。DB-25連接器定義了25根信號線,分為4組:
①非同步通信的9個電壓信號(含信號地SG)2,3,4,5,6,7,8,20,22
②20mA電流環信號 9個(12,13,14,15,16,17,19,23,24)
③空6個(9,10,11,18,21,25)
④保護地(PE)1個,作為設備接地端(1腳)
DB-25型連接器的外形及信號線分配如圖3所示。注意,20mA電流環信號僅IBM PC和IBM PC/XT機提供,至AT機及以後,已不支持。⑵DB-9連接器
在AT 機及以後,不支持20mA電流環介面,使用DB-9連接器,作為提供多功能I/O卡或主板上COM1和COM2兩個串列介面的連接器。它只提供非同步通信的 9個信號。DB-25型連接器的引腳分配與DB-25型引腳信號完全不同。因此,若與配接DB-25型連接器的DCE設備連接,必須使用專門的電纜線。
電纜長度:在通信速率低於20kb/s時,RS-232C所直接連接的最大物理距離為15m(50英尺)。
最大直接傳輸距離說明:RS -232C標準規定,若不使用MODEM,在碼元畸變小於4%的情況下,DTE和DCE之間最大傳輸距離為15m(50英尺)。可見這個最大的距離是在碼元畸變小於4%的前提下給出的。為了保證碼元畸變小於4%的要求,介面標準在電氣特性中規定,驅動器的負載電容應小於2500pF。
RS-232C規標準介面有25條線,4條數據線、11條控制線、3條定時線、7條備用和未定義線,常用的只有9根,它們是:
⑴聯絡控制信號線:
數據裝置準備好(Data set ready-DSR)——有效時(ON)狀態,表明MODEM處於可以使用的狀態。
數據終端準備好(Data Terminal Ready-DTR)——有效時(ON)狀態,表明數據終端可以使用。
這兩個信號有時連到電源上,一上電就立即有效。這兩個設備狀態信號有效,只表示設備本身可用,並不說明通信鏈路可以開始進行通信了,能否開始進行通信要由下面的控制信號決定。
請求發送(Request to send-RTS)——用來表示DTE請求DCE發送數據,即當終端要發送數據時,使該信號有效(ON狀態),向MODEM請求發送。它用來控制MODEM是否要進入發送狀態。
允許發送(Clear to send-CTS)——用來表示DCE準備好接收DTE發來的數據,是對請求發送信號RTS的響應信號。當MODEM已準備好接收終端傳來的數據,並向前發送時,使該信號有效,通知終端開始沿發送數據線TxD發送數據。
這對RTS/CTS請求應答聯絡信號是用於半雙工MODEM系統中發送方式和接收方式之間的切換。在全雙工系統中作發送方式和接收方式之間的切換。在全雙工系統中,因配置雙向通道,故不需要RTS/CTS聯絡信號,使其變高。
接收線信號檢出(Received Line detection-RLSD)——用來表示DCE已接通通信鏈路,告知DTE準備接收數據。當本地的MODEM收到由通信鏈路另一端(遠地)的 MODEM送來的載波信號時,使RLSD信號有效,通知終端準備接收,並且由MODEM將接收下來的載波信號解調成數字兩數據后,沿接收數據線RxD送到終端。此線也叫做數據載波檢出(Data Carrier dectection-DCD)線。
振鈴指示(Ringing-RI)——當MODEM收到交換台送來的振鈴呼叫信號時,使該信號有效(ON狀態),通知終端,已被呼叫。
⑵數據發送與接收線:
發送數據(Transmitted data-TxD)——通過TxD終端將串列數據發送到MODEM,(DTE→DCE)。
接收數據(Received data-RxD)——通過RxD線終端接收從MODEM發來的串列數據,(DCE→DTE)。
⑶地線
有兩根線SG、PG——信號地和保護地信號線,無方向。
上述控制信號線何時有效,何時無效的順序表示了介面信號的傳送過程。例如,只有當DSR和DTR都處於有效(ON)狀態時,才能在DTE和DCE之間進行傳送操作。若DTE要發送數據,則預先將DTR線置成有效(ON)狀態,等CTS線上收到有效(ON)狀態的回答后,才能在TxD線上發送串列數據。這種順序的規定對半雙工的通信線路特別有用,因為半雙工的通信才能確定DCE已由接收方向改為發送方向,這時線路才能開始發送。
2個數據信號:發送TXD;接收RXD。
1個信號地線:SG。
6個控制信號:
DSR??數傳機(即modem)準備好,Data Set Ready.
DTR??數據終端(DTE,即微機介面電路,如Intel8250/8251,16550)準備好,Data Terminal Ready。
RTS??DTE請求DCE發送(Request To Send)。
CTS??DCE允許DTE發送(Clear To Send),該信號是對RTS信號的回答。
DCD??數據載波檢出,Data Carrier Detection當本地DCE設備(Modem)收到對方的DCE設備送來的載波信號時,使DCD有效,通知DTE準備接收,並且由DCE將接收到的載波信號解調為數字信號,經RXD線送給DTE。
RI??振鈴信號 Ringing當DCE收到交換機送來的振鈴呼叫信號時,使該信號有效,通知DTE已被呼叫。
一、遠距離通信
第1和第2中情況是屬於遠距離通信(傳輸距離大於15m的通信)的例子,故一般要加數據機MODEM,因此使用的信號線較多。注意:在以下各圖中,DTE信號為RS-232-C信號,DTE與計算機間的電平轉換電路未畫出。
1、採用Modem(DCE)和電話網通信時的信號連接:
若在雙方MODEM之間採用普通電話交換線進行通信,除了需要2~8號信號線外還要增加RI(22號)和DTR(20號)兩個信號線進行聯絡.
DSR、DTR:數傳機(DCE)準備好、數據終端(DTE)準備好,只表示設備本身可用。
首先,通過電話機拔號呼叫對方,電話交換台向對方發出拔號呼叫信號,當對方DCE收到該信號后,使RI(振鈴信號)有效,通知DTE,已被呼叫。當對方“摘機”后,兩方建立了通信鏈路。
若計算機要發送數據至對方,首先通過介面電路(DTE)發出RTS(請求發送)信號。此時,若DCE(Modem)允許傳送,則向DTE回答CTS(允許發送)信號。一般可直接將RTS/CTS接高電平,即只要通信鏈路已建立,就可傳送信號。(RTS/CTS可只用於半雙工系統中作發送方式和接收方式的切換。
當DTE獲得CTS信號后,通過TXD線向DCE發出串列信號,DCE(Modem)將這些數字信號調製成模擬信號(又稱載波信號),傳向對方。
計算機向DTE“數據輸出寄存器”傳送新的數據前,應檢查Modem狀態和數據輸出寄存器為空。當對方的DCE收到載波信號后,向對方的DTE發出DCD信號(數據載波檢出),通知其DTE準備接收,同時,將載波信號解調為數據信號,從RXD線上送給DTE,DTE通過串列接收移位寄存器對接收到的位流進行移位,當收到1個字元的全部位流后,把該字元的數據位送到數據輸入寄存器,CPU可以從數據輸入寄存器讀取字元。
2、採用專用電話線通信:在通信雙方的MODEM之間採用電話線進行通信,則只要使用2~8號信號線進行聯絡與控制。不需要電話機、振鈴信號RI和DTR信號.
二、近距離通信:
當通信距離較近時,可不需要Modem,通信雙方可以直接連接,這種情況下,只需使用少數幾根信號線。最簡單的情況,在通信中根本不需要RS-232C的控制聯絡信號,只需三根線(發送線、接收線、信號地線)便可實現全雙工非同步串列通信,即是這裡要討論的第一種情況。
無Modem時,最大通信距離按如下方式計算:
RS-232C標準規定:當誤碼率小於4%時,要求導線的電容值應小於2500PF。對於普通導線,其電容值約為170PF/M。則允許距離L=2500PF/(170PF/M)=15M
這一距離的計算,是偏於保守的,實際應用中,當使用9600bps,普通雙絞屏蔽線時,距離可達30~35米。
1、零Modem 的最簡連線(3線制)
圖3是零MODEM方式的最簡單連接(即三線連接),圖中的2號線與3號線交叉連接是因為在直連方式時,把通信雙方都當作數據終端設備看待,雙方都可發也可收。在這種方式下,通信雙方的任何一方,只要請求發送RTS有效和數據終端準備好DTR有效就能開始發送和接收。
⑴RTS與CTS互聯:只要請求發送,立即得到允許
⑵DTR與DSR互聯:只要本端準備好,認為本端立即可以接收(DSR、數傳機準備好)。
2、零Modem標準連接:
如果想在直接連接時,而又考慮到RS-232C的聯絡控制信號,則採用零MODEM方式的標準連接方法,其通信雙方信號線安排如下1-2-3-4-5順序所演示的那樣。
無Modem的標準聯線(7線制)如圖所示:
從中可以看出,RS-232C介面標準定義的所有信號線都用到了,並且是按照DTE和DCE之間信息交換協議的要求進行連接的,只不過是把DTE自己發出的信號線送過來,當作對方DCE發來的信號,因此,又把這種連接稱為雙叉環回介面。
雙方的握手信號關係如下(註:甲方乙方並未在圖中標出):
⑴當甲方的DTE準備好,發出DTR信號,該信號直接聯至乙方的RI(振鈴信號)和DSR(數傳機準備好)。即只要甲方準備好,乙方立即產生呼叫(RI)有效,並同時準備好(DSR)。儘管此時乙方並不存在DCE(數傳機)。
⑵甲方的RTS和CTS相連,並與乙方的DCD互連。即:一旦甲方請求發送(RTS),便立即得到允許(CTS),同時,使乙方的DCD有效,即檢測到載波信號。
⑶甲方的TXD與乙方的RXD相連,一發一收。
RS-232-C標準主要是DTE和DCE之間的連接定義,內容包括介面的電氣特性、機械特性等。RS-232-C的插頭分為DCE端和DTE端。傳統的RS-232-C介面標準有22根線,採用標準25芯D型插頭座。後來的PC上使用簡化了的9芯D型插座,在單片機應用中25芯插頭座已很少採用。這兩種類型中,25芯定義與9芯相關的RS-232-C串列標準介面信號定義見表1。雖然表1中9芯D型插頭座沒有定義保護地,但金屬外殼設備的保護地不應沒有,這裡顯然可以借用1或9。遇到接RS-232電纜的情況時,最用萬用表量一下。用握手線了。數據的發送流程是這樣的:在發送數據之前,發送端要給出請求發送信號CTS。接著接收端發出數據終端準備好信號DTR,發送端的DSR接收到對方的DTR以後,開始在TXD上送出數據。和數據機相連,通過電話線傳輸數據時,必須使用握手線,RS-232-C信號定義中的數據載波檢測(DCD)、振鈴指示等就是用於這一目的的。
表1 RS-232介面信號定義
簡寫符 | DTE 25芯(公) | DCE 25芯(母) | DTE 9芯(公) | DCE 9芯(母) | 信號方向 | 信號功能解釋 |
PG | 1 | 1 | - | - | - | 保護地 |
TXD | 2 | 3 | 3 | 2 | DTE->DCE | 發送數據 Transmit Data |
RXD | 3 | 2 | 2 | 3 | DTE<-DCE | 接收數據 Receive Data |
RTS | 4 | 5 | 7 | 8 | DTE->DCE | 請求發送 Require to Send |
CTS | 5 | 4 | 8 | 7 | DTE<-DCE | 清除請求 Clear to Send |
DSR | 6 | 20 | 6 | 4 | DTE<-DCE | 數據裝置就緒 Data Set Ready |
GND | 7 | 7 | 5 | 5 | GND | 信號地 Ground |
DCD | 8 | 8 | 1 | 1 | In | 接收線信號檢測 Data Carry Detected |
DTR | 20 | 6 | 4 | 6 | DTE->DCE | 數據終端準備好 Data Terminal Ready |
RI | 22 | 22 | 9 | 9 | In | 振鈴指示 |
表2 RS-232電氣特性
驅動器輸出電平(3kΩ~7kΩ) | 邏輯1:-5V~-15V 邏輯0:+5V~+15V |
不帶負載時的驅動器輸出電平 | -25V~+25V |
驅動器時的輸出阻抗 | >300Ω |
輸出短路電流 | <0.5A |
驅動器轉換速率 | <30V/μs |
接收器輸入阻抗 | 3kΩ~7kΩ |
接收器輸入電壓的允許範圍 | -25V~+25V |
輸入開路時接收器的輸出 | 邏輯1 |
輸入經300Ω接地時接收器的輸出 | 邏輯1 |
+3V輸入時接收器的輸出 | 邏輯0 |
-3V輸入時接收器的輸出 | 邏輯1 |
最大負載電容 | 2500pF |