l 引 言
通用串行总线(Univeisal Serial Bus,USB)凭借其即插即用、热插拔以及较高的传输速率等优点,成为PC机与外设连接的普遍标准。迄今为止,常用的USB总线标准有1998年发布的USB 1.1版本和2000年发布的USB2.0版本。其中1.1版本支持两种传输速率:1.5 Mb/s和12 Mb/s,主要应用在低速传输要求的场合。而USB2.0[1]版本在1.1版本的基础上扩展了以下特点:
最高480.Mb/s传输速率,比USB 1.1提高了40倍;全面兼容USB 1.1设备;新的HUB结构成倍地提高USB1.1设备的数据流速度。
对于一个基于USB的实时数据采集系统,无论USB芯片还是D/A转换器,都有多种不同的选择方案。考虑到系统的精度、速率等诸元素,笔者在设计时选择了EZ-USB FX2系列中功能较强的CY7C68013A TQFP 128脚封装芯片作为核心控制器,结合模数转化器AD7658,开发了,一套基于USB 2.O的高速同步数据采集系统。
2 CY7C68013A芯片介绍
设计系统中的接口芯片选用Cypress公司的EZ-USB FX2系列中的CY7C68013A[2](128脚),他包括1个8051处理器,1个串行接口引擎(SIE),1个USB收发器,8.5 kB片上RAM,4 kB FIFO存储器和1个通用可编程接口(GPIF)。
|
(1)内部集成了一个增强型的51内核,其指令集与标准的8051兼容,并且在多方面有所改进。例如:最高工作频率可达48 MHz,一个指令周期为4个时钟周期,2个UART接口,3个定时计数器,1个1。C接口引擎等。
(2)提供了一个串行接、口引擎(SIE),负责完成大部分USB 2.0协议的处理工作,从而大大减轻了USB协议处理的工作量,并且提供了4 kB的FIFO保证数据高速传输的需要。和以往的USB传输引擎不同的是,68013的内核部分不直接参与FIFO以及传输工作,传输与控制部分脱离,大大提高了总线传输的速度,这也是本系统的特点之一。
(3)为实现与各种不同外设的互连,芯片中集成了一个GPIF模块,使用户可按照外设的时序进行波形编辑,而不需要复杂的程序描述,就可以保证GPIF与内部FIFO的协调工作,实现芯片与高速外围设备之间的逻辑连接和高速数据传输。这对于开发者来说是相当友好的。笔者就是利用这一特性,实现数据的高速同步采集及传输。
3 同步高速数据采集芯片AD7658
3.1 AD7658 [3]的结构
AD7658是AD公司推出的高速、6通道、低功耗、双极性12位的A/D转换芯片,其内部结构如图2所示,其主要特点是:6个独立的快速ADC模块(允许同时采样和转换6路信号);正确的双极模拟输入;最高的速度:250 KSPS;低功率:5 V的电源以250 KSPS速度运行下,功率是400 mW;串行和并行接口;高速串行接口;兼容SPI/QSPI/DSP接口;节电模式时最大消耗5μA;64LQF、P封装。
3.2 AD7658的控制时序
前面已经提到AD7658可以采用并行接口或者高速的串行接口,在本文中,我们采用并平行接口。在USB2.0同步高速数据采集器中他的控制时序,是利用GPIF实现图3所示的时序控制。
|
其中CONVST 是转换开始启动信号,下降沿触发3路.ADC开始装换;BUSY信号在CONVST信号触发后;变成并保持为高电平状态,直到3路ADC转换完毕,才又回到低电平;CS信号和RD信号分别是芯片使能信号以及读允许信号。两者第一次同为低电平时,读出第一组ADC转换的数据;在第二次为高电平时,读出第二组ADC转换的数据。
4 USB高速数据采集的硬件设计
实际信号经过传感器,转转成电信号,而后进行信号调理,达到AD7658可以输入的信号范围,之后在GPIF模块的控制下,由AD7658对其进行等间隔采样,然后将采样结果通过GPIF 传送到CY7C68013A的内部FIFO中缓存;当采集一定量的数据CY7C68013A自动将数据打包(不需要8051的介入),通过USB总线传输到PC机中进行数据处理。
5 USB高速数据采集软件设计
该系统的软件设计主要包括两部分,一部分是固件设计,另一部分是驱动和应用程序。
5.1 固件设计
固件是运行在CY7C68013A上的程序,本系统采用C51语言来编程设计,其主要功能是控制CY7C68013接收并处理USB驱动程序的请求(如请求设备描述符、请求或设置设备状态,请求或设置设备接口等USB 2.0标准请求)、控制CY7C68013A接收应用程序的控制指令、通过cY7C6801 3A存放数据并实时上传至PC等。
本方案中的固件设计思路是:在Cypress公司自己提供的固件开发软件平台上,结合该固件工程所提供的FW.C,BULK.C,DSCR.A51,FX2.H,FX2REGS.H等文件,运用高级语言C51进行编程。固件程序的载入方式为:使用CY7(268013A特有的软配置功能。将固件程序存储到计算机中,当没备接入USB电缆时,通过Cypress公司提供的开发软件Usb Control Pariel的Download项,将固件载入到控制芯片中。
5.2驱动程序设计
USB需要通用驱动和下载固件驱动两个程序。通用驱动用于完成外设与用户程序的通信,可使用Cypress公司开发包所提供的已经编好的通用驱动程序ezusb.sys,一般不需要重新编写;下载固件驱动则负责在外设连接USB总线后把特定的固件程序下载到CY7C68013A的RAM中使C2PU重启,同时模拟断开与USB总线的连接,以完成对外设的重新设置,使主机能够根据新的设置来安装通用驱动程序,重新列举外设为一个新的USB设备。他可以由Cypress公司已经编好的驱动部分和固件程序由DDK编译后生成。在本设计方案中,采用的就是在配置好的辅助开发环境中修改这个通用驱动程序的方式。
5.3应用程序设计
主机应用程序是主要实现从高速数据采集处理板读取处理后的数据、存储、显示处理结果以及向数据采集处理板发送控制命令。本系统开发使用Windows XP作为开发平台,以VC++6.0为开发工具,设计中考虑到工程要求,主要兼顾了以下功能:采集传输控制功能(连接设备,设定采集参数,启动和停止采集,下载程序,块传输测试的开始、结束、设置、计数编辑、持续时间编辑);描述符的读取功能(设备、配置、接口、端点、字符串的描述符读取);系统功能(数据图形结果,文件数据的生成)。
6 结 语
随着现在实际要求的多样化、复杂化,对数据采集的精度、速度要求也越来越高,USB 2.0已经成为必然的趋势。本系统是一个简单的USB接口设计,通过最简单的连接,达到高速实时数据采集的目的。该系统电路简单、工作稳定、传输速率高,还具有USB设备的体积小,使用方便等特点,可以满足了很多工程中数据采集的要求。
参考文献:
[1]. AD7658 datasheet http://www.dzsc.com/datasheet/AD7658_1131529.html.
[2]. CY7C68013 datasheet http://www.dzsc.com/datasheet/CY7C68013_.html.
[3]. BULK datasheet http://www.dzsc.com/datasheet/BULK_2523104.html.
[4]. A51 datasheet http://www.dzsc.com/datasheet/A51_1823359.html.
上一篇:基于Linux的USB主/从设备之间的三种通信方式
下一篇:基于DDS与USB技术的通信对抗教学演示系统中硬件的设计与实现
推荐阅读最新更新时间:2024-05-02 22:49