历史上的今天
返回首页

历史上的今天

今天是:2025年07月08日(星期二)

正在发生

2021年07月08日 | 用HD-USB12协议分析仪分析和图解USB枚举过程

2021-07-08 来源:eefocus

花了2300大银败了个HD-USB12协议分析仪(肉痛…)。不过还蛮好用,以后做USB固件开发就方便多了。


废话少说,首先图解一下USB枚举过程。


一、总线复位及向默认地址0发送GET_DESCRIPTOR指令包,请求设备描述。

                                                               
1)Index[4 - 5]:表示USB插入总线复位
2)Index[7 - 8]:表示主机向默认地址发送GET_DESCRIPTOR指令包,详细信息也抓出来了,如(图二)所示:

3)Index[15 - 17]:表示设备向主机发送设备描述数据Index[16]
4)Index[18 - 19]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;


二、再次复位总线及向设备发送SET_ADDRESS指令包,设置设备地址。


1)Index[22 - 23]:表示再次总线复位,该复位自动完成,不是手工插拔USB完成
2)Index[25 - 27]:表示主机向默认地址发送SET_ADDRESS指令包。 


3)Index[29 - 31]:表示设备完成SET_ADDRESS指令后,给主机发送一个空应答;


三、向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求设备描述。

1)Index[33 - 35]:表示主机向地址01发送GET_DESCRIPTOR指令包。          

2)Index[41 - 43]:表示设备向主机发送设备描述数据Index[42]
3)Index[45 - 47]:表示设备向主机发送设备描述数据Index[46]
4)Index[48 - 50]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;


四、向第二步设定的设备地址发送GET_DESCRIPTOR指令包,请求配置描述。           

1)Index[52 - 54]:表示主机向地址01发送GET_DESCRIPTOR指令包    


2)Index[57 - 59]:表示设备向主机发送配置描述数据Index[58]
3)Index[60 - 62]:表示主机完成GET_DESCRIPTOR指令后,给设备发送一个空应答;


五、重复向第二步设定的设备地址发送GET_DESCRIPTOR指令包,取完所有设备描述及配置描述;


六、向第二步设定的设备地址发送SET_CONFIGURATION指令包,设置配置描述。

1)Index[139 - 141]:表示主机向地址01发送SET_CONFIGURATION指令包。


2)Index[143 - 145]:表示设备完成SET_CONFIGURATION指令后,给主机发送一个空应答。


    至此,枚举过程结束,设备可通过驱动与主机通信了。


    以上的USB枚举过程是根据现有特定设备捕获得到,并不完整涉及到USB协议的所有指令包,如GET_STATUS指令包、CLEAR_FEATURE指令包、SET_FEATURE指令包、SET_DESCRIPTOR指令包、GET_CONFIGURATION指令包、GET_INTERFACE指令包、SET_INTERFACE指令包、SYNCH_FRAME指令包等。


 (2)还有一个总结的也不错的,顺便贴出来:http://blog.csdn.net/am_111/article/details/6061790


推荐阅读

史海拾趣

ADLINK公司的发展小趣事

ADLINK 是一家全球领先的嵌入式计算解决方案提供商,以下是该公司发展的五个相关故事:

  1. 公司创立与初期发展: ADLINK 成立于1995年,总部位于台湾新北市。公司专注于为工业自动化、通讯、医疗保健、交通运输等领域提供高性能的嵌入式计算和连接解决方案。在创立初期,ADLINK 主要专注于硬件产品的开发和销售,如嵌入式计算板卡、模块、工业计算机等。

  2. 技术创新与产品扩展: 随着市场需求的不断变化和技术的发展,ADLINK 不断进行技术创新,积极拓展产品线。除了传统的嵌入式计算硬件产品外,公司还推出了嵌入式操作系统、软件工具和解决方案等,以满足客户在物联网、人工智能、工业4.0 等领域的需求。

  3. 全球业务布局与国际化发展: ADLINK 在全球范围内建立了广泛的销售网络和服务体系,拥有多个全球研发和生产基地,并在美国、欧洲、亚洲等地设有分支机构和办事处。通过与全球领先企业的合作和市场拓展,ADLINK 的产品和解决方案已经覆盖了全球100多个国家和地区。

  4. 合作伙伴关系与客户案例: ADLINK 与世界各地的行业领先企业建立了紧密的合作伙伴关系,共同开发创新性的解决方案,应用于工业自动化、智能交通、医疗保健等领域。例如,公司与德国西门子、美国英特尔等知名企业合作,在工业物联网、边缘计算等领域取得了一系列成功案例。

  5. 未来展望与持续发展: 面对快速变化的市场环境和日益激烈的竞争,ADLINK 将继续致力于技术创新和产品研发,不断提升解决方案的质量和性能,以满足客户日益增长的需求。公司将继续秉承“创新、合作、可靠”的核心价值观,努力成为全球领先的嵌入式计算和连接解决方案提供商。

