基于USB 2.0的同步数据采集系统的设计
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项,将固件载入到控制芯片中。
- 利用FPGA实现外设通信接口之: 典型实例-USB 2.0接口的设计与实现(06-05)
- 利用FPGA实现外设通信接口之:利用FPGA实现USB 2.0通信接口(06-05)
- 基于总线的嵌入式高速图像通信系统设计(12-21)
- 基于USB 2.0数据采集系统的程序设计(12-21)
- USB2.0接口全接触(12-14)
- 如何轻松地将USB 2.0变为USB Type-C(12-13)