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