


下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档-下载后可编辑USB枚举详细过程剖析-设计应用从驱动开发网看到一篇《USB枚举详细过程分析》,依据自己的理解和经验对原文稍加改动。本文仅供参考,一些顺序并不是固定的。本文描述的是Windows系统的USB枚举过程,但对嵌入式系统自行开发的USB主机驱动程序也有参考价值。USB枚举详细过程剖析1.主机集线器检测到新设备主机集线器监视着每个端口的信号电压,当有新设备接入时便可觉察。(集线器端口的两根信号线的每一根都有15kΩ的下拉电阻,而每一个设备在D+都有一个1.5kΩ的上拉电阻。当用USB线将PC和设备接通后,设备的上拉电阻使信号线的电位升高,因此被主机集线器检测到。)2.主机发送Get_Status请求每个集线器用中断传输来在集线器上的事件。当主机知道了这个事件,它给集线器发送一个Get_Status请求来了解更多的消息。返回的消息告诉主机一个设备是什么时候连接的。3.主机发送Set_Feature请求,集线器重启端口当主机知道有一个新的设备时,主机给集线器发送一个Set_Feature请求,请求集线器来重启端口。集线器使得设备的USB数据线处于重启(RESET)状态至少10ms。4.集线器在设备和主机之间建立一个信号通路主机发送一个Get_Status请求来验证设备是否激起重启状态。返回的数据有一位表示设备仍然处于重启状态。当集线器释放了重启状态,设备就处于默认状态了,设备已经准备好通过Endpoint0的默认流程响应控制传输,即设备现在使用默认地址0x0与主机通信。5.集线器检测设备速度集线器通过测定哪根信号线(D+或D-)在空闲时有更高的电压来检测设备是低速设备还是全速设备。(全速和高速设备D+有上拉电阻,低速设备D-有上拉电阻)。以下需要USB的firmware进行干预。6.获取数据包长度PC向address0发送USB协议规定的Get_Device_Descriptor命令,以取得缺省控制管道所支持的数据包长度,并在有限的时间内等待USB设备的响应。该长度包含在设备描述符的bMaxPacketSize0字段中,其地址偏移量为7,所以这时主机只需读取该描述符的前8个字节。注意,主机只能枚举一个USB设备,所以同一时刻只能有一个USB设备使用缺省地址0。以下操作雷同,不同操作系统设定时延是不一样的,比如说win2k大概是几毫秒,如果没有反应就再发送命令,重复三次。7.主机分配一个新的地址给设备主机通过发送一个Set_Address请求来分配一个的地址给设备。设备读取这个请求,返回一个确认,并保存新的地址。从此开始所有通信都使用这个新地址。8.主机重新发送Get_Device_Descriptor命令,读取完整设备描述符主机向新地址重新发送Get_Device_Descriptor命令,此次读取其设备描述符的全部字段,以了解该设备的总体信息,如VID,PID。9.主机发送Get_Device_Configuration命令,获取完整配置信息主机向设备循环发送Get_Device_Configuration命令,要求USB设备回答,以读取全部配置信息。10.主机发送Get_Device_String命令,获得描述字符集(unicode)描述字符集包括了产商、产品描述、型号等信息。11.主机展示新设备信息此时主机将会弹出窗口,展示发现新设备的信息,产商、产品描述、型号等。12.PC判断能否提供该类USB的驱动根据Device_Descriptor和Device_Configuration应答,PC判断是否能够提供USB的Driver,一般win2k能提供几大类的设备,如游戏操作杆、存储、打印机、扫描仪等,操作就在后台运行。但是Win98却不可以,所以在此时将会弹出对话框,索要USB的Driver。13.主机发送Set_Configuration(x)命令,请求为设备选择一个配置加载了USB设备驱动以后,主机发送Set_Configuration(x)命令请求为该设备选择一个合适的配置(x代表非0的配置值)。如果配置成功,USB设备进入“配置”状态,并可以和客户软件进行数据传输。此时,常规的USB完成了其必须进
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度历史文化街区车位包销及文化旅游合同
- 2025年度商业合作保密协议书(含供应链管理保密条款)
- 科技发展与电商平台数据驱动的商业模式创新
- 2025年度律师委托协议:公司股权转让法律事务代理合同
- 2025年手动圆锯机行业深度研究分析报告
- 2025年度合伙美发工作室技术合作合同协议
- 二零二五年度公寓租赁人身意外伤害免责协议
- 2025年度新能源汽车补贴申请合同模板
- 2025年度实习教师试用期聘用合同示例
- 二零二五年度多功能车间出租合作协议
- 2025至2030年中国肌酸数据监测研究报告
- 1.2 读懂彼此的心 第二课时 课件 2024-2025学年五年级下册道德与法治 统编版
- 2025年度电视产品进出口贸易合同4篇
- 2025年“开学第一课”观后感心得体会(3篇)
- 外科护理5分钟小讲课
- 2025年中国融通农发社会招聘笔试参考题库含答案解析
- 2025年天津市宁河区事业单位招聘12人高频重点提升(共500题)附带答案详解
- 2024年福建省莆田市数学三上期末质量检测模拟试题含解析
- 2025年山东菏泽投资发展集团限公司招聘61人管理单位笔试遴选500模拟题附带答案详解
- 幕墙工程项目管理手册
- 地理中图版2025新版七年级下册 中图版七年级下地理教学计划
评论
0/150
提交评论