《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 嵌入式技術(shù) > 設(shè)計(jì)應(yīng)用 > 基于USB的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
基于USB的數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)及實(shí)現(xiàn)
摘要: 講述了一種基于USB的12 b高速數(shù)據(jù)采集與信號(hào)分析系統(tǒng)的設(shè)計(jì),,設(shè)計(jì)中采用了FPGA(可編程邏輯器件)實(shí)現(xiàn)時(shí)序邏輯信號(hào)的控制,,從而整個(gè)系統(tǒng)的設(shè)計(jì)具有很大的靈活性,。該系統(tǒng)在Windows 2000環(huán)境下的驅(qū)動(dòng)程序及用戶應(yīng)用程序采用的是VisualC++語(yǔ)言實(shí)現(xiàn)的,而固件代碼則是用C語(yǔ)言實(shí)現(xiàn)的,。系統(tǒng)具有低成本,、高性能的特點(diǎn),能夠廣泛應(yīng)用于測(cè)控、信號(hào)分析等多個(gè)領(lǐng)域
關(guān)鍵詞: USB 數(shù)據(jù)采集
Abstract:
Key words :

       1 引 言

       在智能儀器,、信號(hào)處理以及工業(yè)自動(dòng)控制等領(lǐng)域,,都存在著數(shù)據(jù)的測(cè)量與控制問題,常常需要將外部的溫度,、壓力,、流量、位移等模擬量進(jìn)行采集,。目前常用的數(shù)據(jù)采集方式是通過數(shù)據(jù)采集板卡,常用的有ISA總線,,PCI總線,,422,485等接口形式的A/D采集卡,,這種板卡不僅安裝麻煩,,而且易受計(jì)算機(jī)插槽數(shù)量和地址、中斷資源的限制,。通用串行總線(UniversalSerialBus,,USB)的出現(xiàn),很好地解決了以上問題,。本文所設(shè)計(jì)的就是基于USB總線的快速12 b的數(shù)據(jù)采集系統(tǒng),。

      

 

2 USB總線簡(jiǎn)介

       USB總線是Intel,DEC,,Microsoft,,IBM等公司聯(lián)合提出的一種新的串行總線接口規(guī)范,是為了解決日益增加的PC外設(shè)與有限的主板插槽和端口之間的矛盾而制定的一種串行通信標(biāo)準(zhǔn),。USB具有較高的傳輸速度: USB協(xié)議1.1支持低速(1.5 Mb/s)和全速(12 Mb/s)2種傳輸模式,,而2.0協(xié)議支持的速度提高到480 Mb/s。他的數(shù)據(jù)傳輸速度比標(biāo)準(zhǔn)串/并口高,,且具有使用簡(jiǎn)單,、支持即插即用、易于擴(kuò)展等特點(diǎn),。

       USB接口采用4線電纜,,其中2根信號(hào)線,1根電源線和1根地線,,電源線可以向外設(shè)提供最大5 V,,500 mA的電流。USB接口有4種傳輸方式:控制傳輸,、批量傳輸,、終端傳輸和同步傳輸,可以滿足不同傳輸?shù)男枰?br />
       3 USB接口的數(shù)據(jù)采集系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

       整個(gè)系統(tǒng)主要由4部分組成:USB接口芯片及外圍電路、控制電路,、數(shù)據(jù)緩沖電路和A/D轉(zhuǎn)換電路,。USB接口芯片選擇了Cypress公司的EZ-USB 2131Q,該芯片內(nèi)嵌8051控制器,,因此整個(gè)系統(tǒng)以EZ-USB控制器為核心,,由EZ-USB經(jīng)控制電路實(shí)現(xiàn)對(duì)A/D轉(zhuǎn)換電路和數(shù)據(jù)緩沖電路的控制,模擬信號(hào)轉(zhuǎn)換后的數(shù)據(jù)送入數(shù)據(jù)緩沖器,,當(dāng)數(shù)據(jù)緩沖器存滿之后,,通知EZ-USB控制器,由主機(jī)取出數(shù)據(jù),。整個(gè)系統(tǒng)框圖如圖1所示,。

 

