USB入门学习

本文深入解析了USB2.0数据传输机制,重点介绍了D+/D-两根线的作用,USB接口设计原理,以及如何通过USB描述符进行设备识别的过程。详细阐述了枚举过程的四个步骤和数据包、传输类型的分类。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

USB2.0数据传输主要是D+/D-两根线;USB接口的中间两个数据线要比外面两根电源要稍短一些,这是为了热拔插而设计的;因为总是要先断数据再断USB电源。

USB的识别即是PC对USB描述符的获取。一个USB只有一个设备描述符,一个设备描述符有多个配置描述符(一个设备有多种配置),一个配置描述符有多个接口描述符,一个接口描述符有多个端点描述符。

 

获取各种描述符的过程叫做枚举过程;传输的方式为控制传输:建立过程、可选的数据过程、状态过程。

枚举分为四个大步聚:

1.获取设备描述符

主机检测到USB设备插入后先对设备复位;USB设备复位后地址为0,主机通过0地址和这个USB设备通信。主机向地址为0的设备的端点0发送获取设备描述符的标准请求。设备把设备描述符的返回给主机。主机收到设备描述符的数据包后确认无误,发送一个0长度的确认数据包。接下来进入设置地址阶段。

2.设置地址

主机向从机地址0的设备的端点0发出 个设置地址的请求(控建立过程)。建立过程之后直接进入状态过程,没有数据传输。设备等待主机请求状态返回(输入令牌包);收到输入令牌包后,设备返回0长度的状态数据包。主机确认该状态包收到后,就会发送一个应答包ACK给设备,设备收到ACK后就启用新的地址。

3.再次获取设备描述符

从此主机不再用0地址来通信,而是用的新地址,这次需要获取全部的18字节的设备描述符。

4.主机获取配置描述符

主机获取配置描述符,如果有字符串描述符,还要获取字符串描述符。如果像HID设备有报告描述符,还要单独获取。

 

数据包分为四种:令牌包、数据包、握手包、特殊包

传输分为四种类型:批量传输、等时传输、中断传输、控制传输

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值