标题:
Linux那些事儿 之 戏说USB(6)我是一棵树(一)
[打印本页]
作者:
bingchentiao
时间:
2013-5-20 22:04
标题:
Linux那些事儿 之 戏说USB(6)我是一棵树(一)
我是一棵树,静静的站在田野里,风儿吹过,我不知它的去向,人儿走过,我不知谁会为我停留。
我多少多少年以前刚刚情窦初开的时候,在本本上留下过一篇我是一棵树,这是其中一句。当然经过了这些年的漫漫辛酸路,当时的心情早就被腐蚀掉了,现在只觉得自己居然也有过颇有才情的一段日子。
USB
子系统也是一颗树,比我幸运的是它不用再等待谁为它停留了,我会在这里深情款款的陪伴它的。
从拓扑上来看,
USB
子系统并不以总线的方式来部署,它是一颗由几个点对点的连接构成的树。
我指着路边一颗老的奇形怪状的树问朋友:这是什么树?朋友的回答很简短:大树。那上面图里的是什么树?答案就是用头发梢想想也应该知道了吧,当然是大树了,不过是
USB
的大树。答案简短,蕴含的道理可不简短,它主要包括了
USB
连接、
USB host controller
和
USB device
三个部分。而
USB device
还包括了
hub
和功能设备等。下面还是逐个说说吧。
什么是
USB controller
?在一个
USB
系统中只能有一个
host
,其实说白了就是咱们的主机,而
USB
和主机的接口就是
host controller
,你的主机总不可能只能有一个
USB host controller
吧,所以说一个主机可以支持多个
host controller
,比如分别属于不同厂商的。那么
USB host controller
本身是做什么的?这个问题
复旦人甲
兄弟说的太精彩了,我还是直接拿来吧。
controller
,控制器,顾名思义,用于控制,控制什么,控制所有的
usb
设备的通信。通常计算机的
cpu
并不是直接和
usb
设备打交道,而是和控制器打交道,他要对设备做什么,他会告诉控制器,而不是直接把指令发给设备,然后控制器再去负责处理这件事情,他会去指挥设备执行命令,而
cpu
就不用管剩下的事情,他还是该干嘛干嘛去,控制器替他去完成剩下的事情,事情办完了再通知
cpu
。否则让
cpu
去盯着每一个设备做每一件事情,那是不现实的,那就好比让一个学院的院长去盯着我们每一个本科生上课,去管理我们的出勤,只能说,不现实。所以我们就被分成了几个系,通常院长有什么指示直接跟各系领导说就可以了,如果他要和三个系主任说事情,他即使不把三个人都召集起来开个会,也可以给三个人各打一个电话,打完电话他就忙他自己的事情去了,比如去和他带的女硕士风花雪月。而三个系主任就会去安排下面的人去执行具体的任务,完了之后他们就会像院长汇报。
那么
hub
是什么?还是拿
复旦人甲
现成的答案吧,不能怪我不努力,只是
复旦人甲
说的太精彩了。在大学里,有的宿舍里网口有限,但是我们这一代人上大学基本上是每人一台电脑,所以网口不够,于是有人会使用
hub
,让多个人共用一个网口,这是以太网上的
hub
,而
usb
的世界里同样有
hub
,其实原理是一样的,任何支持
usb
的电脑不会说只允许你只能一个时刻使用一个
usb
设备,比如你插入了
u
盘,你同样还可以插入
usb
键盘,还可以再插一个
usb
鼠标,因为你会发现你的电脑里并不只是一个
usb
接口。这些口实际上就是所谓的
hub
口。而现实中经常是让一个
usb
控制器和一个
hub
绑定在一起,专业一点说叫集成,而这个
hub
也被称作
root hub
,换言之,和
usb
控制器绑定在一起的
hub
就是系统中最根本的
hub
,其它的
hub
可以连接到她这里,然后可以延伸出去,外接别的设备,当然也可以不用别的
hub
,让
usb
设备直接接到
root hub
上。
而
USB
连接指的就是连接
device
和
host
(或
hub
)的四线电缆。电缆中包括的
VBUS
(电源线)、
GND
(地线)还有两根信号线。
USB
系统就是通过
VBUS
和
GND
向设备提供电源的。主机对连接的
USB
设备提供电源供其使用,而每个
USB
设备也能够有自己的电源。
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/)
Powered by Discuz! 7.0.0