软考-系统架构设计师-第十九章 嵌入式系统架构设计理论与实践

article/2025/7/19 8:50:30

嵌入式系统架构设计理论与实践

      • 19.1 嵌入式系统发展历程
      • 19.2 嵌入式系统硬件
      • 19.3 嵌入式系统软件
      • 19.4 嵌入式系统软件架构设计方法
      • 19.5 嵌入式系统软件架构实践

在这里插入图片描述

19.1 嵌入式系统发展历程

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

19.2 嵌入式系统硬件

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);⑮同步链环动态随机存取存储器(SLDRAM);⑯同步缓存动态随机存取存储器(CDRAM);⑰第二代同步双倍速率动态随机存取存储器(DDRII);
⑱直接内存总线动态随机存取存储器(DRDRAM)。

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

4.总线
总线是功能部件间传输信息的公共通信干线。总线的拓扑结构有星型、树状、环型、总线型和交叉开关型等 5 种。总线的类型可以按照计算机所传输的信息种类、
按连接部件进行划分。
(1)按照计算机所传输的信息种类可以分为:
数据总线:用于处理器与 RAM 间传输待处理和待存储的数据。
地址总线:用于传输 RAM 中存储数据的地址。
控制总线:用于传输处理器控制单元信号到周边设备。
(2)按连接部件分类。
片内总线:内部总线,连接 ALU、寄存器、指令部件等芯片内部元件。
系统总线:内部总线,又称板级总线,连接微控制器/处理器,主存,I/O 接口。
局部总线:内部总线,连接少量组件用于交换数据。
通信总线:外部总线,又称外设总线,连接外部设备或外部系统。

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

19.3 嵌入式系统软件

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

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.嵌入式数据库架构
数据库管理系统与嵌入式数据库对比见表

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

(1)基于内存的数据库系统。典型产品是 eXtremeDB 嵌入式数据库,它具有:最小化资源消耗、保持极小堆空间、维持极小代码体积、消除额外代码层、提供动态
数据结构本地支持等特点。
(2)基于文件的嵌入式数据库系统架构。典型产品是 SQLite,它的特点是:开源的内嵌式关系型数据库、集成在程序中,无须配置管理,服务器客户端同进程,
简化管理,减少网络开销、对数据类型有独特处理。
(3)基于网络的嵌入式数据库系统架构。C/S 架构的数据库、B/S 架构的数据库以及云数据库等都属于这种类型。

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

7.嵌入式中间件

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

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

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

(1)基于架构的软件设计开发方法(Architecture -Based Software Design,ABSD)见第九章

(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)如果实时结构化分析阶段完成得不好,那么任务的结构化工作就会更加困难。

19.5 嵌入式系统软件架构实践

1.鸿蒙操作系统
鸿蒙操作系统架构采用了分布式设计理念,实现了分布式软总线、分布式设备系统的虚拟化、 分布式数据管理和分布式任务调度 4 种分布式能力。
鸿蒙操作系统的架构是一种层次式架构,由内核层、系统服务层、应用框架层、应用层组成,
在这里插入图片描述

(1)内核层。内核层采用微内核设计,内核层中的内核抽象层屏蔽多内核差异,对上层提供 基础内核能力,如进程/线程管理、内存管理、文件系统、网络管理、
外设管理等。驱动子系统则提供统一外设访问能力,驱动开发框架,驱动管理框架。
(2)系统服务层。属于核心能力集合的部分,为应用程序提供服务。
(3)应用框架层。为应用服务提供多语言用户程序框架、能力框架,以及各种硬件服务对外 开放的 API。
(4)应用层。包括系统应用和第三方非系统应用,能够实现特定的业务功能,支持跨设备调度与分发,为用户提供一致、高效的应用体验。

鸿蒙操作系统架构具有 4 个技术特性:
(1)分布式架构用于终端操作系统,实现跨终端无缝协同体验。
(2)确定时延引擎和高性能进程间通信技术,实现系统的流畅。
(3)基于微内核架构,重塑终端设备的可信安全。
(4)统一集成开发环境,一次开发,多端部署,实现跨终端生态共享。


http://www.hkcw.cn/article/CAGQZjryHp.shtml

相关文章

DeepSeek-R1 重磅升级,智能体验再进化!

DeepSeek AI 爱好者们注意啦!DeepSeek R1 模型完成小版本升级,新版本 DeepSeek-R1-0528 震撼登场。想体验超强思考与推理能力?官方网站、APP、小程序,一键开启 “深度思考” 功能,新版等你来探索!API 也同步…

预处理深入详解:预定义符号、宏、命名约定、命令行定义、条件编译、头文件的包含

目录 一、预定义符号 二、#define定义常量 三、宏 (一)#define定义宏 (二)带有副作用的宏参数 (三)宏替换的规则 (四)宏和函数的对比 四、#和## (一&#xff09…

深度解析:跨学科论文 +“概念迁移表” 模板写作全流程

跨学科论文速通!融合“概念迁移表”的写作导航模板 你的论文是否曾被导师皱眉评价为“四不像”?不同学科的术语在稿纸上打架,核心逻辑若隐若现? 别让心血沦为学术混搭的牺牲品。一张精心设计的 概念迁移表,能将两个看…

Linux安装及管理程序

1 Linux应用程序基础 1.1 Linux 命令与应用程序的关系 在 Linux 操作系统中,一直以来命令和应用程序并没有特别明确的区别,从长期使用习惯来看,可以通过以下描述来对两者进行区别: 应用程序命令的执行文件大多比较小&#xff0…

历年南京大学计算机保研上机真题

