《電子技術應用》
您所在的位置:首頁 > 測試測量 > 設計應用 > 基于USB接口的數據采集系統設計
基于USB接口的數據采集系統設計
王寶珠, 楊 永, 林永峰, 常秀穎
河北工業大學 信息工程學院, 天津 300401
摘要: 設計了基于USB2.0接口的數據采集系統。系統硬件主要由信號調理電路、USB2.0芯片CY7C68013及A/D轉換器MAX125組成。軟件部分主要包括固件設計、驅動程序設計和應用程序設計三部分。
中圖分類號: TN919
文獻標識碼: B
Design of data acquisition system based on USB interface
WANG Bao Zhu, YANG Yong, LIN Yong Feng, CHANG Xiu Ying
College of Information Engineering, Hebei University of Technology, Tianjin 300401, China
Abstract: A data acquisition system based on USB2.0 is designed. In the hardware design part, signal processing circuit、USB2.0 serial chip CY7C68013 and A/D convertor MAX125 are included. The software part mainly consists of three parts: firmware design, driver program design and application program design.
Key words : universal serial bus; speech signal; general programmable interface

    隨著大規模集成電路與計算機技術的飛速發展,數據采集在語音處理、智能儀器、工業自動化及生物醫學工程等眾多領域中的地位日益突出,并且對數據采集的各項技術指標要求越來越高。傳統的數據采集卡主要有PCI卡或者ISA卡,這些采集卡都存在著各種各樣的缺陷,比如傳輸速度慢、不支持熱插拔、安裝不方便、受計算機地址、中斷和插槽的限制,可擴展性差等[1]。
    近年來,USB接口以其傳輸速度快、成本低、可靠性高、支持即插即用和熱插拔等優點[2],迅速成為數據傳輸的主流。因此,開發這種基于USB2.0的高速數據采集系統,代表了現代數據采集和傳輸的發展趨勢,必將被越來越多的用戶所接受。
1 系統工作原理與硬件結構
    基于USB接口的數據采集系統的硬件部分主要包括信號調理電路、A/D轉換電路、USB控制電路三部分。PC機端的應用程序通過USB主機發送控制信號,通知CY7C68013開始數據采集。當CY7C68013接收到控制信號以后,通過GPIF模式發送控制波形到MAX125,控制其開始的數據轉換。當MAX125接收到控制信號以后,開始進行數據采集。采集完成后,在USB主機控制器的控制下,MAX125把轉換后的數字信號發送到CY7C68013,最后通過USB總線把采集到的數據發送到PC機,并進行相應的處理。
    系統硬件框圖如圖1所示。


1.1 信號調理電路和電源電路
    擬電壓范圍為-5 V~+5 V,所以在輸入信號進入之前必須進行相應的處理。本設計所采集的語音信號的電壓范圍是0~30 mV,初步調理之后的電壓范圍為0~2 V,為了得到所需的增益,采用同相輸入放大電路對初步調理后的電壓放大。完成電壓轉換后,還必須由低通濾波器濾除高頻信號,在本設計中,采用4階巴特沃斯濾波器。濾波電路和放大電路所采用的放大器為OP07,其輸入電壓范圍為±3 V~±22 V。本設計采用開關電源供電,提供的輸出電壓為±5 V、12 V,其中,MAX125需要5 V的數字電源和±5 V的模擬電源工作,運算放大器的供電電壓為5 V和-5 V,而系統中USB2.0芯片采用3.3 V供電,為此,需要電源轉換模塊以獲得系統所需要的電源電壓值,其中5 V轉3.3 V電壓用到AS1117-3.3系列芯片。
1.2 USB控制電路
    USB2.0傳輸芯片采用CYPRESS公司的CY7C68013A-56PIN,芯片的商標號是FX2。EZ-USB FX2微處理器是世界上第一款集成USB2.0的微處理器,具有增強型的8051內核性能、集成度高、方便靈活的軟配置和快捷的軟件開發工具等主要特性[3]。該芯片的內部結構如圖2所示,其中主要包括USB2.0收發器、串行引擎(SIE)、增強型的8051內核、16 KB的RAM、4 KB的FIFO存儲器、I/O接口、8位數據總線、16位地址總線和通用可編程接口(GPIF)。


    EZ-USB FX2是整個系統的控制核心,除了完成與上位機的USB總線通信,還要實現對A/D采樣電路的控制。CY7C68013本身有一個4 KB的內部FIFO存儲器,可以滿足常規的數據采集的需求,更重要的是其內部還提供了一個用于控制FIFO存儲器的通用可編程接口(GPIF),大大方便了用戶的需求[4],而且在GPIF的控制下,內部的FIFO利用其高速緩沖區可以在不需要固件的參與下與USB之間進行自動高速通信。GPIF是一個內置接口控制器,用來取代外接的控制邏輯,可以工作在內部時鐘(30 MHz或48 MHz),也可以由外部時鐘驅動(5 MHz~48 MHz)。GPIF的核心實際上是一個可編程狀態機,最多可產生6個控制信號和9位地址總線。4個用戶定義的波形描述符控制這個狀態機,一般來講,有單次讀取、單次寫入、連續讀取、連續寫入4個波形[5]。在GPIF模式下,讀和寫的操作都是從EZ-USB的角度來說的。即一個讀波形數據傳輸表示數據從外部邏輯傳輸到EX-USB的內部FIFO,而一個寫波形數據傳輸表示數據傳輸從EZ-USB內部的FIFO發送到外部邏輯。FX2用4個波形描述符來控制各個狀態,這些波形描述符可動態地配置給任何一個端點FIFO。配置后GPIF將依據波形描述符產生相應的邏輯控制CTL及握手信號RDY來和外界接口,以滿足向FIFO讀寫數據的需要。GPIF的數據總線可以是8位,也可以是16位,本設計采用16位數據總線。
