楼主

【转载】SPI总线在隔离系统中的处理方法

[复制链接]
前哨站哈哈哈
2015-3-16 18:35:47 只看该作者

马上注册,玩转Robomaster!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
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具有会使采集与传输重合的特殊传输模式时,该周期时间可能短一些。简单起见,下面的讨论将基于序列转换和采集。
无论数据传输方式如何,转换时间和最小周期时间均相同。但是,采集时间取决于数据接口的属性,多数情况下是SPI总线的工作模式。如果采集时间因SPI的时钟速率而延长,则ADC的采样速率可能严重受限。
SPI时钟速率限制
微处理器/FPGA (MCU)与ADC之间的SPI链路如图2所示。SPI总线由一对移位寄存器之间的连接构成,一个寄存器位于主机MCU中,另一个位于从机ADC中。MCU提供的时钟使传输同步。时钟的一个边沿将数据移出移位寄存器,互补边沿则把出现的数据逐个输入环形拓扑结构中各个移位寄存器的另一端。对于ADC,可能不必把数据从MCU移到ADC,因此,简单起见,我们略去了该通道,同时还略去了从机选择。ADC在工作过程中的转换阶段,填充其内部移位寄存器,然后在采集阶段移出该寄存器。、
在SPI处理中,主机产生的时钟信号经过一些走线延迟传输至从机,触发从机在一定的内部延迟之后移出数据。数据信号经过走线延迟再次回到主机,必须及时到达主机,以便在时钟的互补边沿发挥作用。在这方面,主机一般有一些额外的建立时间要求。该时序如图2所示;从图中可以看出,这些延迟决定着主机半时钟周期的最短时间。在非隔离式系统中,这些时间一般非常短,多数情况下小于10 nS,允许SPI时钟以50 MHz以上的速率运行。
如果在SPI数据路径上放置隔离栅(如图3所示),结果会增添与走线延迟相似的项。然而,根据隔离所用的具体技术,通过隔离的信号传播延迟(tpISO)可能超过0 nS。另外从图3可以看出,新的延迟时间会延长数据处理所需时间,同时还会大幅增加SPI时钟的半周期。隔离延迟成为系统中所有其他时间延迟的主体,最大时钟频率可能降至几MHz。
对时钟周期的主要限制是,数据必须及时出现在主机处,以便在下一个时钟边沿时使用。在非隔离式系统中,这并非一个严重的制约条件,由于支持较大的时序裕量,因此实际上反而有利于增进数据的鲁棒性。然而,数据路径的传播延迟一旦开始在半周期中占主导地位,结果就会导致总线的最大速率显著下降。
幸运的是,有一种办法可以解决这个限制。如果从机返回的数据有一个独立时钟与其同步,则可在MCU设置独立的接收移位寄存器,以便基于独立时钟接受数据。在这种情况下,SPI总线的吞吐速率不再受隔离栅传播延迟的限制,而是受隔离器吞吐速率的限制。
通过向隔离器中添加一个匹配的高速数据通道,并沿着一条匹配的数据路径,与来自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时钟速率吗? 不幸的是,答案并非如此简单。
在计算最小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。
优化数字隔离器延迟时钟方案
ADI公司开发了一款优化的数字隔离器,可在延迟时钟方案中达到最高性能。ADuM3150(图6)是SPIsolator™系列高速数字隔离器的成员之一,旨在优化SPI总线的隔离。ADuM3150可以在不使用额外隔离器通道的情况下,产生延迟时钟DCLK。产生DCLK的方式是,对标准SPI时钟进行延迟,延迟量等于通过隔离器的双向传播延迟量[2 ×tpISO]。图6显示了ADuM3150的内部框图。延迟单元在生产阶段经过周密调整,与通过器件的双向传播延迟相匹配,由此最大程度地减小延迟时钟与返回的从机数据之间的时序失配。延迟失配不但显著减小,而且在各种工作条件下都非常明确,由数据手册中的DCLKERR参数提供保证。
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时钟速率。相比老式光耦合器,数字隔离技术优势明显,因为该技术可以严密控制通道间的偏斜和信号链中的其他失真。ADI进一步发展了该技术,对一款SPI专用隔离器(ADuM3150)进行了优化,实现了低偏斜的集成式延迟时钟功能,消除了老式技术和方法存在的开销和功耗问题。与快速ADC相配合,这种技术可以实现最高1 MSPS的采样速率,使隔离式SPI端口支持高达40 MHz的数据传输速率。ADuM3150是SPI专用数字隔离器系列的成员之一,其中高通道数ADuM3151/ADuM3152/ADuM3153可以改善集成度,而ADuM3154则具备额外功能,可以支持多个隔离从机。

跳转到指定楼层
沙发

【转载】SPI总线在隔离系统中的处理方法

[复制链接]
步兵u0uuuu
2016-11-15 21:16:29 只看该作者
这个真不懂,,,,,,
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

触屏版 | 电脑版

Copyright © 2024 RoboMasters 版权所有 备案号 粤ICP备2022092332号

快速回复 返回顶部 返回列表