对分布式系统同步采样的启示
在分布式系统中,全局同步信号(我们称之为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脉冲之间的不确定性:
u 控制器计算采样时刻(通过了解群延迟从数据就绪信号向后计算,如图8所示)和Global_SYNC脉冲之间的时间差。群延迟是一份数据手册规范,说明从对输入采样到数据就绪引脚开启(表示样本已经就绪,可以读取)之间的时间间隔。
![]()
图8.被采样的模拟输入和数据就绪切换之间的时间延迟。
u 如果采样时刻和Global_SYNC之间存在时间差,那么本地控制器会量化这个时间差(tahead或tdelayed),如图9所示。
![]()
图9.量化每个ADC的采样时刻(假设群延迟已知)和全局同步信号之间的时间差。
u 如果存在差异,可以重新设置∑-∆滤波器,或者修改fMOD,以便在几个采样期间调整∑-∆采样。无论哪种情况,都可能漏掉几个样本。注意,通过改变局部时钟频率(fMOD),Σ-Δ ADC会改变其输出数据速率(ODR = fMOD/N),如此,ADC会减慢或加快对模拟输入采样的速度,以期和系统中余下的ADC和Global_SYNC同步。
u 如果fMOD被更新,那么在同步之后,主时钟频率会恢复到原来的频率,以返回到之前的ODR,而子系统则从该时刻开始同步。
在一段时间内改变fMOD的过程如图10所示。
![]()
图10.同步方法,采用PLL来调谐调制器的频率。
这种方法在某些情况下可能不适用,因为有几个细节需要考虑:
u 将调制器频率更改为非整数倍值可能是不实际的。
u 如果可以对频率进行微调,那么改变的频率步长必须很小,否则数字滤波器可能会超出限制,导致同步的实施时间变长。
u 如果所需的ODR改变足够大,可以通过改变抽取率(N),而不是改变调制器频率(fMOD)来解决,但是,这也意味着会丢失一些样本。
u 使用PLL意味着在达到期望的调制器频率之前,除了自身的建立时间之外,还会额外消耗功率。
一般来说,整个系统的复杂性和成本会随着系统规模的增大而增加,特别是与SAR ADC相比,对于后者,只需要将转换开始调整到与Global_SYNC信号匹配,即可轻松解决这个问题。此外,在许多情况下,因为存在上述系统限制,所以Σ-Δ ADC无法使用。