系统架构师考试学习笔记第三篇——架构设计高级知识(19)嵌入式系统架构设计理论与实践

本章考点:

第19课时主要学习嵌入式系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分)。在历年考试中,案例题对该部分内容都有固定考查,综合知识选择题目中有固定分值的考查。本课时内容侧重于对知识点的记忆、理解和应用,按照以往的出题规律,嵌入式系统架构设计基础知识点基本来源于教材内。本课时知识架构如图19.1所示。

一、嵌入式系统发展历程

嵌入式系统发展历程见表19.1。

发展历程 硬件 软件 主要特点
单片微型计算机(SCM) 单片机 无操作系统 汇编语言 结构和功能相对单一 处理效率低 存储容量十分有限 几乎没有用户接口
微控制器(MCU) 单片机 嵌入式微处理器 外围电路 接口电路 以简单操作系统为 核心 微处理器、微控制器种类繁多 通用性比较弱 系统开销小,处理效率高 智能化控制能力突出
片上系统(SoC) 嵌入式微处理器 嵌入式操作系统 嵌入式系统兼容性好 操作系统内核小 处理效率高
以Intemet 为基础的嵌入式系统 嵌入式微处理器 嵌入式操作系统 微处理器集成网络接口 应用域网络环境中
智能化、云技术推动下的嵌入式系统 微型传感器 智能服务设备 低能耗,高速度,高集成,高可信,适应环境广
[表19.1 嵌入式系统发展历程表]

二、嵌人式系统硬件

1.传统嵌入式系统

传统嵌入式系统主要硬件包括:

(1)微处理器:微控制器(MCU),微处理器(MPU)。

(2)存储器:RAM、ROM。

(3)总线:内总线,外总线。

(4)定时器/计数器(Timer)。

(5)看门狗(WatchDog)。

(6)I/O接口:串口,网络,USB,JTAG。

(7)外部设备:UART,LED。

2.嵌入式处理器的分类

嵌入式处理器可以分为:

(1)微处理器(Micro Processor Unit,MPU).特点是体积小,重量轻,成本低,可靠性高,但技术保密性差。

(2)微控制器(Micro Control Unit,MCU).特点是单片化,体积小,功耗低,成本低,可靠性更高。

(3)信号处理器(Digital Signal.Processor,DSP).特点是系统结构和指令采用特殊设计,通常采用哈佛结构,编译效率高,指令执行速度也高。

(4)图形处理器(Graphics Processing Unit,GPU).专注于浮点运算,弥补了CPU-运算速度不足。

(5)片上系统(System on Chip,SoC).采用了片内再编程技术,可使片上系统内硬件的功能像软件一样通过编程来配置,从而可以实时地进行灵活而方便的修改和开发。

3.存储器

存储器就是一种存储程序和数据用的时序逻辑电路。存储器具有如下分类:

(1)随机存取存储器(Random Access Memory,RAM).它的特点是一旦系统断电,存放在里面的所有数据和程序都会自动清空掉,并且再也无法恢复。根据组成元件的不同,RAM内存又可分为以下18种:①动态随机存取存储器(DRAM);②静态随机存取存储器(SRAM);③视频内存(VRAM);④快速页切换模式动态随机存取存储器(FPM DRAM);⑤延伸数据输出动态随机存取存储器(EDO DRAM);⑥爆发式延伸数据输出动态随机存取存储器(BEDO DRAM);⑦多插槽动态随机存取存储器(MDRAM);⑧窗口随机存取存储器(WRAM);⑨高频动态随机存取存储器(RDRAM);⑩同步动态随机存取存储器(SDRAM);⑪同步图形随机存取存储器(SGRAM);⑫同步爆发式静态随机存取存储器(SB SRAM);⑬管线爆发式静态随机存取存储器(PB SRAM);⑭二倍速率同步动态随机存取存储器(DDR SDRAM);1同步链环动态随机存取存储器(SLDRAM);⑯同步缓存动态随机存取存储器(CDRAM);⑰第二代同步双倍速率动态随机存取存储器(DDRII);⑱直接内存总线动态随机存取存储器(DRDRAM)。

