一、什么是嵌入式分层架构?
比喻:盖楼房
想象你要盖一栋楼:
地基层 = 硬件(芯片、电路、传感器)
结构层 = 驱动和硬件抽象层(柱子和梁)
功能层 = 中间件和操作系统(房间隔断和管道)
装修层 = 应用程序(墙面装饰和家具)
每一层都建立在下一层之上,且只与相邻层直接对话,这就是分层架构的核心思想。
严谨定义
嵌入式分层架构是一种纵向解耦的软件组织方式,通过定义明确的层间接口,将系统从下至上划分为依赖关系的不同层次,每层向其上层提供服务,并隐藏其下层的实现细节。
二、分层架构如何工作?
典型四层结构(从上到下)
1. 应用层
做什么:实现具体的用户功能
例:智能手环的计步算法、空调的温度控制逻辑
特点:不关心硬件细节,只说“我需要当前温度”,不问“温度怎么读”
2. 中间件/服务层
做什么:提供可复用的软件服务
例:文件系统、网络协议栈、数据库
工作方式:像“软件工具箱”,应用层可以直接调用
重要区分:
中间件:通用、可复用的软件模块(如FATFS文件系统、LwIP网络协议栈、FreeMODBUS)
服务层:针对具体产品领域的业务服务封装(如“设备配网服务”、“数据上云服务”)
工程意义:中间件通常为第三方或开源,服务层多为自研,二者共同构成产品的“软件基础设施”。
3. 操作系统/硬件抽象层
做什么:抽象隔离硬件差异,提供统一接口
例:
read_temperature()函数(底层可能是I2C、ADC或UART读取)
关键价值:换硬件时,只需改这一层,上层代码不用动
4. 硬件驱动层
做什么:直接操作硬件寄存器,处理芯片数据手册规定的时序、电平、协议。
例:配置STM32的ADC采样率、设置ESP32的W