(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 枚举过程
枚举过程的详细介绍 1、USB主机检测到 USB设备插入后,就会先对设备复位。USB设备在总线复位后其地址为 0 ,这样主机就可以通过地址 0和那些刚刚插入的设备通信。 2、USB主机往地址为 0的设备的端点 0发送获取设备描述符的标准请求(这是一个控制传输的建立过程)。设备收到该请求后,会按照主机请求的参数,在数据过程将设备描述符返回给主机。主机在成功获取到一个数据包的设备描述......
USB的枚举过程
当USB device 插入,和 host 连接后,host 会对 device 进行枚举。 通过枚举:获取设备的描述符信息。(主机根据此信息,加载对应驱动,确定通信方式等等) 枚举过程如下: 1、usb host 检测到 usb device 插入后,发送总线复位信号,复位 device。 device 复位完成后,地址为0。 host 向 地址0 的 endpoint 0 发送数据,请求设备描述符。 device 收到主机请求后,发送 设备描述 给 host。 host 接收并确认 device 发来
第五篇 USB设备枚举过程(2)
二、复位总线 主机第一次正确接收到设备描述符,就会复位一次总线,接下来发送设置地址的标准请求。 1. 协议分析仪数据 这次复位是正常复位。 如果主机第一次获取设备描述符之后,一直复位(异常复位),很大情况下是因为获取设备描述符的过程有错(返回的数据或者数据长度都有错)!比如:在一次验证FPGA的过程中,设备栈刚移植结束,跑起Demo之后,发现获取设备描述符后,Host一直复位总线,如下: 将数据展开,仔细分析后发现有错:返回的长度和数据内容都有错。 应该是18字节的设备描述符,而这里
USB协议学习:5、USB的枚举过程
地址偏移量字段名长度说明0bLength1描述符长度(字节):12H11描述符类型:设备=01H2bcdUSB2USB 规范版本号(BCD 码)41类代码51子类代码61协议代码71端点 0 支持最大数据包长度8idVender2供应商 ID10idProduct2产品 ID12bcdDevice2设备版本号(BCD 码)141供应商字符串描述符索引值15iProduct1产品字符串描述符索引值161。
智慧楼宇解决方案-全套大合集
智慧楼宇解决方案,楼宇能耗-环境-设备统一管控解决方案。
nmap、X-Scan漏洞扫描和Metasploit中用永恒之蓝漏洞入侵靶机并上传冰河
利用nmap、X-Scan扫描靶机的漏洞,在Metasploit中用扫描出的永恒之蓝漏洞入侵靶机,建立连接后上传冰河木马控制靶机,最后用冰河陷阱清除靶机的冰河木马,记一次完整的入侵控制实验。
USB枚举及其描述符(1)— USB 枚举/断开过程
简单理解USB上电枚举的过程
基于Python实现学习进度跟踪系统
{{ task }}: {{ "%.1f"|format(hours) }}小时
USB总线专题(四)——枚举过程
前言: 为了方便查看博客,特意申请了一个公众号,附上二维码,有兴趣的朋友可以关注,和我一起讨论学习,一起享受技术,一起成长。 1. 定义 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。枚举过程包括设备地址的分配,从设备读取设备描述符,分配加载驱动程序,选择规定的设备功耗要求和接口配置信息。 USB 架构中, hub 负责检测设...
计算机视觉论文复现指南:从理论到可运行代码的保姆级教程
计算机视觉论文复现指南:从理论到可运行代码的保姆级教程 ,人工智能,计算机视觉,大模型,AI,本文围绕计算机视觉论文复现展开,介绍从理论到可运行代码的全流程。先强调复现的重要性,再讲解复现前的准备,包括明确目标、构建工具链;接着说明代码获取分析、环境配置调优、调试运行技巧及结果验证优化方法,还推荐了高效工具,提及复现中的伦理规范。旨在助读者掌握复现方法论,实现从经典模型到前沿论文的复现,推动学术成果落地。
Qt实现思维导图功能5『纵向分布模式』
思维导图纵向分布模式:模式一
sm总线控制器找不到驱动程序_USB总线专题(四)——枚举过程
1. 定义枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。枚举过程包括设备地址的分配,从设备读取设备描述符,分配加载驱动程序,选择规定的设备功耗要求和接口配置信息。USB 架构中, hub 负责检测设备的连接和断开,利用其中断 IN 端点 (Interrupt IN Endpoint) 来向主机(Host)报告。在系统启动...
弱网、高热、只有 32MB 内存:恶劣环境下嵌入式 SoC 音视频开发的“不死”法则
永远不要假设。你申请一个 1920 宽的图像,硬件为了对齐(比如 16 字节对齐或 256 字节对齐),实际分配的一行可能有 1936 甚至是 2048 字节。那个多出来的部分叫Padding。如果你写代码时用来计算数据量,或者用Width来做指针偏移:恭喜你,你的画面会像被风吹歪的百叶窗一样,产生斜切畸变。永远使用VB_CONF结构体里返回的u32Stride字段。这是区分新手和老手的试金石。第六章 ISP 调优(Tuning)实战:为什么你调出的画面像个“鬼片”?
Linux之USB驱动框架-USB总线设备识别与枚举过程详解
本文详解Linux USB驱动框架中设备识别与枚举的全过程,涵盖硬件信号检测、地址分配、描述符读取、驱动匹配等关键环节。通过分析USB总线工作原理和内核实现机制,帮助开发者深入理解USB设备在Linux系统中的初始化与配置流程,并提供实用的调试技巧。
使用 Visual Studio Code 搭建 SAP UI5 本地开发环境
工欲善其事,必先利其器。时至今日,SAP 提供了非常多的 SAP UI5 开发工具,既包含本地搭建的,也包含浏览器里远端使用的工具,比如 WebIDE 和 Business Application Studio. 我们访问下面这个链接,就能找到所有这些工具的安装或者配置步骤: https://tools.hana.ondemand.com/#sapui5 如果想选择本地开发,SAP 推荐的工具是 Visual Studio Code,也就是本文要介绍的内容。 也可以下载 WebIDE 的本地安装包,将其安
[xboard-ok210] 44 s5pv210开发板介绍和对比
文章目录前言四大S3C6410提供商友坚开发板UT-S5PV210华天正(润尔)real210飞凌开发板ok210九鼎x210友善之臂开发板tiny210mini210smart210天嵌开发板tq210sate210xboardxboardxboard之ok210 前言 四大S3C6410提供商 友坚开发板 UT-S5PV210 华天正(润尔) real210 飞凌开发板 ok210 九鼎 x210 友善之臂开发板 tiny210 mini210 smart210 天嵌开发板 tq210 sate210
USB具体通讯过程(含枚举过程)
/*********************************************************************** USB入门系列: 1、USB行业标准介绍 2、USB具体通讯过程 3、USB中端点详细了解 4、USB传输之控制传输 ......(待补充) *************************************************...
efm32 入门.pdf
本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。
USB枚举过程
USB枚举过程 1. 枚举是什么? 枚举就是从设备读取一些信息,知道设备是什么样的设备,如何进行通信,这样主机就可以根据这些信息来加载合适的驱动程序。调试USB设备,很重要的一点就是USB的枚举过程,只要枚举成功了,那么就已经成功大半了。 USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机...
WINCC7.3破解文件
WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!
OV9734 DATASHEET,完整规格书
OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等
USB开设备开发学习之二: USB具体通讯过程(含枚举过程)
原文:https://blog.youkuaiyun.com/go_str/article/details/80802452 前言 现在刚开始接触USB的开发,零零散散学习了一些USB基础知识,但是却得不到连贯。在这个学习过程中首先困惑的就是USB通讯过程究竟是什么样子的,我觉得做一下的了解后整合后记录下来,首先从USB整体结构基础来入手直到整个通讯过程。可能有理解不到位的地方,望各位能够指正,我...
IEM模型,地表粗糙度模拟
利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟
Windows下usb接口驱动技术(一)
Windows下usb接口芯片的驱动技术 一、 USB概述 USB的英文全称为Universal Serial Bus,中文含义是通用串行总线,是由Conpaq、DEC、IBM、Inter、Microsoft、NEC和Northen Telecom等公司为简化PC与外设之间的互连而共同研究开发的一种免费的标准化连接器,它支持各种PC与外设之间的连接,还可实现数字多媒体集成。
《USB技术应用与开发》第二讲:连接和枚举
(1)正常工作:总线上存在周期性SOF包。当主机和USB设备连接后,如果不操作设备但是设备仍然挂载在主机的端口下面,需要随时进行传输,此时USB总线就处于正常工作状态。总线上会有周期性的soft包出现(这个包就是第一讲抓包演示中每一帧开始的令牌包),在全速中1ms出现一次,高速中是125us出现一次。(2)总线复位:总线维持SEO状态>10ms是由主机控制器或集线器的下游端口产生,用于驱动D+和D-都处于0V,就是SE0状态。
《Linux总线、设备与驱动》USB设备发现机制
一、USB总线驱动 kernel/drivers/usb/core/driver.c EXPORT_SYMBOL_GPL(usb_register_driver); EXPORT_SYMBOL_GPL(usb_deregister); EXPORT_SYMBOL_GPL(usb_register_device_driver); EXPORT_SYMBOL_GPL(usb_deregiste
usb枚举过程 enumeration 流程说明
先转载一篇关于usb enumeration不错的文章。 USB枚举过程 USB Enumeration USB架构中, hub负责检测设备的连接和断开,利用其中断IN端点(Interrupt IN Endpoint)来向主机(Host)报告。在系统启动时,主机轮询它的根hub(Root Hub)的状态看是否有设备(包括子hub和子hub上的设备)连接。USB总线拓扑结构见
USB学习
1、总线枚举 当一个USB设备接入USB或从USB上拆除时,主机使用一个称之为总线枚举的过程和管理必须的设备状态变化。当一个USB设备接入后,讲采取下列动作: (1)现在该USB设备所接入的集线器,通过一个其状态变化管道的回应,可以向主机报告该事件。这时,USB设备处于连接状态,而连接它的端口则被禁用。 (2)主机通过询问集线器来确定变化的真实性质 (3)既然主机已经知道了新的设备所接入的...
3927



被折叠的 条评论
为什么被折叠?