(2)只读存储器(Read Only Memory,ROM).ROM在元件正常工作的情况下,其中的代码数据将永久保存,并且不能够进行修改。ROM一般应用于PC系统程序码和主机板BIOS上。ROM可以分为以下5种:①掩模型只读存储器(MASK ROM);②可编程只读存储器(PROM);③可擦可编程只读存储器(EPROM);④电可擦可编程只读存储器(EEPROM);⑤快闪存储器(Flash Memory)。

4.总线

总线是功能部件间传输信息的公共通信干线。总线的拓扑结构有星型、树状、环型、总线型和交叉开关型等5种。总线的类型可以按照计算机所传输的信息种类、按连接部件进行划分。

(1)按照计算机所传输的信息种类可以分为:

数据总线:用于处理器与RAM间传输待处理和待存储的数据。

地址总线:用于传输RAM中存储数据的地址。

控制总线:用于传输处理器控制单元信号到周边设备。

(2)按连接部件分类。

片内总线:内部总线,连接ALU、寄存器、指令部件等芯片内部元件。

系统总线:内部总线,又称板级总线,连接微控制器/处理器,主存,I/O接口。

局部总线:内部总线,连接少量组件用于交换数据。

通信总线:外部总线,又称外设总线,连接外部设备或外部系统。

5.看门狗

看门狗为嵌入式系统提供必需的系统恢复能力,在系统发生软件问题和程序跑飞时重新启动系统。它的基本原理是由计数器自动计数,程序定期将其重置,如果系统卡死或程序跑飞,计数器溢出,进入中断处理,在设定时间间隔内,系统保留状态后复位重启。

三、嵌人式系统软件

1.嵌入式操作系统的定义及特点

嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。与通用的操作系统相比,嵌入式操作系统具有:可剪裁性,可移植性,强实时性,强紧凑性,高质量代码,强定制性,标准接口,强稳定性,弱交互性,强确定性,操作简捷、方便,较强的硬件适应性,可固化性的特点。

2.嵌入式系统的架构

嵌入式操作系统分为面向控制、通信领域以及面向消费电子产品两类。嵌入式操作系统的架构如图19.2所示。

3.嵌入式操作系统的基本功能

(1)操作系统内核架构包括:

1)宏内核。用于管理用户程序和硬件间的系统资源,在宏内核中用户服务和内核服务在同一空间中实现,代码耦合度非常高,内核的功能组件代码可以互相调用。

2)微内核。微内核管理所有系统资源,在微内核中用户服务和内核服务在不同空间中实现,系统结构清晰,代码量少。

(2)任务管理。任务是嵌入式操作系统调度最小单位,类似于计算机操作系统中进程的概念。任务有3种工作状态:

1)执行状态:任务获得处理机,程序在处理机中执行。

2)就绪状态:任务已获得处理机以外资源,待获得处理机即可执行。

3)阻塞状态:执行状态任务因等待事件发生无法执行而放弃处理机。

嵌入式操作系统大都支持优先级抢占调度算法和时间片轮转调度算法。在实时系统的任务调度中,存在大量的实时调度方法,大致可以分为:

1)离线调度算法:系统运行前确定调度信息,如时间驱动,确定性,缺乏灵活性。

2)在线调度算法:系统运行中动态获得调度信息,如优先级驱动,灵活性较大。

3)抢占调度算法:运行任务可能被打断,更复杂,更耗资源。

4)非抢占调度算法:运行任务不被打断。

5)静态调度算法:任务优先级在设计时确定,不变化,简单,缺乏灵活性。

6)动态调度算法:任务优先级在运行中确定,不断变化,灵活,耗资源。

实时调度算法中还有强实时调度算法,具体可以分为;

1)最早截止时间优先(Earliest Deadline First,EDF)调度算法:根据任务截止时间确定优先级,截止时间越早,其优先级越高。

2)最低松弛度优先(Least Laxity First,LLF)调度算法:根据任务紧急或松弛程度确定优先级,紧急程度越高,优先级越高。

