如果必须隔离也连接到PC的设备,则USB接口是自然的选择。USB广泛的行业支持和简单的结构(USB电缆中只有四根线)使其成为流行的PC接口。使用SPI接口连接到嵌入式系统的USB控制器易于电气隔离。SPI接口可以以任何速度运行,由简单的单向信号组成。
介绍
通用串行总线 (USB) 已成为将外围设备连接到个人计算机的标准方式。如果您需要对要连接到PC的设备进行电气隔离,USB是一种自然的连接接口,因为它具有广泛的行业支持。两个明显的隔离应用是医疗和工业,前者将基于 PC 的仪器连接到患者身上,后者可能发生较大的电源轨偏移。
USB 信令基础知识
USB 以三种速度运行:
低速,1.5Mbps
全速,12Mbps
高速,480Mbps
本文讨论全速 (12Mbps) USB 连接的光隔离。12Mbps器件以足够的带宽工作,用于有用的数据传输,并采用的数据速率对于使用廉价光耦合器的设计来说是可管理的。
USB连接器包含四根导线:两根用于供电(VBUS和GND),两根用于移动USB数据(D+和D-)。VBUS导线提供5伏电源,最高可达500毫安。D+和D-信号是双向的,以12Mbps(每比特单元83ns)的信令速率工作。D+和D-信号电压为3.3V。
USB 隔离挑战
图1.有三种可能的接口可以隔离 USB 外设:站点 1,USB 总线本身;站点2,收发器接口;和站点 3,应用程序界面。在大多数当前设计中,SIE和收发器是集成的,使得接口(2)无法访问。
USB外设是使用图1所示的框图构建的。从右到左考虑这个数字,USB收发器连接到D+和D-线,并在OE(输出使能)控制引脚的控制下驱动或接收数据。中间模块是USB串行接口引擎(SIE),将总线信号(由收发器看到和发送)转换为数据字节和USB信号,供实现USB外设的应用使用。最左边的模块是应用电路,可能是微处理器、ASIC 或数字信号处理器 (DSP)。
标记为 1、2 和 3 的灰色矩形显示了放置光耦合器的三个可能位置,以将 USB 设备与主机电气隔离。
图2.此示波器迹线显示数据包开头的 USB D+ 和 D- 信号(图 1 中的站点 1)。83ns的位时间和紧密匹配的上升/下降时间使得难以通过光隔离器保持信号保真度。D+和D-是双向的,使隔离进一步复杂化。
站点 1
在USB总线线上光隔离不切实际有几个原因,如图2所示:
信号速率为12MHz,对于高性价比隔离器来说太高了。
D+和D-信号必须仔细匹配传播延迟和偏斜,这是光隔离器难以实现的。
情况更加复杂,因为总线是双向的,但隔离器是单向的。此外,在集成收发器的外设中,OE信号(指示方向)无法访问。
站点 2
使用外部收发器的 USB 外设公开收发器接口。因此,可以考虑将这些单向信号用于光隔离。然而,该站点存在与站点1相同的问题:数据速率太高,并且确实有更多的信号以12MHz运行需要隔离。VPO、VMO、RCV、VPI 和 VMI 都以 12MHz 速率运行,需要仔细匹配延迟和偏斜。此外,在将SIE和收发器集成在同一芯片中的现代USB设计中,很少可以访问此接口。
站点 3
这是最有希望进行隔离的地方。该接口的运行速度可以比USB数据和线速慢,并且该接口可以完全由单向信号构建。事实上,理想的接口将使用少量单向信号,其工作速率远低于USB 12MHz信号速率。
满足这些要求的理想接口是SPI(串行外设接口),最初由摩托罗拉定义,现在在许多半导体类型中广泛使用。SPI由于其简单性和性能而是一个非常流行的接口。
SPI 信令基础知识
SPI 信号 | 描述 | 评论 |
SS# | 从设备选择 | 选择用于数据传输的芯片,由主站提供 |
MOSI | 主输出从输入 | 单向数据引脚 |
MISO | 主输入从输出 | 单向数据引脚 |
SCLK | 串行时钟 | 串行时钟,由主机提供 |
表1显示了四个SPI接口信号。SPI是一个主从接口,其中主站发起并向单个从机执行事务。主机提供从选择(SS#)信号和串行时钟(SCLK)以同步数据传输。SPI接口有四种时钟模式,反映两种模式信号,称为CPOL(时钟极性)和CPHA(时钟相位)。这些信号以(CPOL,CPHA)的形式表示。
图3显示了微处理器和SPI从器件之间的SPI数据传输。图 3 使用最常见的 SPI 模式 (0,0)。在模式(0,0)下,时钟处于低电平处于非活动状态,SPI主机在第一个SCLK正边沿之前提供MOSI数据。SPI数据在SCLK下降沿上发生变化,并在主器件和从器件的上升沿上采样。
图3.在模式 (0,0) 下运行的 SPI 接口。如果 SCLK 信号设为低电平有效(静态为高电平),则同一接口可以在模式 (1,1) 下工作。这些低频信号易于光学隔离。
SPI接口易于在任何微处理器上实现,即使是不包含硬件SPI单元的微处理器。只需四个通用 IO (GPIO) 引脚即可构建图 3 信号,以及通过直接切换 IO 引脚来读取和写入字节的子程序。
图4显示了当USB外设控制器使用SPI接口时,SPI和USB之间的数据速率差异。在此图中,控制微处理器用作USB键盘,并定期闪烁LED。图5中的SPI流量表示一次LED闪烁(切换输出位);USB 流量是请求键盘数据的 USB 主机。
这两种总线之间的数据速率差异是巨大的。显然,较低频率的单向SPI信号比12MHz双向USB总线信号更容易隔离。使用SPI信号,隔离解决方案变得非常简单,可以定制为在任何频率下运行,以适应光隔离器的特性。
图4.SPI数据速率与USB信令速率的比较。SPI信号便于通过光耦合器传输。
产生图4的系统如何协调操作USB控制器的SPI总线与USB信号速率之间的数据速率差异?USB的优点之一是它是“自节流”的,内置流量控制。它通过使用称为“NAK”(否定确认)的握手来完成对数据流的控制,外围设备告诉请求数据的主机它尚未准备好数据,主机应稍后重试。
SPI 数据速率和 USB NAK
图5.USB 总线跟踪显示外设响应主机输入数据请求的速度较慢。主机请求数据包 362-364 中的数据。外设已准备好数据包420中的数据。中间的 IN-NAK 数据包演示了 USB 流控制。外设使用 NAK 进行响应,直到准备好数据。
图 5 显示了 USB 流控制机制的实际应用。从数据包 362 开始,主机发出请求。数据包09倒数第二个字节中的363表示主机从外设请求9个字节的数据。外设确认收到数据包 364 中的请求,然后忙于解码请求并将请求的数据加载到其端点 0 数据 FIFO 中。慢速外设需要一些时间来响应此请求,相对较慢的SPI总线速度进一步增加了响应时间。Get_Descriptor-Configuration
在 988.667 微秒之后(数据包 364 之后),主机开始在数据包 366 中请求请求的数据。外围设备还没有数据,因此 USB 硬件会自动响应 NAK 握手,指示“我正忙,请稍后再试”。主机在数据包 368 中再次尝试,并从外围设备获得相同的 NAK 应答。此 IN-NAK 进程一直持续到数据包 419,此时外设最终加载了请求的数据并为其端点零武装以进行数据传输。现在,外设不是 NAK,而是使用数据包 9 中的 420 字节数据包进行响应,主机在数据包 421 中确认该数据包。
IN-NAK对(图5中的虚线矩形)可以出现任意次数,这意味着SPI接口的运行速率没有下限。这允许设计人员微调SPI数据速率,以适应光耦合器的选择,从而实现实用且经济高效的设计。
隔离式 USB 设计示例
图6.隔离式 USB 设计的示意图。左侧由USB总线本身供电,右侧使用隔离电源。在SPI接口上提供隔离使设计变得简单,并且不受严格的USB总线时序的影响。
图6是围绕廉价微处理器构建的电路:Atmel® AtTiny13 (U6)、HCPL-2531光耦合器 (U3-5) 和 MAX3420E (U1),MAX6E (U1)是一种USB外设控制器,具有与其寄存器组的SPI接口。尽管U6不包含硬件SPI单元,但SPI接口可以通过“位敲击”一些GPIO引脚轻松管理。U1 提供 2 个通用输入和 1 个通用输出引脚,以替换(并添加到)U1 用于实现 SPI 接口的引脚。此设计使用两个输出引脚驱动 LED 指示灯 D6 和 D<>,并使用一个输入引脚连接按钮 PB<>。由于U<>包含自己的IO引脚,由SPI接口控制,因此这些IO本质上与U<>隔离,不需要单独隔离。
图7.隔离接口两侧的SPI SCLK信号。顶部:ISOVCC = 8.3V,ISOGND = 5V.底部:由 USB 供电:VCC = 3.3V,GND = 0V。
图7显示了隔离接口两侧SCLK信号的示波器走线。两条跟踪的基线设置在屏幕底部。顶部迹线显示由U6生成的SCLK信号,但偏移了5V。
图8.SCK隔离(顶部)和MAX342E(底部),示为扩展刻度。
图8是图7的扩展标度版本,展示了光耦合器的性能。光耦合器的吞吐延迟约为0.5μs,本设计选择电阻值。中心的短 SCLK 脉冲由驱动 SCLK IO 引脚的 U6 代码的一部分产生。U6 代码的这一部分如图 9 所示。
图9.AtTiny13汇编代码读取MAX3420E寄存器。SPI接口时序可以在这里进行微调,以提供光耦合器的成本/性能权衡。
就在标签之前,SCK信号被驱动为低电平,然后立即再次被驱动为高电平。(和 是汇编宏,无需更改代码即可轻松为特定电路板布局分配 IO 引脚。
通过在这两个语句之间插入一些NOP指令,可以延长图8中的窄脉冲,从而为使用速度较慢(即成本较低)的光耦合器创造可能性。此过程说明了SPI接口为光隔离应用提供的灵活性。
结论
由于USB数据信号的高速、双向特性和严格的匹配要求,电气隔离USB一直是一个挑战。如果隔离 USB 控制器和应用处理器之间的接口(图 3 中的站点 1),隔离问题将变得更加简单,因为此接口可以以任何速率运行。Site 3的较低信令速率使其非常适合低成本光耦合器解决方案。与任何隔离设计一样,需要隔离的线路越少,越能节省成本。SPI接口是隔离的理想候选者,因为它仅使用四个低速单向信号。由于MAX3420E使用简单的SPI接口连接到任何控制器,因此为嵌入式系统添加USB功能提供了理想的方法,并具有提供简单隔离方案的额外优势。MAX3421E也可以用于隔离式USB主机应用,MAX3420E既可以用作外设,也可以用作主机,使用与MAX<>E相同的SPI接口。
审核编辑:郭婷
全部0条评论
快来发表一下你的评论吧 !