谈USB硬件设备

本文深入探讨USB硬件设备的接入检测、描述符、传输模式、包格式、握手包、事务及控制传输过程,详细解析设备枚举和描述符格式,揭示USB设备工作的核心机制。
摘要由CSDN通过智能技术生成

1、接入USB设备怎么知道有USB设备接入了?

我们的USB设备有D+或者D-引脚,都有1.5K欧姆上拉电阻接到VCC,而集线器(HUB)接口的D+和D-相反,是接下拉电阻接到GND。所以没有设备接入时候,Hub的D+,D-就是低电平,这样就表示没有设备接入,但是如果有设备接入,那么构成通路,并且HUB的D+或者D-引脚的电压刚好是VCC的一半,此时为高电平,通过对这个电平的勘测就知道有设备接入。


2、描述符了:设备描述符、配置描述符、接口描述符、端点描述符、字符串描述符。端点构成接口,接口构成配置,配置构成设备,这些概念:http://book.51cto.com/art/200803/66926.htm


3、传输模式:控制传输、批量传输、中断传输、同步传输。


4、USB 的包格式:

同步域:8位0000 0001(全速和低速设备),用于本地时钟和输入同步,具体如何做到还没了解。

包标识符PID:说明包的类型;

EOP结束标识符,表示包的结束;

还有其他域,具体见文章http://blog.csdn.net/lp310018931/article/details/9666657


5、USB包的种类和功能:

第一种令牌包:有OUT、IN、SOF、SETUP包。头两个很简单,表示接下来有数据要输入或者输出,SOF是表示帧的起始包,最后一个很常见,表示要开始控制传输了。所谓的输入输出是基于主机控制器角度而言。

令牌包都是主机发给设备的,设备一需要接收到令牌包就知道主机控制器有请求了

OUT/IN/SETUP包:

        同步域+包标志PID+地址+端点号+CRC5+EOP

SOF包:

       同步域+包标志PID+11位帧号+CRC5+EOP


第二种数据包:包括DATA0,DATA1,DATA2,MDATA包

格式:

       同步域+包标志PID+数据+CRC16校验+EOP

在数据包中,我们看到有DATA0和DATA1,这实际上形成了一种数据纠错机制。  在数据包(注意是数据包)发送成功或者接收成功时,数据包类型切换。如果检测到包类型没有切换,说明刚刚的握手包没有发送成功。


第三种握手包:ACK、NAK、STALL、NYET包,第一个确认包,第二个不确认包,第三个挂起包,第四个未准备包。

格式:同步域+包标志+EOP

ACK包一看就是成功握

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值