CCD信号采集系统的USB接口设计
(1)Windows DDK(Device Driver Kits),DDK基于汇编语言的编程方式和内核模式的调用,对没有深厚的操作系统原理和编程水平的人员来说,任务相当艰巨。
(2)NuMega公司的Driverstudio工具开发包,其中的DriverWorks实际上实现了对DDK类的封装,可以提供给用户驱动程序的开发框架,只需用户在相应的代码段中加入自己系统的控制代码即可,不必了解内核机制,大大加速了USB外设的开发速度。本系统就是使用DriverWorks来开发USB设备驱动程序的。生成的应用接口函数在VC中调用,大大降低了主机软件的难度。
3.3 用户应用程序设计
应用程序实现的功能有:启动/关闭USB设备,设置USB数据传输管道/端口,采集数据,显示数据等。这里,采用VisualC++6.0作为程序的开发环境,并且充分运用了多线程的编程思想。从而实现同时进行数据采集与实时显示。
为了实现与驱动程序的通信,应用程序首先创建一个事件和一个线程,再将事件句柄传递给WDM,用这一线程来等待WDM发送的事件消息,接收到事件消息后,就读取驱动程序的数据,显示数据。
在Windows中,Win32应用程序调用的APl函数有5个;CreateFile(),ReadFile(),WriteFi|e(),DeviceloControl()和CloseHandle()。
应用程序为打开一个WDM设备驱动程序,使用CreateFile()函数。他的第一个参数是一个符号链接名。如果用DriverWorks创建一个WDM驱动程序,通常会用类KUnitizedName生成一个设备符号链接名。这名字的后面有一个数字,一般是一个o。例如,若符号链接名为USBDevice,则传递给CreateFile()的是\\\\.\\USBDevice0。

一旦应用程序获得设备的有效句柄,他就能够调用Win32函数,这将产生对应于此设备对象的相应IRP,发送给驱动程序,完成相应功能。这种关系如表1所示。
本文引用地址:https://www.eepw.com.cn/article/150883.htm
![]() |
4 结 语
本采集系统利用USB技术实现与计算机通信,有众多的优点:
①安装方便,支持即插即用。
②供电方便,可直接由主机通过USB接口提供5V的电压。
⑧性价比高,远优于并行口和串行口的CCD图像采集系统。
评论