USB驱动编程培训upload_第1页
USB驱动编程培训upload_第2页
USB驱动编程培训upload_第3页
USB驱动编程培训upload_第4页
USB驱动编程培训upload_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、USB驱动编程2022/10/131简介 USB编码以及及总线数数据结构构USB数据流模模型USB的PNP管理USB的电源管管理USB数据包与与应用程程序2020-02-112USB编码以及及总线数数据结构构USB编码USB总线数据据结构包传输事务务帧结构2020-02-113USB编码USB接口针脚脚结构:同步时钟钟+数据:采用了NRZI(NonReturntoZeroInvert)反向非归归零编码码;既能保证证数据传传送的完完整,也也不需要要独立的的时钟信信号2020-02-114包(Package)包的格式式:令牌牌包,数数据包,握手包包2020-02-115用7个0和1个1作为同步步序

2、列USB传输事务务(Transaction)2020-02-116每个传输输事务由由三个包包组成。帧结构(Frame)每个帧内内数据由由传输事事务组合合组成2020-02-117USB总线数据据结构由于有许许多设备备都接到到了USB上,因此此每1ms产生的传传输帧是是混合的的。其中中中断传输输(Interrupt)和同步传输输(Isochronous)对时间要要求高,因此占占用了约约90的总带带宽,控制传输输(Control)占用了约约10的带宽宽,而批批量传输输(Bulk)则使用剩剩下的可可用带宽宽2020-02-118USB数据流模模型USB协议简介介USB外设与总总线数据流模模型模型整体

3、体框架参与通信信抽象对对象实际数据据流向驱动程序序与系统统内核之之间的关关系USB驱动例程程中的一一些回调调接口2020-02-119USB协议简介介USB协议:USB采用轮询询的广播播机制传传输数据据,即“令牌牌包,数数据包,握手包包”;根据包标标识符PID字段,用用于识别别数据包包类型;字段-包-传输事务务-帧;不同传输输模式是是通过相相应的传传输事务务序列下下实现的的。2020-02-1110USB外设与总总线2020-02-1111PC机上USB接口设备备的连接接拓扑结结构数据流模模型USB必须分层层理解:用户应用用程序;IO管理器层层;驱动程序序;硬件抽象象层(HAL);硬件外设设2

4、020-02-1112模型整体体框架客户软件件:对设备功功能进行行操作软软件,它它是针对对 物理理设备功功能开发发的。USB系统:它包括括操作系系统对USB支持,USB控制器总总线驱动动,既占占硬件也也占软件件,好比比一个翻翻译。USB设备驱动动:客户端端软件与与USB系统的之之间的接接口。USB控制器将IRP译码成USB协议数据据传输到到USB总线上;2020-02-1113参与通信信的抽象象对象通道(pipe):就是主主机与设设备之间间传输的的数据的的模型共共有两种种类型的的管道:无格式的的流管道道(StreamPipe)和有格式的的信息管管道(Message Pipe)2020-02-1

5、114参与通信信的抽象象对象逻辑设备备(device):驱动程序序对应硬硬件实际际功能暴暴露给操操作系统统内核接接口的抽抽象对象象;每个个设备都都有一个个默认的的控制端端点。配置(Configuration):用于设置置一些结结构来设设定设备备功能接接口。接口(Interface):逻辑设备备中功能能相近相相同的一一些端点点的集合合。端点(EndPonit):位于USB设备或主主机上的的一个数数据缓冲冲区,用用来存放放和发送送USB的各种数数据,每每一个端端点都有有惟一的的确定地地址,有有不同的的传输特特性(如如输入端端点、输输出端点点、配置置端点、批量传传输端点点)2020-02-1115实

6、际数据据流如右图所所示:客户软件件通过USB设备驱动动(USBD)发送IRQ请求请求求传送数数据;主机控制制器驱动动(HCD)将接收IRQ请求解析析成USB传输和传传输事务务。主机控制制器将这这些USB传输和传传输事务务打包成成USB协议数据据包通过过USB总线传输输给USB设备交互互2020-02-1116驱动程序序与操作作系统之之间的关关系USB总线的设设备也属属于即插插即用设设备,由由上一小小节可知知,USB驱动程序序主要还还是通过过IRP包进行数数据交换换,操作作系统主主要就是是通过PNP管理器与与IO管理器与与以及部部分内核核对USB驱动程序序的中断断,内存存资源进进行管理理;202