3)单调速率(Rate Monotonic Scheduling,RMS)调度算法:根据任务周期确定有限期,周期越短,优先级越高。这种算法被认为是最优的。

(3)存储管理。存储管理的主要目的是解决多个用户使用主存的问题,存储管理方法主要包括分区、分页、分段、段页式存储管理以及虚拟存储管理等。

(4)任务间通信。任务间通信管理也是嵌入式操作系统的关键功能之一。它主要为操作系统的应用程序提供多种类型的数据传输、任务同步/异步操作等手段。

4.嵌入式数据库

嵌入式数据库具有嵌入式、实时性、移动性、伸缩性的特点。嵌入式数据库可以按照如下方式分类:

(1)按嵌入对象分为:软件嵌入数据库、设备嵌入数据库、内存数据库。

(2)按系统结构分为:嵌入数据库、移动数据库、小型C/S结构数据库。

(3)按存储位置分为:①基于内存的数据库系统:采用内存存储,属于实时事务最佳技术;②基于文件的数据库:以文件方式磁盘存储,安全性低;③基于网络的数据库:远程服务器存储,无须解析SQL,支持更多SQL操作,客户端小,便于代码重用。

5.嵌入式数据库架构

数据库管理系统与嵌入式数据库对比见表19.2.

对比页 数据库管理系统 嵌入式数据库
操作用户 允许非开发人员操作 只允许应用程序访问和控制
访问控制 数据与程序分离,便于访问控制 应用程序负责访问和控制
发布部署 独立安装、部署和管理 与应用程序一同发布
[表19.2 数据库管理系统与嵌入式数据库使用对比]

(1)基于内存的数据库系统。典型产品是 eXtremeDB 嵌入式数据库,它具有:最小化资源消耗、保持极小堆空间、维持极小代码体积、消除额外代码层、提供动态数据结构本地支持等特点。

(2)基于文件的嵌入式数据库系统架构。典型产品是SQLite,它的特点是:开源的内嵌式关系型数据库、集成在程序中,无须配置管理,服务器客户端同进程,简化管理,减少网络开销、对数据类型有独特处理。

(3)基于网络的嵌入式数据库系统架构。C/S架构的数据库、B/S架构的数据库以及云数据库等都属于这种类型。

6.嵌入式数据库主要功能

除了具有与通用数据库相似的功能外,嵌入式数据库还具有的功能包括:足够高效的数据存储机制、数据安全控制(锁机制)、实时事务管理机制、数据库恢复机制(历史数据存储)。

7.嵌入式中间件

嵌入式中间件是在嵌入式系统中处于嵌入式应用和操作系统之间层次的中间软件,其主要作用是对嵌入式应用屏蔽底层操作系统的异构性,常见功能有网络通信、内存管理和数据处理等。典型的嵌入式中间件有消息中间件、分布式对象中间件。

8.嵌入式系统软件开发环境

嵌入式系统软件开发环境的特点是:集成开发环境,交叉开发,开放式架构,可扩展性,可操作性,可移植性,可配置性,实时性,可维护性,用户界面友好。

四、嵌入式系统软件架构设计方法

(1)基于架构的软件设计开发方法(Architecture-Based Software Design,ABSD).这种方法的详细内容在第9课时中,这里不再赘述。

(2)属性驱动的软件设计方法(Attribute-Driven Design,ADD).ADD是把一组质量属性(可用性、性能、安全性等)场景作为输入,利用对质量属性实现与架构设计之间的关系的了解(如体系结构风格、质量战术等)对软件架构进行设计的一种方法。这种方法在满足质量属性的基础上建立模块分解过程,通过输入质量场景,利用质量属性战术实现架构设计。采用ADD方法进行软件开发时,需要经历评审、选择驱动因子、选择系统元素、选择设计概念、实体化元素和定义接口、草拟视图和分析评价等7个阶段。

(3)实时系统设计方法(Design Approach for Real-Time System,DARTS).DARTS基于传统结构化分析方法,扩展了行为建模部分。DARTS方法分为5个部分:用实时结构化分析方法开发系统规范、将系统划分为多个并发任务、定义任务间接口、设计每个任务、设计过程的成果。

