USB 学习笔记

usb描述符

定义:

  • usb描述符主要用于设备的功能和行为,记录了设备的类型、厂商id和产品id、端点情况、版本号等信息;
  • 其中usb1.1包含了设备描述符(Device Descriptor),配置描述符(Configuration Descriptor)、接口描述符(Interface Descriptor)、端点描述符(Endpoint Descriptor)、字符串描述符(String Descriptor);
  • usb2.0新增Device Qualifier Descriptor和Other Speed Configuration Descriptor

描述符概述:

  • 设备描述符 :主要记录USB协议版本号、设备类型、端点0的最大包长、厂商id(vid)和产品(pid)、设备版本号、厂商字符串索引、产品字符串索引、设备序列号索引、可能的配置数等;

  • 配置描述符 :主要记录接口数量、配置编号、供电方式、是否支持远程唤醒、电流需求量等;

  • 接口描述符 :主要记录接口的编号、接口的端点数、接口所使用的类、子类、协议等;

  • 端点描述符 :主要记录端点号及方向、端点的传输类型、最大包长、查询时间间隔;

  • 字符串描述符 :主要提供一些方便人们阅读的信息;(非必须)

usb设备的枚举过程

  • usb host检测到usb device插入,即刻对设备进行复位;
  • 主机对设备又一次复位,随即进入设置地址阶段;
  • 主机再次获取设备描述符;
  • 主机获取配置描述符;
  • 如果有字符串描述符,还有获取字符串描述符

包的种类

  • 令牌包
  • 数据包
  • 握手包
  • 特殊包

usb的四种传输类型

  • 批量传输 :常用在数据量大、实时性要求不高的场合;例如USB打印机、扫描仪、大容量存储设备;

  • 中断传输 :常用在数据量不大、实时性要求高的设备中;例如HID设备,鼠标、键盘、轨迹球、手柄等;

  • 等时传输 :常用在数据量大、实时性要求高的场合;例如音视频设备;

  • 控制传输 :主要用在设备的枚举过程;主要有建立过程、数据过程、状态过程;

  • 传输类型与端点所支持的最大包长

    • 对于控制传输端点,低速模式最大包长8byte;高速模式最大包长8byte;全速模式可选8、16、32、64byte;
    • 对于等时传输端点,低速模式不支持;高速模式最大包长1024byte;全速模式1023byte;
    • 对于中断传输端点,低速模式最大包长8byte;高速模式最大包长1024byte;全速模式64byte;
    • 对于批量传输端点,低速模式不支持;高速模式固定512byte;全速模式可选8、16、32、64byte;
posted @ 2021-12-23 11:09  LiJin_hh  阅读(82)  评论(0编辑  收藏  举报