7、0-02-1117操作系统用户模式IO管理器即插即用PNP管理器操作系统内核USB驱动程序硬件抽象层USB硬件设备USB驱动程序序一些例例程函数数接口在USB驱动程序序入口例例程DriverEntry中,DRVER_OBJECT对象专门门在majorFuction数组预留留以下接接口处理理相对应应的IRP:IRP_MJ_CREATE以文件形形式打开开设备准准备读写写,调用其做做准备;IRP_MJ_CLOSE当前用户户关闭文文件(closeHandle)时,调调用它清清扫系统统;IRP_MJ_PNP处理即插插即用的的操作IRP_MJ_READ处理读文文件操作作(Read File)IRP_MJ_

8、WRITE处理写文文件操作作(WriteFile)IRP_MJ_DEVICE_CONTROL处理来之之硬件对对操作系系统的IO控制码。2020-02-1118IRP_MJ_CREAT以文件形形式打开开设备,检查设设备状态态,是否否正常工工作;取消设备备挂起,打开管管道,并并将此管管道与文文件的变变量相关关联;OpenHandleCount内核对象象计数加加一;这是creafile相关联的的;2020-02-1119检查设备工作状态打开设备管道内核对象计数加一IRP_MJ_READ和IRP_MJ_WRITE初始化初始化URB取得管道建立缓冲区检查MDL设置URB标志位内存交换映像数据构造URB请

9、求单独一个个例程完完成他们们:初始化URB,并判断断通道工工作方式式,并从从文件中中获取管管道信息息。检查IRP的MDL(a memorydescriptor list),根据读写写变量设设置URB标志位。根据MDL开辟内存存,上层层用户模模式数据据映像,构造URB请求;2020-02-1120PNP即插即用用管理器器PNP管理器概概述以及及相关组组件即插即用用IRPPNP管理器在在USB驱动程序序的操作作2020-02-1121PNP管理器概概述什么是PNP管理器呢呢?PNPplugandplay即插即用用设备管管理,其其主要有有以下四四个作用用:操作系统统能检测测新设备备插入,也能检检测得

10、到到设备的的拔出;如果总线线接口允允许,设设备可以以实现热热插拔,并保证证操作系系统正常常工作;设备允许许软件配配置。操作系统统应该知知道哪些些是正确确的驱动动程序,并智能能地加载载。2020-02-1122PNP即插即用用管理器器相关组组件2020-02-1123即插即用管理程序(用户模式)用户模式式内核模式式注册表 IO管理器执行体即插即用用管理程程序电源管理理程序设备wdm驱动程序总线驱动程序硬件抽象层HAL即插即用用IRP即插即用用IRP(IRP_MJ_PNP):由即插即即用管理理器发送送给设备备驱动程程序的;在驱动对对象的主主功能函函数内有有一个回回调派遣遣函数用用于处理理PNP的I

11、RP包;不用的IRP代表不同同的功能能,如下下表所示示:2020-02-11242020-02-1125子功能代码描述IRP_MN_START_DEVICE配置并初始化设备IRP_MN_QUERY_REMOVE_DEVICE设备可以被安全的删除IRP_MN_REMOVE_DEVICE关闭并删除设备IRP_MN_CANCEL_REMOVE_DEVICE忽略以前的QIERY_REMOVEIRP_MN_STOP_DEVICE关闭设备IRP_MN_QUERY_STOP_DEVICE询问设备可以关闭了吗IRP_MN_CANCEL_STOP_DEVICE忽略以前的QUERY_STOPIRP_MN_DEVI

12、CE_RELATIONS给出指定特征的设备列表IRP_MN_QUERY_INTERFACE获得调用函数接口地址IRP_MN_CAPABILITIES取得设备能力IRP_MN_QUERY_RESOURCES取得引导配置IRP_MN_QUERY_RESOURCES_REQUIREMENTS取IO资源需求IRP_MN_QUERY_DEVICE_TEXT获得描述信息或位置串IRP_MN_QUERY_PNP_DEIVCE_STATE获取设备状态IRP_MN_QUERY_BUS_INFORMATION*获取父总线类型IRP_MN_SUPPRISE_REMOVE通知设备意外被删除PNP管理器对对USB总线的

