嵌入式五层架构分层(应用→模块→系统→驱动→平台)
嵌入式五层架构分层原因(应用→模块→系统→驱动→平台)
一、每层定位+分层设计核心目的
整体分层遵循从上到下依赖、下层支撑上层、单向调用、软硬件解耦原则,分层本质是隔离变化、分工解耦、复用移植、便于维护迭代。
1. 平台层 Platform(最底层,硬件SOC/电路板级)
- 作用:封装CPU架构、芯片寄存器、板级外设硬件(时钟、GPIO、电源、PCB硬件资源),屏蔽不同主控(STM32/瑞芯微/全志)、不同硬件板子差异。
- 分层理由:硬件改版、换主控芯片时,只改平台层,上层驱动/系统/应用代码不用大幅改动,实现一套软件跨硬件主板移植。
2. 驱动层 Driver
- 作用:基于平台层硬件接口,封装具体外设驱动(串口、ADC、LCD、传感器、电机),把寄存器操作封装成标准化读写API。
- 分层理由:
- 硬件器件换型号(比如A传感器换成B传感器),仅修改对应驱动文件;
- 向上给系统层提供统一接口,上层不用关心芯片寄存器怎么操作。
3. 系统层 System
- 作用:操作系统内核、RTOS调度、文件系统、协议栈(TCP/IP、USB)、内存管理、中断管理,提供操作系统标准服务接口。
- 分层理由:隔离OS差异,裸机→FreeRTOS→Linux切换时,系统层适配,上层业务不用重写逻辑;统一资源调度,管理硬件驱动资源。
4. 模块层 Modules
- 作用:业务功能组件封装,比如加密模块、数据解析、通信协议封装(MQTT/Modbus)、算法组件、存储管理,是通用可复用中间件。
- 分层理由:功能模块化复用,多个项目共用同一个协议/算法模块;业务修改只改动对应模块,不牵连底层驱动和系统。
5. 应用层 Application(最上层)
- 作用:产品最终业务逻辑,产品业务流程、交互逻辑、业务控制(比如温控逻辑、设备菜单逻辑)。
- 分层理由:聚焦产品业务需求,产品改功能只修改应用代码,完全不用触碰底层硬件驱动,业务迭代最快、改动成本最低。
二、整体分层五大设计优势(为什么要这么分层)
- 软硬件解耦:软件业务和底层硬件隔离,硬件改板、换芯片,上层业务代码尽可能复用,缩短产品换版周期;
- 分工协作:硬件工程师负责平台层、驱动;内核工程师做系统层;中间件开发写模块;应用工程师做产品业务,团队并行开发;
- 代码复用:平台/驱动/模块做成组件库,多项目、多款产品直接复用,减少重复开发;
- 故障定位:分层隔离问题,硬件异常查平台/驱动,业务BUG查应用,协议异常查模块,快速排错;
- 灵活移植:同一套应用代码,更换硬件板子只适配底层平台+驱动,快速落地不同硬件版本产品。
补充:和标准嵌入式四层(应用/OS/驱动/HAL)区别
该架构把传统硬件HAL层拆分为平台层+驱动层,平台聚焦板级SOC硬件,驱动聚焦器件外设,在工控、消费类嵌入式产品里很常用,更利于多主板、多器件的量产项目维护。
