软考-系统架构师-嵌入式系统(二)

五、嵌入式微处理器分类与选型

5.1、基础分类

5.1.1、微处理器

MPU - Micro Processor Unit

将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的母板功能。

一般以某种微处理内核为核心,内核一致,区别在于存储器和外设的配置和封装

5.1.2、微控制器

MCU - Micro Control Unit

又称单片机

最大优点单片化。体积大大减小,从而使功耗和成本下降,可靠性提高。

5.1.3、信号处理器

DSP - Digital Signal Processor

对系统结构和指令进行了特殊设计(通常采用哈佛结构)。

特点:适合执行DSP算法,编译效率高,指令执行速度也高

5.1.4、图形处理器

GPU - Graphics Processing Unit

定义:可执行渲染3D图形等图像的半导体芯片。

作用:减少对CPU的依赖,进行部分原本CPU的工作(如硬件T&L、纹理压缩)。

性能:集成成千上万个Core,峰值性能高达100 TFlops以上。

5.1.5、片上系统

SoC - System on Chip

定义 :追求产品系统最大包容的集成器件。既是一个有专用目标的产品,也是一种设计技术(从确定功能到软/硬件划分)。

核心特征 :成功实现了软硬件的无缝结合 ,直接在片内嵌入操作系统的代码模块。

广义比喻:如果CPU是大脑,SoC就是包括大脑、心脏、眼睛和手的系统。

组成:MPU + 模拟IP核 + 数字IP核 + 存储器。

5.2、MPU vs MCU

1)MCU (单片机)

特点片内自带Flash和RAM。上电即跑,无需复杂外部总线。

场景:电饭煲、汽车电子(车窗控制)、工业仪表。

OS :通常运行RTOS (uC/OS, FreeRTOS) 或裸机跑。

2)MPU (微处理器)

特点片内无Flash/RAM(或很小),必须外挂DDR和NAND Flash。性能强,主频高。

场景:智能手机、路由器、智能网关。

OS :通常运行复杂OS (Linux, Android, Windows)。

5.3、DSP 的"哈佛结构"

冯·诺依曼结构 (Von Neumann) :程序指令和数据存储在同一个存储器中,共用一条总线。瓶颈在于取指和取数不能同时进行。

哈佛结构 (Harvard) :程序指令和数据存储在两个独立的存储器 中,有两条独立总线。允许同时取指和取数,极大提高了数字滤波、FFT等算法的效率。

5.4、SoC 的核心理念

软硬协同与IP核

5.4.1、IP核

SoC 设计就像搭积木,这些积木就是 IP 核。

软核 (Soft Core):代码形式(HDL),灵活性高,性能不可预测。

硬核 (Hard Core):版图形式,性能最好,无法修改。

固核 (Firm Core):门级网表,介于两者之间。

5.4.2、软硬件划分

设计 SoC 的第一步是决定哪些功能用硬件(速度快、功耗低、不可改)实现,哪些用软件(灵活、易升级、速度慢)实现。

5.5、五大处理器选型指南

嵌入式处理器选型
MPU 微处理器
MCU 微控制器
DSP 信号处理器
GPU 图形处理器
SoC 片上系统
特征: 性能强, 需外挂存储
场景: 手机, 复杂网关, 跑Linux
特征: 单片化, 低成本, 功耗低
场景: 家电, 传感器, 工业控制
特征: 哈佛结构, 算法快
场景: 音视频编解码, 雷达信号
特征: 并行计算, 3D渲染
场景: 游戏, 自动驾驶AI, 图像识别
特征: 软硬协同, IP核复用
场景: 定制化高端设备, 极致集成

5.6、SoC的广义定义

包含
<<System on Chip 片上系统>>
SoC_System
心脏 : 电源管理 / 时钟
眼睛 : 摄像头 / 传感器接口
手脚 : 执行器 / IO接口
大脑 : CPU(控制核心)
<<底层物理组成>>
Components
核心 : MPU Core
硬件 : Analog IP(模拟核)
硬件 : Digital IP(数字核)
软件 : Embedded SW(嵌入式软件)
🔴 核心考点:

(1) 软硬件无缝结合

(2) 直接嵌入OS代码模块

六、嵌入式操作系统 (EOS)

6.1、定义与职责

定义:用于嵌入式系统的操作系统。它是用途广泛的系统软件。

职责:负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并发活动等。

组成:通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。

6.2、分类

6.2.1、按时间敏感程度划分

嵌入式非实时系统:如早期的PDA、消费电子。

嵌入式实时系统 (RTOS) :能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统。

