USB总线介绍及应用
USB(Universal Serial Bus)是1995年Microsoft、Compaq、IBM等公司联合制定的一种新的PC串行通信协议。USB协议出台后得到各PC厂商、芯片制造商和PC外设厂商的广泛支持。USB本身也处于不断的发展和完善中,从当初的0.7、0.8到现在广泛采用的1.0、1.1版本到即将被采用的2.0版本。USB外设在国外以惊人的速度发展,迄今为止,各种USB的外设已经有上千种。那么,USB为什么如此受亲睐呢?这要从它自身所具有的很多优点谈起。
1. PC为什么急需USB
随着PC的广泛应用,其外设也越来越多,打印机、鼠标、扫描仪、游戏杆、音箱...。每个外设都需要通过一个接口与PC相连。外设多了,PC的接口自然也就不够用了。在很多特定的应用场合,如工业数据采集等领域,常常用采集板卡来完成工作,而每一个板卡自然会占用一个PC插槽。PC插槽就那么几个,要是采集点多了怎么办呢? PC外设安装过程中比较麻烦的另一件事情是在加减设备时,必须关掉电源,加减设备完成之后再从新启动机器。对于板卡式的外设就更加麻烦了,您不得不打开机箱,弄得满头大汗,一不小心,汗水滴到主板上,机器就死翘翘了。我就碰到过这样的事情。
USB的出现就能够为您完全解决掉上面提到的这些尴尬,每台PC通过USB端口最多可以接127个外设!把您所有的东西全接上来吧,没问题!还有,USB完全是PNP的,在您第一次安装完成以后,加减设备只需要拔出或插上USB插头就一切OK了,不必理会机器是开还是关,就这么简单。
可不要因为慢得象蜗牛的232而使你联想到串行就代表慢。USB有快速和慢速工作方式,传输速率分别为12Mbps和1.5Mbps,比232快了不知道多少倍。
2. USB的结构框架
root hub
______________|___________
| |
hub hub
___|______ ________|________
| | | | | | | |
d1 d2 d3 h1 h2 d4 d5 d6
d* 外设 h* hub
上图显示了USB的拓扑结构。
PC主板上的那两个插口,就是root hub。root hub是一个USB系统的总控制端口。它既可以直接接外设,也可以通过hub控制更多的外设。 USB hub结构类似通常的网络集线器,有一个upper link和很多子端口,每个子端口可以接一个外设,也可以再通过一个hub接入更多外设,直到所有外设加起来到127为止。
3. USB设备的加载过程
当USB设备接入hub或root hub后,主机控制器和主机软件(host controller & hos
t software)能自动侦测到设备的接入。然后host software读取一系列的数据用于确认
设备特征,如vendor ID, product ID, interface工作方式,电源消耗量等参数。之后
主机分配给外设一个单独的地址。地址是动态分配的,各次可能不同。在分配完地址之后对设备进行初始化,初始化完成以后就可以对设备进行IO操作了。
4. USB的适用范围
其实除了象显卡这种需要极高数据量和一些实时性要求特别高的控制设备,几乎所有的PC外设都可以移植到USB上来。而事实上国外几乎已经做到了这一点。我想对于国内的开发者来说,在鼠标、键盘等产品上就不必去和国外竞争了。但即使这样,USB的PC外设仍然有大得不可限量的发展空间。我归纳了以下几个大类供开发者参考:
1. 传统PC外设,象鼠标、键盘、音箱、游戏杆、扫描仪、打印机等。
2. 基于PC的通信设备,如Modem, ISDN等
3. 端口转接器,如USB-->232, USB-->LPT等,以适应原来的设备。
4. 具有中国特色的设备,象汉字输入笔那样的东西。
5. 工业领域。USB在这个领域产生的影响是惊人的,我将另外专门写关于这方面的文章。