ADI_Amy

SPI总线在隔离系统中的处理方法

ADI_Amy 員工 在 2015-2-27 建立的討論區

SPI(串行外设接口)总线成为设计师宠儿的原因有多种。SPI总线支持高速工作模式,可在短距离内(如电路板芯片间)以最高60 Mbps的速率传输数据。总线在原理上很简单,由一个时钟、两条数据线路和一个芯片选择信号构成。由于数据出现在时钟的一个相位上并在相反相位读回,因此,在速率上出现延迟和失配的几率非常大。最后,总线是由单向线路构成的,这种设计简化了其在微处理器中的实现方式,消除了流程控制问题,非常适合光耦合器或数字隔离器的隔离应用,因为隔离器天生就属于单向器件。

 

在热量或压力监测系统等工业应用中,与传感器前端的ADC进行通信无需高采样速率,因而也不需要高SPI时钟速率。甚至可以利用多种隔离技术轻松实现隔离设计,但要求总是随着时间的推移而发展的。而长走线距离、高数据速率、隔离需求等要求也使得古老的SPI接口受到了瓶颈限制。在本文中,我们将探讨SPI总线、其限制及其在隔离系统中的处理方法。

 

将隔离式SPI性能推向极致的一种应用是高动态范围传感器接口。要构造宽动态范围的系统,设计师首先要选择一个信噪比(SNR)良好的ADC,而信噪比通常与字长相关;转换器的常用字长是16位。但是,如果需要更高的动态范围,则可采用其他技术,比如输入可变增益放大技术、过采样技术等。过采样技术以带宽换取噪声抑制性能。如果采样频率增加一倍,噪声性能一般会提高3 dB。例如,如果过采样速率为75倍,则噪声性能和动态范围将提高约18 dB。以75倍速率对信号进行过采样意味着,以900 kSPS运行的ADC在约6 kHz的带宽范围内,可使动态范围提高18 dB。当然,带宽和动态范围可以进行权衡,但最终,尽量提高ADC的工作速率有着巨大的好处。这意味着,SPI总线必须跟上这些巨量数据的步伐。我们来看一个例子,其中采用了一个面向高采样速率应用的典型组件,比如,运行速率最高达2.5 MSPS的ADI AD705 Pulsar ADC。我们将看到,通过SPI总线进行通信会对信号链的性能造成哪些影响。

 

ADC接口

典型的模数转换器以两个基本操作来处理数据,如图1所示。首先,ADC有个转换周期(tCONV),在此期间,ADC通过内部程序创建一个数字,代表其输入端的电压。其次,ADC在采集时间(tACQ)内,通过一个数字接口将获得的数据字传输到一个控制器。在开始另一次转换之前,ADC通常有一个最小周期时间(tCYC),约为tCONV与tACQ之和;但是,当ADC具有会使采集与传输重合的特殊传输模式时,该周期时间可能短一些。简单起见,下面的讨论将基于序列转换和采集。

 

图1. 简单的ADC传输序列

 

无论数据传输方式如何,转换时间和最小周期时间均相同。但是,采集时间取决于数据接口的属性,多数情况下是SPI总线的工作模式。如果采集时间因SPI的时钟速率而延长,则ADC的采样速率可能严重受限。

SPI时钟速率限制

 

微处理器/FPGA (MCU)与ADC之间的SPI链路如图2所示。SPI总线由一对移位寄存器之间的连接构成,一个寄存器位于主机MCU中,另一个位于从机ADC中。MCU提供的时钟使传输同步。时钟的一个边沿将数据移出移位寄存器,互补边沿则把出现的数据逐个输入环形拓扑结构中各个移位寄存器的另一端。对于ADC,可能不必把数据从MCU移到ADC,因此,简单起见,我们略去了该通道,同时还略去了从机选择。ADC在工作过程中的转换阶段,填充其内部移位寄存器,然后在采集阶段移出该寄存器。、

 

