嵌入式系统架构设计理论与实践
- 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)统一集成开发环境,一次开发,多端部署,实现跨终端生态共享。