- 相關(guān)推薦
并行口與串行口實(shí)時(shí)通訊
摘要 該文介紹了一種利用并行打印口與串行通訊口實(shí)施單向數據通訊的方法,該方法曾成功地實(shí)際應用于由386微機所組成的某個(gè)工程系統中,取得了滿(mǎn)意的效果。
一、引言
一般的科學(xué)實(shí)驗或工程應用中,常常需將實(shí)驗數據或產(chǎn)品數據由打印機輸出,然后再由人工(或輸入電腦)進(jìn)行分析處理。
如果將那些送往打印口的數據,直接傳送給電腦,由軟件進(jìn)行分析處理,形成一個(gè)完整的數據處理系統,將給用戶(hù)的數據處理帶來(lái)方便,更好地為生產(chǎn)科研服務(wù)。
本文敘述的是,結合油田使用的檢波器測試儀(SMT-100),解決了將那些送往打印口(熱敏打印機-富士通FTPO40UCS)的數據通過(guò)PC機串行口直接送往電腦的問(wèn)題,以及所開(kāi)發(fā)的接口應用軟件。
二、工作原理
由于SMT-100檢波器測試儀的8位數據是經(jīng)并行口送到打印機的,若欲將輸出到該并行口的數據再經(jīng)并行口送往電腦主機,則需設計專(zhuān)用接口板(如掃描儀專(zhuān)用接口板)。因為電腦所配置的并行口均被系統定義成標準輸出設備,無(wú)法接收外來(lái)的并行數據,但其所配置的串行口卻是標準的輸入設備[1]。將并行數據經(jīng)"并-串"轉換之后,由標準RS-232串行口送往電腦主機是可行的。特別是在工業(yè)實(shí)際應用中,既可節省遠距離并行電纜的開(kāi)支,又提高了抗干擾能力,因此在傳送數據量不是很大時(shí),可以采用并行發(fā)送,串行接收的通訊方式。如圖1所示。
圖1接口連接圖(并口到串口)雙向轉換器采用工業(yè)產(chǎn)品SXP-320[2]。(略)
其主要功能參數如表1。
表1(略)
其參數設置由側面的8位DIP開(kāi)頭完成:
圖2(略)
工作時(shí),只需將其波特率、數據長(cháng)度、停止位和奇偶校驗等的設置與主機相匹配即可。
三、接口程序設計
利用BIOS提供的串行口例行程序傳輸,當傳輸速度大于2400bps時(shí),有可能丟失字符[3]。為此,本系統采用了中斷控制方式,對串行口的接收和存儲實(shí)施控制,以防數據丟失。
PC機中執行串行通訊的主芯片8250是可編程的,有10個(gè)可訪(fǎng)問(wèn)寄存器,其中5個(gè)根據需要,在程序開(kāi)始時(shí),對它們初始化就可使用。
其端口地址與狀態(tài)字的含義如表2。
表2
PC機內的8259A芯片,有一個(gè)中斷屏敝寄存器(IMR),可以提供8個(gè)中斷源,其中RS-232接口對應于IRQ4,可按要求設置中斷屏蔽控制字。
當8250發(fā)出的中斷申請信號(表示已準備好接收數據),經(jīng)系統總線(xiàn)到達8259A中斷控制器的輸入端(IRQ4),CPU若響應該中斷,則執行該中斷的服務(wù)程序,進(jìn)行數據的傳送和存儲操作。
實(shí)用中的初始化設置如下:
mov al 2ch; 8259a初始化 mov dx,3fbh
out 21h,almov al,03h
mov dx,3fbh;8350初始化out dx,al
mov al,80hmov dx,3fch
out dx,almov al,0bh
mov dx,3f8hout dx,al
mov al,20mov dx,3f9h
out dx,almov al,01h
mov dx,3f9hout dx,al
mov al,0sti;開(kāi)中斷
out dx,al
利用線(xiàn)狀態(tài)寄存器(端口地址3FDH),可檢測接收的數據是否有錯。若有錯,就發(fā)出報警聲,退出中斷服務(wù)程序,以便根據情況中止數據傳送。
四、應用程序設計
采用上述通訊方式,可以采集到外部設備發(fā)送的全部信息,欲對其做進(jìn)一步處理和存儲,尚需根據用戶(hù)需要,開(kāi)發(fā)相應的應用軟件。
我們將油田檢波器測試儀與主機(386)按上述方式連通,并將那些經(jīng)串行口接收到的全部信息,經(jīng)過(guò)應用軟件分析、處理,生成磁盤(pán)數據文件[4],為用戶(hù)項目的深入研究提供原始資料[5]。
檢測一個(gè)元件的處理過(guò)程如下:
(1)在主程序中為串行口存儲數據,建立一個(gè)先進(jìn)先出的字符緩沖區circle-buffer,動(dòng)態(tài)申請64K內存,可接收相當于2000個(gè)元件的全部信息。
(2)在主程序中開(kāi)辟一個(gè)能存放單個(gè)元件處理結果的小緩沖區(如30字節)readbuffer。
(3)BX基指針指向circle buffer緩沖區,順序掃描,每次處理一個(gè)元件所接收的信息量,利用堆棧技術(shù),將一個(gè)元件各參數間分隔符(如"=")地址壓入堆棧。然后逐一彈出,按輸出文本格式進(jìn)行處理,并將處理結果存入readbuffer。
(4)將readbuffer的內容經(jīng)磁盤(pán)文件管理功能調用,寫(xiě)入數據文件。一次一個(gè)記錄,如此重復(3)和(4),直到circle-buffer的內容為空。
(5)工作過(guò)程中,通過(guò)ESC功能鍵可隨時(shí)中止串行口通訊工作。
五、結束語(yǔ)
在調試過(guò)程中,經(jīng)對500個(gè)元件進(jìn)行測試、傳送、接收和處理,都取得了令人滿(mǎn)意的結果。本項目已交西安石油勘探儀器廠(chǎng)檢波器分廠(chǎng)使用,系統實(shí)時(shí)方便,可靠性高,實(shí)用性強。
參考文獻
1 王士元,吳芝芳.IBM PC/XT接口技術(shù)及其應用.天津:南開(kāi)大學(xué)出版社,1990年
2 TWO WAY CONVERTER/BUFFER SXP-320 User's Manual .copyright 1990 ATEN International Co., LTD
3 沈美明,溫冬嬋.IBM-PC匯編語(yǔ)言程序設計.北京:清華大學(xué)出版社,1991年
4 趙文忠等.微型機外圍接口與通道.西安交通大學(xué)出版社,1991年
5 地震檢波器原理.西安石油儀器廠(chǎng),1986年
【并行口與串行口實(shí)時(shí)通訊】相關(guān)文章:
建立實(shí)時(shí)企業(yè)的策略分析03-20
遠程實(shí)時(shí)審計淺探03-24
利用EPP并行口實(shí)壩PC機之間通信的CAN總線(xiàn)設計03-19
基于RTLinux的實(shí)時(shí)控制系統03-20
電力驅動(dòng)系統逆變器實(shí)時(shí)仿真03-18
MIDI信號的解碼及實(shí)時(shí)音符顯示03-20