所屬欄目:計算機(jī)應(yīng)用論文 發(fā)布日期:2011-02-21 09:05 熱度:
摘要:微機(jī)串口技術(shù)在冶金、自動化、監(jiān)控領(lǐng)域和工業(yè)檢測系統(tǒng)中有廣泛的應(yīng)用需求。微機(jī)串口與單片機(jī)通訊測試系統(tǒng)的實(shí)現(xiàn)使得微機(jī)與許多智能設(shè)備相連,所以微機(jī)串口通信有很好的市場前景。本文介紹了串口通信的基本原理和基本方法,并在兩臺PC機(jī)上利用EIARS-232-C串口線,通過C語言編程實(shí)現(xiàn)了實(shí)異步方式的全雙工數(shù)據(jù)發(fā)送和接收。
關(guān)鍵詞:串口技術(shù),C語言,EIARS-232-C
引言
隨著計算機(jī)應(yīng)用技術(shù)和通信技術(shù)的不斷發(fā)展,計算機(jī)串口通信在通信軟件中有著十分廣泛的應(yīng)用,如電話、傳真、視頻和監(jiān)控等。另外,在工業(yè)控制領(lǐng)域,經(jīng)常需要進(jìn)行計算機(jī)與其他設(shè)備之間的通信,以實(shí)現(xiàn)控制和傳輸數(shù)據(jù)等目的。串行通信是在單根導(dǎo)線上將二進(jìn)制數(shù)一位一位地順序傳送。它與并行通信相比,雖然速度低,但對遠(yuǎn)距離來說,可以節(jié)省大量的線路成本。串行通信作為一種靈活、方便、可靠的通信方式被廣泛采用。隨著光纖技術(shù)的出現(xiàn)與發(fā)展,更是為串行通信開辟了美好前景。
本文通過使用EIARS-232-C標(biāo)準(zhǔn)的交叉連接串口線將兩臺PC機(jī)連接起來進(jìn)行通信的研究,全面介紹了微機(jī)串行端口的工作原理,并使用C語言利用雙機(jī)串行端口實(shí)現(xiàn)通信。
1串行通信原理
計算機(jī)與外圍設(shè)備之間通過接口和導(dǎo)線進(jìn)行信息交換,針對接口的通信分為并行通信和串行通信兩種方式。
并行通信是把一個字符的各數(shù)位用幾條線同時進(jìn)行傳輸,傳輸速度快,信息率高。但它比串行通信所用的電纜多,故常用在傳輸距離較短(幾米至幾十米)、數(shù)據(jù)傳輸率較高的場合。
串行通信是指微機(jī)與微機(jī)、微機(jī)與外設(shè)之間通過使用一根數(shù)據(jù)信號線,按數(shù)據(jù)位由低到高的順序在信號線上一位一位地實(shí)現(xiàn)傳輸,每一位數(shù)據(jù)都占據(jù)一個固定的時間長度。由于CPU與接口之間按并行方式進(jìn)行數(shù)據(jù)傳輸,因此,在串行接口中,必須要進(jìn)行串并轉(zhuǎn)換和并串轉(zhuǎn)換。
1.1串行通信特點(diǎn)
串行通訊的特點(diǎn)是:數(shù)據(jù)傳送按位順序進(jìn)行,最少只需一根傳輸線即可完成。串行通訊根據(jù)信息的傳送方向,串行通訊可分為單工、半雙工和全雙工三種。信息只能單向傳送為單工;信息能雙向傳送但不能同時雙向傳送稱為半雙工;信息能夠同時雙向傳送則稱為全雙工。串行通訊根據(jù)其工作方式又分為異步通訊和同步通訊兩種方式。其中異步通訊方式應(yīng)用更為廣泛。
本文采用異步通信方式,其通信協(xié)議規(guī)定:
不發(fā)送數(shù)據(jù)時,數(shù)據(jù)信號線總是呈現(xiàn)高電平,稱為空閑狀態(tài)。當(dāng)有數(shù)據(jù)要發(fā)送時,數(shù)據(jù)線變成低電平,并持續(xù)一位的時間,用于表示字符的開始,稱為起始位;接著按照數(shù)據(jù)位由低位到高位的順序發(fā)送數(shù)據(jù)位,當(dāng)發(fā)送字符串時,數(shù)據(jù)位占7位,最后一位發(fā)送檢驗位;然后再發(fā)送1位、1.5位或2位高電平,表示停止位。至此,一個字符發(fā)送完畢,如果要立即發(fā)送下一個字符,則后一個字符起始位就緊跟在前一個字符的停止位之后,否則停止位之后又進(jìn)入空閑狀態(tài)。
在異步通信中,數(shù)據(jù)通常以字符或者字節(jié)為單位組成字符幀傳送。字符幀由發(fā)送端逐幀發(fā)送,通過傳輸線被接收設(shè)備逐幀接收。發(fā)送端和接收端可以由各自的時鐘來控制數(shù)據(jù)的發(fā)送和接收,這兩個時鐘源彼此獨(dú)立,互不同步。接收端檢測到傳輸線上發(fā)送過來的低電平邏輯“0”(即字符幀起始位)時,確定發(fā)送端已開始發(fā)送數(shù)據(jù),每當(dāng)接收端收到字符幀中的停止位時,就知道一幀字符已經(jīng)發(fā)送完畢。
針對串行通信的這一特點(diǎn),串行通信可以借助現(xiàn)成的電話網(wǎng)進(jìn)行信息傳送,因此,特別適合于遠(yuǎn)距離傳輸。對于那些與計算機(jī)相距不遠(yuǎn)的人-機(jī)交換設(shè)備和串行存儲的外部設(shè)備如終端、打印機(jī)、邏輯分析儀、磁盤等,采用串行方式交換數(shù)據(jù)也很普遍。在實(shí)時控制和管理方面,采用多臺微機(jī)處理機(jī)組成分級分布控制系統(tǒng)中,各CPU之間的通信一般都是串行方式,所以串行接口是微機(jī)應(yīng)用系統(tǒng)常用的接口。
1.2EIARS-232-C的接口信號
微機(jī)系統(tǒng)中的串口一般分9芯插件和25芯插件兩種,目前一般都是9芯插件。
RS-232的接口信號如表1.1所示:
表1.1RS-232接口信號
主要信號線定義如下:
(1)聯(lián)絡(luò)控制信號線:
數(shù)據(jù)裝置準(zhǔn)備好DSR#:有效時,表明MODEM處于可以使用的狀態(tài)。
數(shù)據(jù)終端準(zhǔn)備好DTR#:有效時,表明數(shù)據(jù)終端可以使用。
這兩個信號有時連到電源上,一上電就立即有效。有效時表示設(shè)備本身可用,并不說明通信鏈路可以開始進(jìn)行通信了,能否開始進(jìn)行通信要由下面的控制信號決定。
請求發(fā)送RTS#:用來表示DTE請求DCE發(fā)送數(shù)據(jù),即當(dāng)終端要發(fā)送數(shù)據(jù)時,使該信號有效,向MODEM請求發(fā)送。它用來控制MODEM是否要進(jìn)入發(fā)送狀態(tài)。
允許發(fā)送CTS#:用來表示DCE準(zhǔn)備好接收DTE發(fā)來的數(shù)據(jù),是對請求發(fā)送信號RTS#的響應(yīng)信號。當(dāng)MODEM已準(zhǔn)備好接收終端傳來的數(shù)據(jù),并向前發(fā)送時,使該信號有效,通知終端開始沿發(fā)送數(shù)據(jù)線TxD發(fā)送數(shù)據(jù)。
這對RTS/CTS請求應(yīng)答聯(lián)絡(luò)信號是用于半雙工MODEM系統(tǒng)中發(fā)送方式和接收方式之間的切換。在全雙工系統(tǒng)中,因配置雙向通道,故不需要RTS#/CTS#聯(lián)絡(luò)信號。
載波信號檢測CD#:用來表示DCE已接通通信鏈路,告知DTE準(zhǔn)備接收數(shù)據(jù)。當(dāng)本地的MODEM收到由通信鏈路另一端的MODEM送來的載波信號時,使CD#信號有效,通知終端準(zhǔn)備接收,并且由MODEM將接收下來的載波信號解調(diào)成數(shù)字信號后,沿接收數(shù)據(jù)線RxD送到終端。
(2)數(shù)據(jù)發(fā)送與接收線:
發(fā)送數(shù)據(jù)TxD:通過TxD終端將串行數(shù)據(jù)發(fā)送到MODEM,(DTE→DCE)。
接收數(shù)據(jù)RxD:通過RxD線終端接收從MODEM發(fā)來的串行數(shù)據(jù),(DCE→DTE)。
上述控制信號線何時有效,何時無效的順序表示了接口信號的傳送過程。只有當(dāng)DSR#和DTR#都處于有效狀態(tài)時,才能在DTE和DCE之間進(jìn)行傳送操作。若DTE要發(fā)送數(shù)據(jù),則預(yù)先將DTR#線置成有效狀態(tài),等CTS#線上收到有效狀態(tài)的回答后,才能在TxD線上發(fā)送串行數(shù)據(jù)。這種順序的規(guī)定對半雙工的通信線路特別有用,因為半雙工的通信才能確定DCE已由接收方向改為發(fā)送方向,這時線路才能開始發(fā)送。
2串口通信硬件連接
2.1串口的硬件描述
一臺PC機(jī)中的每個串口都保留了一系列的端口資源,大多數(shù)還有一個指定的中斷請求(IRQ)號或者中斷請求級別。端口被命名為COM1、COM2等等。在Windows下,可以在控制面板里瀏覽端口資源:在“系統(tǒng)”下“端口”下面,選擇一個COM口,然后點(diǎn)擊“屬性”。“端口設(shè)置”選項卡顯示缺省的比特率和其他設(shè)置,但是這些設(shè)置能夠被應(yīng)用程序很方便的修改。
Windows為每一個端口儲存地址和IRQ號,應(yīng)用程序不必關(guān)心這些。一個應(yīng)用程序可以通過使用內(nèi)嵌在編程語言或者WindowsAPI中的函數(shù)來訪問端口。
2.2EIARS-232C串口通信基本接線方法
串口通信距離較近時(<12m),可以用電纜線直接連接標(biāo)準(zhǔn)RS-232端口;若距離較遠(yuǎn),需附加調(diào)制解調(diào)器(MODEM)。
最簡單的是3導(dǎo)線連接,無Modem連接交換RxD和TxD線,因此每個TxD連接到對應(yīng)的RxD,此接法不需要硬件握手。如表2.1所示。如果需要硬件握手則使用另一種接法,如表2.2所示。
表2.1無握手
9針連接線 25針連接線
表2.2循環(huán)回送握手
在簡單場合,串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送針腳就能實(shí)現(xiàn):同一個串口的接收腳和發(fā)送腳直接用線相連,對9針串口和25針串口,均是2與3直接相連;兩個不同串口(不論是同一臺微機(jī)的兩個串口或分別是不同微機(jī)的串口),接收數(shù)據(jù)針腳(或線)與發(fā)送數(shù)據(jù)針腳(或線)相連,彼些交叉,信號地對應(yīng)相接。
3串口通信設(shè)計與實(shí)現(xiàn)
串口通信程序通過串口連接線將兩臺微機(jī)連接起來,通過程序?qū)Ω髯缘亩丝谶M(jìn)行設(shè)置后,按照串口通信協(xié)議SPCP進(jìn)行信息交換,實(shí)現(xiàn)利用串口完成數(shù)據(jù)的收發(fā)功能,并能夠在發(fā)送/接收成功或不成功的情況下都能夠及時地反饋一個正確的信息給通信的雙方。
雙機(jī)串口通信程序具體流程如圖3所示:
圖3串口通信流程
結(jié)論
本文介紹了串口通信原理,雙機(jī)串口通信的連接方式,并用C語言在Windows環(huán)境下實(shí)現(xiàn)了數(shù)據(jù)的發(fā)送和接收,證明所做設(shè)計正確有效。
參考文獻(xiàn)
[1]龔建偉,熊光明.VisualC++/TurboC串口通信編程實(shí)踐.北京:電子工業(yè)出版社,2004.
[2]周荷琴,吳秀清.微型微機(jī)原理與接口技術(shù).合肥:中國科學(xué)技術(shù)大學(xué)出版社,2008.
[3]李建華,郭明.RS-232和調(diào)制解調(diào)器高級通信編程.北京:人民郵電出版社,2001.
[4](美)安格斯.串行端口大全.北京:中國電力出版社,2001.
[5]譚浩強(qiáng).C程序設(shè)計(第三版).北京:清華大學(xué)出版社,2005.
文章標(biāo)題:微機(jī)串口技術(shù)的應(yīng)用
轉(zhuǎn)載請注明來自:http://www.56st48f.cn/fblw/dianxin/yingyong/7254.html
攝影藝術(shù)領(lǐng)域AHCI期刊推薦《Phot...關(guān)注:106
Nature旗下多學(xué)科子刊Nature Com...關(guān)注:152
中小學(xué)教師值得了解,這些教育學(xué)...關(guān)注:47
2025年寫管理學(xué)論文可以用的19個...關(guān)注:192
測繪領(lǐng)域科技核心期刊選擇 輕松拿...關(guān)注:64
及時開論文檢索證明很重要關(guān)注:52
中國水產(chǎn)科學(xué)期刊是核心期刊嗎關(guān)注:54
國際出書需要了解的問題解答關(guān)注:58
合著出書能否評職稱?關(guān)注:48
電信學(xué)有哪些可投稿的SCI期刊,值...關(guān)注:66
通信工程行業(yè)論文選題關(guān)注:73
SCIE、ESCI、SSCI和AHCI期刊目錄...關(guān)注:121
評職稱發(fā)論文好還是出書好關(guān)注:68
復(fù)印報刊資料重要轉(zhuǎn)載來源期刊(...關(guān)注:51
英文期刊審稿常見的論文狀態(tài)及其...關(guān)注:69
Web of Science 核心合集期刊評估...關(guān)注:59
電子信息論文范文
智能科學(xué)技術(shù)論文 廣播電視論文 光電技術(shù)論文 計算機(jī)信息管理論文 計算機(jī)網(wǎng)絡(luò)論文 計算機(jī)應(yīng)用論文 通信論文 信息安全論文 微電子應(yīng)用論文 電子技術(shù)論文 生物醫(yī)學(xué)工程論文 軟件開發(fā)論文
SCI期刊分析
copyright © www.56st48f.cn, All Rights Reserved
搜論文知識網(wǎng) 冀ICP備15021333號-3