概述
多功能智能DAQ設(shè)備配有自定義式板載處理功能,最大限度地為系統(tǒng)定時及觸發(fā)提供靈活性能。 與控制設(shè)備功能的固定ASIC不同,智能DAQ采用基于FPGA的系統(tǒng)定時控制器,令所有模擬和數(shù)字I/O能夠根據(jù)特定應(yīng)用操作接受相應(yīng)的配置。 本指南展示了:如何使用R系列智能DAQ板卡和NI LabVIEW FPGA,靈活自如地執(zhí)行數(shù)據(jù)采集任務(wù)
入門
NI LabVIEW FPGA模塊幫助DAQ系統(tǒng)的開發(fā)者靈活自如地進(jìn)行應(yīng)用程序編程以實(shí)現(xiàn)各類輸入/輸出操作。 用戶無需預(yù)先了解VHDL等硬件設(shè)計工具,便可將LabVIEW代碼嵌入FPGA芯片并獲得硬件定時的速度和可靠性。
讓我們先從數(shù)據(jù)采集硬件的常用組件切入論題。 假設(shè)您擁有了模數(shù)轉(zhuǎn)換器(ADC)、數(shù)模轉(zhuǎn)換器(DAC)和數(shù)字輸入/輸出線,則所有I/O便要根據(jù)實(shí)際操作接受某種方式的定時和控制。 典型的多功能數(shù)據(jù)采集設(shè)備采用功能齊全的ASIC,滿足了大多數(shù)的功能性需求。
比如:M系列DAQ設(shè)備通過DAQ-STC2,控制著各類硬件組件的定時和觸發(fā)。 智能DAQ硬件(如:R系列DAQ設(shè)備)區(qū)別于市面上的其他任何數(shù)據(jù)采集設(shè)備,因?yàn)樵诳刂圃O(shè)備功能方面智能DAQ用基于FPGA的系統(tǒng)定時控制器取代了傳統(tǒng)ASIC,從而使得所有模擬和數(shù)字I/O都能根據(jù)特定應(yīng)用操作接受相應(yīng)的配置。 可重配置FPGA芯片通過NI LabVIEW FPGA模塊進(jìn)行編程,此時NI LabVIEW的數(shù)據(jù)流模式仍舊適用,不過采用了一組新函數(shù)控制最底層的設(shè)備I/O。
LabVIEW FPGA I/O節(jié)點(diǎn)并不通過NI-DAQmx函數(shù)負(fù)責(zé)實(shí)現(xiàn)常見的任務(wù)和功能,而是靈活自如地在各個通道最底層上運(yùn)行。 通過以下各部分的內(nèi)容,我們將了解NI-DAQmx的特定實(shí)例,并學(xué)習(xí)如何通過智能DAQ定制各類數(shù)據(jù)采集任務(wù)。
定時和觸發(fā)
實(shí)現(xiàn)高級數(shù)據(jù)采集的智能DAQ主要用于定制定時和觸發(fā)。 下方的范例程序框圖展現(xiàn)了:NI-DAQmx幫助實(shí)現(xiàn)的觸發(fā)式模擬輸入任務(wù)。
圖1. 通過NI-DAQmx實(shí)現(xiàn)的觸發(fā)式模擬輸入
如圖1所示,智能DAQ并未使用不同函數(shù)配置通道,而是通過名為I/O節(jié)點(diǎn)的函數(shù)讀寫各路模擬和數(shù)字通道。 讓我們看看使用NI LabVIEW FPGA中I/O節(jié)點(diǎn)所獲得的相同功能。
圖2. 通過智能DAQ和NI LabVIEW FPGA實(shí)現(xiàn)的觸發(fā)式模擬輸入
上圖既沒有針對全局通道、采樣時鐘、觸發(fā)的配置函數(shù),也沒有開始、停止和清除等任務(wù)。 所有內(nèi)容都被1個簡單的模擬I/O讀取所取代;全部定時都為本地LabVIEW結(jié)構(gòu)(如:While循環(huán)和條件結(jié)構(gòu))所控制。由于整個程序框圖均在FPGA硬件內(nèi)執(zhí)行,LabVIEW代碼的運(yùn)行便體現(xiàn)出硬件定時的速度和可靠性。
讓我們更深入地了解一下該程序框圖的運(yùn)行方式。 模擬I/O節(jié)點(diǎn)并不指定某個采樣速率,而使用For循環(huán)采集各個樣本。 與之對應(yīng)的ADC在I/O節(jié)點(diǎn)被調(diào)用時,負(fù)責(zé)對輸入信號進(jìn)行實(shí)際數(shù)字化,因而通過For循環(huán)接受定時。 若想在100 kHz的頻率下進(jìn)行信號采樣,針對循環(huán)的延遲就必須設(shè)定為10 ?s。 循環(huán)的定時器函數(shù)從第2輪循環(huán)迭代開始便確保著特定的時間延遲,用戶因而能夠通過順序結(jié)構(gòu)保證樣本之間存在著指定的時間間隔。 NI LabVIEW FPGA*能強(qiáng)大的條件結(jié)構(gòu),實(shí)際代表了用于封裝各類代碼的硬件觸發(fā)。 由于所有的函數(shù)和結(jié)構(gòu)都通過邏輯單元在硬件內(nèi)運(yùn)行,所以條件結(jié)構(gòu)確保開始具有實(shí)時10 ?s時間精度的采樣。 最后需指出的是,由于操作位于硬件層,只涉及幾個層次的抽象處理,因此用戶無需清除任務(wù)ID或釋放內(nèi)存。
就基于FPGA的智能DAQ硬件而言,其真正的優(yōu)勢是能夠定制各類定時和觸發(fā),并在硬件中進(jìn)行信號處理和決策。 現(xiàn)在讓我們了解一下:針對某類自定義應(yīng)用,需對模擬輸入觸發(fā)做出哪些修改。 若我們希望在2路模擬輸入通道的某路電壓超過指定范圍時便觸發(fā)采集,又該如何修改呢? 借助NI LabVIEW FPGA,此類任務(wù)的執(zhí)行易如反掌。
圖 3. 通過智能DAQ和NI LabVIEW FPGA實(shí)現(xiàn)的自定義觸發(fā)式模擬輸入
這里,我們已經(jīng)為程序框圖添加了第2個I/O節(jié)點(diǎn)和第2個比較函數(shù),以及1個布爾“或”函數(shù)。 智能DAQ硬件為所有的模擬輸入通道提供專用ADC,因而2路通道能夠接受同步采樣;同時,只要任何1路通道的電壓超過了指定范圍,條件結(jié)構(gòu)便會執(zhí)行“真”條件,并開始以10 ?s時間精度進(jìn)行采樣。 請記。喝鄙僦悄蹹AQ便不可能生成類似的觸發(fā);在其他DAQ硬件上應(yīng)用時,觸發(fā)需要具有更高延遲的軟件定時來實(shí)現(xiàn)。 如果此后我們希望通過擴(kuò)展將監(jiān)控范圍從2路通道延伸至全部8路通道,甚至希望添加數(shù)字觸發(fā),就需要簡化自定義代碼。 添加預(yù)觸發(fā)掃描后,用戶便可對輸入通道不斷進(jìn)行采樣并將數(shù)據(jù)傳送至FIFO緩沖器。 觸發(fā)器一旦接受讀取,F(xiàn)IFO緩沖器和此后的采樣便可經(jīng)由DMA通道,被傳送至主機(jī)。
如果我們希望借助NI-DAQmx驅(qū)動,對第2模擬輸入通道進(jìn)行采樣,則該程序框圖與圖1所示的內(nèi)容相差無幾。然而限制依然存在,因?yàn)?路通道均被迫引用相同的觸發(fā)器并以相同的時鐘頻率進(jìn)行采樣。 現(xiàn)在我們來看看:智能DAQ和NI LabVIEW FPGA幫助實(shí)現(xiàn)的各類多通道采樣。
圖4. 通過智能DAQ實(shí)現(xiàn)的觸發(fā)式同步模擬輸入
圖4(上圖)展現(xiàn)了:如何基于模擬輸入通道0中的模擬觸發(fā)器,對2路不同的模擬輸入通道進(jìn)行同步采樣。由于智能DAQ設(shè)備均配有獨(dú)立的ADC,在同一I/O節(jié)點(diǎn)中的2路通道可在完全相同的時刻接受采樣。 典型的多功能DAQ設(shè)備可通過一個ADC多路復(fù)用所有通道,因此,各路通道必須共享相同的采樣時鐘和觸發(fā)線。 圖5(下圖)展現(xiàn)了:智能DAQ硬件其實(shí)能夠以獨(dú)立的速率,對不同的模擬輸入通道進(jìn)行采樣。 在獨(dú)立回路中放置模擬輸入I/O節(jié)點(diǎn)后,每路通道會以完全不同的速率進(jìn)行采樣,然后各自通過2條DMA通道讀寫硬盤。
圖5. 通過智能DAQ實(shí)現(xiàn)的觸發(fā)式多速率模擬輸入
來源:維庫開發(fā)網(wǎng)