微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 电脑上的USB口,不是想象中的那么简单。

电脑上的USB口,不是想象中的那么简单。

时间:10-02 整理:3721RD 点击:
最近要做个案子,让我了解到电脑上的USB不是那么简单。  
你是否想过为什么电脑上的USB 口可以接键盘 鼠标等等,而你的手机上面的USB 却不可以?

你是否想过电脑上的USB口可以接多少USB设备?
你是否想过为啥 主板上面的USB口 比起前面板的USB口要好用且稳定?
你是否想过为啥同样PCIE转USB的板卡,为啥有的很贵 有的很便宜。

如果都知道,你是否解释下一下,下面这张图是啥意思?


http://blog.csdn.net/myarrow/article/details/8500155
××××××××××××××××××××××××××××××××××××××××××××××××××××××
首先说 USB口除去物理尺寸,形状 ,颜色 ,款式的区别, 在他的内在也是有极大区别的。
一个USB口 可以是以下三种规格中的一种:
1)USB主控制器 又叫USB HOST。 可以有控制作用。
2)USB   device(slave)  , 就是被控制的
3)USB  OTG就是指既可以做Host口亦可以做device口
×××××××××××××××××××××××××××××××××××××
USB Host是指驱动过后,板子就可以连接USB接口连接的器件,读取和装载数据了,类似PC。
USB Device是指驱动过后,板子可以当做一个USB移动设备,通过USB连接到电脑上,类似U盘。
http://m.blog.csdn.net/article/details?id=49895111
×××××××××××××××
所以说我们的手机上面的USB口属于 Device。
但是我们的手机本质就是电脑,所以以后的趋势是手机的USB可以像电脑的主机的USB口那样,自由外接设备。

USB协议是我接触的几个当中最难的。

最近遇到一个案子,需要了解USB外设, 读取USB外设的ID,然后区分它们。
微软公司似乎提供了一个USBView的软件做这个事情,但是这个软件返回的数据毫升复杂。
很多个 host controller ,   host controller下面又挂了 USB HUB,  USB HUB的下面 似乎才是 USB Device。

首先对 host controller  展开说明。
一个电脑主机上面可以多少个  host controller ?


经过一番搜索,

USB控制器有EHCI,UHCI,OHCI,XHCI 等多种,这些是常见的。

UHCI,OHCI是USB 1.1的控制器,是用来支持低速设备的(鼠标,键盘);
EHCI是USB2.0的控制器,支持高速设备(USB2.0 U盘,移动硬盘等);
XHCI是USB3.0的控制器,支持超高速设备;

于Win7原生系统没有带有XHCI驱动,因此100系列主板安装Win7系统会出现USB鼠标键盘失效的情况,而Win8和Win10原生系统由于内置了XHCI驱动。

×××××××××××××××××
正常来说 一台PC 只需要一个 host controller就够了,但是现实中 主机似乎不止一个host controller。


然后就是  Root hub。
http://forum.eepw.com.cn/thread/227063/1
××××××××××××××××××××××××
所有的usb设备最终都是连接到了一个叫做Root Hub的
冬冬上,或者说所有的根源都是从这里开始的.Root Hub 上可以连接别的设备,可以连接 U盘,
可以连接 usb 鼠标,同样也可以连接另一个hub.所谓 hub,就是用来级连.
但是普通的 hub,她一头接上级 hub, 另一头可以有多个口,多个口就可以级连多个设备,也可以只有一个口,一个口的
就像我们宿舍里常用的那种延长线.
而 Root Hub 呢?她比较特殊,她当然也是一种 usb 设备,但是她属于一人之下万人之上的角色,她只属于被 Host Controller,换言之,通常做芯片的同志们会把 Host Controller和 Root Hub 集成在一起.特别是PC主机上,
通常你就只能看到接口,看不到 Root Hub,因为她躺在 Host Controller 的怀里.这一对狗男女躲在机箱里面,你当然看不到.下面这张图看得很清楚,其中的那个host hub其实就是 root hub.
当然,我们应该更加准备的评价 host 和 root hub的关系,她们是双生花,不会残酷地吸纳彼此的幸福,只会一直不离不弃地在风中相依,直到凋零…

Root  HUB , 是什么?转载一篇文章  。
每个Root Hub下面 可以有两个接口。  不太清楚这两个接口的地位是是什么?
是普通的USB口,还是说是HUB?


根据usb协议, root hub可以连接127个usb设备吧 , 直接连也是可以的 , 但是控制设备没那么多。
据说现在USB HUB芯片 最多可以连接处四个USB口,算是自己要占用一个,另外也就三个可以使用。
那些10几个口HUB ,里面都是用了多个USB 芯片。
再者,USB 的级联层数越多,越不稳定。  所以最好减少级联的层数,增加每层的个数。
根据usb协议, root hub可以连接127个usb设备吧 , 直接连也是可以的 , 但是控制设备没那么多。
每个USB Root HUB  会给每个连接到自己身上的 USB 设备分配  ID,这个ID是 8 位的二进制码。
所以每个USB Root Hub最多可以连接127 可以USB外设。地址编号从0-127.

http://www.cnblogs.com/raymon-tec/p/5082397.html

http://www.cnblogs.com/raymon-tec/p/5082397.html
其他的说明


就知道有原生的USB和HUB出来的,原生的比较快,有的主板不是原生了!

知识贴,谢谢。

涨姿势

进来学习一下。谢谢分享

知道了

很不错的开发经验

对对对,现在的很多手机支持OTG就是这个趋势

最近也在做一个otg 作host 枚举hid设备的案子,确实有点复杂。

学习,,,,,,,,,,,,,

涨姿势了

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top