分享

同步关键的分布式系统时,怎样才能避免中断的数据流?

 汉无为 2021-12-15
本文介绍了基于SAR ADC的系统和基于sigma-delta(∑-∆)ADC的分布式数据采集系统同步的传统方法,且探讨了这两种架构之间的区别。我们还将讨论同步多个∑-∆ADC时遇到的典型不便。最后,提出一种基于AD7770采样速率转换器(SRC)的创新同步方法,该方法显示如何在不中断数据流的情况下,在基于∑-∆ADC的系统上实现同步。

身为一名电子工程师,我对一切事物的运作方式都非常着迷,比如对布谷鸟钟,我很好奇它的每个独立系统如何与其他系统和谐地保持同步。

我们生活的各方各面也是这样。我们生活在一个相互联系的世界,一切都是同步的——从银行服务器到智能手机的警报。区别就在于各种特定情况下要解决的问题的大小或复杂性、不同系统的同步与所需的精度(或者容差),或者要同步的系统的大小。

分布式系统



在独立设计中,使用的本地时钟或振荡器本身就会进行同步。但是,当独立设计需要集成到更广泛的系统(我们称之为分布式系统)中时,问题的角度会发生改变,独立系统也应该根据用例进行设计。

要计算一个系统中的电器的瞬时功耗,必须同时测量电流和电压。通过快速分析,您可以用三种不同的方法来解决问题:

  • 使用两个同步单通道ADC来测量电流和电压。

  • 使用一个多通道同步采样ADC,它的每个通道都可能有一个ADC,或者每个通道有一个采样保持电路。

  • 使用一个多路复用ADC,并且插入测量值,以补偿电压和电流测量之间的时间平移。

至此,您可能已经获得可以解决该问题的可靠解决方案,但是,如果我们扩展系统需求,从原来的单件电器辐射到整个应用,必须测量整个工厂中的每个交流电源插座的功率呢?现在,您原有的瞬时功耗设计必须分布应用于整个工厂,而且要保证其设计能够同时测量和计算每个交流电源插座功耗。

您现在面对的是一个分布式系统,它由一组相互独立但又紧密相关的子系统组成。每个子系统需要提供在同一时间点采样的数据,以便计算工厂的瞬时总功耗。

最后,如果我们继续扩展假设的应用示例,想象一下,如果要将您的原始设计集成到国家电网之中。现在,您检测的是数百万瓦功率,任何一个链路出现问题都会导致可怕后果,例如因为压力导致的线路损坏,反过来,这又可能导致停电,造成可怕后果,例如火灾,或者医院停电。

因此,所有系统都必须准确同步,也就是说,在整个电网中捕获的数据必须是在同一时刻捕获,无论各数据所处的地理情况如何,具体如图1所示。

图1. 电网同步。


在这些情况下,您可以将其视为一个关键的分布式系统,且必须从每个感知节点获得连续的、完全同步的数据流。

与电网示例类似,这些要求也适用于航空航天或工业市场中的许多其他关键分布式系统示例。

奈奎斯特ADC和过采样ADC



在开始解释如何同步多个ADC的采样时刻之前,最好先了解每个ADC拓扑如何决定何时采样模拟输入信号,以及每种架构的优缺点。

  • 奈奎斯特或SAR ADC:该转换器的最大输入频率由奈奎斯特或半采样频率决定。

  • 过采样或∑-∆ ADC:最大输入频率一般与最大采样频率成比例,一般约为0.3。

一方面,SAR ADC的输入信号采样时刻通过施加于转换开始引脚的外部脉冲进行控制。如图2所示,将一个通用转换开始信号应用到被同步系统中每个SAR ADC上,它们都会在转换起始信号的边缘同时触发采样。只要确保信号之间没有明显的延迟,即转换开始脉冲在同一时刻及时到达每个SAR ADC,系统同步就很容易实现。注意,到达转换开始引脚的脉冲与实际采样时刻之间的传播延迟不能因设备而不同,在采样速度相对较慢的精密 ADC中,这种延迟不显著。

在应用转换开始脉冲之后的某个时间(也称为转换时间),转换结果将通过所有ADC的数字接口显示。

图2. 同步基于SAR ADC的分布式系统。

另一方面,由于架构不同,∑-∆ADC操作也略有不同。在这种类型的转换器中,内部核心(即调制器)对输入信号采样的频率(调制器频率, fMOD))比奈奎斯特规定的最小频率高,因此它被称为过采样ADC。

通过按比严格需要的频率更高的频率采样,能够收集更多的样本。然后采用平均滤波器对所有ADC数据进行后处理,原因有二:

  • 每4个平均样本,噪声降低1位。

  • 平均滤波器转换函数是一个低通滤波器。当∑-∆架构将其量化噪声推向高频时,应该移除平均滤波器转换函数,如图3所示。所以,本次滤波由这个平均滤波器完成。

