电子说
通用串行总线(USB)是个人计算机(PC)通过电缆与外设实 现通信的常用方法。某些应用中,需要隔离USB通信以满 足安全要求,或中断接地环路。遗憾的是,隔离任务不易 完成,因为USB电缆上有双向数据流。本文将讨论这个问 题,并探讨实现易于使用的隔离式USB方案面临的其他挑 战,最后对解决方案进行比较。一个理想的“透明”解决方 案能将隔离对系统的影响降至最低,目前我们就可以提供 这种解决方案。本文讨论的内容针对USB 2.0,支持三种数 据速率: 1.5 Mbps(低速)、12 Mbps(全速)和480 Mbps(高速)。 为简便起见,将详细探讨12 Mbps的情况,但示例中的很多 原理同样适用于其他速度。
USB基础知识
USB广受欢迎的一个原因是它具有简单的4线式接口,能够 为外设供电,并在外设与PC之间提供串行数据链路。图1 显示标准的USB连接。VBUS和GND线提供5 V电源和接地, 而D+和D–则承载数据。信号发送方式为双向半双工,表 示数据可在任一方向沿电缆传输,但任意特定时刻最多只 有一个发送器主动驱动电缆。通信期间,USB发送器驱动 差分或单端状态至D+和D–。数据以分组的形式进行组 织,并采用特殊信号序列表示分组开始和分组结束。有时 总线处于空闲状态,也就是说没有激活任何发送器,此时 连接电缆D+和D–端点的电阻将建立“空闲”总线状态。空 闲状态协助对分组之间的总线进行初始化。它们还用来向主机指示外设的连接与断开状态,以及外设所需要的通信 速度(1.5 Mbps、12 Mbps或480 Mbps)。
图1. 全速(12 Mbps) USB连接(非隔离式)
隔离总线主机和外设的方法
现在,请想象一下主机和外设的电气隔离。如[1]所述,隔 离栅的位置可以有数个选项。无论哪种情况,都应隔离多个 信号,并且信号的运行速度可能较快,或者信号可能是双 向的。这取决于在何处进行隔离。这使得基于分立器件构 建的解决方案变得更为复杂。完整的物料清单可能更长, 并且有可能很难找到完全满足信号传送要求的分立器件。
一种可能的隔离方法如图2a所示。图中,虚线表示隔离在 理论上将USB电缆分割。D+和D–的状态信息可以跨越隔离 栅,但电流不能。GND1节点(上游的接地基准)现在与 GND2节点(下游的接地基准)相互分离。不幸的是,隔离 使主机无法“看到”下游的上拉电阻,而外设无法“看到”上 游的下拉电阻。因此,需要使用一些额外的电阻,如图2b 所示,以便跨越隔离模仿相应连接。在这个“透明”概念 中,主机与外设之间的通信方式和图1中的非隔离式连接十分类似。透明的USB隔离器元件可方便地插入收发器和 USB电缆之间,并使用隔离电源。原本设计用于非隔离式 应用的主机和外设可方便地连接USB隔离器并交换标准 USB信号,无需大幅改动设计。
图2a. 隔离分割了电缆(概念)
图2b. 隔离分割了电缆(显示额外电阻)
这种方法非常有吸引力,只要此概念可以真正实现,但需 克服一些挑战。例如,独立的光电耦合器或数字隔离器通 常不提供兼容USB的驱动特性,也不支持双向半双工通信 方式。很多光电耦合器无法在12 Mbps或更高速率工作,并 且具有较高的传播延迟和时序误差,不符合USB 2.0时序要 求。后面还将提到其他问题。
目前,我们先讨论不透明的替代方案,如[1]中所述的方 案。这些解决方案将隔离放在主机或外设的硬件内部,而 不是通过隔离平分USB电缆。这样可以放在USB收发器和 串行接口引擎(SIE)之间,或者SIE和USB控制器之间。如 此,便可以采用独立的通用隔离器来隔离单向数字逻辑信 号。然而,这样做有几个缺点。首先,必须定制USB收发 器或控制器硬件,才能插入隔离元件。可能还需要额外的 微控制器代码或修改USB驱动器软件。这将会为系统设计 人员带来额外的工作量,并显著增加所需的威廉希尔官方网站 板空间, 因为这些解决方案非常复杂,要用到多个器件。另一个不 足之处是,这样可能会导致总数据吞吐速率的下降,因为 数据现在通过USB收发器和单独隔离的串联组合方案发 送。隔离方案可能增加与编码和解码为另一种串行格式(如 SPI)有关的延迟,或者增加与低速或隔离元件的非精确时 序有关的延迟。
虽然存在这些缺点,但这类解决方案是在无法解决透明 USB隔离器部署难题时的唯一可行方案。现在可以采用透 明解决方案了。本文的余下篇幅将描述一个完全符合要求 的示例。
透明USB隔离器要求
一个USB隔离器系统必须满足一些要求,以实现完全的“透 明”工作:
它必须驱动UD+、UD–、DD+和DD–,驱动方式与 标准USB收发器相同,并实际包含两个USB兼容收发 器,分布在隔离栅两侧(图3)。
图3. ADuM4160功能框图
它必须管理USB电缆上的双向通信,确保其收发器在 适当的时候进行发送和接收,并精确重现所有驱动 和空闲状态。若要精确重现空闲状态,它必须在其 上游侧配置上拉电阻,以模拟连接下游外设的上拉 电阻状态。它在下游侧也需配置下拉电阻。必须监 控总线上表示总线空闲、分组开始和分组结束的信 号,以便正确响应这些状况。
USB隔离器内部的信号隔离器元件必须跨越隔离栅正 向和反向传输D+和D–数据。如果信号隔离器是单向 的(通常如此),则USB隔离器系统需要多个隔离通 道,其中某些通道沿下游方向传输,另一些通道则 相反,沿上游方向传输。
信号隔离器必须以精确时序快速运行,以便支持所 需的USB信号速度,并满足USB传播延迟和时序误差 要求。
USB隔离器的每一侧都应支持5 V或3.3 V电源提供的功 率。如果提供5 V电源,那么隔离器应当获得适合为该 侧USB收发器供电的3.3 V调节电源。如果电源为3.3 V, 那么隔离器可利用它来直接为USB收发器供电,并旁 路其调节器。
透明USB隔离器的实现
ADI的ADuM4160 USB数字隔离器2 满足全部要求,采用16引 脚SOIC封装。原理框图如图3所示。它包含一对USB收发 器、5个基于iCoupler®的数字隔离通道、控制逻辑以及2个 “智能调节器”。它还集成1.5 k上游上拉电阻,以及15 k下 游下拉电阻。
其USB收发器由简化控制器控制,后者无需完全解码并分 析数据分组即可支持隔离功能。它能监控UD+、UD–、 DD+和DD–,使信号指示总线空闲、分组启动和分组结 束,并利用它们正确使能或禁用USB发送器,并忽略分组 数据内容。若将下游分组数据从主机传输至外设,则会激 活图3中的两个高位隔离通道,这与上游USB接收器和下游 USB发送器相同。数据从UD+/UD–复制到DD+/DD–。分 组结束时,检测分组结束序列,禁用所有USB发送器,允 许总线进入空闲状态。如果外设随后开始传输上游分组数 据,则USB隔离器检测分组启动序列,使能第三和第四条 隔离通道以及上游USB发送器,并将数据从DD+/DD–复制 到UD+/UD–,直到分组结束。然后,总线再次返回空闲 状态,所有发送器关断,等待新数据到达。
ADuM4160 使用第五条隔离通道交流下游侧控制线路的状 态3,该控制线路激活一个集成在上游侧的上拉电阻,使 得下游端口能够控制上游端口何时连接USB总线。该引脚 可以连接到外设上拉电阻、一条控制线路或VDD2引脚, 具体取决于何时执行初始总线连接。将引脚与外设的上拉 电阻相连可让上游上拉电阻模拟其状态, 同时让 ADuM4160的下拉电阻模拟所连接主机的状态。所有活动 与空闲状态均从隔离的一侧复制到另一侧。
隔离通道是采用芯片级变压器的数字隔离器 ,可实现隔离通 信。所有通道均可在100 Mbps以上工作,轻松支持12 Mbps USB“全速”数据。单芯片内集成所有通道可使能针对时序 的严格控制,实现满足USB时序要求的低时序误差。 ADuM4160产生的总传播延迟等于标准USB集线器产生的 延迟。空闲总线的静态功耗低于USB限值。
智能调节器支持上文第5条要求中的电源选项,无需用户 特别控制4。若要采用5 V为USB隔离器的一侧上电(如上游 侧),则应将5 V电源连接适当的VBUS引脚(如VBUS1),而 VDD1不连接。当传感器检测到电压施加于VBUS1而非 VDD1时,将激活3.3 V调节器,为VDD1上电。
若要转而采用3.3 V上电USB隔离器的一侧(如下游侧),则 3.3 V电源应同时连接VBUS2和VDD2。当传感器检测到电 压同时施加在两个引脚上时,将禁用片内调节器,以便直 接使用外部3.3 V电源。
结论
“透明”USB隔离器理论上可隔离平分USB电缆,现可轻松 用于原本针对非隔离式应用设计的USB硬件。与此相反, 在主机或外设硬件内实现隔离则要求对硬件进行较大的更 改,有时甚至可能降低USB性能。使用分立器件(比如现成 的通用隔离器)完成透明方案难度很大。然而,最新的集成 式解决方案(如ADuM4160)通过便利的单一封装解决了这 些难题,极大地简化了USB应用中实现隔离的过程。
参考威廉希尔官方网站
[1] Hauck, Lane. “Isolating USB.” EDN Magazine, July 2006
[2] Information on ADuM4160, iCoupler digital isolators, and other Analog Devices products can be found at www.analog.com/iCoupler.
[3] U.S. Patent #8432182.
[4] U.S. Patent #8564327.
全部0条评论
快来发表一下你的评论吧 !