当前位置:文档之家› USB通用串行总线

USB通用串行总线

第7章 USB通用串行总线 7.1 概述 7.1.1 USB发展过程 通用串行总线USB(Universal Serial Bus)由Compaq、IBM 、Intel、Microsoft、NEC等公司于1994年联合提出。 1996年发布USB1.0标准 1998年发布USB1.1标准 两种传输速度:1.5Mdbs(低速)、12Mdbs(全速) 热拔插和即插即用 最多可同时连接127台设备 1999年发布USB2.0标准 1)最高传输速度达480Mdbs(高速),是USB1.1的40倍 2)向下兼容USU1.1

7.1.2 USB的设计目标及特点 设计准则: 1)易于扩充 2)协议灵活 3)支持音频/视频等实时数据的传输 4)提供价格低廉的标准接口 USB的特点: 1)速度快 2)设备安装和配置容易 3)易于扩展 4)使用灵活 5)可总线供电 6)成本低

7.1.3 USB的接口特性

1.USB的输出 . 差分驱动,支持半双工方式 . 电缆阻抗范围: 76.5 – 103.5Ω . 驱动器输出阻抗匹配电阻:28 – 44Ω . 所有USB设备的上游端口,按设备的最高速定义。 2.USB的接收 . 差分接收 7.1.4 USB信号的定义

包开始 数据线从闲置状态跳变到K态 包结束 SE0态保持2位的传输时间后之后, SE0态保持2位的传输时间后之后, 保持1位传输时间保持1位传输时间的J态。 的J态。 断开 SE0 保持SE0态持续2.5us以上 SE0 保持SE0态持续2.5us以上 连接 闲置状态持续时间≥2ms 闲置状态持续时间≥2.5us 复位 D+和D-<2.8v的持续时间 ≥ 10ms D+和D-<0.3v的持续时间 ≥ 2.5us

7.1.5 数据的编码与解码 NRZI的编码方法不需独立的时钟信号和数据一起发送,电平跳变代表“0”,没有电平跳变代表“1”。在数据被编 码前,在数据流中每6个连续的“1”后插入1个“0”,从而强迫NRZI码发生变化,接收端必须去掉这个插入的“0”。

位填充和NRZI编码 如果接收端连续接收到7个逻辑“1”,则认为发生了位填充错误。 7.2 USB系统结构 7.2.1 USB总线的拓扑结构

. 阶梯式星型拓扑结构

USB的物理连接 USB的逻辑连接

D D

HOST 层1 层2

层3 层4 . 管道:HOST软件与USB设备端口间的数据传输通道。 . 一个USB设备可有多个管道;设备的一个端口可建立一个输入管道和一个输出管道。 . 各管道之间相互独立。

7.2.2 USB主机 一个USB系统只有一个主机,主机的USB接口称为USB控制器。 USB控制器无论对主机还是USB设备,都必须具备如下的主要功能: 1. 帧产生 USB系统采用帧同步传输。 . 控制器将总线时间化分为帧,每帧持续时间:1ms . 每1ms都以SOF(Start –Of-Frame)令牌开始,标识新的一帧开始。在SOF之后,总 线处于工作状态,主机与USB设备开始传输数据,传输完成,进入帧结束间隔区(EOF), 总线处于空闲状态。等待下一帧的开始。 . SOF以广播的方式,发到所有的全速设备,每隔1ms发送一次。 . 在帧结束间隔区(EOF)间内,所有的传输都被禁止或暂停。 . 高速微帧的持续时间为125us,每1ms内可产生8个微帧SOF令牌。 EOF间隔 SOF SOF SOF

帧N-1 帧 N 帧 N+1

1ms 1ms

„ 125us 2. 传输差错控制 . 超时错。目标端口没有反应。 . 协议错。位插入错(出现连续7个“1”),无效握手包,错误的包标志等。 . 数据丢失错或无效传输错。传输时间超过EOF(1ms)、CRC校验等 对于批传输、命令传输和中断传输,上述各类型的错误出现3次后,终止传输。同步传输则不受此限制。 3. 状态处理 控制器负责管理和报告USB系统的各种状态,状态处理器负责对状态信息做处理,使主机控制器与设备之间的状态保持一致。 4. 串行化与反串行化 . 输出数据。主机控制器将协议信息与原始数据信息转换为串行数据流。 . 输入数据。主机控制器将串行数据流还原为协议信息与原始数据信息。 . 串行接口引擎(STE)负责传输过程中的串行化与反串行化工作。 5. 数据处理 . 主机控制器负责处理主机输入/输出数据的请求。 . 数据传输的格式取决于系统的具体实现,并符合USB协议的要求。

