首页 > 范文大全 > 正文

基于EZ-USB FX2的数据传输系统研究

开篇:润墨网以专业的文秘视角,为您筛选了一篇基于EZ-USB FX2的数据传输系统研究范文,如需获取更多写作素材,在线客服老师一对一协助。欢迎您的阅读与分享!

摘要:本文介绍了以高性能的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,false,false,“CYUSB―0UT”);//块输出

i n 0 v L a p.h E v e n t

=CreateEvent(NULL,false,false,“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

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.