硬件笔记(4)---- USB学习笔记

一、USB简介
USB是一种接口,用于连接设备到计算机上。

二、USB历史
USB 是一种行业标准,用于将电子外围设备(例如:键盘、鼠标、调制解调器和硬盘驱动器)连接到计算机上,它代替了尺寸大且速度慢的连接(例如:串行和并行端口)。该标准于 1994 年由 Compaq、DEC、IBM、Intel、Microsoft、NEC 和 Nortel 共同开发。目的是开发一个能适用于多种设备的接口替换掉当时存在的诸多不同连接器,并提高电子设备的数据吞吐量。USB规范经过多次修改:

低速(LS)模式 (支持1.5Mb/s) 全速(FS)模式(支持12Mb/s) 高速(LS)模式(支持480Mb/s) (支持5Gb/s) (支持10Gb/s)
USB1.0
USB1.1
USB2.0
USB3.0
USB3.1

三、USB概况
USB 系统包括一台主机(一般是一台个人计算机(PC))和多个通过分层星形拓扑连接的外围设备。该拓扑也可以包括集线器,从而能够提供更多与 USB 系统的连接点。主机本身包含两个组件,即主控制器和根集线器。主控制器是具有软件驱动器层的硬件芯片组,用于执行以下任务:

  • 检测 USB 设备的插入和拔出
  • 管理主机和设备间的数据流
  • 提供并管理所连接设备的电源
  • 监视总线上的活动

主机可以有一个或多个主控制器。通过使用外部USB集线器,每个控制器最多可以连接127个设备。根据集线器是连接到主控制器的内部集线器,并且作为USB系统中的第一个连接层。在PC上,目前存在多个端口。这些端口是PC中根集线器的一部分。

USB 系统中的管道共有两种,分别为控制管道和数据管道。USB 规范中定义了四种不同的数据传输类型。使用哪个管道由数据传输类型决定。

四、USB架构
系统中只能有一个主机,并且与设备进行的通信是从主机的角度进行的。主机是“上行”组件,设备则是“下行”组件,如图表示。数据从主机转移到外设的操作是 OUT 传输。数据从外设转移到主机的操作是 IN 传输。主机(尤其是主控制器)控制着所有通信并向设备发出指令。共有三种常见的 USB 主控器:

五、物理接口
USB物理接口具有两个组件:线缆和连接器。

一个 USB 线缆包含由一个绝缘套保护的多个组件。该绝缘套下面是一个包含了一个带有铜面的外部扩展板。外部扩展板内包含多个连线:一个铜排流线、一个 VBUS 线(红色)和一个接地线(黑色)。由铝制成的内部扩展板包含一对用双绞线制成的数据线,如图所示。有一个 D+线(绿色)和一个 D-线(白色)。

VBUS 线为所有相连设备提供了恒定的 4.40 ~ 5.25 V 电源。当 USB 为设备提供 5.25 V 电源时,数据线(D+和 D-)在3.3 V 电压下工作。 USB 接口使用不归零反转(NRZI)的差分传输,信号使用位填充方法进行编码并通过双绞线传输。

NRZI 编码是一种映射一个二进制信号的方法,以便通过某个介质(在这里是 USB 线缆)传输该信号。在该编码方案中,如果电压电平不变,则表示逻辑 1;如果电压电平变化,则表示逻辑 0,如图所示。顶部是将要通过 USB 传送的数据。底部是编码的 NRZI 数据。

通过在 7 个连续的逻辑 1 后面插入一个逻辑 0 可以实现位填充。位填充是为了通过保持锁相环(PLL)对 USB 硬件进行同步化。如果该数据内有太多的逻辑 1,那么 NRZI 编码流中将没有足够用于实现同步化的转换。 USB 硬件上的接收器会自动检测额外位,并忽略它。该额外位填充是引起 USB 上的额外开销的原因。下图显示的是一个带有位填充的NRZI 数据的示例。请注意, “Data to Send” (将要发送的数据)流为 8 个逻辑 1。在该编码数据中,在第六个逻辑 1 后面插入了一个逻辑 0。这样,第七和第八个逻辑 1 将位于逻辑 0 后。

扫描二维码关注公众号,回复: 6220234 查看本文章

接收到任何数据后以及发送任何数据前, USB 设备中的硬件将处理所有编码和位填充。使用差分 D+和 D-信号是为了抑制共模噪声。如果噪声被耦合到该线缆内,它将出现在该线缆中所有传输线上。如果使用 USB 硬件中的差分的放大器(该 USB 硬件在主机和设备内使用),则可以抑制共模噪声,如图所示。

USB 通信过程经过了 D+和 D-线上的各种不同信号状态。某些状态发送数据,而其他则作为特殊信号状态使用。

  • 差分 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 来防止设备进入挂起状态。

总线状态 指示
差分 1 D+为高电平,D-为低电平
差分 0 D+为低电平,D-为高电平
单端 0(SE0) D+和 D-为低电平
单端 1(SE1) D+和 D-为高电平
J 状态:
低速 差分0
全速 差分1
高速 差分1
K 状态:
低速 差分 1
全速 差分 0
高速 差分 0
恢复状态: K 状态
数据包开始(SOP) 数据线从闲置状态切换到 K 状态。
数据包结束(EOP) SE0 持续两位时间以及 J 状态持续 1 位时间。

最后,我想推荐一下我的公众号,公号现在还没有内容,以后会慢慢的添加的,博客也会同步更新到公众号的。其实我是有私心的,就是想练一练写作能力,也希望关注我的读者也能和我一起成长。

猜你喜欢

转载自blog.csdn.net/qq_24546137/article/details/88319583