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