1.3 硬件連接圖
    EZ-USB FX2接口芯片和MAX125芯片的連接圖如圖3所示。

 
2 系統軟件設計
 系統的軟件設計主要包括固件設計、驅動程序設計和應用程序設計3部分。
2.1 固件程序設計
    固件程序是整個程序設計的核心,它主要負責處理PC機發送來的各種USB設備請求,并與外圍電路進行交換,存放在主機上,當系統上電或連接時將其自動下載到芯片的RAM中,并由8051執行。固件程序主要包括設備初始化和GPIF波形控制。固件程序流程如圖4所示。


    USB的固件程序是由main主函數處開始執行的,在主函數中,主要的初始化有:初始化休眠模式、遠程呼喚和自供電;初始化用戶設備。其中設備初始化包括FX2工作模式的配置和數據采集參數的配置。FX2工作模式配置主要包括時鐘模式和端點配置,用到的寄存器有CPUCS和EP2CFG。端點0作為控制傳輸,端點2作為輸入端點,傳輸方式為批量傳輸。這部分程序主要位于TD_Init( )中,此外還包括對生成的GPIF.C中的GPIF寄存器的初始化函數GPIFInit()的調用。
    GPIF編程主要包括GPIF工作模式的初始化、GPIF波形描述符配置、GPIF觸發三部分內容。GPIF工作模式初始化主要是對寄存器IFCONFIG、EP2FIFOCFG進行配置,即IFCONFIG=0xFA,EP2FIFOCFG=0x09。GPIF對MAX125的控制是按照GPIF波形描述符所表達的時序進行的。根據MAX125提供的讀寫時序,本系統利用CYPRESS提供的開發工具GPIF Designer設計了GPIF波形描述符。GPIF觸發過程是在TD_Poll()中實現的,其中寫AD控制字波形的代碼為:XGPIFSGLDATLXH=gdata[13:8],XGPIFSGLDATLXL=gdata[7:0];啟動GPIF FIFO讀傳輸的代碼為:GPIFTRIG=GPIFTRIGRD|GPIF_EP2。
2.2 驅動程序設計
    設備驅動程序的主要作用是使操作系統能夠識別USB設備,并建立起主機和設備之間的通信。USB驅動程序采用WDM驅動模型[6],支持即插即用功能。在WDM驅動程序模型中,每個硬件設備至少有兩個驅動程序。其中一個驅動程序為功能驅動程序,即硬件設備驅動程序,它了解使硬件工作的所有細節,負責初始化I/O操作、處理I/O操作完成時所帶來的中斷事件,并為用戶提供一種設備適合的控制方式。另一個為總線驅動程序,由操作系統提供,它位于USB功能驅動程序的下面,負責管理硬件與計算機的連接。
    在Windows操作系統下,開發WDM驅動程序可以選擇DDK開發工具。主要有4個驅動例程:入口例程、即插即用例程、分發例程以及電源管理例程。
 入口例程,即DriverEntry例程,由操作系統的I/O管理器在設備驅動功能加載時進行調用,主要負責WDM驅動程序的初始化。
 即插即用例程實現USB設備的熱插拔和動態配置。當設備與計算機連接時,系統自動識別并調用其DriverEntry例程,自動選擇并加載合適的驅動程序。當設備從系統中移除時,自動處理相應的清除工作。其驅動例程主要有兩個:AddDevice例程和IRP_MJ_PNP例程。AddDevice例程用于完成設備的添加。IRP_MJ_PNP例程主要負責處理系統即插即用管理器發出的PnP信息,包括啟動設備、停止設備、刪除設備等。
 分發例程用于處理各種I/O請求,每個分發例程都對應一個Win32函數。常用的分發例程主要有IRP_MJ_CREATE例程和IRP_MJ_CLOSE例程。
 電源管理例程負責設備的掛起與喚醒。