6.2.2、按安全性要求划分

安全攸关系统 (Safety-Critical) :也称安全生命关键系统。其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果(如航空航天、医疗设备、核工业)。

非安全攸关系统

6.3、核心特点

微型化:占用资源少。

代码质量高:系统稳定可靠。

专业化:针对特定领域优化。

实时性强最核心特点

可裁剪、可配置、可定制 ,与 BSP, HAL 相关,意味着 可移植

6.4、"实时性"的深度辨析

快速 (Speed/Throughput):指处理得快(如高性能服务器)。

实时 (Real-Time) :指确定性 (Determinism) 。即系统必须在规定的时间窗口内做出反应,"准时"比"快"更重要

硬实时 (Hard Real-Time):超时即失败(如安全气囊、飞行控制)。

软实时 (Soft Real-Time):超时会降低体验,但不会导致灾难(如视频播放掉帧)。

6.5、"可裁剪性"与架构设计

嵌入式硬件千差万别。

可裁剪:为了省钱、省电、省空间,不需要的模块(如网络协议栈、GUI)必须能去掉。

可配置/可移植 :通过 BSP (板级支持包)HAL (硬件抽象层) 隔离硬件差异,使得同一个 OS 内核可以跑在不同的芯片上。这是层次化架构的最佳实践。

6.6、安全攸关系统的设计策略

冗余设计:双机热备、三模冗余 (TMR)。

异构性:主控制器用 ARM,备份控制器用 FPGA,防止同一个软件Bug导致两者同时挂掉。

看门狗 (Watchdog):必须配备,防止死锁。

6.7、嵌入式操作系统的分类体系图

嵌入式操作系统

EOS
按时间特性
RTOS
Hard RT
Soft RT
note: 核心是"确定性"
非实时系统
消费电子
早期PDA
按安全特性
安全攸关系统
航空航天
医疗/核能
note: 故障=灾难
非安全攸关
智能家居
娱乐设备

6.8、五大特征与架构支撑

技术/架构支撑
EOS 五大核心特点
(1) 微型化
(2) 代码质量高
(3) 专业化
(4) 实时性强
(5) 可裁剪/可配置
资源受限/成本控制
固化代码/难升级
特定领域算法
抢占式调度/中断低延迟
BSP & HAL 层
最核心特点
手写重点: 易移植

七、操作系统内核架构

7.1、架构定义

7.1.1、宏内核

实质 :将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间。

7.1.2、微内核

实质 :只实现基本功能(如IPC、调度),将图形系统、文件系统、设备驱动及通信功能放在内核之外(即用户态)。

典型代表鸿蒙操作系统 (HarmonyOS)

7.2、优缺点深度对比

维度 宏内核 (单体内核) 微内核 (鸿蒙/Minix)
执行效率 。减少了进程间通信 (IPC) 和状态切换的系统开销。 偏低 。用户态和内核态需要频繁切换,且服务间通信需通过 IPC,导致系统效率不如单体内核。
稳定性/安全性 不好。内核庞大,任何驱动故障可能导致整个系统崩溃。 较高。服务运行在用户地址空间,故障隔离,单个服务崩溃不影响系统核心。
可裁剪/可移植 不易剪裁。内核庞大,占用资源多。 便于剪裁和移植 。内核精练,具有很好的灵活性和可扩展性
开发维护 耦合度高。 结构清晰,有利于协作开发
适用场景 传统高性能通用计算 (服务器/PC)。 分布式系统、高可靠嵌入式系统。

7.3、鸿蒙为什么选择微内核?

分布式软总线:微内核的"服务化"架构天然适应分布式。在微内核眼里,调用本地的"相机服务"和调用隔壁手机的"相机服务",机制是一样的(都是发个 IPC 消息)。这就实现了鸿蒙的**"超级终端"**理念。

高可靠性:物联网设备(如智能门锁、车机)对死机是零容忍的。微内核的驱动挂了重启即可,不会导致整个系统"变砖"。

7.4、性能瓶颈的本质:上下文切换

宏内核 :应用程序调用驱动 →\rightarrow→ 系统调用 (1次切换) →\rightarrow→ 内核干活 →\rightarrow→ 返回 (1次切换)。共2次切换

微内核 :应用程序请求服务 →\rightarrow→ IPC发送 (切换进内核) →\rightarrow→ 内核转发给驱动服务 (切换回用户态) →\rightarrow→ 驱动干活 →\rightarrow→ IPC回复 (切换进内核) →\rightarrow→ 内核转发给应用 (切换回用户态)。共4次切换

