劉 春
(江蘇安全技術(shù)職業(yè)學(xué)院電氣系,江蘇徐州 221000)
本文所設(shè)計(jì)系統(tǒng)是一個(gè)電磁聲裂紋檢測(cè)虛擬儀器系統(tǒng),硬件部分主要由筆計(jì)本電腦、電磁聲探頭和電磁聲PC卡(由發(fā)射電路、接收電路和數(shù)據(jù)采集電路構(gòu)成的PCB板)集成在一起。如圖1所示。對(duì)于儀器的電源使用,分為強(qiáng)電部分和弱電部分。采用+5 V直流電源為弱電控制部分的發(fā)射電路供電,采用+200 V直流電源為強(qiáng)電部分的VMOS管供電,而數(shù)據(jù)采集卡也采用+5 V直流電源供電,接收電路則采用±5 V電池供電。
本系統(tǒng)中,用于檢測(cè)裂紋的電磁聲探頭需要發(fā)射電路激勵(lì),從而在工件表面產(chǎn)生表面波。發(fā)射電路所激發(fā)的表面波頻率可調(diào),大致在500 kHz~1 MHz之間,因此對(duì)數(shù)據(jù)采集的頻率要求較高。而EPP的數(shù)據(jù)傳輸,是一種雙向的非對(duì)稱的雙向傳輸模式,由主機(jī)驅(qū)動(dòng),傳輸率較高,最大可以達(dá)到2 MB/s。因此,軟件系統(tǒng)決定通過(guò)LabVIEW程序,對(duì)EPP(Enhanced Parallel Port)端口進(jìn)行讀寫操作,實(shí)現(xiàn)電磁聲信號(hào)的采集、顯示和存儲(chǔ)。圖2所示為數(shù)據(jù)采集原理。采集卡高速采集數(shù)據(jù)并將其存入FIFO,再利用FIFO低速取出數(shù)據(jù),并通過(guò)EPP的接口電路將數(shù)據(jù)送入計(jì)算機(jī)。
圖1 硬件系統(tǒng)Fig.1 Hardwaresystem
圖2 數(shù)據(jù)采集原理Fig.2 Thefunctional block diagramof thedatacollection
并口在與控制對(duì)象或外部設(shè)備進(jìn)行信息傳送時(shí),會(huì)采用多根數(shù)據(jù)線同時(shí)進(jìn)行,即并行傳輸數(shù)據(jù),其傳輸單位為字或字節(jié)[1]。相比于在一根數(shù)據(jù)線上傳輸信息的串口,速度更快,同時(shí)還具有可靠性高,對(duì)數(shù)據(jù)格式、傳輸速率及工作時(shí)序沒(méi)有固定規(guī)定,使用自由廣泛的優(yōu)點(diǎn),適用于近距離、高速度的場(chǎng)合[2]。本系統(tǒng)所采用的模式是并口的EPP模式,采用雙向半雙工數(shù)據(jù)傳輸方式。
計(jì)算機(jī)通常情況下定義的并行端口基地址為L(zhǎng)PT1:0X378H;LPT2:0X278H[3]。本系統(tǒng)采用的并行端口基地址為L(zhǎng)PT1,其相應(yīng)的寄存器地址如表1所示。
表1 寄存器地址
EPP協(xié)議的目的是尋求一種高性能的并行端口連接方式,其定義了數(shù)據(jù)周期和地址周期[4]。數(shù)據(jù)周期用來(lái)向外設(shè)傳輸數(shù)據(jù)或從外設(shè)接收數(shù)據(jù),地址周期用來(lái)交換設(shè)備地址、控制信息等[5]。其中,數(shù)據(jù)周期又有數(shù)據(jù)寫和數(shù)據(jù)讀,地址周期有地址寫和地址讀[6]。
圖3所示為數(shù)據(jù)的寫周期,分為以下幾個(gè)步驟:DATA端口接收到一個(gè)程序向EPP發(fā)送的I/O寫周期命令;數(shù)據(jù)在插入nWRITW信號(hào)的同時(shí)會(huì)出現(xiàn)在并行端口數(shù)據(jù)線上;當(dāng)nWAIT信號(hào)變成低電平之后,插入數(shù)據(jù)選通信號(hào);端口等待來(lái)自外設(shè)的應(yīng)答信號(hào)(取消nWAIT信號(hào));取消數(shù)據(jù)選通信號(hào),EPP周期結(jié)束;ISA I/O周期結(jié)束;插入nWAIT低電平信號(hào)表明可以開始下一個(gè)周期[7]。
圖4所示為數(shù)據(jù)讀周期,分為以下幾個(gè)步驟:程序向EPP的DATA端口發(fā)送一個(gè)I/O數(shù)據(jù)讀周期命令;當(dāng)nWAIT信號(hào)變成低電平之后,插入數(shù)據(jù)選通信號(hào);端口讀取數(shù)據(jù)位,取消數(shù)據(jù)選通信號(hào);端口等待來(lái)自外設(shè)的應(yīng)答信號(hào)(取消nWAIT信號(hào));EPP周期結(jié)束;ISA周期結(jié)束[8]。地址寫和地址讀周期除了把nDATASTB信號(hào)替換成nADDRSTB之外,幾乎完全一樣。
圖4 數(shù)據(jù)讀周期Fig.4 datareadingcycle
對(duì)EPP模式進(jìn)行設(shè)置后,就要考慮如何驅(qū)動(dòng)EPP接口進(jìn)行電磁聲數(shù)據(jù)的采集??捎镁幊谭椒ê芏?。在Windows或DOS下,可用C語(yǔ)言指令直接對(duì)端口讀寫;在Windows或XP下,通過(guò)設(shè)置服務(wù)程序或使用DirectIO、WinIO等工具也可以實(shí)現(xiàn)對(duì)端口的讀寫。本系統(tǒng)使用的是LabVIEW軟件實(shí)現(xiàn)端口的訪問(wèn)。其優(yōu)點(diǎn)是不用考慮操作系統(tǒng),并且可以利用軟件的實(shí)時(shí)控件去保證采集的實(shí)時(shí)性,編寫顯示操作界面簡(jiǎn)單,免去了買采集卡的昂貴費(fèi)用和復(fù)雜的圖形界面程序的編寫,具有經(jīng)濟(jì)上和實(shí)現(xiàn)上的雙重優(yōu)勢(shì)[9]。
基于以上考慮,本課題采用LabVIEW編寫EPP采集卡的軟件。采用的主要方法就是通過(guò)調(diào)用節(jié)點(diǎn)“In Port”,操作“378H+4”或“378H+3”地址,實(shí)現(xiàn)數(shù)據(jù)或地址的讀入,通過(guò)調(diào)用節(jié)點(diǎn)“Out Port”操作“378H+4”或“378H+3”地址,實(shí)現(xiàn)數(shù)據(jù)或地址的寫出。圖5所示為L(zhǎng)abVIEW下連續(xù)采集EPP端口數(shù)據(jù)的程序框圖。
主程序采用了Loop循環(huán)結(jié)構(gòu)連續(xù)采集數(shù)據(jù)。循環(huán)內(nèi),前一部分為等待中斷部分,后一部分為采樣和存儲(chǔ)部分。下方的stop控件用于控制采集程序的中斷,wait延時(shí)按鈕用于將采集到的數(shù)據(jù)延時(shí)50 ms~1 s再顯示到計(jì)算機(jī)屏幕,從而控制屏幕的顯示速度,以適應(yīng)人眼的分辨速度。
等待中斷部分,F(xiàn)IFO只要受到外部的延時(shí)觸發(fā)復(fù)位,采樣到的數(shù)據(jù)會(huì)立刻填滿FIFO。而EPP端口的中斷針一直處于被主機(jī)循環(huán)檢測(cè)的狀態(tài),若EPP端口中斷針為低電平,2 048個(gè)數(shù)據(jù)即被采滿,F(xiàn)IFO中的2 048個(gè)數(shù)據(jù)就處于可被PC機(jī)讀取的狀態(tài),循環(huán)體內(nèi)的延時(shí)控件可以控制從PC讀取數(shù)據(jù)到屏幕顯示的時(shí)間。
采樣和存儲(chǔ)部分采用的是For循環(huán)結(jié)構(gòu),以連續(xù)循環(huán)讀取0x37C端口的數(shù)據(jù),并在數(shù)據(jù)調(diào)整到零點(diǎn)后,送入LabVIEW的Waveform Graph控件,將數(shù)據(jù)以波形顯示在可視化前面板。數(shù)據(jù)可以只顯示不存儲(chǔ),也可以既顯示又存儲(chǔ),功能的切換主要依靠存盤控制按鈕的Ture和False來(lái)控制。如果選擇了Ture,數(shù)據(jù)會(huì)以二進(jìn)制形式存入所選擇的路徑中。
圖5 LabVIEW下采集EPP端口數(shù)據(jù)Fig.5 Collecting EPPport datawith LabVIEW
EPP模式實(shí)現(xiàn)了主機(jī)驅(qū)動(dòng)的非對(duì)稱雙向數(shù)據(jù)傳輸,系統(tǒng)可能獲得500 kB/s~2 MB/s的傳輸率。其是面向主機(jī)總線的,其所有的時(shí)序都由主機(jī)發(fā)出[10]。
采樣保持器和先入先出寄存器(FIFO)配合,先將高速采集到的數(shù)據(jù)存入FIFO,再利用FIFO可以低速取出數(shù)據(jù)的特點(diǎn),以較低的速度通過(guò)EPP端口等待來(lái)自外設(shè)的應(yīng)答信號(hào)(取消nWAIT信號(hào));EPP周期結(jié)束;ISA周期結(jié)束。接口電路傳入計(jì)算機(jī)內(nèi)[11]。
采樣保持器在一個(gè)編碼周期內(nèi)延時(shí)3個(gè)周期的上升沿,芯片將Ain腳接入的模擬量轉(zhuǎn)換為數(shù)字量。FIFO在同一個(gè)周期的下降沿將信號(hào)鎖存,因此采樣保持器可以與FIFO共用一個(gè)時(shí)鐘信號(hào)。這樣,在一個(gè)時(shí)鐘周期內(nèi)就可以完成一次采樣工作。采樣時(shí)序如圖6所示。
本系統(tǒng)中,用于檢測(cè)裂紋的電磁聲探頭需要發(fā)射電路激勵(lì)從而在工件表面產(chǎn)生表面波,將所采集的對(duì)象即用于激勵(lì)電磁聲傳感器的脈沖串,采集到的數(shù)據(jù)在LabVIEW內(nèi)以一維數(shù)組(2 048個(gè)點(diǎn))的形式,通過(guò)Waveform graph節(jié)點(diǎn)顯示波形。通過(guò)Waveform Graph左下腳的圖形控制圖標(biāo),可以實(shí)現(xiàn)對(duì)波形部分的放大、尋峰、展寬等操作,便于觀察和分析。圖7所示為用5 MHz的采樣頻率采到的1 MHz的發(fā)射電路的激勵(lì)脈沖串波形圖。
圖6 采樣時(shí)序Fig.6 Samplingtiming
圖7 采集到的EMAT觸發(fā)信號(hào)Fig.7 EMATtrigger signal collected
本文所介紹系統(tǒng)根據(jù)EPP并口模式下的數(shù)據(jù)讀寫協(xié)議,在LabVIEW開發(fā)環(huán)境下,通過(guò)編寫圖形化程序框圖,調(diào)用相應(yīng)的節(jié)點(diǎn),實(shí)現(xiàn)了LabVIEW與數(shù)據(jù)采集卡的接口,完成了虛擬儀器的軟件開發(fā)。該儀器軟件能夠?qū)﹄姶怕曅盘?hào)進(jìn)行實(shí)時(shí)的波形顯示和數(shù)據(jù)存儲(chǔ)。