USB学习笔记

1. USB模式:低速-1.5Mb/s,全速-12Mb/s,高速-480Mb/s。函数

2. 注意并非符合2.0协议的USB设备就必定支持高速模式。工具

3. USB的拓扑结构为主从结构,主机叫Host,从机叫Device。spa

4.USB主机通常包括多个USB主控制器和多个根集线器,而后根集线器下再接USB集线器,而后USB集线器上再接USB设备。接口

5.一个USB主机下最多能够接127个设备。注意地址0永远是给为初始化的设备用的。开发

6.每一个USB的包都是以同步域开始的,因为同步域是一连串的0,因此在数据线上表现为一连串的脉冲,这样方便设备进行时钟的同步。同步

7.断点0是每一个USB设备都必需要具有的。io

8.非0端点必需要在Set Configuration以后才能使用。程序

9.USB设备有许多的子类,如通讯类,显示类,HID类。因为Windows系统自带了HID类设备的驱动程序,因此若是设备为HID类,则不须要本身开发驱动程序,只要设备作成标准的HID设备,而后使用Windows的标准API便可访问USB设备。im

10.HID设备HID描述符是关联于接口(而不是端点)的,因此设备不须要为每一个端点都提供一个HID描述符,一个接口对应定义一个HID描述符。通信

11.HID只支持控制和中断传输方式。

12.HID设备必需要有默认的控制管道和一个中断输入端点,中断输出端点是可选。

13.USB的报告描述符规定了该报告的一些信息,那么USB的通信报告都必须符合报告描述符的要求,好比ID,逻辑最大最小值,长度等,不符合的报告是不能发下去的,固然不符合的报告也不能发上来。

14.在STM32的USB库里,要在usb_prop.c这个函数里设置好USB的接收发送的最大字节,USB包不能超过这个设置的最大值。

15.USB的报告描述符里定义的REPORT_COUNT是指的报告的内容的字节数,注意不包括报告ID。

16.报告描述符必须包含的选项:

Input( Output or  Feature )UsageUsagePageLogicalMinimumLogical MaximumReportSizeReportCount.

16. REPORT_SIZE是表示报告大小(即这个字段的宽度),就是说报告里每一个字节的有效宽度,好比REPORT_SIZE为0x01,则报告里的数据每一个字节只有一位有效,也就是数据最大值为1

17.BUS Hound 工具不能主动读USB设备,他只是捕获数据,必须有另外的程序来对USB设备进行读时,他才能捕获数据。