图3. ∑-∆噪声整形。

样本的平均数量,即抽取率(N),会决定输出数据速率(ODR),输出数据速率是ADC提供转换结果的速率,单位为样本/秒,如公式1所示。抽取率通常是整数,带有一组可在数字滤波器上离散编程的预定义值(即N = 32、64、128等)。因此,通过保持 fMOD常量,ODR将根据预定义值集内的N值进行配置。

平均过程通常由一个sinc滤波器在内部实现,调制器的模拟转换开始脉冲也在内部生成,因此不会从外部管控转换过程触发。这种类型的转换器实际会连续采样,跟踪输入信号,并处理获得的数据。一旦该过程(采样和平均)完成,转换器就会生成一个数据就绪信号,告知控制器数据可以通过数字接口回读。如图4所示,∑-∆的工作流程可以概括为四个主要步骤:

  • 调制器以 fMOD 频率对信号采样。

  • 通过sinc数字滤波器对样本进行平均。

  • 对sinc滤波器提供的数据进行偏移和增益校正。

  • 数据就绪引脚切换,表示转换结果已就绪,可由控制器回读。

图4. ∑-∆ ADC工作流程图。

由于没有从外部控制何时触发内部采样,所以如果要对分布式系统中的多个∑-∆ ADC进行同步,必须同时对所有数字滤波器实施复位,这是因为平均转换启动是由数字滤波器控制的。

图5显示在所有∑-∆ADC都采用相同的ODR和fMOD的情况下,对同步产生的影响。

图5. ∑-∆系统复位同步

与基于SAR ADC的系统一样,必须确保复位滤波脉冲同时到达各个子系统。

但是,请注意,数字滤波器每次复位时,数据流都会被中断,这是因为滤波器必须重新设置。在本例中,数据中断的持续时间由数字滤波器的顺序、 fMOD和抽取率决定。在图6显示的示例中,滤波器的LPF特性将延迟时间,直到生成有效的输出。

图6. 由于数字滤波器的建立时间导致的数据中断。

对分布式系统同步采样的启示



在分布式系统中,全局同步信号(我们称之为Global_SYNC)在所有模块/子系统之间共享。此同步信号可以由主系统或第三方系统(例如GPS 1 pps)生成,如图1所示。

接收到Global_SYNC信号后,每个模块必须重新同步每个转换器的瞬时采样(很可能是其本地时钟),以确保同时性。在基于SAR ADC的分布式系统中,重新同步本质上很简单,如前一节所述:本地时钟(管理转换开始信号)再次与Global_SYNC信号匹配,之后同步获得信号。

这意味着要生成频率杂散,因为在同步期间,会在不同时间和距离采集一个样本,具体如图7高亮蓝色部分所示。在分布式应用中,这些杂散可能是可以接受的,而中断数据流在某些应用中则确实至关重要,例如前面提到的电力线监视之类的应用。

图7. 调整SAR ADC转换过程,使之与全局同步信号匹配。

在基于∑-∆的分布式系统中,重新与Global_SYNC信号同步的过程会稍微复杂一些,这是因为调制器会持续对模拟输入信号采样,而转换过程也不像SAR ADC一样从外部控制。

要对多个基于∑-∆的分布式系统实施同步,一个简单的方法就是重置数字滤波器:丢弃收集和存储的要在平均滤波器上使用的所有调制器示例,并且清空数字滤波器。这意味着:根据数字滤波器的顺序,它需要一些时间才能再次确定其输出,如图5和图6所示。

数字滤波器完成设置之后,会再次提供有效的转换数据,但考虑到设置所花费的时间,在∑-∆ADC上重置数字滤波器可能导致的数据中断是不可接受的。分布式系统需要重新同步的频率越高,数据流中断的次数就越多,而因为这种持续的数据流中断,∑-∆ADC将无法应用于关键的分布式系统中。

传统使用的最小化数据中断的方法是使用可调谐时钟,例如PLL,它可以降低全局同步频率和 fMOD 频率之间的误差。接收到Global_SYNC脉冲后,可以采用类似以下的流程,计算∑-∆ ADC转换开始和Global_SYNC脉冲之间的不确定性:

  • 控制器计算采样时刻(通过了解群延迟从数据就绪信号向后计算,如图8所示)和Global_SYNC脉冲之间的时间差。群延迟是一份数据手册规范,说明从对输入采样到数据就绪引脚开启(表示样本已经就绪,可以读取)之间的时间间隔。

图8. 被采样的模拟输入和数据就绪切换之间的时间延迟。

  • 如果采样时刻和Global_SYNC之间存在时间差,那么本地控制 器会量化这个时间差(tahead 或 tdelayed),如图9所示。

