系统架构设计师(四):嵌入式系统
引言
本文对应《系统架构设计师教程》(以下简称官方教材 )第二章 2.4 嵌入式系统及软件及第十六章**嵌入式系统架构设计理论与实践 **的内容。在实际考试中,嵌入式系统在选择、案例等模块都会涉及。本章内容由于超纲题较多,故本文主要聚焦选择题,非嵌入式开发开关的人员,考试时,不建议选择嵌入式案例。
嵌入式系统概述
嵌入式系统由嵌入式处理器(嵌入式CPU)、相关支撑硬件、嵌入式操作系统、支撑软件及应用软件组成。
嵌入式体系结构一般采用冯诺依曼体系结构或哈弗结构。
冯诺依曼结构
- 将程序指令存储器和数据存储器合并在一起的存储结构,程序指令存储地址和数据存储地址指向同一个存储器的不同物理地址。
- 采用单一地址和数据总线,程序指令和数据宽度相同。
- 处理器执行指令时,先从存储器中取出指令码,再去操作数执行指令,需要花费几个甚至是几十个周期,容易出现瓶颈问题。
哈弗结构
- 是一种并行体系结构,将程序和数据存储在不同数据空间,每个存储器独立编址、独立访问。
- 程序存储和数据存储分别对应一套独立的数据总线和地址总线。这种独立的数据总线和地址总线,允许在一个周期内获得指令和操作数,从而提高了效率。
嵌入式系统设计
嵌入式硬件
- 微处理器MPU:由通用计算机中的CPU演变而来,具有32位及以上处理器,只保留和嵌入式应用紧密相连的功能硬件,去除其他的冗余功能,以最低的功耗和资源实现嵌入式应用的特殊要求,常见的有ARM、MIPS、POWER PC等。
- 微控制器MCU:又称单片机,与MPU相比,MCU最大的优点在于单片化,体积小,从而使功耗和成本下降,可靠性提高。
- 数字信号处理器DSP:专门用于信号处理,对系统结构和指令进行了特殊设计(通常采用哈弗结构),使其适合于执行DSP算法,编译效率高,指令执行速度快,比最快的CPU还快10-50倍。
- 片上系统SOC:追求产品系统最大包容的集成器件,实现了软硬件无缝结合,在处理器片内嵌入操作系统的代码模块。
- 图形处理器GPU:专门用于处理图像、图形和并行计算任务的处理器。
下面以一个表格进行完整地展示:
| 类型 | 简称 | 核心特点 | 常见代表 |
|---|---|---|---|
| 微处理器 | MPU | 由通用CPU演变,32位及以上,保留关键功能,去除冗余,低功耗 | ARM, MIPS, PowerPC |
| 微控制器 | MCU | 单片化,体积小,集成度高,功耗与成本低,可靠性高 | 各类单片机(如STM32) |
| 数字信号处理器 | DSP | 专为信号处理设计,常用哈佛结构,指令执行快,适合算法密集型任务 | TI C6000系列 |
| 片上系统 | SoC | 高集成度,软硬件紧密结合,常在芯片内嵌入操作系统模块 | 手机SoC(如骁龙、麒麟) |
| 图形处理器 | GPU | 专用于图形、图像处理及并行计算,具有高度并行计算能力 | NVIDIA, AMD系列 |
嵌入式软件
嵌入式软件的特性
- 规模较小
- 开发难度大
- 实时性和可靠性要求高
- 需固化存储
嵌入式软件分类
- 系统软件:控制和管理嵌入式系统资源。
- 应用软件:嵌入式中的上层软件,定义主要功能和用途。与用户交互,面向特定领域,如车机软件、手机软件。
- 支撑软件:辅助软件开发的工具软件,如系统分析工具、在线仿真工具。
- 板级支持包BSP:介于主板硬件和驱动层程序之间的一层。
BSP关键点
功能:硬件初始化、设备驱动、中断服务、引导操作系统
特点:硬件相关、操作系统相关
内容:BootLoader(引导加载程序) + 设备驱动
嵌入式软件的组成
- 嵌入式处理器
- 相关支撑硬件
- 嵌入式操作系统
- 支持软件
- 应用软件
嵌入式操作系统
嵌入式操作系统的层级结构
硬件层 → 抽象层 → 操作系统层 → 中间件层 → 应用层
嵌入式数据库系统EDBMS
EDBMS的特性
- 设备随时移动性
- 网络频繁断接
- 网络条件多样化
- 通信能力不对称
EDBMS的组成
- 主数据库
- 同步数据库
- 嵌入式数据库
- 连接网络
EDBMS要解决的问题
- 数据一致性(复制性)问题
- 高效的事务处理能力
- 数据安全性等问题
嵌入式操作系统分类
嵌入式操作系统(EOS)
特点:微型化、代码质量高、专业化、实时性强、可裁剪和可配置
实时操作系统(RTOS)
特点:确定性、可预测性、及时响应、高可靠
分类:强实时(必须按时完成) / 弱实时(尽快完成)
代表:VxWorks、QNX、Nucleus
非实时操作系统
代表:Android、iOS、ROS
安全攸关系统
对安全性有极高要求的系统(如航空、医疗)
非安全攸关系统
对实时安全要求不高的通用系统
嵌入式软件设计
交叉开发:宿主机(开发机)与目标机(嵌入式设备)分离
交叉编译:在宿主机生成目标机可执行代码
交叉调试:调试器在宿主机,被调试程序在目标机运行
DO-178B协议
指导航空电子软件开发的行业标准,强调 过程 与 证据。
主要过程:
- 软件计划过程
- 软件开发过程(需求 → 设计 → 编码 → 集成)
- 软件综合过程(验证 + 配置管理 + 质量保证 + 审定联络)