微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 模拟电路设计 > CCD信号采集系统的USB接口设计

CCD信号采集系统的USB接口设计

时间:03-12 来源:现代电子技术 李虹 常丹华 点击:

要对每个操作系统都要开发一遍了。USB客户驱动程序接收I/O管理器发来的IRP(I/ORequestPacket),构造URB(USBRequest Block)传递给主控制驱动程序接口USBDI。在USBDI的基础上进行编程将大大简化,用户不用关心IRP的类型,而只需要在相应的分发例程中通过构造URB(USBRequestBlock)并将其通过USBDI发送下去就可以实现对USB设备的控制了。

  开发USB设备驱动程序的工具目前广泛应用的主要有2类:

  (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所示。

  4 结 语

  本采集系统利用USB技术实现与计算机通信,有众多的优点:

  ①安装方便,支持即插即用。

  ②供电方便,可直接由主机通过USB接口提供5V的电压。

  ⑧性价比高,远优于并行口和串行口的CCD图像采集系统。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top