图9. 量化每个ADC的采样时刻(假设群延迟已知)和全局同步信号之间的时间差。

  • 如果存在差异,可以重新设置∑-∆滤波器,或者修改 fMOD 便在几个采样期间调整∑-∆采样。无论哪种情况,都可能漏掉几个样本。注意,通过改变局部时钟频率 (fMOD), ∑-∆ ADC会改变其输出数据速率(ODR = fMOD/N), 如此,ADC会减慢或加快对模拟输入采样的速度,以期和系统中余下的ADC和Global_SYNC同步。

  • 如果 fMOD 被更新,那么在同步之后,主时钟频率会恢复到原来的频率,以返回到之前的ODR,而子系统则从该时刻开始同步。

在一段时间内改变 fMOD 的过程如图10所示。

图10.同步方法,采用PLL来调谐调制器的频率。

这种方法在某些情况下可能不适用,因为有几个细节需要考虑:

  • 将调制器频率更改为非整数倍值可能是不实际的。

  • 如果可以对频率进行微调,那么改变的频率步长必须很小,否则数字滤波器可能会超出限制,导致同步的实施时间变长。

  • 如果所需的ODR改变足够大,可以通过改变抽取率(N),而不是改变调制器频率 (fMOD )来解决,但是,这也意味着会丢失一些样本。

  • 使用PLL意味着在达到期望的调制器频率之前,除了自身的建立时间之外,还会额外消耗功率。

一般来说,整个系统的复杂性和成本会随着系统规模的增大而增加,特别是与SAR ADC相比,对于后者,只需要将转换开始调整到与Global_SYNC信号匹配,即可轻松解决这个问题。此外,在许多情况下,因为存在上述系统限制,所以∑-∆ ADC无法使用。

不中断数据,轻松重新同步∑-∆ADC



AD7770系列产品(包括AD7770、 AD7771和AD7779)具有内置SRC。随着这种新架构推出,固定的抽取率(N)导致的限制将不复存在。

SRC允许您采用十进制数(而不仅仅是整数)作为抽取率(N),因此,您可以采用所需的任何输出数据速率。在之前的同步方法中,由于N是固定的,所以必须更改外部时钟来调节 fMOD 后才能实施同步。

使用AD7770系列产品之后,N会变成可灵活编程,以及可随时编程的值,所以无需更改fMOD也无需中断数据,即可对ODR编程。这种对基于∑-∆的子系统重新同步的新方法利用SRC来简化重新同步过程,最大程度地简化了前面章节提到的复杂性。

新方法如下:

  • 接收到Global_SYNC信号之后,各子系统检查采样是否同步,以数据就绪信号为参考,利用群延迟查找实际采样时刻。

  • 如果采样时刻和接收到Global_SYNC信号的时间之间存在时间差,那么本地控制器会量化这个时间差 (tahead 或 tdelayed) 如图9所示。

  • 这时,会对一个新的ODR编程,使其通过SRC更改抽取率(N),从而临时生成更快或更慢的ODR。整个重新同步操作一般会用到4个样本(如果在AD7771上启用了sinc5滤波器,则需要6个),但是因为这些样本仍然有效且完全设置,所以不会导致数据流中断。

  • 一旦接收到所需数量的DRDY,就会重新设置抽取因数,以返回所需的ODR,如此可以保证∑-∆ ADC与其余子系统保持同步,如图11所示,其不造成数据中断。

图11.采样速率转换器动态调整ODR,以便在所有设备上重新同步采样。


结论

关键分布式系统需要所有子系统同步进行转换,且具备持续的数据流。SAR转换器提供一种直观的重新同步采样方法:通过重新调整转换开始信号,使其与Global_SYNC脉冲匹配。

在需要高动态范围(DR)或信噪比(SNR)的应用中,SAR不可使用,但是传统∑-∆转换器也变得难以使用,因为这些转换器不具备灵活性,无法在不中断数据流的情况下重新调节。

如示例所示,SRC提供了一个无缝同步例程,与其他解决方案相比,它的延迟更小、成本和复杂性更低。

SRC可以在许多应用中一展所长。与电力线监控示例一样,任何线路频率变化都可以通过立即动态改变抽取率来补偿。如此,保证电力线的采样频率始终一致。按照本文所示,在关键分布式系统中,SRC也可用于高效重新同步系统,不会造成数据流中断,也不需要采用额外的元器件,例如PLL。AD7770解决了对基于∑-∆ ADC的分布式系统进行同步的传统问题,不会丢失样本,也不会像基于PLL的方法一样,额外增加成本和复杂性。

如果世界拥有无限电力会怎么样?
你留“❤”,我送礼
▽▽▽
小编将从视频的点赞粉丝中随机抽取5位幸运儿送出ADI幸运小奖品

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多