0 引 言
在過程控制和自動(dòng)測(cè)量中,,經(jīng)常需要一些時(shí)序控制脈沖來觸發(fā)和關(guān)閉不同的控制單元和功能部件的工作,。時(shí)序脈沖信號(hào)的產(chǎn)生,傳統(tǒng)上一般采用硬件方式實(shí)現(xiàn),,早期大多采用計(jì)數(shù)器和寄存器進(jìn)行設(shè)計(jì),,近年普遍采用可編程邏輯器件(PFGA)或數(shù)字信號(hào)處理器(DSA)。采用硬件方式實(shí)現(xiàn)的時(shí)序脈沖信號(hào)發(fā)生器存在儀器功能單一,,信號(hào)輸出通道路數(shù)較少,,參數(shù)調(diào)節(jié)不方便,儀器的升級(jí)換代困難等缺點(diǎn),;而采用基于LabVIEW的“虛擬儀器”概念設(shè)計(jì)制作的時(shí)序脈沖發(fā)生器卻具有界面直觀,、功能多樣、參數(shù)調(diào)節(jié)方便,、容易升級(jí)換代等特點(diǎn),。
1 LabVIEW簡(jiǎn)介
實(shí)驗(yàn)室虛擬儀器集成環(huán)境(Laboratory Virtual Instrument Engineering Workbench,LabVIEW)是美國(guó)國(guó)家儀器(National Instruments,,NI)公司推出的一種基于“圖形”方式的虛擬儀器開發(fā)軟件,。它具備強(qiáng)大的信號(hào)采集、信號(hào)發(fā)生,、數(shù)據(jù)分析與存儲(chǔ)顯示等功能,,集開發(fā)、調(diào)試,、運(yùn)行于一體,,廣泛應(yīng)用于測(cè)試測(cè)量和過程控制系統(tǒng)中?;贚abVIEW軟件和計(jì)算機(jī)的數(shù)據(jù)采集卡,,通過簡(jiǎn)單編程,可以方便地實(shí)現(xiàn)信號(hào)的采集和產(chǎn)生,、分析和處理等功能,,即“計(jì)算機(jī)+軟件”等于儀器,比如:可以實(shí)現(xiàn)虛擬的信號(hào)發(fā)生器,、數(shù)據(jù)記錄儀,、示波器等功能,具有設(shè)計(jì)靈活,界面直觀,,通用性強(qiáng).升級(jí)方便等特點(diǎn),。
LabVIEW程序稱為“虛擬儀器”或簡(jiǎn)稱為VI,一個(gè)LabVIEW程序由前面板和程序框圖兩部分組成,。前面板用圖形方式模擬傳統(tǒng)儀器的操作面板,,包含各種控件和指示器,用來為程序提供輸入值,,并接受輸出值,;程序框圖包含以圖形方式表示的程序代碼。
LabVlEW還為編程,、查錯(cuò),、調(diào)試提供簡(jiǎn)單、方便,、完整的環(huán)境和工具,。除了具備其他語言所提供的常規(guī)函數(shù)功能外,LabVIEW中還集成了大量生成圖形界面的模板,,豐富實(shí)用的數(shù)值分析和數(shù)字處理功能,,以及多種硬件設(shè)備驅(qū)動(dòng)功能。
LabVIEW面向的是沒有編程經(jīng)驗(yàn)的用戶,,而不是編程專家,,尤其適合從事科研開發(fā)的科學(xué)家和工程技術(shù)人員,所以被譽(yù)為“工程師和科學(xué)家的語言”,。
在此,,基于LabVIEW軟件和NI PCI-6229數(shù)據(jù)采集卡設(shè)計(jì)制作了多路時(shí)序控制脈沖信號(hào)發(fā)生器,可以應(yīng)用于各種過程的自動(dòng)控制中,。
2 硬件介紹
基于LabVIEW軟件和多功能數(shù)據(jù)采集卡,,可以實(shí)現(xiàn)模擬和數(shù)字信號(hào)的采集,,以及信號(hào)產(chǎn)生等多種功能,。性價(jià)比較高。NI公司提供了大量不同接口和不同檔次能與LabVIEW軟件很好結(jié)合的數(shù)據(jù)采集卡,,使用者可以根據(jù)實(shí)際需要進(jìn)行選擇,。這里選擇NI公司的M系列多功能數(shù)據(jù)采集卡NI PCI-6229。采用NI公司的產(chǎn)品,,配合NI-DAQmx測(cè)量服務(wù)軟件可以省去硬件驅(qū)動(dòng)程序兼容性等麻煩,。NI PCI-6229數(shù)據(jù)采集卡基于PCI接口,共有4路16位模擬輸出,,輸出速率達(dá)833 kS/s,,輸出電壓范圍為-10~+10 V;32路單通道或16路雙通道16位的模擬輸入,通道采樣頻率可達(dá)250 kS/s,;48路數(shù)字輸入/輸出通道,,輸出為TTL電平,板載10 MHz時(shí)鐘的硬件定時(shí)數(shù)字輸入/輸出,,能以硬件定時(shí)精度來同步數(shù)字和模擬功能,;兩個(gè)80 MHz,32位的計(jì)數(shù)器/定時(shí)器,;采用兩個(gè)DMA通道,,能同時(shí)執(zhí)行多個(gè)功能。該板卡具有輸入/輸出路數(shù)較多,,配備板載硬件時(shí)鐘源,,分辨率較高,穩(wěn)定性好,,性價(jià)比較高,,時(shí)鐘精度可滿足大多數(shù)系統(tǒng)的要求。
3 時(shí)序脈沖信號(hào)產(chǎn)生的方法
基于LabVIEW的虛擬時(shí)序脈沖信號(hào)產(chǎn)生一般采用定時(shí)翻轉(zhuǎn)輸出狀態(tài)的方法,。具體有:
3.1 狀態(tài)延時(shí)法
如圖1所示,,先輸出低電平,然后保持低電平并延時(shí),,再輸出高電平,,再保持高電平并延時(shí),一個(gè)過程可以產(chǎn)生一個(gè)周期脈沖信號(hào),。循環(huán)上述過程,,就可以周期性地輸出脈沖信號(hào)。
這種產(chǎn)生方法的脈寬和延時(shí)精度決定于高低電平的延時(shí)精度,。軟件延時(shí)通過調(diào)用延時(shí)函數(shù)(即Wait函數(shù))來實(shí)現(xiàn),,而LabVIEW中的Wait延時(shí)函數(shù)最小只能到毫秒級(jí),并且受Windows操作系統(tǒng)中多任務(wù)運(yùn)行的影響,,在同時(shí)運(yùn)行其他程序時(shí),,延時(shí)時(shí)間不穩(wěn)定。因此,,這種方法只有在延時(shí)和脈寬調(diào)節(jié)精度不高的場(chǎng)合可以適用,,而對(duì)穩(wěn)定性和精度要求較高的場(chǎng)合,并不適用,。
3.2 時(shí)鐘信號(hào)法
利用數(shù)據(jù)采集卡自帶的時(shí)鐘信號(hào)發(fā)生器直接產(chǎn)生周期性的脈沖波形,。這種方法可以結(jié)合NI公司的DAQ Insistant(助手)方便地設(shè)置參數(shù),產(chǎn)生所需的脈沖波形,。由于采用板卡的時(shí)鐘信號(hào)發(fā)生器是完全基于硬件定時(shí)的,,所以延時(shí)時(shí)間和脈寬調(diào)節(jié)精度及穩(wěn)定性較高,,具體參數(shù)取決于板卡的時(shí)鐘頻率。但這種方法受數(shù)據(jù)采集卡的時(shí)鐘信號(hào)發(fā)生器個(gè)數(shù)和輸出的路數(shù)限制,,一個(gè)時(shí)鐘信號(hào)的發(fā)生器只能輸出一路信號(hào),,而普通的數(shù)據(jù)采集卡只有一個(gè)或幾個(gè)時(shí)鐘信號(hào)發(fā)生器,所以產(chǎn)生信號(hào)路數(shù)較少,。
3.3 數(shù)字波形法
先通過軟件產(chǎn)生波形(模擬波形),,再轉(zhuǎn)換成數(shù)字波形,然后從數(shù)字通道輸出,,循環(huán)上述過程,,就可以連續(xù)產(chǎn)生一路周期性的TTL脈沖信號(hào)。如果需要產(chǎn)生多路的時(shí)序脈沖信號(hào),,只要采用多路數(shù)字信號(hào)序列同步輸出的方法產(chǎn)生即可,。比如:需要產(chǎn)生如圖2所示的兩路脈沖信號(hào)波形,可以同步地以1 kS/s的樣本輸出速率,。分別在兩個(gè)數(shù)字通道輸出如圖3所示的兩列數(shù)字波形,。
如果是多路時(shí)序脈沖,只需要增加同步輸出路數(shù)就可以實(shí)現(xiàn),。然而時(shí)序脈沖信號(hào)的延時(shí)精度和脈寬精度調(diào)節(jié)取決于每個(gè)數(shù)字通道的樣本輸出速率,,如采用1 MS/s的樣本輸出速率,則可以實(shí)現(xiàn)1μs(1 s/1 MHz)的調(diào)節(jié)精度,,延時(shí)時(shí)間和脈沖寬度調(diào)節(jié)則通過改變延時(shí)數(shù)字樣本數(shù)和脈寬數(shù)字樣本數(shù)實(shí)現(xiàn),,具體關(guān)系為:
延時(shí)時(shí)間一精度×延時(shí)數(shù)字個(gè)數(shù),
脈沖寬度一精度×脈沖寬度數(shù)字個(gè)數(shù)
采用數(shù)字波形法來產(chǎn)生時(shí)序脈沖波形,。由于NIPCI-6229數(shù)據(jù)采集卡數(shù)字I/O的同步時(shí)鐘采用板卡自帶的硬件時(shí)鐘定時(shí),,所以不受計(jì)算機(jī)操作系統(tǒng)多任務(wù)運(yùn)行時(shí)的影響,穩(wěn)定性好,。PCI-6229共有48路DIO通道,,因此時(shí)序脈沖輸出路數(shù)擴(kuò)充方便。在此,,采用數(shù)字波形法和PCI-6229數(shù)據(jù)采集卡,,實(shí)現(xiàn)了多路時(shí)序脈沖信號(hào)發(fā)生器,其延時(shí)和脈寬調(diào)節(jié)精度可以穩(wěn)定地達(dá)到微秒數(shù)量級(jí),。
4 軟件編程
4.1 程序框圖
圖4為兩路脈沖信號(hào)發(fā)生器的程序框圖,,多路脈沖發(fā)生器只需增加相應(yīng)的輸入端即可,。
先用Pulse Pattern.vi子模板產(chǎn)生一個(gè)模擬脈沖波形,,其中延時(shí)、脈寬,、周期(即樣本數(shù))用控件調(diào)節(jié),,再用Analog to Digital Waveform.vi子模板將模擬脈沖波形轉(zhuǎn)換成數(shù)字波形,,同時(shí)設(shè)定正負(fù)邏輯轉(zhuǎn)換開關(guān)。再把各單路數(shù)字波形用bundle函數(shù)進(jìn)行捆綁,,再通過DAQmx Write.vi子模板從選定的數(shù)字I/O通道寫出,,故在各個(gè)數(shù)字輸出通道產(chǎn)生脈沖波形。然而時(shí)序脈沖信號(hào)的周期性通過For Loop循環(huán)實(shí)現(xiàn),,一次循環(huán)產(chǎn)生一個(gè)脈沖波形,,即實(shí)現(xiàn)一次控制過程,如果需要進(jìn)行多次控制,,只要設(shè)定循環(huán)次數(shù)即可,。
數(shù)字信號(hào)輸出過程中的關(guān)鍵是數(shù)字通道的樣本輸出速率。樣本輸出速率通過一個(gè)樣本時(shí)鐘控制,,在本發(fā)生器中由計(jì)數(shù)器/定時(shí)器通過編程輸出設(shè)定頻率的連續(xù)矩形脈沖,,再?gòu)臄?shù)據(jù)采集卡的PFI12接口輸入,作為控制各路數(shù)字波形輸出的同步時(shí)鐘,,控制各數(shù)字通道同步輸出波形,。其中,同步時(shí)鐘脈沖的周期就是時(shí)序脈沖延時(shí)和脈寬調(diào)節(jié)精度,。實(shí)際測(cè)量表明,,在該數(shù)據(jù)采集卡中最小可達(dá)到0.5μs的調(diào)節(jié)精度。
4.2 前面板圖
圖5所示為四路時(shí)序脈沖發(fā)生器的前面板圖,。其中,,時(shí)鐘頻率為延時(shí)和脈寬調(diào)節(jié)精度,也就是數(shù)字通道的樣本輸出速率,,如頻率為1 kHz,,即為1 ms,在該發(fā)生器中最大可以穩(wěn)定達(dá)到2 MHz,,即最小延時(shí)可達(dá)0.5μs,。其中,各通道的周期在本發(fā)生器中相同,,設(shè)定為統(tǒng)一調(diào)整(也可以設(shè)定為不同的周期),。每個(gè)通道的延時(shí)時(shí)間,脈沖寬度可調(diào),,并設(shè)有正負(fù)邏輯開關(guān),,可以輸出正脈沖或負(fù)脈沖波形。信號(hào)周期數(shù)為過程控制的次數(shù),。同時(shí)設(shè)有產(chǎn)生波形的圖形顯示(圖示為一個(gè)周期的波形),,所見即所得,非常直觀,。
5 脈沖信號(hào)的硬件輸出
信號(hào)發(fā)生器產(chǎn)生的脈沖信號(hào)通過數(shù)據(jù)采集卡的相應(yīng)數(shù)字I/O通道輸出,,可以使用專用連接電纜連接到接線盒,,再由接線盒從相應(yīng)的端口輸出到相關(guān)控制設(shè)備。其中,,輸出為TTL信號(hào)電平,,如不能直接驅(qū)動(dòng)設(shè)備,則需要根據(jù)具體設(shè)備情況連接相應(yīng)的接口電路,。
設(shè)計(jì)開發(fā)完成的時(shí)序脈沖發(fā)生器產(chǎn)生的時(shí)序脈沖信號(hào)經(jīng)示波器實(shí)際測(cè)試,,信號(hào)的延時(shí)最小值可以穩(wěn)定地達(dá)到0.5 μs,而脈沖信號(hào)的上升沿可以達(dá)到50 ns,。完全能滿足大多數(shù)控制的要求,。
6 結(jié) 語
基于LabVIEW軟件和數(shù)據(jù)采集卡可以方便地實(shí)現(xiàn)虛擬的多路時(shí)序脈沖信號(hào)發(fā)生器,具有一定的通用性,,可以廣泛地應(yīng)用到各種自動(dòng)測(cè)量和過程控制中,,與傳統(tǒng)基于硬件設(shè)計(jì)的脈沖信號(hào)發(fā)生器相比,具有時(shí)序脈沖延時(shí)和脈寬調(diào)節(jié)精度高,,脈沖上升沿時(shí)間短,,路數(shù)較多,界面友好,,調(diào)節(jié)方便等優(yōu)點(diǎn),。選用不同功能的數(shù)據(jù)采集卡,還可以實(shí)現(xiàn)更復(fù)雜的控制場(chǎng)合,。另外,,利用數(shù)據(jù)采集卡的模擬I/O,還可以產(chǎn)生同步的模擬控制信號(hào),,控制不同的設(shè)備,。因此,基于LabVIEW的時(shí)序信號(hào)發(fā)生器不失為一種實(shí)現(xiàn)自動(dòng)控制的好方法,。