精华内容
下载资源
问答
  • USB HUb无疑是普及度最高的外设之一,但我们在享用它们便捷的同时,是否想过一个问题:为啥USB Hub身上的USB接口不是4个,7个就是10个呢?USBHub的4、7、10情怀USB Hub又称USB集线器,它使用星型拓扑结构可扩展出多...

    USB  HUb无疑是普及度最高的外设之一,但我们在享用它们便捷的同时,是否想过一个问题:为啥USB Hub身上的USB接口不是4个,7个就是10个呢?

    170050d072e256d3cc04f3cd2057d3cf.png

    USBHub的4、7、10情怀

    USB Hub又称USB集线器,它使用星型拓扑结构可扩展出多个USB接口。USB Hub的核芯是主控芯片(又称桥接芯片),通过软硬件算法将PC身上的某个USB接口(上游端口)资源分配给USB Hub扩展出来的USB接口(下游端口)使用。

    1af11f1a5d389f442eaf7d837220b45f.png

    细心的读者可能已经注意到了,纵观市面上的USB Hub,它们身上扩展出来的USB接口数量几乎都是4个、7个或者10个。理论上USB Hub的桥接芯片都支持一拖四(别问原因,这是约定俗成的事情),为什么市面上没有配备8个或12个USB接口的Hub呢?

    这个原因还得从USB Hub的拓扑结构谈起。Hub桥接芯片都是一拖四的,要想扩展更多USB,就只能同时使用更多桥接芯片共同努力了。以7个接口的USB Hub为例,它的拓扑结构见下图,原理是“桥接芯片2”将“桥接芯片1”旗下的1个USB接口再度拆分为4,总计7个接口。同理,如果是三颗桥接芯片将可扩展出10个USB接口,以此类推。

    e27ec0755c4b27b165934f828a60f443.png

    由此就会引发一个问题:“桥接芯片1”扩展出来的USB 1、USB 2和USB 3将平均分配上游端口3/4的带宽,而“桥接芯片2”旗下的USB 4、USB 5、USB 6、USB 7则共用剩余的1/4带宽。没错,USB接口带宽不一致,就是7口和10口USB Hub所面临的最大问题。

    因此很多7口USB Hub都采用了3个USB3.0和4个USB2.0接口的设计,恰好可以掩饰USB接口带宽不一致的尴尬。而一些USB Hub配备了7个或10个USB3.0接口,但真正能同时跑出USB3.0速度的却最多只有其中的3个而已!网上很多用户反映的USB Hub接口速度不一的问题,就是上面的原因引起的。

    因此,如果你购买的是4口以上的USB Hub,一定要留意哪些接口是高带宽的(通常靠近数据线一头的接口为高带宽),在连接闪存盘、移动硬盘等存储设备或给移动设备充电时一定要插在这些接口上。至于那些低带宽的接口,则可用于连接键盘、鼠标等外设。

    我该怎么买USB Hub?

    如果你需要一款4口以上的USB Hub,或是平时需要用Hub连接移动硬盘,那就一定要选择自带外接电源的产品!

    2d9eb11d3ec6ad22c75f95a91cee4eb0.png

    我们都知道,USB2.0和USB3.0所能传输的最大电流值分别为500mA和900mA,而一款移动硬盘(HDD介质)则需要450mA~800mA(视不同型号) 的电流才能稳定驱动。换句话说,在USB2.0 Hub上接驳移动硬盘,移动硬盘运行起来会非常勉强;如果USB3.0 Hub在接驳移动电源时还连接着键盘鼠标,那移动硬盘同样面临着供电不足的隐患。问题来了,移动硬盘供电不稳极易引起硬件故障,导致硬盘和内部重要数据受损!

    因此,只要你觉得今后有用USB Hub连接移动硬盘的可能性,无论是USB2.0/3.0 Hub,都要选择配备外接电源的型号,弥补USB接口自身电力供应不足的缺陷。实际上,有关USB Hub的选购还有很多值得留意的地方,感兴趣的童鞋可以看看这篇文章:http://www.cfan.com.cn/2016/0518/126197.shtml

    展开全文
  • 其实这也没什么大不了的,现在的USBHub种类不要太多,完全可以满足大家的需求。可是真用起来麻烦事儿就多了,咱们这里就捡一些典型问题说说吧。USB接口的速度肯定是小伙伴最在意的,有些人可能会被“USB 3.0”Hu...
    406286d7e9d3f29ef9eee4a893bff8dc.png

    点击上方电脑爱好者关注我们

    现在很多小伙伴的爱机是小机箱、一体机、笔记本,这些电脑当然体积小巧,性能也不见得差,但要说到接口数量,特别是USB接口,很多小伙伴大概就有点挠头了吧。 其实这也没什么大不了的,现在的USBHub种类不要太多,完全可以满足大家的需求。 可是真用起来麻烦事儿就多了,咱们这里就捡一些典型问题说说吧。 1c7096603fcc7ed76413455ab9104f3c.png USB接口的速度肯定是小伙伴最在意的,有些人可能会被“USB 3.0”Hub这样的说法吸引,宁可多花钱也要入,这里可得说明一下,这些Hub实际上只是能连接电脑上的USB 3.0接口,整个Hub上的设备合起来的速度能接近USB 3.0的速度而已。 083d83a5d9336e37ccefc092154cbc57.png 此外USB 3.0的另一大优点是供电能力强,但电脑接口的电流也要同时分给Hub上的多个USB接口,所以同时连多块移动硬盘的时候供电不足也不奇怪,真有这个需求,请购买带外接电源的Hub。 8888fdedd25ab1158d47fdc94b34b32c.png 细心的小伙伴会发现,市面上的USB Hub接口数量通常是4、7个。 4个接口好理解,但为什么会给出7这样的接口数量呢? 这是因为第二次分配的时候,“桥接芯片2”会将“桥接芯片1”下的其中1个USB通道拆分为4个,就形成了7个接口。 cca75ace272be53999d4d7e78d592c7b.png 这样多接口的Hub上还有一个特征,那就是高低速接口,对于只会进行平均分配的桥接芯片,一次分配的剩余3个接口与二次分配的4个接口分得的带宽显然不一样。 即使桥接芯片能够做到智能分配带宽给各个接口,二次分配后的接口也会因为更多的层级产生更大的延迟和带宽损失。 9525ed1a47e39a7af17be314fae391df.png 有些小伙伴会发现,在插拔USB Hub上的键盘鼠标时,常常会导致Hub上的U盘读写假死几秒钟,甚至可能失败。 这是因为USB Hub的所有设备都连到了电脑的一个USB接口上,由一个USB枚举线程负责,它处理插拔的新设备时,该Hub上连接的所有USB设备工作都会被挂起。 所以在进行重要的数据读写时,千万别去插拔Hub上的其他设备。 b669a4f651a1a664edc3fc035eb83d82.png 6ca5b59266c4b0b1b20d3e882e229faa.png

    点击“阅读原文”查看更多精彩

    展开全文
  • EHCI和OHCI,UHCI的比较和...EHCI(enhanced host controller interface): usb 2.0的主控制器标准接口。 OHCI(open host controller inferface):一个不仅仅是usb用的主控制器接口标准。主要是遵循csr (configuration sp

    EHCI和OHCI,UHCI概念

    USB控制器类型:

    OHCI、UHCI都是USB1.1的接口标准,而EHCI是对应USB2.0的接口标准,最新的xHCI是USB3.0的接口标准。

    OHCI( Open Host Controller Interface ) :一个不仅仅是usb用的主控制器接口标准。主要是遵循csr (configuration space register)标准。是其他厂商在设计usb host controller时遵循的标准,如via, nec, ali, 包括nvidia等等。支持USB1.1的标准。

    UHCI (Universal Host Controller Interface ),是Intel主导的对USB1.0、1.1的接口标准,与OHCI不兼容。

    EHCI(Enhanced Host Controller Interface ) ,是Intel主导的USB2.0的接口标准。EHCI仅提供USB2.0的高速功能,而依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。

    xHCI( eXtensible Host Controller Interface ),是最新的USB3.0的接口标准,它在速度、节能、虚拟化等方面都比前面3中有了较大的提高。xHCI 支持所有种类速度的USB设备(USB 3.0 SuperSpeed, USB 2.0 Low-, Full-, and High-speed, USB 1.1 Low- and Full-speed)。xHCI的目的是为了替换前面三种(UHCI/OHCI/EHCI)。
    在这里插入图片描述

    usb hub

    USB Hub可以将一个USB口转换为多个,USB Host带有Root Hub,第一个USB设备是一个根集线器(Root_hub),它控制连接到其上的整个USB总线,该控制器是连接PCI总线和USB总线的桥,也是该总线上的第一个USB设备,USB Hub对于上游而言是一个USB Device, 对于下游而言扮演USB Host, 所以USB设备本身不知道自己连接在Hub还是Root Hub上。

    EHCI和OHCI host Controller初始化

    rk3399平台

    rk3399平台host Controller初始化信息

    [    2.479720] ehci-platform fe380000.usb: EHCI Host Controller
    [    2.480680] ehci-platform fe380000.usb: new USB bus registered, assigned bus number 4
    [    2.481979] ehci-platform fe380000.usb: irq 28, io mem 0xfe380000
    [    2.488655] ehci-platform fe380000.usb: USB 2.0 started, EHCI 1.00
    [    2.489833] usb usb4: New USB device found, idVendor=1d6b, idProduct=0002
    [    2.490486] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    2.491138] usb usb4: Product: EHCI Host Controller
    [    2.491617] usb usb4: Manufacturer: Linux 4.4.189 ehci_hcd
    [    2.492115] usb usb4: SerialNumber: fe380000.usb
    [    2.494539] hub 4-0:1.0: USB hub found
    [    2.494966] hub 4-0:1.0: 1 port detected
    
    [    2.497460] ohci-platform fe3a0000.usb: Generic Platform OHCI controller
    [    2.499043] ohci-platform fe3a0000.usb: new USB bus registered, assigned bus number 3
    [    2.500263] ohci-platform fe3a0000.usb: irq 29, io mem 0xfe3a0000
    [    2.555904] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
    [    2.556557] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    2.557209] usb usb3: Product: Generic Platform OHCI controller
    [    2.557780] usb usb3: Manufacturer: Linux 4.4.189 ohci_hcd
    [    2.558279] usb usb3: SerialNumber: fe3a0000.usb
    [    2.560624] hub 3-0:1.0: USB hub found
    [    2.561050] hub 3-0:1.0: 1 port detected
    

    经由usb hub扩展,鼠标设备(低速设备)的加载信息,鼠标连接到ehci控制器上面。

    [root@rk3399:/]# [   69.331475] usb 3-1.1: new low-speed USB device number 4 using ehci-platform
    [   69.424705] usb 3-1.1: New USB device found, idVendor=046d, idProduct=c05a
    

    不经usb hub扩展,鼠标设备(低速设备)的加载信息,鼠标连接到ohci控制器上面。

    [root@rk3399:/]# [   16.243619] usb 3-1: new low-speed USB device number 2 using ohci-platform
    [   16.427796] usb 3-1: New USB device found, idVendor=046d, idProduct=c05a
    

    无论是否经usb hub扩展,U盘设备(高速设备)的加载信息,U盘连接到ehci控制器上面。

    [root@rk3399:/]# [ 6315.938780] usb 4-1: new high-speed USB device number 3 using ehci-platform
    [ 6316.062160] usb 4-1: New USB device found, idVendor=05e3, idProduct=0749
    

    理论上,EHCI仅提供USB2.0的高速功能,要依靠UHCI或OHCI来提供对全速(full-speed)或低速(low-speed)设备的支持。鼠标设备这样的低速设备应该连接到UHCI或OHCI控制器上,但是经由usb hub,鼠标也可以连接到EHCI控制器上。所以,usb hub是可以将不同速度的设备都连接到EHCI控制器上的,具有匹配不同速度设备的能力。

    xx18平台

    内核usb host接口相关文件
    ./arch/arm/mach-s5p4418/include/mach/usb-phy.h
    ./arch/arm/mach-s5p4418/soc/setup-usb-phy.c
    ./drivers/usb/host/ehci.h
    ./drivers/usb/host/ehci-hcd.c
    ./drivers/usb/host/ehci-synop.c
    ./drivers/usb/host/ohci.h
    ./drivers/usb/host/ohci-hcd.c
    ./drivers/usb/host/ohci-synop.c
    
    INCR16 INCR8 INCR4
    
    0xC002_0000 OHCI Controller
    0xC003_0000 EHCI Controller
    

    xx18平台USB host Controller初始化信息,默认xx18平台只配置了EHCI,OHCI没有配置:

    [    2.050000] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
    [    2.057000] nxp-ehci nxp-ehci: SLsi Synopsys EHCI Host Controller
    [    2.063000] nxp-ehci nxp-ehci: new USB bus registered, assigned bus number 1
    [    2.070000] nxp-ehci nxp-ehci: irq 50, io mem 0xc0030000
    [    2.082000] nxp-ehci nxp-ehci: USB 0.0 started, EHCI 1.00
    [    2.087000] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
    [    2.094000] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    2.101000] usb usb1: Product: SLsi Synopsys EHCI Host Controller
    [    2.107000] usb usb1: Manufacturer: Linux 3.4.39 ehci_hcd
    [    2.113000] usb usb1: SerialNumber: nxp-ehci
    [    2.118000] hub 1-0:1.0: USB hub found
    [    2.121000] hub 1-0:1.0: 3 ports detected
    

    若要添加对OHCI的支持,我们需要将内核中OHCI相关配置打开,如下:

    --- a/linux/kernel/kernel-3.4.39/arch/arm/configs/s5p6818_linux_forlinx_defconfig
    +++ b/linux/kernel/kernel-3.4.39/arch/arm/configs/s5p6818_linux_forlinx_defconfig
    @@ -2465,8 +2465,13 @@ CONFIG_USB_EHCI_SYNOPSYS_RESUME_WORK=y
     # CONFIG_USB_ISP116X_HCD is not set
     # CONFIG_USB_ISP1760_HCD is not set
     # CONFIG_USB_ISP1362_HCD is not set
    -# CONFIG_USB_OHCI_HCD is not set
    +CONFIG_USB_OHCI_HCD=y
    +CONFIG_USB_OHCI_SYNOPSYS=y
    +# CONFIG_USB_OHCI_HCD_PLATFORM is not set
     # CONFIG_USB_EHCI_HCD_PLATFORM is not set
    +# CONFIG_USB_OHCI_BIG_ENDIAN_DESC is not set
    +# CONFIG_USB_OHCI_BIG_ENDIAN_MMIO is not set
    +CONFIG_USB_OHCI_LITTLE_ENDIAN=y
     # CONFIG_USB_SL811_HCD is not set
     # CONFIG_USB_R8A66597_HCD is not set
     CONFIG_USB_DWCOTG=y
    

    打开配置以后,OHCI初始化信息:

    [    2.610000] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver
    [    2.616000] nxp-ohci nxp-ohci: SLsi Synopsys OHCI Host Controller
    [    2.623000] nxp-ohci nxp-ohci: new USB bus registered, assigned bus number 3
    [    2.630000] nxp-ohci nxp-ohci: irq 50, io mem 0xc0020000
    [    2.690000] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001
    [    2.697000] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1
    [    2.704000] usb usb3: Product: SLsi Synopsys OHCI Host Controller
    [    2.710000] usb usb3: Manufacturer: Linux 3.4.39 ohci_hcd
    [    2.715000] usb usb3: SerialNumber: nxp-ohci
    [    2.720000] hub 3-0:1.0: USB hub found
    [    2.724000] hub 3-0:1.0: 3 ports detected
    
    展开全文
  • USB hubusb接口重映射:udev 规则

    千次阅读 2016-08-24 15:44:07
    hubusb接口重映射:udev 规则 你在开发的过程中是否会出现 USB端口号会发生变化。 例如: 机器人底盘与雷达都是 ttyUSB* .其序号与接入的先后有关。 对于写好的launch每次修改对应接口是不是 很麻法,或者...

    USB hub 多usb接口重映射:udev 规则

    你在开发的过程中是否会出现 USB端口号会发生变化。 例如: 机器人底盘与雷达都是 ttyUSB* .其序号与接入的先后有关。 对于写好的launch每次修改对应接口是不是

    很麻法,或者每次得先插入一个再插另外一个。才能保证ttyUSB0 ttyUSB1. 但是如果你重启系统,说不定还是有问题出现。。

            ==》 不如将端口重映射到新的固定的名字,并且设置其权限为可读。 这样不管你的先后插入,符合对应id的硬件端口自动的映射到新定义的名字。  


    一. 单一的USB映射说明

      参见:http://blog.csdn.net/zyh821351004/article/details/41577105

    lsusb 命令查看所有usb端口信息。 

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ lsusb   
    2. Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.   
    3. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
    4. Bus 001 Device 004: ID 04f2:b48c Chicony Electronics Co., Ltd   
    5. Bus 001 Device 009: ID 046d:c31c Logitech, Inc. Keyboard K120  
    6. Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    7. Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp.   
    8. Bus 001 Device 008: ID 24ae:1100    
    9. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ lsusb   
    2. Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.   
    3. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
    4. Bus 001 Device 004: ID 04f2:b48c Chicony Electronics Co., Ltd   
    5. Bus 001 Device 009: ID 046d:c31c Logitech, Inc. Keyboard K120  
    6. Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    7. Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp.   
    8. Bus 001 Device 008: ID 24ae:1100    
    9. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
    udev的规则说明,可以参考博客说明:http://blog.csdn.net/cokewei/article/details/8281239

    简单说明:

    $kernel, %k:设备的内核设备名称,例如:sdacdrom

    ID  10c4:ea60     表示usb设备的ID(这个ID由芯片制造商设置,可以唯一表示该设备)
        10c4    usb_device_descriptor.idVendor
        ea60    usb_device_descriptor.idProduct
     

    依据这些信息,就可以简单的写udev规则了:rplidar.rules

    sudo gedit /etc/udev/rules.d/rplidar.rules

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. # set the udev rule , make the device_port be fixed by rplidar  
    2. #  
    3. KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="rplidar"  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. # set the udev rule , make the device_port be fixed by rplidar  
    2. #  
    3. KERNEL=="ttyUSB*", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", MODE:="0777", SYMLINK+="rplidar"  


    创建生效后重新插拔USB。

    用下面的命令就可以查看对应的映射结果了。

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ ls -l /dev |grep ttyUSB  
    2. lrwxrwxrwx  1 root   root             7 Apr 14 13:18 rplidar -> ttyUSB0  
    3. crwxrwxrwx  1 root   uucp      188,   0 Apr 14 13:18 ttyUSB0  
    4. yhzhao@yhzhao:~$   
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ ls -l /dev |grep ttyUSB  
    2. lrwxrwxrwx  1 root   root             7 Apr 14 13:18 rplidar -> ttyUSB0  
    3. crwxrwxrwx  1 root   uucp      188,   0 Apr 14 13:18 ttyUSB0  
    4. yhzhao@yhzhao:~$   


    二. USB hub的多端口映射:

    同一个hub连接设备base和laser, 将其重映射换名称到  slamtec_base_  和  slamtec_laser_

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ lsusb   
    2. Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.   
    3. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
    4. Bus 001 Device 004: ID 04f2:b48c Chicony Electronics Co., Ltd   
    5. Bus 001 Device 009: ID 046d:c31c Logitech, Inc. Keyboard K120  
    6. Bus 001 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    7. Bus 001 Device 012: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    8. Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp.   
    9. Bus 001 Device 008: ID 24ae:1100    
    10. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ lsusb   
    2. Bus 002 Device 002: ID 0bda:0411 Realtek Semiconductor Corp.   
    3. Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub  
    4. Bus 001 Device 004: ID 04f2:b48c Chicony Electronics Co., Ltd   
    5. Bus 001 Device 009: ID 046d:c31c Logitech, Inc. Keyboard K120  
    6. Bus 001 Device 011: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    7. Bus 001 Device 012: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP210x UART Bridge / myAVR mySmartUSB light  
    8. Bus 001 Device 005: ID 0bda:5411 Realtek Semiconductor Corp.   
    9. Bus 001 Device 008: ID 24ae:1100    
    10. Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub  


    可以看到hub的信息,同时hub上连接了两个串口转USB的设备,并且两者硬件使用的是一样的, 一种是依据设备的device配合一起分别定义udev规则,同上。

    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

    现提供固定hub的每个端口的映射。

     udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0

    说明参见: http://askubuntu.com/questions/49910/how-to-distinguish-between-identical-usb-to-serial-adapters


    可以找到hub端口的不同:

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB1  
    2.   
    3. Udevadm info starts with the device specified by the devpath and then  
    4. walks up the chain of parent devices. It prints for every device  
    5. found, all possible attributes in the udev rules key format.  
    6. A rule to match, can be composed by the attributes of the device  
    7. and the attributes from one single parent device.  
    8.   
    9.   looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/ttyUSB1':  
    10.     KERNEL=="ttyUSB1"  
    11.     SUBSYSTEM=="usb-serial"  
    12.     DRIVER=="cp210x"  
    13.     ATTR{port_number}=="0"  
    14.   
    15.   looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0':  
    16.     KERNELS=="1-2.2:1.0"  
    17.     SUBSYSTEMS=="usb"  
    18.     DRIVERS=="cp210x"  
    19.     ATTRS{bInterfaceClass}=="ff"  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB1  
    2.   
    3. Udevadm info starts with the device specified by the devpath and then  
    4. walks up the chain of parent devices. It prints for every device  
    5. found, all possible attributes in the udev rules key format.  
    6. A rule to match, can be composed by the attributes of the device  
    7. and the attributes from one single parent device.  
    8.   
    9.   looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0/ttyUSB1':  
    10.     KERNEL=="ttyUSB1"  
    11.     SUBSYSTEM=="usb-serial"  
    12.     DRIVER=="cp210x"  
    13.     ATTR{port_number}=="0"  
    14.   
    15.   looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.2/1-2.2:1.0':  
    16.     KERNELS=="1-2.2:1.0"  
    17.     SUBSYSTEMS=="usb"  
    18.     DRIVERS=="cp210x"  
    19.     ATTRS{bInterfaceClass}=="ff"  


    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0  
    2.   
    3. Udevadm info starts with the device specified by the devpath and then  
    4. walks up the chain of parent devices. It prints for every device  
    5. found, all possible attributes in the udev rules key format.  
    6. A rule to match, can be composed by the attributes of the device  
    7. and the attributes from one single parent device.  
    8.   
    9.   looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0':  
    10.     KERNEL=="ttyUSB0"  
    11.     SUBSYSTEM=="usb-serial"  
    12.     DRIVER=="cp210x"  
    13.     ATTR{port_number}=="0"  
    14.   
    15.   looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0':  
    16.     KERNELS=="1-2.1:1.0"  
    17.     SUBSYSTEMS=="usb"  
    18.     DRIVERS=="cp210x"  
    19.     ATTRS{bInterfaceClass}=="ff"  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0  
    2.   
    3. Udevadm info starts with the device specified by the devpath and then  
    4. walks up the chain of parent devices. It prints for every device  
    5. found, all possible attributes in the udev rules key format.  
    6. A rule to match, can be composed by the attributes of the device  
    7. and the attributes from one single parent device.  
    8.   
    9.   looking at device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0/ttyUSB0':  
    10.     KERNEL=="ttyUSB0"  
    11.     SUBSYSTEM=="usb-serial"  
    12.     DRIVER=="cp210x"  
    13.     ATTR{port_number}=="0"  
    14.   
    15.   looking at parent device '/devices/pci0000:00/0000:00:14.0/usb1/1-2/1-2.1/1-2.1:1.0':  
    16.     KERNELS=="1-2.1:1.0"  
    17.     SUBSYSTEMS=="usb"  
    18.     DRIVERS=="cp210x"  
    19.     ATTRS{bInterfaceClass}=="ff"  



    #参考   http://askubuntu.com/questions/49910/how-to-distinguish-between-identical-usb-to-serial-adapters

    #lsusb  

    #udevadm info --attribute-walk --path=/sys/bus/usb-serial/devices/ttyUSB0

    [html]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1.     SUBSYSTEMS=="usb"  
    2.     DRIVERS=="cp210x"  
    3.     ATTRS{bInterfaceClass}=="ff"  
    4.     ATTRS{bInterfaceSubClass}=="00"  
    5.     ATTRS{bInterfaceProtocol}=="00"  
    6.     ATTRS{bNumEndpoints}=="02"  
    7.     ATTRS{supports_autosuspend}=="1"  
    8.     ATTRS{bAlternateSetting}==" 0"  
    9.     ATTRS{bInterfaceNumber}=="00"  
    10.     ATTRS{interface}=="CP2102 USB to UART Bridge Controller"  
    11. KERNEL=="ttyUSB*", KERNELS=="1-2.1", MODE:="0777",SYMLINK+="slamtec_base_"  
    12. KERNEL=="ttyUSB*", KERNELS=="1-2.2", MODE:="0777",SYMLINK+="slamtec_laser_"  
    [html]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1.     SUBSYSTEMS=="usb"  
    2.     DRIVERS=="cp210x"  
    3.     ATTRS{bInterfaceClass}=="ff"  
    4.     ATTRS{bInterfaceSubClass}=="00"  
    5.     ATTRS{bInterfaceProtocol}=="00"  
    6.     ATTRS{bNumEndpoints}=="02"  
    7.     ATTRS{supports_autosuspend}=="1"  
    8.     ATTRS{bAlternateSetting}==" 0"  
    9.     ATTRS{bInterfaceNumber}=="00"  
    10.     ATTRS{interface}=="CP2102 USB to UART Bridge Controller"  
    11. KERNEL=="ttyUSB*", KERNELS=="1-2.1", MODE:="0777",SYMLINK+="slamtec_base_"  
    12. KERNEL=="ttyUSB*", KERNELS=="1-2.2", MODE:="0777",SYMLINK+="slamtec_laser_"  

    重新拔插。可以看到:

    ls -l  /dev   

    [cpp]  view plain  copy
     
    print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ ls -l /dev|grep ttyUSB  
    2. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 rplidar -> ttyUSB1  
    3. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 slamtec_base_ -> ttyUSB0  
    4. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 slamtec_laser_ -> ttyUSB1  
    5. crwxrwxrwx  1 root   uucp      188,   0 Apr 14 13:45 ttyUSB0  
    6. crwxrwxrwx  1 root   dialout   188,   1 Apr 14 13:45 ttyUSB1  
    [cpp]  view plain  copy
     print ? 在CODE上查看代码片 派生到我的代码片
    1. yhzhao@yhzhao:~$ ls -l /dev|grep ttyUSB  
    2. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 rplidar -> ttyUSB1  
    3. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 slamtec_base_ -> ttyUSB0  
    4. lrwxrwxrwx  1 root   root             7 Apr 14 13:45 slamtec_laser_ -> ttyUSB1  
    5. crwxrwxrwx  1 root   uucp      188,   0 Apr 14 13:45 ttyUSB0  
    6. crwxrwxrwx  1 root   dialout   188,   1 Apr 14 13:45 ttyUSB1  





    参考:http://blog.csdn.net/zyh821351004/article/details/41577105

    展开全文
  • USB HUB简述

    千次阅读 2021-03-23 16:01:19
    一般来说,一块hub桥接芯片可扩展4个usb接口,而市面上的一拖七hub,其实使用了两块hub桥接芯片,其中一块hub桥接芯片的上行端口连接到另一块hub桥接芯片的下行端口。 hub的上行端口面向host,下行端口面向device。...
  • HUB一般有两种用途,一是为了解决类似于超薄本的USB接口不够用,二是为了插拔插方便,将台式机背后的接口延长至桌面,笔者这次选购的原因就是后者。有人可能要说,台式机现在前置不也有USB接口吗?确实,笔者的机箱...
  • 该芯片是USB集线器芯片,具有USB 2.0的低功耗和低成本解决方案。 这里使用LQFP48封装,仅使用5个USB和4个USB-A。 母插座和一个端口,作为USB到串行端口。 CH340C 与CH340G相比,CH340C可以节省外部晶体振荡器并减小...
  • USB_HUB电路指一种可以将一个USB接口扩展为多个(通常为4个),并可以使这些接口同时使用的电路。USB是一种外部总线标准,用于规范PC和外部设备的连接和通信,USB接口支持即插即用和热插拔功能。 本次设计电路采用GL...
  • USB转多路串口 USB hub USB扩展

    千次阅读 2020-05-03 10:08:41
    其中常用的是USB转串口,有时调试产品会用到好几个,会占用多个口。这个小工具质量一般,用用就坏。除了需要通信以外,有时需要提供5V或者3.3V,市面上的USB转串口有些能供电,有些不能。再有就是接口,各种接口定义...
  • 分类:LINUX谨以此文纪念过往的岁月一....hc是指usb的控制器,而hub是一种usb集线器,其本质还是一种usb设备,只不过这种usb设备有点特殊而已。一般的MCU都会自带一个usb hub,以s3c6410为例,其带有一个hub,该hub...
  • FE2.1 ,USB HUB资料

    热门讨论 2014-07-21 15:05:31
    usb hub fe2.1 的资料,不仅仅是datasheet ,还包括参考原理图,可以直接参考使用,可不是百度文库里的烂资料
  • USB总线是目前为成功,应用为广泛的外设接口。随着时代的进步和发展,电子产品、手持设备、超大容量的高清视频设备以及千万像素的数码相机等设备的需求越来越高,USB接口规范也需要相应地进行不断地更新和升级。USB...
  • USB HUB FE1.1 数据手册

    2018-06-06 14:55:27
    USB扩展接口USB HUB FE1.1 芯片资料,网上不好找,大家可以看看
  • Linux下的USB HUB驱动

    2021-05-16 18:43:05
    Linux下的USB HUB驱动[日期:2012-07-29]来源:Linux社区作者:zhengmeifu[字体:大 中 小]在这里,顺带提一下HUB的指示灯问题.Hub描述符的wHubCharacteristics的bit7来描述设备是否支持显示灯.为1表示在下游的连接...
  • USB总线是目前最为成功,应用最为广泛的外设接口。随着时代的进步和发展,电子产品、手持设备、超大容量的高清视频设备以及千万像素的数码相机等设备的需求越来越高,USB接口规范也需要相应地进行不断地更新和升级。...
  • usbhub分析

    千次阅读 2018-11-13 09:49:38
    1:在入口函数usb_init调用hub的初始化retval = usb_hub_init(); int usb_hub_init(void) {  if (usb_register(&hub_driver) < 0) { //注册hub驱动到usb的子系统总线上  printk(KERN_ERR "%s...
  • 虽然市面上有许多HUB类产品可以用于拓展USB接口,但产品质量大都参差不齐,有的甚至用几次就坏掉了......,今儿个给大家分享一款工业级高速扩展插口多口HUB:ORICO 群控USB扩展器,这款产品我已经用了小半个月,感觉...
  • 原标题:巧用USB HUB扩展OTG端口 让手机平板更超能随着个人便携式电子产品的增长和的飞速发展,主机已不再局限于单纯的PC,可以是含有USB主控器的任何设备,如手机、平板等。在USB2.O规范中也增加了USB嵌入式设备的...
  • USB HUB 方案

    千次阅读 2018-06-20 10:50:01
    MA8608USB 2.0 High Speed 4-Port Hub Controller ( USB 2.0高速端口集线器控制器)描述:MA8608是USB 2.0高速端口集线器控制器的高性能解决方案,与通用串行总线规范2.0完全兼容。当4个DS(下游)端口同时作用时,...
  • 平时我们在电脑办公,经常会插入一些外接设备,用得最多的就是USB接口,...一拖四 USB HUB线长一米白色配白色显示器带 外接供电接口 这款USB分支器,是一分四的,USB2.0,只要一端插在电脑USB接口上,就可以分出四...
  • usb hub驱动

    千次阅读 2018-03-25 00:32:29
    hub驱动初始化 retval = usb_hub_init(); int usb_hub_init(void) { if (usb_register(&hub_driver) < 0) { //注册hub驱动到usb子系统总线上 printk(KERN_ERR "%s: can't register hub ...
  • 最近公司的电脑的USB 接口居然坏了一个,只留下一个好的接口。于是决定做一个USB hub。参照一个genesys的方案做的。测试一下,效果还不错。 实物如图: 附件内容分享的是基于GL850G的USB HUB 的原理图和PCB源文件,...
  • VL822主控方案 USB HUB 1拖4原理图,高清pdf格式。HUB可以用来扩展USB接口数量,解决USB接口不够用的情况。
  • 本资源包含两个部份: 1. FE1.1s USB2.0 4 Ports Hub使用手册及参考电路; 2. FE2.1 USB2.0 7Ports Hub使用手册及参考电路。 收集了网上下载量最大,而且经过验证的资源,芯片手册都包括中文和英文,方便大家使用。
  • USB2.0 HUB芯片 SL2.2s

    2018-07-25 14:28:49
    SL2.2s 是一款USB接口的4口HUB集线器芯片,采用STT技术,将1个USB扩展为4个接口使用,采用SSOP28封装。

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 8,756
精华内容 3,502
关键字:

hub接口usb