USB设备协议
1、USB描述符
2、USB设备命令
3、USB设备的状态图
4、总线枚举
USB设备枚举过程(设备识别的过程)
当一个USB设备插入主机后,会有以下活动:
简析:当USB设备一进来,首先上电,然后复位(同时主机也希望设备先复位),复位的同时设备会将自己的地址(设备地址,端口地址)设置为0,然后主机会希望设备提供设备描述符,向设备地址0的地方发送命令(获取Device Descriptor),USB反馈给主机,然后主机可以对USB设备再复位(可选),主机会对USB设备重新进行地址分配,并向新分配的地址发命令,索取相关信息(设备类型(键盘、鼠标)等其他信息),知道了设备类型,可以为设备安装默认的驱动程序。
1、USB描述符
通过一套描述符,USB设备向USB主机描述自己的功能、属性、配置等信息
标准描述符:(通用性的)
- 设备描述符(Device Descriptor)
- 配置描述符(Configuration Descriptor)
- 接口描述符(Interface Descriptor)
- 端点描述符(Endpoint Descriptor)
- 字符串描述符(String Descriptor)
1、设备描述符(Device Descriptor)
描述设备的类型、厂家的信息、USB的协议类型、端点的包数据的最大长度等每个USB谁只有一个 Device Descriptor
Offset表示寄存器的偏移地址,Size表示对应数据对应的大小(字节数)。
2、配置描述符(Configuration Descriptor)
每个配置描述符提供了设备特定的配置,描述了设备的接口和端点的性质、供电模式,设备的耗电
3、接口描述符(Interface Descriptor)
接口描述符,描述了设备的不同接口的特性,例如,一个设备有U盘的功能,又有键盘的功能。用两个接口描述符分别描述两个功能。
4、端点描述符(Endpoint Descriptor)
5、字符串描述符(String Descriptor)
描述了设备制造商、设备名称、序列号等信息