《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 測試測量 > 設(shè)計(jì)應(yīng)用 > 基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
基于FPGA的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)
劉 軍,岳興蓮,何國國,羅 石,吳碩開
摘要: 介紹了一種用于汽車姿態(tài)測量的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),該系統(tǒng)基于FPGA+USB架構(gòu),采用FPGA控制整個(gè)系統(tǒng)的采集時(shí)序, USB芯片作為數(shù)據(jù)采集通道,上位機(jī)完成姿態(tài)解算和數(shù)據(jù)顯示功能。
Abstract:
Key words :

  摘 要: 介紹了一種用于汽車姿態(tài)測量的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì),該系統(tǒng)基于FPGA+USB架構(gòu),采用FPGA控制整個(gè)系統(tǒng)的采集時(shí)序, USB芯片作為數(shù)據(jù)采集通道,上位機(jī)完成姿態(tài)解算和數(shù)據(jù)顯示功能。
    關(guān)鍵詞: FPGA;USB;數(shù)據(jù)采集

   現(xiàn)代化生產(chǎn)和科學(xué)研究對采集系統(tǒng)的要求日益提高。傳統(tǒng)的采集卡速度慢、處理功能簡單、采用分立元件、電路非常復(fù)雜;而且可靠性差、不易調(diào)試、不能很好地滿足特殊要求。現(xiàn)場可編程門陣列(FPGA)是專用集成電路中集成度最高的一種,用戶可對FPGA內(nèi)部的邏輯模塊和I/O模塊重新配置,以實(shí)現(xiàn)用戶所需邏輯功能。用戶對FPGA的編程數(shù)據(jù)放入芯片,通過上電加載到FPGA中,對其進(jìn)行初始化;也可在線對其編程,實(shí)現(xiàn)系統(tǒng)在線重構(gòu)[1]。本系統(tǒng)設(shè)計(jì)采用USB2.0 CY7C68013通信接口芯片作為數(shù)據(jù)采集通道,由FPGA芯片EP1C6Q240C8N作為采集設(shè)備的控制單元,由PC機(jī)完成姿態(tài)的解算及結(jié)果的顯示。
1 系統(tǒng)的組成及原理
  該采集系統(tǒng)主要由前端調(diào)理模塊、A/D轉(zhuǎn)換控制模塊、SRAM存儲模塊及USB接口模塊組成,系統(tǒng)框圖如圖1所示。

 

 

2 FPGA主控器內(nèi)部模塊
2.1 A/D轉(zhuǎn)換控制模塊

  A/D轉(zhuǎn)換模塊選用AD7685芯片。AD7685是Analog Device公司生產(chǎn)的一款16位、電荷再分配、高速、低功耗的逐次逼近型模數(shù)轉(zhuǎn)換器(ADC),具有250 kS/s采樣速率。芯片在Verilog編程語言的控制下,完成模擬信號到數(shù)字信號的轉(zhuǎn)換。
2.2 FIFO緩存
  調(diào)用FPGA片上資源實(shí)現(xiàn)片上FIFO緩存,由于A/D采樣頻率與SRAM的讀寫頻率不一致,所以采用讀寫時(shí)鐘不同的FIFO,達(dá)到數(shù)據(jù)緩存和轉(zhuǎn)換時(shí)鐘域的雙重目的。
2.3 SRAM乒乓緩存模塊
    選用2片IS61LV25616存儲芯片,該芯片存儲容量為256K×16,采用Verilog硬件描述語言控制實(shí)現(xiàn)乒乓緩存,控制過程如圖2所示。從片上FIFO輸出的數(shù)據(jù)經(jīng)選擇開關(guān)后,分別進(jìn)入緩沖模塊1和緩沖模塊2。當(dāng)數(shù)據(jù)寫入緩沖模塊1時(shí),USB模塊從緩沖模塊2讀取數(shù)據(jù);當(dāng)數(shù)據(jù)寫入緩沖模塊2時(shí),USB模塊從緩沖模塊1讀取數(shù)據(jù)以傳到上位機(jī)進(jìn)行處理。

 


