第二章USB协议 第二章UsB协议 2.1UsB技术背景 传统的计算机外部设备一般都是使用并口( Parallel port)和串口( Serial Port)与计算机相连。这两种端口在计算机上使用了很多年,物理层的协议已经 相当成熟,但却已经无法满足目前计算机设备不断提高的速度和使用要求。 串口使用的协议是RS-232串行通讯标准,适用于设备之间的通讯距离不大 于15米,传输速率最大为20KB/s的场合。它的优点主要是开发方便,几乎所有 的硬件开发人员都能很容易地使用串口实现设备与计算机间的通讯。并口使用的 是并行通讯协议,在开发和使用上都不是很方便,但它的速度较串口有很大的提 高,要达到每秒1M字节以上的传输速度并不困难 这些传统的端口和总线协议都比较简单,一般只对物理层做了一些定义和约 束,并没有涉及到设备和计算机的具体通讯行为和网络模型。这使得开发者在开 发时有了很大的灵活性,但也带来了兼容性的问题。举例来说,由于串口有很多 用于设备和计算机握手的线(如RTS、CTS等等),如果设备不需要使用这些握手 线,就可以设法利用这些握手线从计算机的电源得到12V的直流电,以供设备内 部使用。如果某台计算机的主板和电源能提供足够的电流给设备,那么这个串口 设备是可以正常工作的;但如果某台计算机的主板和电源不能支持,那么有可能 不光是这个串口设备不能使用,连主板和电源也无法正常工作。 以上所提到的种种原因,促使硬件开发商不得不推出一些新型的总线协议 以适应当前计算机和设备的需要。从20世纪90年代以来,有很多串行总线问世, 其中最成功的,便是以 Intel为首的七家公司于1994年推出的USB( Universal Serial bus,通用串行总线)协议,以及美国电气和电子工程师协会(IEEE)推 出的IEEE394总线协议 IEEE394主要的特点是高速,但它的成本很高,所以目前IEEE1394只用于 些专用系统和打印机、扫描仪等数据传输速度要求较髙的设备,而不能普遍用 于诸如鼠标、键盘等价格较低、速度要求也不髙的设备。所以确切地说,IEEI394 只适于高速的计算机外部设备
第二章 USB 协议 5 第二章 USB 协议 2.1 USB 技术背景 传统的计算机外部设备一般都是使用并口 Parallel Port 和串口 Serial Port 与计算机相连 这两种端口在计算机上使用了很多年 物理层的协议已经 相当成熟 但却已经无法满足目前计算机设备不断提高的速度和使用要求 串口使用的协议是 RS 232 串行通讯标准 适用于设备之间的通讯距离不大 于 15 米 传输速率最大为 20KB/s 的场合 它的优点主要是开发方便 几乎所有 的硬件开发人员都能很容易地使用串口实现设备与计算机间的通讯 并口使用的 是并行通讯协议 在开发和使用上都不是很方便 但它的速度较串口有很大的提 高 要达到每秒 1M 字节以上的传输速度并不困难 这些传统的端口和总线协议都比较简单 一般只对物理层做了一些定义和约 束 并没有涉及到设备和计算机的具体通讯行为和网络模型 这使得开发者在开 发时有了很大的灵活性 但也带来了兼容性的问题 举例来说 由于串口有很多 用于设备和计算机握手的线 如 RTS CTS 等等 如果设备不需要使用这些握手 线 就可以设法利用这些握手线从计算机的电源得到 12V 的直流电 以供设备内 部使用 如果某台计算机的主板和电源能提供足够的电流给设备 那么这个串口 设备是可以正常工作的 但如果某台计算机的主板和电源不能支持 那么有可能 不光是这个串口设备不能使用 连主板和电源也无法正常工作 以上所提到的种种原因 促使硬件开发商不得不推出一些新型的总线协议 以适应当前计算机和设备的需要 从 20 世纪 90 年代以来 有很多串行总线问世 其中最成功的 便是以 Intel 为首的七家公司于 1994 年推出的 USB Universal Serial Bus 通用串行总线 协议 以及美国电气和电子工程师协会 IEEE 推 出的 IEEE1394 总线协议 IEEE1394 主要的特点是高速 但它的成本很高 所以目前 IEEE1394 只用于 一些专用系统和打印机 扫描仪等数据传输速度要求较高的设备 而不能普遍用 于诸如鼠标 键盘等价格较低 速度要求也不高的设备 所以确切地说 IEEE1394 只适于高速的计算机外部设备
第二章USB协议 USB具有速度高、成本低、功耗低、支持即插即用(Plug&Play)和使用维 护方便等优点,在协议成熟以后,迅速地占领了计算机低、中速外部设备的市场, 大有取代传统串口和并口之势。 2.2UsB总线优势 总的来说,USB总线的主要优势体现在以下几个方面 速度 ●总线拓扑体系 即插即用 低功耗 标准接口和外设 本文以下就从这五个方面简单地介绍USB的协议内容和特点 221USB的速度 在不少开发者和使用者的眼中,速度是总线协议的一个最重要的指标,所以 媒体在对新技术的宣传过程中,也一直喜欢反复地强调其速度如何如何。在USB 发展的这几年中,媒体向用户过分强调了USB的速度,说它比传统的串口和并口 都快。在实际的使用过程中,虽然USB较串口在速度上有一定的提高,但它的速 度比不上并口。其实在USB的规范版本中一早就已指出,USB适于低、中速设备。 在USB的1.1规范版本中,USB支持两种总线数据传输率:一种是在全速(Full Speed)模式下的12Mbps,另一种是低速模式( Low Speed)下的1.5Mbps。这两 种模式可以同时存在于一个USB系统中,而引入低速模式主要是为了降低对速度 要求不高的设备的成本,比如鼠标、键盘等等。这里所说的12M和1.5M只是总 线在传输数据时使用的时钟频率,并不是有效数据的实际传输速度。实际上由于 软件协议的限制,1.5M的低速设备所能达到的有效数据传输速度只在几K字节/ 秒左右。 在USB的2.0规范版本中,USB支持了一种新的总线数据传输率:在高速(High Speed)模式下的480Mbps。这个速度较全速和低速设备而言是一个飞跃。之所 以要支持这样一个速度,就是因为USB1.1无法满足用户对速度的需要。USBl 在低、中速设备上是如此成功,直接导致了USB开发组希望将它也推广到高速设
第二章 USB 协议 6 USB 具有速度高 成本低 功耗低 支持即插即用 Plug & Play 和使用维 护方便等优点 在协议成熟以后 迅速地占领了计算机低 中速外部设备的市场 大有取代传统串口和并口之势 2.2 USB 总线优势 总的来说 USB 总线的主要优势体现在以下几个方面 z 速度 z 总线拓扑体系 z 即插即用 z 低功耗 z 标准接口和外设 本文以下就从这五个方面简单地介绍 USB 的协议内容和特点 2.2.1 USB 的速度 在不少开发者和使用者的眼中 速度是总线协议的一个最重要的指标 所以 媒体在对新技术的宣传过程中 也一直喜欢反复地强调其速度如何如何 在 USB 发展的这几年中 媒体向用户过分强调了 USB 的速度 说它比传统的串口和并口 都快 在实际的使用过程中 虽然 USB 较串口在速度上有一定的提高 但它的速 度比不上并口 其实在 USB 的规范版本中一早就已指出 USB 适于低 中速设备 在 USB 的 1.1 规范版本中 USB 支持两种总线数据传输率 一种是在全速 Full Speed 模式下的 12Mbps 另一种是低速模式 Low Speed 下的 1.5Mbps 这两 种模式可以同时存在于一个 USB 系统中 而引入低速模式主要是为了降低对速度 要求不高的设备的成本 比如鼠标 键盘等等 这里所说的 12M 和 1.5M 只是总 线在传输数据时使用的时钟频率 并不是有效数据的实际传输速度 实际上由于 软件协议的限制 1.5M 的低速设备所能达到的有效数据传输速度只在几 K 字节/ 秒左右 在 USB 的 2.0 规范版本中 USB 支持了一种新的总线数据传输率 在高速 High Speed 模式下的 480Mbps 这个速度较全速和低速设备而言是一个飞跃 之所 以要支持这样一个速度 就是因为 USB1.1 无法满足用户对速度的需要 USB1.1 在低 中速设备上是如此成功 直接导致了 USB 开发组希望将它也推广到高速设
第二章USB协议 备中去。但是总线速度的提高,并不是简单地改改协议书就能实现的。USB1.1 的成功在很大程度上是由于它低廉的成本,而USB2.0要想同时实现高速度和低 成本,这实际上是非常困难的。USB2.0已经发布了一年多了,但用户却迟迟看 不到成熟的芯片和方案。不少业内人士都担心USB2.0会走上IEE1394的老路, 在成本降不下来的情况下成为少数专用系统才会采用的方案 所以如果用户需要开发USB设备,目前仍然只能使用1.5Mbps和12Mbps这 两种总线数据传输率。 222UsB的总线拓扑体系 与传统的串口和并口不同,USB支持一个分层的菊花链结构(如图2.1 Host Host(Root Tier) Tier 1 ier 2 INode Tier 3 Hub 4 UNode] [Node Tier 4 Node CNode)(Node 图2.1USB总线拓扑体系 如图所示,整个USB总线拓扑体系由三个元素组成:主机(Host)、集线器 (Hub)和设备(Node)。Hub是每个星形结构的中心,用于连接设备和主机。在 目前的PC应用中,PC就是主机(Host)和根集线器( Root hub),用户可以将 外设或附加的Hub与之相连,这些附加的Hub可以连接其他的外设以及下层Hub 在USB1.1规范版本中,USB在一个拓扑网络中支持最多4个Hub层以及127个
第二章 USB 协议 7 备中去 但是总线速度的提高 并不是简单地改改协议书就能实现的 USB1.1 的成功在很大程度上是由于它低廉的成本 而 USB2.0 要想同时实现高速度和低 成本 这实际上是非常困难的 USB2.0 已经发布了一年多了 但用户却迟迟看 不到成熟的芯片和方案 不少业内人士都担心 USB2.0 会走上 IEEE1394 的老路 在成本降不下来的情况下成为少数专用系统才会采用的方案 所以如果用户需要开发 USB 设备 目前仍然只能使用 1.5Mbps 和 12Mbps 这 两种总线数据传输率 2.2.2 USB 的总线拓扑体系 与传统的串口和并口不同 USB 支持一个分层的菊花链结构 如图 2.1 Host (Root Tier) Tier 1 Tier 2 Tier 3 Tier 4 Hub 1 Hub 2 Node Host RootHub Node Hub 3 Hub 4 Node Node Node Node Node 图 2.1 USB 总线拓扑体系 如图所示 整个 USB 总线拓扑体系由三个元素组成 主机 Host 集线器 Hub 和设备 Node Hub 是每个星形结构的中心 用于连接设备和主机 在 目前的 PC 应用中 PC 就是主机 Host 和根集线器 Root Hub 用户可以将 外设或附加的 Hub 与之相连 这些附加的 Hub 可以连接其他的外设以及下层 Hub 在 USB1.1 规范版本中 USB 在一个拓扑网络中支持最多 4 个 Hub 层以及 127 个
第二章USB协议 外设 Hub在USB结构中是一个关键,它提供了附加的USB节点,这些节点被称为端 口(Port)。根据端口在总线拓扑体系中的位置和功能的不同,端口又分为上行 端口( Upstream Port)和下行端口( Downstream port)。Hub的上行端口用于与 上层Hub或根Hub相连,下行端口则用于与下层设备相连。Hub可以检测出每一个 下行端口的状态,并且可以给下层的设备提供电源。图2.2是一个典型的Hub Port Port Port Upstream HUB Port Port Port 图2.2典型的USB集线器(Hub) Hub可以是独立的硬件设备,也可以嵌入到USB设备中去成为普通USB设备 的一部分,这类设备的特点是除了具有与上层Hb相连的一个上行端口以外,还 同时提供与下层设备相连的下行端口。 对于目前的计算机应用,127个外设的上限是完全够用了。不少的开发者甚 至希望利用USB的总线拓扑体系构建一些简单的网络。在实际的应用中,最能发 挥USB这一优势的当属办公室网络和家庭网络。在这些网络中,Hub可以安装在 墙上,外形看起来和 Ethernet或电话线的插座一样,而不同的设备(如打印机、 传真机、扫描仪、摄像头等等)可以分布在房间的各处,通过墙上的Hub与PC 相连。用户通过一台PC就可以控制房间里的所有设备,而不必将所有的设备都 堆放在PC周围。 但USB总线拓扑体系也不是什么领域都能使用的,它最大的不足在于整个体 系必须有一个主机作为控制中心,所有设备对传输介质的使用都必须得到主机的 授权,而且设备只能与主机通讯,并不能进行设备间的通讯。这一点决定了USB 总线并不能用于普通的设备间或主机间的联网。国外有几家公司开发出了一种
第二章 USB 协议 8 外设 Hub在USB结构中是一个关键 它提供了附加的USB节点 这些节点被称为端 口 Port 根据端口在总线拓扑体系中的位置和功能的不同 端口又分为上行 端口 Upstream Port 和下行端口 Downstream Port Hub的上行端口用于与 上层Hub或根Hub相连 下行端口则用于与下层设备相连 Hub可以检测出每一个 下行端口的状态 并且可以给下层的设备提供电源 图2.2是一个典型的Hub Upstream Port HUB Port #1 Port #7 Port #6 Port #5 Port #4 Port #2 Port #3 图2.2 典型的USB集线器 Hub Hub 可以是独立的硬件设备 也可以嵌入到 USB 设备中去成为普通 USB 设备 的一部分 这类设备的特点是除了具有与上层 Hub 相连的一个上行端口以外 还 同时提供与下层设备相连的下行端口 对于目前的计算机应用 127 个外设的上限是完全够用了 不少的开发者甚 至希望利用 USB 的总线拓扑体系构建一些简单的网络 在实际的应用中 最能发 挥 USB 这一优势的当属办公室网络和家庭网络 在这些网络中 Hub 可以安装在 墙上 外形看起来和 Ethernet 或电话线的插座一样 而不同的设备 如打印机 传真机 扫描仪 摄像头等等 可以分布在房间的各处 通过墙上的 Hub 与 PC 相连 用户通过一台 PC 就可以控制房间里的所有设备 而不必将所有的设备都 堆放在 PC 周围 但 USB 总线拓扑体系也不是什么领域都能使用的 它最大的不足在于整个体 系必须有一个主机作为控制中心 所有设备对传输介质的使用都必须得到主机的 授权 而且设备只能与主机通讯 并不能进行设备间的通讯 这一点决定了 USB 总线并不能用于普通的设备间或主机间的联网 国外有几家公司开发出了一种
第二章USB协议 USB连接器,可以将两台PC通过USB总线对接。它实际上是在设备内部将两个 USB系统相连,起到一个桥梁的作用,并没有从本质上改变USB的总线拓扑体系 223UsB的即插即用 所谓即插即用(Plug&Play),主要包含两个方面的内容:一是热插拔, 是自动配置。热插拔决定于物理层的实现,而自动配置则主要依靠软件协议 众所周知,传统的串口并不支持热插拔,因为串口在热插拔时会产生很强的 电流,容易烧毁硬件电路或接口芯片。USB在这方面做了很多努力,使得热插拔 在USB设备成为可能。 USB采用四线电缆来传输信号与电源,如图2.3所示。 s meters max VBus GND GND 图2.3USB电缆定义 其中D+和D一是一对差模的信号线,使用3.3V的电平,而VBus和GND则 提供了+5V的电源。而USB正是在电缆和连接点的设计上做了处理,才使得热 插拔产生的强电流可以被安全地吸收 至于自动配置,主要是指设备在插入Hub的下行端口后能够被主机自动识别 并进行信息交换,最终使设备在整个USB网络中可以正常工作。这一功能主要依 靠USB的总线枚举( Bus enumeration)过程来实现。 首先,USB总线应该能够自动探测出新设备的插入。图2.4是USB设备与Hub 的连接示意图
第二章 USB 协议 9 USB 连接器 可以将两台 PC 通过 USB 总线对接 它实际上是在设备内部将两个 USB 系统相连 起到一个桥梁的作用 并没有从本质上改变 USB 的总线拓扑体系 2.2.3 USB 的即插即用 所谓即插即用 Plug & Play 主要包含两个方面的内容 一是热插拔 一 是自动配置 热插拔决定于物理层的实现 而自动配置则主要依靠软件协议 众所周知 传统的串口并不支持热插拔 因为串口在热插拔时会产生很强的 电流 容易烧毁硬件电路或接口芯片 USB 在这方面做了很多努力 使得热插拔 在 USB 设备成为可能 USB采用四线电缆来传输信号与电源 如图2.3所示 ... ... 5 meters max VBus GND D+ D- VBus GND D+ D- 图2.3 USB电缆定义 其中 D 和 D 是一对差模的信号线 使用 3.3V 的电平 而 VBus 和 GND 则 提供了 5V 的电源 而 USB 正是在电缆和连接点的设计上做了处理 才使得热 插拔产生的强电流可以被安全地吸收 至于自动配置 主要是指设备在插入 Hub 的下行端口后能够被主机自动识别 并进行信息交换 最终使设备在整个 USB 网络中可以正常工作 这一功能主要依 靠 USB 的总线枚举 Bus Enumeration 过程来实现 首先 USB 总线应该能够自动探测出新设备的插入 图 2.4 是 USB 设备与 Hub 的连接示意图