如果题目问"微内核最大的劣势是什么?",答案就是**"频繁的用户态/内核态切换导致的性能损耗"**。

7.5、协作开发

因为文件系统、网络协议栈都是独立的用户态进程,互不干扰。

A团队 可以专心开发文件服务,B团队专心开发网络服务,只要定义好 IPC 接口,大家可以并行工作,不用担心改了一行代码导致全内核编译报错。

7.6、两种架构的内部构造与通信路径

微内核架构 (Microkernel)
宏内核架构 (Monolithic)
硬件平台
内核空间 (精简)
用户空间
(1) 请求
(2) 转发
(3) 操作硬件
(4) 执行
系统调用 (快)
内核空间 (All-in-One)
文件系统
设备驱动
IPC/调度
网络协议
CPU / 内存 / 外设
应用程序
应用程序
文件服务进程
设备驱动进程
IPC消息转发

地址映射/调度
考点: 路径长, 切换多

7.7、决策矩阵

内核架构选型决策矩阵
Y轴: 低灵活性 Low Flexibility
Y轴: 高灵活性 High Flexibility
象限2: 混合内核 (Hybrid)

代表: Win / Mac

特点: 兼容性强
象限1: 微内核 (Micro)

代表: 鸿蒙 / QNX

(1) 分布式支持: 极高

(2) 易于裁剪: 极高
象限3: 宏内核 (Mono)

代表: Linux / Android

(1) 高性能计算: 强

(2) 代码规模: 庞大
象限4: 裸机 / 库OS

代表: RTOS / Library

特点: 极致简单
X轴: 低可靠性
X轴: 高可靠性

八、鸿蒙操作系统

8.1、四大技术特性

分布式架构 :首次用于终端 OS,实现跨终端无缝协同体验(如:手机和电视无缝流转)。

天生流畅 :通过确定时延引擎高性能 IPC 技术实现。

可信安全 :基于微内核架构重塑终端设备可信安全(TEE)。

生态共享 :通过统一 IDE 支撑一次开发,多端部署,实现跨终端生态共享。

8.2、整体架构设计 (分层模型)

8.2.1、内核层 (Kernel Layer)

内核子系统:支持 Linux Kernel 和 LiteOS(多内核设计)。

KAL (内核抽象层):屏蔽不同内核差异。

驱动子系统:HDF (HarmonyOS Driver Framework) 驱动框架。

8.2.2、系统服务层 (System Service Layer)

核心能力分布式任务调度分布式数据管理分布式软总线

其他:基础软件服务、增强软件服务、硬件服务子系统等。

8.2.3、框架层 (Framework Layer)

用户程序框架、Ability 框架、UI 框架。

8.2.4、应用层 (Application Layer)

系统应用、扩展应用/三方应用。

8.2、核心设计理念

系统功能按照**"系统" - "子系统" - "功能/模块"** 逐级展开。支持根据实际需求裁剪某些非必要的子系统或功能模块(对应嵌入式系统的可裁剪性)。

8.3、为什么要搞 "KAL (内核抽象层)"?

问题:手机需要强大的 Linux,但智能台灯只需要极简的 LiteOS。如果开发两套系统,生态就分裂了。

解决KAL (Kernel Abstraction Layer) 的作用就是把底层内核(无论是 Linux 还是 LiteOS)封装成统一的接口。

这体现了**"屏蔽异构性"的架构思想。上层服务层不需要知道底下跑的是什么内核,从而实现了"一次开发,多端部署"**。

8.4、核心黑科技:分布式软总线

这是鸿蒙最核心的考点,位于系统服务层

传统方式:手机连打印机,要搜蓝牙、配对、输密码,很麻烦。

软总线 :在软件层面虚拟出一条总线,让不同设备(手机、电视、手表)只要在同一个网络下,发现、连接、组网就像连在同一根物理总线上一样简单。

架构价值:它是实现"超级终端"的基石,让多设备融合为一个逻辑设备。

8.5、确定时延引擎

对应考点 :RTOS 的实时性

原理 :通过对任务优先级的精准调度,确保高优先级任务(如界面滑动、点击响应)在确定的时间内得到执行,解决安卓系统"越用越卡"的问题。

8.6、鸿蒙四层架构全景图

鸿蒙操作系统架构
内核层 Kernel
系统服务层 System Service
分布式核心能力
多内核设计
Linux Kernel
LiteOS
框架层 Framework
Ability 框架
UI 框架
应用层 Application
系统应用 / 第三方应用
分布式软总线
分布式数据管理
分布式任务调度
基础软件服务 / 硬件服务
KAL 内核抽象层
HDF 驱动框架
考点: 设备发现与互联
考点: 屏蔽内核差异

