usb_hub_descriptor的详细介绍

struct--
usb_hub.usb_hub_descriptor

struct usb_hub_descriptor
|--------------------------|
|__u8   bDescLength        |
|__u8   bDescriptorType    |
|__u8   bNbrPorts          |
|__le16 wHubCharacteristics|
|__u8   bPwrOn2PwrGood     |
|__u8   bHubContrCurrent   |
|__u8   DeviceRemovable[i] |
|__u8   PortPwrCtrlMask[i] |
|--------------------------|

bLength
    集线器类描述符的字节数长度
bDescriptorType
    描述符类型; 集线器描述符: 0X29
bNbrPorts
    集线器支持的下游端口数目
wHubCharacteristics
    集线器特征描述
    D1~0: 逻辑电源切换模式; 00: 所有端口同时切换; 01: 个别端口切换; 1x: 保留
    D2 : 组合设备指示; 0: 一个独立的集线器设备; 1: 该集线器为一组合设备的一部分
    D3~4: 电流过载保护模式
          00: 全体电流过载保护,集线器通过综合所有端口的电流来判断是否有电流过载现象
          01: 个体电流过载保护,集线器分别判断各个端口是否有电流过载现象
          1x: 没有电流过载保护
    D15~5:保留
bPwrOn2PwrGood
    从端口加电到端口正常工作的时间间隔(以2ms为单位),USB系统根据该值来判断端口加电后的等待时间
bHubContrCurrent
    该集线器设备本身(USB控制器)所需的最大电流
DeviceRemovable    (大小不定)
    用来指示连接在集线器端口的设备是否可移走,该域长度在以字节对齐为前提的基础上,随集线器的端口数变化而变化。从低位到高位,每一位表示一个集线器端口的状态,当值为0时,表示连接相应端口的USB设备可移走;为1时,表示端口上设备不可移走
    集线器端口与数据位的映射如下:
    位0 <--> 保留
    位1 <--> 端口1
    位2 <--> 端口2
        ......
    位n <--> 端口n
PortPwrCtrlMask
    长度与DeviceRemovable域相同,每个数据位都必须设置为1,无实际意义,仅为了版本兼容


实验数据:
-------------------------------------------------
[10628.299000] buffer[0] = B
[10628.299000] buffer[1] = 29
[10628.299000] buffer[2] = 8

[10628.299000] buffer[3] = 2   低位
[10628.299000] buffer[4] = 0   高位

[10628.299000] buffer[5] = 1   2ms

[10628.299000] buffer[6] = 0

[10628.299000] buffer[7] = 0
[10628.299000] buffer[8] = 0

[10628.299000] buffer[9] = FF
[10628.299000] buffer[10] = FF
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值