图2. ADC SPI通信框图/时序图

 

在SPI处理中,主机产生的时钟信号经过一些走线延迟传输至从机,触发从机在一定的内部延迟之后移出数据。数据信号经过走线延迟再次回到主机,必须及时到达主机,以便在时钟的互补边沿发挥作用。在这方面,主机一般有一些额外的建立时间要求。该时序如图2所示;从图中可以看出,这些延迟决定着主机半时钟周期的最短时间。在非隔离式系统中,这些时间一般非常短,多数情况下小于10 nS,允许SPI时钟以50 MHz以上的速率运行。

如果在SPI数据路径上放置隔离栅(如图3所示),结果会增添与走线延迟相似的项。然而,根据隔离所用的具体技术,通过隔离的信号传播延迟(tpISO)可能超过0 nS。另外从图3可以看出,新的延迟时间会延长数据处理所需时间,同时还会大幅增加SPI时钟的半周期。隔离延迟成为系统中所有其他时间延迟的主体,最大时钟频率可能降至几MHz。

 

图3. 隔离式ADC SPI通信框图/时序图

 

对时钟周期的主要限制是,数据必须及时出现在主机处,以便在下一个时钟边沿时使用。在非隔离式系统中,这并非一个严重的制约条件,由于支持较大的时序裕量,因此实际上反而有利于增进数据的鲁棒性。然而,数据路径的传播延迟一旦开始在半周期中占主导地位,结果就会导致总线的最大速率显著下降。

幸运的是,有一种办法可以解决这个限制。如果从机返回的数据有一个独立时钟与其同步,则可在MCU设置独立的接收移位寄存器,以便基于独立时钟接受数据。在这种情况下,SPI总线的吞吐速率不再受隔离栅传播延迟的限制,而是受隔离器吞吐速率的限制。

 

 图4. 隔离式系统构建独立的数据时钟

 

通过向隔离器中添加一个匹配的高速数据通道,并沿着一条匹配的数据路径,与来自ADC的数据一起发送隔离式SPI时钟的副本,即可轻松构建独立时钟DCLK,如图4所示。这种方法需要在隔离栅中集成额外的硬件;要在MCU中增加一个额外的隔离通道和一个采用独立时钟的移位寄存器。MCU从辅助接收寄存器而非标准SPI寄存器读取数据。

 

为了展示如何在不同的技术条件下实施这种数据传输方法,接下来,我们将考察三个示例,定量分析其最大速率并定性分析其功耗和所需的电路板空间。我们会看到,在标准隔离式SPI中,限制速率的是双向传播延迟,而在延迟时钟方案中,形成限制的则是隔离器中的时序偏斜和失真。

 

光耦合器方案

在典型的工业应用中,单通道数字光耦合器常用于隔离高速总线。隔离一个标准的4线式SPI总线,需要4个光耦合器。在估算常见工业CMOS光耦合器的最大SPI时钟速率时,至关重要的时序参数包括:

1. 最大数据速率:12.5 Mbps;或者,最小脉冲宽度:80 ns。
2. 最大传播延迟(tpISO):40 ns。
3. 最大脉冲宽度失真(PWD):8 ns。
4. 最大器件间传播延迟偏斜(tPSK):20 ns。该参数之所以重要是因为运用了多个光耦合器来形成隔离式SPI总线。

 

为了估算SPI吞吐速率,我们假设图3中的不同组件都有一定的典型延迟。各走线延迟设为0.25 ns,则总走线延迟(tTRACE)合计1 ns。类似地,从机延迟(tSLAVE)和主机建立延迟(tMASTER)分别设为3 ns和2 ns。

 

因此,根据我们针对图3中隔离式SPI时钟速率的讨论,对于利用上述光耦合器隔离的SPI总线,SPI半时钟周期为:

≥ [tTRACE+ tSLAVE+ tMASTER + 2 × tpISO] ns

