在图画处理、瞬态信号丈量等一些高速、高精度的运用中,需求进行高速数据收集。USB 2.0接口以其高速率等长处渐有替代传统ISA及PCI数据总线的趋势,热插拔特性也使其成为各种PC外设的首选接口。EZ-USB FX2是Cypress公司推出的集成USB 2.0的微处理器,它集成了USB 2.0收发器、SIE(串行接口引擎)、增强的8051微操控器和可编程的外围接口。本文将介绍依据EZ-USB FX2系列CY7C68013($5.4120)芯片的高速数据收集体系的规划,该体系具有限幅维护功用,固件和驱动程序的编写简洁,能够完结对数据的高速收集和传送。
数据收集体系方案规划
数据收集体系的框图如图1所示,硬件电路如图2所示。其间,AD1674($17.8680)是l2位模数转化芯片,选用逐次比较办法作业。CPLD首要用于操控ADC以及FIFO的时序、操控ADC的发动与中止和查询ADC的状况等。FIFO首要起着高速数据缓冲的效果。
图1 数据收集体系框图
图2 体系硬件电路
CY7C68013和AD1674之间经过CPLD衔接,完结相关操控线和数据线的译码。在CY7C68013的操控下,首要对AD1674进行距离采样,然后把成果传送到FIFO中,当收集到一定量的数据后,CY7C68013将数据打包经过USB总线传到PC,由高档运用程序进行数据处理。扩展的 RS232($780.5000)接口能够和外部设备进行通讯。上电时,CY7C68013从外部的E2PROM中经过I2C总线主动装载到内部的RAM中,便于固件的修正和晋级。
数据收集前端的调度电路如图3所示,本规划选用了限幅、降压、滤波和添加输入阻抗的办法来维护后端的转化芯片。
驱动程序和固件规划
USB设备驱动程序依据WDM。WDM型驱动程序是内核程序,与规范的Win32用户态程序不同,选用了分层处理的办法。经过它用户无须直接与硬件打交道,只需经过基层驱动程序供给的接口拜访硬件。因而,USB设备驱动程序不必详细对硬件编程,一切的USB指令、读写操作经过总线驱动程序转给USB设备。可是,USB设备驱动程序有必要界说与外部设备的通讯接口和通讯的数据格式,也有必要界说与运用程序的接口。Cypress公司供给了完好的 CY7C68013驱动程序源码、操控面板程序及固件的结构,这大大加快了用户开发的进展。用户只需稍加修正或无须任何修正即可运用现有驱动程序,软件开发者很多的时刻首要会集在运用程序和固件的开发。依据用户自己的需求,一般只需修正DeviceIoControl例程。本规划首要添加了操控数据传输函数、发动和中止ADC、复位FIFO等。Cypress为CY7C68013供给了开发结构,其间两个程序如下。
FW.C:FW.C中包含了程序结构的MAIN函数,办理整个51内核的运转,由于这部分的功用现已进行了精心区分,一般是不必改动的。
图3 调度电路
PERIPH.C:用户有必要将PERIPH.C实例化,它担任体系周边器材的互联。固件的规划首要针对这个文件,用户有必要依据自己体系的需求,实例化这个文件,以完结所需的功用。在固件程序中,最重要的是TD_init()和TD_poll()这两个函数。以TD_poll()函数为例,在 TD_poll()中首要完结外部FIFO状况的检测和数据的传输,程序主体部分如下。固件调试时,能够运用Cypress供给的EZ-USB control panel。
Void TD_Poll(void)
{
If(GPIFTRIG 0x80) //判别GPIF是否闲暇
{
If(EXTFIFONOTEMPTY ) //判别外部FIFO是否非空
{
If(!(EP24FIFOFLGS 0x01)) //判别FIFO是否不满
{
IF(enum_high_speed)
{
SYNCDELAY;
GPIFTCB1=0x02; //设置处理计数
SYNCDELAY;
GPIFTCB0=0x00;
SYNCDELAY;
}
Else
{
SYNCDELAY;
GPIFTCB1=0x00;
SYNCDELAY;
GPIFTCB0=0x20;
SYNCDELAY;
}
Setup_FLOWSTATE_Read();
SYNCDELAY;
GPIFTRIG=GPIFTRIGRD|GPIF_EP2;
SYNCDELAY;
While(!(GPIFTRIG 0x80))
{;}
SYNCDELAY;
}
}
}
}