DARTS方法的优势如下:

1)强调将系统分解为并发任务,并提供确认任务的标准。

2)提供定义任务间接口的指南。

3)强调用任务架构图的重要性。

4)提供从实时结构化分析规格到实时结构化设计的转换。

DARTS方法的不足如下:

1)DARTS使用信息隐藏技术封装数据存储,封装性不好。

2)如果实时结构化分析阶段完成得不好,那么任务的结构化工作就会更加困难。

五、嵌入式系统软件架构实践

1.鸿蒙操作系统

鸿蒙操作系统架构采用了分布式设计理念,实现了分布式软总线、分布式设备系统的虚拟化、分布式数据管理和分布式任务调度4种分布式能力。

鸿蒙操作系统的架构是一种层次式架构,由内核层、系统服务层、应用框架层、应用层组成,如图19.3所示。

(1)内核层。内核层采用微内核设计,内核层中的内核抽象层屏蔽多内核差异,对上层提供基础内核能力,如进程/线程管理、内存管理、文件系统、网络管理、外设管理等。驱动子系统则提供统一外设访问能力,驱动开发框架,驱动管理框架。

(2)系统服务层。属于核心能力集合的部分,为应用程序提供服务。

(3)应用框架层。为应用服务提供多语言用户程序框架、能力框架,以及各种硬件服务对外开放的API.

(4)应用层。包括系统应用和第三方非系统应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

鸿蒙垛作系统架构具有4个技术特性:

(1)分布式架构用于终端操作系统,实现跨终端无缝协同体验。

(2)确定时延引擎和高性能进程间通信技术,实现系统的流畅。

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

(4)统一集成开发环境,一次开发,多端部署,实现跨终端生态共享。

2.面向安全攸关系统的跨领域系统架构(Generic Embedded System,GENESYS)

GENESYS是一种跨领域的通用嵌入式架构平台。GENESYS采用消息交换方式实现软硬件构件的抽象级别的提升,使得构件在接口规范基础上可以被重用,而不需要知道构件的内部实现。GENESYS 设计了故障或错误的隔离框架,构件在瞬态故障引起失效后,可选择性地重启和用构件复制来屏蔽瞬态和永久错误。同时GENESYS可以减少构件的功率需求或者在不需要时(功率门)完全关闭构件。因此GENESYS的出现解决了复杂性管理、系统健壮性、能量有效使用3个方面的挑战。

GENESYS架构主要提供了3组服务,即领域无关服务、领域专用服务和应用专用服务(包含中间件),如图19.4所示。

(1)领域无关服务。包括核心服务和选择服务,如嵌入式系统中的全局时间和消息传输等服务为核心服务。信息安全服务、外部存储器管理器或者Internet 网关服务等属于选择服务。

(2)领域专用服务是由领域特有的服务子集加上待开发领域特征的特定服务组合。GENESYS架构从硬件、软件的观点遵循了面向构件的风格,分离了计算与通信,将计算构件和通信设施作为独立构件进行设计。GENESYS架构的主要特征及优势包括:

1)精确的构件定位。具体体现为简单化、跨领域重用、规模的经济型、健壮性、可降低系统集成工作量这5个特征。

2)开放性。体现为具有可集成性、可升级性、可扩展性、遗产系统集成、降低成本这5个特征。

3)三级集成。具有芯片级集成、设备级集成、系统级集成的集成。

4)分层的服务。体现具有可重用性、领域定位、工效经济型的特性。

5)确定的核心。体现在具有及时性、降低复杂性、可测试性、认证、故障掩蔽的特征。

6)标准的互联集成。体现在对远程访问的保护、降低集成工作难度、常规人机交互、具有安全性4个方面。

3.物联网操作系统软件架构

物联网操作系统至今没有一个明确的定义。物联网操作系统通常包括芯片层、终端层、边缘层、云端层等多个层面内容。物联网操作系统使用的软件以及技术主要有:开源物联网操作系统(FreeRTOS)、公共服务组件(网络协议、外设支持、可移植操作系统接口 POSIX 等)定制性服务组件有:消息队列遥测传输协议(MQTT),安全超文本传输协议(HTTPS),加密消息标准PKCS#11支持,安全套件等。物联网操作系统主要特征有:内核实时性、内核尺寸伸缩性、架构可扩展性、高可靠性、低功耗。

