《電子技術應用》
您所在的位置:首頁 > 可編程邏輯 > 設計應用 > 基于FPGA的USB接口數據采集系統設計
基于FPGA的USB接口數據采集系統設計
來源:電子技術應用2011年第5期
張思杰, 趙 泰, 汪振興, 石 嶺
重慶大學 通信工程學院, 重慶 400030
摘要: 介紹了一種高速實時數據采集系統的設計。該系統以FPGA作為邏輯控制的核心,以USB2.0作為與上位機數據傳輸的接口,能同時支持單端16路和差分8路模擬信號輸入,最大采樣率為200 kHz,12位的轉換精度。描述了系統的主要組成和FPGA模塊化設計的實現方法,并給出了其核心模塊的時序仿真波形圖。
中圖分類號: TP274
文獻標識碼: A
文章編號: 0258-7998(2011)05-0098-03
Design of data acquisition system based on USB and FPGA
Zhang Sijie, Zhao Tai, Wang Zhenxing, Shi Ling
Institute of Communications Engineering, Chongqing University, Chongqing 400030, China
Abstract: This paper introduces a high-speed and real-time data acquisition system. The system can support both single 16-route and differential 8-route analog signals input, with 200 kHz of maximal frequency and 12 bit of conversion accuracy, using FPGA as the core logic control and using USB2.0 as the interface of data transmission with the host computer. The main component of the system and the implementing method of FPGA are described and the simulation waveforms of main modules are presented.
Key words : FPGA; USB2.0; data acquisition; conversion accuracy


    傳統的數據采集系統中通常采用單片機或DSP作為控制模塊,控制A/D轉換、存儲和其他外圍電路的工作,利用PCI、ISA等接口與上位機進行通信。隨著數據采集對速度、實時性、簡易性的要求越來越高,傳統數據采集系統的弊端也日趨明顯。近年來隨著FPGA技術和USB技術的應用深度和廣度的不斷加大,利用FPGA芯片和USB接口設計高速數據采集系統成為新的研究熱點。FPGA芯片不僅體積小、功耗低、時鐘頻率高、內部時延小,而且能夠使用VHDL語言來編程實現程序的并行執行,配置靈活,開發周期短,性能可靠。USB是一種高效、快速、價格低廉、體積小并支持熱插拔的新型串行通信接口,目前USB2.0的高速傳輸速率能夠達到480 Mb/s,能夠實現數據的高速傳輸。
1 系統總體結構
    本設計采用FPGA+USB的設計思路,利用FPGA芯片作為系統的邏輯控制核心,通過USB 2.0接口與上位機通信,實現單端16路/差分8路模擬數據的高速、實時、便攜式的采集。本文設計的數據采集系統劃分為A/D轉換電路、FPGA采集控制和USB傳輸控制器等若干部分。如圖1所示。

    本數據采集系統支持單端16路和差分8路模擬信號輸入,每路12 bit的轉換精度,最高采樣率為200 kHz。主機應用程序首先向USB控制器發出采樣時控包,在時控包中設置采集通道及其采樣頻率。進而USB控制器觸發FPGA采集信息,FPGA根據時控包開始啟動A/D進行模數轉換,轉換結束后,FPGA接受A/D輸出的12 bit串行數據,并通過串并轉換將它轉換成16 bit并行數據輸出。然后將采集到的數據信息通過USB控制器發送給主機,最后由主機做進一步信息處理。
2 主要芯片選型
    本數據采集系統用到的主要芯片包括FPGA芯片、A/D轉換芯片和USB傳輸控制芯片。
2.1 FPGA芯片的選取
     依據本系統設計的需要選用Altera公司的Cyclone II系列EP2C8Q208C8。該芯片內部邏輯單元8 256個,有165 888個RAM位,182個可用I/O口,系統時鐘頻率高于260 MHz,只需要3.3 V和1.2 V的工作電壓,完全能夠滿足設計的要求。
2.2 ADC轉換芯片的選取
    考慮到系統的采樣率、分辨率、通道數等要求,本系統選用德州儀器公司(TI)的ADS7817模數轉換器。該器件是12位的低功耗、高阻抗全差分模擬輸入、具有串行輸出接口的模數轉換器,內部基準電壓范圍為100 mV~2.5 V,最高采樣率200 kHz,相應輸入分辨率范圍49 μV~1.22 mV。
