赞
踩
1.按照版本划分:
USB 目前可以划分为 USB1.0、USB2.0、USB3.0 以及正在即将到来的USB4.0
2.按照接口类型划分:
3.拓扑结构
4.usb OTG
USB 描述符就是用来描述 USB 信息的,USB 设备使用描述符来向主机报告自己的相关属性信息,常用描述符如下:
1)设备描述符:设备描述符用于描述 USB 设备的一般信息,USB 设备只有一个设备描述符
2)配置描述符:配置描述符描述了设备可提供的接口(Interface)数量、配置编号、供电信息等,
3)字符串描述符:字符串描述符是可选的,字符串描述符用于描述一些方便人们阅读的信息,比如制造商、设备名称啥的
4)接口字符串:接口描述符中一般记录接口编号、接口对应的端点数量、接口所述的类等.配置描述符中指定了该配置下的接口数量,配置可以提供一个或多个接口,接口描述符用于描述接口属性。
5)端点描述符:端点描述符描述了树传输类型、方向、数据包大小、端点号等信息.端点是设备与主机之间进行数据传输的逻辑接口,除了端点 0是双向端口,其他的端口都是单向的。
2、数据包
3、握手包
在端点描述符中 bmAttributes 指定了端点的传输类型,一共有 4 种传输类型。
控制传输
同步传输
批量传输
中断传输
1、控制传输
控制传输一般用于特定的请求,比如枚举过程就是全部由控制传输来完成的,比如获取描述符、设置地址、设置配置等
控制传输分为三个阶段:
1)建立阶段(SETUP):建立阶段使用 SETUP 令牌包,SETUP 使用DATA0 包。
2)数据阶段(DATA)(可选):
数据阶段是 0 个、1 个或多个输入(IN)/输出(OUT)事务
数据阶段的第一个数据包必须是 DATA1,每次正确传输以后就在 DATA0和DATA1 之间进行切换
3)状态阶段(STATUS):
状态阶段的传输方向要和数据阶段相反,比如数据阶段为 IN 的话状态阶段就要为 OUT,状态阶段使用DATA1包。
读控制传输阶段
2、同步传输
3、批量传输
4、中断传输
当 USB 设备与USB主机连接以后主机就会对 USB设备进行枚举,通过枚举来获取设备的描述符信息,主机得到这些信息以后就知道该加载什么样的驱动、如何进行通信等。
USB 枚举过程如下:
①、第一回合,当USB 主机检测到USB设备插入以后机会发出总线复位信号来复位设备。USB 设备复位完成以后地址为 0,主机向地址 0 的端点 0 发送数据,请求设备的描述符。设备得到请求以后就会按照主机的要求将设备描述符发送给主机,主机得到设备发送过来的设备描述符以后,如果确认无误就会向设备返回一个确认数据包(ACK)。
②、第二回合,主机再次复位设备,进入地址设置阶段。主机向地址 0 的端点0 发送设置地址请求数据包,新的设备地址就包含在这个数据包中,因此没有数据过程。设备进入状态过程,等待主机请求状态返回,收到以后设备就会向主机发送一个 0 字节状态数据包,表明设备已经设置好地址了,主机收到这个 0 字节状态数据包以后会返回一个确认包(ACK)。设备收到主机发送的ACK 包以后就会使用这个新的设备地址,至此设备就得到了一个唯一的地址。
③、第三回合,主机向新的设备地址端点 0 发送请求设备描述符数据包,这一次主机要获取整个设备描述符,一共是 18个字节。
④、和第③步类似,接下来依次获取配置描述符、配置集合、字符串描述符等等。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。