8.7、四大特性思维导图

鸿蒙OS

四大特性
分布式架构
跨终端无缝协同
虚拟超级终端
天生流畅
确定时延引擎
高性能IPC
可信安全
微内核架构
可信执行环境
生态共享
统一IDE
一次开发, 多端部署

九、嵌入式数据库系统

9.1、主要特点

嵌入式:集成在应用程序中。

实时性:需满足受限的时间约束。

移动性:支持移动计算环境。

伸缩性:可根据资源裁剪。

9.2、三大分类

9.2.1、基于内存方式

定义:数据库的"工作版本"常驻内存,活动事务只与内存拷贝打交道。

特点支持实时事务的最佳技术

9.2.2、基于文件方式

定义:数据按一定格式存储在磁盘(或Flash)的文件中。

特点:访问是被动式的(通过驱动读写),安全性低,但能满足特定的空间要求。

9.2.3、基于网络方式

定义 :基于 4G/5G 移动通信,逻辑上把嵌入式设备看作远程服务器的一个客户端

特点无需解析 SQL 语句,客户端小,有利于代码重用。

9.3、嵌入式网络数据库详解

实质 :把功能强大的远程数据库映射到本地数据库,让访问远程就像访问本地一样方便。

组成:

1)客户端:提供接口给嵌入式程序。

2)通信协议:规范通信,解决多客户端并发。

3)远程服务器:维护实际数据。

综合系统 :通常由 网络数据库 + 本地数据库 + Web服务器 构成综合信息系统。

9.4、选型策略

场景需求 推荐类型 原因分析 典型代表
高频交易、飞行控制 MMDB (内存) 实时性第一。磁盘I/O太慢,必须在内存操作。 FastDB, eXtremeDB
手机通讯录、日志记录 FDB (文件) 数据量不大,需要持久化,断电不丢,资源占用极小。 SQLite (最著名)
物流追踪、外卖骑手 NDB (网络) 数据需要实时同步到云端,本地只做简单展示。 各种 RESTful API 客户端

9.5、为什么 NDB "无需解析 SQL"?

传统 DB :客户端发 SQL →\rightarrow→ 数据库引擎词法分析 →\rightarrow→ 语法分析 →\rightarrow→ 查询优化 →\rightarrow→ 执行。这套流程对嵌入式 CPU 压力很大。

嵌入式 NDB :嵌入式客户端只负责打包请求(比如封装成二进制流或 JSON),繁重的 SQL 解析和执行全部扔给性能强大的远程服务器去做。这体现了**"胖服务器,瘦客户端"**的架构思想。

9.6、移动数据库的关键挑战

断网处理 (Disconnection):移动信号不稳定,必须支持"离线操作,联网同步"。

数据一致性:多终端同时修改数据,如何解决冲突?(通常采用时间戳或版本号机制)。

9.7、嵌入式数据库分类决策树

嵌入式数据库选型
(1) 基于内存 (MMDB)
特征: 常驻内存, 无I/O瓶颈
优点: 实时性极强
(2) 基于文件 (FDB)
特征: 磁盘文件存储, 被动访问
优点: 持久化, 资源占用低
缺点: 安全性低
(3) 基于网络 (NDB)
特征: 客户端-服务器模式, 4G/5G
优点: 本地无需解析SQL, 代码复用
典型: SQLite
考点: 实时性最佳

9.8、嵌入式网络数据库架构 (NDB)

远程数据库服务器 NDB 客户端 (本地) 嵌入式应用程序 远程数据库服务器 NDB 客户端 (本地) 嵌入式应用程序 特点: 瘦客户端 不解析SQL 解析SQL ->> 执行 ->> 获取结果 看起来像在访问本地数据库 (映射机制) 调用接口 (如: query_data) 封装请求 (Protocol) 发送请求 (通过 4G/5G) 返回结果数据 数据解包并呈现

十、嵌入式开发环境与低功耗设计

10.1、嵌入式软件开发特点

宿主机-目标机模式 :开发在宿主机 (Host) (PC/工作站)上进行,生成二进制代码后,下载到目标机 (Target) 运行。

固化:代码通常需要固化在目标机的存储器(ROM/Flash)中。

专用性:需要专用的开发工具、目标系统和测试设备。

软硬件协同:强调软/硬协同工作的效率和稳定性。

严格约束 :对实时性、安全性、可靠性 要求更高,且需充分考虑代码规模(资源受限)。

10.2、交叉开发环境与调试

10.2.1、交叉开发工具链

