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