2.4 USB控制模塊
    USB接口芯片采用EZ-USB FX2(CY7C68013),F(xiàn)X2作為USB2.0數(shù)據(jù)通道來實(shí)現(xiàn)與主機(jī)的高速通信。FPGA能夠滿足Slave FIFO要求的傳輸時(shí)序[2]作為Slave FIFO主控制器。圖3分別給出了FX2與FPGA的接口圖和狀態(tài)轉(zhuǎn)換圖。

 


    同步Slave FIFO寫時(shí)序如下:
    IDLE:當(dāng)寫事件發(fā)生時(shí),轉(zhuǎn)到狀態(tài)1。
    狀態(tài)1:指向IN FIFO,激活FIFOADR[1:0],轉(zhuǎn)向狀態(tài)2。
    狀態(tài)2:如果FIFO滿標(biāo)志為“假”(FIFO不滿),則轉(zhuǎn)向狀態(tài)3;否則停留在狀態(tài)2。
    狀態(tài)3:傳送總線驅(qū)動數(shù)據(jù),為1個(gè)IFCLK激活SLWR,轉(zhuǎn)向狀態(tài)4。
    狀態(tài)4:如果有更多的數(shù)據(jù)要寫,則轉(zhuǎn)向狀態(tài)2;否則轉(zhuǎn)向IDLE。
3 USB芯片固件程序及驅(qū)動程序
3.1 FX2的固件程序設(shè)計(jì)

    CY7C68013芯片固件程序負(fù)責(zé)處理PC機(jī)發(fā)來的各種USB請求,以完成主機(jī)與外圍電路間的數(shù)據(jù)傳輸。寫固件程序是比較復(fù)雜的,需要用到大量的函數(shù),但其基本結(jié)構(gòu)卻相對簡單,包括下面3個(gè)過程[3]:
    (1)初始化:處理器和外圍電路的初始化。
    (2)主函數(shù):完成符合設(shè)備特定要求的代碼。
    (3)中斷處理:處理各種中斷的程序代碼。
    Cypress公司的EZ-USB FX2開發(fā)套件提供給用戶1個(gè)固件函數(shù)庫(Ezusb.lib)和固件框架(Framework),兩者均是基于KEIL C51進(jìn)行開發(fā)的。固件函數(shù)庫提供了一系列的函數(shù)來加速USB固件程序的開發(fā),使用時(shí)只需在程序中包含EZUSB.H和EZREGS.H兩個(gè)頭文件,并在項(xiàng)目中鏈接Ezusb.lib,就可以直接使用固件庫中的各個(gè)函數(shù)[4]。
    在程序起始時(shí),固件框架將執(zhí)行如下步驟:
    (1)首先設(shè)置所有的內(nèi)部狀態(tài)變量,即設(shè)置起始的初值。
    (2)調(diào)用用戶的初始設(shè)置函數(shù)TD_Init(),待返回后,固件框架會設(shè)置USB為未配置的狀態(tài),并且使能中斷。
    (3)緊接著在1 s的間隔內(nèi),開始重新列舉設(shè)備,并直到設(shè)置(SETUP)封包收到端點(diǎn)0為止。
    (4)一旦SETUP包被檢測到,固件程序結(jié)構(gòu)框架就開始進(jìn)行任務(wù)分配。任務(wù)分配就是依次重復(fù)地執(zhí)行下面的過程:
   ①調(diào)用用戶函數(shù)TD_Poll()。
   ②檢測是否有標(biāo)準(zhǔn)的設(shè)備請求,如果有,則執(zhí)行指令并做出相應(yīng)的操作。
    ③檢測USB核是否有USB掛起信號,如果收到,則調(diào)用用戶程序TD_Suspend(),從該函數(shù)成功返回后(返回值為TRUE),再檢測是否發(fā)生USB喚醒事件。如果未檢測到,則處理器處于掛起方式;如果檢測到,則調(diào)用用戶程序TD_Resume(),程序繼續(xù)運(yùn)行。如果從TD_Suspend()返回為FALSE時(shí),則程序繼續(xù)進(jìn)行。
    標(biāo)準(zhǔn)請求和vendor專用請求由框架分析和執(zhí)行。默認(rèn)情況下,對標(biāo)準(zhǔn)請求執(zhí)行USB規(guī)定的響應(yīng),無論如何,框架提供交互的連接,以允許用戶程序處理或覆蓋指定的設(shè)備請求。EZ-USB中斷也交給框架進(jìn)行處理,任務(wù)循環(huán)的流程圖如圖4所示。

 


    在FX2芯片的固件程序設(shè)計(jì)中,最關(guān)鍵的就是系統(tǒng)初始化TD_Init(void)[3-5],下面是其部分代碼。

