RS-232串口通信在PC機(jī)與單片機(jī)通信中的應(yīng)用
由于單片機(jī)具有體積小、價(jià)格低廉、適應(yīng)性強(qiáng)的特點(diǎn),一般在工業(yè)控制系統(tǒng)中,各種數(shù)據(jù)的采集和執(zhí)行機(jī)構(gòu)的控制都是由單片機(jī)來(lái)完成。而單片機(jī)的計(jì)算能力有限,難以進(jìn)行復(fù)雜的數(shù)據(jù)處理。在功能比較復(fù)雜的自動(dòng)控制系統(tǒng)中,通常以工控機(jī)為上位機(jī),單片機(jī)為下位機(jī),由單片機(jī)完成數(shù)據(jù)的采集及對(duì)設(shè)備的控制,而由上位機(jī)完成各種復(fù)雜的數(shù)據(jù)處理及對(duì)單片機(jī)的控制。在分布式控制系統(tǒng)中大多采用單片機(jī)作為下位機(jī)來(lái)進(jìn)行數(shù)據(jù)采集和現(xiàn)場(chǎng)控制,在這些應(yīng)用中,單片機(jī)只是直接面對(duì)被控對(duì)象底層,而對(duì)采集到的數(shù)據(jù)進(jìn)行進(jìn)一步的分析和處理工作,則是由功能強(qiáng)大的PC機(jī)來(lái)完成的。
因此,PC機(jī)和單片機(jī)之間就有著大量的數(shù)據(jù)交換。在絕大多數(shù)PC機(jī)的標(biāo)準(zhǔn)配置中,都有一個(gè)到多個(gè)RS 232串口,因?yàn)镽S 232串口擔(dān)負(fù)著PC機(jī)和單片機(jī)之間大量的數(shù)據(jù)交換的重任。單片機(jī)89C52用于自動(dòng)控制及數(shù)據(jù)傳輸,并通過(guò)RS 232接口向上位機(jī)進(jìn)行數(shù)據(jù)通信。
1 RS 232串口通信
1.1 RS 232C標(biāo)準(zhǔn)
RS 232C標(biāo)準(zhǔn)(協(xié)議)的全稱是EIA-RS-232C標(biāo)準(zhǔn),其中EIA(Electronic Industry Association)代表美國(guó)電子工業(yè)協(xié)會(huì),RS(ecommeded standard)代表推薦標(biāo)準(zhǔn),232是標(biāo)識(shí)號(hào),C代表RS 232的最新一次修改。在這之前,有RS 232B,RS 232A,它規(guī)定連接電纜和機(jī)械、電氣特性、信號(hào)功能及傳送過(guò)程。
1.2 RS 232的接口引腳定義
由于RS 232C并未定義連接器的物理特性,因此,出現(xiàn)了DB-25,DB-15和DB-9各種類型的連接器,其引腳定義也各不相同。常用的連接器接口圖如圖1所示,DB9的引腳功能見(jiàn)表1。
圖1 DB9的引腳圖
RS 232C標(biāo)準(zhǔn)接口有25條線,分別為4條數(shù)據(jù)線、11條控制線、3條定時(shí)線、7條備用和未定義線,常用的只有9根,它們是:
。1)狀態(tài)線
數(shù)據(jù)準(zhǔn)備就緒(Data Set Ready,DSR):有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)通信設(shè)備可以使用。
數(shù)據(jù)終端就緒(Data Terminal Ready,DTR):有效時(shí)(ON)狀態(tài),表明數(shù)據(jù)終端設(shè)備可以使用。
這兩個(gè)信號(hào)有時(shí)連到電源上,上電就立即有效。
這兩個(gè)設(shè)備狀態(tài)信號(hào)有效,只表示設(shè)備本身可用,并不說(shuō)明通信鏈路可以開(kāi)始進(jìn)行通信了,能否開(kāi)始進(jìn)行通信由下面的控制信號(hào)決定。
。2)聯(lián)絡(luò)線
請(qǐng)求發(fā)送(Request to Send,RTS):DTE準(zhǔn)備向DCE發(fā)送數(shù)據(jù),DTE使該信號(hào)有效(ON狀態(tài)),通知DCE要發(fā)送數(shù)據(jù)給DCE了。
允許發(fā)送(Clear to Send,CTS):對(duì)RTS的響應(yīng)信號(hào)。當(dāng)DCE已準(zhǔn)備好接收DTE傳來(lái)的數(shù)據(jù)時(shí),使該信號(hào)有效,通知DTE開(kāi)始發(fā)送數(shù)據(jù)。
RTS/CTS請(qǐng)求應(yīng)答聯(lián)絡(luò)信號(hào)是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS/CTS聯(lián)絡(luò)信號(hào),使其變高。
(3)數(shù)據(jù)線
發(fā)送數(shù)據(jù)(Transmitted Data,TXD):DTE發(fā)送數(shù)據(jù)到DCE。
接收數(shù)據(jù)(Received Data,RXD):DCE發(fā)送數(shù)據(jù)到DTE。
。4)地線
有兩根線SG,PG:信號(hào)地和保護(hù)地信號(hào)線。
(5)其余
載波檢測(cè)(Carrier Detection,CD):用來(lái)表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。
振鈴指示(Ringlng,RI):當(dāng)DCE收到交換臺(tái)送來(lái)的振鈴呼叫信號(hào)時(shí),使該信號(hào)有效(ON狀態(tài)),通知DTE,已被呼叫。
通常的應(yīng)用系統(tǒng)中,往往是在CPU和I/O設(shè)備之間傳送信息,兩者都是DTE,上位機(jī)和單片機(jī)89C52之間的通信,雙方都能發(fā)送和接收,他們的連接只需要使用三根線即可,即RXD,TXD和GND,這種連接方式,即兩個(gè)串口連接時(shí),接收數(shù)據(jù)針腳與發(fā)送數(shù)據(jù)針腳相連,彼此交叉,信號(hào)地對(duì)應(yīng)接地即可。連接方式如圖2所示。
圖2 上位機(jī)和單片機(jī)之間串口連接圖
1.3 波特率的概念
串行通信中,每秒傳送的數(shù)據(jù)位稱為波特率。如數(shù)據(jù)傳送的波持率為1200波特,采用N.8.1幀格式(10位),則每秒傳送字節(jié)為120個(gè),而字節(jié)中每一位傳送時(shí)間即為波特率的倒數(shù):T=1/1 200=0.833 ms。同樣,如數(shù)據(jù)傳送的波特率為1 9 200波特,則字節(jié)中每一位傳送時(shí)間T=1/19 200=0.052 ms。根據(jù)數(shù)據(jù)傳送的波特率即字節(jié)中每一位的傳送時(shí)間,便可用普通I/O口來(lái)模擬實(shí)現(xiàn)串行通信的時(shí)序。
1.4 RS 232C的電氣特性
(1)邏輯電平
在TXD和RXD上:
邏輯1(MARK):-3~-15 V;
邏輯0(SPACE):+3~+15 V。
在RTS,CTS,DSR,DTR和DCD等控制線上:
信號(hào)有效(接通,ON狀態(tài),正電壓):+3~+15 V;
信號(hào)無(wú)效(斷開(kāi),OFF狀態(tài),負(fù)電壓):-3~-15 V。
由以上定義可以看出,信號(hào)無(wú)效的電平低于-3 V,也就是當(dāng)傳輸電平的絕對(duì)值大于3 V時(shí),電路可以有效地檢查出來(lái),介于-3~+3 V之間的電壓無(wú)意義,低于-1 5 V或高于+15 V的電壓也認(rèn)為無(wú)意義,因此,實(shí)際工作時(shí),應(yīng)保證電平的絕對(duì)值在3~15 V之間。當(dāng)計(jì)算機(jī)和TTL電平的設(shè)備通信時(shí),如上位機(jī)和單片機(jī)通信時(shí),需要使用RS 232/TTL電平轉(zhuǎn)換器件,常用的有MAX232。
1.5 RS 232與單片機(jī)之間的接口電路MAX232
由于RS 232信號(hào)的電平和單片機(jī)串口信號(hào)的電平不一致,必須進(jìn)行二者之間的電平轉(zhuǎn)換。MAX232由單一的+5 V電源供電,只需配5個(gè)高精度10μF/50 V的鉭電容即可完成電平轉(zhuǎn)換,轉(zhuǎn)換后的串行信號(hào)TXD,RXD直接與上位機(jī)的串口連接。MAX232芯片的內(nèi)部結(jié)構(gòu)基本可分三個(gè)部分:
第一部分是電荷泵電路。由1,2,3,4,5,6腳和4只電容構(gòu)成。功能是產(chǎn)生+12 V和-1 2 V兩個(gè)電源,提供給RS 232串口電平的需要。
第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7,8,9,10,11,12,13,14腳構(gòu)成兩個(gè)數(shù)據(jù)通道。其中13腳(R1in)、12腳(R1out)、11腳(T1in)、14腳(T1out)為第一數(shù)據(jù)通道。8腳(R2in)、9腳(R2out)、10腳(T2in)、7腳(T2out)為第二數(shù)據(jù)通道。TTL/COMS數(shù)據(jù)從T1in,T2in輸入轉(zhuǎn)換成RS 232數(shù)據(jù)從T1out,T2out送到電腦DB9插頭;DB9插頭的RS 232數(shù)據(jù)從R1in,R2in輸入轉(zhuǎn)換成TTL/COMS數(shù)據(jù)后從R1out,R2out輸出。
第三部分是供電。1 5腳GND、16腳VCC(+5 V)。
圖3 RS 232與MAX232的連接圖
1.6 RS 232的不足之處
。1)傳輸距離有限,實(shí)際最大傳輸距離只有50 m。
。2)傳輸速率較低,在異步傳輸時(shí),速率最大為19 200 b。
(3)接口使用一根信號(hào)線和一根信號(hào)返回線而構(gòu)成共地的傳輸形式,這種共地傳輸容易產(chǎn)生共模干擾,所以抗噪聲干擾性弱。
1.7 消除干擾噪聲的主要方法
針對(duì)以上所述RS 232易產(chǎn)生共模干擾的問(wèn)題,常用的解決方法主要是采用光隔離器,光隔離器穿過(guò)一個(gè)隔離的屏障來(lái)傳輸信號(hào)。一個(gè)光隔離器由一個(gè)光敏電阻耦合的發(fā)光二極管構(gòu)成。流過(guò)發(fā)光二極管的電流使得它以可見(jiàn)光或者紅外線的方式釋放能量。這些能量將這個(gè)光敏電阻打開(kāi),導(dǎo)致在這個(gè)電阻的發(fā)射極和集電極之間的低阻抗。這個(gè)發(fā)光二極管的基極可以留著沒(méi)有連接。從基極到發(fā)射極加入一個(gè)電阻可以導(dǎo)致更快的開(kāi)關(guān)速度,但是輸出電流更低。
2 結(jié)語(yǔ)
RS 232串口通信是PC機(jī)和單片機(jī)之間信息傳遞的樞紐,一切數(shù)據(jù)和指令的傳輸必須由RS 232串口來(lái)完成。針對(duì)RS 232存在的不足之處加以改進(jìn)之后,RS 232使得PC機(jī)和單片機(jī)之間能高效地通信,采用電平轉(zhuǎn)換芯片MAX232實(shí)現(xiàn)TTL邏輯電平和RS 232電平之間的相互轉(zhuǎn)換,轉(zhuǎn)換之后的串行信號(hào)TXD,RXD直接與PC機(jī)的串口連接,如此連接,既可體現(xiàn)出單片機(jī)的靈活控制功能,又可發(fā)揮出PC機(jī)強(qiáng)大的計(jì)算和顯示功能,有利于對(duì)現(xiàn)場(chǎng)信號(hào)的實(shí)時(shí)采集、處理和監(jiān)控,確保了良好的人機(jī)界面的交互性。
編輯:admin 最后修改時(shí)間:2018-05-08