USB十全大补贴

出自Gentoo Linux Wiki

跳转到: 导航, 搜索

[编辑] 1.介绍

USB是建立在 Universal Serial Bus (通用串行总线)基础上, 实现计算机与计算机或着其他设备通信的一种外部接口. 现在使用usb的设备可以说非常多, 键盘啦, 鼠标啦, 数码相机, 外置的刻录机打印机等, 很多很多的.

现今使用的usb版本有俩种 USB 1.1 和 USB 2.0 (不过好像听说usb组织已经统一了两种标准, 以后统统叫usb 2.0) , look 下面

USB2.0技术规范是有由Compaq、Hewlett Packard、Intel、Lucent、
Microsoft、NEC、Philips共同制定、发布的,规范把外设数据传输速
度提高到了 480Mbps,是USB1.1设备的40倍!但按照原定计划新的USB 
2.0标准只是准备把这个标准定在240Mbps后来,经过努力将它提高到了
480Mbps。 

由于当时制订的标准有了变化,USB规范就产生了三种速度选择:480Mbps、
12Mbps、1.5Mbps。 2003年6月份,当USB2.0标准开始逐渐广为使用之后
USB协会重新命名了USB的规格和标准,也许当时USB协会的举措只是为了更
好的统一标准而不至于混乱,但也许USB协会没想到这个标准给MP3市场造成
一个混乱的局面。 

重新命名了USB标准将原先的USB 1.1改成了USB 2.0 Full Speed(全速版
),同时将原有的USB 2.0改成了USB 2.0 High-Speed(高速版),并同时公
布了新的标识。高速版的USB 2.0速度当然超过全速版的USB 2.0(480Mbps 
vs. 12Mbps)。 

因为后续USB版本(2.0)是向前兼容的, 也就说现在最新的USB 2.0的设备是 兼容USB 1.0的, USB 2.0 的最大数据传输率是 480 Mbps (也就是60MB ps), 这点也可以说是USB 2.0和USB1.0的最大区别. 还有一个共同点就是 所有的usb设备都是hot-pluggable的, 也就是支持热插拔 (顺便说个笑话, 有一次去逛街, 看到一个mm 穿了一件 t-shirt , 上面些的是Plug and play , 译成中文就是......., 汗 ) , 意思就是你不需要重启计算机就可 以马上使用你刚刚插入的设备。

[编辑] 2.技术说明

在我们开始真正config内核前, 对一些细节的东西再来做一些说明. 如果你 来不及要make menuconfig了, 那么这节可以跳过, 直接看后面的相关内容.

一个USB系统有一个host controller, 几个hub和一个root hub组成, 其 中root hub可以连接包含hub在内的127个USB设备, 而host controller 是一个usb设备与操作系统之间的接口. 现今使用的HCI(Host Controller Interface)有两种, 一种是OHCI (全名是 Open HCI 该标准是由Compaq制 定的) , 另一种UHCI (全名是Universal HCI) 和EHCI (全名是Enhanced HCI) , 后面这两种都是由Intel指定的, 所以这两种总是出现使用intel的芯 片组的电脑中. OHCI/UHCI 都是符合USB1.1的两种工业级标准, 而EHCI则是 为USB 2.0准备的.

硬件制造厂商提供给程式设计师一个接口用来实现操作系统和硬件之间的交互, 这个接口的名字叫做HCD (全名是 Host Controller Device), 只有通过这 个设备, usb设备才能和操作系统之间进行通信. 看过下面这个图后相信大家理 解上面的概念可以简单一些。

+ ----  Hardware  ----   + ----  Software  ---- + 
    |                        |                      | 
    | [USB Dev] -+-> {EHCI} -+--->  ( EHCD )        | 
    |            |           |                      |  User 
    |            `-> {UHCI} -+--->  ( UHCD )        | 
    |                        |                      | 
    + ----  Hardware  ----   + ----  Software  ---- + 

USB设备可以使用一个自定的驱动程序, 也可以根据该设备所属的类选用系统自 带的驱动, 这意味着同类型的设备可以共用同一个驱动. HID这个类大家都比较 熟, 全名是Human Interface Device, 包括了usb鼠标, 键盘等输入设备, 而USB Mass storage这个类包括了pen driver、数码相机、mp3播放器等。 接着的USB CDC类 (全名是Communication Device Class)包括了各种usb 接口的网络设备, 像是modem、网卡啦都是这个。

有一个很简单的命令可以检查一下你的系统上是不是支持usb 2.0而不用打开机 箱look了。

注意: 如果你发现在你的机子上没有下面这条命令, 那么是对应的软件包没有安装, 对于gentoo来说这个软件包是sys-apps/pciutils。简单的一条命令就可以搞定.
代码: pciutils

emerge pciutils

然后是运行命令and结果:

代码: 对于USB 1.1的系统, 注意只有UHCI
# lspci -v | grep USB 
0000:00:04.2 USB Controller: Intel Corp. 82371AB/EB/MB PIIX4 USB (rev 01) (prog-if 00 [UHCI])
个人工具