usb hub区分端口 USB 子系统拓扑浅析

USB ID Database VendorID and ProductID

usb usb1: New USB device found, idVendor=1d6b, idProduct=0002, bcdDevice= 4.19
usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
usb usb1: Product: xHCI Host Controller
usb usb1: Manufacturer: Linux 4.19.157 xhci-hcd
usb usb1: SerialNumber: xhci-hcd.0.auto
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 1 port detected usb 1-1: New USB device found, idVendor=0451, idProduct=8142, bcdDevice= 1.00
usb 1-1: New USB device strings: Mfr=0, Product=0, SerialNumber=1
usb 1-1: SerialNumber: 3E000079C0A6
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected usb 1-1.1: New USB device found, idVendor=0451, idProduct=8027, bcdDevice= 1.10
usb 1-1.1: New USB device strings: Mfr=0, Product=0, SerialNumber=1
usb 1-1.1: SerialNumber: F30100617AAF
hub 1-1.1:1.0: USB hub found
hub 1-1.1:1.0: 2 ports detected usb 1-1.2: New USB device found, idVendor=0424, idProduct=9e00, bcdDevice= 2.00
usb 1-1.2: Product: USB 2.0 Fast Ethernet Adapter

usb1 是 USB Host Controller 直接控制的 roothub, roothub 是 1 起序的,所以这是第一个 hub;其中 “1-0:1.0”中的 “1-0”表示的是第 1 个 hub(即usb1)的第 0 号端口,但实际上 hub 的 port 编号是从 1 开始, 0 号 port 就是指 hub 自身。而 “:” 后面的 “1.0” 对应的语法格式是 “configID:interfaceID”,当检测到连在 roothub(usb1) 上的另一个新设备 “1-1”。 它连在 roothub 的第 2 个 port 上,编号从 1 开始。

idVendor(vid):    厂商ID
idProduct(pid): 产品ID
bcdDevice: 设备版本号 iManufacturer: 描述厂商的字符串索引
iProduct: 描述产品的字符串索引
iSerialNumber: 产品序列号字符串的索引

usb拓扑图

---------------------------------------+------------------------------  platform bus
|
/-----------------
| Host Controller | (usb1), which contains a roothub (1-0)
-----------------/ the roothub has only one downstream port
|
---------------------------------------+------------------------------ usb bus (level 1)
|
/---------
| 1-1 | hub (1-1), has 4 ports
---------/
|
-----------------+----------------+---------------------+-------+----- usb bus (level 2)
| | | |
/--------- | | |
| 1-1.1 | Fast Ethernet Adapter(1-1.2) 1-1.3 1.1.4
---------/
|
----------+-------------+------------------------------------------- usb bus (level 3)
| |
| |

那其实我们注意到hub的root必须是Host,之前在项目上就遇到过识别到client的情况下,我们的usb3803进入hub mode而导致usb口在电脑上无法识别于工作,正常应该是要bypass mode

hub的root需要usb Host Controller,常见的就是

(1)UHCI: Universal Host Controller Interface (通用主机控制接口, USB1.0/1.1),主要是因特尔自家芯片组

(2)OHCI: Open Host Controller Interface (开放主机控制接口,USB1.0/1.1),其他厂商的nvidia等使用

(3)EHCI: Enhanced Host Controller Interface (用于USB2.0高速设备的“增强主机控制接口”)

(4)XHCI: EXtensible Host Controller Interface,(用于USB3.0的接口标准), xHCI支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面3中(UHCI/OHCI/EHCI)

