基于MAX32690与Zephyr的石油罐远程监测方案

引言

嵌入式应用要求快速开发,同时还要在保证灵活性的前提下实现跨平台扩展。将高性能微控制器(MCU)与开放、可扩展的软件生态相结合,可以实现这一目标。本文以石油罐远程监测系统为例:系统以基于 Arm 的 MCU 为核心,连接常见传感器,对实际环境中的测量结果进行处理,并通过无线通信把结果发送到简单的接收器或显示屏。开发过程中没有从零构建硬件和软件,而是复用现有构建模块,从而展示如何快速搭建一个功能完整、可配置的系统。

该项目使用 CodeFusion Studio 作为软件开发环境,并与 Zephyr RTOS(下称 Zephyr)结合,使开发重点放在数据采集、处理(processing)和通信等应用级行为上,而不是低层实现细节。利用现有驱动、中间件和连接协议栈,可显著减少开发工作量;更换传感器或无线接口、把系统改用于其他最终用途也更容易。

本文监测对象是家用石油罐,但基本方法可推广到多个领域。高性能 MCU 与开放、可扩展软件生态的组合,能够形成实用性强、适用范围广的嵌入式方案,同时去掉不必要的复杂度,加快原型验证并支持更自由的实验。

系统概述

系统主要由安装在罐体上的发射器和部署在室内的接收器组成。发射器定期测量到油面的距离以及罐体附近温度(温度的作用后文详述),再根据预先设定的罐体形状,把距离测量值转换为充填水平(油量和充填率)。结果以紧凑数据负载经无线链路发送;接收器解码负载并更新屏幕显示,让用户一眼看到剩余油量,无需用计量杆手动测量。

发射器

发射器电子电路安装在罐盖上,由超声波传感器、MAX32690 微控制器、MAX31723 温度传感器和 Wi-Fi 模块组成。

MCU 首先触发超声波传感器测量,再根据飞行时间(ToF)计算罐内到石油表面的距离,随后把距离数据转换为液位高度和容积数据,并整理成适合发送的格式。罐体参数(如容量和形状预设)通过硬件配置选择,接口采用简单的 DIP 开关。这样,同一套固件可复用于不同尺寸的罐体。

接收器

接收器由 MAX32690 微控制器、MAX31723 温度传感器、Wi-Fi 模块和液晶显示屏(LCD)组成。它接收发射器发来的负载,提取其中的充填水平信息,并更新 LCD 上显示的充填率(单位为%)、容积和室内温度。该系统的一个特点是用户界面与传感器节点分离:既便于在罐体上安装,也方便在室内读取结果。

为何采用超声波

系统利用 ToF 测量液面,因此选用支持 ToF 的超声波传感器。传感器向液面发射一段超声波脉冲,信号在油面反射后返回接收部,接收部把返回的声能转换为电信号,得到从发射到接收的时间,再据此计算到液面的距离。

将 ToF 转换为距离需要使用空气中的声速。由于测量的是往返时间(传感器→液面→传感器),单程距离按往返时间的一半计算,从而得到传感器面到油面的距离。已知罐体形状后,还可把距离转换为液位高度和容积。举例来说,假设长方体罐体的内部尺寸为长 1.7 m、宽 0.7 m、高 1.4 m;若测得距离为 0.4 m,即可按上述关系计算液位,并进一步求容积。满罐总容积为 1.66 m³,用测得的液体容积可算出相对满罐的充填率(%)。这些计算由 MAX32690 固件执行,因此发送给接收器的是充填率及相关计算结果,而不是原始 ToF 测量值。

利用温度测量提高精度

系统加入温度传感器,目的是提高超声波测量精度。空气中的声速随温度变化;如果把声速固定为某个值来计算 ToF 对应距离,环境温度变化就会导致显示值变化。

因此,系统测量罐体附近温度,并用它更新 ToF 转距离时使用的声速值,从而降低温度相关误差,输出更稳定的充填水平估计。

接收器也配置温度传感器,目的是让用户了解室内温度与石油消耗之间的关系。把油量与温度等数据按时间序列记录,可获得评估供暖系统效率的线索,例如每度日燃料消耗量,或不同室内温度区间下的燃料消耗量;还能发现消耗速率的持续变化,这可能提示燃烧器性能下降、保温问题或控制问题,有助于预测性维护。

实际添加 MAX31723 温度传感器时使用了 CodeFusion Studio,几乎不增加软件开发负担就新增了测量通道。

CodeFusion Studio 是什么

CodeFusion Studio 是 Analog Devices(ADI,亚德诺半导体)提供的嵌入式软件开发平台,支持 ADI 的处理器、微控制器、数字信号处理器(DSP)以及异构计算系统。其核心组件采用 Microsoft 的代码编辑器 Visual Studio Code。借助 CodeFusion Studio,可在集成环境中完成多种工作流,包括创建项目、访问 SDK 资源、配置系统、访问软件包、构建、写入闪存、调试和分析等。

