`
izuoyan
  • 浏览: 8879564 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

USB枚举详细过程剖析

阅读更多
(1)集线器检测新设备
主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)
(2)主机知道了新设备连接后
每个集线器用中断传输来报告在集线器上的事件。当主机知道了这个事件,它给集线器发送一个Get_Status请求来了解更多的消息。返回的消息告诉主机一个设备是什么时候连接的。
(3)集线器重新设置这个新设备
当主机知道有一个新的设备时,主机给集线器发送一个Set_Feature请求,请求集线器来重新设置端口。集线器使得设备的USB数据线处于重启(RESET)状态至少10ms。
(4)集线器在设备和主机之间建立一个信号通路
主机发送一个Get_Status请求来验证设备是否激起重启状态。返回的数据有一位表示设备仍然处于重启状态。当集线器释放了重启状态,设备就处于默认状态了,即设备已经准备好通过Endpoint 0 的默认流程响应控制传输。即设备现在使用默认地址0x0与主机通信。
(5)集线器检测设备速度
集线器通过测定那根信号线(D+或D-)在空闲时有更高的电压来检测设备是低速设备还是全速设备。(全速和高速设备D+有上拉电阻,低速设备D-有上拉电阻)。
以下,需要USB的firmware进行干预
(6)获取最大数据包长度
PC向address 0发送USB协议规定的Get_Device_Descriptor命令,以取得却缺省控制管道所支持的最大数据包长度,并在有限的时间内等待USB设备的响应,该长度包含在设备描述符的bMaxPacketSize0字段中,其地址偏移量为7,所以这时主机只需读取该描述符的前8个字节。注意,主机一次只能列举一个USB设备,所以同一时刻只能有一个USB设备使用缺省地址0。
以下操作雷同,不同操作系统设定时延是不一样的,比如说win2k大概是几毫秒,如果没有反应就再发送一次命令,重复三次。
(7)主机分配一个新的地址给设备
主机通过发送一个Set_Address请求来分配一个唯一的地址给设备。设备读取这个请求,返回一个确认,并保存新的地址。从此开始所有通信都使用这个新地址。
(8)主机向新地址重新发送Get_Device_Descriptor命令,此次读取其设备描述符的全部字段,以了解该设备的总体信息,如VID,PID。
(9)主机向设备循环发送Get_Device_Configuration命令,要求USB设备回答,以读取全部配置信息。
(10)主机发送Get_Device_String命令,获得字符集描述(unicode),比如产商、产品描述、型号等等。
(11)此时主机将会弹出窗口,展示发现新设备的信息,产商、产品描述、型号等。
(12)根据Device_Descriptor和Device_Configuration应答,PC判断是否能够提供USB的Driver,一般win2k能提供几大类的设备,如游戏操作杆、存储、打印机、扫描仪等,操作就在后台运行。但是Win98却不可以,所以在此时将会弹出对话框,索要USB的Driver。
(13)加载了USB设备驱动以后,主机发送Set_Configuration(x)命令请求为该设备选择一个合适的配置(x代表非0的配置值)。如果配置成功,USB设备进入“配置”状态,并可以和客户软件进行数据传输。
此时,常规的USB完成了其必须进行的配置和连接工作。查看注册表,能够发现相应的项目已经添加完毕,至此设备应当可以开始使用。不过,USB协议还提供了一些用户可选的协议,设备如果不应答,也不会出错,但是会影响到系统的功能。
分享到:
评论

相关推荐

    USB详细枚举过程(经测试正确)

    USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举过程(经测试正确USB详细枚举...

    图解USB协议分析USB枚举过程

    使用USB协议分析仪分析USB枚举过程,包括数据包的分析,USB标准描述符的介绍,USB枚举失败常见原因分析等。

    USB枚举过程详细分析

    USB启过程中硬件上电、控制传输获取数据

    通信与网络中的USB枚举详细过程剖析

    从驱动开发网看到一篇《USB枚举详细过程分析》,依据自己的理解和经验对原文稍加改动。本文仅供参考,一些顺序并不是固定的。  本文描述的是Windows系统的USB枚举过程,但对嵌入式系统自行开发的USB主机驱动程序也...

    USB枚举过程详细分析.rar_USB枚举过程详细分析

    通过对USB枚举过程详细分析,让用户很快的掌握和认知USB

    USB枚举的详细流程

    USB枚举的详细流程;USB枚举过程分析

    usb 枚举过程分析

    枚举过程分析

    USB枚举失败会复位.usb

    USB枚举失败会复位用CATC抓的过程中的数据,便于分析USB协议

    USB枚举周详过程剖析

    USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为"通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。...

    USB枚举类型

    之前使用ST官方的库以及网络的资料,完成了使用USB HID类进行STM32和PC机的通讯。由于其他原因并没有深入的分析,虽然实现了功能,但是...主要参考资料是《圈圈教你玩USB》、USB枚举过程图解,ST官方的USB HID例程。

    USB枚举过程分析报告.doc

    USB枚举过程分析报告.doc

    图解usb 枚举过程

    图解usb 枚举过程,使用lecroy 协议分析仪抓出来的数据,

    图解usb协议之枚举过程.pdf

    图解usb协议之枚举过程 HD-USB12协议分析仪枚举

    USB.rar_C++枚举USB_USB 枚举_usb packet_usb 包

    图解USB协议,分为三个部分:枚举过程,数据包分析以及USB标准描述符

    s3c2440 USB枚举

    详细分析了USB枚举的过程。针对主机发送的命令进行解析,并分析设备的状态对应的描述符的发送

    USB开发大全 第4版 中文版

    第一,阐述USB协议,包括基本常识、设备枚举、传输过程、设备类、主机通信方式以及总线状态等。读者通过学习,可迅速掌握USB接口的工作原理和组织结构。第二,详细地介绍了USB硬件,从控制器芯片的选择、电源供给、...

    模拟技术中的USB枚举周详过程剖析

    USB ,是英文Universal Serial BUS(通用串行总线)的缩写,而其中文简称为"通串线,是一个外部总线标准,用于规范电脑与外部设备的连接和通讯。是应用在PC领域的接口技术。USB接口支持设备的即插即用和热插拔功能。...

Global site tag (gtag.js) - Google Analytics