当前位置:首页 > 工业控制 > 电路设计项目集锦
[导读]DAQnx是一个基于单个控制器插槽和三个应用插槽的模块化仪器平台。它将嵌入式Linux系统、USB控制、可编程的时序/触发/同步架构,以及可更换的数据采集、射频、FPGA和I/O模块集成于同一机箱中。在多年观察工程师和研究人员花费过多时间整合封闭且昂贵的仪器,而未能开展实验后,我决定开发出这个平台。

我为何打造DAQnx:一个用于数据采集、射频及自动测试的开放模块化平台

DAQnx是一个基于单个控制器插槽和三个应用插槽的模块化仪器平台。它将嵌入式Linux系统、USB控制、可编程的时序/触发/同步架构,以及可更换的数据采集、射频、FPGA和I/O模块集成于同一机箱中。在多年观察工程师和研究人员花费过多时间整合封闭且昂贵的仪器,而未能开展实验后,我决定开发出这个平台。

我为何要构建它

DAQnx并非始于一份电路图。它的诞生源于我在工业界和科研领域长期遇到的一个反复出现的问题:测量本身通常可行,但仪器的集成往往是最困难的部分。

虽然强大的平台已经存在,但当实验需要一些特殊配置时,这些平台可能变得昂贵、封闭或操作繁琐。定制需求可能意味着需要额外的许可证、新的设备,甚至被迫采用绕过方案,以让实验适应特定仪器。

多年来,来自欧洲和美洲各地实验室的同事不断提出同一个问题:有没有一种灵活的数据采集平台,既不需要高昂的预算,也不需要陡峭的系统集成学习曲线?NI和MTCA确实能很好地解决许多复杂问题,但它们的成本或复杂性并不适合许多小型实验环境。

一个具体案例让这个问题变得清晰。我的一位朋友,一位癌症研究人员,需要在约1 kHz频率下切换信号、测量数十个纳安级别的电流通道、驱动射频源与接收器、对数据进行相关分析,并处理数字输入输出。这些单个测量任务本身并不复杂。真正的挑战在于如何让多台仪器、微控制器、放大器和开关板协同工作,形成一个自动化且可脚本化的统一系统。这个系统的搭建耗资数千美元,还需要数月的集成工作。我曾为他开始构建一个更统一的系统,但他去世了,项目未能完成。这段经历让我深刻认识到,这是一个值得解决的工程难题:仪器应适应实验需求,而不是反过来。

同样的需求不断出现:清晰地同步通道,随着实验的演进而调整采集前端,并保持一个软件和控制环境。一周内系统可能需要一个简单的多通道ADC;下一周则需要一个基于FPGA、运行速度达数十MS/s的模块。机箱和接口应保持不变。

我本是研究人员和工程师,因此利用业余时间在家开始构建DAQnx:这是一个开放且模块化的平台,旨在让定制化的测量和测试装置更易于组装、自动化和重新配置。

设计目标

项目遵循一条设计原则:通过更换模块来改变仪器,而不是购买新的设备。

• 模块化设计,可根据应用需求灵活配置——机箱可作为数模转换器、波形发生器、软件定义无线电/频谱接收器、高速ADC或DAC系统、数字I/O平台,或这些组件的组合。应用模块还可包括本地调节和隔离功能,以满足特定测量需求。

• 灵活的控制架构——可使用Raspberry Pi CM5控制器作为独立嵌入式Linux系统,通过USB桥接从笔记本电脑驱动设备,或在需要更高实时性任务时采用基于FPGA的控制器。

• 开放且可脚本化——USB接口用于简单的控制和配置,而可编程的MLVDS网络则负责确定性时钟、触发、同步以及模块间通信。软件部分支持Python,原型界面使用SCPI,数据可导出为JSON、HDF5和CSV格式。

• 深度可定制且经济高效——专为工程、研发、测试自动化及学习需求设计,并通过Crowd Supply社区推动发布。

平台架构

当前机箱采用一个控制器插槽和三个通用应用插槽,共享背板。模块可插入或取出,无需重新设计仪器其余部分。每个插槽均提供受保护的电源和USB连接,同时可访问可编程的模块间网络。

前面板:可更换的模块插槽,支持应用所需的任何连接器。我倾向于使用SMA和BNC接口;对于某些任务,LEMO是更合适的选择。换工作,而不是换设备。

控制器选项——USB桥接、CM5和FPGA

第一个控制器设计得非常简单:在笔记本电脑与背板之间搭建一个USB桥接。这让我能够直接通过Python控制卫星板,并在添加嵌入式计算机之前验证模块化概念。

