深存储与分段存储:存储深度对波形细节的影响

做测试这么多年,我见过太多工程师拿着示波器,看到屏幕上有个波形就以为万事大吉了。其实你看到的,只是示波器想让你看到的。存储深度这个东西,说白了就是示波器的“记忆力”——它决定了你能看到多少真实的信号细节。

存储深度到底是什么?

存储深度(Memory Depth),单位是样点(pts)。它表示示波器一次触发能采集并保存的样点总数。公式很简单:

存储深度 = 采样率 × 采集时间窗口

举个例子。你设了1ns/div的水平时基,屏幕显示10格,总时间窗口就是10ns。如果示波器存储深度只有1kpts,那采样率就是:

采样率 = 1kpts / 10ns = 100MSa/s

100MSa/s够用吗?测个10MHz的方波还行,但你要看信号边沿的毛刺?嗯,基本没戏。

我有个项目,调试一块高速ADC的时钟抖动。一开始用一台存储深度只有1Mpts的示波器,怎么都抓不到那个周期性的抖动。后来换了台深存储的,设到100Mpts,波形一展开——好家伙,时钟边沿上的抖动清清楚楚。这就是存储深度的威力。

核心结论:存储深度越大,你就能在保持高采样率的前提下,捕获更长时间窗口的信号。说白了,就是“看得更久,还看得更清”。

存储深度对波形细节的影响

存储深度直接影响两个关键指标:采样率和时间窗口。它们之间的关系,我整理了一张表:

存储深度 时基设置 时间窗口 实际采样率 能看到的细节
1 kpts 1 μs/div 10 μs 100 MSa/s 10 MHz以下信号
1 Mpts 1 μs/div 10 μs 100 GSa/s GHz级信号
100 Mpts 1 ms/div 10 ms 10 GSa/s 低频包络+高频细节

看到没?同样1μs/div,1kpts只能给你100MSa/s,而1Mpts能给你100GSa/s。差了三个数量级。你想想看,一个100MHz的信号,100MSa/s连奈奎斯特都满足不了,更别提看边沿了。

我遇到过最典型的坑:有人用深存储示波器,但没注意时基设置。他把时基拉到100ms/div,存储深度自动被压缩到最低。结果抓了一堆数据,展开一看全是锯齿——采样率不够,信号全失真了。所以记住:深存储不是万能的,你得学会怎么用。

分段存储(Sequence/Segmented)模式原理

分段存储,也叫Sequence模式或Segmented模式。这玩意儿是干嘛的?

常规模式下,示波器一次触发,采集一段波形,然后处理、显示、等待下一次触发。这段时间叫“死区时间”。死区时间内,示波器对信号是“失明”的。如果信号是稀疏的突发脉冲,比如激光脉冲、串行数据包,常规模式会浪费大量时间在死区上。

分段存储的思路很简单:把存储深度分成N个小段,每段独立触发、独立采集。触发一次,填满一小段,然后立刻准备下一次触发。等所有段都填满了,再统一处理显示。

我画了个流程图,帮你理解:

分段存储(Sequence)模式工作流程 常规模式:触发→采集→处理→显示 死区时间(信号丢失) 触发→采集→处理→显示 死区时间(信号丢失) 分段模式:段1触发→采集 段2触发→采集 段3触发→采集 段N触发→采集→统一处理 关键差异 常规模式:一次触发→一次处理→死区→下一次触发 分段模式:N次触发→N次采集→统一处理(死区大幅减少)

分段存储的好处很明显:

  • 死区时间大幅降低:段与段之间只做简单的存储操作,不处理、不显示,所以能快速进入下一次触发
  • 捕获概率提升:对于偶发信号,分段模式能抓到更多事件
  • 存储效率高:只保存有效信号段,不保存空白时间

我记得有一次调试一个UART总线,数据包间隔几十毫秒,但每个包只有几十微秒。常规模式下,示波器大部分时间都在死区里发呆。换成分段存储,设了1000段,每段捕获一个完整的数据包。一次采集下来,1000个包全抓到了。展开看每个包的边沿,细节清清楚楚。

使用技巧:分段存储适合信号稀疏、突发性强、事件间隔远大于事件本身的场景。比如:激光雷达脉冲、串行总线数据包、RF突发信号、开关电源的开关事件。

死区时间最小化技巧

死区时间(Dead Time)是示波器最大的敌人。它指的是两次采集之间,示波器处理数据、更新显示、等待下一次触发的时间。死区时间内,任何信号变化你都看不到。

死区时间的计算公式:

死区时间 = 采集周期 - 有效采集时间
死区百分比 = (死区时间 / 采集周期) × 100%

常规示波器的死区百分比通常在99%以上。你没看错——99%的时间,示波器是“瞎”的。你看到的波形,只是1%时间窗口内的信号。

怎么最小化死区时间?我总结了几个实战技巧:

  1. 使用分段存储模式:这是最直接的方法。分段模式下,死区时间可以从99%降到10%甚至更低。
  2. 关闭不必要的测量和运算:示波器在处理测量参数、FFT、数学运算时,会占用大量处理时间。只开你需要的功能。
  3. 降低波形更新率:有些示波器可以设置“采集模式”,比如“高分辨率模式”或“峰值检测模式”。这些模式会牺牲一些更新率,但能减少死区。
  4. 使用硬件触发:硬件触发的响应速度远快于软件触发。能用硬件触发就别用软件。
  5. 合理设置触发释抑:触发释抑(Holdoff)设得太长,会人为增加死区。设得太短,又可能误触发。需要根据信号特性调整。

注意:死区时间最小化不是一味追求低死区。有时候,适当的死区反而能帮你过滤掉不想要的触发事件。比如测一个稳定的时钟信号,死区大一点无所谓。但测偶发毛刺,死区越小越好。

我曾经踩过一个坑:测一个电源的纹波,用常规模式怎么都抓不到那个周期性的尖峰。后来一算,死区时间占了99.5%,尖峰正好落在死区里。换成分段存储,设了500段,一次就抓到了47个尖峰。展开一看,每个尖峰的幅度、宽度、间隔都清清楚楚。

所以我的建议是:先搞清楚你的信号特性,再选模式。信号密集连续?用常规模式。信号稀疏突发?用分段存储。别一上来就无脑开深存储,那反而可能拖慢示波器。

嗯,存储深度和分段存储这块,说白了就是“怎么让示波器看得更多、看得更准”。你掌握了这些技巧,很多以前抓不到的信号,现在都能轻松捕获了。