2.3 應用程序設計
 上位機應用程序給用戶提供一個操作采集系統的界面,將采集到的數據以多種方式顯示給用戶,用戶也可以對采集到的數據進行分析處理。應用程序采用Visual C++集成開發環境,利用MFC編程,主要功能有:開啟和關閉USB設備、檢測USB設備、設置USB設備傳輸管道、設置數據采集端口、實時地從USB接口采集數據、顯示并分析數據。應用程序流程圖如圖5所示。


   應用程序使用Win32的API函數CreateFile()來創建和打開設備,并返回該設備的句柄。當對設備進行讀取時,首先調用打開并獲得指定的USB設備的句柄,然后對指定管道進行復位,準備接收數據,然后啟動接收數據線程。應用程序通過使用標準的Win32 API函數DeviceIoControl()調用驅動程序中定義的宏代碼IO_PICUSB_
CTRL_READ來執行這部分操作,而驅動程序與設備之間的通信中,DeviceIoControl()調用被轉化成一個帶有IRP_MJ_DEVICE_CONTROL功能代碼的IRP。關閉USB設備需調用CloseHandle()函數, 其調用方式為CloseHandle(hDevice),其中hDevice為在調用CreateFile()函數時返回的設備句柄。
3 試驗結果與分析
    圖6為本數據采集系統在批量傳輸下的應用程序界面。圖中曲線是對模擬語音信號采集生成的波形圖。實驗表明,該基于USB2.0接口的數據采集系統可實現對語音信號的采集,傳輸速度能達到30 Mb/s,具有很強的抗干擾性,完全滿足設計和使用要求。在保存數據和退出應用程序前,應先停止采集。保存數據時,通過在“保存”欄中選擇對應的選項,就可以保存數據。


    本文所設計的基于USB2.0接口的數據采集系統具有8路輸入14位分辨率的性能,可滿足語音處理、工業自動化及生物醫學工程中心電信號等領域中大多數場合的數據采集要求。不僅克服了傳統采集系統的缺陷,而且充分利用USB優點,提高了傳輸速度,給用戶帶來許多方便。本文的創新點在于采用USB接口進行微處理器與上位機之間的通信,并結合CY7C68013特有的GPIF編程技術,有效提升了整個系統數據采集速率,在實際應用中取得了良好的效果。
