主机对一个USB设备的识别是经过一个枚举的过程来完成的,主机的总线枚举器随时监控必要的设备状态变化。总线枚举的过程如下:
(1)设备连接。USB设备经USB总线连接主机。
(2)设备上电。USB设备可以自供电,也可以使用USB总线供电。
(3)主机检测到设备,发出复位。主机通过检测设备在总线的上拉电阻检测到有新的设备连接,并获释设备是全速设备还是低速设备,然后向该端口发送一个复位信号。
(4)设备默认状态。设备从总线上接收到一个复位信号后,才可以对总线的处理操作做出响应。设备接收到复位信号后,就暂时使用默认地址(00H)来响应主机的命令。
(5)地址分配。当主机接收到有设备对默认地址(00H)响应的时候,就分配给设备一个空闲的地址,以后设备就只对该地址进行响应。
(6)读取USB设备描述符。主机读取USB设备描述符,确认USB设备的属性。
(7)设备配置。主机依照读取的USB设备描述符来进行配置,如果设备所需的USB资源得以满足,就发送配置命令给USB设备,表示配置完毕。
(s)挂起。如果使用总线供电,为了节省电源,当总线保持空闲状态超过3ms以后,设备驱动程序就会进入挂起状态,在挂起状态时,USB设备保留了包括其地址和配置信息在内的所有内部状态,设备的消耗电流不超过500uA。
USB设备的枚举过程的具体说明如下:
关键字:USB 枚举过程
引用地址:USB枚举过程
(1)设备连接。USB设备经USB总线连接主机。
(2)设备上电。USB设备可以自供电,也可以使用USB总线供电。
(3)主机检测到设备,发出复位。主机通过检测设备在总线的上拉电阻检测到有新的设备连接,并获释设备是全速设备还是低速设备,然后向该端口发送一个复位信号。
(4)设备默认状态。设备从总线上接收到一个复位信号后,才可以对总线的处理操作做出响应。设备接收到复位信号后,就暂时使用默认地址(00H)来响应主机的命令。
(5)地址分配。当主机接收到有设备对默认地址(00H)响应的时候,就分配给设备一个空闲的地址,以后设备就只对该地址进行响应。
(6)读取USB设备描述符。主机读取USB设备描述符,确认USB设备的属性。
(7)设备配置。主机依照读取的USB设备描述符来进行配置,如果设备所需的USB资源得以满足,就发送配置命令给USB设备,表示配置完毕。
(s)挂起。如果使用总线供电,为了节省电源,当总线保持空闲状态超过3ms以后,设备驱动程序就会进入挂起状态,在挂起状态时,USB设备保留了包括其地址和配置信息在内的所有内部状态,设备的消耗电流不超过500uA。
USB设备的枚举过程的具体说明如下:
USB总线驱动程序自动检测新插入的USB设备。然后它读取设备内的设备描述符以查明插入的是何种设备,描述符中的厂商和产品标识以及其它描述符一同决定具体安装哪一个驱动程序。配置管理器调用驱动程序的AddDvecie函数。AddDvecie做以下工作:创建设备对象,把设备对象连接到驱动程序堆栈上,等等。最后,配置管理器向驱动程序发送一个即插即用请求IRP_MN_START_DEVICE。它通过调用一个名为StartDevice的辅助函数并传递一些参数,这些参数描述了赋予设备的经过转换的和未经转换的I/O资源。实际上它们不用任何I/O资源。 USB使用了许多方法来帮助操作系统定位驱动程序,包括设备上的设备描述符、配置描述符,以及接口描述符。对于有厂商和产品标识的设备,配置管理器首先在注册表中查找设备名称,例如名为USB\VID一0471&PID-0666的设备。如果注册表中没有这个表项,配置管理器将触发“新硬件向导” 来寻找该设备的INF文件。新硬件向导向用户询问INF文件的位置,然后安装驱动程序并填写注册表。一旦配置管理器找到了注册表表项,它就可以动态地装载驱动程序。StartDveiee的执行过程大致如下,首先为设备选择一个配置。如果你的设备像大多数设备一样,应该仅有一种配置。选定了某个配置后,接着应该选择配置中的一个或多个接口。选定了一个配置和一组接口后,你应该向总线驱动程序发送配置选择URB。最后,总线驱动程序向设备发出命令确定能选定的配置和接口。总线驱动程序负责创建管道和用于访问管道的句柄,管道提供功能驱动程序与选定接口端点之间的通信,它同时还创建配置句柄和接口句柄。你可以从完成的URB中提取这些句柄,并保存为以后使用。至此,设备的枚举过程全部结束。
上一篇:USB设备驱动开发-USB协议相关(3)
下一篇:简单自检USB设备 解决接口无法使用的问题
推荐阅读最新更新时间:2024-05-03 00:34
超低功耗AC适配器与智能USB充电控制器
你的手机、平板电脑是否充完电经常忘记拔出充电器?看着插座上一堆错综复杂的各式充电器想要抓狂?是时候告别这一切了!TI最新推出的低功耗AC适配器控制器UCC28700和智能USB充电端口控制器TPS2511,就能帮你开启懒人的理想生活。
智能手机和平板电脑等各种移动设备的丰富与流行,使得充电这件事变得越来越频繁,人们往往懒得拔下充电器以便下一次充电,于是待机功耗成为忽视的能耗。实际上,根据IMS Research的数据显示,2010年全球大约有12.5亿个手机适配器,占所有外部适配器市场的53%,显然,2012年对应的数据还会有所提升。假如能够有效降低这些适配器的空载损耗,那么也对于全球倡导的节能环保做出了积极有效的响应。
[电源管理]
STM32组合设备实现USB转双串口
串口及其中断初始化 void USART1Init(void) { GPIO_InitTypeDef GPIO_InitStructure; USART_InitTypeDef USART_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1, ENABLE); RCC_APB1PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
[单片机]
诺基亚确认Nokia N1平板配USB Type-C 接口
根据诺基亚官方更新的推文显示即将发售的Nokia N1平板确定将会采用USB Type-C 接口,在插入的时候不再需要确认正反面,同苹果的Lightning端口一样无论从哪个方面都能插入。
去年12月,USB 推广团队(USB 3.0 Promoter Group)已经公布了下一代 USB Type-C 连接器的渲染图,随后在今年8月开始已经准备好进行大规模量产。新版接口的亮点在于更加纤薄的设计、更快的传输速度(SuperSpeed USB 10 Gbps),更强悍的电力传输(最高100W)。
Nokia N1采用7.9英寸2048×1536分辨率的4:3比例IPS LED 324 PPI背光屏幕,
[手机便携]
PL2586_USB 2.0 HUB高速多口集线器扩展方案
PL2586是继MA8601新出的USB2.0工业级HUB芯片方案 它集成了符合USB-IF“电池充电规范修订版1.2”的功能,支持便携式设备的快速充电功能。此功能将PL2586转变为“通用充电解决方案”(UCS)兼容的基于电池的便携式设备的USB充电集线器,由GSMA推广。当在下游端口检测到符合B.C.标准的便携式设备时,PL2586中的专用端口可以处理充电请求。而且,在握手完成后,PL2586允许便携式设备达到900mA(高速);1.5A(低速/全速)来自充电下游端口(CDP)或1.5A来自专用充电端口(DCP)。 特点: 符合USB规范修订版2.0 上游端口支持高速(480MHz)和全速(12MHz)通信 可配置的4/3
[嵌入式]
USB-IF 宣布第一款获认证的USB3.0 芯片组
北京 – 2011 年 4 月 12 日 – USB 实施者论坛(简称 USB-IF)今天宣布第一款获认证的 SuperSpeed USB (USB 3.0) 芯片组。由 AMD 推出的 A75 与 A70M FCH 芯片组代表了在 制造商广泛采用 SuperSpeed USB 方面的重大里程碑,因为内建 USB 3.0 支持让设计者 能够在各自的系统中无缝集成 SuperSpeed USB。AMD A75 与 A70M FCH 芯片组所获的 认证向制造商和消费者保证,此款 SuperSpeed USB 芯片组合乎 USB 3.0 规格,并可按 该规格运行。 “SuperSpeed USB 生态系统的上升势头史无前例,而
[嵌入式]
有一种数据传输接口叫USB Type-C,你造吗?
在MWC2016世界移动通信大会上,来自全球的各大厂商纷纷展示了自家的新产品与新技术,其中LG发布的G5、乐视的乐Max pro等手机纷纷采用了USB Type-C数据接口,那么作为一个普通用户,不禁要问了,USB Type-C 是什么鬼?那今天小编就来给大家科普一下咯。 目前主流的手机数据传输接口分为三种,第一种是安卓的Micro-B,其大小为8.3mm× 2.5mm),第二种是iPhone的lingtning,大小为7.4mm×2.35mm,第三种就是最新的Type-C接口,大小约为8.3mm×2.5mm,以上三种长的就是下图酱紫滴,小伙伴们是不是熟悉那么一两种?
USB Type-C其实是USB接口的一种连
[嵌入式]
2000B系列经济型USB示波器的性能特点分析
产品简介: 价格超级棒的示波器 PicoScope2000B系列提供2和4通道型号的多种选择,加上具有2模拟+16数字通道的混合信号示波器型号。所有型号都包含频谱分析仪、函数发生器、任意波形发生器和串行总线分析仪,混合信号示波器还拥有逻辑分析仪。 PicoScope2000B系列新增效益包括深度缓存(最大128MS)、更高带宽(最大100MHz)和更快的波形刷新率,给你必要的性能轻松完成先进的波形分析,包括串行解码和绘制频率对时间的图形。 混合信号性能 PicoScope2000B系列混合信号示波器都有2模拟和16数字输入,让你同时观察你的数字和模拟信号。数字输入可独立显示或者任意编组显示。 强大、便携又超小 所有Pi
[测试测量]
USB海量存储类设备功能在ARM系统中的应用
技术发展到今天的信息时代,数据的存储和传输在嵌入式系统有了越来越重要的地位。而USB是目前设计成熟、应用广泛且使用极为简捷的技术,USB传输是一种高效方便的数据传输方式。基于上述原因,本文重点论述基于USB的海量存储(USB Mass Storage)设备功能在ARM嵌入式系统中设计和应用。使用该设备功能,上位机可以像读写普通U盘一样对于系统采集并存储在FLASH中的数据进行读写。 1 硬件方案 l.1 器件简介 S3C44B0X 是SAMSUNG公司出品的基于ARM7TDMI内核的RISC型微处理器,8 kB指令和数据共享的缓存,主频可达66 MHz,可以运行16位的Thumb指令和32位的ARM指令,且接口丰富,具有通用
[应用]