站在用户的角度,主机控制器具有的功能: . 检测USB设备的插入和拔出。 . 管理主机与设备的数据流。 . 对设备进行必要的控制。 . 收集/处理各种状态信息。 . 给设备供电。

7.2.3 USB设备 USB设备分为两类:USB集线器(HUB)、USB设备 1. USB集线器 . 上游端口 . 下游端口 . USB 集线器由控制器和中继器组成。 . 控制器负责与主机接口,接收主机发来的命令和数据。 . 中继器负责上游端口与下游端口之间的联接状态。可由硬件产 生复位、休眠和恢复信号。 2. USB功能设备 . 具备某一特定应用功能的设备,通过USB接口连接USB主机并收/ 发数据和控制信息。 . 每一设备都必须由自己的配置信息(对设备功能的描述、设备的 属性、资源要求等),主机根据设备提供的配置信息对设备进行 配置和定位驱动软件。 . 端点。USB主机与USB设备的逻辑连接点。 . 接口。一组相关的端点组成一个接口。 . 配置。一种配置,可以包含多个接口。而一个功能设备可以有多 种配置。 . 设备插入时,USB主机通过默认端口读取设备的描述符,选取一种 配置(枚举)。

7.2.4 USB的通信模型 USB设备 . USB 总线接口层 底层物理接口,通过电缆与USB主机相连,是USB设备收/发数据的接 口。 . USB 设备层 是USB协议栈的主体。它处理总线接口与不同端点之间的数据。实现 USB的各种基本行为。 . 功能层 实现USB设备的特定功能。 USB主机 . USB主控制器与根集线器 集成在PC机的主板上,是USB主机与USB设备之间的物理连接点,实现USB主机与USB设备之间的数据收/发。主控制器负责数据的转换、存储和传输。根HUB提供USB的接口,其下游端口可直接与USB设备相连。根集线器控制USB端口的电源,激活和禁止端口,识别与端口相连的设备,设置和报告与每个端口相连的状态事件 . USB系统软件 主要由USB核心驱动程序(USBD)与USB主控制器驱动程序(HCD)组成。USBD被捆绑在操作系统之中,负责解释来自用户软件(USB设备类驱动程序)的命令,并将其分解为一系列的USB事务后。发送给与USB主控制器。 HCD负责最底层的驱动任务,控制和管理硬件,负责将核心驱动程序 传送来的USB事务传给主控制器芯片。 . 客户软件与USB设备类驱动程序 USB设备类驱动程序(USB用户驱动软件),将用户的USB命令发送 给USB系统软件,同时初始化内存缓冲 区,用于存储所有USB通信中 的数据。 客户软件是用户与USB系统之间的一个界面,主要完成用户对USB的 控制,以及实时地进行一些数据交换。 对于USB系统而言,客户软件不是必需的。

7.3 USB的数据模型 7.3.1 端点(EndPoint) . 端点在USB设备中唯一可寻址的部分。在USB系统中,每个端点都 有唯一的地址(由设备地址和端点号确定)。 . 在硬件上,端点是一个有一定深度的FIFO数据缓冲区。 . 一个USB设备有一组相互独立的端点,主机通过端点与USB设备进 行通信。 . 端点的基本特性:端点号、通信方向、带宽和端点支持的包的大 小等。 . 端点0用于控制传输(系统默认),其他端点必须经系统配置后, 才能使用。 7.3.2 管道(Pipe) . 系统配置后,主机与端点之间的数据传输通道成为称为管道。 . 管道体现了主机与设备端点之间的数据传输能力。 数据流管道 . 通过流管道的数据USB没有定义格式。按先进先出的原则单向流经 管道。 . 流管道支持同步传输、中断传输和批传输。 消息管道 . 消息管道要求通过它的信息具有规定的格式。 . 消息管道可以是单向的,业可以是双向的(控制管道)。

7.3.3 USB的通信数据流

IRP 帧格式 USB格式 拆帧

相关主题