您的位置 首页 知识

USB设备驱动开发-USB协议相关(2)

一、USB设备通用操作1.热插拔在热插拔中,USBHUB扮演着很重要的角色,HUB向主机报告端口的状态改变,主机才能对相应的动作采取相应的…

一、USB设备通用操作

1. 热插拔

在热插拔中,USB HUB扮演着很重要的人物,HUB向主机陈述端口的状况改动,主机才能对相应的动作采纳相应的操作;

2. 地址分配

当USB设备刺进后,主机会对USB设备分配一个绝无仅有的地址,一起resetUSB设备并对HUB的相应端口使能;

3. 装备(Configuration):

在USB设备的功用可用之前有必要被装备,主机首要获取设备的装备信息了解设备的功用从而进行装备。主机将设置设备的装备(configuration),而且或许对接口(Interface)挑选可变的设置(setting).

在一个装备中,设备或许支撑多个接口,一个接口便是相关的一些端点(Endpoint) ,经过这些端点供给一个功用。因而,一个接口就向主机供给一个功用,在一个装备中,一个USB设备能够向主机供给多个不同的功用。接口中端点的特性和端点与主机通讯的协议能够经过设备类(device class)或厂商自界说的符号来标明。

接口能够有一些设置来重界说接口相关的端点的编号和特性,但这需求设备支撑GetInterface()恳求来陈述接口的当时设置,并经过SetInterface()恳求来为接口选则可变的设置。

接口装备符(Interface Descriptor)数据结构包含表明接标语和可变设置的域,其间接标语是从0至n-1(n表明当时装备所支撑的接口数),可变设置也是编号从0至n-1编号,当设备初始化装备中接口的默许设置是0号设置。

为了支撑通用性驱动程序,设备描述符和接口描述符中都包含Class、SubClass和Protocol域,来标明USB设备供给的功用和运用这些功用主机和设备的通讯协议。

4. 数据传输

USB设备和主机之间有四种数据传输方法(操控、中止、批量和等时),端标语能够在不同的接口设置中运用不同的传输方法。但一旦这种接口设置选定,在这种接口设置期间相应的端口就只能运用这种设置中指定的数据传输方法。

5. 恳求呼应

在USB设备处理恳求时,为了确保处理的及时性,设置了一个时间上限5秒。在5秒内任何恳求都有必要被处理完结,但这不是强制性的规则。一个设备规范的恳求包含三个阶段:宣布恳求,传输数据,回来状况。

在设备规范恳求中,若没有数据阶段,则设备有必要在50ms内完结恳求处理并回来状况,这个约束适用于设备、接口和端点。

若需求在数据阶段传输数据给主机,则设备有必要在接纳到恳求50ms内宣布第一个数据包,并在500ms内传输完其他数据包,然后在最终一个数据传输完50ms内回来状况,完结状况阶段。也便是说,主机获取数据的恳求有必要在600ms内完结。

若主机需求发送数据到设备,则是5秒的约束。设备需求在5秒内完结数据的接纳和状况阶段。

二、USB设备恳求(USB Device Request)

一切的USB设备恳求都是经过设备的默许操控通道(0号操控端点)完结的,运用操控传输协议。这些恳求和恳求的参数经过Setup包发送,每个Setup包都是8个字节。

Setup包的格局:

bmRequestType:恳求类型相关信息,一个字节

其间的Direction表明第二阶段数据传输的方向,若wLength字段为0,表明没有数据传输,则这个位能够疏忽。

Type位(两位)表明恳求的类型,USB设备规范界说了一些一切设备有必要支撑的规范设备恳求,用Standard。或许这类设备界说了一些恳求,用class表明,或这个厂商自界说的恳求,用vendor。

Recipient位(5位)表明恳求的目标,恳求目标能够是设备、设备上的接口或指定的端点。若操作的目标是接口或端点,则wIndex域来表明接标语或端点号。

bRequest:是详细的恳求,一个字节

详细的恳求操作,规范设备恳求将在后表列出

wValue:依据恳求的不同有不同的意义,两个字节

与详细的恳求相关,将在后表列出

wIndex:依据恳求的不同有不同的意义,一般表明索引或廉价量,两个字节

当恳求操作目标是设备时,可用于传递给设备的参数;

当恳求操作目标是接口或端点时,用于表明操作的接标语或端点号

Direction位设为0,表明OUT端点,设为1表明IN端点。在操控通道中,应当将其设置为0。

wLength:若恳求有数据传输,则表明传输数据的长度

表明在第二阶段数据传输的长度,bmRequestType字段中指示了数据传输的方向。若wlength表明为0,则没有数据传输阶段。

在一个获取数据的恳求中,设备不能回来多于wLength的数据,但能够回来少于wLength的数据。而在输出数据的恳求猪,wLength总是宣布数据的精确长度,若宣布的数据长度超越wLength,则设备的行为是不可知。

设备规范恳求指令和Setup包中相关字段对应的值

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/zhishi/239215.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部