使用usb术语详解

如果您刚开始接触 USB ,那么了解一些 USB 术语 将很有帮助。本文介绍了基本的 USB 术语。

 

主机

USB 是一种 - 式总线, 包括一个主机和多个从机。从机称作外设,在 USB 术语中也称作功能部件。主机称作主设备。所有 USB 传输都由主机启动;外设总是响应传输,不会启动传输。最常用的主机是 PC 机,主机通过 USB-A 连 接器连接到下行设备。嵌入式主机不包括 PC 机,而是用一个微控制器作为专用主机,或许只能与一类 USB 设备通信。

 

功能部件

功能部件是 USB 设备,也称作 USB 外 设。 USB 外设是主机的 下行 设备,使 用 USB B 型连接器连接。

 

速率

USB 2.0 标准规定了以下三种传输速率:
低速模式传输速率为 1.5Mbps ,多用于键盘和鼠标。
全速模式传输速率为 12Mbps
高速模式传输速率为 480Mbps

市场上关于 “USB 2.0 兼容 的概念有一些混乱。这种混乱源于 USB 标准版本的升级,首先推出的是 USB 1.0 ,紧接着有了比 1.0 更理想的 USB1.1USB1.x 支持低速和全速两种 USB 总线速度。 2.0 版本 增加了高速模式,完全替代了 1.1 。所以,如果使用的是工作在 12Mbps 速率下的全速器件,则可认为它与 USB 2.0 兼容,即使许多人仅将 USB 2.0 用于高速 (480Mbps) 操作。

 

- 出方向

USB 系统以主机为中心。因此,解释 USB 术语时假设面向的是主机。所以,从主机侧看, 表示传输方向从外设到主机;同样, 表示传输方向从主机到外设。

 

端点

端点位于 USB 外设内部,所有通信数据的来源或目的都基于这些端点,是一个可寻址的 FIFO 。每个 USB 外设 有一个唯一的地址,可能包含最多十六个端点。主机通过发出器件地址和每次数据传输的端点号,向一个具体端点 (FIFO) 发送数据。

 

每个端点的地址为 015 ,一个 端点地址对应一个方向。所以,端点 2-IN 与端点 2-OUT 完全不同。 每个器件有一个默认的双向控制端点 0 ,因此不存在端点 0-IN 和 端点 0-OUT

外设中端点的编号是任意的。枚举期间外设向主机报告其端点号和特 征。

 

集线器

集线器扩展了 USB 主机所能连接设备的数量。 PC 机的 USB 控制器内置一个集线器,负责完成一些底层 USB 功能,如检测设备的插入或拔出。集线器以全速或高速连接到上行端口 (PC) ,以低速、全速或高速连接到下行端口 ( 到外设 )PC 的根集线器可为每个 A 型连接器提供 5V500mA 电 源。一个总线供电的外部集线器可为每端口提供 100mA 电流。由于 USB 为外部集线器电路分配 100mA 电 流,因此,一个总线供电的集线器可以有四个下行端口。如果集线器有自己的电源 ( 自供电 ) ,每个下行端口可提供高达 500mA 电 流。

 

枚举

插入 USB 设备时,主机获取连接通知,继而识别刚刚插入的是什么。主机需要得到一系列描述符 ( 数据表 ) ,该描述 符来自插入的设备,所有 USB 设备在插入 USB 端口时,主机都通过默认的 CONTROL 端点 0 与设备进行通讯。如果主机确认它从设备接收的数据正确,则配置该设 备使之开始工作。如果主机认为设备的数据不正确 ( 例如,某个描述符数据有冲突或超出了规范 ) ,则忽略该设备。这时会弹出一个对话窗,说明该 USB 设备出了一些问题。

 

第九章 ( 关于枚举的更多信息 )

USB 标准的第 9 章定义了 枚举期间主机送到外设的所有请求,以及外设响应的数据格式。如果访问 USB 官方 网站,将找到一个名为 USBCV (USB 命令验证器 ) 的软件工具,其中有一部分名为 9 章测试 。这些测试可以证明您的枚举代码是否正确。在进行 USB 实验室测试时也要用到 USBCV 。 因此,如果已在自己的实验室里通过了这一 USB 验证,则实验室测试也不成问题。

 

SIE

SIE 指串行接口引擎,是所有 USB 控制 器内部的 核心 SIE 负责 处理底层协议,如填充位, CRC 生成和校验,并可发出错误报告。 SIE 的主要任务是将低级信号转换成字节,以供控制器使用,某些 SIE 会更加先进灵活。它处理的底层信号细节越多,控制固件越简单。例如,某些 SIE 只报告端点数据触发的结果 ( 参见下文 ) ,并将它留给固件以确定如何处理。

 

数据触发

USB 包从 PIDID 开始。数据传输用到两种 PIDDATA0DATA1 。主机和外设均包含数据触发位,每个端点一个。触发位确定这些数据 PID 中的哪一个用于数据传输。当外设脱离复位状态,主机和外设均将其内部数据触发位复位到零。因此,第一个传 送的是 DATA0 PID 数据包。当数据包传输无误时 ( 发送方接收到 ACK PID 信号,表明数据传输无误 ) ,发送方和接收方补偿其数据触发值。然后用 DATA1 PID 向端点发送第二个数据包。成功传输后, DATA0 PIDDATA1 PID 数据包交替发送 ( 或再次触 发 )USB 将该机制作为其误差校正的一部分。

 

控制传输、批量传输、中断传输、同步传输

USB 有上述四种传输类型。枚举期间外设告诉主机每个端点支持哪种传输类型。

只有主机能够发出控制传输,该传输由两个或三段组成。先通过设置数 据包 (8 字节长 ) 发送具体的主机请求。然后用一个可选数据包移动描述符表等数据。最后,用握手 ( 状态 ) 包终止控 制传输。作为 关键 传输,控制传输有高总线优先权和最全面的误差校验。每个 USB 外设都需要一个默认的控制端点 0

 

批量传输使用流控制和误差校验移动数据。批量传输为异步方式,这意 味着预定传输时间不固定或不能保证。主机安排批量传输的优先级为低。这并不说明批量传输很慢;如果总线被轻微加载,批量传输即可在所有可用带宽上进行。

 

实际上,中断传输和批量传输很难区分。他们之间的唯一区别是中断点 包含轮询间隔值,用来告诉主机多长时间 “ping” 一次端点。所以批量和中断传输之间的唯一区别是主机多长时间安排 一次传输。

同步 (ISO) 传输用于数据流,例如音频或视频,此时数据必须及时到达以避免音频或视频数据中断。当器件枚举时告诉主 机其 ISO 端点对带宽的要求。如果带宽适当,主机保证每隔 1ms 发送一个 USB 帧, 包含一个发往或来自设备的 ISO 数据包。 ISO 不使用握手 (ACK/NAK) 或总线重试。同步传输仅适用于全速和高速设备。

 

总线复位

主机通过发出总线复位信号复位 USB 外设。全速和低速 USBD+D- 线上通 常使用差分信号。但也有例外,总线复位和包结束信号使用的是单端零信号,此时 D+D- 均为低。

 

USB 驱动器

Windows 中内置了支持各种 USB 设备的驱动程序。如果固件支持这些标准设备之一,则 USB 产品不需要安装定制驱动程序 ( 没人真 的想要写 Windows 驱动 )Windows 包含标准设备驱动程序,如 HID ( 人机接口设备 ) 和大容量存储器 ( 磁盘驱动 器、 CD-ROM 、存储器条 )

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值