Android Qcom USB Driver学习(三)的更多相关文章

  1. Android JNI学习(三)——Java与Native相互调用

    本系列文章如下: Android JNI(一)——NDK与JNI基础 Android JNI学习(二)——实战JNI之“hello world” Android JNI学习(三)——Java与Nati ...

  2. Delphi 调试连接 任意Android手机/平板/盒子(要安装Google USB Driver,并且还有USB的相关许多文章)

    Delphi有时候无法连接调试一些手机,解决方案: 1.安装Google USB Driver 2.通过设备管理器查看手机或平板USB的VID,PID 3.修改你的电脑上的android_winusb ...

  3. CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android. Buffer Overflow Vulnerability reported by #plzdonthackme, Soctt.

    CVE-2016-2502-drivers/usb/gadget/f_serial.c in the Qualcomm USB driver in Android.Buffer Overflow Vu ...

  4. Android自动化测试之Monkeyrunner学习笔记(一)

    Android自动化测试之Monkeyrunner学习笔记(一) 因项目需要,开始研究Android自动化测试方法,对其中的一些工具.方法和框架做了一些简单的整理,其中包括Monkey.Monkeyr ...

  5. android的USB MTP && USB CDC/USBnet(ECM, NCM, ACM) && USB gardget

    MTP的全称是Media Transfer Protocol(媒体传输协议),它是微软公司提出的一套媒体文件传输协议.早在智能手机普及前,数码相机和MP3播放器等都使用了MTP的前身PTP(Pictu ...

  6. Android 开源项目及其学习

    Android 系统研究:http://blog.csdn.net/luoshengyang/article/details/8923485 Android 腾讯技术人员博客 http://hukai ...

  7. Android系列之网络(三)----使用HttpClient发送HTTP请求(分别通过GET和POST方法发送数据)

    ​[声明] 欢迎转载,但请保留文章原始出处→_→ 生命壹号:http://www.cnblogs.com/smyhvae/ 文章来源:http://www.cnblogs.com/smyhvae/p/ ...

  8. Android Wear(手表)开发 - 学习指南

    版权声明:欢迎自由转载-非商用-非衍生-保持署名.作者:Benhero,博客地址:http://www.cnblogs.com/benhero/ Android Wear开发 - 学习指南 http: ...

  9. Android(java)学习笔记71:生产者和消费者之等待唤醒机制

    1. 首先我们根据梳理我们之前Android(java)学习笔记70中关于生产者和消费者程序思路: 2. 下面我们就要重点介绍这个等待唤醒机制: (1)第一步:还是先通过代码体现出等待唤醒机制 pac ...

  10. android 与usb 设备通信(二)

    再次遇到android  mUsbManager.getDevicelist() 得不到usb 设备的问题.于是深入去探讨android 与usb 外围设备通信的问题.第一篇文章写的有点乱,本质就是需 ...

随机推荐

  1. STM32定时器---正交编码器模式详解

    https://blog.csdn.net/wang328452854/article/details/50579832

  2. 【Eclipse】下载安装(Windows)

    Eclipse的下载和安装 官网地址:https://www.eclipse.org/downloads/ 刚用的时候选了安装版,然后安装到一半就失败了 建议点下面的解压包下载,解压即用 注意看框线的 ...

  3. 【Java】POI Excel导出 动态行合并

    一般情况: Excel导出一般都是一行一行的记录输出 . 这是Controller代码: 标题行的设置: 标题行会设置获取的结果集的字段名,数据会自动根据设置的名称匹配装填 特殊的需求: 如页面的效果 ...

  4. 【转载】 NetworkManager——nmcli命令连接WIFI和创建热点

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明.本文链接:https://blog.csdn.net/u014695839/article/de ...

  5. Google的TPU的运算数据类型最高为32比特,也就是说TPU不支持double数据类型,浮点数类型最高支持float32

    Google的TPU的运算数据类型最高为32比特,也就是说TPU不支持double数据类型,浮点数类型最高支持float32 地址: https://cloud.google.com/tpu/docs ...

  6. 老版本mujoco: mujoco 1.31 1.40 1.50 2.00 版本下载地址

    下载地址: https://www.roboti.us/download.html 激活码下载地址: https://www.roboti.us/file/mjkey.txt 安装教程: https: ...

  7. code: 'ERR_OSSL_EVP_UNSUPPORTED' 报错解决

    报错: Error: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/h ...

  8. 《最新出炉》系列小成篇-Python+Playwright自动化测试-66 - 等待元素至指定状态(出现、移除、显示和隐藏)

    1.简介 在我们日常工作中进行UI自动化测试时,保证测试的稳定性至关重要.其中一个关键方面是正确地定位和操作网页中的元素.在网页中,元素可能处于不同的状态,有些可能在页面加载完成之前不在DOM中,需要 ...

  9. SCC缩点模板

    struct SCC { int top = 0, cntscc = 0, dfncnt = 0, n; vector<int> dfn, low, stk, instk; vector& ...

  10. 代码随想录Day16

    513.找树左下角的值 给定一个二叉树的 根节点 root,请找出该二叉树的 最底层 最左边 节点的值. 假设二叉树中至少有一个节点. 示例 1: 输入: root = [2,1,3] 输出: 1 示 ...