在讨論(lun)RS-232C接口标(biāo)準的内(nèi)容之前(qián),先說明(ming)兩點:
首(shou)先,RS-232-C标準(zhun)最初是(shi)遠程通(tong)信連接(jie)數據終(zhong)端設備(bèi)DTE(Data Terminal Equipment)與數據(ju)通💋信👨❤️👨設(she)備DCE(Data CommunicaTIon Equipment)而制(zhì)定的。因(yīn)此這個(gè)标準的(de)制定,并(bìng)未考慮(lü)計算機(ji)系統的(de)應🔱用要(yào)求。但目(mù)前它又(you)廣泛地(dì)被借來(lai)用于☀️計(jì)算機(更(geng)準确的(de)說,是📐計(jì)算機接(jiē)口)與終(zhōng)端或外(wài)設之間(jiān)☎️的近端(duān)連接标(biao)準。顯然(rán),這個标(biāo)❌準的有(yǒu)些規定(ding)及和計(ji)算機系(xì)統是不(bu)一緻的(de),甚至是(shì)相矛盾(dun)的。有了(le)對這種(zhǒng)背景✔️的(de)了解,我(wo)們對RS-232C标(biāo)準與計(jì)算機不(bú)兼容🎯的(de)地方就(jiu)不難理(li)解了。
其(qi)次,RS-232C标準(zhun)中所提(ti)到的“發(fā)送”和“接(jie)收”,都是(shi)站在DTE立(lì)場上,而(er)不是站(zhan)在DCE的立(li)場來定(dìng)義的。由(you)于在計(ji)算機系(xì)統中,往(wǎng)往🥵是CPU和(he)I/O設備之(zhī)間🧑🏾🤝🧑🏼傳送(sòng)信息,兩(liang)者都是(shi)DTE,因此雙(shuāng)方都⭕能(néng)發送和(he)接收。
一(yi)、RS-232-C
RS-232C标準(協(xie)議)的全(quán)稱是EIA-RS-232C标(biao)準,其中(zhōng)EIA(Electronic Industry AssociaTIon)代表美(měi)國電子(zi)工業協(xié)會,RS(ecommeded standard)代表(biao)推薦标(biāo)準,232是标(biao)識号,C代(dài)表RS232的最(zui)新一次(cì)修改(1969),在(zai)這之前(qián),有RS232B、RS232A。。它規(gui)定連接(jiē)電纜和(he)機械、電(diàn)氣特性(xìng)、信号功(gōng)能及傳(chuan)送過程(cheng)🔞。常用物(wù)理标準(zhun)還有有(yǒu)EIA?RS-232-C、EIA?RS-422-A、EIA?RS-423A、EIA?RS-485。 這裏隻(zhi)介紹EIA?RS-232-C(簡(jian)稱232,RS232)。 例如(ru),目前在(zài)IBM PC機上的(de)COM1、COM2接口,就(jiù)是RS-232C接口(kou)。
RS232C引腳定(ding)義
串行(hang)口的典(dian)型代表(biao)是RS-232C及其(qí)兼容插(chā)口,有9針(zhen)和25針兩(liǎng)🈲類。25針🐇串(chuàn)行🌐口具(jù)有20mA電流(liu)環接口(kǒu)功能,用(yong)9、11、18、25針來實(shi)現。其針(zhen)腳功能(néng)如下:
1.電(diàn)氣特性(xing)
EIA-RS-232C對電器(qi)特性、邏(luó)輯電平(píng)和各種(zhong)信号線(xian)功能都(dōu)作了💚規(guī)定。
在TxD和(hé)RxD上:邏輯(ji)1(MARK)=-3V~-15V
邏輯0(SPACE)=+3~+15V
信号有(yǒu)效(接通(tong),ON狀态,正(zhèng)電壓)=+3V~+15V
以上(shang)規定說(shuo)明了RS-323C标(biāo)準對邏(luo)輯電平(ping)的定義(yi)。對于數(shu)據(信息(xi)碼):邏輯(jí)“1”(傳号)的(de)電平低(dī)于-3V,邏輯(jí)“0”(空号)的(de)電平告(gao)語+3V;對于(yú)控制信(xin)号;接通(tōng)狀态(ON)即(jí)信号有(yǒu)效的電(diàn)平高于(yu)+3V,斷開狀(zhuang)态(OFF)即信(xin)号無效(xiào)的電平(ping)低于-3V,也(yě)就是當(dang)傳輸電(diàn)平的絕(jué)對值📐大(dà)于3V時,電(diàn)☀️路可以(yi)有效地(dì)檢查出(chu)來,介于(yú)-3~+3V之間的(de)電壓無(wu)意義,低(di)于-15V或高(gāo)于+15V的電(diàn)壓⛱️也認(rèn)爲無意(yì)義,因此(cǐ),實際工(gong)作時,應(yīng)保證電(dian)平在±(3~15)V之(zhi)間。 字串(chuàn)2
EIA-RS-232C與TTL轉換(huan):EIA-RS-232C是用正(zheng)負電壓(yā)來表示(shi)邏輯狀(zhuang)态,與TTL以(yi)高低電(diàn)平表示(shì)邏輯
狀(zhuàng)态的規(gui)定不同(tong)。因此,爲(wèi)了能夠(gou)同計算(suàn)機接口(kǒu)或🚩終🤟端(duān)的TTL器件(jiàn)連接,必(bi)須在EIA-RS-232C與(yǔ)TTL電路之(zhi)間進行(háng)電平和(hé)邏輯關(guan)系的變(bian)🈲換。實🔞現(xian)這種變(biàn)換的方(fāng)法可用(yong)分立元(yuán)件,也可(kě)用集👌成(chéng)電路芯(xīn)片。目‼️前(qian)較爲廣(guang)泛地使(shi)用集成(cheng)電路轉(zhuan)換器件(jian),如MC1488、SN75150芯片(piàn)可完成(cheng)TTL電平到(dào)EIA電平的(de)轉換,而(ér)MC1489、SN75154可實💔現(xian)EIA電平到(dao)TTL電🌈平的(de)轉換。MAX232芯(xin)片可完(wan)成TTL←→EIA雙向(xiàng)電平轉(zhuan)換,圖1顯(xian)示了1488和(he)1489的内部(bù)結構和(he)引腳🙇♀️。MC1488的(de)引腳(2)、(4,5)、(9,10)和(hé)(12,13)接TTL輸入(rù)。引腳😍3、6、8、11輸(shū)出端接(jie)EIA-RS-232C。MC1498的14的1、4、10、13腳(jiao)接EIA輸入(rù),而3、6、8、11腳接(jiē)TTL輸❤️出。具(ju)體連接(jie)方法🐪如(ru)圖2所示(shi)。圖中的(de)左邊是(shi)微機串(chuan)行接口(kou)電路中(zhong)的主芯(xin)片UART,它是(shi)TTL器件,右(you)邊是EIA-RS-232C連(lián)接器,要(yao)求EIA高電(dian)壓。因此(ci),RS-232C所有的(de)輸出、輸(shu)入信号(hào)都要分(fèn)🔞别經過(guo)MC1488和MC1498轉換(huan)器,進行(hang)電平轉(zhuan)換後才(cai)能送到(dao)連接🌈器(qì)上去或(huò)從連接(jiē)器上送(song)進來。
2、連(lian)接器的(de)機械特(tè)性:
連接(jie)器: 由于(yu)RS-232C并未定(dìng)義連接(jie)器的物(wù)理特性(xing),因此,出(chū)現了DB-25、DB-15和(he)DB-9各種類(lèi)型的連(lian)接器,其(qi)引腳的(de)定義也(yě)各不☀️相(xiàng)同♈。下面(miàn)分别🚶介(jiè)紹兩種(zhong)連接器(qi)。
(1)DB-25: PC和XT機采(cai)用DB-25型連(lián)接器。DB-25連(lian)接器定(ding)義了25根(gēn)信号線(xiàn),分爲4組(zǔ):
①異步通(tōng)信的9個(ge)電壓信(xìn)号(含信(xin)号地SG)2,3,4,5,6,7,8,20,22
字(zì)串6
②20mA電流(liu)環信号(hào) 9個(12,13,14,15,16,17,19,23,24)
③空6個(ge)(9,10,11,18,21,25)
④保護地(dì)(PE)1個,作爲(wèi)設備接(jie)地端(1腳(jiao))
DB-25型連接(jiē)器的外(wai)形及信(xìn)号線分(fen)配如圖(tú)3所示。注(zhu)意,20mA電流(liú)環信号(hao)僅IBM PC和IBM PC/XT機(ji)提供,至(zhi)AT機及以(yǐ)後,已不(bu)支持。
電(dian)纜長度(dù):在通信(xin)速率低(di)于20kb/s時,RS-232C所(suo)直接連(lián)接的最(zui)大物理(li)距離爲(wei)👉15m(50英尺)。
最(zuì)大直接(jie)傳輸距(jù)離說明(ming):RS-232C标準規(gui)定,若不(bu)使用MODEM,在(zai)碼元畸(jī)💚變小于(yú)🏃🏻4%的情況(kuang)下,DTE和DCE之(zhi)間最大(da)傳輸距(ju)離爲15m(50英(yīng)尺)。可🌈見(jian)這個最(zuì)大的距(jù)離是在(zai)碼元畸(ji)變小于(yu)4%的前提(ti)下給出(chu)的。爲了(le)保證碼(ma)元畸變(biàn)小于4%的(de)要求,接(jie)口标準(zhǔn)在電氣(qi)特性中(zhong)規定,驅(qu)動器的(de)負載電(diàn)容應小(xiǎo)于2500pF。
3、RS-232C的接(jiē)口信号(hào)
RS-232C規标準(zhǔn)接口有(you)25條線,4條(tiáo)數據線(xiàn)、11條控制(zhì)線、3條定(ding)時線、7條(tiáo)備用和(he)未定義(yi)線,常用(yong)的隻有(you)9根,它們(men)是:
(1)聯絡(luo)控制信(xin)号線 :
數(shù)據裝置(zhì)準備好(hao)(Data set ready-DSR)——有效時(shí)(ON)狀态,表(biǎo)明MODEM處于(yu)可以使(shǐ)用的🐉狀(zhuàng)🈚态。
數據(ju)終端準(zhun)備好(Data set ready-DTR)——有(you)效時(ON)狀(zhuang)态,表明(ming)數據終(zhong)端可以(yi)使用。
這(zhe)兩個信(xìn)号有時(shi)連到電(diàn)源上,一(yi)上電就(jiù)立即有(yǒu)效。這兩(liang)🔞個設備(bèi)狀态信(xìn)号有效(xiao),隻表示(shi)設備本(ben)身可用(yòng)🔴,并不說(shuo)明通信(xìn)鏈路可(kě)以開始(shǐ)進行通(tong)信了,能(neng)否開始(shǐ)進行通(tong)信要由(you)下面的(de)控制信(xin)号決定(dìng)。
請求發(fā)送(Request to send-RTS)——用來(lai)表示DTE請(qing)求DCE發送(sòng)數據,即(ji)當終端(duān)要發送(song)數據🛀🏻時(shi),使該信(xin)号有效(xiao)(ON狀态),向(xiang)MODEM請求發(fā)送。它用(yòng)來控制(zhi)MODEM是否要(yao)進入發(fā)送狀态(tai)。
允許發(fā)送(Clear to send-CTS)——用來(lái)表示DCE準(zhǔn)備好接(jie)收DTE發來(lái)的數據(jù),是對請(qing)求發送(song)信号RTS的(de)響應信(xin)号。當MODEM已(yi)準備好(hǎo)接收終(zhōng)端傳來(lái)的數👈據(ju),并⛱️向前(qian)發送時(shí),使該信(xin)号有效(xiào),通知終(zhong)端開始(shǐ)沿發送(song)☀️數據線(xian)TxD發送數(shù)據。
這對(dui)RTS/CTS請求應(yīng)答聯絡(luo)信号是(shi)用于半(ban)雙工MODEM系(xì)統中發(fā)送✔️方🔆式(shi)和🌈接收(shōu)方式之(zhī)間的切(qie)換。在全(quán)
雙工系(xì)統中作(zuo)發送方(fang)式和接(jiē)收方式(shì)之間的(de)切換。在(zai)全雙工(gōng)系統中(zhōng),因配置(zhi)雙向通(tong)道,故不(bú)需要RTS/CTS聯(lian)絡信号(hao),使其變(bian)高。
接收(shōu)線信号(hao)檢出(Received Line detecTIon-RLSD)——用(yong)來表示(shi)DCE已接通(tōng)通信鏈(lian)路,告知(zhī)DTE準備💔接(jie)收🤟數據(jù)。當本地(dì)的MODEM收到(dao)由通信(xin)鏈路另(ling)一端(遠(yuǎn)地)的MODEM送(song)來的載(zai)波信号(hao)時,使RLSD信(xin)号有效(xiào),通知終(zhōng)端準備(bei)接收,并(bìng)且由MODEM将(jiāng)接收下(xià)來的載(zai)波信号(hao)解調成(cheng)⛷️數字兩(liang)數據後(hou),沿接收(shōu)數據線(xiàn)RxD送到終(zhong)端。此線(xiàn)也叫做(zuò)數據載(zai)波檢出(chu)(Data Carrier dectecTIon-DCD)線。
振鈴(líng)指示(Ringing-RI)——當(dang)MODEM收到交(jiao)換台送(sòng)來的振(zhèn)鈴呼叫(jiào)信号時(shi),使該🔅信(xìn)号⛱️有效(xiao)(ON狀态),通(tōng)知終端(duan),已被呼(hū)叫。
(2)數據(jù)發送與(yu)接收線(xian):
發送數(shu)據(Transmitted data-TxD)——通過(guo)TxD終端将(jiāng)串行數(shu)據發送(sòng)到MODEM,(DTE→DCE)。
接收(shou)數據(Received data-RxD)——通(tong)過RxD線終(zhong)端接收(shou)從MODEM發來(lái)的串行(hang)數據,(DCE→DTE)。
(3)地(dì)線
有兩(liǎng)根線SG、PG——信(xìn)号地和(hé)保護地(di)信号線(xiàn),無方向(xiàng)。
上述控(kong)制信号(hào)線何時(shí)有效,何(hé)時無效(xiao)的順序(xu)表示了(le)❄️接口信(xin)号㊙️的傳(chuán)送過程(cheng)。例如,隻(zhī)有當DSR和(hé)DTR都處于(yu)有效(ON)狀(zhuang)态時,才(cái)能在DTE和(hé)DCE之間進(jìn)行傳送(sòng)操作。若(ruò)DTE要發送(sòng)⚽數據,則(ze)預先将(jiang)DTR線置成(cheng)有效(ON)狀(zhuàng)态,等CTS線(xiàn)上收到(dào)有效(ON)狀(zhuàng)态的回(huí)答後,才(cái)能在TxD線(xiàn)上發送(sòng)串行數(shu)據。這種(zhong)順序的(de)規定對(duì)半雙工(gong)的通信(xin)線路特(te)别有用(yòng),因爲半(bàn)雙工的(de)通信才(cái)能确定(dìng)DCE已由接(jie)收方向(xiàng)改爲發(fa)🚶送方🔞向(xiang),這時線(xiàn)路才能(néng)🌏開始發(fa)💜送。
2個數(shu)據信号(hao):發送TXD;接(jie)收RXD。
6個控制(zhi)信号:
DSR??數(shu)傳機(即(ji)modem)準備好(hǎo),Data Set Ready.
DTR??數據終(zhōng)端(DTE,即微(wēi)機接口(kou)電路,如(ru)Intel8250/8251,16550)準備好(hao),Data Terminal Ready。
RTS??DTE請求DCE發(fa)送(Request To Send)。
CTS??DCE允許(xǔ)DTE發送(Clear To Send),該(gāi)信号是(shì)對RTS信号(hào)的回答(dá)。
DCD??數據載(zǎi)波檢出(chū),Data Carrier Detection當本地(dì)DCE設備(Modem)收(shōu)到對方(fāng)的DCE設備(bèi)送來的(de)載波信(xin)号時,使(shǐ)DCD有效,通(tōng)知DTE準備(bei)接收, 并(bìng)且由DCE将(jiang)接收到(dào)的載波(bo)信号解(jie)調爲數(shù)字信号(hào), 經RXD線送(song)給DTE。
RI??振鈴(ling)信号 Ringing當(dang)DCE收到交(jiāo)換機送(song)來的振(zhen)鈴呼叫(jiao)信号時(shí),使該信(xin)号有效(xiào),通知DTE已(yǐ)被呼叫(jiao)。
遠距離(li)通信
第(dì)1和第2中(zhōng)情況是(shi)屬于遠(yuǎn)距離通(tong)信(傳輸(shu)距離大(dà)于15m的通(tong)信🚶)的例(lì)子,故一(yī)般要加(jiā)調制解(jiě)調器MODEM,因(yīn)此使用(yong)的信号(hào)線🌈較多(duo)。注意:在(zai)以🈲下各(gè)圖中,DTE信(xìn)号爲RS-232-C信(xìn)号,DTE與🔅計(jì)算機間(jian)的電🔞平(ping)轉換💯電(dian)路未畫(huà)出。
1、采用(yong)Modem(DCE)和電話(huà)網通信(xin)時的信(xìn)号連接(jiē):
若在雙(shuāng)方MODEM之間(jian)采用普(pǔ)通電話(hua)交換線(xiàn)進行通(tong)信,除了(le)🥰需要2~8号(hao)信号線(xian)外還要(yào)增加RI(22号(hao))和DTR(20号)兩(liang)個信号(hao)線進行(hang)㊙️聯絡,如(ru)圖4所示(shi)。
DSR、DTR:數傳機(jī)(DCE)準備好(hǎo)、數據終(zhōng)端(DTE)準備(bei)好,隻表(biǎo)示設備(bei)本身可(ke)用。
首先(xian),通過電(diàn)話機拔(bá)号呼叫(jiao)對方,電(diàn)話交換(huan)台向對(dui)方發☔出(chu)拔号呼(hū)叫信号(hao),當對方(fang)DCE收到該(gāi)信号後(hou),使RI(振鈴(líng)信号)有(you)效,通知(zhi)DTE,已🔞被呼(hū)叫。當對(duì)方“摘機(jī)”後,兩方(fang)建立了(le)通信鏈(lian)路。
若計(ji)算機要(yào)發送數(shù)據至對(dui)方,首先(xian)通過接(jie)口電路(lu)(DTE)發出RTS(請(qing)求發送(song))信号。此(cǐ)時,若DCE(Modem)允(yǔn)許傳送(song),則向DTE回(huí)答CTS(允😍許(xǔ)發送)信(xin)号。一❌般(bān)可直接(jie)将RTS/CTS接高(gao)電平,即(jí)隻要通(tong)信鏈路(lu)已🌈建立(li),就可傳(chuán)送😍信号(hao)。(RTS/CTS可隻用(yòng)于半雙(shuang)工系統(tong)中作發(fa)送方式(shi)和接收(shōu)方式的(de)切換。
當(dāng)DTE獲得CTS信(xìn)号後,通(tong)過T XD線向(xiàng)DCE發出串(chuan)行信号(hào),DCE(Modem)将這些(xie)數🈚字信(xìn)号👉調🤟制(zhì)成模拟(nǐ)信号(又(you)稱載波(bo)信号),傳(chuán)向對方(fang)。
計算機(jī)向DTE“數據(jù)輸出寄(ji)存器”傳(chuan)送新的(de)數據前(qián),應檢查(chá)🐇Modem狀态和(he)數據輸(shū)出寄存(cún)器爲空(kong)。當對方(fāng)的DCE收到(dao)載波信(xìn)号後✂️,向(xiang)對方的(de)DTE發出DCD信(xìn)号(數據(ju)載波檢(jiǎn)出),通知(zhī)其DTE準備(bèi)🌐接收,同(tong)🥵時,将載(zǎi)波信号(hao)解調爲(wei)數據信(xin)号,從RXD線(xiàn)上送給(gěi)DTE,DTE通過串(chuan)行接收(shou)移位寄(ji)存器對(dui)接收到(dao)的位流(liu)進行移(yí)位,當收(shou)到1個字(zì)符的全(quan)部🔞位流(liu)後,把該(gai)字符的(de)數據位(wèi)🈲送到數(shù)據輸入(rù)♊寄存器(qi),CPU可以從(cong)✨數據輸(shu)入寄存(cun)器讀取(qǔ)字符。
近(jin)距離通(tong)信:
當通(tong)信距離(li)較近時(shi),可不需(xu)要Modem,通信(xìn)雙方可(ke)以直接(jie)連🌐接,這(zhè)🈲種♌情況(kuang)下,隻需(xū)使用少(shǎo)數幾根(gen)信号線(xiàn)。最簡單(dān)的情況(kuang),在通💜信(xìn)中🐇根本(ben)不需要(yào)RS-232C的控制(zhi)聯絡信(xìn)号,隻需(xū)三⛱️根線(xian)(發送線(xiàn)、接收線(xian)、信号地(dì)線)便可(ke)實現全(quán)雙工異(yi)步串行(hang)通信,即(ji)是這裏(li)要讨論(lùn)的第一(yi)種情況(kuang)。
無Modem時,最(zuì)大通信(xin)距離按(an)如下方(fang)式計算(suan):
RS-232C标準規(gui)定:當誤(wù)碼率小(xiǎo)于4%時,要(yào)求導線(xian)的電容(rong)值應小(xiao)🐪于2500PF。對于(yú)普通導(dao)線,其電(dian)容值約(yue)爲170PF/M。則允(yǔn)許距離(lí)L=2500PF/(170PF/M)=15M
這一距(jù)離的計(jì)算,是偏(piān)于保守(shou)的,實際(jì)應用中(zhōng),當使用(yòng)🔴9600bps,普🐅通雙(shuāng)絞屏蔽(bi)線時,距(ju)離可達(da)30~35米。