摘要:本文介紹了以高性能的USB2.0芯片CY7C68013為核心的EZ-USB FX2微處理器,以及以MAX1198為核心的A/D采樣芯片構成的高速數據采集和傳輸系統,論述了系統硬件的結構,給出了應用程序流程圖和實現方案。
關鍵詞:EZ-USB FX2;CY7C68013;MAX1198;USB2.0;信號傳輸

引言
UWB(ultra wideband)雷達在探測隱身目標,人體皮下組織,目標識別、目標精細成像等方面都具有優良的性能。通過UWB雷達零中頻信號實時采集和傳輸系統,獲取的數據量很大,傳輸速度要求高,因此,對于傳輸線路的帶寬以及系統的硬件資源提出了較高的要求。本文探討了以高性能的CY7C68013芯片為核心的EZ-USBFX2微處理器,以及以MAX1198為核心的A/D采樣卡實現高速數據的采集和傳輸系統的設計和應用。
系統硬件電路
系統硬件電路結構如圖1所示。UWB脈沖雷達信號在進入A/D轉換電路以前,要進行限幅、降壓、濾波和增加輸入阻抗等措施以保護后端的A/D采樣芯片。
A/D轉換電路
經過調理后的信號進入模/數轉換電路,高速A/D芯片選用美國MAXIM公司的MAXl 198。MAXl 198是3.3V、雙通道的8位模數轉換器(ADC),具備全差分寬帶跟蹤/保持(T/H)輸入,驅動2路ADC[32]。同時還具有并行、CMOS兼容的三態輸出。通過單個控制引腳,數字輸出格式可以選擇為二進制補碼或直接偏移二進制碼。
在信號采集系統設計中,MAX1198的模擬信號輸入采用了差分輸入驅動方式。MAX1198的模擬信號差分輸入方式同時使用1NA+和1NA一,1NB+和1NB一引腳。MAX1198提供的三種參考模式中選擇了內部參考模式。
系統主控電路
主控電路采用集成了USB2.0收發器的微處理器EZ-USB FX2。該處理器是基于USB2.0總線控制器,包含標準的MCS51外設模塊和USB模塊,具有加強的8051內核性能、集成度高、方便靈活的軟配置以及便捷的軟件開發工具等主要特性。
在主控電路設計中,使用CPLD控制ADC以及FIFO的時序、控制ADC的啟動與停止和查詢ADC的狀態等。CY7C68013控制MAX1198進行間隔采樣,然后把結果傳送到FIFO中,當采集到一定量的數據后,CY7C68013將數據打包通過USB總線傳到PC,由高級應用程序進行數據處理。上電時805l程序從內部RAM中開始運行,從外部EEPROM中加載程序。USB啟動后,內部邏輯會檢查連接到I2c總線上的EEROM中的第一個字節(OxCO或0 xc 2)。如果是0 x C O,就會使用EEPROM中的VID/PID/DID來替代內部存儲值;如果是OxC2,內部邏輯就會把EEPROM中的內容裝入到內部RAM中;如果沒有檢查到EEPROM,FX2就會使用內部存儲的描述符來枚舉。FX2缺省的VID/PID/DID是0x0484/0x8613/Oxxxyy。
接口電路
MAX1198與CY7C68013的接口設計通過一個外接FIFO存儲器來實現與CY7C680 1 3的連接以保持數據采集的連續性,FIFO主要起著高速數據緩沖的作用。這些端點FIFO系統提供了通用時序信號,握手信號(滿、空、可編程),讀寫選通,輸出使能等。另外其內部還提供了一個用于控制FIFO存儲器的通用可編程接口( GPIF,Ge neral Programme Interface),在FX2連接到不包含標準FIFO接口的外部邏輯單元時,可以用作一個內部主機。
系統應用程序設計
系統應用程序主要功能有:開啟或關閉USB設備、檢測USB設備、設置A/D狀態、啟動數據采集、顯示并保存采集的數據、測試速度等。應用程序主框圖如圖2所示:
應用程序設計由動態鏈接庫DLL(Dynamic Link Libraries)和客戶端程序組成。
1動態鏈接庫DLL(Dynamm’LinkLibraries)
負責與內核態的USB功能驅動程序通信并接收應用程序的各種操作請求。動
態鏈接庫中定義有兩種函數:導出函數(Export function)和內部函數fIntemal function),導出函數可以被其他模塊調用,內部函數只能在DLL內部使用。我們在用c++定制DLL文件時,需要編寫的就是包含導出函數表的模塊定義文件[.DEF]和實現導出函數功能的c++文件。
定義文件d11.def源代碼如下所示:
LIBRARY“dllu”//DLL庫的名稱為dllu.1ib,
DESCRIPTION’my d11’//IDLL庫的描述為“my dll”
EXPORTS//定義導出函數
opendevice//打開設備函數
closedevice//關閉設備函數
ReadLocation//從設備讀取數據
WriteLocation//向設備寫入數據
test //速度測試函數
客戶端程序
負責對所采集的數據進行實時顯示。包括:
(1)客戶端軟件與USB設備連接
客戶端軟件與USB設備的連接實際上是與WDM設備驅動程序的連接。在客戶軟件中通過調用CreateFile()函數可建立客戶軟件與WDM設備驅動程序的連接。CreateFile()函數屬于windows應用程序接口(API,Application Programming Interface),當客戶軟件調用CreateFile()函數時,操作系統將按照一定的路徑查找并加載所需的動態鏈接庫,實現與設備驅動程序的連接成功調用,隨后CreateFil()函數就會返回代表其所連接設備的設備句柄,通過所得到設備句柄可以實現對設備的控制。
(2)I/O控制函數
DeviceloControl()函數可以在客戶軟件程序中實現設備的I/O控制,驅動程序根據I/O控制命令來決定該如何獲取應用程序的緩沖器地址。I/O控制命令中的數據訪問方式的定義有M E T H 0 D—B U F F E R E D.M E T H O D—I N—D I R E C T,METHOC一0UT—DIRECT或METHOD_NEITHER:
DeviceloControl()函數主體如下:
BOOL DeviceloControl (HANDLEhDevice, //設備句柄
DWORD dwloControlCode, //NO控制代碼IOCTL
LPVOID lpInBufer,//緩沖區
DWORD nlnBuferSize,//緩沖區大小
LPVOID IpOutBufer,//緩沖區
DWORD nOutBuferSize,//緩沖區大小
LPDWORD JpB)rtesRetumed.
LPOVERLAPPED IpOverlapped);
(3)塊輸入輸出函數
CreateEvent()可以控制設備自動從它的塊輸入端點返回,并從它的塊輸出端點接收任意字節。
CCyUSBDevice*USBDevice=newCCyUSBDevice(Handle);
OVERLAPPED outOvLap,inOvLap;
O u t 0 V L a p.h E v e n t
=CreateEvent(NULL,1,1,“CYUSB—0UT”);//塊輸出