系統(tǒng)框圖


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

       EZ-USB2131Q是CYPRESS公司生產(chǎn)的EZUSB系列芯片的一種,該芯片集成了USB外設(shè)接口所需的功能電路,,其原理框圖如圖2所示,。

原理框圖


       AN2131Q具有24個(gè)I/O引腳,16 b地址總線和8 b數(shù)據(jù)總線,,可以進(jìn)行外部存貯器的擴(kuò)展,。

       圖2中的微處理器是一個(gè)具有快速執(zhí)行周期和加強(qiáng)特性的8051核,其性能是標(biāo)準(zhǔn)8051的5倍,,指令系統(tǒng)與標(biāo)準(zhǔn)的8051兼容,。他使用內(nèi)部RAM存儲(chǔ)固件和數(shù)據(jù),上電后USB主機(jī)通過USB總線將固件和外設(shè)特性描述符下載到RAM中,,然后重新連接,,按照描述符中定義的外設(shè)特性完成重列舉。這使得USB有一個(gè)“軟”解決方案,,即USB外設(shè)的設(shè)計(jì)者可以隨時(shí)設(shè)置和升級(jí)固件,,不受端口數(shù)、緩沖大小,、傳輸速度及傳輸方式的限制,。

       本系統(tǒng)中EZ-USB的外圍電路主要包括EZ-USB芯片和PC機(jī)的接口電路、電源模塊及EZ-USB 供電電路,、E2PROM枚舉電路(I2C總線上連接 E2PROM存儲(chǔ)設(shè)備的PID,,VID),其主要功能是保證EZ-USB芯片的正常工作并實(shí)現(xiàn)和PC機(jī)的通訊,;功能電路是利用他的I/O引腳實(shí)現(xiàn)的,,由于EZ-USB的 I/O是可編程的,通過寄存器設(shè)置PA口的高4位和PB口為輸入,,用來傳輸數(shù)據(jù)緩沖器中的12 b數(shù)據(jù),,利用 C口接收中斷和產(chǎn)生控制信號(hào),。

       EZ-USB為塊傳輸、控制傳輸和中斷傳輸提供了16個(gè)端點(diǎn),,在數(shù)據(jù)采集系統(tǒng)設(shè)計(jì)中使用了塊傳輸方式,,使用終端2-in來傳輸數(shù)據(jù),允許的最大數(shù)據(jù)包為64 B,;終端1-out和終端3-out輸出控制信號(hào),。

       3.2 A/D轉(zhuǎn)換電路

      
系統(tǒng)中A/D轉(zhuǎn)換芯片采用了MAXIM公司的MAX122,該芯片是12 b的高速的A/D轉(zhuǎn)換器,。在完全轉(zhuǎn)換模式下,,他的轉(zhuǎn)換時(shí)間可以達(dá)到2.6μs,采樣率為333 kS/s,。MAX122有5種工作模式,,在數(shù)據(jù)采集系統(tǒng)中,采用了模式2即連續(xù)轉(zhuǎn)換模式,。在這種模式下,每次轉(zhuǎn)換需要13~14個(gè)時(shí)鐘脈沖節(jié)拍,,轉(zhuǎn)換可以不間斷地進(jìn)行,,但是需要提供開始轉(zhuǎn)換使能信號(hào),并且要保證使能信號(hào)和時(shí)鐘信號(hào)同步,,讀信號(hào)和片選始終處于有效狀態(tài),。數(shù)據(jù)輸出使能信號(hào)一直有效,在轉(zhuǎn)換結(jié)束時(shí)產(chǎn)生新的數(shù)據(jù),。

       3.3 控制電路及數(shù)據(jù)緩沖電路

       A/D轉(zhuǎn)換器MAX122的采樣率較高,,得到的數(shù)據(jù)不能通過USB總線直接傳送給主機(jī),因此需要在A/D轉(zhuǎn)換器和主機(jī)之間連接數(shù)據(jù)緩沖器,,A/D轉(zhuǎn)換器產(chǎn)生的數(shù)據(jù)先存儲(chǔ)在緩沖器中,,當(dāng)緩沖器數(shù)據(jù)存滿之后,通知主機(jī)取走數(shù)據(jù),。這里的數(shù)據(jù)存儲(chǔ)器使用的是128 k×8的靜態(tài)RAM,,使用2片并接將數(shù)據(jù)線擴(kuò)展成16 b。

    &n 控制電路是整個(gè)系統(tǒng)的核心,,系統(tǒng)中采用一片Altera公司的EPM7128設(shè)計(jì)實(shí)現(xiàn)控制電路,,該器件具有在線調(diào)試的功能,因此給設(shè)計(jì)帶來了很大的方便,??刂齐娐返脑砜驁D如圖3所示。

 

