本站小編為你精心準(zhǔn)備了微機(jī)串口技術(shù)的應(yīng)用參考范文,愿這些范文能點(diǎn)燃您思維的火花,激發(fā)您的寫作靈感。歡迎深入閱讀并收藏。
摘要:微機(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
1串行通信原理
計(jì)算機(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ā)送檢驗(yàn)位;然后再發(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ì)算機(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芯插件。
主要信號線定義下:
(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ī)定對半雙工的通信線路特別有用,因?yàn)榘腚p工的通信才能確定DCE已由接收方向改為發(fā)送方向,這時線路才能開始發(fā)送。
2串口通信硬件連接
2.1串口的硬件描述
一臺PC機(jī)中的每個串口都保留了一系列的端口資源,大多數(shù)還有一個指定的中斷請求(IRQ)號或者中斷請求級別。端口被命名為COM1、COM2等等。在Windows下,可以在控制面板里瀏覽端口資源:在“系統(tǒng)”下“端口”下面,選擇一個COM口,然后點(diǎn)擊“屬性”。“端口設(shè)置”選項(xiàng)卡顯示缺省的比特率和其他設(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所示。果需要硬件握手則使用另一種接法。
在簡單場合,串口傳輸數(shù)據(jù)只要有接收數(shù)據(jù)針腳和發(fā)送針腳就能實(shí)現(xiàn):同一個串口的接收腳和發(fā)送腳直接用線相連,對9針串口和25針串口,均是2與3直接相連;兩個不同串口(不論是同一臺微機(jī)的兩個串口或分別是不同微機(jī)的串口),接收數(shù)據(jù)針腳(或線)與發(fā)送數(shù)據(jù)針腳(或線)相連,彼些交叉,信號地對應(yīng)相接。
3串口通信設(shè)計(jì)與實(shí)現(xiàn)
串口通信程序通過串口連接線將兩臺微機(jī)連接起來,通過程序?qū)Ω髯缘亩丝谶M(jìn)行設(shè)置后,按照串口通信協(xié)議SPCP進(jìn)行信息交換,實(shí)現(xiàn)利用串口完成數(shù)據(jù)的收發(fā)功能,并能夠在發(fā)送/接收成功或不成功的情況下都能夠及時地反饋一個正確的信息給通信的雙方。
結(jié)論
本文介紹了串口通信原理,雙機(jī)串口通信的連接方式,并用C語言在Windows環(huán)境下實(shí)現(xiàn)了數(shù)據(jù)的發(fā)送和接收,證明所做設(shè)計(jì)正確有效。