新聞中心

EEPW首頁 > EDA/PCB > 設計應用 > 基于FPGA軟核的高速數據采集系統(tǒng)設計

基于FPGA軟核的高速數據采集系統(tǒng)設計

作者: 時間:2011-08-18 來源:網絡 收藏

 (1)在沒有來自PC機的控制命令情況下,如果FIFO_RD_EN=1,則FD[15:0]的數據傳輸方向為從到USB接口芯片(圖6表示為FD_OUT[15:0]),即數據從FIFO輸出至USB接口芯片;如果此時FIFO_RD_EN=0,則FD[15:0]呈高阻態(tài)。
 (2)當有來自PC機的控制命令時,FD[15:0]的數據傳輸方向為從USB接口芯片到(圖6表示為FD_IN[15:0]),即PC機的控制命令寫入到USB接口芯片,再傳輸到內部命令分析器中。此時,命令分析器會根據命令控制ADC_START信號,進而控制ADC數據的啟停。
 無論在上述哪種情況下,如果FIFO_CLEAR=0、 FIFO_WR_EN=1且FIFO_FULL=0時,FIFO_WR_CLK都有相應的時鐘信號輸入,此時ADC轉換完成的數據隨寫時鐘通過ADC_DATA[11:0]寫入FIFO中。
3.3 USB接口控制單元
 USB接口控制單元主要完成兩種功能:(1)通過USB接口芯片實現把數據傳輸到PC機。此時FIFO中的數據先寫入EP6,當EP6寫滿時,USB接口芯片自動將數據打包傳輸到PC機。(2)協(xié)助FIFO控制單元接收來自PC機的命令數據。此時命令數據從PC機通過USB接口傳輸到EP2,然后讀取EP2的數據到FIFO控制單元的命令分析器中。USB接口控制單元狀態(tài)機工作如下:
 (1)當FPGA上電或者復位后,狀態(tài)機進入空閑狀態(tài)(IDEL)。
 (2)在空閑狀態(tài)下,當EP2不空(EP2_EMPTY=0)時,進入讀命令狀態(tài)(READ_COMMAND),此時令EP_ADDR[1:0]=00,FD[15:0]的傳輸方向由EP2指向FPGA,控制單元從EP2中讀出PC機傳來的控制命令。
 (3)隨后進入存儲命令狀態(tài)(SOTRE_COMMAND),控制單元把傳來的控制命令存儲到FIFO控制單元內部的指令分析器中。同時控制單元置FIFO_CLEAR=1,即把FIFO控制單元內的FIFO數據清空,以準備存儲新的ADC轉換數據。任務完成后回到空閑狀態(tài)。
 (4)優(yōu)先處理PC機通過EP2傳來的命令,因此優(yōu)先查看EP2的空狀態(tài)。在空閑狀態(tài)下,當EP2為空(EP2_EMPTY=1)且FIFO控制單元內FIFO不為空(FIFO_EMPTY=0)且EP6不滿(EP6_FULL=0)時,進入寫數據狀態(tài)(WRITE_DATA)。在寫數據狀態(tài)下,EP_ADDR[1:0]=10,控制單元選中CY7C68013的EP6,FD[15:0]方向由FPGA指向EP6,同時FIFO_RD_CLK產生一個周期時鐘,FIFO_RD_EN置為高電平,一個數據從FIFO控制單元內FIFO中讀出。
 (5)隨后進入傳輸數據狀態(tài)(TRANS_DATA)。在該狀態(tài)下,令SLWR=0,數據從FIFO控制單元內FIFO寫入CY7C68013的EP6中。任務完成后進入空閑狀態(tài)。
 USB接口控制單元狀態(tài)機示意圖如圖7所示。

4 USB接口芯片程序設計
4.1 USB固件程序

 固件程序是一種嵌入在硬件設備中的軟件,通過執(zhí)行固件程序,硬件設備可以完成各種特定的功能。在本設計中,CY7C68013芯片的固件程序是整個系統(tǒng)傳輸的控制核心,主要完成以下五種功能:(1)CY7C68013芯片的初始化;(2)輔助硬件完成設備的重新枚舉;(3)中斷處理;(4)數據接收與發(fā)送;(5)對外圍電路進行控制。
Cypress公司為提高用戶的開發(fā)效率,提供了EZ-USB FX2LP開發(fā)套件,其中包含了一個完整的固件程序架構[3]。該架構主要包含了EZ-USB FX2LP芯片的設備初始化、處理標準USB設備請求與電源管理等服務功能。用戶在開發(fā)時,只需使用Keil uVision3在固件架構下提供相應的USB描述符以及編寫外部設備功能程序代碼。固件架構流程圖如圖8所示。

 主函數是固件架構流程的具體實現。主函數首先對內部狀態(tài)變量進行初始化,隨即調用TD_Init()進行用戶設備初始化,TD_Init()函數運行完成后,使能中斷,隨后進入主循環(huán)。
4.2 USB驅動程序設計
 USB驅動程序位于固件程序與應用程序之間,是USB設備與PC機的通信接口。Cypress公司為用戶設計了一款通用驅動程序包(ezusb.sys),可以完成應用程序與USB接口的通信與控制任務。本設計即使用該通用驅動程序。
5 應用程序設計
 應用程序通過USB驅動程序與USB接口進行通信。本設計使用LabVIEW設計應用程序。LabVIEW為用戶提供了簡單、直觀、易學的圖形編程法,相比于傳統(tǒng)的編程語言,LabVIEW能大量地節(jié)省開發(fā)時間。用戶通過LabVIEW應用程序可以進行對數據系統(tǒng)的控制,而且到的數據在控制界面中實時顯示。
 本文介紹了一款較為通用、基于USB2.0接口的采集系統(tǒng)設計方法,通過FPGA在數據采集系統(tǒng)中的應用,解決了硬件電路設計繁瑣復雜的問題,而且便于開發(fā)者對產品進行修改優(yōu)化,可以大幅度地縮短產品的開發(fā)時間。本系統(tǒng)通過了硬軟件的聯合調試,系統(tǒng)工作正常,穩(wěn)定性良好。
參考文獻
[1] Xilinx Corporation. Spartan-3AN FPGA family data sheet. 2009.
[2] Cypress Semiconductor Corporation. EZ-USB FX2 CY7C68013 technical reference manual version2.2. 2003.
[3] 錢峰.EZ-USB FX2單片機原理、編程及應用[M].北京:北京航空航天大學出版社,2006.


上一頁 1 2 下一頁

評論


相關推薦

技術專區(qū)

關閉