采用 CodeFusion Studio 可降低嵌入式软件团队跨 IC 产品系列、工具链、SDK 和调试流程工作时的障碍。它支持裸机开发和基于 Zephyr 的开发、多核调试、基于 GDB(GNU Project Debugger)的调试、内存检查、核心转储分析和系统配置,也支持面向 AI 设备的嵌入式系统开发。

CodeFusion Studio 的 IDE 还支持跨异构系统的应用开发、调试和优化,因此既能快速开发基本功能,也能快速构建实用级系统。平台所含 SDK 提供预先集成的驱动、操作系统、中间件和领域专用参考应用,大幅减少自行开发低层软件的需求。

在本系统开发中,CodeFusion Studio 的体系化硬件/软件配置机制尤其有用。硬件资源和连接关系通过 device tree 描述,以层级形式表达系统组件及其连接;这样,外设和传感器可独立于应用代码定义,便于修改硬件并提高代码可移植性。

软件功能和系统行为则通过 Kconfig 配置,例如指定启用哪些驱动、通信协议栈和操作系统功能等构建时选项。device tree 与 Kconfig 结合,可对系统资源进行细粒度控制,同时保持应用代码清晰、易维护。

Zephyr 与裸机驱动开发对比

项目初期,团队曾针对每个硬件组件自行编写低层驱动。裸机方式能获得完全控制,但每增加一项功能或外设都要投入大量时间和精力,反复迭代速度下降、集成复杂度上升,扩大的软件栈也需要持续维护。

两个简单例子可以说明问题:实现超声波传感器测量功能时,裸机驱动需要编写 89 行代码,而使用 CodeFusion Studio 和 Zephyr 库只需 35 行;在 LCD 上显示 “Hello World” 时,裸机需要 136 行代码,使用 Zephyr 只需 37 行。

在 CodeFusion Studio 发布后引入 Zephyr 是项目的转折点。Zephyr 带来了可扩展、易维护的开发环境,使实时功能集成更顺畅,也加快了系统整体演进。开发重点由此从管理硬件的低层软件转向直接决定数据流和应用行为的高层系统架构。

项目还利用了 Zephyr 的硬件抽象层(HAL),在尽量少改软件的情况下评估多个硬件平台。具体而言,同一应用框架可在 MAX32690EVKIT 和 AD-APARD32690-SL 两块评估板上测试,并能直接比较低功耗蓝牙(Bluetooth Low Energy)与 Wi-Fi 连接选项,从而选择最合适的通信方式。

随着项目成熟,Zephyr 的模块化架构进一步发挥作用。团队决定把 MAX32690 重新部署到外形更小的板上,迁移过程顺利,大部分应用代码可复用,只需修改硬件相关描述和构建配置。这种灵活性说明,基于 RTOS 的方式便于跨平台迁移,也有助于嵌入式系统设计获得长期可扩展性。

ADI 的构建模块

项目使用了多个 ADI 构建模块,目标是验证如何在保留扩展和定制空间的同时缩短开发周期、降低风险。所选 ADI 组件旨在支持面向处理、传感和软件的现代嵌入式设计流程。

MAX32690 开发板采用以 Arm Cortex-M4F 为 CPU 核心的先进 SoC(片上系统),兼具足够的处理能力和 IoT(物联网)应用所需连接能力。MAX31723 外形小巧,电源电压为 1.7 V~3.3 V,温度测量精度为 ±0.5°C,并支持通过 SPI(串行外设接口)通信。MAX32690 和 MAX31723 均可在严苛的工业环境中工作。

该项目证明,不仅硬件本身,软件生态也能显著提升生产力。借助 CodeFusion Studio,可优先复用经过验证的组件,把硬件相关修改限制在配置层面,而不是重写应用,从而加快板卡更换、功能添加等迭代。CodeFusion Studio 提供集成 IDE、SDK 和配置工具,用于构建和调试嵌入式应用;其配置优先的开发流程支持按需求变化进行移植和渐进扩展。

未来展望

本项目聚焦油面测量和数据显示,但系统架构可较容易地支持多种石油罐管理功能。关键在于连续测量和无线连接已经内置,因此可扩展出跟踪罐体使用趋势、余量不足时告警、预测性补货通知等功能。引入这些功能后,尤其在住宅和工业环境中,可减少人工监测并更高效地管理油量。

自然的扩展方向包括支持能量收集,或通过其他手段实现超低功耗运行,从而长期免维护。许多石油罐位于偏远或难以接近的位置,频繁更换电池并不理想。模块化软件架构和基于 MCU 的平台低功耗特性可发挥作用:既可让系统利用能量收集供电,也可延长电池寿命,从而提高系统自主性。这些扩展可把本文的简单测量系统发展为更全面、更可扩展的能源监测系统。

总结

CodeFusion Studio 是具备预集成驱动、结构化配置工具和模块化软件架构的软件开发平台。本文说明,利用该平台可减少开发工作量,高效评估多个平台和连接选项,并以最小修改推动系统演进。

开放、模块化的软件生态可把具备基本测量功能的嵌入式系统发展为可扩展、易维护的监测方案,并以最少返工完成升级。

新人专享大礼包