借助智能DAQ, 獲得高級數據采集技術(shù)
如定時(shí)框圖所示,所有16位數據均在每個(gè)時(shí)鐘周期上順次傳遞,而片選控制線(xiàn)(chip select line)則呈現低電平。 現在,我們來(lái)看看在NI LabVIEW FPGA中,如何通過(guò)智能DAQ硬件上的3條數字線(xiàn)進(jìn)行此類(lèi)編程。
本文引用地址:http://dyxdggzs.com/article/107898.htm

圖16. 16位SPI通信程序框圖
圖16中,外部While循環(huán)確保了所有代碼均能連續執行,而寫(xiě)入布爾輸入控件則通過(guò)條件結構啟動(dòng)著(zhù)數據傳遞。 順序結構中的第一框架將片選控制線(xiàn)(chip select line)設置為低電平,之后由中間框架寫(xiě)入數據位并將時(shí)鐘線(xiàn)切換16次。 最終,第三順序框將片選控制線(xiàn)(chip select line)設置回TRUE狀態(tài),并將數據線(xiàn)重置為默認的FALSE狀態(tài)。 這一簡(jiǎn)單范例只是借助智能DAQ進(jìn)行數字通信時(shí)的一項內容。 用戶(hù)若想應用數字握手,便需為ACK(備用)和REQ(暫停)線(xiàn)準備2路通道,其中一路通道面向并行運作的時(shí)鐘信號和數據線(xiàn)。
數字線(xiàn)會(huì )時(shí)常抖動(dòng),在使用機電接觸時(shí)更是如此,然而用戶(hù)可通過(guò)NI LabVIEW FPGA,選擇不同方式,在數字輸入線(xiàn)上添加去抖動(dòng)濾波器。 在消除狀態(tài)的錯誤改動(dòng)時(shí),數字去抖動(dòng)濾波器確保數值的變化能夠保持一段最短的時(shí)間,因而規避了因抖動(dòng)引發(fā)的錯誤讀取。 圖17展現了如何通過(guò)智能DAQ實(shí)現此項功能的內容。

圖17. 智能DAQ硬件上的數字濾波器程序框圖
數據傳輸方式
配備NI-DAQmx驅動(dòng)程序的傳統多功能DAQ和智能DAQ之間的最大差異在于:數據傳輸的執行方式。 NI-DAQmx驅動(dòng)程序將承擔由設備至主機的各項傳輸任務(wù),此項操作中NI LabVIWE FPGA會(huì )對基于FPGA的所有板載硬件進(jìn)行編程。 用戶(hù)可通過(guò)多種途徑緩沖設備上的板載數據,并使用不同方式(如:DMA通道或中斷請求)傳輸數據。
NI LabVIEW FPGA中的FIFO緩沖區在LabVIEW項目瀏覽器中接受配置,并能借助板載內存或硬件邏輯獲得運行。 圖18顯示了如何經(jīng)由項目瀏覽器,在板載塊存儲器中配置整數的FIFO緩沖區。

圖18. NI LabVIEW FPGA中的FIFO配置
FIFO一經(jīng)創(chuàng )建,便能用于NI LabVIEW FPGA程序框圖上多個(gè)循環(huán)之間的數據傳遞。 圖19中的范例顯示:數據先被寫(xiě)入左側循環(huán)中的FIFO,并隨即從右側循環(huán)中的FIFO被讀出。

圖19. 通過(guò)FIFO和多循環(huán)實(shí)現的NI LabVIEW FPGA程序框圖
同樣通過(guò)LabVIEW FPGA FIFO獲得應用的直接存儲器訪(fǎng)問(wèn)(DMA)通道,在項目瀏覽器中接受了類(lèi)似的配置。

圖20. NI LabVIEW FPGA中的DMA FIFO配置
評論