交叉编译器 (Cross Compiler):在宿主机上生成目标机可执行代码。

交叉链接器:链接目标代码。

调试器/代理:用于远程调试。

10.2.2、调试接口 (JTAG)

全称:Joint Test Action Group (联合测试工作组)。

标准:IEEE 1149.1 标准测试协议。

作用 :主要用于芯片内部测试调试(设置断点、查看寄存器)。

10.2.3、目标代码格式

COFF, ELF。

10.3、低功耗设计

软硬件协同设计:软件设计要匹配硬件特性(如:关闭闲置外设的电源)。

编译优化:采用低功耗优化的编译技术(如:指令重排减少总线翻转)。

算法优化:减少系统持续运行时间(让系统尽快处理完,尽快休眠)。

用"中断"代替"查询":查询(Polling)会让CPU一直空转耗电;中断(Interrupt)允许CPU在无事时休眠。

电源有效管理:动态电源管理 (DPM)。

10.4、为什么要"交叉开发"?

因为目标机资源不够。嵌入式设备(如智能手环)的 CPU 和内存无法运行庞大的编译器(GCC/Visual Studio)。

异构性 :宿主机通常是 x86 架构(Intel/AMD),而目标机通常是 ARM/MIPS/RISC-V 架构。所以在 PC 上编译出来的 .exe 是不能在单片机上跑的,必须用交叉编译器 (如 arm-none-eabi-gcc)翻译成目标机能懂的机器码。

10.5、JTAG 的双重身份

调试 (Debug):开发阶段,用来单步执行、看变量。

边界扫描 (Boundary Scan):生产阶段,在不焊下芯片的情况下,通过扫描链测试芯片引脚有没有虚焊。

安全警示 :在最终量产的高安防产品中,必须禁用 JTAG 接口,防止黑客通过它读取固件或篡改内存。

10.6、"中断 vs 查询"的功耗本质

1)查询 (Polling)

代码逻辑while(1) { if(event) handle(); }

功耗 :CPU 占用率 100%,一直全速跑,功耗极大

2)中断 (Interrupt)

代码逻辑 :CPU 进入 Sleep/Idle 模式 →\rightarrow→ 硬件产生信号 →\rightarrow→ 唤醒 CPU 处理 →\rightarrow→ 处理完继续睡。

功耗 :CPU 大部分时间在睡觉,功耗极低

10.7、交叉开发工作流

目标机 (Target: Embedded Device)
连接通道
宿主机 (Host: PC/Workstation)
加载符号表
下载/固化
调试指令
IEEE 1149.1
源代码 C/C++
交叉编译/链接器
目标二进制代码

ELF/COFF
调试器 Host端
以太网/串口/USB

(下载代码)
JTAG 仿真器

(控制/调试)
存储器 ROM/Flash
目标操作系统
调试代理 Agent

10.8、低功耗软件设计策略金字塔

软件优化策略
低功耗设计目标: 延长电池寿命
(1) 算法级: 减少运行时间
(2) 机制级: 中断代替查询
(3) 编译级: 低功耗指令优化
(4) 架构级: 软硬协同 (关外设)
核心技巧: 让CPU多睡觉

相关推荐
fo安方15 小时前
软考~系统规划与管理师考试——真题篇——章节——第10章 云原生系统规划——解析版
云原生·项目管理·系统·软考·pmp·规划
不凉帅1 天前
NO.4信息安全技术基础知识
网络安全·信息安全·软考·高项·加密
数据与后端架构提升之路2 天前
论多源数据集成技术在半导体良率分析平台中的应用
论文·软考·多源数据
数据与后端架构提升之路2 天前
论微服务架构在电商交易系统中的设计与应用
微服务·架构·软考
BOB-wangbaohai3 天前
软考-系统架构师-信息安全架构
信息安全·软考·系统架构师·安全架构
fo安方3 天前
软考~系统规划与管理师考试—知识篇—第二版—17.信息系统项目管理
项目管理·软考·pmp
数据与后端架构提升之路3 天前
系统架构设计师常见高频考点总结之操作嵌入式系统
嵌入式系统
fo安方4 天前
软考~系统规划与管理师考试—知识篇—第二版—18.智慧城市发展规划
人工智能·项目管理·智慧城市·软考·pmp
明洞日记4 天前
【软考每日一练013】解析嵌入式网络数据库(NDB)架构
数据库·5g·嵌入式·软考·嵌入式实时数据库
BOB-wangbaohai4 天前
软考-系统架构师-信息安全技术基础知识(三)
网络安全·软考·系统架构设计师