亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于USB2.0與LabVIEW的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)

        2012-06-09 10:25:38姚遠(yuǎn)程秦明偉
        電子設(shè)計(jì)工程 2012年19期
        關(guān)鍵詞:前面板固件下位

        謝 勇,姚遠(yuǎn)程,秦明偉

        (西南科技大學(xué) 信息工程學(xué)院,四川 綿陽 621010)

        通用串行總線 (Universal Serial Bus,USB)是一個(gè)外部總線協(xié)議標(biāo)準(zhǔn),用于規(guī)范電腦與外部設(shè)備的連接和通訊?;赨SB接口的數(shù)據(jù)采集卡具有熱插拔、傳輸速度快、通用性強(qiáng)、易擴(kuò)展和性價(jià)比高等優(yōu)點(diǎn)。LabVIEW(Laboratory Virtual Instrument Engineering Workbench)是一種基于圖形程序的虛擬儀器編程語言,在測(cè)試與測(cè)量、數(shù)據(jù)采集、儀器控制、數(shù)字信號(hào)分析等領(lǐng)域獲得了廣泛的應(yīng)用。

        文中介紹了一種基于USB2.0[1]和LabVIEW[2]的高速數(shù)據(jù)采集系統(tǒng)設(shè)計(jì),詳細(xì)描述了系統(tǒng)硬件和軟件設(shè)計(jì)實(shí)現(xiàn)方案。

        1 系統(tǒng)總體結(jié)構(gòu)

        本系統(tǒng)由軟件設(shè)計(jì)和硬件電路兩部分構(gòu)成,系統(tǒng)總體結(jié)構(gòu)如圖1所示。軟件設(shè)計(jì)主要包括上位機(jī)PC程序設(shè)計(jì),其中底層驅(qū)動(dòng)程序基于NI-VISA設(shè)計(jì)[3],用戶應(yīng)用程序由Lab VIEW開發(fā),驅(qū)動(dòng)程序的功能如同上位機(jī)應(yīng)用程序和下位機(jī)硬件之間通信的橋梁。

        硬件電路由FPGA、USB2.0控制器和ADC器件構(gòu)成[4]。其中USB2.0控制器芯片采用Cypress公司的EZ-USB FX2芯片,F(xiàn)PGA芯片選用了Xilinx公司的Virtex-4系列的XC4VSX55,ADC器件采用AD公司的AD9430。USB2.0控制器部分負(fù)責(zé)FPGA與上位機(jī)PC間的雙向通信;FPGA部分作為系統(tǒng)的主控制器,負(fù)責(zé)接收并解析上位機(jī)PC傳遞的控制指令,同時(shí)FPGA將下位機(jī)采集的數(shù)據(jù)通過USB接口傳送到上位機(jī)PC處理;AD9430完成前端模擬信號(hào)的高速采集。

        2 系統(tǒng)硬件設(shè)計(jì)

        2.1 ADC采樣電路設(shè)計(jì)

        AD9430是AD公司的一款12位單芯片采樣模數(shù)轉(zhuǎn)換器(ADC),專門針對(duì)高性能、低功耗和易用性進(jìn)行了優(yōu)化。AD9430的轉(zhuǎn)換速率最高可達(dá)210 MSPS,具有杰出的動(dòng)態(tài)性能,適合寬帶載波和寬帶系統(tǒng)使用。芯片上集成了全部必需功能,包括采樣保持(T/H)與基準(zhǔn)電壓源,可提供完整的信號(hào)轉(zhuǎn)換解決方案。AD9430要求采用3.3 V電源供電及差分ENCODE時(shí)鐘信號(hào),以便充分發(fā)揮其工作性能。數(shù)字輸出為TTL/CMOS兼容或LVDS兼容,支持二進(jìn)制補(bǔ)碼或偏移二進(jìn)制格式。

        圖1 系統(tǒng)總體結(jié)構(gòu)圖Fig.1 Whole structure chart of system

        本系統(tǒng)采用FPGA生成AD9430的采樣時(shí)鐘和工作模式寄存器的配置。前端模擬信號(hào)經(jīng)過AD9430采樣量化為數(shù)字信號(hào)后送入FPGA內(nèi)部生成的FIFO做緩存處理,避免了采樣數(shù)據(jù)率和USB接口傳輸數(shù)據(jù)率不匹配而發(fā)生數(shù)據(jù)丟失。FIFO的深度是由讀寫FIFO的時(shí)鐘以及所需連續(xù)傳輸數(shù)據(jù)塊的大小來決定的,本設(shè)計(jì)FIFO深度為1 024,數(shù)據(jù)總線位寬為16 bit。

        2.2 USB接口電路設(shè)計(jì)

        EZ-USB FX2有3種接口方式:Ports、slaveFIFO和GPIF。在本系統(tǒng)中采用的是slaveFIFO模式,在該模式下,F(xiàn)X2芯片內(nèi)部FIFO能自動(dòng)向USB提交包,外部控制器可以將數(shù)據(jù)連續(xù)傳輸?shù)紽IFO中,而不需要FX2固件程序的干預(yù),較好地解決了USB高速模式的帶寬瓶頸問題。在slaveFIFO模式下,EZ-USB FX2與FPGA主控制器的接口電路如圖2所示。

        其中IFCLK為接口時(shí)鐘,為了保持系統(tǒng)良好的時(shí)鐘同步性,設(shè)計(jì)中采用FPGA通過DCM分頻生成40 MHz時(shí)鐘。FLAGA-FLAGD為FIFO標(biāo)志管腳,用于映射端點(diǎn)的空、滿;SLOE用于使能數(shù)據(jù)總線FD的輸出,當(dāng)SLOE信號(hào)有效時(shí),才能從FIFO讀數(shù)據(jù);SLRD和SLWR分別作為FIFO的同步讀、寫選通信號(hào),當(dāng)SLRD或SLWR信號(hào)有效時(shí),才能在IFCLK的驅(qū)動(dòng)下讀寫FIFO;FD [15:0]為16位雙向數(shù)據(jù)總線,負(fù)責(zé)上下位機(jī)之間數(shù)據(jù)的傳輸;FIFOADR[1:0]用于選擇當(dāng)前操作的端點(diǎn)緩沖區(qū),其中“00”表示選擇 EP2,“10”表示選擇 EP6。

        3 系統(tǒng)軟件設(shè)計(jì)

        系統(tǒng)軟件設(shè)計(jì)主要包括USB固件程序、USB驅(qū)動(dòng)程序、FPGA控制程序以及LabVIEW應(yīng)用程序4個(gè)部分。

        3.1 USB固件程序設(shè)計(jì)

        USB固件程序開發(fā)主要包括如下幾個(gè)部分,首先定義USB設(shè)備的描述符:VID為0x04B4,PID為0x1002。然后設(shè)定EZ-USB FX2的工作模式為slaveFIFO模式,F(xiàn)IFO工作時(shí)鐘IFCLK由FPGA分頻產(chǎn)生;配置EP2為OUT端點(diǎn),上位機(jī)指令通過OUT端點(diǎn)下傳給FPGA解析,配置EP6為IN端點(diǎn),下位機(jī)采集的數(shù)據(jù)通過IN端點(diǎn)上傳到上位機(jī)PC,端點(diǎn)數(shù)據(jù)總線寬度為16 bit,數(shù)據(jù)緩沖區(qū)大小為2048字節(jié);同時(shí)配置FLAGA為端口EP2空標(biāo)志,配置FLAGC為端口EP6滿標(biāo)志。Cypress公司為了簡(jiǎn)化和加快用戶使用EZ-USB FX2芯片進(jìn)行USB外設(shè)的開發(fā)過程,提供了一個(gè)完整的固件程序的框架[5-6],本設(shè)計(jì)的主要固件程序如下:

        3.2 USB驅(qū)動(dòng)程序設(shè)計(jì)

        USB設(shè)備的驅(qū)動(dòng)程序是開發(fā)USB外設(shè)的一個(gè)關(guān)鍵,它在整個(gè)系統(tǒng)中處于上位機(jī)應(yīng)用程序和USB固件程序之間。它的主要作用是使上位機(jī)操作系統(tǒng)能夠識(shí)別USB設(shè)備,并建立起上位機(jī)和下位機(jī)USB設(shè)備之間的通訊。

        本設(shè)計(jì)通過配置NI-VISA直接開發(fā)USB驅(qū)動(dòng)程序[7],極大降低了設(shè)計(jì)難度和開發(fā)時(shí)間,同時(shí)設(shè)計(jì)的驅(qū)動(dòng)程序可以實(shí)現(xiàn)下位機(jī)USB設(shè)備和上位機(jī)LabVIEW應(yīng)用程序無縫連接。設(shè)計(jì)中采用了比較成熟的NI-VISA 5.0版本,配置NI-VISA的步驟如下:

        1)使用Driver Development Wizard(驅(qū)動(dòng)程序開發(fā)向?qū)В﹦?chuàng)建INF文檔;

        2)安裝INF文檔,并安裝使用INF文檔的USB設(shè)備;

        3)使用NI-VISA Interactive Control(NI-VISA互動(dòng)控制工具)對(duì)設(shè)備進(jìn)行測(cè)試,以證實(shí)USB設(shè)備已正確安裝,并獲得USB設(shè)備的各屬性值。

        3.3 FPGA控制程序設(shè)計(jì)

        FPGA作為外部主控制器,負(fù)責(zé)產(chǎn)生EZ-USB FX2工作在slaveFIFO模式所需的控制信號(hào)。FPGA通過監(jiān)測(cè)EZ-USB FX2內(nèi)部FIFO的空滿標(biāo)志,生成對(duì)應(yīng)的讀寫信號(hào)來操作FIFO,實(shí)現(xiàn)采集數(shù)據(jù)的傳輸。

        在slaveFIFO模式下,EZ-USB FX2有兩種傳輸方式:同步和異步。同步方式可以實(shí)現(xiàn)更高的傳輸速度,所以被本設(shè)計(jì)采用。在同步方式下,傳輸時(shí)鐘IFCLK由FPGA提供,當(dāng)SLOE和SLRD為低電平且SLWR為高電平時(shí),一個(gè)IFCLK周期完成一個(gè)數(shù)據(jù)的讀操作;當(dāng)SLWR為低電平且SLOE和SLRD為高電平時(shí),一個(gè)IFCLK周期完成一個(gè)數(shù)據(jù)的寫操作。USB接口芯片的控制信號(hào)由VHDL硬件描述語言開發(fā)并映射到FPGA中運(yùn)行。FPGA讀、寫EZ-USB FX2內(nèi)部FIFO的時(shí)序仿真結(jié)果分別如圖3、圖4所示。

        圖2 FPGA與EZ-USB FX2連接圖Fig.2 Connection diagram of FPGA and EZ-USB FX2

        圖3 FPGA讀FIFO仿真波形Fig.3 Simulation waveform of FPGA reading FIFO

        圖4 FPGA寫FIFO仿真波形Fig.4 Simulation waveform of FPGA writing FIFO

        3.4 基于LabVIEW的應(yīng)用程序設(shè)計(jì)

        在LabVIEW軟件平臺(tái)下,用戶利用創(chuàng)建和調(diào)用子程序的方法編寫程序,使創(chuàng)建的程序模塊化,程序結(jié)構(gòu)簡(jiǎn)單、直觀,易于調(diào)試和維護(hù)。而且應(yīng)用程序的界面美觀、逼真,人機(jī)界面更友好。一個(gè)LabVIEW程序分為3部分:前面板、框圖程序和圖標(biāo)/接線端口。前面板用于模擬真實(shí)儀器的前面板;框圖程序是利用圖形語言對(duì)前面板上的控件對(duì)象進(jìn)行控制;圖標(biāo)/接線端口用于把LabVIEW程序定義成一個(gè)子程序模塊,從而實(shí)現(xiàn)模塊化編程。

        LabVIEW程序的程序框圖如圖5所示。整個(gè)應(yīng)用程序的主框架使用了WHILE循環(huán)不斷的查詢主機(jī)狀態(tài)。設(shè)計(jì)中采用了LabVIEW的事件結(jié)構(gòu)編程。事件驅(qū)動(dòng)的編程允許用戶通過前面板的操作,或是其他的異步事件來驅(qū)動(dòng)LabVIEW程序的運(yùn)行。本設(shè)計(jì)中采用前面板的用戶按鈕操作作為事件驅(qū)動(dòng)源。同時(shí)關(guān)閉程序也作為一個(gè)事件分支,避免了程序死鎖問題的發(fā)生。在“開始采集”事件中通過直接調(diào)用VISA函數(shù)子VI來讀寫USB設(shè)備,實(shí)現(xiàn)上位機(jī)控制指令的下傳和下位機(jī)采集數(shù)據(jù)的上傳。

        LabVIEW程序主要工作流程:用戶在操作應(yīng)用程序前面板界面時(shí),點(diǎn)擊開始采集按鈕就會(huì)觸發(fā)程序的開始采集事件分支。在該分支中程序首先通過 “VISA打開”VI打開USB設(shè)備,然后通過“VISA寫入”VI將上位機(jī)十六進(jìn)制的控制指令 “0101”通過USB接口發(fā)送到下位機(jī),F(xiàn)PGA完成指令的接收和解析。下位機(jī)接收到采集指令后開始往EZUSB FX2芯片的FIFO中寫入采集的數(shù)據(jù),上位機(jī)則通過“VISA讀取”VI開始接收下位機(jī)上傳的數(shù)據(jù)。采集到的數(shù)據(jù)通過“數(shù)據(jù)顯示”VI顯示在前面板,同時(shí)利用LabVIEW靈活的數(shù)據(jù)文件存儲(chǔ)方式,將采集到的數(shù)據(jù)存儲(chǔ)為二進(jìn)制格式的文件保存起來以便后續(xù)處理。用戶完成采集過程后,關(guān)閉VISA,結(jié)束程序運(yùn)行。

        圖5 LabVIEW程序框圖Fig.5 Block diagram of LabVIEW program

        4 系統(tǒng)測(cè)試

        系統(tǒng)的硬件電路和軟件程序開發(fā)完成后,通過軟硬件聯(lián)合測(cè)試以驗(yàn)證系統(tǒng)傳輸系能。測(cè)試步驟如下:首先通過NIVISA配置好EZ-USB FX2的驅(qū)動(dòng)程序,用EZ-USB Control Panel軟件完成固件程序下載。如圖6前面板所示,上位機(jī)檢測(cè)到的USB設(shè)備的VID為0x04B4,PID為0x1002,這與在固件程序中的設(shè)定一致,說明通過NI-VISA完成了USB設(shè)備的驅(qū)動(dòng)程序設(shè)計(jì)。USB設(shè)備和上位機(jī)PC正確連接后即可進(jìn)行數(shù)據(jù)采集。然后在前面板設(shè)置采集長(zhǎng)度為512字節(jié),單擊“開始采集”按鈕,下位機(jī)采集的數(shù)據(jù)顯示在圖6中數(shù)據(jù)顯示VI中。采集的數(shù)據(jù)為十六進(jìn)制數(shù)表示的0000~00FF,與下位機(jī)FPGA寫入U(xiǎn)SB芯片內(nèi)部FIFO的數(shù)據(jù)完全一致,證明系統(tǒng)數(shù)據(jù)傳輸?shù)目煽啃?。通過總線數(shù)據(jù)監(jiān)測(cè)軟件BusHound實(shí)時(shí)測(cè)試,本設(shè)計(jì)的數(shù)據(jù)傳輸速度高達(dá)30 MByte/s。

        圖6 LabVIEW程序前面板Fig.6 Front panel of LabVIEW program

        5 結(jié)束語

        本系統(tǒng)軟件、硬件均已調(diào)試通過,并已應(yīng)用于實(shí)際項(xiàng)目中,運(yùn)行良好。實(shí)踐證明,本系統(tǒng)結(jié)合USB和LabVIEW各自優(yōu)點(diǎn)完成設(shè)計(jì),降低了開發(fā)USB設(shè)備驅(qū)動(dòng)程序的難度,縮短了研制周期,而由LabVIEW開發(fā)的人機(jī)界面更友好、美觀。同時(shí)本系統(tǒng)硬件集成度高,成本低,結(jié)構(gòu)靈活便于擴(kuò)展,具有更強(qiáng)的實(shí)用和推廣價(jià)值。

        [1]羅偉林.基于USB2.0的高速數(shù)據(jù)采集系統(tǒng) [D].哈爾濱:哈爾濱工業(yè)大學(xué),2008.

        [2]楊樂平,李海濤,楊磊.LabVIEW 程序設(shè)計(jì)與應(yīng)用[M].北京:電子工業(yè)出版社,2005.

        [3]National Instruments.USB Instrument Control Tutorial[EB/OL].[2003]http://www.ni.com.Nov.

        [4]曹輝,劉波,姜秀杰.基于USB與FPGA的多路總線通信接口的設(shè)計(jì)與實(shí)現(xiàn)[J].導(dǎo)彈與航天運(yùn)載技術(shù),2009,4(302):18-22.CAO Hui,LIU Bo,JIANG Xiu-jie.Design and implementation of a multi-channel bus interface based on USB and FPGA[J].Missiles and Space Vehicles,2009,4(302):18-22.

        [5]錢峰.EZ-USB FX2單片機(jī)原理、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出社,2006.

        [6]Cypress Semiconductor Corporation. EZ-USB FX2 Technical Reference Manual[S].USA,2002.

        [7]余志榮, 楊莉.基于NI-VISA與LabVIEW 的USB接口應(yīng)用設(shè)計(jì)[J].單片機(jī)與嵌入式系統(tǒng)應(yīng)用,2007(1):66-69.YU Zhi-rong,YANG Li.Design of USB interface based on NI-VISA and LabVIEW[J].Microcontroller and Embedded Systems,2007(1):66-69.

        猜你喜歡
        前面板固件下位
        顏值高和散熱強(qiáng)可以并存3款高品質(zhì)機(jī)箱推薦
        電競(jìng)潮牌范 航嘉GX520S機(jī)箱評(píng)測(cè)
        發(fā)射機(jī)房監(jiān)控系統(tǒng)之下位機(jī)
        基于固件的遠(yuǎn)程身份認(rèn)證
        景洪電廠監(jiān)控系統(tǒng)下位機(jī)數(shù)據(jù)傳輸網(wǎng)絡(luò)改造
        圍觀黨“下位”,吐槽帝“登基”
        CAN總線并發(fā)通信時(shí)下位機(jī)應(yīng)用軟件設(shè)計(jì)
        提取ROM固件中的APP
        電腦愛好者(2015年7期)2015-04-09 08:54:02
        剛撓印制板在機(jī)載設(shè)備電子機(jī)箱中的結(jié)合與應(yīng)用
        一種通過USB接口的可靠固件升級(jí)技術(shù)
        欧美 国产 日产 韩国 在线| 国产一区二区三区视频在线观看 | 日韩不卡的av二三四区| 妇女bbbb插插插视频| 日本强好片久久久久久aaa| 狠狠综合亚洲综合亚色 | 免费少妇a级毛片人成网| 久久国产精品不只是精品| 亚洲av毛片成人精品| 国产精品亚洲一级av第二区| 亚洲国产成人av在线观看| а中文在线天堂| 视频网站在线观看不卡| 亚洲高清国产成人精品久久| 国产一精品一av一免费| 怡春院欧美一区二区三区免费 | 国产精品麻豆综合在线| 日本黄色一区二区三区视频| 亚洲黄片av在线播放| 久久精品成人无码观看不卡| 亚洲另类欧美综合久久图片区| 国产在线看不卡一区二区| 亚洲欧美中文日韩在线v日本| 日本aⅴ大伊香蕉精品视频| 中文字幕人妻中文| 日本免费三级一区二区| 少妇裸体性生交| 亚洲精品永久在线观看| 日产乱码一区二区国产内射| 澳门蜜桃av成人av| 中文字幕亚洲乱码熟女在线| 精选麻豆国产AV| 亚洲最大不卡av网站| 成人内射国产免费观看| 精品一区二区三区在线观看视频| 久久精品中文字幕亚洲| 成人偷拍自拍视频在线观看| 乌克兰少妇xxxx做受野外| 日本口爆吞精在线视频| 亚洲一区二区三区重口另类| 国产h视频在线观看|