基于 Zephyr® 实时操作系统的 MTCH9010 应用方案

之前的文章:
Microchip MTCH9010:更智能、更简易的液体检测方案

我们详细介绍了 MTCH9010 实现快速、可靠液体检测的工作原理。

如今,MTCH9010 正式支持 Zephyr® 实时操作系统,并且被纳入该系统的主线代码库。这一升级为开发者提供了更高的灵活性,大幅加快了产品集成速度。无论你更习惯使用Microchip的 MPLAB® 开发环境,还是倾向于 Zephyr 这类开源框架,MTCH9010 都能适配你的工作流程。

Zephyr® 实时操作系统是一款开源、不依赖特定厂商的实时操作系统,专为资源受限的嵌入式系统设计。它的核心目标十分宏大:打造一款能够跨架构、跨厂商、跨应用场景适配的统一实时操作系统。

为了探究 Zephyr 在实际应用中的表现,Microchip 近期开展了一项实操测试。MTCH9010 液体泄漏检测器开发了全新的传感器驱动,同时编写了配套的 MTCH9010 示例应用程序。本文分享在微芯硬件平台上部署 Zephyr 系统,以及将 MTCH9010 集成到该系统中的实践经验。

关于 Zephyr 系统的常见误区澄清

开发者在接触 Zephyr 时,普遍认为它的搭建流程十分繁琐,相比简单的裸机开发或小型固件项目难度更高。尽管 Zephyr 提供了详尽的搭建指南,但整个流程涉及多个环节,从 Python 环境配置到命令行构建工具(West)的使用,都需要开发者逐一掌握。

实践经验表明:

  1. 该系统虽然能在 Windows 系统中运行,但在 Linux 系统环境下的使用体验会显著提升,流程更顺畅。
  2. 掌握可执行文件的编译步骤,有助于开发者在遇到问题时快速排查故障。

Zephyr 系统的优势应用场景

Zephyr 系统的核心优势,在需要多个子系统协同工作的复杂集成式应用中得以充分发挥,例如:

  1. 网络互联场景:比如运行 HTTP 服务器示例程序,实现实时数据的上传与下发,以及硬件设备的交互控制。
  2. 多外设实时响应场景:需要同时对多个外设进行低延迟响应的项目。
  3. 标准化配置管理场景:能够从标准化配置和硬件抽象层中获益的项目。

在实操测试中,HTTP 服务器示例程序 SAM E54 探索套件开发板上几乎实现了即时运行。该程序不仅能实时传输设备统计数据,还能实现硬件交互功能,并且可以轻松扩展自定义网页内容。

Zephyr 系统的架构核心由以下三部分组成:

  1. Devicetree:用于定义硬件设备信息。
  2. KConfig 配置工具:用于进行软件功能配置。
  3. 用户代码:用于衔接硬件与软件功能,实现完整业务逻辑。

这种分层架构有助于保持复杂项目的代码整洁度,同时提升系统的可扩展性。

Microchip 对 Zephyr 系统的积极支持

实践总结中提到,Zephyr 系统获得了强劲的行业生态支持,Microchip 也在积极参与该项目的贡献。这意味着,随着 Zephyr 系统的不断升级迭代,微芯旗下更多器件的支持将持续拓展,涵盖 PIC32 系列及其他微控制器产品。这将为开发者提供更充足的信心,借助第三方工具链构建跨平台应用方案。

MTCH9010 液体泄漏检测器完成与 Zephyr 系统的集成,正是这一生态协同的有力体现。在 Zephyr 系统中,它被定义为一款传感器外设,通过设备树完成硬件描述,参数配置方式与系统中的其他硬件保持一致。

这一特性赋予了 MTCH9010 更强的灵活性:

  1. 可独立应用于结构简单的裸机设计项目。
  2. 可通过配套驱动和配置支持,无缝集成到 Zephyr 实时操作系统的应用程序中。
  3. 可适配 Zephyr 系统支持的多款微控制器产品,无论开发者使用 MPLAB 开发环境,还是开源构建系统,都能灵活适配。

纳入 Zephyr 主线代码库,还能为开发者带来开发效率的提升。开发者无需再维护独立的树外驱动,直接调用生态系统中的现成资源即可。