当前位置:首页 > 二手市场 > 正文内容

实时数据采集与闭环控制平台开源项目介绍

云智网2026-10-22二手市场5056

实验室里那台商用 DAQ,问题从来不是它不好用,而是每加一个通道、每换一种量程,都得重新谈一遍授权。有人干脆把整件事开源了——硬件图纸、设备固件、上位机软件,全在仓库里。—— 华秋开源硬件社区

Deimos DAQ 是一套软硬件全栈开源的实时测控生态:以以太网 DAQ 硬件为载体,支持多通道传感器信号采集、实时运算与闭环输出。硬件图纸、设备固件、上位控制软件全部开放,可按需修改、二次开发,采用 Apache 2.0 / MIT 双宽松开源协议,允许商用场景使用。

它面向的是科研实验室自动化、热工实验、材料测试、小型工业实时闭环控制这几类场景。这些场景有个共同点:通道数会变、量程会变、算法会改——而商用 DAQ 恰恰在这三件事上最不灵活。

87b183f6-c507-11f1-90a1-92fbcf53809c.png

本期看点

①控制周期 5 Hz~5 kHz,24V 直流供电,UDP/IPv4 承担实时 IO 交互

②18 路模拟量 + 6 路数字量输入,硬件级多通道同步采样、同一时刻上报

③固件原生带 PID、巴特沃斯滤波、热电偶与铂电阻换算、曲线拟合标定

00为什么要自己攒一块

在实验室里,DAQ 是那种“不是核心,但缺了就干不了活”的设备。它的封闭也是结构性的:通道固定、量程固定、通信协议不公开,采集软件和算法同样不让你动。你要加两路应变片,解决方案通常不是改设备,而是再买一台。

这个项目的设计目标第一条写得很直接:通道完全独立,保证多通道同步采集。后面几条分别是:控制环路具备状态恢复能力、具备网络丢包容错特性;支持在线实时标定,软件运行无需管理员权限;基于标准以太网硬件实现微秒级时间同步;软硬件统一语义化版本管理,清晰区分兼容与破坏性变更;硬件、固件、软件全部开源。

所以它真正想解决的不是“贵”,是这三层封闭。它不是在做一个更便宜的采集卡,是在做一套你能改的测控系统。

01硬件平台:以太网做骨架,24V 单电源HARDWARE

硬件平台是 Deimos DAQ 7.0.x。以以太网为通信载体,24V 直流供电,依靠 UDP/IPv4 实现稳定的实时 IO 交互,原文给出的控制周期范围是 5 Hz~5 kHz。

①输入通道——18 路模拟量 + 6 路数字量,支持 4-20mA 电流、3 线 RTD / 应变片、K 型热电偶、宽范围电压信号,以及编码器与脉冲计数;

②输出通道——4 路 PWM、2 路 DAC 模拟输出、4 路通用双向 GPIO;

③同步机制——硬件实现多通道同步采样,所有通道数据在同一时刻上报,保障动态实验数据的一致性。

第三条是这份规格里最容易被忽略、但在动态实验里最要命的一条:如果 18 路通道各自在不同时刻采样,后面算出来的相位关系就是假的——机器没问题,结论错了。

02关键数字

模拟量输入18 路数字量输入6 路PWM / DAC 输出4 / 2 路控制周期5 Hz ~ 5 kHz

把 5 Hz 到 5 kHz 这个范围读一遍:5 Hz 意味着 200ms 一个控制周期,适合热工、材料这类慢过程;5 kHz 意味着 200μs 一个周期,已经能覆盖相当一部分小型设备的闭环控制需求。同一套硬件覆盖两个数量级,靠的不是性能压榨——这一点原文在 Anti-Goals 里也专门声明了——而是架构上把实时性交给了以太网 + UDP。

03为什么主推 UDP,而不是 TCP

控制器与 DAQ 外设之间采用通用 Socket 消息模型。原文把 UDP/IPv4 列为主推方案,理由写得很清楚:规避 TCP 队列阻塞问题,抵御网络抖动。

真正关键的是它的容错设计:每个周期完整下发全部 IO 状态。这意味着少量数据包丢失不会造成外设状态永久错乱——下一个周期会把完整状态再送一遍,系统自己就收敛回来了。这是工控通信里典型的“周期全量”思路,而不是“增量 + 重传”的思路。

①UDP/IPv4(主推)——规避 TCP 队列阻塞,抵御网络抖动,每个周期完整下发全部 IO 状态;

②Unix Socket——提供进程间通信接口,用于软件仿真与虚拟 DAQ 设备开发;

③后续规划——TCP、IPv6、线程消息通道等更多通信实现。

