概念和起因通用串行总线(universalserialbus,usb)是连接外部设备的一个串口总线标准,在计算机上使用广泛,但也可以用在机顶盒和游戏机上,补充标准(on-the-go)使其能够用于在便携设备之间直接交换数据。
intel公司开发的通用串行总线架构(usb)的目的主要基于以下三方面考虑:
(一)计算机与电话之间的连接:显然用计算机来进行计算机通信将是下一代计算机基本的应用。机器和人们的数据交互流动需要一个广泛而又便宜的连通网络。然而,由于目前产业间的相互独立发展,尚未建立统一标准,而usb则可以广泛的连接计算机和电话。
(二)易用性:众所周知,pc机的改装是极不灵活的。对用户友好的图形化接口和一些软硬件机制的结合,加上新一代总线结构使得计算机的冲突大量减少,且易于改装。但以终端用户的眼光来看,pc机的输入/输出,如串行/并行端口、键盘、鼠标、操纵杆接口等,均还没有达到即插即用的特性,usb正是在这种情况下问世的。
(三)端口扩充:外围设备的添加总是被相当有限的端口数目限制着。缺少一个双向、价廉、与外设连接的中低速的总线,限制了外围设备(诸如电话/电传/调制解调器的适配器、扫描仪、键盘、pda)的开发。现有的连接只可对极少设备进行优化,对于pc机的新的功能部件的添加需定义一个新的接口来满足上述需要,usb就应运而生。它是快速、双向、同步、动态连接且价格低廉的串行接口,可以满足pc机发展的现在和未来的需要。
简介和标准usb最初是由英特尔与微软公司倡导发起,其最大的特点是支持热插拔(hotplug)和即插即用(plug&play)。当设备插入时,主机枚举(enumerate)此设备并加载所需的驱动程序,因此使用远比pci和isa总线方便。
usb速度比平行埠并联总线(parellelbus,例如epp、lpt)与串联埠总线(serialport,例如rs-232)等传统电脑用标准总线快上许多。原标准中usb1.1的最大传输带宽为12mbps,usb2.0的最大传输带宽为480mbps。
usb的设计为非对称式的,它由一个主机(host)控制器和若干通过hub设备以树形连接的设备组成。一个控制器下最多可以有5级hub,包括hub在内,最多可以连接127个设备,而一台计算机可以同时有多个控制器。和spi-scsi等标准不同,usbhub不需要终结器。
usb可以连接的外设有鼠标、键盘、gamepad、游戏杆、扫描仪、数码相机、打印机、硬盘和网络部件。对数码相机这样的多媒体外设usb已经是缺省接口;由于大大简化了与计算机的连接,usb也逐步取代并口成为打印机的主流连接方式。2004年已经有超过1亿台usb设备;到2005年显示器和高清晰度数字视频外设是仅有的usb未能染指的外设类别,因为他们需要更高的传输速率。
usbimplementersforum(usbif)负责usb标准制订,其成员包括苹果电脑、惠普、nec、microsoft和intel。usbif于2001年底公布了2.0规范,之前还有0.9、1.0、和1.1,他们都是完全向后兼容的。on-the-gosupplementtotheusb2.0specification的当前版本是1.0a。
现标准中将ubs统一为usb2.0,分为:
high-speed,传输速率25mbps~400mbps(最大480mbps)
full-speed,传输速率500kbps~10mbps(最大12mbps)
low-speed,传输速率10kbps~100kbps(最大1.5mbps)
技术和机电标准技术指标:
目前usb支持3种数据信号速率,usb设备应该在其外壳或者有时是自身上正确标明其使用的速率。usb-if进行设备认证并为通过兼容测试并支付许可费用的设备提供基本速率(低速和全速)和高速的特殊商标许可。
ø1.5mbit/s(183kbyte/s)的低速速率,主要用于人机接口设备(humaninterfacedevices,hid)例如键盘、鼠标、游戏杆。
ø12mbit/s(1.4mbyte/s)的全速速率,在usb2.0之前是曾经是最高速率,后起的更高速率的高速接口应该兼容全速速率。多个全速设备间可以按照先到先得法则划分带宽;使用多个等时设备时会超过带宽上限也并不罕见。所有的usbhub支持全速速率。
ø480mbit/s(57mbyte/s)的高速速率。并非所有的usb2.0设备都是高速的。高速设备插入全速hub时应该与全速兼容。而高速hub具有所谓transactiontranslator(事务翻译器)功能,能够隔离全速、低速设备与高速之间数据流,但是不会影响供电和串联深度。
标准usb接口:
触点功能(主机)功能(设备)
1vbus(4.75-5.25v)vbus(4.4-5.25v)
2d-d-
3d+d+
4接地接地
usb信号使用分别标记为d+和d-的双绞线传输,它们各自使用半双工差分信号并协同工作,以抵消长导线的电磁干扰。
miniusb接口:
触点功能
1vbus(4.4╟5.25v)
2d−
3d+
4id
5接地
miniusb除了第4针外,其他接口功能皆与标准usb相同。第4针成为id,在mini-a上连接到第5针,在mini-b可以悬空亦可连接到第5针。
编码方式:
usb标准采用nrzi方式(翻转不归零制)对数据进行编码。翻转不归零制(non-returntozero,inverted),电平保持时传送逻辑1,电平翻转时传送逻辑0。
软件架构:
一个usb主机通过hub链可以连接多个设备。由于理论上一个物理设备可以承担多种功能,例如路由器同时也可以是一个sd卡读卡器,usb的术语中设备(device)指的是功能(functions)。集线器(hub)由于作用特殊,按照正式的观点并不认为是function。直接连接到主机的hub是根(root)hub。
端点:
设备/功能(和集线器)与管道pipe(逻辑通道)联系在一起,管道把主机控制器和被称为端点endpoint的逻辑实体连接起来。管道和比特流(例如unix的pipeline)有着相同的含义,而在usb词汇中术语端点经常和管道混用,甚至在正式文档中。
端点(和各自的管道)在每个方向上按照0-15编号,因此一个设备/功能最多有32个活动管道,16个进,16个出。(出(out)指离开控制器,而入(in)指进入主机控制器。)两个方向的端点0总是留给总线管理,占用了32个端点中的2个。在管道中,数据使用不同长度的包传递,端点可以传递的包长度上限一般是<math>2^n</math>字节,所以usb包经常包含的数据量依次有8、16、32、64、128、256、512或者1024字节。
一个端点只能单向(进/出)传输数据,自然管道也是单向的。每个usb设备至少有两个端点/管道:它们分别是进出方向的,编号为0,用于控制总线上的设备。按照各自的传输类型,管道被分为4类:
ø控制传输——一般用于短的、简单的对设备的命令和状态反馈,例如用于总线控制的0号管道。
ø等时传输——按照有保障的速度(可能但不必然是尽快地)传输,可能有数据丢失,例如实时的音频、视频。
ø中断传输——用于必须保证尽快反应的设备(有限延迟),例如鼠标、键盘。
ø批量传输——使用余下的带宽大量地(但是没有对于延迟、连续性、带宽和速度的保证)传输数据,例如普通的文件传输。
一旦设备(功能)通过总线的hub附加到主机控制器,主机控制器就给它分配一个主机上唯一的7位地址。主机控制器通过投票分配流量,一般是通过轮询模式,因此没有明确向主机控制器请求之前,设备不能传输数据。
为了访问端点,必须获得一个分层的配置。连接到主机的设备有且仅有一个设备描述符(devicedescriptor),而设备描述符有若干配置描述符(configurationdescriptors)。这些配置一般与状态相对应,例如活跃和节能模式。。每个配置描述符有若干接口描述符(interfacesetting),用于描述设备的一定方面,所以可以被用于不同的用途:如一个相机可能拥有视频和音频两个接口。接口描述符有一个缺省接口设置(defaultinterfacesetting)和可能多个替代接口设置(alternateinterfacesettings),它们都拥有如上所述的端点描述符。一个端点能够在多个接口和替代接口设置之间复用。
hcd:
包含主机控制器和根hub的硬件为程序员提供了由硬件实现定义的接口主机控制器设备(hcd)。而实际上它在计算机是就是端口和内存映射。
1.0和1.1的标准有两个竞争的hcd实现。康柏的开放主机控制器接口(ohci)和intel的通用主机控制器接口(uhci)。via威盛采纳了uhci;其他主要的芯片组多使用ohci。它们的主要区别是uhci更加依赖软件驱动,因此对cpu要求更高,但是自身的硬件会更廉价。它们的并存导致操作系统开发和硬件厂商都必须在两个方案上开发和测试,从而导致费用上升。因此usb-if在usb2.0的设计阶段坚持只能有一个实现规范,这就是扩展主机控制器接口(ehci)。因为ehci只支持全速传输,所以ehci控制器包括四个虚拟的全速或者慢速控制器。这里同样是intel和via使用虚拟uhci,其他一般使用ohci控制器。
usb接头:
接头是由usb协会所指定,接头的设计一方面为了支持众多usb的基本需求,另一方面也避免以往许多类似串行接头所出现的问题。
电源:
usb接头提供一组5伏特的电压,可作为相连接usb设备的电源。实际上,设备接收到的电源可能会低于5v,只略高于4v。usb规范要求在任何情形下,电压均不能超过5.25v;在最坏情形下(经由usb供电hub所连接的lowpower设备)电压均不能低于4.375v,一般情形电压会接近5v。
优劣和运用这几年,随着大量支持usb的个人电脑的普及,usb逐步成为pc机的标准接口已经是大势所趋。在主机(host)端,最新推出的pc机几乎100%支持usb;而在外设(device)端,使用usb接口的设备也与日俱增,例如数码相机、扫描仪、游戏杆、磁带和软驱、图像设备、打印机、键盘、鼠标等等。
usb设备之所以会被大量应用,主要具有以下优点:
1、可以热插拔,告别“并口和串口先关机,将电缆接上,再开机”的动作。
2、系统总线供电,低功率设备无需外接电源,采用低功耗设备,并可提供5v/500ma电源。
3、支持设备众多,支持多种设备类,例如鼠标,键盘,打印机等。
4、扩展容易,可以连接多个设备,最多可扩127个。
5、高速数据传输,usb1.1是12mb/s,usb2.0高达480mb/s。
6、方便的设备互连,usbotg支持点对点通信,例如数码相机和打印机直接互连,无需pc。
当然,usb设备也有其缺点:
1、供电能力,如果外设的供电电流大于500ma时,设备必须外接电源。
2、传输距离,usb总线的连线长度最大为5m,即便是用hub来扩展,最远也不超过30米。
usb设备类规范:
ø语音设备类(audiodevice):如麦克风,音箱
ø通信设备类(communicationsdevice):如moden
ø芯片/智能卡接口设备类(chip/smartcardinterfacedevice):如usbkey,usbsmartcard
ø设备固件更新类(devicefirewareupgrade):设备软件更新
ø影像设备(imagedevice):如扫描仪,数码相机
ø人机交互设备(humaninterfacedevice):如鼠标,键盘,游戏杆
øirda设备类(irdabridgedevice):针对红外设备
ø存储设备类(massstoragedevice):如cd-rom、移动硬盘
ø物理接口设备类(physicalinterfacedevice)
ø电源设备类(powerdevice):针对电源控制的设备
ø打印机设备类(printerclass):针对打印机
ø监控设备类(monitordevice):如显示器
现在市场上,各大公司针对不同usb协议版本开发了大量的usb设备,例cypress,philips,atmel,stm,intel,ali等。usb设备的种类非常繁多,主要可以根据以下两种方法划分:
1.usb协议:按照协议标准可分为usb1.0,usb1.1,usb2.0,主要区别是传输速度;另外就是补充协议usbotg,其突出的特点是支持点对点通信,可分为usbhost和usbdevice,尤其是usbhost设备,作为usb主控端,可以读写各种usb设备,如u盘,鼠标。
2.usb设备功能:
功能说明英文主要厂家
接口芯片通用usb接口芯片usbinterfacechipcypress,philips
usb主控制器usbhost功能芯片usbhostchipcypress,philips,ali
usb微控制器带usb接口mcuusbwithmcucypress,cygal
闪盘控制器u盘usbflashcontrollericsi,ali,alcor
并口桥usb转并口芯片usbtoparallelbridge
串口桥usb转串口芯片usbtoserialbridge
读卡器智能卡设备类usbsmartcardali,alcor
音频控制器音频设备类usbaudiocontroller
hub控制器usbhubusbhubcontrolleratmel
打印机控制器打印机设备类usbprintcontroller
hid控制器人机接口设备类usbhumaninterfacedevicemotorola,cypess
数码相机控制器影像设备类usbcameracontroller
视频控制器影像设备类usbvediocontroller
调制解调器usb通信设备usbmodern
usb-usb桥通过usb实现pc互连usbtousbbridge