2.3 软件设计
软件设计主要包括3方面工作:USB驱动程序设计、动态链接库设计以及应用处理软件设计。
2.3.1 USB驱动程序设计
EZ-USB提供的FPD(通用设备驱动程序)是一个通用的设备驱动程序。利用Microsoft WDM DDK和Visiual C++5.0以上版本就可以修改和编译驱动程序,生成文件ezusb.sys。具体操作如下:①修改驱动程序的PID。在工程里EzUsbDevice.cpp文件中修改PID.VID延用0x0547不变,PID自行设定。②利用hex2c.exe将USB固件Intel HEX记录格式的代码文件转换为C文件,打开该C文件,用其中的firmware[]数组代替在工程里zUsbFirmware.cpp文件中提供的数组。③编译生成ezusb.sys文件并编写相应的INF文件。
2.3.2 动态链接库设计
动态链接库主要是通过I/O控制调用来访问EZ-USBGPD。通过调用CreateFile()来取得访问设备驱动程序的句柄,然后使用DeviceIoControl()提交不同I/O控制码,从而完成USB的控制和输入/输出操作。
2.3.3 应用处理软件设计
应用软件通过访问动态链接库(DLL)获取采集谱线数据,其主要功能有显示、设置积分时间、定格谱线、保存、捕捉、局部放大、添加谱线。
3 测试结果
采用通用CCD采集系统分别对3款CCD进行驱动和采集。这3种CCD的参数如表2所示。使用应用软件EMSpectro采集上述CCD谱线,采集效果如图4所示。
4 结束语
采用该系统对3种不同型号CCD成功驱动并采集,测试结果达到了预期的效果。系统体积小、功耗低、兼容性好、可扩展性高。该系统已成功应用于实验室开发CCD相关项目中。