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