控制電路的原理框圖


       控制電路主要由以下部分組成:邏輯控制電路,、時(shí)鐘電路,、三態(tài)緩沖電路,、時(shí)序邏輯控制電路和地址發(fā)生器。邏輯控制電路接收USB控制器發(fā)出的控制信號(hào),,產(chǎn)生三態(tài)緩沖電路和時(shí)鐘電路的控制信號(hào),;三態(tài)緩沖電路控制數(shù)據(jù)傳輸方向,是由MAX122傳輸?shù)絉AM,,還是由RAM傳輸?shù)経SB控制器,;時(shí)鐘電路用 來產(chǎn)生MAX122的時(shí)鐘信號(hào)CLKIN和轉(zhuǎn)換開始信號(hào)CONVST,以及地址發(fā)生器的時(shí)鐘信號(hào),;時(shí)序邏輯電路調(diào)整相關(guān)信號(hào)之間的同步,,保證電路的時(shí)序正確;地址21發(fā)生器由計(jì)數(shù)器來實(shí)現(xiàn),,提供RAM的讀寫地址信號(hào),。

       系統(tǒng)的工作過程如下:控制電路接收到開始采集信號(hào)時(shí),控制三態(tài)緩沖電路的數(shù)據(jù)傳輸方向?yàn)锳/D轉(zhuǎn)換器轉(zhuǎn)換的數(shù)據(jù)存入SRAM中,,并且使時(shí)鐘電路產(chǎn)生A/D轉(zhuǎn)換器的轉(zhuǎn)換開始信號(hào)CONVST,、時(shí)鐘CLKIN 信號(hào)和地址發(fā)生器的時(shí)鐘信號(hào)及控制信號(hào)。CONVST和CLKIN信號(hào)還必須通過時(shí)序邏輯控制電路調(diào)整使2個(gè)信號(hào)同步,,CONVST信號(hào)在下一個(gè)時(shí)鐘信號(hào)(CLKIN)上升沿來到之前保持低電平至少50 ns,,確保轉(zhuǎn)換時(shí)間為13個(gè)時(shí)鐘周期。并且地址發(fā)生器的時(shí)鐘信號(hào)也要和CONVST信號(hào)同步,,使A/D轉(zhuǎn)換器產(chǎn)生的數(shù)據(jù)能存入正確的地址中,。

      控制電路接收到讀數(shù)據(jù)的信號(hào)時(shí),便產(chǎn)生控制信號(hào),,使三態(tài)數(shù)據(jù)緩沖器的數(shù)據(jù)傳輸方向是從SRAM到USB控制器,,地址發(fā)生器產(chǎn)生的地址信號(hào)是SRAM的讀地址。當(dāng)?shù)刂钒l(fā)生器的計(jì)數(shù)器計(jì)數(shù)到1FFFFH(128 kb),,即RAM的最后一個(gè)地址時(shí),,計(jì)數(shù)器發(fā)生溢出,產(chǎn)生溢出中斷信號(hào)INT0和INT1到USB控制器的PC口的第2位和第3位(設(shè)置為8051輔助功能位),,當(dāng)USB接收到中斷信號(hào)之后,,在中斷服務(wù)程序中,進(jìn)行相應(yīng)的讀處理,。


       SRAM的讀/寫是相互獨(dú)立的,,由地址發(fā)生器產(chǎn)生地址信號(hào),地址發(fā)生器由計(jì)數(shù)器來實(shí)現(xiàn),。當(dāng)開始采集數(shù)據(jù)時(shí),,對(duì)RAM進(jìn)行寫操作,地址發(fā)生器產(chǎn)生的地址信號(hào)清0,,同時(shí)必須使能RAM的寫使能,,在寫使能低有效時(shí),,數(shù)據(jù)就寫入SRAM。時(shí)鐘信號(hào)和A/D轉(zhuǎn)換器的轉(zhuǎn)換時(shí)鐘相一致,,每產(chǎn)生一個(gè)數(shù)據(jù),,地址自動(dòng)加1。當(dāng)采集結(jié)束時(shí),,主機(jī)發(fā)出命令取出數(shù)據(jù),,對(duì)RAM進(jìn)行讀操作,當(dāng)?shù)谝粋€(gè)讀脈沖到達(dá)時(shí),,地址發(fā)生器產(chǎn)生的地址信號(hào)清0,,時(shí)鐘信號(hào)和USB控制器讀的周期相一致,每讀一個(gè)字節(jié),,地址自動(dòng)加1,。


       4 系統(tǒng)驅(qū)動(dòng)程序設(shè)計(jì)

       USB接口的數(shù)據(jù)采集系統(tǒng)其系統(tǒng)軟件包括3個(gè)方面:USB外設(shè)固件(Firmware)、主機(jī)操作系統(tǒng)上的用戶驅(qū)動(dòng)程序和用戶操作界面的應(yīng)用程序,。

       USB外設(shè)固件框架是由EZ-USB軟件開發(fā)包中提供的,,根據(jù)用戶的需要填寫其中的函數(shù),這些函數(shù)主要包括:
       TD_Init()(用于初始化Firmware的全局狀態(tài)變量),;
       TD_Poll()(用于調(diào)用實(shí)現(xiàn)外設(shè)主要功能的用戶子程序),。

       這2個(gè)函數(shù)是用戶一定要填寫的。

       數(shù)據(jù)采集系統(tǒng)中TD_Init()主要包括PA,,PB和PC的初始化以及其他用到的寄存器的初始化,。

       TD_Poll()主要包括控制信號(hào)和數(shù)據(jù)傳輸?shù)膶?shí)現(xiàn),。初始化時(shí),,必須按照一定的順序?qū)拇嫫鬟M(jìn)行操作。

       另外,,還必須注意INT0和INT1中斷響應(yīng)程序的處理,。

       EZ-USB的用戶驅(qū)動(dòng)程序包括下載Fireware的驅(qū)動(dòng)程序和功能驅(qū)動(dòng)程序,前者稱為ezloader,,后者稱為通用驅(qū)動(dòng)程序GPD,。用戶應(yīng)用程序的開發(fā)就是基于通用驅(qū)動(dòng)程序GPD的接口進(jìn)行的。用戶操作界面的應(yīng)用程序使用VC++6

 

