作者:Felix (Haro 协作整理)
过去谈硬件选型,我们习惯先看带宽、采样率、通道数、存储深度。
这些指标当然重要。
但如果目标不只是“人坐在仪器前看波形”,而是希望把设备真正接入自动化流程,甚至让 AI 参与分析、联动测试和归因,那么另一套标准也会迅速变得同样重要:设备是否容易被程序稳定控制,是否能够把原始数据低损耗、结构化地导出来。
换句话说,传统调试流程里,工程师看的是 GUI、截图和波形窗口;而 AI 真正擅长处理的是文本、结构化数据、可重复调用的接口。
问题往往不在于 AI 会不会分析,而在于很多仪器默认提供的是“人类友好界面”,不是“机器友好接口”。
这也是为什么我现在会把“协议与工具链能力”一起纳入硬件选型:在面向 AI 自动化的场景里,传统硬件参数依然重要,但设备是否容易被程序控制、是否能稳定导出结构化数据,同样会直接决定后续自动化能走多远。
不是 AI 不会看波形,而是数据进不了工作流
很多人提到“AI + 硬件调试”时,第一反应是:能不能把示波器截图扔给模型,让它判断哪里不对。
这当然可以做一些辅助判断,但它解决的不是核心问题。
真正影响自动化上限的,是下面这条链路能不能打通:
- 仪器能否被程序控制
- 原始数据能否稳定导出
- 数据能否转成脚本和模型都能处理的结构化格式
- 分析结果能否再反过来驱动下一轮测试
一旦这条链路打通,AI 的角色就不再只是“看图说话”,而会变成一个真正参与测试闭环的分析层。它不只会读结果,还能根据结果继续“编程”设备状态。
举个很直观的例子:
- 第一次测量时,脚本发现示波器当前垂直刻度不合适;
- 自动化框架发 SCPI 指令调整 Vertical Scale;
- 仪器重新采样;
- 新的原始数据进入后续分析流程。
这个过程中,AI 并不只是被动接收截图,而是在一个可编排的链路里参与判断。
真正值得讨论的问题,不是“AI 能不能帮忙看波形”,而是:你的设备接口和工具链,是否允许它进入自动化闭环。
面向 AI 自动化,我会先看三类接入能力
如果从“自动化友好度”来拆,常见硬件接入方式可以先看三类能力:
- 标准协议能力 —— 例如 LXI / SCPI
- 统一工具链能力 —— 例如 sigrok / libsigrok / CLI 解码链
- 厂商优化能力 —— 例如面向高吞吐量场景的专有实现
这里有一个很重要的前提:第一类和第二类不是上下级替代关系,而是经常并列存在、各自解决不同问题。
比如,一台示波器可以主要通过 SCPI 做控制和数据拉取;而一台逻辑分析仪则更适合通过 sigrok-cli 做抓取和协议解码。它们并不是谁比谁“更高一级”,而是面向不同设备形态和不同自动化链路的两种入口。
真正的工程问题,不是强行把所有设备塞进同一协议,而是:你手上的设备是否至少具备其中一种可持续接入自动化系统的能力。
第一类:标准协议能力 —— LXI / SCPI
这一类是最理想的自动化入口之一。
典型代表是支持 LXI / SCPI 的示波器、电源、万用表等设备。对自动化系统来说,它们提供的是一种基于文本命令的稳定控制接口。很多动作——测量、查询、设置、触发——都可以通过脚本直接编排。
它对 AI 和自动化框架友好的地方主要在于:
- 语义清晰:文本命令天然可读,也容易被程序生成。
- 控制与读取统一:既能读数据,也能改设备状态。
- 远程友好:如果设备挂在 LAN / LXI 网络上,自动化系统不必贴着设备运行。
这意味着 AI 不只是能“读取测量值”,还可以在自动化系统里参与设备状态调整。
例如:
- 先读取一次波形数据;
- 发现量程不合适;
- 自动发 SCPI 指令调整垂直刻度;
- 再次采样并继续分析。
这就是闭环能成立的关键:设备不只是“会说话”,而且“听得懂命令”。
第二类:统一工具链能力 —— sigrok / libsigrok
这类能力不是靠仪器自己提供标准协议,而是通过统一驱动层和 CLI 工具,把原本分散、私有、各不相同的设备拉进脚本世界。
很多逻辑分析仪、低成本采集设备,并没有像 SCPI 那样成熟的标准控制接口。但只要它能被 sigrok / libsigrok 稳定支持,并且通过 sigrok-cli 导出数据和解码结果,它依然可以很好地进入自动化流程。
对自动化来说,这一层的核心价值不是“支持的设备多”,而是:它把原本封闭的设备,抽象成了统一可调度的命令行工具链。
它特别适合:
- 逻辑信号抓取
- I2C / UART / SPI 等中低频协议分析
- 把解码结果导出成文本、CSV、JSON,再做进一步处理
这里也要强调一点:sigrok 这一层和 SCPI 那一层是可以并列共存的。
在同一个自动化系统里,很可能出现这样的组合:
- 示波器走 SCPI / PyVISA
- 逻辑分析仪走
sigrok-cli - 最后两路数据在上层统一汇总分析
所以它更像是“另一条可接入自动化系统的高速通道”,而不是 SCPI 的低配替代品。
当然,这一层也不是没有代价。
在高采样率、大数据量场景下,驱动层、USB 传输链路和解码过程本身都会增加系统复杂度。问题不只是“能不能抓到”,还包括“能不能稳定、可重复、低损耗地抓到”。
第三类:厂商优化能力 —— 以 DSView / DSLogic 为例
这一类不该简单理解为“私有协议所以不好”。
更准确的说法是:当标准抽象层在性能或吞吐量上不够用时,厂商往往会为了自己的设备做一套更贴近硬件能力的优化实现。这在工程上完全合理。
问题不在于它是不是私有,而在于:它是否仍然给自动化保留了入口。
如果某个工具虽然底层做了厂商专有优化,但依然提供 CLI 或脚本调用方式,例如 dsview-cli 这类入口,那么它仍然保留了接入自动化系统的价值。
所以真正需要权衡的不是“标准一定好、私有一定坏”,而是:
- 私有实现是否换来了你确实需要的吞吐量或稳定性;
- 它是否仍然允许你把控制和数据导出接进脚本链路。
从“波形”到“语义”,AI 真正需要什么数据
很多时候,工程师手上的原始信息其实已经足够判断问题,但这些信息停留在 GUI 或专有格式里,导致它没法进入自动化分析链路。
如果想让 AI 真正参与,就要先把数据转成它擅长消费的形式。
逻辑信号:从比特流到结构化文本
比如抓 I2C。
对人类来说,我们会在 GUI 里直接看 SDA / SCL 波形,再肉眼判断起始位、地址、应答位是不是正常。对 AI 来说,更合适的形式不是截图,而是已经解码好的结构化结果。
一个更实用的链路是:
- 用逻辑分析仪采样;
- 用协议解码器输出 JSON / CSV / 文本事件流;
- 再让 AI 分析哪里不符合预期。
这时候模型就不是在“看波形图片”,而是在读一串事件,例如:
- 起始条件是否正常
- 地址阶段是否有 ACK
- 数据阶段是否出现 NACK
- 哪一帧和预期寄存器访问序列不一致
模拟信号:从截图到采样数组
示波器也一样。
真正有价值的往往不是屏幕截图,而是设备内存里的原始采样点。只要仪器支持通过 SCPI 读取波形数据,就可以把它转成数组,再由脚本先做基础预处理,比如:
- 电压范围归一化
- 异常脉冲候选筛查
- 边沿、周期、占空比等简单统计
之后再把筛过的结果或关键片段交给 AI 解释。
这里有一个很重要的边界:AI 不应该直接替代示波器软件或协议解码器,它更适合做“跨设备、跨日志、跨上下文”的解释层。
检测类工作,通常应该优先让脚本和规则先做第一轮;AI 更适合解释“为什么是这个问题”“和历史现象是否相似”“下一步应该测什么”。
一个更现实的三层架构
如果把这些东西放进一个可落地的自动化框架里,我更倾向于把它拆成三层。
1. 设备接入层
这一层负责和硬件说话。
- 对 SCPI / LXI 仪器,用
PyVISA或直接 socket 交互 - 对 sigrok 生态,用
sigrok-cli - 对厂商 CLI,用
subprocess封装调用
目标不是优雅,而是把每类设备都变成“脚本可调用对象”。
2. 数据整理层
这一层负责把不同设备出来的数据,统一整理成适合后续分析的结构。
例如:
- 纯文本测量值
- 协议解码结果
- 原始采样数组
- 时间戳和上下文元数据
最后都可以收敛到统一对象,比如 Numpy 数组、Pandas DataFrame,或者结构化 JSON。
3. 智能分析层
这一层才是 AI 最适合介入的位置。
它不负责直接替代设备或驱动,而是基于整理好的数据来回答更复杂的问题,例如:
- 当前 SPI 时序为什么没有外设响应?
- 这次失败和前几轮测试相比,最大的差异在哪里?
- 结合电源波形和总线日志,最有可能的故障点是什么?
- 下一步应该先改哪一个测试条件?
真正有价值的地方,是它能把原本分散在多个设备、多个日志、多个回合中的信息串起来。
未来硬件选型,我会先看“新三表”
如果未来嵌入式开发真的越来越走向自动化和 AI 协同,那么评价一个设备好不好,标准也应该比过去多一层。
除了传统参数表,我会额外先看这三件事:
1. 是否支持标准协议控制
最好是像 LXI / SCPI 这种成熟、可远程、可脚本化的接口。
2. 是否有稳定的 CLI 或脚本入口
比如 sigrok-cli、dsview-cli 这类工具链。没有 CLI,就很难真正接进自动化系统。
3. 原始数据是否容易结构化导出
如果一个设备只能导出截图、专有工程文件,或者必须人工观察,那它天然就更难进入 AI 闭环。
这三点并不会替代传统参数指标,但在自动化场景里,它们往往更早决定你未来能把系统推进到什么程度。
总结
过去我们看硬件,习惯先问:测得准不准、带宽够不够、通道多不多。
而当目标变成“让设备进入自动化系统,并让 AI 参与闭环分析”时,问题会变成:
- 它能不能被程序稳定控制?
- 它能不能把数据低损耗地导出来?
- 它能不能把原始信号转成脚本和模型都能消费的结构化结果?
从这个角度看,协议能力不再只是一个附属功能,而是自动化上限的一部分。
所以如果今天让我重新看待硬件选型,我会把它从“参数表比较”变成“数据链路比较”。
不是哪台设备测得最漂亮,而是哪台设备最容易进入下一代自动化工作流。