3 系统软件设计
系统软件设计包括:
固件程序(Firmware)设计 设备固件的主要功能是控制CY7C68013A接收并处理USB驱动程序的请求。如请求设备描述符,请求或设置设备状态,请求或设置设备接口等USB 2.0标准请求;辅助硬件完成设备的重新枚举、端点配置、控制和监测USB的活动,根据PC主机的命令与外围电路进行数据交换等。Cy-press公司为用户提供了一个固件程序框架,是通用性强的模块化程序。在框架的基础上,用户只需要编写Function.c文件即可完成USB功能开发。主要包括:Slave FIFO模式的初始化和用户自定义请求。
驱动程序开发 系统包括两个USB驱动程序:一个驱动专用于下载芯片的固件程序ccdloader.sys,另一个通用驱动程序ccdusb.sys用来实现USB设备与应用程序的通信和控制。芯片固件程序在主机上,当系统上电时,前者将其下载到芯片的RAM中,并由增强型8051微处理器执行。当固件下载完成后,模拟一次断开重新连接,此时下载的固件响应USB枚举,并加载USB设备通用驱动程序。USB的驱动程序是WDM类型,可以使用Windows DDK,WinDriver,DriverStudio开发。
应用程序开发 它的主要任务是与USB驱动程序通信,控制声光信号采集过程。在此用Visual C++6.0进行程序设计。CyAPI控制函数类为FX2LP系列USB接口芯片提供了十分精细的控制接口,只需在应用程序中加头文件CyAPI.h和库文件CyAPI.lib即可调用相应的控制函数,打开USB设备读取数据并存储到主机硬盘中的CcdData.txt文件。
4 实验数据分析
使用TEKTRONIX公司的示波器,对经过隔直处理后的RL2048P输出信号在各种实验条件下进行了测试和分析。如图2所示,VOUT为像元输出信号,每一个像元输出信号的开始都有一个同步参考信号,后面部分才为有效信号输出,由于CCD输出信号为负极性信号,所以有效信号值相对于参考信号为负。
图5为全暗条件RL2048P的输出,由于光敏面上没有光,只有暗电平信号输出,所以像元的输出有效信号几乎为零。图6为弱光条件RL2048P的输出,有效信号幅值发生了变化。图7为全亮条件RL2048P的输出,有效信号到达了饱和值。RL2048P的实际输出和理论分析一致,工作正常。声光信号通过中间有孔的不透光遮挡板照在CCD上,使用应用软件进行数据采集。从CCD Data.txt数据文件中连续提取8 192个像元点即四帧CCD数据,Matlab软件分析如图8所示。
有光照射的位置对应为高,实测数据和理论值吻合。在其他条件下也做相关实验,结果与理论基本一致。由于篇幅所限,本文不做详细介绍。实验结果表明,系统功能完整,可以实现声光信号的高速采集、传输及储存。
5 结 语
系统采用现场FPGA作为硬件设计核心,使用Veritog语言。进行硬件描述,使系统更灵活,可在线编程,便于扩展和升级。这里的CCD驱动时序采用状态机与分频相结合的新方法,实际测试驱动波形稳定且没有毛刺,CCD输出信号质量高。USB应用于Slave FIFO高速传输模式,满足了高速CCD声光信号采集的要求,具有实时性、高速、稳定、可靠等特点。