模块化架构设计
文章平均质量分 93
网关框架搭建、协议转换、命令分发、数据存储、边缘适配、多硬件平台移植
EmbeddedCore
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【模块化设计-14】深入解析 RT-Thread syswatch 系统监控模块:保障系统稳定的核心卫士
syswatch 是 RT-Thread 系统的监控组件,核心用于检测线程异常(如死循环),并根据配置的处理模式(0/1/2)执行不同操作:模式 0:触发系统复位;模式 1:杀死异常线程;模式 2:先杀死异常线程,再恢复该线程。同时集成看门狗(WDT),定时喂狗,支持手动触发系统重启 / 停止看门狗,还可注册事件钩子函数监听异常事件。原创 2026-05-15 21:42:45 · 350 阅读 · 0 评论 -
【模块化设计-13】OAM 线程模块详解
这份代码实现了一个基于 RT-Thread 操作系统的 OAM(操作、管理和维护)线程模块,核心功能与结构如下:核心功能字节序处理:提供小端序(Little-Endian)的 16 位 / 32 位数据读写函数(oam_get_le_word/oam_set_le_dword等),用于处理不同字节序的数据解析与封装。线程与消息队列:创建优先级为 18、栈大小 8192 字节的 OAM 线程,线程入口函数为oam_thread_entry;初始化消息队列oam_thread_mq,用于接收外部投递的原创 2026-05-15 21:37:31 · 349 阅读 · 0 评论 -
【模块化设计-12】ADC 数据采集与队列模块的模块化编程 “踩坑” 与优化
本文以嵌入式项目中 ADC 数据采集结合队列处理的实际代码为例,深度吐槽现有实现中模块化设计的典型问题:队列模块接口语义混乱、ADC 采集逻辑与业务强耦合、初始化流程缺失、数据处理鲁棒性不足等;同时结合模块化编程的核心思想,给出针对性的重构思路与实现方案,帮助嵌入式开发者规避 “能用但难维护” 的代码陷阱,提升代码的可复用性、可读性与可维护性。原创 2026-05-15 21:24:49 · 791 阅读 · 0 评论 -
【模块化设计-11】基于嵌入式系统的周期性任务调度框架设计与实现
本文围绕嵌入式系统中两个核心功能模块(守护进程模块、轮询扫描模块)及底层硬件板级支持代码展开,重点呈现了相关模块的实现逻辑与硬件交互机制。守护进程模块(deamon.c)实现了初始化与周期性处理逻辑,包含定时器设置、看门狗喂狗(注释状态)、周期打印日志及串口数据发送等操作;轮询扫描模块(poll.c)完成 ADC 模拟量采集与滤波、GPIO 电平状态读取及参数缓存更新,通过定时器触发周期性扫描以获取光照值和 GPIO 状态等数据;板级支持代码(board.h/board.c)则提供了系统时钟配置、原创 2026-05-15 21:20:44 · 391 阅读 · 0 评论 -
【模块化设计-10】UART1 驱动 + 环形 FIFO 实现高效串口数据收发
本文围绕嵌入式系统中 UART1 串口驱动与环形 FIFO(先进先出)缓冲区的实现展开,核心包含两部分内容:环形 FIFO 模块:实现了环形缓冲区的基础功能,包括初始化(要求缓冲区大小为 2 的幂次方)、判断缓冲区是否为 2 的幂次方、计算剩余可写入空间、数据写入(ring_fifo_in)、数据读取(含仅读取不弹出的 peek 接口、读取并弹出的 out 接口)、判断缓冲区是否为空等,适用于单生产者单消费者场景,未加锁设计。UART1 串口驱动模块:基于上述环形 FIFO 实现了 UART1 的驱动开原创 2026-05-15 21:05:06 · 381 阅读 · 0 评论 -
【模块化设计-01】嵌入式通用软件框架标准化设计文档
本文提出了一种适用于资源受限嵌入式系统的通用软件框架设计方案。该框架采用分层架构(应用层、服务/组件层、框架核心层、硬件抽象层、设备驱动层和硬件层),具有模块化、可裁剪、可移植等特点,支持C/C++开发语言。设计强调高内聚低耦合、硬件无关性、实时确定性等原则,提供消息驱动、任务调度、日志服务等核心功能。框架通过静态分配为主的内存管理策略和统一错误处理机制确保系统可靠性,并支持低功耗管理。开发规范包括命名约定、注释标准及严格的启动流程,同时提供单元测试到系统测试的完整验证策略。该方案适用于物联网终端、工业控制原创 2026-04-04 05:17:22 · 385 阅读 · 0 评论 -
【模块化设计-02】物联网网关MQTT+JSON极简物模型自定义通信协议
本文介绍了一种面向物联网网关场景的MQTT精简通信协议,具有三大核心特性:1)极致精简主题设计,仅保留3个主题降低开发复杂度;2)全字段缩写机制,压缩JSON报文体积30%以上;3)完整兼容物模型标准,支持设备注册、状态上报等核心功能。协议基于MQTT3.1.1/5.0,采用QoS=1保证消息可靠性,适配低资源网关设备,同时提供标准化的状态码体系和异常处理机制。通过字段缩写映射表和精简主题设计,显著降低了嵌入式网关的开发成本和通信负载。原创 2026-04-04 05:16:43 · 1599 阅读 · 0 评论 -
【模块化设计-03】从零设计轻量安全可商用物联网自定义通信协议
本文提出一套专为物联网设备设计的私有二进制通信协议,旨在解决通用协议在工业应用中的局限性。协议采用两层架构(传输层+应用层),具有轻量高效、安全可靠、扩展兼容等特点。传输层采用固定帧结构,包含帧同步、设备标识、安全标志等字段;应用层支持通用命令、寄存器数据和固件升级三大功能。协议集成多重安全机制(认证加密、权限分级)、稳定传输控制(CRC校验、超时重传、心跳保活)以及标准错误码体系。该协议适配各类低资源硬件设备,适用于智能计量表、工业采集终端等场景,具有高效解析、防破解、易扩展等优势,可直接用于项目量产落地原创 2026-04-03 11:51:05 · 345 阅读 · 0 评论 -
【模块化设计-04】轻量级消息防重模块全解析:原理与高性能优化
本文介绍了一个轻量级C语言消息防重模块oam_msgid的设计与优化。该模块通过环形缓冲区或哈希表实现消息ID缓存,在设定时间窗口内(默认15秒)识别重复请求,保证请求幂等性。文章分析了原始设计的优缺点,提供了两个优化版本:基础版修复了原始Bug并保持API兼容,适合低频场景;哈希表版将查找复杂度降至O(1),适合高并发需求。模块适用于物联网设备通信、API请求去重等场景,支持自动过期清理,避免内存泄漏。文中包含完整实现代码、使用示例和生产环境调优建议,开发者可根据实际场景选择合适版本直接集成使用。原创 2026-03-31 05:57:05 · 536 阅读 · 0 评论 -
【模块化设计-05】蓝牙分包传输轻量级缓存管理方案设计
封装性:所有分包缓存的状态、数据内存都隐藏在模块内部,通过cmdid进行抽象访问,对外接口清晰。可重用性:该模块不依赖任何具体的蓝牙协议栈,只要满足“流ID + 分片序号”的模型,即可用于UART、LoRa等任何需要类似处理的低速可靠传输场景。资源可控:通过OAM_RAM_MAX_NUM限制最大并发分包任务数,通过动态内存管理节省RAM,通过超时机制保证资源释放。状态高效管理:使用位图管理分片状态,判断逻辑简单且计算效率高。结论:oam_ram.c文件展示了一个优秀嵌入式模块的典型特征。原创 2026-04-01 04:50:10 · 618 阅读 · 0 评论 -
【模块化设计-06】多线程守护机制设计与异常自愈实现
在嵌入式系统,尤其是运行RTOS(实时操作系统)的复杂应用中,系统通常由多个任务(线程)协同工作。单个任务的阻塞、死锁或异常退出都可能导致整个系统功能失效。硬件看门狗可用于监控整个CPU,但难以定位具体出错的任务。因此,一种在应用层实现的、能够监控多个线程健康状态的“软件看门狗”或“守护线程”机制显得尤为重要。本文将通过分析一个实际的daemon.c实现,详细阐述这种守护机制的设计原理、核心构成与使用方法。原创 2026-04-01 04:50:27 · 578 阅读 · 0 评论 -
【模块化设计-07】C语言宏定义网关命令分发框架设计
📝摘要:本文介绍了一种基于C语言的智能网关通信框架设计方案。该框架采用宏定义与表驱动编程技术,实现了命令的动态注册与高效分发。通过定义标准化的命令交互格式和双表驱动机制,框架将命令注册、分发逻辑与业务实现解耦,显著提升了代码可维护性。文章详细剖析了从JSON解析、一级命令路由到二级业务执行的完整处理流程,并通过MQTT配置设置案例展示了具体实现。该架构具有模块化、高扩展性和鲁棒性强等特点,适用于RT-Thread等嵌入式系统开发场景。🔑关键词:物联网网关、C语言框架、宏编程、表驱动、命令分发原创 2026-04-02 07:55:14 · 495 阅读 · 0 评论 -
【模块化设计-08】嵌入式高可靠存储模块设计与实现
本文设计并实现了一套嵌入式系统高可靠存储管理模块(Store),针对物联网设备数据持久化需求,采用"RAM缓存+Flash双备份"架构,结合延时合并写和自动校验机制,实现高效读写、可靠存储、低损耗等目标。模块通过分层设计(X-Macro架构)提供统一API,支持存储项灵活扩展,具备自动故障恢复能力。测试表明,该方案能有效减少Flash擦写次数,提升数据可靠性,适用于工业控制器、智能网关等嵌入式场景。未来可扩展加密存储等功能,适配更多存储介质。原创 2026-04-02 07:55:46 · 444 阅读 · 0 评论 -
【模块化设计-09】轻量级PIT定时器模块底层设计与解析
在嵌入式系统开发中,定时器管理是一项基础且至关重要的功能。一个设计良好的定时器组件不仅能提供精准的定时服务,更能体现软件架构的清晰度与可维护性。本文将以一个名为 PIT (Programmable Interval Timer) 的定时器管理模块为例,深入剖析其如何通过头文件与源文件的分离设计,完美诠释模块化编程的核心思想。原创 2026-04-03 09:25:59 · 403 阅读 · 0 评论
分享