下一个控制器采用树莓派计算模块5(Raspberry Pi Compute Module 5),运行嵌入式Linux系统。安装了波形发生器模块、数字化模块和I/O模块后,DAQnx可以作为独立的自动化测试平台运行,无需外部PC。对于需要更严格的实时响应或更高处理能力的任务,计划提供基于FPGA的控制器选项,例如Xilinx Zynq。

应用模块——基于RP2040/RP2350的确定性I/O

大多数采集原型都使用RP2040或RP2350及其可编程I/O(PIO)模块。我最初选择它们是因为其简单性和快速原型开发的优势,但PIO在实现确定性并行采集时证明非常有用,同时避免了主CPU承担定时任务的压力。

PIO既不是通用处理器,也不是FPGA。每个模块包含小型状态机,直接在GPIO上执行,通过FIFO传输数据,并可使用DMA将数据流式写入内存。它无法实现FPGA所具备的DSP功能,但能以极低的成本处理高精度并行I/O和数据采集。对于更高的采样率、串行转换接口或更复杂的实时处理任务,则由基于FPGA的模块来承担。

FPGA模块

针对每模块的定制逻辑,我采用Lattice iCE40UP5K芯片设计了一块电路板。该芯片体积小、功耗低,而更大规模的FPGA模块(包括Zynq类设备)则属于高速转换器和JESD204B等接口的未来发展方向。

背板——带电源分配和可编程MLVDS网络的USB集线器

背板具有三大主要功能:提供受保护且低噪声的电源分配;集成USB集线器,用于控制和通用扩展;以及配置可调的MLVDS链路,支持时钟、触发、同步,以及模块间低延迟、确定性的通信。

在当前的原型中,控制器为USB主机,三个应用模块均为USB设备。这使得在4至6层PCB上实现第一个背板成为可能,并使每个模块易于枚举和控制。对于需要更大批量数据传输的模块,高带宽USB已列入开发路线图。

MLVDS架构提供了该系统确定性的部分。其全双工、可编程的线路可用于分发时钟和触发信号,传输低速率数据,或在中央控制器的控制下配置为简单的SPI风格背板。USB仍作为配置和通用数据交换的便捷通道。

此外,还计划开发一种开关式高速串行总线,以实现模块与控制器之间更低延迟、更高带宽的数据流。我正在评估交叉点路由的串行链路以及PCIe级别的方案;最终方向将取决于哪些应用能够证明增加复杂性是必要的。

架构包括:每槽智能供电、集成USB集线器,以及支持数据、时钟、触发和同步的全跨模块路由总线。

实际目标很简单:通过更换模块来改变测试台的功能,而无需重建或重新刷写整个系统。

我在测试台上进行的原型。重新配置只需十秒钟,且每个模块都自带本地电源,因此一个插槽的噪声不会影响下一个。

每模块独立供电:各板上均配备本地调节和大容量电容。

在当前原型中,树莓派技术体现在两个层面:CM5负责运行Linux控制环境,而RP2040/RP2350设备则处理多个应用模块中的确定性数据采集和I/O操作。这使得基础系统易于访问并有完善的文档记录,同时当应用需要更高性能时,可保留FPGA模块。

原型验证——波形采集

在首次高速采集测试中,我围绕ADC08100和RP2040构建了一个载波平台。ADC输出并行数据,PIO以确定性方式捕获,DMA将其传输至内存。借鉴RPscope项目的经验,我实现了约60 MS/s的突发采样速率,可采集数万次样本,且未观察到数据丢失。我将RP2040封装为带暴露I/O的LGA模块,并使用独立的ADC载波,以便同一处理模块可重复使用。

ADC载波还包括一个带前置放大器的比较器式硬件触发器。为了将该模块作为真正的仪器而非一次性的演示使用,我构建了一个SCPI控制接口,用于暴露板卡参数、以高达约60 MS/s的速度捕获波形,并显示时域和频域数据。在此测试中,采集模块通过DAQnx背板连接至USB控制器,而笔记本电脑则通过USB读取数据。重点不仅在于ADC本身,更在于整个工作流程:从同一接口选择并配置模块,通过背板实现同步,并自动完成整个测试。

所使用的测试台配置:机箱通过USB连接,显示器上显示波形,笔记本电脑实时显示FFT结果。

