第18章 通用串行总线USB(2012)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
USB1.0和USB2.0一样,都具有向下兼容特性。
18.1.2
USB的设计目标及特点
1、设计目标 ① 易于扩充多个外围设备; ② 协议灵活,综合了同步和异步数据传输,支持 480Mb/s的数据传输;
③ 充分支持对音频和压缩视频等实时数据的传输
④ 提供一个廉价的接口标准。
2、主要特点 ① 有低速、全速和高速3种模式供选择
图18.7
帧/微帧的关系
帧结束EOF
集线器在帧结束EOF期间停止任何传输任务, 为SOF标志的传输提供一个空闲的总线。
主机控制器在帧结束期间也要停止一切传输 操作,当EOF间隙产生时,所有的正在传输的事 物必须暂停。
USB定义了全速帧的时间为1ms,高速微帧的 时间仅为125us。全速连接时每隔1ms产生1个SOF 令牌,高速连接时每1ms产生8个SOF令牌。
2、USB接收特性 所有的USB接口都必须有一个差分数据接收器和两个 单极性接收器。前者能分辨D+和D-数据线之间小至200mv 的电位差,而后者的接收器分别用于D+和D-线,它们的 开关阈值电压为0.8V和2.0V。
USB上游端口:连到主机
USB下游端口:连到目标设备
18.1.5 USB数据编码和解码 USB使用一种不归零反向NRZI编码方案。该方案中, ‘1’表示电平不变,‘0’表示电平改变。 第二个波形中,开始的高电平表示数据线上的J态,后 面就是NRZI编码。 NRZI码:欲判断当前电平所表示的逻辑值,需比较 当前电平与前一电平,看是否翻转,若翻转,则逻辑值 为‘0’,否则为‘1’。
18.3.2 管道 管道是设备上的端点和主机上的软件连接,管道体现 了主机上的缓存和端点间的传输数据的能力。在通信之前, 主机和设备之间必须先建立一个管道。因此,每条管道与 端点的特性都有直接关系,它只能支持一种通信方式。 1、流管道 流管道中的数据是流的形式,它不具有USB要求的结构, 其通信流总是单向的,在管道中传输的数据遵循先进先出 的原则。 流管道只能连接到一个固定号码的端点上,或者流入 或者流出。流管道支持同步传输、中断传输和批传输。
18.2.4 USB的通信模型
OSI模型中的telnet/ftp 等应用层
OSI模型中的网络层 +LLC层 OSI模型中的物理层
18.3 USB数据流模型 18.3.1 端点 端点是一个USB设备中唯一可寻址的部分,是主机和 设备之间数据通信的源和目的,端点在硬件上就是一个 有一定深度的FIFO。 每个设备都有一个由主机分配的唯一地址,而各个 设备上的端点都有设备确定的端点号和通信方向。 每个端点只支持单向通信(端点0除外)。设备地址、 端点号和数据流方向就唯一确定了各个端点。
包 标 志 符 类 型 描 述
3、地址字段
设备地址字段有7位,用来确定设备的唯一地址;端 点字段由4位,用来确定设备上的端点号。只有这两个字 段都正确,相应的端点才能和主机通信。
除了端点地址0外,端点个数由功能部件决定;所 有功能部件必须有端点0提供一个控制管道。低速设备 的每个功能部件最多提供3个管道,全速功能部件最多 可达16个任何类型的端口。
18.4 USB协议层
18.4.1 包字段格式
1、同步字段
一个USB包由若干字段组成,所有包的开始都有一 个同步字段SYNC,它在总线上由‘KJKJKJKK’信号组成。 对低速设备K=0,J=1;全速设备K=1,J=0。
2、包标志符字段
所有USB包的同步字段后都有包标志符(PID), 它由4位包类型字段PID0-PID3和校验字段PID0PID3组成,包标志符字段指明了包的类型。包标 志符的校验字段通过对包类型字段的二进制求反 码产生。
18.2 USB系统结构
一个USB系统定义由USB主机、USB设备和USB互 连3个部分组成。USB互连是指USB设备与主机之间 进行连接和通信的操作(类似OSI网络模型),它 包括:
① 总线拓扑结构; ② 通信各层的任务和相互关系; ③ 数据流模型; ④ 主机与多路USB设备通信时的带宽分配等内容。
数据J/K态可给出是高速还是低速的设备,从 而获取基本的采样时钟。 SYNC字符的作用:在基本的采样时钟的基础上,通
过SYNC字符可以进一步精确化采样基准时钟频率,即 自同步self-clocking,以便接收方在SYNC字符宽度内 就能摸索/统计出精确的采用时钟。
根据NRZI编码规定,当数据连续发6个‘1’时,它会自 动插入一个‘0’;接收端也有自动识别被插入‘0’的能力, 并自动删除。这样做的目的就是通信双方的时钟不可能产 生失步(失步由时钟误差引起, bit stuffing的作用是对 采样时钟间的误差进行调节)。如下图示(同步信号为 10000000B,且低位在先):
主模式为全速模式,速度为12Mb/s;低速模 式用于低速设备(比如鼠标),速度为1.5Mb/s; USB2.0增加了高速模式,速度为480Mb/s,非常 适合一些视频输入/输出产品。
② 设备安装和配置容易
连接方便,不必打开机盖,支持热插拔技术。
③ 易于扩展 通过使用HUB扩展到127个外设,标准USB电缆 长度为3m(低速为5m),通过HUB可以达到30m。 ④ 使用灵活 表现在有4种传输模式:控制传输、块传输、 中断传输和同步传输,以适应不同的设备。 ⑤ 能够采用总线供电
2、传输差错控制 HC必须能够发现超时错、协议错、数据丢失错和无效 传输等错误。 3、状态处理 状态处理作为主机的一部分,HC报告及管理它的状态。 4、串行/并行数据转换 输出时要转换成串行数据,输入时要将串行数据转换 成并行数据。 5、数据处理 HC处理来自主机输入/输出数据的请求,接收来自 USB系统的数据并将其传输给USB设备或从USB设备接收数 据送给USB系统
图18.6 USB设备和USB主机的连接 (a)物理连接:阶段式树状结构tier-tree (b)逻辑连接
18.2.2 USB主机 在一个USB系统中只有一台主机。主机的USB接口成 为USB控制器,通过它主机与外围USB进行通信。下面就 USB控制器的主要功能进行讨论:
1、帧产生
USB系统采用帧同步方式传输数据。主控制器每隔 1ms时间产生帧开始SOF令牌标志新的一帧的开始。在SOF 令牌之后,HC传输其它的数据。在HC正常工作时,SOF令 牌必须以1ms为间瞬连续发送而不管其它的总线活动。 SOF令牌具有总线最高的优先级。
一个设备对主机表现为一组合适的端点,一组相关的端点称为一个 接口。一个设备可以有多组接口,每一种接口的组合称为一个配置。 一个设备可以有多种配置,但在任何时刻系统只允许一种配置有效。
一个功能复杂的USB设备可以具有多个接口,不同的配置可以使其表现出不同的 功能组合或接口组合(一个接口代表设备的一个基本功能,被一个驱动程序 所驱动),被多个驱动程序驱动。
第18章 通用串行总线USB
源自文库
外设与CPU的连接存在接口标准各自独立、 互不兼容、无法共享的问题,并且安装、配置
亦很麻烦。所以产生了USB和IEEE1394两种通用
外设接口标准。
基本思想是采用通用连接器和自动配置及热 插拔技术和相应的软件,实现资源共享和外设 简单快速连接,关键是提供设备共享接口来解 决PC机与外部设备连接的通用性。
4、帧号字段 帧号字段是一个11位的字段,主机每过一帧就将 内容加1,达到最大值7FFH时清0。 5、数据字段 数据字段的长度根据不同的传输类型,可以是01023个正数字节的长度。数据移出时低位在先。
6、校验字段 校验字段用来检查所有的非PID字段的传输错误。
18.4.2 包格式
下面对令牌、数据和握手包的完整格式作说明。 在下面的格式中,同步字段仍然存在,只是没有 表示出来。 1、令牌包
18.2.3 USB设备 USB 设备分成Hub 设备和功能设备两种。 1、Hub设备(集线器)
集线器是USB即插即用技术中的核心部分,完 成USB设备的添加、插拔检测和电源管理等功能。 Hub设备不仅能向下层设备提供电源和设置速度类 型,而且能为其他USB设备提供扩展端口。
每个USB集线器有一个向主机的端面口,称为 上游端口,有若干个面向USB设备的端口,称为下 游端口。
2、消息管道 主机首先向USB设备发出一个请求,接着就是数据, 最后是状态确认。为了容纳请求/数据/状态的变化,消 息管道要求数据有一定的格式。 大部分的消息管道的通信流是单向的,但也容许双向 的数据流。例如默认控制管道也是一个消息管道,它有 两个相同号码的端点,一个用于输入,一个用于输出。 消息管道支持控制传输。 USB系统软件不会让多个请求同时要求同一个消息管 道。一个设备的每个消息管道在一个时间段内,只能为 一个消息请求服务。多个客户软件可以通过默认的控制 管道发出它们的请求,但是按先到先服务的方式进行。
18.1.1 USB的发展过程 USB(Universal Serial Bus)的中文含义是 通用串行总线,它是一种新型的外设接口标准。 USB 以Intel 公司为主,并有Compaq、 Microsoft、IBM 、DEC、IEC 等公司共同开发, 于1994年11月制定了第一个草案, 1996年2月公布了USB1.0 版本,目前已发展 到2.0版本。
USB工作在5V电源下,总线提供最大500mA电流。
⑥ 实现了低成本。
18.1.3 USB接口特性
USB总线(电缆)包含4根信号线,用以 传送信号和提供电源。其中D+ 和D- 为信号 线,是一对双绞线;VBUS 和GND 是电源线, 提供电源。相应的USB接口插头(座)也比 较简单,只有4芯。
1、USB输出驱动特性 USB采用差分驱动输出的方式在USB电缆 上传输信号。信号的低电平必须低于0.3V, 高电平必须高于2.8V,输出驱动必须支持三 态工作,以支持双向半双工的数据传输。下 图是USB全速CMOS驱动电路。
端点和管道模型
一个设备可以有多个端点,但所有的USB设 备都必须有一个端点0用于设置,完成Control 类型传送。 在设备配置时,必须告诉主机设备各端点的 特性,包括端点号、通信方向、端点支持的最 大包大小、带宽要求、以及支持的通信方式。 每个设备的端点0是主机与它建立的默认管 道,用于设备配置;其余的端点在设备配置前 是不能和主机通信的。
2、功能设备
功能设备是具有一定特殊应用功能的设备,它能 在总线上发送和接收来自主机的数据或控制信息。每 个功能设备必须有自己的配置信息,描述自身的功能 和资源要求。在一个功能设备被启用前,主机必须先 对它进行配置。所有的设备都有一个端点0,主机与 它通信,对设备进行配置和基本的控制。 每个设备中有一个和多个逻辑连接点,称为端 点。端点在硬件上是一定深度的FIFO。
18.2.1 总线拓扑结构
USB总线是一种层状的星型拓扑,其根部是 主机主控制器。USB器件可以直接与根部接口连 接实现其功能。若多个器件需要同时接到主控制 器上,只需用集线器(HUB)来扩展。可见每个 集线器都是星形的中心。 USB协议规定最多允许5级集线器进行连接, 这种集线器连接方式使得外设扩展很容易。从逻 辑上看,各个设备好像与主机直接相连。
一个集线器由中继器和控制器构成。中继器是一个 上游端口和下游端口之间由协议控制的开关,负责连接 的建立和断开;控制器管理主机与集线器间的通信及帧 定时,它内部提供的寄存器用于与主机的通信。
所有的USB集线器和全速设备的上游端口的 驱动都必须是全速的。集线器上游端口发送数据 的实际速率可以是低速,但其信号必须采用全速 信号定义。低速设备上游端口的驱动器电路是低 速的。
1997年,微软在Windows97中开始外挂模块 形式提供对USB的支持, 1998后,随着Windows98中内置了对USB接口 的支持模块,加上USB设备日益增多,USB 逐渐 流行起来。
USB1.0的接口采用全速(12Mb/s)和慢速 (1.5Mb/s)两种不同的速度。
USB2.0利用传输时序的微帧及相关传输技术, 传输速度提高到480Mb/s。1GB的数据在1分钟内可 以传输完毕,它是USB1.1速度的40倍。
18.1.2
USB的设计目标及特点
1、设计目标 ① 易于扩充多个外围设备; ② 协议灵活,综合了同步和异步数据传输,支持 480Mb/s的数据传输;
③ 充分支持对音频和压缩视频等实时数据的传输
④ 提供一个廉价的接口标准。
2、主要特点 ① 有低速、全速和高速3种模式供选择
图18.7
帧/微帧的关系
帧结束EOF
集线器在帧结束EOF期间停止任何传输任务, 为SOF标志的传输提供一个空闲的总线。
主机控制器在帧结束期间也要停止一切传输 操作,当EOF间隙产生时,所有的正在传输的事 物必须暂停。
USB定义了全速帧的时间为1ms,高速微帧的 时间仅为125us。全速连接时每隔1ms产生1个SOF 令牌,高速连接时每1ms产生8个SOF令牌。
2、USB接收特性 所有的USB接口都必须有一个差分数据接收器和两个 单极性接收器。前者能分辨D+和D-数据线之间小至200mv 的电位差,而后者的接收器分别用于D+和D-线,它们的 开关阈值电压为0.8V和2.0V。
USB上游端口:连到主机
USB下游端口:连到目标设备
18.1.5 USB数据编码和解码 USB使用一种不归零反向NRZI编码方案。该方案中, ‘1’表示电平不变,‘0’表示电平改变。 第二个波形中,开始的高电平表示数据线上的J态,后 面就是NRZI编码。 NRZI码:欲判断当前电平所表示的逻辑值,需比较 当前电平与前一电平,看是否翻转,若翻转,则逻辑值 为‘0’,否则为‘1’。
18.3.2 管道 管道是设备上的端点和主机上的软件连接,管道体现 了主机上的缓存和端点间的传输数据的能力。在通信之前, 主机和设备之间必须先建立一个管道。因此,每条管道与 端点的特性都有直接关系,它只能支持一种通信方式。 1、流管道 流管道中的数据是流的形式,它不具有USB要求的结构, 其通信流总是单向的,在管道中传输的数据遵循先进先出 的原则。 流管道只能连接到一个固定号码的端点上,或者流入 或者流出。流管道支持同步传输、中断传输和批传输。
18.2.4 USB的通信模型
OSI模型中的telnet/ftp 等应用层
OSI模型中的网络层 +LLC层 OSI模型中的物理层
18.3 USB数据流模型 18.3.1 端点 端点是一个USB设备中唯一可寻址的部分,是主机和 设备之间数据通信的源和目的,端点在硬件上就是一个 有一定深度的FIFO。 每个设备都有一个由主机分配的唯一地址,而各个 设备上的端点都有设备确定的端点号和通信方向。 每个端点只支持单向通信(端点0除外)。设备地址、 端点号和数据流方向就唯一确定了各个端点。
包 标 志 符 类 型 描 述
3、地址字段
设备地址字段有7位,用来确定设备的唯一地址;端 点字段由4位,用来确定设备上的端点号。只有这两个字 段都正确,相应的端点才能和主机通信。
除了端点地址0外,端点个数由功能部件决定;所 有功能部件必须有端点0提供一个控制管道。低速设备 的每个功能部件最多提供3个管道,全速功能部件最多 可达16个任何类型的端口。
18.4 USB协议层
18.4.1 包字段格式
1、同步字段
一个USB包由若干字段组成,所有包的开始都有一 个同步字段SYNC,它在总线上由‘KJKJKJKK’信号组成。 对低速设备K=0,J=1;全速设备K=1,J=0。
2、包标志符字段
所有USB包的同步字段后都有包标志符(PID), 它由4位包类型字段PID0-PID3和校验字段PID0PID3组成,包标志符字段指明了包的类型。包标 志符的校验字段通过对包类型字段的二进制求反 码产生。
18.2 USB系统结构
一个USB系统定义由USB主机、USB设备和USB互 连3个部分组成。USB互连是指USB设备与主机之间 进行连接和通信的操作(类似OSI网络模型),它 包括:
① 总线拓扑结构; ② 通信各层的任务和相互关系; ③ 数据流模型; ④ 主机与多路USB设备通信时的带宽分配等内容。
数据J/K态可给出是高速还是低速的设备,从 而获取基本的采样时钟。 SYNC字符的作用:在基本的采样时钟的基础上,通
过SYNC字符可以进一步精确化采样基准时钟频率,即 自同步self-clocking,以便接收方在SYNC字符宽度内 就能摸索/统计出精确的采用时钟。
根据NRZI编码规定,当数据连续发6个‘1’时,它会自 动插入一个‘0’;接收端也有自动识别被插入‘0’的能力, 并自动删除。这样做的目的就是通信双方的时钟不可能产 生失步(失步由时钟误差引起, bit stuffing的作用是对 采样时钟间的误差进行调节)。如下图示(同步信号为 10000000B,且低位在先):
主模式为全速模式,速度为12Mb/s;低速模 式用于低速设备(比如鼠标),速度为1.5Mb/s; USB2.0增加了高速模式,速度为480Mb/s,非常 适合一些视频输入/输出产品。
② 设备安装和配置容易
连接方便,不必打开机盖,支持热插拔技术。
③ 易于扩展 通过使用HUB扩展到127个外设,标准USB电缆 长度为3m(低速为5m),通过HUB可以达到30m。 ④ 使用灵活 表现在有4种传输模式:控制传输、块传输、 中断传输和同步传输,以适应不同的设备。 ⑤ 能够采用总线供电
2、传输差错控制 HC必须能够发现超时错、协议错、数据丢失错和无效 传输等错误。 3、状态处理 状态处理作为主机的一部分,HC报告及管理它的状态。 4、串行/并行数据转换 输出时要转换成串行数据,输入时要将串行数据转换 成并行数据。 5、数据处理 HC处理来自主机输入/输出数据的请求,接收来自 USB系统的数据并将其传输给USB设备或从USB设备接收数 据送给USB系统
图18.6 USB设备和USB主机的连接 (a)物理连接:阶段式树状结构tier-tree (b)逻辑连接
18.2.2 USB主机 在一个USB系统中只有一台主机。主机的USB接口成 为USB控制器,通过它主机与外围USB进行通信。下面就 USB控制器的主要功能进行讨论:
1、帧产生
USB系统采用帧同步方式传输数据。主控制器每隔 1ms时间产生帧开始SOF令牌标志新的一帧的开始。在SOF 令牌之后,HC传输其它的数据。在HC正常工作时,SOF令 牌必须以1ms为间瞬连续发送而不管其它的总线活动。 SOF令牌具有总线最高的优先级。
一个设备对主机表现为一组合适的端点,一组相关的端点称为一个 接口。一个设备可以有多组接口,每一种接口的组合称为一个配置。 一个设备可以有多种配置,但在任何时刻系统只允许一种配置有效。
一个功能复杂的USB设备可以具有多个接口,不同的配置可以使其表现出不同的 功能组合或接口组合(一个接口代表设备的一个基本功能,被一个驱动程序 所驱动),被多个驱动程序驱动。
第18章 通用串行总线USB
源自文库
外设与CPU的连接存在接口标准各自独立、 互不兼容、无法共享的问题,并且安装、配置
亦很麻烦。所以产生了USB和IEEE1394两种通用
外设接口标准。
基本思想是采用通用连接器和自动配置及热 插拔技术和相应的软件,实现资源共享和外设 简单快速连接,关键是提供设备共享接口来解 决PC机与外部设备连接的通用性。
4、帧号字段 帧号字段是一个11位的字段,主机每过一帧就将 内容加1,达到最大值7FFH时清0。 5、数据字段 数据字段的长度根据不同的传输类型,可以是01023个正数字节的长度。数据移出时低位在先。
6、校验字段 校验字段用来检查所有的非PID字段的传输错误。
18.4.2 包格式
下面对令牌、数据和握手包的完整格式作说明。 在下面的格式中,同步字段仍然存在,只是没有 表示出来。 1、令牌包
18.2.3 USB设备 USB 设备分成Hub 设备和功能设备两种。 1、Hub设备(集线器)
集线器是USB即插即用技术中的核心部分,完 成USB设备的添加、插拔检测和电源管理等功能。 Hub设备不仅能向下层设备提供电源和设置速度类 型,而且能为其他USB设备提供扩展端口。
每个USB集线器有一个向主机的端面口,称为 上游端口,有若干个面向USB设备的端口,称为下 游端口。
2、消息管道 主机首先向USB设备发出一个请求,接着就是数据, 最后是状态确认。为了容纳请求/数据/状态的变化,消 息管道要求数据有一定的格式。 大部分的消息管道的通信流是单向的,但也容许双向 的数据流。例如默认控制管道也是一个消息管道,它有 两个相同号码的端点,一个用于输入,一个用于输出。 消息管道支持控制传输。 USB系统软件不会让多个请求同时要求同一个消息管 道。一个设备的每个消息管道在一个时间段内,只能为 一个消息请求服务。多个客户软件可以通过默认的控制 管道发出它们的请求,但是按先到先服务的方式进行。
18.1.1 USB的发展过程 USB(Universal Serial Bus)的中文含义是 通用串行总线,它是一种新型的外设接口标准。 USB 以Intel 公司为主,并有Compaq、 Microsoft、IBM 、DEC、IEC 等公司共同开发, 于1994年11月制定了第一个草案, 1996年2月公布了USB1.0 版本,目前已发展 到2.0版本。
USB工作在5V电源下,总线提供最大500mA电流。
⑥ 实现了低成本。
18.1.3 USB接口特性
USB总线(电缆)包含4根信号线,用以 传送信号和提供电源。其中D+ 和D- 为信号 线,是一对双绞线;VBUS 和GND 是电源线, 提供电源。相应的USB接口插头(座)也比 较简单,只有4芯。
1、USB输出驱动特性 USB采用差分驱动输出的方式在USB电缆 上传输信号。信号的低电平必须低于0.3V, 高电平必须高于2.8V,输出驱动必须支持三 态工作,以支持双向半双工的数据传输。下 图是USB全速CMOS驱动电路。
端点和管道模型
一个设备可以有多个端点,但所有的USB设 备都必须有一个端点0用于设置,完成Control 类型传送。 在设备配置时,必须告诉主机设备各端点的 特性,包括端点号、通信方向、端点支持的最 大包大小、带宽要求、以及支持的通信方式。 每个设备的端点0是主机与它建立的默认管 道,用于设备配置;其余的端点在设备配置前 是不能和主机通信的。
2、功能设备
功能设备是具有一定特殊应用功能的设备,它能 在总线上发送和接收来自主机的数据或控制信息。每 个功能设备必须有自己的配置信息,描述自身的功能 和资源要求。在一个功能设备被启用前,主机必须先 对它进行配置。所有的设备都有一个端点0,主机与 它通信,对设备进行配置和基本的控制。 每个设备中有一个和多个逻辑连接点,称为端 点。端点在硬件上是一定深度的FIFO。
18.2.1 总线拓扑结构
USB总线是一种层状的星型拓扑,其根部是 主机主控制器。USB器件可以直接与根部接口连 接实现其功能。若多个器件需要同时接到主控制 器上,只需用集线器(HUB)来扩展。可见每个 集线器都是星形的中心。 USB协议规定最多允许5级集线器进行连接, 这种集线器连接方式使得外设扩展很容易。从逻 辑上看,各个设备好像与主机直接相连。
一个集线器由中继器和控制器构成。中继器是一个 上游端口和下游端口之间由协议控制的开关,负责连接 的建立和断开;控制器管理主机与集线器间的通信及帧 定时,它内部提供的寄存器用于与主机的通信。
所有的USB集线器和全速设备的上游端口的 驱动都必须是全速的。集线器上游端口发送数据 的实际速率可以是低速,但其信号必须采用全速 信号定义。低速设备上游端口的驱动器电路是低 速的。
1997年,微软在Windows97中开始外挂模块 形式提供对USB的支持, 1998后,随着Windows98中内置了对USB接口 的支持模块,加上USB设备日益增多,USB 逐渐 流行起来。
USB1.0的接口采用全速(12Mb/s)和慢速 (1.5Mb/s)两种不同的速度。
USB2.0利用传输时序的微帧及相关传输技术, 传输速度提高到480Mb/s。1GB的数据在1分钟内可 以传输完毕,它是USB1.1速度的40倍。