USB学习笔记
-
NRZ-I编码中,编码后电平只有正负电平之分,没有零电平,是不归零编码。(电平翻转代表0,不变代表1)
-
一个设备只有一个设备描述符,设备描述符决定该设备有多少种配置。
每种配置都有一个配置描述符,配置描述符中定义了该配置有多少个接口。
每个接口都有一个接口描述符,接口描述符定义了该接口有多少个端点。
(如果有类特殊描述符)每个接口都有一个类特殊描述符,
每个端点都有一个端点描述符,端点描述符定义了该端点的大小 ,类型。主机发送数据包,都不能超过端点的最大包长 -
USB 是一位一位传送的。LSB在前,MSB在后。即低位先发。
-
USB 传输是以包为基本单位的。一个包被分为 不同类型的域。每个包都是 同步域 + 包标识符(PID) + … + 包结束符(EOP)
-
同步域用来通知USB串行接口引擎数据要开始传输,
也可以用为数据时钟,因为同步域一般是00000001 ,而NRZI编码则是电平不断翻转 -
包标识符有8位,后4位为前4位的反码,用以校验。
-
包分为4种,令牌包,数据包,握手包,特殊包。令牌包用来启动一次USB传输;数据包用来传输数据;
握手包用来表示一个传输是否被对方确认。 -
USB事务:把不同的包组织成事务才能传输数据。一个事务通常由 令牌包 + 数据包 + 握手包 组成
-
USB枚举过程简析:(一)对设备复位,要求设备返回设备描述符,(此时设备地址为默认地址0)。返回的设备描述符至少要有8字节,因为主机要知道端点的最大包长度, 而这个信息在设备描述符的第8个字节。(二)再一次进行复位,并给设备分配新的地址(三)使用新分配的地址,获取全部18个字节的设备描述符(四)主机获取配置描述符