13、管管理2020-02-1126 USB驱动程序序在完成成即插即即拔PNP整过所操操作数据据结构:URP(USBRequst Package)USB请求包,这个数数据结构构也是通通过操作作IRP的内核函函数传送送直总线线驱动层层上。通过操作作URP进行对USB设备热插插拔的枚枚举,配配置和删删除。通过对URP的PNP管理操作作我们可可以得到到来自硬硬件数据据描述,如:设设备描述述符,配配置描述述符,接接口描述述符,端端点描述述符。如图可见见这些数数据的树树状结构构:2020-02-11272020-02-1128USB电源管理理WDM电源管理理模型概概述基本概念念电源状态态和设备备状态关于USB

14、电源管理理策略USB处理电源源管理的的基本IRP规则USB驱动应该该响应的的电源管管理器发发出IRP2020-02-1129WDM电源管理理模型基本概念念:电源管理理器:为为了于减减少系统统不必要要的功耗耗,基于于ACPI(Advanced ConfigurationPowerInterface)规范作为为计算机机全局电电源策略略,操作作系统支支持一些些用户接接口,用用户可以以通过这这些接口口控制最最终的电电源管理理策略。电源管理理是操作作系统通通过处理理驱动程程序来实实现的。支持PNP的驱动必必须支持持电源管管理,支支持电源源管理的的驱动程程序必须须支持PNP,两者是被被集成而而相互依依赖。

15、2020-02-1130电源状态态分以下下六个状状态: 2020-02-1131系统电源状态含义SO(Working)CPU全功率运行S1(Sleeping1)CPU停止,RAM被刷新S2(Sleeping2)CPU不通电,RAM被刷新S3(Sleeping3)CPU不通电,RAM处于低速刷新模式,电源功率输出降低 S4(Hibemate)系统停止,RAM被保存到磁盘S5(Shutdown)系统停止并关闭,需要完全引导以恢复操作设备电源源状态:操作系统统不直接接处理设设备的电电源状态态,而是有驱驱动程序序专门处处理。设设备至少少要支持持D0与D3。2020-02-1132设备电源状态含义D0设

16、备全功率运行D1设备运行于低功耗模式,设备环境可能被保留D2设备运行低功率模式,设环境可能无效D3设备没有电,环境丢失关于USB电源管理理策略USB电源管理理策略:USB处理电源源管理的的基本IRP规则USB驱动应该该响应的的电源管管理器发发出IRP2020-02-1133用户模式式的USB数据读写写与应用用程序用户模式式与驱动动包IRP对应关系系IRP_MJ_CREATE,IRP_MJ_READ,IRP_MJ_WRITE用户模式式应用程程序打开开设备用户模式式应用程程序读取取USB设备2020-02-1134USB设备数据据读写用户模式式下API与驱动程程序的IPR对应关系系:2020-02

17、-1135用户API函数IRP说明CreateFileIRP_MJ_CREATE打开设备ReadFileIRP_MJ_READ从设备获取数据WriteFileIRP_MJ_WRITE向设备发送数据CloseFileIRP_MJ_CLOSE关闭设备DevicControlIRP_MJ_DEVICE_CONTROL控制操作开打设备备首先已知知设备GUID通过调用用SetupDiGetClassDev获得设备备的信息息集;在设备信信息集里里调用SetupDiEnumDeviceInterface识别接口口信息;在接口信信息中调调用SetupDiGetDeviceInterfaceDetail获得设备

18、备路径名名;通过设备备路径CreateFile打开设备备,此时时内核对对应发出出IRP_MJ_CREATE,操作系系统自动动访问对对应驱动动2020-02-1136上层应用用程序读读写数据据读写数据据通过驱驱动对象象的IRP_MJ_READ与IRP_MJ_WRITE功能例程程:使用用户户模式的的readfile与writefileAPI调用驱动动内核对对象;建立内存存映像;通过内存存对齐复复制实现现数据交交互;还是通过过IRP包来获取取数据2020-02-1137总结简要审阅阅所演示示的内容容确定应用用培训的的方法请求有关关培训单单元的反反馈2020-02-1138更多信息息列出其他他培训单单元列出书籍籍、文章章、电子子来源列出咨询询服务、其他来来源2020-02-1139USB处处理电源源管理的的基本IRP规规则其最基本本规则要要遵循以以下几点点:同步操作作必须严严格,PDO只能仅且且有一个个IRP_MN_QUERY_POW

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论