王奎龍
摘 要:為了解決過程控制和自動化過程中時序控制的問題,較為詳細地介紹了基于LabVIEW和數(shù)據(jù)采集卡的虛擬脈沖信號產(chǎn)生方法,采用多路數(shù)字信號序列同步輸出的方式,設計并實現(xiàn)一種通用的多路時序控制脈沖信號發(fā)生器。相比于傳統(tǒng)的時序信號發(fā)生器,具有路數(shù)多,參數(shù)調(diào)節(jié)方便,精度較高,容易升級等特點。實際測試和應用表明,可以廣泛應用于各種過程控制和自動化過程中。
關鍵詞:LabVIEW;時序脈沖;信號發(fā)生器;過程控制
中圖分類號:TP273.5文獻標識碼:B
文章編號:1004-373X(2009)20-181-03
Design of Multi-channel Sequential Controlling Pulse Generator Based on LabVIEW
WANG Kuilong
(Hangzhou Normal University,Hangzhou,310036,China)
Abstract:To resolve the sequential control problem in the process control and automated process.The method of virtual pulse signal generator based on LabVIEW and data acquisition card are introduced in detail.Using the way of multi-channel digital signal sequence synchronization output,a kind of general multi-channel sequential controlling pulse signal generator is developed and designed.Comparing to traditional sequential signal generator,it has more channels to output pulse signal,and its parameters can be adjusted easily,its precision is higher,and update easily.The result of measurement and application shows that it can be widely applied to many kinds of process control and the automated process.
Keywords:LabVIEW;sequence pulse;signal generator;process control
0 引 言
在過程控制和自動測量中,經(jīng)常需要一些時序控制脈沖來觸發(fā)和關閉不同的控制單元和功能部件的工作。時序脈沖信號的產(chǎn)生,傳統(tǒng)上一般采用硬件方式實現(xiàn),早期大多采用計數(shù)器和寄存器進行設計,近年普遍采用可編程邏輯器件(PFGA)或數(shù)字信號處理器(DSA)[1]。采用硬件方式實現(xiàn)的時序脈沖信號發(fā)生器存在儀器功能單一,信號輸出通道路數(shù)較少,參數(shù)調(diào)節(jié)不方便,儀器的升級換代困難等缺點;而采用基于LabVIEW的“虛擬儀器”概念設計制作的時序脈沖發(fā)生器卻具有界面直觀、功能多樣、參數(shù)調(diào)節(jié)方便、容易升級換代等特點。
1 LabVIEW簡介
實驗室虛擬儀器集成環(huán)境[2,3](Laboratory Virtual Instrument Engineering Workbench,LabVIEW)是美國國家儀器(National Instruments,NI)公司推出的一種基于“圖形”方式的虛擬儀器開發(fā)軟件。它具備強大的信號采集、信號發(fā)生、數(shù)據(jù)分析與存儲顯示等功能,集開發(fā)、調(diào)試、運行于一體,廣泛應用于測試測量和過程控制系統(tǒng)中。基于LabVIEW軟件和計算機的數(shù)據(jù)采集卡,通過簡單編程,可以方便地實現(xiàn)信號的采集和產(chǎn)生、分析和處理等功能,即“計算機+軟件”等于儀器,比如:可以實現(xiàn)虛擬的信號發(fā)生器、數(shù)據(jù)記錄儀、示波器等功能,具有設計靈活,界面直觀,通用性強,升級方便等特點。
LabVIEW程序稱為“虛擬儀器”或簡稱為VI,一個LabVIEW程序由前面板和程序框圖兩部分組成。前面板用圖形方式模擬傳統(tǒng)儀器的操作面板,包含各種控件和指示器,用來為程序提供輸入值,并接受輸出值;程序框圖包含以圖形方式表示的程序代碼。
LabVIEW還為編程、查錯、調(diào)試提供簡單、方便、完整的環(huán)境和工具。除了具備其他語言所提供的常規(guī)函數(shù)功能外,LabVIEW中還集成了大量生成圖形界面的模板,豐富實用的數(shù)值分析和數(shù)字處理功能,以及多種硬件設備驅動功能。
LabVIEW面向的是沒有編程經(jīng)驗的用戶,而不是編程專家,尤其適合從事科研開發(fā)的科學家和工程技術人員,所以被譽為“工程師和科學家的語言”。
在此,基于LabVIEW軟件和NI PCI-6229數(shù)據(jù)采集卡設計制作了多路時序控制脈沖信號發(fā)生器,可以應用于各種過程的自動控制中。
2 硬件介紹[4,5]
基于LabVIEW軟件和多功能數(shù)據(jù)采集卡,可以實現(xiàn)模擬和數(shù)字信號的采集,以及信號產(chǎn)生等多種功能,性價比較高。NI公司提供了大量不同接口和不同檔次能與LabVIEW軟件很好結合的數(shù)據(jù)采集卡,使用者可以根據(jù)實際需要進行選擇。這里選擇NI公司的M系列多功能數(shù)據(jù)采集卡NI PCI-6229。采用NI公司的產(chǎn)品,配合NI-DAQmx測量服務軟件可以省去硬件驅動程序兼容性等麻煩。NI PCI-6229數(shù)據(jù)采集卡基于PCI接口,共有4路16位模擬輸出,輸出速率達833 kS/s,輸出電壓范圍為-10~+10 V;32路單通道或16路雙通道16位的模擬輸入,通道采樣頻率可達250 kS/s;48路數(shù)字輸入/輸出通道,輸出為TTL電平,板載10 MHz時鐘的硬件定時數(shù)字輸入/輸出,能以硬件定時精度來同步數(shù)字和模擬功能;兩個80 MHz,32位的計數(shù)器/定時器;采用兩個DMA通道,能同時執(zhí)行多個功能。該板卡具有輸入/輸出路數(shù)較多,配備板載硬件時鐘源,分辨率較高,穩(wěn)定性好,性價比較高,時鐘精度可滿足大多數(shù)系統(tǒng)的要求。
3 時序脈沖信號產(chǎn)生的方法
基于LabVIEW的虛擬時序脈沖信號產(chǎn)生一般采用定時翻轉輸出狀態(tài)的方法。具體有:
3.1 狀態(tài)延時法
如圖1所示,先輸出低電平,然后保持低電平并延時,再輸出高電平,再保持高電平并延時,一個過程可以產(chǎn)生一個周期脈沖信號。循環(huán)上述過程,就可以周期性地輸出脈沖信號。
圖1 狀態(tài)延時法流程圖
這種產(chǎn)生方法的脈寬和延時精度決定于高低電平的延時精度。軟件延時通過調(diào)用延時函數(shù)(即Wait函數(shù))來實現(xiàn),而LabVIEW中的Wait延時函數(shù)最小只能到毫秒級,并且受Windows操作系統(tǒng)中多任務運行的影響,在同時運行其他程序時,延時時間不穩(wěn)定。因此,這種方法只有在延時和脈寬調(diào)節(jié)精度不高的場合可以適用,而對穩(wěn)定性和精度要求較高的場合,并不適用。
3.2 時鐘信號法
利用數(shù)據(jù)采集卡自帶的時鐘信號發(fā)生器直接產(chǎn)生周期性的脈沖波形。這種方法可以結合NI公司的DAQ Insistant(助手)方便地設置參數(shù),產(chǎn)生所需的脈沖波形。由于采用板卡的時鐘信號發(fā)生器是完全基于硬件定時的,所以延時時間和脈寬調(diào)節(jié)精度及穩(wěn)定性較高,具體參數(shù)取決于板卡的時鐘頻率。但這種方法受數(shù)據(jù)采集卡的時鐘信號發(fā)生器個數(shù)和輸出的路數(shù)限制,一個時鐘信號的發(fā)生器只能輸出一路信號,而普通的數(shù)據(jù)采集卡只有一個或幾個時鐘信號發(fā)生器,所以產(chǎn)生信號路數(shù)較少。
3.3 數(shù)字波形法
先通過軟件產(chǎn)生波形(模擬波形),再轉換成數(shù)字波形,然后從數(shù)字通道輸出,循環(huán)上述過程,就可以連續(xù)產(chǎn)生一路周期性的TTL脈沖信號。如果需要產(chǎn)生多路的時序脈沖信號,只要采用多路數(shù)字信號序列同步輸出的方法產(chǎn)生即可。比如:需要產(chǎn)生如圖2所示的兩路脈沖信號波形,可以同步地以1 kS/s的樣本輸出速率,分別在兩個數(shù)字通道輸出如圖3所示的兩列數(shù)字波形。
圖2時序脈沖波形圖
圖3 數(shù)字波形圖
如果是多路時序脈沖,只需要增加同步輸出路數(shù)就可以實現(xiàn)。然而時序脈沖信號的延時精度和脈寬精度調(diào)節(jié)取決于每個數(shù)字通道的樣本輸出速率,如采用1 MS/s的樣本輸出速率,則可以實現(xiàn)1 μs(1 s/1 MHz)的調(diào)節(jié)精度,延時時間和脈沖寬度調(diào)節(jié)則通過改變延時數(shù)字樣本數(shù)和脈寬數(shù)字樣本數(shù)實現(xiàn),具體關系為:
延時時間=精度×延時數(shù)字個數(shù),
脈沖寬度=精度×脈沖寬度數(shù)字個數(shù)
采用數(shù)字波形法來產(chǎn)生時序脈沖波形。由于NI PCI-6229數(shù)據(jù)采集卡數(shù)字I/O的同步時鐘采用板卡自帶的硬件時鐘定時,所以不受計算機操作系統(tǒng)多任務運行時的影響,穩(wěn)定性好。PCI-6229 共有48路DIO通道,因此時序脈沖輸出路數(shù)擴充方便。
在此,采用數(shù)字波形法和PCI-6229數(shù)據(jù)采集卡,實現(xiàn)了多路時序脈沖信號發(fā)生器,其延時和脈寬調(diào)節(jié)精度可以穩(wěn)定地達到微秒數(shù)量級。
4 軟件編程
4.1 程序框圖[6]
圖4為兩路脈沖信號發(fā)生器的程序框圖,多路脈沖發(fā)生器只需增加相應的輸入端即可。
先用Pulse Pattern.vi子模板產(chǎn)生一個模擬脈沖波形,其中延時、脈寬、周期(即樣本數(shù))用控件調(diào)節(jié),再用Analog to Digital Waveform.vi子模板將模擬脈沖波形轉換成數(shù)字波形,同時設定正負邏輯轉換開關。再把各單路數(shù)字波形用bundle函數(shù)進行捆綁,再通過DAQmx Write.vi子模板從選定的數(shù)字I/O通道寫出,故在各個數(shù)字輸出通道產(chǎn)生脈沖波形。然而時序脈沖信號的周期性通過For Loop循環(huán)實現(xiàn),一次循環(huán)產(chǎn)生一個脈沖波形,即實現(xiàn)一次控制過程,如果需要進行多次控制,只要設定循環(huán)次數(shù)即可。
數(shù)字信號輸出過程中的關鍵是數(shù)字通道的樣本輸出速率。樣本輸出速率通過一個樣本時鐘控制,在本發(fā)生器中由計數(shù)器/定時器通過編程輸出設定頻率的連續(xù)矩形脈沖,再從數(shù)據(jù)采集卡的PFI12接口輸入,作為控制各路數(shù)字波形輸出的同步時鐘,控制各數(shù)字通道同步輸出波形。其中,同步時鐘脈沖的周期就是時序脈沖延時和脈寬調(diào)節(jié)精度。實際測量表明,在該數(shù)據(jù)采集卡中最小可達到0.5 μs的調(diào)節(jié)精度。
圖4 兩路時序脈沖發(fā)生器程序框圖
4.2 前面板圖
圖5所示為四路時序脈沖發(fā)生器的前面板圖。其中,時鐘頻率為延時和脈寬調(diào)節(jié)精度,也就是數(shù)字通道的樣本輸出速率,如頻率為1 kHz,即為1 ms,在該發(fā)生器中最大可以穩(wěn)定達到2 MHz,即最小延時可達0.5 μs。其中,各通道的周期在本發(fā)生器中相同,設定為統(tǒng)一調(diào)整(也可以設定為不同的周期)。每個通道的延時時間,脈沖寬度可調(diào),并設有正負邏輯開關,可以輸出正脈沖或負脈沖波形。信號周期數(shù)為過程控制的次數(shù)。同時設有產(chǎn)生波形的圖形顯示(圖示為一個周期的波形),所見即所得,非常直觀。
5 脈沖信號的硬件輸出
信號發(fā)生器產(chǎn)生的脈沖信號通過數(shù)據(jù)采集卡的相應數(shù)字I/O通道輸出,可以使用專用連接電纜連接到接線盒,再由接線盒從相應的端口輸出到相關控制設備。其中,輸出為TTL信號電平,如不能直接驅動設備,則需要根據(jù)具體設備情況連接相應的接口電路。
圖5 時序脈沖發(fā)生器前面板圖
設計開發(fā)完成的時序脈沖發(fā)生器產(chǎn)生的時序脈沖信號經(jīng)示波器實際測試,信號的延時最小值可以穩(wěn)定地達到0.5 μs,而脈沖信號的上升沿可以達到50 ns。完全能滿足大多數(shù)控制的要求。
6 結 語
基于LabVIEW軟件和數(shù)據(jù)采集卡可以方便地實現(xiàn)虛擬的多路時序脈沖信號發(fā)生器,具有一定的通用性,可以廣泛地應用到各種自動測量和過程控制中,與傳統(tǒng)基于硬件設計的脈沖信號發(fā)生器相比,具有時序脈沖延時和脈寬調(diào)節(jié)精度高,脈沖上升沿時間短,路數(shù)較多,界面友好,調(diào)節(jié)方便等優(yōu)點。選用不同功能的數(shù)據(jù)采集卡,還可以實現(xiàn)更復雜的控制場合。另外,利用數(shù)據(jù)采集卡的模擬I/O,還可以產(chǎn)生同步的模擬控制信號,控制不同的設備。因此,基于LabVIEW的時序信號發(fā)生器不失為一種實現(xiàn)自動控制的好方法。
參考文獻
[1]秦明.應用TMS20F240芯片設計高精度可控信號發(fā)生器[J].國外電子測量技術,2002(3):1-3.
[2][美]Robert H Bishop.LabVIEW 7實用教程[M].喬瑞萍,譯.北京:電子工業(yè)出版社,2005.
[3]侯國屏.LabVIEW 7.1編程與虛擬儀器設計[M].北京:清華大學出版社,2005.
[4]National Instruments:DAQ M Series User Manual[Z].2004.
[5]National Instruments:M Series Whitepaper[Z].2004.
[6]National Instruments:Data Acquisition Basics Manual[Z].1996.
[7]陳志斌,卓家靖.基于單片機CPLD的嵌入式脈沖發(fā)生器設計[J].微計算機信息,2005,21(2):107-108.
[8]Job C,Pearson R M,Brown M F.A Personal Computer-based Nuclear Magnetic Resonance Spectrometer[J].Rev.Sci.Instrum.,1994,65:33-54.
[9]Toyoda T,Yoshida H,Oishi O,et al.Personal Computer Controlled 16 Channel Versatile Pulse Generator for Nuclear Magnetic Resonance[J].Rev.Sci.Instrum.,1997,68:31-40.
[10]李曼義,劉丹菲,李星,等.時序脈沖發(fā)生器的設計與實現(xiàn)[J].云南師范大學學報,2003,12(2):26-28.