2.3 USB傳輸控制芯片的選取[1]
    本系統選用CYPRESS公司的USB2.0外設控制器EZ-USB FX2 CY7C68013-56。該芯片包括帶8.5 KB片上RAM的高速8051單片機、4 KB FIFO存儲器以及通用可編程接口(GPIF)、串行接口引擎(SIE)和USB2.0收發器,可與任何ASIC或DSP進行接合,并且還支持所有通用總線標準,性價比較高。USB2.0協議提供480 Mb/s的傳輸速度,因此CY7C68013是USB2.0的完整解決方案。
3 系統硬件設計方案實現
3.1 FPGA與ADC及模擬多路開關的電路設計

    系統選用8通道模擬多路開關CD4501和SN74LS174集成D觸發器組合構成FPGA信號采集控制的輸入通道。本系統要求支持單端16路和差分8路模擬信號輸入,因此使用2片CD4501來實現最大16路模擬輸入通道的多路復用。在選擇單端或差分輸入時,通過硬件開關來實現。在一個采樣周期內,選擇哪路模擬信號進行A/D轉換由FPGA控制D觸發器SN74LS174其中的5個D輸入端的電平高低來選擇通道實現。每路模擬信號都要經過多路模擬開關選擇通道后,再送入A/D芯片的輸入端,如圖2所示。本方案中,FPGA為采樣通道SN74LS174提供30 MHz的時鐘CLK1及復位信號CLR,為A/D芯片提供3 MHz的同步時鐘信號DCLK和片選信號CS,從而使A/D芯片對相應的通道進行數據轉換。

 

 

3.2 FPGA與USB芯片的連接設計
    當EZ-USB FX2LP工作于Slave FIFO模式時,外圍電路可以像普通FIFO一樣對EZ-USB FX2LP中的端點數據緩沖區進行讀寫[2]。本系統采用FPGA作為主控制器,因而,對USB控制采用Slave FIFO模式,FPGA通過控制CY7C68013內4 KB的FIFO進行與上位機之間的數據傳輸。FPGA與USB芯片的硬件連接如圖3所示。

4 系統軟件設計
    系統軟件設計主要包括FPGA控制邏輯設計、USB固件程序設計、USB設備驅動程序和上位機應用程序。
4.1 FPGA設計
    FPGA程序的設計是整個采集系統的關鍵,整體分成三大模塊:分頻采樣控制模塊、通道選擇模塊和USB傳輸控制模塊。以下是各個模塊設計的具體介紹。
4.1.1 分頻采樣控制模塊
    本系統中,FPGA的主時鐘m_clk由USB芯片輸出的30 MHz頻率提供,由于A/D采樣需要3 MHz的時鐘頻率,因此首先模塊對主時鐘進行10分頻得到3 MHz同步時鐘信號o_clk。同時,該模塊還要控制數據采樣、A/D轉換以及數據的串并轉換。在采樣時刻到來時,在同步脈沖o_clk和片選信號cs(低電平有效)的控制下,依據ADS7817轉換時序圖進行采樣、轉換。轉換過程中計數o_clk脈沖,每12個脈沖置位cs為高電平,使結果僅輸出一次,否則在DOUT端繼續從最低位到最高位依次輸出轉換結果。in_data是A/D轉換后的串行輸出數據,o_Para是對in_data經過串并轉換后輸出的并行16 bit數據。
4.1.2 USB傳輸控制模塊
     該模塊主要負責對USB芯片端點的讀寫控制。USB芯片端點FIFO用于數據的緩存,一方面存儲上位機發出的采集參數信息,另一方面存儲FPGA輸出的并行16 bit采集數據。該模塊通過判斷端點FIFO的空、滿標志位來對USB端點2、4、6、8進行讀寫控制。本系統采用異步FIFO讀、寫控制模式,該模塊用狀態機來實現,將讀、寫過程分別分成5個狀態,異步FIFO讀狀態機如圖4所示。

    IDLE:當“寫”事件發生時,轉到狀態1。
    狀態1:指向OUT FIFO,激活FIFOADR[1:0],轉向狀態2。
    狀態2:激活SLOE,如果FIFO空標志為“假”(FIFO 不空),則轉向狀態3;否則停留在狀態2。
    狀態3:激活SLOE,SLRD,傳送數據到總線上;撤銷激活SLRD(指針加1)和SLOE,轉向狀態4。
    狀態4:如果有更多的數據要求,則轉向狀態2;否則轉向IDLE。
4.1.3 通道選擇模塊
    該模塊主要負責系統通道的選通,根據得到的采集參數信息選擇相應的通道進行數據采集[3]。該模塊通過產生不同的電平,來控制集成D觸發器SN74LS174的其中5個輸入端,從而達到選擇通道的目的。