第二条对做算法的人价值很大:虚拟 DAQ 意味着你没有板子也能先把上位机和控制逻辑跑起来,等硬件回来直接对接。这个顺序,比先焊板子再写代码高效得多。

04固件里已经装好的算法,和数据的四种落法

控制内核原生集成了一批测控领域常用运算函数,可直接在控制周期内调用,不需要自己从零写:

①状态机(SequenceMachine)——实现复杂时序逻辑与自定义调度策略;

②温度换算——K 型热电偶冷端补偿、Pt100 铂电阻温度转换;

③控制算法——带抗积分饱和功能的 PID 控制器;

④信号处理——二阶巴特沃斯低通滤波器;

⑤标定工具——多项式运算,附带 Levenberg-Marquardt 曲线拟合,支持传感器标定。

“抗积分饱和”这个限定词值得单独说一句:它是 PID 从教科书走进真实执行机构时第一个要补的洞,能在固件里直接带这个版本,说明作者是拿它跑过东西的。

数据这一侧,读写运行在独立线程,不会阻塞核心实时控制回路,支持四种落地方式:

①CSV 本地文件——定长数据格式,支持文件自动分段;

②DataFrame 内存缓存——用于短时高速数据缓存;

③TimescaleDB 时序数据库——适配长期实验数据归档,支持批量写入优化;

④实时内存值缓存——对外提供接口,随时读取最新采集数据。

这四条其实对应四个时间尺度:控制周期内的即时读数、一次实验的临时文件、一个课题组的长期归档。该给的出口都给了,谁该用哪条是用户自己的事。

05最有意思的一节:它写了不做什么

原文里专门有一节叫 Anti-Goals——明确不实现的功能。这一节在开源硬件项目里并不常见。

×不做云平台接入——数据留在你自己的机器上;

×不做 IoT 物联网功能——不为了“能联网”而增加攻击面与依赖;

×不做远程 OTA 固件升级——避免设备状态在你不掌控的时机被改变;

×不片面追求极致性能压榨——优先保证系统稳定、可维护。

云平台、IoT、OTA 是很多硬件项目的加分项,但对一套要接在实验台上、控制周期做到 200μs 的测控系统来说,它们带来的是依赖、不确定性和额外维护成本。把不做什么提前写清楚,等于把边界写进了设计里。

与之配套的是版本管理规范:软硬件统一采用语义化版本。主版本号用于存在破坏性变更的情况(通道定义、数据包格式修改等);次版本号用于向后兼容的功能升级(量程扩展、算法优化);补丁号用于兼容式故障修复与非关键元器件替换。

对使用者来说,这条规则的真实含义是:看到次版本号升级,你的上位机代码可以不用动。这比事后加一堆兼容层有用得多。

06谁适合用它,以及从哪开始读

原文列出的适用场景:

①高校实验室科研测试;

②热流体 / 材料自动化实验;

③传感器标定系统;

④小型设备实时闭环控制;

⑤教学测控平台。

技术栈方面,上位控制主体基于 Rust 开发,同时提供 Python 开发接口。仓库包含硬件 PCB 工程、嵌入式固件、上位机控制程序、自动化 CI 脚本与配套文档——从打板到跑起来这条链上的每一段都在里面。

如果打算认真看一眼这个项目,建议按这个顺序读:

①先看通信协议与数据包定义——它决定了你的上位机该怎么写;

②再看固件侧的算法库——判断你要用的运算是否已经内置;

③最后才看硬件——PCB 工程与器件选型,确认通道类型和量程能不能对上你的传感器。

硬件设计文件目前公开的是 KiCad 工程 analog_i_rev4.zip(7.25MB)。

07许可边界与项目地址

项目采用 Apache 2.0 / MIT 双宽松开源协议,允许商用场景使用。硬件图纸、固件源码、上位机控制程序全部开放,可按需修改与二次开发。

项目地址:https://p.eda.cn/d-1406545037969326080

结语

商用 DAQ 的价值在于“开箱即用、有人负责”,开源 DAQ 的价值在于“你说了算”。这两件事本来不矛盾,只是过去很难同时拿到。

如果你们实验室里正躺着一台用了很多年、却一直没法按需改的采集设备,值得花半小时把这个仓库翻一遍。它的价值不在于省了多少钱,而在于把“改”这件事重新交回给用设备的人。

芯灵硬见直播

「芯灵硬见」是华秋·开源硬件社区牵头打造的 AI 硬件实战直播栏目——串联芯片设计、EDA 工业软件、PCB 硬件、模组、整机开发、生产制造、终端场景、产业投资的完整产业链,聚焦 AI 硬件从方案研发到规模化量产的全流程痛点。让真正做 AI 硬件的人被看见,让真正可落地的技术被验证,让真正需要协同的资源高效连接。