为对ADC原型进行特性分析,我使用Siglent台式波形发生器驱动设备,并同时进行电压与频率扫描,以及SNR、SFDR、SINAD等基本ADC测量。在这些测试中未观察到采样丢失现象。当前模拟前端的带宽约为5 MHz。这仍属于原型级的特性评估,而非最终模块的数据手册。此处的目的在于展示端到端的DAQnx工作流程以及该平台所支持的测试配置类型。希望使用现成系统的用户可将模块当作仪器使用,而开发者则可通过Linux控制器重新编程RP2040类模块和FPGA,并通过网络远程操作设备。

我还围绕AD9833构建了一个波形生成器模块,可提供可编程的正弦、方波和三角波输出,频率和相位由数字控制。将其安装在高速ADC模块旁边后,同一套设备即可同时生成激励信号并采集响应,这正是下方波形与FFT捕获所采用的配置。

波形视图:500 kHz正弦波,采样率为50 MS/s,以原始8位ADC码(0–255)形式绘制。实际硬件触发保持信号稳定;底部条形图实时显示其数值。

相同信号的频域捕获。标题栏始终显示N、NFFT、Δf(采样间隔宽度)及窗口参数,以便您在确认峰值前了解分辨率。

输入为正弦信号的测试结果FFT,基频为997.61 kHz,谐波自动标记。

脉冲输入信号的FFT。

工作模块与路线图

由于应用插槽是通用的,只需更换安装的模块,同一机箱即可配置为不同的仪器,或作为多种仪器的组合。

BP-2517 SDR 模块(RTL-SDR 天线载波,30–1800 MHz)可将机箱转变为频谱接收器。

DAQnx 配备 AI 加速卡和多个多通道数据采集模块。

目前已构建的原型(可运行)包括:一个 8 位高速采集模块(RP2040 PIO + ADC08100)、一个 16 位 ADC 模块、一个 RTL-SDR 载波、一个 iCE40UP5K FPGA 模块、基于 LMX2582 的最高 3 GHz RF 发射器、一个 Coral USB AI 加速器载波、一个 RP2040 I/O 模块,以及一个可配置的 10 端口混合信号模块,具备 ADC、DAC 和数字 I/O 功能。模块组合是核心理念:波形发生器、数字化器和 I/O 模块可组成一个独立的自动化实验台,并运行在嵌入式 Linux 系统下。同样的通用插槽也可用于搭载非仪器模块,例如存储或自动化功能,当需要时可灵活使用。

我有意未将本文转化为每块电路板的详细技术文档。上述测量重点在于采集功能的可行性验证。随着设计的成熟,详细的规格和特性可按模块逐步发布。

在开发/规划阶段:用于生产线测试系统的采集与滤波卡;基于LMS7002M和AD936x器件的SDR模块;用于高精度电压和电流测量的24位ADC模块;高速ADC和DAC采集系统;可编程射频前端;Zynq级FPGA模块;以及上述高速背板架构。这些均为路线图项目,而非当前已具备的交付能力,其优先级将根据实际应用需求调整。

DAQnx并不意味着现有平台不足;它们解决的是不同的问题。NI提供成熟的软件、认证及工业支持服务。MTCA专为严苛的模块化系统设计。Red Pitaya是一个强大的FPGA/SDR平台,而Analog Discovery则是一款出色的紧凑型教学与实验仪器。DAQnx的目标市场不同:它面向小型、开放式、混合信号/射频模块化机箱,内置Linux系统,支持可更换控制器和应用卡,每个模块独立进行模拟设计,并配备可编程背板。目标是通过可重复使用的模块组装一个定制的实验台,而不是为每个实验都调整固定仪器。

当前局限性

• DAQnx 仍处于早期发展阶段。模块种类有待扩展,模拟板卡需要更深入的特性分析,包括接地、隔离、噪声以及长期性能测试。目前我正在发布原型机,以了解哪些应用场景值得引入后续模块。

• 当前的外壳为3D打印的机械原型。面向量产的版本应升级为金属外壳,具备更好的电磁干扰屏蔽、接地性能和机械坚固性。手柄、面板及适配性仍在持续改进中。

• 目前尚未实现部分被列为路线图的功能。软件、模块目录以及高带宽背板选项仍在开发中,因此我希望明确区分已实现的硬件功能与计划中的新功能。

适用对象

DAQnx 面向需要定制化、可脚本化的实验平台的工程师、研究人员、测试开发者以及进阶学习者,但又不想从零开始构建整个仪器堆栈的人群。它特别适用于需要将采集、信号生成、射频、数字输入/输出和自动化功能集成于单一控制器下的系统场景。这就是该项目最初要解决的问题。

本文编译自hackster.io

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
关闭