借助智能DAQ, 獲得高級數(shù)據(jù)采集技術(shù)
如定時框圖所示,所有16位數(shù)據(jù)均在每個時鐘周期上順次傳遞,而片選控制線(chip select line)則呈現(xiàn)低電平。 現(xiàn)在,我們來看看在NI LabVIEW FPGA中,如何通過智能DAQ硬件上的3條數(shù)字線進行此類編程。
本文引用地址:http://m.butianyuan.cn/article/107898.htm
圖16. 16位SPI通信程序框圖
圖16中,外部While循環(huán)確保了所有代碼均能連續(xù)執(zhí)行,而寫入布爾輸入控件則通過條件結(jié)構(gòu)啟動著數(shù)據(jù)傳遞。 順序結(jié)構(gòu)中的第一框架將片選控制線(chip select line)設(shè)置為低電平,之后由中間框架寫入數(shù)據(jù)位并將時鐘線切換16次。 最終,第三順序框?qū)⑵x控制線(chip select line)設(shè)置回TRUE狀態(tài),并將數(shù)據(jù)線重置為默認的FALSE狀態(tài)。 這一簡單范例只是借助智能DAQ進行數(shù)字通信時的一項內(nèi)容。 用戶若想應(yīng)用數(shù)字握手,便需為ACK(備用)和REQ(暫停)線準備2路通道,其中一路通道面向并行運作的時鐘信號和數(shù)據(jù)線。
數(shù)字線會時常抖動,在使用機電接觸時更是如此,然而用戶可通過NI LabVIEW FPGA,選擇不同方式,在數(shù)字輸入線上添加去抖動濾波器。 在消除狀態(tài)的錯誤改動時,數(shù)字去抖動濾波器確保數(shù)值的變化能夠保持一段最短的時間,因而規(guī)避了因抖動引發(fā)的錯誤讀取。 圖17展現(xiàn)了如何通過智能DAQ實現(xiàn)此項功能的內(nèi)容。
圖17. 智能DAQ硬件上的數(shù)字濾波器程序框圖
數(shù)據(jù)傳輸方式
配備NI-DAQmx驅(qū)動程序的傳統(tǒng)多功能DAQ和智能DAQ之間的最大差異在于:數(shù)據(jù)傳輸?shù)膱?zhí)行方式。 NI-DAQmx驅(qū)動程序?qū)⒊袚?dān)由設(shè)備至主機的各項傳輸任務(wù),此項操作中NI LabVIWE FPGA會對基于FPGA的所有板載硬件進行編程。 用戶可通過多種途徑緩沖設(shè)備上的板載數(shù)據(jù),并使用不同方式(如:DMA通道或中斷請求)傳輸數(shù)據(jù)。
NI LabVIEW FPGA中的FIFO緩沖區(qū)在LabVIEW項目瀏覽器中接受配置,并能借助板載內(nèi)存或硬件邏輯獲得運行。 圖18顯示了如何經(jīng)由項目瀏覽器,在板載塊存儲器中配置整數(shù)的FIFO緩沖區(qū)。
圖18. NI LabVIEW FPGA中的FIFO配置
FIFO一經(jīng)創(chuàng)建,便能用于NI LabVIEW FPGA程序框圖上多個循環(huán)之間的數(shù)據(jù)傳遞。 圖19中的范例顯示:數(shù)據(jù)先被寫入左側(cè)循環(huán)中的FIFO,并隨即從右側(cè)循環(huán)中的FIFO被讀出。
圖19. 通過FIFO和多循環(huán)實現(xiàn)的NI LabVIEW FPGA程序框圖
同樣通過LabVIEW FPGA FIFO獲得應(yīng)用的直接存儲器訪問(DMA)通道,在項目瀏覽器中接受了類似的配置。
圖20. NI LabVIEW FPGA中的DMA FIFO配置
評論