i n 0 v L a p.h E v e n t
=CreateEvent(NULL,1,1,“CYUSB_IN”);//塊輸入
char inBuf[l28];
ZeroMemory(inBuf,128);
char buffer[128];
LONG length=128:
(4)客戶端程序初始化
BOOL CWzylApp::InitInstance()
{
XferThread=NULL;
USBDevice--new CCyUSBDevice0;
AfxEnableControlContaine();
//初始化定義字段
#ifdef—AFXDLL
Enable3dControls(); //使用MFC時在一個共享的DLL中調用該控制函數
#else
Enable3dControlsStatic();//連接到靜態MFC時調用該函數
#endif
}
(5)USB數據傳輸
USB進行數據傳輸時,采用塊傳輸模式,輸入管道為管道0,讀取的數據先
保存到緩沖區再顯示在PC機上。
for(i-O;i<16Ii++)
btc.pipeNum=0;//設置輸入管道為管道0
bResult=DeviceloControl(hDevice,//引用所獲得的設備句柄
IOCTL—EZUSB BULK READ,//定義傳輸方式為塊傳輸方式
btc,
sizeof(BULK TRANSFERCONTROL),
mBufer,//讀取的數據段保存到mBufer由
64,//每段數據長度為64字節
結語
本文提出了一種基于EZ-USB FX2微處理器和MAXl 198 A/D采樣芯片的數據采集系統設計方案,經過實驗測定,在塊傳輸方式下實現了最高48MHz的數據采樣速率,滿足了系統設計的基本要求。C51語言結合CPLD的軟配置方案便于系統軟件的升級和維護。與微機接口部分設計嚴格遵守usb2.0協議,具有一定的通用性,對于一般基于usb的高速數據傳輸系統的設計具有一定的應用參考價值。
參考文獻:
1.Microsoft Coration.Windows 2000 Driver Development Kit Documentation[EB/oL].2 0 0 0.O 6.2 8 h ct D://www.microsoft.com,ddk。
2.EZ-USB Series 2200 TechnicalReference Manual,http://www.cypress.com.
3.Max1198 datasheet.http://ITlsxim.com,Rev0,2002,4.
4.許永和,‘USB外圍設備設計與應用,’北京:北京航空航天大學出版社.2002.