无忧论文网

·英国论文·澳大利亚·加拿大·美国·新西兰·爱尔兰·荷兰·瑞典·挪威·芬兰·法国·南非·东欧·泰国·新加坡·丹麦·日本·比利时 ·论文百科·公文网

无忧论文网

登陆注册代写电话 1379547842513795489978 发表电话 15221741752 论文购物车

论文搜索 热门搜索:论文代写 代写硕士论文 代写论文 英语论文 工商管理 英语经济 社会经济

USB驱动简介 文献翻译(英语)

背景:

日期:2008-6-16作者:51lunwen编辑:点击次数:15
销售价格:50元论文编号:lw200806161140157836论文字数:7341 
论文属性:文献翻译论文地区:中国论文语种:中文 
说明:支付后,我们将在24小时内发到您的邮箱,请支付后通知我们发送论文,谢谢。

收藏:del.icio.us google书签 雅虎搜藏 百度搜藏 新浪vivi 和讯网摘poco网摘天极网摘qq书签饭否mister-wong365网摘LiveDiggDiglog

关键词:USB驱动简介 文献翻译 中国论文 文献翻译

USB相关术语
USB
 USB,全称通用串行总线,是一种双向的、同步的、可热拔插的串行接口,它可以将诸如游戏控制器,串行/并行端口,以及输入输出设备等周边设备添加到一条单一总线上面。
USB 类
 在WDM(Windows驱动模型)模式下的一种滤波器类(the class of filters),它可以为USB提供总线接口和总线枚举器。
USB请求块(URB)
 USB请求块;客户端通过在I/O请求包(IRP)中包含一个指向URB的指针来发送USB请求块(URB);URB中有一个函数专门用来标识特殊请求。
用户态模式(User Mode)
 对于Windows和Windows NT/Windows2000操作系统,用户态模式(User Mode)是指非特权处理机运行模式,在用户态模式下,可以运行应用程序代码,以及Windows NT/2000下的受保护子系统代码。
用户态模式驱动程序(User-mode drivers)
 基于Win32的多媒体驱动程序,以及为基于MS-DOS的专一应用型设备相关应用软件开发的虚拟驱动程序(VDD-Virtual Device Driver);要获得更多信息,参见Windows2000 DDK的帮助文档中的多媒体驱动程序和虚拟DOS驱动程序。
USB驱动简介
 内核模式下的USB总线静态映象支持一个单独的控制传输端点,同时还支持多个中断传输端点,块输入以及块输出传输端点。控制传输端点和中断传输端点需要调用I/O控制代码和DeviceIoControl函数来实现热拔插功能;块传输端点通过调用函数ReadFile和WrITeFile来实现热拔插功能。
 在调用函数DeviceIoControl、ReadFile、WriteFile之前,必须先调用CreateFile函数来获得一个设备句柄。对于那种每次只能支持至多一种传输端点类型(控制传输、中断传输、块输入、块输出)的设备,一个单独的对函数CreateFile的调用将会打开多个传输管道(Pipe),每一个管道分别对应一个端点。
 对于那种支持多个中断传输端点或块传输端点的设备,一个单独的对函数CreateFile的调用同样将会打开多个传输管道(Pipe),只不过每个管道指向的端点个数是每种传输类型所拥有最大数值。如果要使用不同类型的端点,采取如下步骤:
1. 调用DeviceIoControl函数,指定函数IOCTL_GET_PIPE_CONFIGURATION中的一段I/O控制代码,用来确定一个端口的端点索引号(这些索引号指向函数USBSCAN_PIPE_INFORMATION返回的结构数组)。注意:这里的索引号不是在通用串行总线规格说明书中描述的端点号码。
2. 调用CreateFile时,在IStiDeviceControl::GetMyDevicePortName返回的端口名称前面添加一个反斜线(\)和端点的索引号。
例如,假设有一个设备(端口名称叫做:usbscan0),每种传输类型的两
个端点(分别对于中断传输、块输入、块输出),那么它的端点索引号将是:

索引号 类型 端点#
0 中断 0x01
1 块输入 0x82
2 块输入 0x83
3 块输出 0x04
4 块输出 0x05
5 中断 0x06

如果端口名称叫做“usbscan0”,当调用CreateFile时,函数打开的传输管道所指向的端点将会分别拥有索引号2,4,5,再加上控制传输的端点。
如果端口名称叫做“usbscan0\1”,当调用CreateFile时,函数打开的传输管道所指向的端点将会分别拥有索引号1,4,5,再加上控制传输的端点。
 还是对于这个设备,如果要使用中断传输的端点0,块输入传输的端点1,块输出传输的端点3,就必须调用CreateFile函数三次,并且指定端口名称为: "usbscan0\0", "usbscan0\1",和 "usbscan0\3"。这将会产生3个设备句柄。在后来的调用中,无论是调用DeviceIoControl,还是WriteFile,ReadFile,都必须保证相关设备句柄得到特别指定,这些设备句柄都被所需要的管道所伴随。
 因为只支持一个控制传输端点,所以任何时候指定使用控制传输管道的I/O控制代码时,都能够无误地使驱动程序使用合适的端点,所以不需要考虑是哪一个端点被指定给了CreateFile函数。
 要查看对于所有I/O控制代码的详细描述,参见STI文档中的“USB静态映象I/O控制代码”。
 内核模式下的驱动不应用信息打包技术或者消息协。读操作不要求任何形式的包队列,但如果将读请求排列成信息包的最大边界值,将会使执行效率最高。可以通过调用I/O控制代码中的IOCTL_GET_CHANNEL_ALIGN_RQST I/O函数获得信息包的最大边界值。
第1章 支持USB设备
 Windows驱动模型(Windows® Driver Model -WDM)可支持通用串行总线设备(USB Device)。这一章介绍了如何在WDM平台上支持一个USB设备的基本知识,这同时也对USB做了一个概要介绍。编写USB驱动的程序员需要参考USB规格说明书来获得关于USB内部工作原理的详细描述。
1.1 USB驱动堆栈
 集线器驱动(usbhub.sys),为系统上每一个集线器提供设备驱动;总线驱动(usbd.sys),处理所有与USB的硬件独立性相关的事务;主控制器驱动,处理系统和USB总线之间的所有体现平台特色细节的接口。如果是一个特殊的设备,则由USB客户驱动支持。
 客户驱动通过URB向它所支持的设备发出请求,URB(USB Request Block)叫做USB请求块,是一种可变长数据结构。每个URB提交给USB总线驱动进行处理的细节如下,沿着驱动堆栈向下发送一个IRP(I/O Request PacketI/O请求包),IRP的名称是IRP_MJ_INTERNAL_DEVICE_CONTROL,与IRP一起的还有一段I/O控制代码,名称是IOCTL_INTERNAL_USB_SUBMIT_URB。要获得更多细节请参见IOCTL_INTERNAL_USB_SUBMIT_URB。

 

论文由无忧论文网www.51lunwen.com整理提供

  
支付后,我们将在24小时内发到您的邮箱,请支付后通知我们发送论文,谢谢。
houqinzhichi@qq.com QQ:951300497 购买论文,汇款确认信邮箱。

1234567

会员登录

邮件:

密码:

会员老师编辑帮助

本类导航

搜索-论文代写 论文发表

我要分享到: 百度搜藏 QQ空间 新浪微博 腾讯微博 人人网