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