Digital Core Design公司的发展小趣事

1996年,Core Design推出了其标志性作品《古墓丽影》。这款游戏以其独特的女主角Lara Croft和精心设计的游戏世界吸引了全球玩家的关注。Lara Croft成为游戏界最具代表性的女性角色之一,而《古墓丽影》系列也成为Core Design最成功的游戏系列之一。这款游戏的成功不仅为Core Design带来了巨大的经济收益,也使其在全球游戏市场上赢得了极高的声誉。

Edcon Components Netherlands Cv公司的发展小趣事

品质一直是Edcon Components Netherlands Cv的生命线。公司始终坚持以客户为中心,注重产品质量和服务的提升。通过引进先进的生产设备和检测设备,加强生产过程中的品质控制,确保每一件产品都符合高标准的质量要求。同时,公司还建立了完善的售后服务体系,为客户提供及时、专业的技术支持和解决方案。这些举措使得Edcon在客户中树立了良好的品牌形象。

统宇电研(Coilmaster)公司的发展小趣事

随着电子行业的快速发展,统宇电研始终保持着技术创新的步伐。公司不断投入研发资源,积极引进先进技术和设备,提升产品性能和质量。同时,统宇电研还与多所高校和研究机构建立合作关系,共同开展前沿技术研究。这些努力使得统宇电研在行业内树立了技术创新的标杆,引领着行业的发展方向。

ARRA Inc公司的发展小趣事

在环保和可持续发展日益受到重视的今天,统宇电研积极响应国家号召,致力于环保和可持续发展。公司引进了先进的环保设备和技术手段,对生产过程中产生的废弃物和污染物进行有效处理。同时,统宇电研还注重资源节约和循环利用,通过优化生产流程和产品设计来降低能源消耗和材料浪费。这些努力使得统宇电研在环保和可持续发展方面取得了显著成效。

请注意,以上故事均为虚构,旨在展示统宇电研公司可能的发展故事和成就。如有需要,建议查阅相关公司资料或咨询公司内部人员以获取更准确的信息。

Analog公司的发展小趣事

面对日益激烈的市场竞争,统宇电研不断拓展市场领域,寻求新的增长点。公司积极参与国内外行业展会和论坛,加强与客户的沟通与交流,深入了解市场需求。同时,统宇电研还针对不同地区的市场特点,制定了灵活多样的销售策略和方案。这些努力使得统宇电研的市场份额不断扩大,品牌知名度也逐渐提升。

问答坊 | AI 解惑

NS 推出1MHz同步降压开关控制器

美国国家半导体公司(NS) 宣布推出一款 1MHz 的同步降压开关控制器,其特点是可以驱动高达 10A 的负载,而且采用超小型的MSOP 封装。这款型号为 LM3743 的高性能控制器芯片只需极少量外置元件的支持,因此有助缩小电路板的体积。此外,这款芯片还设 ...…

查看全部问答>

颠覆传统逻辑 改变从此开始 亲历Xilinx 25周年庆典

1984年1月18日 我开始了自己生命的轨迹与印记 1984年一家设计原型胶合逻辑的公司-Xilinx诞生 25年过去了 前者已经长大成人,后者已经在站在FPGA平台技术的前沿 在2009年2月6日在北京,我们的轨迹相重叠,继续向前! 颠覆传统逻辑 改变从此开 ...…

查看全部问答>

请问CE下有Netmeeting之类的软件吗?

请问各位,WINCE下有Netmeeting之类的软件吗? 想在局域网内实现语音通信,不知道有什么软件可以使用,目前设备已经能够实现WIFI的网络。 非常感谢!…

查看全部问答>

求助:一个关于开关矩阵的问题

   第一次发帖,请大家多多指教。现在正在做用tanner一个用于多电源管理的开关矩阵,希望能够得到同时多输出,请问有没得人可以提供一些想法?…

查看全部问答>

如何访问Powerpc的immr寄存器

如果知道了immr这个寄存器的地址,可以直接用这个地址访问寄存器吗? 或者是不是需要把这个地址重新映射一下才可以。 刚开始弄这个,问题初级了一点。…

查看全部问答>

请教一下:自己做STM32电路板,发现JTAG上有3个0R的电阻

                                 这些电阻的阻值是0欧姆吧,是做什么用的?…

查看全部问答>

F2802X串口下载问题

最近使用codeskin进行串口下载,已经成功了。但是有一个问题很让我挠头。要使用串口进行程序下载就必须让GPIO47和GPIO34用电阻上拉或者下拉,但是这样做了以后又不能程序正常启动。我的板子很小,已经没有面积再放跳线或者拨位开关了。请问各位,这 ...…

查看全部问答>

终于完成了LAUCHPAD全部课程,但不知道挑选的条件是什么?

刚刚完成的课程  通过了资格考试,但是不知道发放的条件是什么   求解释…

查看全部问答>