| 阶段 | 硬件 | 软件 | 主要特点 |
|---|---|---|---|
| ① 无操作系统阶段 | 单片微型计算机 SCM | 单片机、汇编语言 | 结构和功能相对单一、处理效率低、存储容量十分有限、几乎没有用户接口 |
| ② 简单操作系统阶段 | 嵌入式微处理器为基础、微控制器 MCU、外围电路、接口电路 | 简单操作系统为核心 | 微处理器/微控制器种类繁多、通用性比较弱;系统开销小、处理效率高、智能化控制能力突出、兼容性好 |
| ③ 实时操作系统阶段 | 片上系统 SoC | 嵌入式操作系统 | 操作系统内核小、处理效率高 |
| ④ 面向 Internet 阶段 | 以 Internet 为基础的嵌入式系统、微型传感器、智能服务设备 | 嵌入式操作系统、应用域网络环境 | 微处理器集成网络接口;低能耗、高速度、高集成、高可信、适应环境广 |
传统嵌入式系统硬件组成:微处理器(MCU/MPU)、存储器(RAM/ROM)、总线(内总线/外总线)、定时器/计数器 Timer、看门狗 WatchDog、I/O 接口(串口/网络/USB/JTAG)、外部设备(UART/LED)。
嵌入式处理器 5 类(选择高频):
| 类型 | 特点 |
|---|---|
| MPU 微处理器 | 体积小、重量轻、成本低、可靠性高,但技术保密性差 |
| MCU 微控制器 | 单片化,体积小、功耗低、成本低、可靠性更高 |
| DSP 信号处理器 | 系统结构和指令特殊设计,通常采用哈佛结构,编译效率高、指令执行速度高 |
| GPU 图形处理器 | 专注浮点运算,弥补 CPU 运算速度不足 |
| SoC 片上系统 | 采用片内再编程技术,硬件功能可像软件一样通过编程配置,实时灵活修改开发 |
存储器:RAM(断电数据全部丢失)——DRAM、SRAM、SDRAM、DDR SDRAM 等细分;ROM(正常工作时永久保存不可修改)——MASK ROM、PROM、EPROM(可擦可编程)、EEPROM(电可擦可编程)、Flash Memory(快闪存储器)。
总线:拓扑结构 5 种(星型、树状、环型、总线型、交叉开关型)。按传输信息种类分:数据总线(传输待处理/待存储数据)、地址总线(传输 RAM 中数据地址)、控制总线(传输控制单元信号到周边设备)。按连接部件分:片内总线、系统总线(板级)、局部总线、通信总线(外设总线)。
看门狗:提供系统恢复能力,在系统发生软件问题和程序跑飞时重启系统。原理:计数器自动计数,程序定期将其重置;若系统卡死或程序跑飞,计数器溢出进入中断处理,在设定时间间隔内保留状态后复位重启。
嵌入式操作系统 EOS 特点:可剪裁性、可移植性、强实时性、强紧凑性、高质量代码、强定制性、标准接口、强稳定性、弱交互性、强确定性、操作简捷方便、较强硬件适应性、可固化性。
操作系统内核架构两种:
| 架构 | 特点 |
|---|---|
| 宏内核 | 用户服务和内核服务在同一空间实现,代码耦合度非常高,内核功能组件代码可互相调用 |
| 微内核 | 用户服务和内核服务在不同空间实现,系统结构清晰、代码量少 |
任务管理:任务是嵌入式 OS 调度的最小单位(类似进程)。三种工作状态:执行状态(获得处理机运行)、就绪状态(已获得处理机以外资源,待获得处理机即可执行)、阻塞状态(因等待事件发生无法执行而放弃处理机)。大都支持优先级抢占调度和时间片轮转调度。
实时调度算法(重点):
| 类别 | 算法 | 要点 |
|---|---|---|
| 调度方法分类 | 离线调度 | 运行前确定调度信息(时间驱动),确定性、缺乏灵活性 |
| 在线调度 | 运行中动态获得调度信息(优先级驱动),灵活 | |
| 抢占调度 | 运行任务可能被打断,更复杂、更耗资源 | |
| 非抢占调度 | 运行任务不被打断 | |
| 静态调度 | 优先级设计时确定不变,简单、缺乏灵活性 | |
| 动态调度 | 优先级运行中确定、不断变化,灵活、耗资源 | |
| 强实时调度算法 | EDF 最早截止时间优先 | 截止时间越早,优先级越高 |
| LLF 最低松弛度优先 | 紧急程度(松弛度)越高,优先级越高 | |
| RMS 单调速率 | 任务周期越短,优先级越高;被认为是最优的 |
存储管理:解决多用户使用主存问题——分区、分页、分段、段页式及虚拟存储管理。任务间通信:提供多种类型的数据传输、任务同步/异步操作手段。
嵌入式数据库:特点——嵌入式、实时性、移动性、伸缩性。按存储位置分三类:① 基于内存的数据库(内存存储,实时事务最佳技术,典型 eXtremeDB);② 基于文件的数据库(磁盘文件存储,安全性低,典型 SQLite:开源内嵌式关系库、集成在程序中无须配置、服务器客户端同进程、简化管理减少网络开销);③ 基于网络的数据库(远程服务器存储,无须解析 SQL、支持更多 SQL 操作、客户端小、便于代码重用)。与数据库管理系统的区别:只允许应用程序访问和控制、由应用程序负责访问控制、与应用程序一同发布。
嵌入式中间件:处于嵌入式应用和操作系统之间,对应用屏蔽底层操作系统的异构性;常见功能:网络通信、内存管理、数据处理。典型:消息中间件、分布式对象中间件。
嵌入式软件开发环境特点:集成开发环境、交叉开发(宿主机-目标机模式,代码在宿主机编译、到目标机运行)、开放式架构、可扩展性、可操作性、可移植性、可配置性、实时性、可维护性、用户界面友好。
| 方法 | 要点 |
|---|---|
| ABSD 基于架构的软件设计 | 详见第 9 小时(六子过程:需求→设计→文档化→复审→实现→演化) |
| ADD 属性驱动设计 | 把一组质量属性场景(可用性、性能、安全性等)作为输入,利用对质量属性实现与架构设计之间关系的了解(体系结构风格、质量战术)进行设计;在满足质量属性基础上建立模块分解过程。7 个阶段:评审 → 选择驱动因子 → 选择系统元素 → 选择设计概念 → 实体化元素和定义接口 → 草拟视图 → 分析评价 |
| DARTS 实时系统设计 | 基于传统结构化分析方法,扩展了行为建模部分。5 个部分:开发系统规范 → 划分为多个并发任务 → 定义任务间接口 → 设计每个任务 → 设计过程成果。优势:强调分解为并发任务并提供确认标准;提供任务间接口定义指南;强调任务架构图重要性;提供实时结构化分析到设计的转换。不足:用信息隐藏技术封装数据存储,封装性不好;若分析阶段完成得不好,任务结构化更困难 |
鸿蒙采用分布式设计理念,实现 4 种分布式能力:分布式软总线、分布式设备系统虚拟化、分布式数据管理、分布式任务调度。整体是层次式架构,由内而外四层:
| 层 | 职责 |
|---|---|
| ① 内核层 | 采用微内核设计;内核抽象层 KAL 屏蔽多内核差异,对上层提供基础内核能力(进程/线程管理、内存管理、文件系统、网络管理、外设管理);驱动子系统提供统一外设访问能力、驱动开发框架、驱动管理框架 |
| ② 系统服务层 | 核心能力集合,为应用程序提供服务 |
| ③ 应用框架层 | 为应用服务提供多语言用户程序框架、Ability 框架,以及各种硬件服务对外开放的 API |
| ④ 应用层 | 包括系统应用和第三方非系统应用,实现特定业务功能,支持跨设备调度与分发 |
鸿蒙 4 个技术特性(必背):① 分布式架构用于终端操作系统,实现跨终端无缝协同体验;② 确定时延引擎和高性能进程间通信技术,实现系统流畅;③ 基于微内核架构,重塑终端设备的可信安全;④ 统一集成开发环境,一次开发、多端部署,实现跨终端生态共享。
GENESYS 是面向安全攸关系统的跨领域通用嵌入式架构平台。采用消息交换方式实现软硬件构件抽象级别的提升,构件在接口规范基础上可被重用而无须知道内部实现。设计故障/错误隔离框架:构件因瞬态故障失效后可选择性重启、用构件复制屏蔽瞬态和永久错误;可减少构件功率需求或在不需时(功率门)完全关闭构件。解决三大挑战:复杂性管理、系统健壮性、能量有效使用。
三组服务:① 领域无关服务(核心服务如全局时间、消息传输;选择服务如信息安全、外部存储器管理、Internet 网关);② 领域专用服务(领域特有服务子集 + 待开发领域特征的特定服务,如 CAN 总线);③ 应用专用服务(包含中间件)。
主要特征及优势 6 条(必背):
| 特征 | 体现 |
|---|---|
| ① 精确的构件定位 | 简单化、跨领域重用、规模的经济性、健壮性、可降低系统集成工作量 |
| ② 开放性 | 可集成性、可升级性、可扩展性、遗产系统集成、降低成本 |
| ③ 三级集成 | 芯片级集成、设备级集成、系统级集成 |
| ④ 分层的服务 | 可重用性、领域定位、工效经济性 |
| ⑤ 确定的核心 | 及时性、降低复杂性、可测试性、认证、故障掩蔽 |
| ⑥ 标准的互联集成 | 对远程访问的保护、降低集成工作难度、常规人机交互、安全性 |
物联网操作系统:通常包括芯片层、终端层、边缘层、云端层;使用开源物联网 OS(FreeRTOS)、公共服务组件(网络协议、外设支持、POSIX)、定制服务组件(MQTT 消息队列遥测传输、HTTPS、PKCS #11、安全套件)。主要特征:内核实时性、内核尺寸伸缩性、架构可扩展性、高可靠性、低功耗。