4、核心参数之存储深度:存储深度定义、存储深度与采样时间的关系、深存储与浅存储的取舍、实际项目中的存储深度选择。

各位工程师朋友,咱们接着聊逻辑分析仪的核心参数。前面讲了采样率,今天这个参数——存储深度,其实跟采样率是“秤不离砣”的关系。你想想看,采样率再高,如果存储深度不够,就像用高速相机拍照,但胶卷只有一帧,那也白搭。

4.1 存储深度定义

存储深度,说白了就是逻辑分析仪一次能抓取并保存的采样点总数。单位通常是“样点”(Samples)或者“位”(bits)。

举个例子,一台逻辑分析仪标称“存储深度 10 Mpts”,意思就是它最多能存下 10,000,000 个采样点。每个采样点记录的是那一时刻各通道的电平状态(0 或 1)。

我个人习惯把存储深度理解为“逻辑分析仪的内存条”。内存越大,能记录的历史数据就越长。嗯,这里要注意,存储深度是所有通道共享的。比如你开了 8 个通道,存储深度 10 Mpts,那每个通道平均能分到的存储空间就是 10 Mpts / 8 = 1.25 Mpts。有些高端仪器会标注“每通道存储深度”,那才是实打实的。

4.2 存储深度与采样时间的关系

这个关系非常直接,用一个公式就能说清楚:

采样时间 = 存储深度 / 采样率

举个例子:

  • 存储深度 = 10 Mpts,采样率 = 100 MHz
  • 采样时间 = 10,000,000 / 100,000,000 = 0.1 秒

也就是说,你只能看到 100 毫秒内的信号变化。如果你想看更长时间,比如 1 秒,那要么降低采样率,要么增加存储深度。

我在项目中遇到过这样一个场景:调试一个 I2C 总线上的设备,设备每隔 500 毫秒才响应一次。我用 100 MHz 采样率去抓,存储深度只有 1 Mpts,结果只能抓到 10 毫秒的数据,根本看不到完整的通信过程。后来换了一台存储深度 100 Mpts 的仪器,才把整个交互过程抓下来。

核心公式:

采样时间 (秒) = 存储深度 (样点) / 采样率 (Hz)

这个公式你最好记在心里,选型时随时要用。

4.3 深存储与浅存储的取舍

是不是存储深度越大越好?理论上是的,但实际中要权衡。

深存储的优势

  • 能捕获更长时间的事件:适合分析低频周期性信号、总线协议交互、系统启动过程等。
  • 便于事后分析:数据量大,可以反复回放、放大查看细节。

深存储的代价

  • 处理速度变慢:数据量太大,分析仪的上位机软件可能会卡顿,甚至死机。我记得有一次用 500 Mpts 的深度抓数据,软件加载了快 5 分钟。
  • 触发设置更复杂:深存储下,触发条件设置不当,可能会抓到大量无用数据,反而增加了分析难度。
  • 成本更高:存储深度越大,硬件成本越高,仪器价格也越贵。

浅存储的适用场景

  • 快速调试:只想看某个特定事件,比如一个脉冲的边沿,浅存储就够了。
  • 高频信号分析:采样率很高时,浅存储也能覆盖足够的时间窗口。
  • 资源受限的嵌入式系统:有些逻辑分析仪是集成在开发板上的,存储深度有限,只能浅存储。

我的建议:

选型时,不要盲目追求“最大存储深度”。先想清楚你平时要分析什么信号,需要多长的时间窗口。比如你主要做 SPI、I2C 这类低速协议,10 Mpts 到 50 Mpts 通常够用。如果你做 DDR 内存调试或者高速串行总线,那可能需要 100 Mpts 以上。

4.4 实际项目中的存储深度选择

这里我结合几个实际项目,说说怎么选存储深度。

案例一:SPI Flash 读写调试

SPI 时钟频率一般是 10 MHz 到 50 MHz。假设我用 100 MHz 采样率(满足奈奎斯特定理),想抓取一次完整的 Flash 页写入操作(256 字节 + 命令 + 地址,大约 300 个时钟周期)。

  • 每个时钟周期需要 2 个采样点(上升沿和下降沿)
  • 总采样点数 ≈ 300 × 2 = 600 个
  • 加上触发前后的一些余量,1 Kpts 都绰绰有余

这种情况下,浅存储完全够用。

案例二:系统上电时序分析

一个嵌入式系统上电时,多个电源轨(3.3V、1.8V、1.2V)需要按顺序建立。这个过程通常持续 10 毫秒到 100 毫秒。我用 10 MHz 采样率(够用就行),想抓取完整的 100 毫秒上电过程。

  • 采样点数 = 10,000,000 × 0.1 = 1,000,000 = 1 Mpts
  • 考虑到还要看触发前的状态,建议 2 Mpts 到 5 Mpts

这种场景,中等存储深度(5 Mpts 到 10 Mpts)比较合适。

案例三:USB 2.0 高速信号调试

USB 2.0 高速模式的数据速率是 480 Mbps。要分析一个完整的 USB 数据包(比如 512 字节),需要很高的采样率(至少 1 GHz)。

  • 一个 512 字节的数据包,加上协议开销,大约 5000 位
  • 1 GHz 采样率下,每个位对应 2 个采样点
  • 总采样点数 ≈ 5000 × 2 = 10,000 个

看起来不多,但如果你要分析多个数据包之间的交互,或者 USB 的枚举过程(可能持续几秒),那存储深度就需要很大了。我曾经调试一个 USB 枚举失败的问题,用了 100 Mpts 的存储深度,才把整个枚举过程(大约 2 秒)完整抓下来。

避坑指南:

我曾经犯过一个错误:为了省钱,买了一台存储深度只有 1 Mpts 的逻辑分析仪。结果调试一个蓝牙协议栈时,发现根本抓不到完整的连接建立过程。后来只能再买一台更贵的。所以我的建议是:在预算允许的范围内,尽量选存储深度大一些的。你永远不知道下一个项目会遇到什么奇葩问题。

4.5 总结一下

存储深度这个参数,说白了就是“你能看多长时间的信号”。选型时,我一般会这样考虑:

  • 先估算时间窗口:你关心的信号事件持续多久?
  • 再确定采样率:信号最高频率是多少?需要多少倍过采样?
  • 最后算存储深度:采样时间 × 采样率 = 所需存储深度

嗯,这样算出来的结果,再留出 2 到 3 倍的余量,基本就靠谱了。

下一节,咱们聊聊另一个核心参数——触发功能。这个参数决定了你能不能“精准地”抓到想要的事件。敬请期待。