.0來實(shí)現(xiàn),,在應(yīng)用程序中對(duì)EZ-USB硬件進(jìn)行讀寫調(diào)用CreatFile,,CloseFile,ReadFile,,WriteFile,,IOControl等對(duì)設(shè)備直接操作的函數(shù)。

       5 結(jié) 語(yǔ)

       本文系統(tǒng)介紹了基于USB接口的快速12 b數(shù)據(jù)采集系統(tǒng),,完成了軟硬件的設(shè)計(jì)工作,。由于采用了USB接口,,使數(shù)據(jù)采集卡可以即插即用,彌補(bǔ)了傳統(tǒng)采集板卡插拔困難的不足,,目前該系統(tǒng)工作穩(wěn)定,,采樣的精度和數(shù)據(jù)傳輸?shù)乃俣榷歼_(dá)到了預(yù)期的目的,已經(jīng)用于測(cè)試測(cè)控系統(tǒng)中,,效果很好,。

 
參考文獻(xiàn)
[1]Compaq,Intel,,Microsoft,,NEC,Universal Serial Bus  Specification,,Revision 1.1 Sep 23,, 1998.
[2]Cypress EZ-USB Technical Reference Manual Version 1.9,May 2000.
[3]Chris Cant.WDM設(shè)備驅(qū)動(dòng)程序開發(fā)指南 [M].北京:機(jī)械工業(yè)出版社,,2000.
[4]顏榮江.EZ-USB2100系列單片機(jī)原理,、編程及應(yīng)用[M].北京:北京航空航天大學(xué)出版社,2002.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載,。