void TD_Init(void)    
{
    CPUCS=((CPUCS & ~bmCLKSPD)|bmCLKSPD1);
                  //設(shè)置CPU時(shí)鐘頻率為48 MHz
    SYNCDELAY;  
                  //設(shè)置68013工作于Slave FIFO模式
    REVCTL=0x03;      
                  //必須設(shè)置REVCTL.0和REVCTL.1為1
    SYNCDELAY;
    IFCONFIG=0x43;     //工作于同步FIFO模式
    SYNCDELAY;         //配置各個(gè)端點(diǎn)的工作狀態(tài)
    EP2CFG=0xE8;       //端點(diǎn)2,IN,塊傳輸,1 024 B,4倍緩沖區(qū)
    SYNCDELAY; 
    EP2FIFOCFG=0x09;     //配置端點(diǎn)2工作于16位模式,自動接收IN令牌包
    SYNCDELAY; 
    PINFLAGSAB=0x00;   //定義FLAGA為可編程級標(biāo)志,F(xiàn)LAGB:FIFO滿標(biāo)志位
    SYNCDELAY;         //定義FLAGC為滿標(biāo)志,
    PINFLAGSCD=0x00;
    SYNCDELAY;         //一般不需要FLAGD
    PORTACFG=0x00;    //用PA7/FLAGD作為端口引腳,不作為FIFO標(biāo)志
    SYNCDELAY;
    FIFOPINPOLAR=0x00;      //設(shè)置所有FIFO接口引腳為低電平有效
    SYNCDELAY;
    EP2AUTOINLENH=0x02;    //端點(diǎn)2自動接收512B數(shù)據(jù)
    SYNCDELAY;
    EP2AUTOINLENH=0x00;
    SYNCDELAY;
                           //復(fù)位EP2的FIFO緩沖區(qū)
    FIFORESET=0x80;       //不接收主機(jī)發(fā)出的命令
    SYNCDELAY;
    FIFORESET=0x02;       //復(fù)位EP2的FIFO緩沖區(qū)
    SYNCDELAY;
    FIFORESET=0x00;              //恢復(fù)正常工作
    SYNCDELAY;
    Rwuen=TRUE;              //使能遠(yuǎn)程喚醒功能 
}
3.2 USB設(shè)備驅(qū)動程序
    USB設(shè)備驅(qū)動程序的主要功能是使Win32應(yīng)用程序能正確訪問本數(shù)據(jù)采集卡的硬件設(shè)備。本設(shè)計(jì)中將CY7C68013的固件代碼存放在上位機(jī)上,當(dāng)系統(tǒng)上電或USB連接時(shí),再將它下載至芯片的RAM中,由增強(qiáng)型8051執(zhí)行。這一過程需要使用2個(gè)驅(qū)動程序:1個(gè)用于下載芯片的固件程序,另1個(gè)用于實(shí)現(xiàn)本數(shù)據(jù)采集卡的具體功能。也可以使用EZ-USB的通用驅(qū)動程序,很多USB芯片的廠商都為其USB芯片提供了通用驅(qū)動程序,可以滿足大部分系統(tǒng)的需求,用戶可在此基礎(chǔ)上直接進(jìn)行固件程序的開發(fā)[6]。