4.2 USB固件程序設計
    本系統中數據通道分為采集數據上傳通道和控制字下傳通道。根據設計需要進行配置,配置端點4、6、8為采集數據上傳通道,用于從FPGA向主機傳輸采集數據,采用塊傳輸模式,512 B 2重緩沖,16 bit數據自動輸入模式;配置端點2為控制字下傳通道,用于傳送主機控制字到FPGA,采用塊傳輸模式,512 B 2重緩沖,16 bit自動輸出模式。固件程序采用Cypress公司提供的固件程序框架,在其初始化函數中添加了用戶配置代碼。改動部分代碼如下所示:
    void TD_Init(void)
    {...
         EP2CFG=0xA2;
         EP4CFG=EP6CFG=EP8CFG=0xE2;
        EP2FIFOCFG=0x15;
        EP4FIFOCFG=EP6FIFOCFG=EP6FIFOCFG=0x0D;
     ...
    }
4.3 USB設備驅動程序設計
    Cypress為其EZ-USB系列USB接口芯片提供了一個完整的開發包,其中包括通用USB驅動程序。本系統按照設計要求,在DDK平臺上修改通用USB驅動程序代碼,生成本系統的驅動程序代碼。
4.4 上位機應用程序設計
    上位機應用程序的作用就是提供一個人機交互的顯示界面,體現系統的運行狀態。這里采用Microsoft Visual C++ 6.0進行上位機應用程序的設計,程序中采用CYAPI控制函數類。CyAPI控制函數類為EZ-USB FX2LP系列USB接口芯片提供了十分精細的控制接口[4]。在使用Cypress公司提供的驅動程序基礎上,只需在主機程序中加入頭文件CyAPI.h和庫文件CyAPI.lib即可調用相應的控制函數。
5 FPGA核心模塊仿真
    圖5是針對分頻采樣控制模塊的仿真時序。波形結果顯示該模塊在一個采樣周期內能夠準確產生同步時鐘信號o_clk和片選信號cs,并且串行輸入數據in_data經過串并轉換后能夠準確無誤地并行輸出。

    本文創新點是設計了一款同時支持單端16路和差分8路模擬信號輸入、FPGA為核心控制和USB2.0為接口傳輸的多通道、實時、高速、便攜式數據采集系統。本系統在Altera公司提供的Quartus II 8.0 集成開發環境下進行設計、編譯、綜合、優化、布局布線、驗證和仿真,并成功下載到FPGA芯片中。經過長時間的測試,系統工作穩定、性能可靠,說明了設計結構的合理性,比較適合野外現場數據采集的場合。
參考文獻
[1] 劉福奇.FPGA嵌入式項目開發實戰[M]. 北京:電子工業出版社,2009.
[2] 薛園園.USB應用開發技術大全[M]. 北京:人民郵電出版社,2007:190-191.
[3] 李艷軍,郭正剛,張志新,等.基于FPGA多通道同步數據采集系統設計[J].微計算機信息,2007,23(2-2):212-213.
[4] 戴小俊,丁鐵夫,鄭喜鳳. 基于USB和DSP的數據采集系統設計[J].電子技術應用,2007,33(1):84-86.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 男人扒开女人下面狂躁动漫版| 中文字幕亚洲综合久久综合| 美女视频黄频a免费| 在线精品免费视频无码的| 久久精品国产只有精品66| 男高中生大粗吊gvlive| 国产chinesehd精品酒店| 91人成在线观看网站| 无遮挡一级毛片视频| 久热这里只有精品视频6| 欧美变态老妇重口与另类| 全部免费毛片免费播放| 日本三级网站在线观看| 好吊操视频在这星| 久久天天躁狠狠躁夜夜不卡| 波多野给衣一区二区三区| 国产一区视频在线| 18分钟处破好疼高清视频| 成年人在线免费看视频| 亚洲乱码中文字幕综合| 欧美精品一区二区三区在线| 噜噜噜噜噜在线观看视频| 亚洲校园春色另类激情| 小小视频日本高清完整版| 中文字幕精品视频在线| 欧美一级高清免费a| 伊人久久大香线蕉综合影| 青青青青青免精品视频| 国产边摸边吃奶叫床视频| 中文字幕在线免费看| 杨幂被c原视频在线观看| 人妻少妇精品久久久久久| 精品久久久久久无码专区不卡 | 91色在线观看| 在线观看一区二区三区视频| jealousvue熟睡入侵中| 日本大乳高潮视频在线观看| 亚洲欧美一区二区三区在线| 精品无码久久久久久尤物| 国产成人va亚洲电影| 91精品乱码一区二区三区|