微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > MCU和DSP > 视频信号采集与图象传输技术的研究----基于USB的图像传输接口设计

视频信号采集与图象传输技术的研究----基于USB的图像传输接口设计

时间:01-25 来源:3721RD 点击:

3.4.2数据采集系统固件程序设计

本程序利用的是查询方式。D12设备端程序使用C51语言编写,其任务是完成设备的管理和数据的交互。设备的管理是指设备和主机的驱动程序互相响应,完成设备的添加、配置、删除等基本操作。数据的交互是指设备和主机之间的数据包的传送。仿真系统是伟福E2000/T,编译软件:E2000W和COMP51V6.传送数据的过程是:单片机向D12发出软连接主机的命令,主机通过D12向单片机索取设备描述符,单片机返回后,主机再通过D12向单片机发出设置USB地址信息。单片机设置D12 USB地址。主机启动USB设备驱动程序,设备驱动程序通过D12向单片机索取设备描述符,单片机返回后,设备驱动程序再索取配置描述符(包括接口、端点描述符)。主机发出配置信息,单片机配置D12端点。完成USB启动过程。

根集线器检查到设备连接后,激活主机USB总线驱动程序,USBD发出一系列的SETUP包。从设备端看到的流程如图4-11所示。

主机的第一个命令要求得到设备描述符,此SETUP包为8个字节数据(80,06,00,01,00,00,40,00),其具体含义请参考USB1.1协议第九章。40表示返回数据长度最大为40H个字节。实际上,只返回一个包,即数组DEV_DESC[]中的前8个字节。用于说明设备的描述符的真实长度和设备的类型。此事件的处理过程如图4-12所示。

接着是设置设备地址处理事件,主机发送一个含有指定地址的数据包(00,05,02,00,00,00,00,00),在主机只有一个USB设备的时候,这个地址一般会是2,最大地址127.USB协议中可以连接127个设备,但是,即使是COMDEX 98的插拔大会,也只做到111个可同时工作而已。设置地址事件处理结束后,设备进入地址状态,主机会在指定地址处访问设备。

主机再次发送得到设备描述符的数据包(80,06,00,01,00,00,12,00),与上次不同的是,要求的数据的长度是实际的数据长度。因为设备每次只能发送8字节,因此它会分三次完成此要求。

接着主机要求得到设备的配置描述符(80,06,00,02,00,00,09,00),包中数据"09"指定设备发送9个字节,这正是设备配置描述符的长度。

接着主机要求得到设备的配置描述符、接口描述符和节点描述符(80,06,00,02,00,00,FF,00),由于不知道设备描述符的真实长度,因此它要求得到256个字节。

主机会再次以描述符的实际长度要求设备重新发送描述符,这里不再赘述。

最后主机发送设置设备配置SETUP包(00,09,01,00,00,00,00,00),设备处理此事件,将允许所有节点进入工作状态[45]。

图4-13为列举成功后,显示的对话框。其中"myfirstusb goodhappy!!"

为描述符。

3. 5 Windows下USB客户驱动程序设计

开发Windows2000驱动程序的必备的工具:C++,Windows Device Developer Key(DDK),此外还要有必要的调试工具,比如:SoftIce,Winbug等。虽然在驱动程序中,大多数C的支持库都不能使用,但它还是必备的工具。

一个USB系统的所有事件都是由主机方发起的。通信建立的前提是主机承认了下端的USB设备,并对它进行配置,然后再根据需要建立通信管道。如果通信中出现错误或是其它问题,也都需要主机的干预。所以,主机客户驱动程序的设计对整个系统的稳定性至关重要。本文设计的系统最终将运行在WINDOWS 2000操作系统上。

3.5.1 WINDOWS设备驱动程序概述

设备驱动程序提供连接到计算机硬件的软件接口,它是操作系统的一个信任部分。用户应用程序以一种规范的方式访问硬件,而不必考虑如何控制硬件。

驱动程序是一个软件,在装入后成为操作系统内核的一部分。它使一个或多个设备可用于用户态程序员,每个设备代表一个物理的或逻辑的硬件。在Windows中,驱动程序总是使设备看起来像一个文件。可以打开设备的一个句柄(handle),然后应用程序可以在设备句柄最后关闭之前向驱动程序发出读写请求。在WINDOWS98和WINDOWS2000(WINDOWS NT)中,设备驱动程序必须根据WINDOWS驱动程序模型(WDM)设计。这个模型包括两个方面:首先,核心模型描述设备驱动程序的标准结构;其次,微软为常见类型的设备提供一系列的总线驱动程序和类驱动程序。

核心WDM模型描述设备驱动程序如何安装和启动,以及如何为用户请求服务和与硬件打交道。WDM设备驱动程序必须适应于即插即用(PnP)系统,允许用户插入可以在软件中配置的设备。

微软提供了一系列的系统驱动程序,它们具有为许多标准类型设备服务所需的所有基本功能。第一种系统驱动程序支持不同类型的总线,如USB、IEEE 1394 (Fire Wire)和音频端口设备。其他的类驱动程序实现标准的Windows功能,如人工输入设备(HID)和内核流功能。最后,静态图象体系结构(STI)提供一个处理静态图象、扫描仪等的框架。

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

网站地图

Top