<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 手把手教你FPGA與RT以及Host端通信

手把手教你FPGA與RT以及Host端通信

作者: 時(shí)間:2017-10-11 來(lái)源:網(wǎng)絡(luò ) 收藏

在ECM中,會(huì )涉及到、RT以及主機,那么三者之間是如何進(jìn)行數據流的傳輸呢?本文將以cRIO-9068為例,帶大家了解整個(gè)編程以及實(shí)現過(guò)程。

本文引用地址:http://dyxdggzs.com/article/201710/365494.htm

一、、RT以及主機數據流之間的通信概覽

在一個(gè)含的Real-TIme系統中,FPGA負責采集信號,然后將采集的數據傳輸至RT端進(jìn)行監控、處理,同時(shí)在主機進(jìn)行數據的顯示、記錄或者發(fā)送命令。典型的基于cRIO的Real-TIme系統如下圖所示:

數據在Real-TIme系統中主要分為兩種,一種是比如消息,命令等等,此類(lèi)數據我們只關(guān)注其最新的值,主要通過(guò)標簽、消息進(jìn)行數據的傳遞;另外一種是數據流,我們需要獲取所有的數據信息,而不僅僅是最新值,主要通過(guò)網(wǎng)絡(luò )流、FIFO進(jìn)行傳遞。

對于采集卡采集到的數據,我們有時(shí)候是希望對其進(jìn)行記錄,并在端進(jìn)行顯示觀(guān)測。通常,FPGA與RT是通過(guò)FIFO進(jìn)行數據流的傳輸,而RT則采用網(wǎng)絡(luò )流與主機傳輸數據。本文將以cRIO-9068為例,展示從信號采集到上位機顯示的整個(gè)過(guò)程,幫助大家更好地了解Real-TIme系統的數據處理方式

二、硬件軟件

數采卡:NI 9263
設備:cRIO-9068;RIGOL示波器
軟件:LabVIEW; LabVIEW ;LabVIEW FPGA;CompactRIO
(可以在NI Max中查看自己所安裝的軟件、驅動(dòng)以及模塊的版本,保持cRIO-9068中的軟件版本正確)
最終,硬件連接如圖。



三、設計過(guò)程

1)新建項目
打開(kāi)LabVIEW,新建項目,在項目瀏覽器中,右鍵我的項目,選擇添加目標設備,將硬件cRIO-9068以及NI 9263一并添加入新建的項目。


2)FPGA.vi的設計
首先我們需要在FPGA中產(chǎn)生一個(gè)正弦信號,經(jīng)由NI 9263的模擬端口輸出。

注意:此處不能使用單周期定時(shí)循環(huán),因為該vi無(wú)法在一個(gè)時(shí)鐘滴答內完成執行。關(guān)于單周期定時(shí)循環(huán)參考鏈接:

由于要將FPGA產(chǎn)生的正弦波信號傳到RT端進(jìn)行顯示等處理,屬于數據流的傳輸,因此我們在此處使用DMA FIFO()。

在項目瀏覽器中FPGA下右鍵新建一個(gè)FIFO,其FIFO設置如下:

其中在Type處選擇類(lèi)型:Target to -DMA,大小使用默認的即可。在Data Type中選擇數據的類(lèi)型,此處我們傳輸的是無(wú)符號的32位數據,因此選擇U32即可。

3)RT.vi的設計
RT端的vi主要由兩部分組成,一部分是從FIFO中讀取從FPGA傳來(lái)的數據,一部分是建立網(wǎng)絡(luò )流,將數據傳給主機進(jìn)行檢測。這里要注意的是,由于我們需要的是打開(kāi)主機隨時(shí)讀取數據,主機程序運行時(shí)候。

RT端的vi主要由兩部分組成,一部分是從FIFO中讀取從FPGA傳來(lái)的數據,一部分是建立網(wǎng)絡(luò )流,將數據傳給主機進(jìn)行檢測。這里要注意的是,由于我們需要的是打開(kāi)主機隨時(shí)讀取數據,主機程序運行時(shí)候,會(huì )產(chǎn)生一個(gè)信號,使RT端的網(wǎng)絡(luò )流端建立并且寫(xiě)入數據。因此,我們新建一個(gè)布爾變量,作為這個(gè)傳遞信號。

因此,在RT端,我們對主機的數據傳遞主要使用了兩種方式,一種是網(wǎng)絡(luò )流,用于每一個(gè)數據傳遞;另一個(gè)是網(wǎng)絡(luò )變量,獲取布爾控件的最新值。

在FIFO波形的傳遞過(guò)程中,經(jīng)常使用到以下兩個(gè)數,這里做多一些的介紹。

Normalize Signal Generation Parameters Sample Rate To Loop Time

這兩個(gè)會(huì )經(jīng)常搭配使用,主要是對FPGA部分產(chǎn)生波形的波形參數進(jìn)行設置,其中主要是對波形的頻率以及采樣頻率(在FPGA端則需要使用Loop Time函數),后面會(huì )連接使用“Write/Read Control”節點(diǎn)。

在網(wǎng)絡(luò )流的設置中,按照常規:建立寫(xiě)端-寫(xiě)入-關(guān)閉的順序,其中注意的是,主機在建立的時(shí)候設置超時(shí)(Time out)默認是-1,會(huì )無(wú)限時(shí)間的等待下去。且寫(xiě)入端的名字不能和讀取端的名字有重合部分,不然會(huì )報錯的。

至此,我們完成了RT端以及FPGA的程序編寫(xiě)。但是,在有些情況下,我們會(huì )希望cRIO里面的程序固定,上電即可運行(比如上電即可采集或者產(chǎn)生波形),而我們可以隨意的不定時(shí)的使用主機通過(guò)局域網(wǎng)隨機抓取一段cRIO數據,因此我們需要在主機上(host端)新建一個(gè)vi實(shí)現此功能。

為了方便起見(jiàn),此處新建的主機vi和RT等程序放在一個(gè)項目?jì)?,?shí)際應用中新建一個(gè)項目,在新的項目中編寫(xiě)主機的代碼。

4).vi的設計

在主機上,我們這里簡(jiǎn)單的只是讀取,首先會(huì )賦值給共享變量在從而在RT端建立網(wǎng)絡(luò )流寫(xiě)入端寫(xiě)入數據。

5)整個(gè)系統顯示如下




關(guān)鍵詞: FPGA Host Real-Time

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>