4 主機(jī)應(yīng)用程序
  應(yīng)用程序主要負(fù)責(zé)讀取系統(tǒng)硬件所輸出的數(shù)據(jù)采集結(jié)果,并實(shí)時(shí)顯示波形,所使用的編程語言為微軟的Visual C++6.0語言編寫的Win32應(yīng)用程序。
  主要控件包括:采集控制組按鈕,USB組按鈕。采集控制組按鈕負(fù)責(zé)控制硬件系統(tǒng)是否進(jìn)行數(shù)據(jù)采集,并使用USB塊傳輸來讀取采集結(jié)果。USB組按鈕主要負(fù)責(zé)讀取該數(shù)據(jù)采集卡的USB設(shè)備描述符和配置描述符。
  在該數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)中,CY7C68013芯片靈活的接口和FPGA可編程特性簡化了外部硬件的設(shè)計(jì),提高了系統(tǒng)的可靠性,且利于設(shè)備的生產(chǎn)與調(diào)度。事實(shí)證明,本文設(shè)計(jì)的系統(tǒng)完全滿足設(shè)計(jì)和使用要求。
參考文獻(xiàn)
[1] 嚴(yán)雪萍.基于FPGA的高速數(shù)據(jù)采集系統(tǒng)[J].微計(jì)算機(jī)信息,2008(1-2):209-211.
[2] 華清遠(yuǎn)見嵌入式培訓(xùn)中心.FPGA應(yīng)用開發(fā)入門與典型實(shí)例[M].北京:人民郵電出版社,2008.
[3] 錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2006.
[4] 李英偉.USB2.0原理與工程開發(fā)(第2版)[M].北京:國防工業(yè)出版社,2007.
[5] 張弘.USB接口技術(shù)[M].西安:西安電子科技大學(xué)出版社,2002.
[6] 薛園園.USB應(yīng)用開發(fā)技術(shù)大全[M].北京:人民郵電出版社,2007.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲欧美日韩综合国产aⅴ| 久久久久九九九九| 欧美一区二区视频在线观看| 亚洲视频电影图片偷拍一区| 亚洲伦伦在线| 亚洲精品国产精品乱码不99按摩| 狠狠综合久久| 国内精品美女在线观看| 国产日韩欧美精品在线| 国产精品嫩草99a| 国产精品久久久久免费a∨| 欧美日韩精品一区二区三区四区 | 一区二区三区日韩欧美| 99精品视频免费| 99re视频这里只有精品| 日韩午夜在线播放| 一区二区三区四区蜜桃| 中文欧美日韩| 午夜欧美大片免费观看| 欧美有码在线观看视频| 久久激情久久| 亚洲精品少妇| 亚洲视频第一页| 性欧美videos另类喷潮| 久久精品一区二区三区四区| 久久久久国产精品一区三寸| 麻豆av一区二区三区久久| 欧美成年人网站| 欧美日韩高清在线一区| 国产精品v片在线观看不卡| 国产精自产拍久久久久久| 国产一区av在线| 在线播放日韩专区| 亚洲人成人一区二区三区| 一区二区三区精品视频| 欧美一区2区三区4区公司二百| 久久国产精品久久精品国产| 亚洲精品一区二| 亚洲一区二区三区四区视频 | 亚洲一区图片| 欧美在线不卡| 免费观看一区| 欧美视频观看一区| 国产免费成人| 亚洲福利视频一区二区| 夜夜嗨av一区二区三区四区 | 欧美日韩高清在线观看| 国产精品久久久久久久久免费桃花| 国产精品一区二区a| 1769国产精品| aa亚洲婷婷| 欧美影院在线| 一本久道久久综合狠狠爱| 亚洲一区二区网站| 国产精品老女人精品视频| 国外精品视频| 亚洲精品综合久久中文字幕| 午夜精品福利在线观看| 99国产精品久久久久老师| 亚洲欧美日韩中文视频| 免费成人高清视频| 国产精品一国产精品k频道56| 亚洲国产成人久久| 亚洲欧美成aⅴ人在线观看| 亚洲精品少妇| 久久精品国产第一区二区三区| 欧美高清视频| 国产伪娘ts一区| 亚洲裸体在线观看| 欧美在线视频播放| 这里只有精品丝袜| 美国成人直播| 国产欧美精品一区| 亚洲精品乱码久久久久久| 欧美一区二区啪啪| 亚洲免费在线播放| 欧美激情一区二区三区成人| 国产亚洲成av人片在线观看桃 | 午夜精品在线观看| 一区二区三区www| 免费影视亚洲| 国产农村妇女精品一二区| 亚洲伦理在线免费看| 亚洲国产精品福利| 久久爱www.| 国产精品美女久久久久aⅴ国产馆| 亚洲国产美女| 欧美在线观看网址综合| 亚洲欧美日本伦理| 欧美日韩爆操| 亚洲国产成人精品久久| 久久国产婷婷国产香蕉| 性一交一乱一区二区洋洋av| 欧美日韩另类一区| 亚洲欧洲另类国产综合| 久久国产精品色婷婷| 欧美亚洲在线观看| 国产精品99一区| 99精品视频免费在线观看| 亚洲九九九在线观看| 免费观看成人鲁鲁鲁鲁鲁视频| 国内精品免费午夜毛片| 午夜日韩在线| 欧美资源在线| 国产欧美日韩视频在线观看| 中文日韩电影网站| 亚洲视频久久| 欧美三级视频在线播放| 亚洲精品在线三区| 亚洲麻豆av| 欧美精品一区二区三区蜜桃| 亚洲大片精品永久免费| 亚洲黄色在线视频| 免费观看日韩av| 在线精品视频免费观看| 久久精品国产69国产精品亚洲| 久久精品国产免费看久久精品| 亚洲精选成人| 欧美大片一区二区三区| 亚洲高清网站| 亚洲日本在线视频观看| 久久夜色精品| 亚洲高清不卡一区| 亚洲欧洲精品一区二区三区波多野1战4| 久久婷婷国产综合国色天香| 狠狠色伊人亚洲综合成人| 亚洲国产精品99久久久久久久久| 麻豆av一区二区三区久久| 一区二区三区在线不卡| 亚洲黄色在线看| 欧美日本一区二区高清播放视频| 亚洲精品美女久久7777777| av成人激情| 国产精品久久二区| 亚洲欧美日韩中文视频| 久久精品亚洲乱码伦伦中文| 国外精品视频| 亚洲看片免费| 欧美色综合网| 午夜精品在线看| 麻豆九一精品爱看视频在线观看免费| 伊人色综合久久天天五月婷| 亚洲精品欧美日韩| 欧美色图天堂网| 亚洲欧美日韩国产综合| 噜噜噜91成人网| 亚洲乱码国产乱码精品精天堂| 亚洲免费在线视频| 国产女同一区二区| 亚洲国产精品成人久久综合一区| 欧美精品久久久久久久久久| 一二美女精品欧洲| 久久www免费人成看片高清| 欲香欲色天天天综合和网| 9色国产精品| 国产精品视频| 亚洲国产成人不卡| 欧美三级欧美一级| 欧美诱惑福利视频| 欧美日韩精品免费| 欧美亚洲免费在线| 欧美精品免费看| 亚洲主播在线观看| 久久只有精品| 制服丝袜亚洲播放| 久久午夜精品| 一本久久青青| 久久一二三国产| 99热这里只有精品8| 久久久久久久国产| 亚洲人成久久| 久久久久国产一区二区三区| 亚洲免费观看高清在线观看| 久久久久久久一区| a91a精品视频在线观看| 久久精品最新地址| 99精品国产在热久久| 久久综合国产精品台湾中文娱乐网| 99在线观看免费视频精品观看| 久久久久久久欧美精品| 99国产麻豆精品| 久久夜色精品国产欧美乱| 亚洲私人黄色宅男| 欧美承认网站| 性伦欧美刺激片在线观看| 欧美日韩精品国产| 亚洲国产美国国产综合一区二区| 国产精品美女午夜av| 亚洲精品日韩欧美| 国产亚洲精品v| 亚洲影院一区| 亚洲人成毛片在线播放| 久久偷窥视频| 亚洲欧美精品在线观看| 欧美日韩美女| 亚洲国产高潮在线观看| 国产精品一区二区久久| 制服诱惑一区二区| 亚洲国产一区二区a毛片| 久久久久久久久岛国免费|