本文是读圈圈教你玩usb的第一章节 usb基础的读书笔记,根据这篇内容可以理解usb的端点、管道等概念;
- usb的插头和插座
记录2点:
- usb2.0的四根线是电源和地的触点比D+ D1长;当插入的时候电源和地先接通,然后才是数据;当拔出的时候是数据线先断开;
- otg口的ID检测机制
当手机通过micro线插入pc的场景–普通usb线
和手机通过micro usb线接入U盘—otg usb线
这里只是硬件接口使用了ID 功能,线缆内部还是4跟线
- usb插入检测机制
首先,在USB集线器的每个下游端口的D+和D-上,分别接了一个15K欧姆的下拉电阻到地。这样,在集线器的端口悬空时,就被这两个下拉电阻拉到了低电平。而在USB设备端,在D+或者D-上接了1.5K欧姆上拉电阻。对于全速和高速设备,上拉电阻是接在D+上;而低速设备则是上拉电阻接在D-上。这样,当设备插入到集线器时,由1.5K的上拉电阻和15K的下拉电阻分压,结果就将差分数据线中的一条拉高了。集线器检测到这个状态后,它就报告给USB主控制器(或者通过它上一层的集线器报告给USB主控制器),这样就检测到设备的插入了。USB高速设备先是被识别为全速设备,然后通过HOST和DEVICE两者之间的确认,再切换到高速模式的。在高速模式下,是电流传输模式,这时将D+上的上拉电阻断开。
全速设备和高速设备的识别—待补充
- Usb描述符
1、设备描述符(Device Descriptors)
2、配置描述符(Configuration Descriptors)
3、接口描述符(Interface Descriptors)
4、端点描述符(Endpoint Descriptors)
一个USB设备只有一个设备描述符,设备描述符里面定义了该设备有多少种配置,每种配置描述符对应着配置描述符;而在配置描述符中又定义了该配置里面有多少个接口,每个接口有对应的接口描述符;在接口描述符里面又定义了该接口有多少个端点,每个端点对应一个端点描述符;端点描述符定义了端点的大小,类型等等。这些事协议规定的基础描述符还有HID描述符字符串描述符等
对于配置 接口和端点的理解:
一个接口对应一个功能,配置是功能的组合;接口和配置是软件的虚拟概念;端点是usb控制器内部的缓存,可以理解成一个物理概念;usb host和device交互就是和device的不同端点的交互;交互的通道叫做管道;
这个是书上的关于这几个概念的比喻:
对于描述符的理解
描述符是存储在device中的关于设备的信息如PID VID和端点信息等;host的枚举过程就是从device获取这个信息;
描述符详细信息
- usb数据包
USB 采用“令牌包”-“数据包”-“握手包”的传输机制
在令牌包中指定数据包去向或者来源的设备地址和端点(Endpoint),从而保证了只有一个设备对被广播的数据包/令牌包作出响应。
握手包表示了传输的成功与否