如果你在使用示波器时,因采集到的无效波形过多,导致有效波形失真,又或者你在捕获异常时,想获得每次异常现象,那么这里提到的分段存储功能,可能就是你想要的答案。
波形失真案例分析
我们采集一段波形CAN总线信号,用ZDS5054 Pro示波器对该信号进行采集并显示。第一次实验我们将示波器存储深度设置为1.4Mpts,采样时间设置为280us,采集完成一帧波形并按下暂停后,将波形调整至合适位置,波形和解码结果如图1所示,此时屏幕时基为10us/div。第二次实验我们将示波器存储深度同样设置为1.4Mpts,但采样时间设置为700ms,采集完成并按下暂停后将波形调整为第一次实验设置的参数即10us/div,获得的一帧CAN总线波形和解码结果如图2所示。
图1 存储深度1.4Mpts、采样时间280us波形结果的部分
图2 存储深度1.4Mpts、采样时间700ms波形结果的部分
很明显,在不同的时间采样下,图2的波形存在很大程度的失真,导致系统解码解析不出来。这里导致失真的主要原因和存储深度及采样率有一定的关系。对于采样率 Fs、存储深度 N,及捕获时间 T(本实验中设置的采样时间T)三者必然满足如下关系式:N = Fs *T。
当我们存储深度固定时,增加捕获时间T,必然导致采样率的降低,根据奈奎斯特采样定理,若 Fs 低于被测信号频率的 2 倍,将存在混叠现象,此时显示的波形具有迷惑性,是不可靠的。图1采样率为4Gsa/s,而图2因为T的增大而导致采样率仅剩2MSa/s,因此出现上述的图2波形失真的问题。实际上,一般采样率要在信号频率的 4~5 倍左右波形才是有保证的。
对比图1和图2,可能还会有小伙伴疑惑为什么设置同样的存储深度1.4Mpts,图1仅达到 1.12Mpts,而图2却能达到1.40Mpts,这仅仅是因为上述的关系式N = Fs *T导致的,T为固定的值几个数值变化,必然需要相应固定的存储深度和4GSa/s相乘,为策略性问题。
采用分段存储方式解决失真问题
我们将上述的图2水平时基档位变大,即1ms/div,如图3所示,可以看到我们采集到的CAN总线信号有很大一部分时间采集的其实都是无用信息,这是因为应用程序对CAN总线的控制通信是有时间间隔的。
图3 存在通信时间间隔的CAN信号
如果我们此时只想获得通信的数据内容,而无需帧与帧之间的等待时间,那么此间隔对采集数据来说并无意义,这时候我们是不是就可以考虑让示波器只记录有用信息的那一段,无用信息的那段就不记录,这样不就可以节省大量的存储深度,从而缓解甚至解决之前出现的那种失真问题了吗?所以,此处便是我们讲解的重点功能——分段存储。如图4通过设定CAN的起始位为触发条件,从而利用分段存储功能获得511帧CAN信号波形,并且每一帧波形都不存在失真。
图4 分段存储CAN信号
分段存储的原理
由上述例子,相信我们对分段存储有了一定的概念理解。所谓分段存储,既通过设置触发的方式,对每次触发采样得到的数据存放到各段的存储空间中,从而可以更高效地利用示波器的存储深度且保证波形细节,并且也能够在足够的采样率下捕获多个波形事件,以便进行有效的分析。
存储原理如下图 5所示,总的存储深度分为 n 段,第 1 段用于显示,第 2 段开始存储,也就是当发生第一次触发时采集的数据存储到第2段存储空间中(此处不同示波器的策略可能存在差异,但触发后再存储的本质没变化),当第2段存储空间存储满之后, 结束第一次触发,等待第二次触发的到来,触发后把数据存储到第 3 段存储空间中,以此类推。
图5 分段采集原理