也即86 ns。因此,SPI时钟速率为5.75 MHz或更低;显然,2 × tpISO显著减慢了SPI总线速度。

现在,考虑反向添加一个额外隔离器,将被隔离的时钟信号路由回主机,并按图4所示方式实现延迟时钟。这样,我们就可以产生与从机返回数据同步的时钟信号。隔离器的双向传播延迟[2 × tpISO]不再对时钟速率形成限制。

 

在系统中还有其他延迟的情况下,隔离式SPI半时钟周期可能大于或等于[tTRACE+tSLAVE+tMASTER] ns(即6 ns)并支持80 MHz的最大SPI时钟速率吗? 不幸的是,答案并非如此简单。

图5. 实际的DCLK时序图

 

在计算最小SPI时钟周期时(图5中显示为tSKEW),仍然必须考虑正向和反向通道的不对称性。器件间的传播延迟偏斜和脉冲宽度失真会将新的SPI半时钟周期限制为
≥ [tTRACE +tSLAVE + tMASTER + 2 × PWD+2 × tPSK] ns
(即62 ns)。这导致实际最大时钟速率为8 MHz。然而,受80 ns的最小脉冲宽度限制,该光耦合器只能支持6.25 MHz的最大SPI时钟。上例表明,即使光耦合器不受最小脉冲宽度限制,tSKEW也会严重限制最大SPI时钟速率,在理想延迟匹配条件下最高可达80 MHz,而在实际应用中只有6.25 MHz。

 

使用最小脉冲宽度更短、速率更快的光耦合器有用吗?使用最小脉冲宽度为20 ns的超高速光耦合器可以提高上述接口的速率。但是,即使是这些器件,也存在大偏斜和失真参数的问题。当tPSK为16 ns且PWD为2 ns时,最小SPI半时钟周期大于或等于42 ns,结果,最大时钟速率为11.75 MHz。在上述两种情况下,光耦合器的时序特性会随时间进一步下降,由此会在延迟时钟与从机数据之间引入更多失配问题。为这些变化增加时序裕量则要求进一步降低SPI时钟速率。

 

用一个额外的快速光耦合器进行SPI隔离,除了成本极高以外,还需要大量的电路板空间,因为这些器件通常为采用SO8封装的单通道器件,而且需要5个通道。隔离接口的功率预算可能高达每通道20 mA。


数字隔离器方案

在过去10年中,新一代数字隔离器问世。这些器件拥有更高的集成度、更快的速率、更低的传播延迟、低偏斜和更低的失真。这里,我们考虑选用一个四通道数字隔离器——借助3个正向通道和1个反向通道,可以实现对4线式SPI总线的紧凑隔离。与光耦合器的例子类似,我们从数据手册中获得以下时序参数:最小脉冲宽度为11.1 ns (90 Mbps),最大传播延迟(tpISO)为32 ns,最大脉冲宽度失真(PWD)为2 ns,器件间最大传播延迟偏斜(tPSK)为10 ns。但是,与单通道光耦合器不同,在四通道数字隔离器中,还需要考虑一对反向通道之间的通道间匹配情况。在上述器件中,该参数(tPSKOD)为5 ns。

 

若使用与图3中相同的典型延迟,采用数字隔离器时隔离式SPI总线的半时钟周期应为:
≥ [tTRACE + tSLAVE + tMASTER + 2 × tpISO] ns
(即70 ns),最大时钟为7 MHz。就如光耦合器方案一样,我们发现,SPI速率受到隔离器传播延迟的严重制约。但基于标准CMOS技术的数字隔离器在整个产品生命周期内都拥有非常稳定的时序特性。这样,我们在设置SPI时钟速率时就不必针对时序特性的变化而保留较大的裕量。

 

