USB:物理接口
- 物理接口
从高级概述角度来看,USB 的物理接口具有两个组件:线缆和连接器。这些连接器将设备连接到主机上。
一个 USB 线缆包含由一个绝缘套保护的多个组件。该绝缘套下面是一个包含了一个带有铜面的外部扩展板。
外部扩展板内包含多个连线:一个铜排流线、一个 VBUS 线(红色)和一个接地线(黑色)。
由铝制成的内部扩展板包含一对用双绞线制成的数据线,如图 7 所示。有一个 D+线(绿色)和一个 D-线(白色)。
物理接口
在全速和高速设备内,最大线缆长度为 5 m。要想增大主机和设备间的距离,您必须使用一系列集线器和 5 m 长的线缆。
市场上存在多种 USB 扩展线缆,但使用超过 5 m 的线缆违反了 USB 规范。低速设备的规范不太一样。
它们的线缆长度被限制为 3 m,并且不需要使用双绞线,如图 8 所示。
VBUS线为所有相连设备提供了恒定的 4.40 ~ 5.25 V 电源。
当 USB 为设备提供 5.25 V 电源时,数据线(D+和 D-)在3.3 V 电压下工作。
USB 接口使用不归零反转(NRZI)的差分传输,信号使用位填充方法进行编码并通过双绞线传输。
NRZI 编码是一种映射一个二进制信号的方法,以便通过某个介质(在这里是 USB 线缆)传输该信号。
在该编码方案中,如果电压电平不变,则表示逻辑 1;如果电压电平变化,则表示逻辑 0,如图 9 所示。顶部是将要通过 USB 传送的数据。
底部是编码的 NRZI 数据。
通过在 7 个连续的逻辑 1 后面插入一个逻辑 0 可以实现位填充。
位填充是为了通过保持锁相环(PLL)对 USB 硬件进行同步化。
如果该数据内有太多的逻辑 1,那么 NRZI 编码流中将没有足够用于实现同步化的转换。
USB 硬件上的接收器会自动检测额外位,并忽略它。
该额外位填充是引起 USB 上的额外开销的原因。
图 10 显示的是一个带有位填充的NRZI 数据的示例。
请注意,“Data to Send”(将要发送的数据)流为 8 个逻辑 1。
在该编码数据中,在第六个逻辑1 后面插入了一个逻辑 0。
这样,第七和第八个逻辑 1 将位于逻辑 0 后。
接收到任何数据后以及发送任何数据前,USB 设备中的硬件将处理所有编码和位填充。使用差分 D+和 D-信号是为了抑制共模噪声。
如果噪声被耦合到该线缆内,它将出现在该线缆中所有传输线上。如果使用 USB 硬件中的差分的放大器(该 USB 硬件在主机和设备内使用),则可以抑制共模噪声,如图 11 所示。
USB 通信过程经过了 D+和 D-线上的各种不同信号状态。某些状态发送数据,而其他则作为特殊信号状态使用。
下面内容介绍了这些状态,它们的参考列表如表 1 所示。
差分 0 和差分 1:这两个状态用于通过 USB 进行的通用数据通信。当 D+线为高电平、D-线为低电平时,该状态为差分 1。当 D+线为低电平、D-线为高电平时,该状态为差分 0.
J 状态和 K 状态:除了差分信号外,USB 规范还定义了其他两个差分状态:J 状态和 K 状态。它们的定义由设备速度决定。在全速和高速设备上,J 状态为差分 1 而 K 状态是差分 0。在低速设备上,该情况则相反。
单端 0(SE0):在 D+和 D-均为低电平时所发生的状态。该状态表示一个复位、断连或数据包的结束。
单端 1(SE1):在 D+和 D-均为高电平时发生的状态。不会故意生成该状态,并且不能在 USB 设计中出现。
闲置:必须在发送一个数据包的前后发生的状态。如果一个数据线为低电平,而另一个数据线为高电平,则表示闲置状态。高电平和低电平的定义由设备的速度决定。在全速设备上,闲置状态是指 D+为高电平、D-为低电平。在低速设备上,该情况则相反。
恢复:用于使设备从挂起状态唤醒。通过发送一个 K 状态实现该操作。
数据包的开始(SOP):当 D+和 D-线从闲置状态转换到 K 状态时,将在开始低速或全速数据包前发生。
数据包的结束(EOP):在低速或全速数据包结束时发生。当 SE0 状态持续两位时间(后面的内容将介绍位时间)以及 J 状态持续 1 位时间时,将发生 EOP。
复位:在 SE0 状态持续 10 ms 时发生。在 SE0 至少持续 2.5 ms 后,该设备会复位,并开始进入复位状态。
保持活动(Keep Alive):在低速设备中使用的信号。低速设备缺少了一个帧起始数据包(用于防止挂起状态)。每次经过 1 ms,它们都会使用一个 EOP 来防止设备进入挂起状态。
图 13 和图 14 显示的是可用的不同 USB 端口和连接器。
上行连接始终使用 Type A 型端口和连接器,而设备使用 Type B 型端口和连接器。
最初,USB 规范仅包含用于设备的更大的 Type A 型和 Type B 型连接器,后来提供了 Mini 和Micro 连接器。这些 Mini 和 Micro 连接器最初是为 USB On-the-Go (USB OTG)开发的。
USB OTG 是一个 USB 规范,允许将通常作为从设备的设备作为主机使用。
这便是图 14 将 Mini 和 Micro 端口显示为 Mini-AB 和 Micro-AB 的原因。
然而,由于 Mini-B 和 Micro-B 连接器比 Type B 型更小,因此许多电子设备都采用了该型连接器(尽管会降低USB OTG 功能)。
图 14 显示的 Mini 和 Micro 连接器具有五个(而不是 4 个)引脚。额外引脚是 ID 引脚,用于识别 OTG 应用中的主机和设备。
由于 PSoC 不支持 USB OTG,因此本应用笔记并没提供它的相关信息。
使用各种不同连接类型(Type A 和Type B 型)的原因是为了在集线器上防止发生环回连接。
某些 USB 设备包含一个电容式线缆或连接线缆,并且唯一的可见连接器为 Type A 型。表 2 和表 3 显示的是由连接器类型决定的 USB 连接器的引脚分布。
需要将两个主硬件模块连接到 USB 上:一个收发器(又被称为 PHY — 物理层),一个串行接口引擎(又被称为SIE)。
该收发器提供了 USB 连接器和芯片电路(用于控制 USB 通信)间的硬件接口。SIE 是 USB 硬件的内核。
它执行多种功能,如解码和编码 USB 数据、错误纠正、位填充和发信号。SIE 可以采取不同形式。
与收发器不同,它们不受 USB 规范的限制。实际上,有些设备使用基于软件的 SIE 以降低成本,但也有其他设备使用基于硬件的 SIE。