參考文獻
[1]     肖忠祥.數據采集原理[M].西安:西北工業大學出版社,2001.
[2]     邊海龍.USB2.0設備的設計與開發[M].北京:人民郵電出版社,2004.
[3]     錢峰.EZ-USB FX2單片機原理、編程及應用. 北京:北京航空航天大學出版社,2006.
[4]     尹偉,婁淑琴.基于GPIF模式的USB接口電路的設計和實現[J].儀器儀表用戶,2008(2):61-62.
[5]     Cypress Semiconductor Corporation.EZ-USB FX2 technical  reference manual[Z].2001.
[6]     胡文靜,陳松.基于EZ-USB芯片CY7C68013的驅動程序設計[J].計算機應用研究,2005,22(9):221.

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
在线观看欧美激情| 欧美激情一区在线| 国产精品免费视频xxxx| 亚洲一区二区三区成人在线视频精品 | 国产亚洲一区在线| 久热综合在线亚洲精品| 亚洲欧洲午夜| 一区二区精品在线| 国产伦精品一区二区三区免费迷 | 午夜精品一区二区三区四区| 国产亚洲电影| 欧美激情欧美激情在线五月| 亚洲一区二区三区在线观看视频| 亚洲啪啪91| 国产精品成人一区二区网站软件 | 日韩一级黄色大片| 国产精品揄拍500视频| 久久综合电影| 在线亚洲欧美| 欧美在线|欧美| 亚洲人成在线影院| 国产日产精品一区二区三区四区的观看方式 | 亚洲精品免费在线播放| 一区二区三区产品免费精品久久75 | 欧美午夜宅男影院在线观看| 亚洲天堂网站在线观看视频| 亚洲欧美怡红院| 136国产福利精品导航网址| 欧美视频中文字幕在线| 久久久国产视频91| 久久国产色av| 亚洲人妖在线| 国产精品入口福利| 香蕉久久国产| 亚洲乱码国产乱码精品精98午夜| 在线精品视频免费观看| 免费毛片一区二区三区久久久| 亚洲国产黄色| 亚洲影院污污.| 亚洲三级影片| 国内一区二区三区| 母乳一区在线观看| 欧美专区亚洲专区| 中国成人在线视频| 91久久国产综合久久91精品网站| 亚洲国产婷婷| 黄色日韩在线| 国产欧美精品在线播放| 欧美日韩免费一区二区三区视频| 亚洲字幕在线观看| 日韩天堂av| 亚洲图片欧美一区| 国产综合视频在线观看| 国产精品免费在线| 欧美日韩国产综合在线| 免费在线欧美黄色| 久久久成人网| 欧美亚洲一区在线| 亚洲午夜一区二区| 日韩系列在线| 亚洲激情不卡| 久久精品盗摄| 99re6热只有精品免费观看 | 狠狠色狠狠色综合系列| 欧美高清在线精品一区| 久久日韩粉嫩一区二区三区| 午夜精品福利电影| 一本色道久久综合亚洲精品小说 | 国产伦精品一区二区| 久久只精品国产| 久久国产一区| 欧美亚洲在线视频| 亚洲欧美在线x视频| 亚洲天堂视频在线观看| 在线视频欧美日韩| 一本大道久久a久久精二百| 亚洲欧美中文另类| 亚洲综合社区| 午夜欧美大片免费观看| 亚洲一区二区免费视频| 亚洲少妇自拍| 亚洲系列中文字幕| 亚洲综合三区| 日韩亚洲精品视频| 99精品99久久久久久宅男| 亚洲精品午夜精品| 日韩亚洲欧美一区二区三区| 亚洲精品视频在线观看免费| 国际精品欧美精品| 欧美午夜视频一区二区| 欧美天天视频| 国产精品国产精品| 欧美高潮视频| 欧美精品系列| 欧美三级午夜理伦三级中视频| 另类春色校园亚洲| 久久国产精品一区二区三区| 久久精品综合一区| 久久三级福利| 欧美高清视频一区二区三区在线观看| 欧美一区二区在线观看| 久久精品视频va| 久久综合久久久久88| 美女久久一区| 欧美精品久久99| 老司机aⅴ在线精品导航| 欧美成人国产| 欧美日韩中文字幕综合视频 | 国产精品萝li| 国产日韩精品久久久| 国产日本欧洲亚洲| 一区二区三区在线视频免费观看| 国产乱码精品一区二区三区不卡| 欧美三级午夜理伦三级中视频| 欧美国产精品一区| 欧美日韩一区二区三区四区五区 | 国产一区二区三区精品欧美日韩一区二区三区 | 国产精品亚洲视频| 国产一区深夜福利| 亚洲黄色一区| 亚洲天堂av图片| 一区二区三区黄色| 欧美亚洲免费高清在线观看| 亚洲国产精品久久久久秋霞影院 | 欧美与黑人午夜性猛交久久久| 性久久久久久| 日韩视频中文字幕| 欧美一区91| 免费日韩成人| 国产精品成人一区二区网站软件| 欧美深夜影院| 国产亚洲在线| 亚洲美女91| 午夜精品久久久久久久久久久久| 午夜久久久久久| 午夜国产精品视频免费体验区| 亚洲欧美日韩国产一区| 午夜精彩国产免费不卡不顿大片| 午夜伦欧美伦电影理论片| 亚洲乱码国产乱码精品精可以看| 亚洲伦理中文字幕| 欧美一区二区三区免费视频| 欧美xxx成人| 国产区日韩欧美| 激情综合网激情| 亚洲视频一二区| 亚洲激情在线播放| 欧美一区二区三区四区在线 | 欧美一级片一区| 一二三区精品福利视频| 久久精品女人| 欧美午夜视频网站| 在线观看一区二区精品视频| 亚洲欧美在线免费观看| 久久精品日韩欧美| 午夜精品久久久久久99热软件| 久久精品国产成人| 欧美日韩在线视频观看| 狠狠色丁香婷综合久久| 亚洲一区二区三区影院| 日韩亚洲综合在线| 久久婷婷丁香| 国产精品综合不卡av| 日韩午夜av在线| 91久久精品国产91久久性色tv | 国产精品一区久久久久| 日韩午夜激情av| 亚洲人精品午夜在线观看| 欧美一区二区三区另类| 欧美日韩一级大片网址| 亚洲电影有码| 亚洲福利国产| 久久久久久9| 国产欧美一区二区精品忘忧草| 一区免费观看| 西瓜成人精品人成网站| 亚洲欧美日韩一区二区| 欧美日韩精品免费观看视一区二区 | 亚洲在线播放| 亚洲一区免费看| 欧美人交a欧美精品| 亚洲电影下载| 亚洲丰满少妇videoshd| 久久久夜精品| 国产一区二区三区久久| 亚洲免费av片| 99在线精品观看| 欧美—级a级欧美特级ar全黄| 国产欧美精品在线播放| 亚洲欧美99| 香蕉久久夜色精品国产| 国产精品久久久久久久久久ktv| 国外成人在线| 欧美资源在线观看| 欧美在线日韩精品| 国产美女精品一区二区三区| 亚洲一区二区三区视频| 亚洲精品欧美一区二区三区| 女主播福利一区| 亚洲激情一区二区|