2025南京大学计算机保研上机真题 2024南京大学计算机保研上机真题 2023南京大学计算机保研上机真题 在线测评链接:https://pgcode.cn/school Count Number of Binary Strings 题目描述 Given a positive integer n n n ( 3 ≤ n ≤ 90 3 \leq n \leq 90 3≤n≤…

酒店管理系统设计与实现

本科毕业设计(论文) 设计(论文)题目 酒店管理系统设计与实现 学生姓名 学生学号 所在学院 专业班级 校内指导教师 李建 企业指导教师 毕业设计(论文)真实性承诺及声明 学生对毕业设计(论文)真实性承诺 本人郑重声明:所提交的毕业设计(论文)作品是本人在指导教师的指…

Java web学习路径预览

Java web学习路径预览 (图源:黑马程序员) 目录 Java web学习路径预览 一、HTML、CSS、JS 1. HTML (HyperText Markup Language): 网页的骨架 2. CSS (Cascading Style Sheets): 网页的皮肤 3. JavaScript (JS): 网页的行为 二、Ajax、…

QEMU/KVM课程大纲暨学习路线(1)

一、背景 去年(2024年)10月份,在CSDN上有一位网友联系到我,说有需要我帮忙的地方。加了微信之后,他说了要帮助的事情。原来是他看到了我的QEMU/KVM相关文章,阅读之后觉得符合他们的要求,所以想让我帮他们开发QEMU/KVM相关的课程。 经过沟通和了解,他们之前请了一位老师…

得物前端面试题及参考答案(精选50道题)

浏览器强制缓存和协商缓存的机制及区别 浏览器缓存机制用于减少网络请求、提升页面加载性能,强制缓存和协商缓存是其中两种核心策略。 强制缓存的机制:当浏览器请求资源时,首先检查该资源在本地缓存中的有效期。有效期由响应头中的Cache-Con…

动态IP与区块链:重构网络信任的底层革命

在数字经济蓬勃发展的今天,网络安全与数据隐私正面临前所未有的挑战。动态IP技术与区块链的深度融合,正在构建一个去中心化、高可信的网络基础设施,为Web3.0时代的到来奠定基础。 一、技术碰撞:动态IP与区块链的天然契合 动态I…

PCB设计实践(三十)地平面完整性

在高速数字电路和混合信号系统设计中,地平面完整性是决定PCB性能的核心要素之一。本文将从电磁场理论、信号完整性、电源分配系统等多个维度深入剖析地平面设计的关键要点,并提出系统性解决方案。 一、地平面完整性的电磁理论基础 电流回流路径分析 在PC…

使用vscode进行c/c++开发的时候,输出报错乱码、cpp文件本身乱码的问题解决

使用vscode进行c/c开发的时候,输出报错乱码、cpp文件本身乱码的问题解决 问题描述解决方案问题1的解决方案问题2解决方案 问题描述 本篇文章解决两个问题: 1.当cpp文件出现错误的时候,编译时报错,但是报错内容缺是乱码&#xff0…

信息化项目验收测试:MES 系统验收测试的测试重点

在工业4.0与智能制造转型中,MES系统作为连接计划层与执行层的枢纽,其验收测试的专业性直接影响企业数字化成效。第三方检测机构需从核心功能、性能、集成能力等维度,为企业提供科学的验收测试方案。 一、核心功能验证:打通生产执行…

Prometheus + Grafana + Cadvisor:构建高效企业级服务监控体系

在现代软件开发和运维领域,容器化技术的应用越来越广泛,其中 Docker 作为最受欢迎的容器化解决方案之一,其容器的监控管理变得至关重要。本文将详细介绍如何使用 cadvisor、Prometheus 和 Grafana 来监控 Docker 容器的状态。 一、安装镜像 …

Kotlin-特殊类型

文章目录 数据类型枚举类型匿名类和伴生对象单例类伴生对象 数据类型 声明一个数据类非常简单: //在class前面添加data关键字表示为一个数据类 data class Student(var name: String, var age: Int)数据类声明后,编译器会根据主构造函数中声明的所有属性自动为其生成以下函数…

大疆上云API+流媒体服务器部署实现直播功能

根据官网文档上云API,先将官方提供的Demo部署起来,后端和前端服务环境搭建请参考官方文档。因为官方文档没有对直播这块的环境搭建进行说明,所以下面主要对直播功能环境搭建做一个记录,仅供参考,如有不足之处&#xff…

大模型-attention汇总解析之-GQA

从上面的图可以看出,MHA是一个attention 头有自己独立的kv cache 缓存,这样子的计算效果是最好的,同时kv cache 也是最完善的,意味着也是最占用内存的。MQA 进行了极致的kv cache 共享,那么能不能对多头进行分组&#…

Haption在危险、挑战性或受限环境中操作的情况提供了一种创新的遥操作解决方案

Haption Virtuose 6D TAO是一款拥有7个主动自由度的触觉设备,专为虚拟现实环境交互而设计。 它与Virtuose的一系列软件解决方案兼容,可让您直接在CAD软件中使用该设备进行装配仿真,并在3D游戏引擎中使用该设备,从而打造更加逼真的…

[STM32问题解决(2)]STM32通过串口与PC通信,打开串口助手后无法在打开状态下下载程序和复位STM32

问题回顾 最近学习STM32单片机,经常使用STM32通过USART1串口与PC的串口助手进行通信。为了简单便捷,通常在打开串口的状态下下载程序。这样子下载程序后,STM32发出的信号,PC马上可以收到。 但是,突然出现了一个问题&a…

JVM内存模型(运行时数据区)

目录 编者想说 1、内存模型图 2、栈 3、程序计数器 3、堆 4、方法区(元空间) 5、本地方法栈(Native Method Stack) 编者想说 通过上一篇文章的对JVM的体系结构以及它的演化,我们对JVM有了一个比较清晰的认识&…