目前的位置: 首页 学术信息 正文

ZDS 2023技术报告分享第27篇:Zephyr消息总线(ZBus):轻量级和灵活的消息传递系统


前言

2023年Zephyr开发者大会(ZDS)于6月27日至30日在捷克布拉格隆重举行。与以往两次不同,本次ZDS由Zephyr项目规划和管理,并作为首届嵌入式开源峰会(EOSS)的一部分进行。在这个令人期待已久的盛会中,全球Zephyr开发者们共同探讨了Zephyr实时操作系统(RTOS)的最新技术与发展趋势。作为一款开源、灵活和可扩展的嵌入式实时操作系统,Zephyr项目在2014年由英特尔发起,2016年作为Linux基金会项目正式面向公众启动,得到了全球范围内的广泛关注和采用。


ZDS 2023共70余个技术报告,涵盖了使用指导与展示、新功能与技术、架构修改与操作系统、多核异构与虚拟化、模拟器、测试、工业流程与代码管理、安全性、应用案例、工具与调试等丰富多样的内容。湖大嵌入式实验室的小伙伴们将对本次大会的所有技术报告进行逐一收集、整理与分享,尽最大努力为Zephyr开发者提供ZDS 2023技术报告的开发经验、实践成果以及解决方案的参考。



今天分享第27篇技术报告,由罗健淳整理,题目为:

“Zephyr消息总线(ZBus):轻量级和灵活的消息传递系统”



作者简介

Rodrigo Peixoto

嵌入式软件工程师

Edge-UFAL/Citrinio

自2007年以来,他一直是一名大学教授和企业家,从事嵌入式系统项目的研究、开发和咨询工作。作为嵌入式系统部门的协调员,他是阿拉戈斯联邦大学边缘创新中心的一员。此外,他还是Citrinio公司的创始人之一,该设计公司还从事咨询和集成项目。他对Zephyr的主要贡献是zbus消息总线系统



文章简介

本技术分享的主题是Zbus——一种轻量级、灵活的消息总线,可以让线程之间相互通信。在本分享中将详细介绍允许多对多通信的新消息总线方式和事件驱动方法。然后将重点介绍使用这种方式所面临的挑战和好处,并展示相关示例和应用。最后,他将介绍该总线的路线图功能。



ZBus简介

Zephyr消息总线(ZBus)是一种为Zephyr设计的轻量级消息传递系统。由Rodrigo Peixoto提出,它旨在提供一种灵活的通信机制,允许线程之间进行一对一、一对多和多对多的通信。



ZBus的动机

嵌入式系统面临许多挑战,其中包括内存限制、处理能力限制和电池供电设备的限制。传统的通信机制,例如FIFO、LIFO、栈、消息队列、邮箱和管道,对于一对一的通信是有效的,但在一对多和多对多的场景中,它们通常无法提供满足需求的解决方案。ZBus通过提供消息总线来解决这个问题。



ZBus的解决方案

ZBus提供了一个消息总线,允许线程之间进行多种通信模式。这包括一对一、一对多和多对多的通信。ZBus中的每个线程可以订阅一个或多个通道,并可以发布消息到这些通道。

此外ZBus还支持异步和解耦的通信方式,提供了时间、空间和同步的解耦。

满足多种总线拓扑结构。



ZBus的工作原理

ZBus的核心是“虚拟分布式事件分发器”(VDED),它负责将消息发布通知发送到频道的观察者。在ZBus中,没有中央实体充当事件分发器。此外,每个线程都可以通过“读”和“发布”操作与通道交互,并可以声明/完成对通道的控制。



ZBus的使用场景

ZBus可以用于多种场景,如存储、蓝牙、NB-IoT等。它支持事件驱动的架构,提供统一的方式让线程进行通信和数据共享,并提供了极高的代码解耦性和可测试性。



ZBus的优点和缺点

ZBus的优点包括促进事件驱动架构,统一的线程间通信和数据共享方式,代码的时间、空间和同步解耦性,促进了代码的复用,提高了可测试性以及扩展性。然而,ZBus也有其缺点,包括需要时间去掌握,可能存在的过多的可能性,不适合用于密集型字节流,以及对订阅者没有交付保证。



ZBus主要特性

  1. 支持异步API。考虑支持在中断服务程序内使用ZBus API,以避免使用工作队列。

  2. 将支持全订阅者模式。全订阅者可以监听所有通道,扩展ZBus功能。

  3. 计划将ZBus集成到Zephyr输入子系统,作为事件分发后端。

  4. 将提供示例代码,如蓝牙、传感器等。

  5. 考虑支持跨核和多目标应用。



ZBus使用原则

  1. 避免过度使用监听器,它们会增加发布延迟。

  2. 监听器内不要睡眠,应快速完成。可以使用工作队列offload重复操作。

  3. 订阅模式下可能有丢包重复,只在可容忍情况下使用。

  4. 发布循环和连锁循环需要小心设计,避免在总线图上出现环路。

  5. 不要在中断内使用ZBus函数,使用工作队列延期操作。


上一条:Raspberry Pi 5 SBC推出2.4 GHz Broadcom BCM2712四核Cortex-A76 SoC 下一条:ZDS 2023技术报告分享第26篇:使用Wireshark分析USB通信(数据传输)

关闭

嵌入式与网络计算湖南省重点实验室
版权所有 © 2023 湖南大学