六、课后练习

1.以下关于鸿蒙操作系统的叙述中,不正确的是()。

A.鸿蒙操作系统整体架构采用分层的层次化设计,从下向上依次为:内核层、系统服务层、框架层和应用层

B.鸿蒙操作系统内核层采用宏内核设计,拥有更强的安全特性和低时延特点

C.鸿蒙操作系统架构采用了分布式设计理念,实现了分布式软总线、分布式设备系统的虚拟化、分布式数据管理和分布式任务调度等四种分布式能力

D.架构的系统安全性主要体现在搭载HarmonyOS的分布式终端上,可以保证"正确的人,通过正确的设备,正确地使用数据"

2.GENESYS架构的主要特征及优势是什么?

3.鸿蒙操作系统架构具有哪几个技术特性?

4.嵌入式系统软件架构设计方法中的实时系统设计方法(DARTS)具有哪些优势和不足?

答案解析:

1、解析:鸿蒙操作系统采用微内核架构,整体采用层次式架构,采用分布式理念且实现了分布式安全框架。

答案:B

2、答案:GENESYS架构的主要特征及优势包括:

(1)精确的构件定位。具体体现为简单化、跨领域重用、规模的经济型、健壮性、可降低系统集成工作量这5个特征。

(2)开放性。体现为具有可集成性、可升级性、可扩展性、遗产系统集成、降低成本这5个特征。

(3)三级集成。具有芯片级集成、设备级集成、系统级集成。

(4)分层的服务。体现具有可重用性、领域定位、工效经济型的特性。

(5)确定的核心。体现在具有及时性、降低复杂性、可测试性、认证、故障掩蔽的特征。

(6)标准的互联集成。体现在对远程访问的保护、降低集成工作难度、常规人机交互、具有安全性4个方面。

3、答案:鸿蒙操作系统架构具有4个技术特性:

(1)分布式架构用于终端操作系统,实现跨终端无缝协同体验。

(2)确定时延引擎和高性能进程间通信技术,实现系统的流畅。

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

(4)统一集成开发环境,一次开发,多端部署,实现跨终端生态共享。

4、答案:DARTS方法的优势:

(1)强调将系统分解为并发任务,并提供确认任务的标准。

(2)提供定义任务间接口的指南。

(3)强调用任务架构图的重要性。

(4)提供从实时结构化分析规格到实时结构化设计的转换。

DARTS方法的不足:

(1)DARTS使用信息隐藏技术封装数据存储,封装性不好。

(2)如果实时结构化分析阶段完成得不好,那么任务的结构化工作就会更加困难。

相关推荐
Code哈哈笑13 分钟前
【Java 学习】深度剖析Java多态:从向上转型到向下转型,解锁动态绑定的奥秘,让代码更优雅灵活
java·开发语言·学习
QQ同步助手1 小时前
如何正确使用人工智能:开启智慧学习与创新之旅
人工智能·学习·百度
流浪的小新1 小时前
【AI】人工智能、LLM学习资源汇总
人工智能·学习
A懿轩A2 小时前
C/C++ 数据结构与算法【数组】 数组详细解析【日常学习,考研必备】带图+详细代码
c语言·数据结构·c++·学习·考研·算法·数组
云边有个稻草人2 小时前
【优选算法】—复写零(双指针算法)
笔记·算法·双指针算法
南宫生10 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
sanguine__10 小时前
Web APIs学习 (操作DOM BOM)
学习
冷眼看人间恩怨10 小时前
【Qt笔记】QDockWidget控件详解
c++·笔记·qt·qdockwidget
数据的世界0112 小时前
.NET开发人员学习书籍推荐
学习·.net
四口鲸鱼爱吃盐12 小时前
CVPR2024 | 通过集成渐近正态分布学习实现强可迁移对抗攻击
学习