如果根据图4用一个额外的隔离器通道来实现延迟时钟,则至少需要增加一个高速通道。同样,SPI吞吐速率取决于时钟与数据通道之间的失配和失真情况。由于所有这些通道的时序都相似,因此,新的SPI半时钟周期应为:
≥ [tTRACE + tSLAVE + tMASTER + 2 × PWD + tPSK + tPSKOD] ns
(即25 ns),最大时钟速率为20 MHz。

 

在许多应用中,MCU只会从ADC中移出数据,而不会移进任何东西。在这种3线式SPI总线中,可以使用带有2个反向通道的单个四通道数字隔离器来实现SPI总线和延迟时钟。在这类情况下有另一项优势。SPI半时钟周期为:
≥ [tTRACE + tSLAVE + tMASTER + 2 × PWD + 2 × tPSKOD] ns
(即20 ns),结果甚至可使最大时钟速率提高至25 MHz。

 

尽管数字隔离器的速率和偏斜显著优于光耦合器,但通道间的时序偏斜和失真仍然会限制可能实现的最大SPI时钟速率。用于延迟时钟的额外隔离器仍会增加约20%-25%的功耗。因此,使用现有隔离器会消耗更多功耗、占用更多电路板空间,同时还无法实现该方案的最大优势。

 

优化数字隔离器延迟时钟方案

ADI公司开发了一款优化的数字隔离器,可在延迟时钟方案中达到最高性能。ADuM3150(图6)是SPIsolator™系列高速数字隔离器的成员之一,旨在优化SPI总线的隔离。ADuM3150可以在不使用额外隔离器通道的情况下,产生延迟时钟DCLK。产生DCLK的方式是,对标准SPI时钟进行延迟,延迟量等于通过隔离器的双向传播延迟量[2 ×tpISO]。图6显示了ADuM3150的内部框图。延迟单元在生产阶段经过周密调整,与通过器件的双向传播延迟相匹配,由此最大程度地减小延迟时钟与返回的从机数据之间的时序失配。延迟失配不但显著减小,而且在各种工作条件下都非常明确,由数据手册中的DCLKERR参数提供保证。

 

图6. ADuM3150 SPIsolator延迟时钟方案

 

DCLKERR衡量延迟时钟与从机数据不同步的程度,因此,DCLKERR的符号指示延迟时钟是领先于还是落后于从机数据。由于延迟时钟用于对从机数据进行采样并输入主机,因此不应领先于数据。DCLK落后于数据是可以接受的,只要不完全错过对数据位采样即可。ADuM3150数据手册规定,DCLKERR在–3 ns至8 ns之间,PWD为3 ns。考虑到最大领先DCLKERR和PWD,SPI时钟速率为:
≥ [tTRACE + tSLAVE + tMASTER + (min)|DCLKERR| + PWD] ns
(即12 ns),最大时钟速率为40 MHz。ADuM3150(最大数据速率为40 MHz)可以达到这种高SPI时钟速率要求,完全不存在使用额外隔离器通道时的尺寸、成本和功耗等问题。

 

SPI时钟

总结

为了使过采样成为提高传感器应用动态范围的有用工具,采样频率必须是目标频率的足够大倍数,以便提供显著的降噪性能。本文中讨论的延迟时钟方案为提高隔离式SPI接口的吞吐速率和加快采样速率提供了一种途径。这种方法可以提高现有隔离技术的最大SPI时钟速率。相比老式光耦合器,数字隔离技术优势明显,因为该技术可以严密控制通道间的偏斜和信号链中的其他失真。ADI进一步发展了该技术,对一款SPI专用隔离器(ADuM3150)进行了优化,实现了低偏斜的集成式延迟时钟功能,消除了老式技术和方法存在的开销和功耗问题。与快速ADC相配合,这种技术可以实现最高1 MSPS的采样速率,使隔离式SPI端口支持高达40 MHz的数据传输速率。ADuM3150是SPI专用数字隔离器系列的成员之一,其中高通道数ADuM3151/ADuM3152/ADuM3153可以改善集成度,而ADuM3154则具备额外功能,可以支持多个隔离从机。

結果