(1)USB设备的驱动程序模型必须是WDM驱动程序,这说明驱动程序中必须有AddDevice这个成员函数,而且function.h文件中必须有下列定义:
#define DRIVER_FUNCTION_ADD_DEVICE
#define DRIVER_FUNCTION_PNP
#define DRIVER_FUNCTION_POWER
(2)USB设备是即插即用设备,因此在驱动程序中要声明以下的类的成员函数。
KPnPDevice,KUSBLowerDevice,KUSBInterface
在驱动程序结束处还要声明一个数据类型:KUSBPipe
(3)在设备对象类中,必须重载OnStartDevice和OnStopDevice函数。
(4)在设备类构造体中,首先调用类KUSBLowerDevice中的成员函数来初始化其实例,然后调用类KUSBInterface中的成员函数来初始化其实例,最后再调用类KUSBPipe中的成员函数来初始化其例程。
(5)在成员函数OnStartDevice中,调用函数。
KUSBLowerDevice::ActivateConfiguration配置设备,这个函数把类KUSBPipe和KUSBInterface对象联系在一起,以及USB管道和它的接口链接起来。
(6)在成员函数OnStopDevice中,调用KUSBLowerDevice::DeActivateConfiguration。
应用程序与驱动程序完成USB通信的结构图如图4所示。
图4 应用程序与驱动程序完成USB通信的结构
4.3 用户应用程序设计
使用VC6.0作为应用程序的开发环境。由于通用驱动程序GPD即ezusb.sys提供了基本USB设备请求和数据传输的用户模式接口,用户模式应用程序通过Win32函数DeviceIo Control0给设备驱动器发送请求。Ezusb.sys提供了基本设备请求、批量读写、同步读写等一系列IOCTL函数。通过调用这些函数,可以打开设备句柄、进行读写操作、关闭设备句柄,从而对USB设备进行相应操作。同时应用程序还需对接收的图像数据进行整合、处理,实现图像显示以及保存功能。
5 结束语
本文的创新点是充分发挥了CY7C68013的优势,利用FX2的内部可编程状态机GPIF实现了与FPGA的连接,系统升级方便。待系统的硬件和软件逐步完善以后,再实现对实时的视频信号采集与传输,并将进一步把DSP引入该系统,利用DSP在数字信号处理方面的优势(一般
计算机完成一次乘累加运算需要11个机器周期,而DSP完成同样的运算只需要1个机器周期),在PC外部对采集的数据进行预处理,然后再通过USB总线送入主机进一步处理,DSP与USB2.0技术的结合将大大改善大容量数据传输的速度瓶颈
问题,在图像和视频传输等数据量较大且对实时性要求较高的领域必将有广阔的应用前景。随着USB口的进一步普及和计算机的发展,本文设计的这种USB图像采集系统必将得到更加广泛的应用。
参考文献
[1] 李洪伟,袁斯华编著. 基于Quartus II的FPGA/CPLD设计. 北京:电子工业出版社 2006
[2] 刘皖,何道君,谭明编著. FPGA设计与应用. 北京:清华大学出版社 2006
[3] 萧世文编著. USB2.0硬件设计. 北京:清华大学出版社. 2002
[4] 张惠娟,周利华,翟鸿鸣编著. Windows环境下的设备驱动程序设计. 西安:西安电子科技大学出版社 2002
基金项目:图的染色理论研究 基金项目批准号:10771091
收稿日期:4月15日 修改日期:4月22日
作者简介:张莉:(1982-)女,籍贯:甘肃,在读研究生,研究方向:计算机测量与控制;李敬文:(1965-)男,籍贯:辽宁,
请下载论文,论文或程序为doc或rar格式,只上传部分目录查看,如果需要此论文或程序,请点击-下载论文,下载需要资料或是论文。