關 閉

新聞中心

EEPW首頁 > 工控自動化 > 設計應用 > 基于USB的數(shù)據(jù)采集系統(tǒng)設計及實現(xiàn)

基于USB的數(shù)據(jù)采集系統(tǒng)設計及實現(xiàn)

作者: 時間:2007-06-14 來源:網(wǎng)絡 收藏
 :講述了一種基于的12 b高速與信號分析系統(tǒng)的設計,設計中采用了FPGA(可編程邏輯器件)實現(xiàn)時序邏輯信號的控制,從而整個系統(tǒng)的設計具有很大的靈活性。該系統(tǒng)在Windows 2000環(huán)境下的驅動程序及用戶應用程序采用的是VisualC++語言實現(xiàn)的,而固件代碼則是用C語言實現(xiàn)的。系統(tǒng)具有低成本、高性能的特點,能夠廣泛應用于測控、信號分析等多個領域。
關鍵詞;FPGA;;固件代碼

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

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

  USB接口采用4線電纜,其中2根信號線,1根電源線和1根地線,電源線可以向外設提供最大5 V,500 mA的電流。USB接口有4種傳輸方式:控制傳輸、批量傳輸、終端傳輸和同步傳輸,可以滿足不同傳輸?shù)男枰?BR>
3 USB接口的數(shù)據(jù)采集系統(tǒng)的設計實現(xiàn)
  整個系統(tǒng)主要由4部分組成:USB接口芯片及外圍電路、控制電路、數(shù)據(jù)緩沖電路和A/D轉換電路。USB接口芯片選擇了Cypress公司的EZ-USB 2131Q,該芯片內(nèi)嵌8051控制器,因此整個系統(tǒng)以EZ
-USB控制器為核心,由EZ-USB經(jīng)控制電路實現(xiàn)對A/D轉換電路和數(shù)據(jù)緩沖電路的控制,模擬信號轉換后的數(shù)據(jù)送入數(shù)據(jù)緩沖器,當數(shù)據(jù)緩沖器存滿之后,通知EZ-USB控制器,由主機取出數(shù)據(jù)。整個系統(tǒng)框圖如圖1所示。

  

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

   

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

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

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

  
EZ-USB為塊傳輸、控制傳輸和中斷傳輸提供了16個端點,在數(shù)據(jù)采集中使用了塊傳輸方式,使用終端2-in來傳輸數(shù)據(jù),允許的最大數(shù)據(jù)包為64 B;終端1-out和終端3-out輸出控制信號。

3.2 A/D轉換電路

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

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

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

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

  

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

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

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

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

4 系統(tǒng)驅動程序設計

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

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

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

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

  TD_Poll()主要包括控制信號和數(shù)據(jù)傳輸?shù)膶崿F(xiàn)。初始化時,必須按照一定的順序對寄存器進行操作。

  另外,還必須注意INT0和INT1中斷響應程序的 處理。
  EZ-USB
的用戶驅動程序包括下載Fireware的驅動程序和功能驅動程序,前者稱為ezloader,后者稱為通用驅動程序GPD。

  用戶應用程序的開發(fā)就是基于通用驅動程序GPD的接口進行的。用戶操作界面的應用程序使用VC++6.0來實現(xiàn),在應用程序中對
EZ-USB硬件進行讀寫調(diào)用CreatFile,CloseFile,ReadFile,WriteFile,IOControl等對設備直接操作的函數(shù)。

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

參考文獻

[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設備驅動程序開發(fā)指南 [M].北京:機械工業(yè)出版社,2000.
[4]顏榮江.EZ-USB2100系列單片機原理、編程及應用
[M].北京:北京航空航天大學出版社,2002.



評論


相關推薦

技術專區(qū)

關閉