【新版】系统架构设计师 - 嵌入式技术
嵌入式系统概述(★)嵌入式系统开发与设计(★)嵌入式硬件(★★)嵌入式操作系统(★★★★)嵌入式数据库(★)
个人总结,仅供参考,欢迎加好友一起讨论
文章目录
架构 - 嵌入式技术
考点摘要
- 嵌入式系统概述(★)
- 嵌入式系统开发与设计(★)
- 嵌入式硬件(★★)
- 嵌入式操作系统(★★★★)
- 嵌入式数据库(★)
嵌入式系统
嵌入式系统是一种以应用为中心,以计算机技术为基础,可以适应不同应用对功能、可靠性、成本、体积和功耗等方面的要求,集可配置可裁减的软、硬件于一体的专用计算机系统。【面向特定领域】
主要由嵌入式硬件平台,相关的嵌入式硬件,嵌入式操作系统,支撑软件以及应用软件所组成。嵌入性、专用性和计算机系统是嵌入式系统的三个核心要素。
嵌入式系统具有以下特点:
- 规模较小。
- 开发难度大。
- 硬件资源有限。
- 嵌入式软件一般涉及到底层软件的开发,需要软、硬件基础。
- 开发环境和运行环境不同。
- 实时性和可靠性要求高。如火箭飞行控制、核电站。
- 要求固化存储。
硬件抽象层,是位于操作系统内核与硬件电路之间的接口层,其目的在于将硬件抽象化。它隐藏了特定平台的硬件接口细节,隐藏硬件的多样性,将操作系统与硬件平台隔开,使软硬件的设计与调试可以并行,为操作系统提供虚拟硬件平台,使其具有硬件无关性,可在多种平台上进行移植。
在嵌入式系统中,板级支持包(BSP)是对硬件抽象层的实现,是介于底层硬件和上层软件之间的底层软件开发包,它主要的功能是给上层提供统一接口,同时屏蔽各种硬件底层的差异,以及提供操作系统的驱动、硬件初始化(加载bootloader)和驱动。
从传统意义上讲,嵌入式系统主要由以下部件组成:
- 嵌入式微处理器(MCU)
- 存储器(RAM/ROM)
- 内(外)总线逻辑
- 定时/计数器
- 看门狗电路:定时器溢出则中断,系统复位处理。
- I/O接口(串口、网络、USB、JTAG接口 - 用来进行CPU调试的常用接口)
- 外部设备(UART、LED等)
- 其他部件
根据系统对时间的敏感程度可将嵌入式系统划分为:
- 嵌入式系统
- 嵌入式实时系统
- 强实时系统
- 弱实时系统
从安全性要求看,嵌入式系统划分为:
- 安全攸关系统
- 非安全攸关系统
嵌入式系统开发与设计
嵌入式软件的开发与传统的软件开发方法存在比较大的差异,主要表现在以下方面:
- 嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机储存器上运行。
- 嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性。
- 嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中。
- 嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备。
- 嵌入式软件对实时性的要求更高。
- 嵌入式软件对安全性和可靠性的要求较高。
- 嵌入式软件开发是要充分考虑代码规模。
- 在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码审定。
- 模块化设计即将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的功能。
交叉开发环境
软硬件协同设计
嵌入式软件移植
嵌入式软件设计需要考虑可移植性以保障软件良好的可移植性。
无操作系统的软件移植
有操作系统的软件移植
低功耗设计
嵌入式系统设计一般要考虑功耗问题,低功耗设计是嵌入式系统设计中的难点,是一个系统化的综合问题,必须从软件和硬件两个方面全面考虑:
- 基于硬件的低功耗
- 板级电路低功耗设计
- 选择低功耗处理器
- 总线的低功耗设计
- 接口驱动电路的设计
- 分区分时供电技术
- 基于软件的低功耗
- 编译优化技术
- 软件与硬件的协同设计
- 用“中断”代替“查询”
- 减少系统化的持续运行时间,从算法上优化
- 进行电源的有效管理
嵌入式硬件
嵌入式系统的发展大致经历了五个阶段:
- 第一阶段,单片微型计算机(SCM)阶段,即单片机时代。
- 第二阶段,微控制器(MCU)阶段。
- 第三阶段,片上系统(SoC) 。
- 第四阶段,以Internet为基础的嵌入式系统。
- 第五阶段,在智能化、云技术推动下的嵌入式系统。
嵌入式微处理器
通常嵌入式处理器需要根据不同的使用场景选择不同类型的处理器,从处理器分类看,大致可分为MPU、MCU、DSP、GPU、SoC等。
-
嵌入式微控制器(MCU:Micro Controller Unit),又称为单片机,片上外设资源一般比较丰富,适合于控制,特点是体积小从而使功耗和成本下降。
-
嵌入式微处理器(EMPU:Embedded Micro Processing Unit),又称为单板机,由通用计算机中的CPU发展而来,仅保留和嵌入式应用紧密相关的功能硬件。
-
嵌入式DSP处理器(DSP:Digital signal Processor),专门用于信号处理方面的处理器,使用的哈弗体系结构,可以并行执行多个操作,有强大数据处理能力和高运行速度。
-
嵌入式片上系统(SoC),追求产品系统最大包容的集成器件。
追求产品系统最大包容的集成器件。
它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。
同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程。
成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块。
减小了系统的体积和功耗、提高了可靠性和设计生产效率。
狭义角度:信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上。
广义角度:SoC是一个微小型系统,如果说中央处理器(CPU)是大脑,那么SoC就是包括大脑、心脏、眼睛和手的系统。
国内外学术界一般倾向将SoC定义为将微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品。
-
图形处理器(Graphics Processing Unit,GPU):
GPU是图形处理单元的缩写,是一种可执行渲染3D图形等图像的半导体芯片(处理器)。
GPU可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的微处理器。
它可减少对CPU的依赖,并执行部分原本属于CPU的工作,尤其是在3D图形处理中,GPU采用了核心技术(如:硬件T&L、纹理压缩等)保证了3D快速渲染的能力。
GPU目前已广泛应用于各行各业,GPU中集成了同时运行在GHz的频率上的成千上万个core,可以高速处理图像数据。最新的GPU峰值性能可高达100TFlops以上。
人工智能芯片
人工智能(Artificial Intelligence,Al)芯片的定义:
从广义上讲只要能够运行人工智能算法的芯片都叫作AI芯片。但是通常意义上的Al芯片指的是针对人工智能算法做了特殊加速设计的芯片,现阶段,这些人工智能算法一般以深度学习算法为主,也可以包括其他机器学习算法。
人工智能芯片四大类(按技术架构分类):
- GPU
- FPGA(现场可编程门阵列)
- ASIC(专用集成电路)
- 类脑芯片
AI芯片的关键特征:
- 新型的计算范式:AI计算既不脱离传统计算,也具有新的计算特质。
- 训练和推断:AI系统通常涉及训练和推断过程。
- 大数据处理能力:满足高效能机器学习的数据处理要求。
- 数据精度:降低精度的设计。
- 可重构的能力:针对特定领域而不针对特定应用的设计,可以通过重新配置,适应新的AI算法、架构和任务。
- 开发工具:Al芯片需要软件工具链的支持。
微处理器体系结构
冯·诺依曼结构
冯·诺依曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
特点:
- 一般用于PC处理器,如l3,I5,I7处理器
- 指令与数据存储器合并在一起(程序和数据共用一个存储空间)
- 指令与数据都通过相同的数据总线传输(单一的地址及数据总线)
- 串行执行,在传输上会出现瓶颈
哈佛结构(嵌入式)
哈佛结构是一种将程序指令存储和数据存储分开的存储器结构。哈佛结构是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个独立的存储器,每个存储器独立编址、独立访问。
特点:
- 一般用于嵌入式系统处理器(DSP)
- 指令与数据分开存储,可以并行读取,有较高的数据吞吐率(程序和数据采用不同的存储空间)
- 有4条总线,指令和数据的数据总线与地址总线(独立的地址及数据总线)
- 并行执行,提高速度
嵌入式操作系统(EOS)
嵌入式操作系统(Embedded Operating System,EOS)是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并行活动等工作。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式操作系统具有一般操作系统的功能,同时具有嵌入式软件的特点,主要有:
- 非通用型操作系统,微型化,EOS的运行平台不是通用计算机,而是嵌入式系统
- 代码质量高
- 专业化(处理器专用),高适应性和移植性,支持多种开发平台
- 在性能和实时性方面可能有严格的限制,实时性强
- 能源、成本和可靠性通常是影响设计的重要因素
- 占用资源少
- 可剪裁、可配置
- 硬件与软件结合度高,软硬件依赖强,硬件和软件结合度高
分类
按照系统对响应时间的敏感程度,可以分为:
- 硬实时系统,系统对响应时间有严格要求,若响应时间不能满足,是绝对不允
许的,会引起系统的崩溃或致命的错误 - 软实时系统,系统对响应时间有要求,若响应时间不能满足,会带来额外可接
受的代价 - 非实时系统,响应时间没有严格要求。如分时操作系统,基于公平性原则,各进程分享处理器,获得大致相同的运行时间
按软件体系结构,可以分为:
- 单体结构
- 分层结构
- 微内核结构
- 以上3类嵌入式操作系统的差异体现在:
- 内核的设计,内核中包含的功能组件
- 在系统中集成的其他系统软件
实质 | 优点 | 缺点 | |
---|---|---|---|
单体内核 | 将图形、设备驱动及文件系统等功能全部在内核中实现,运行在内核状态和同一地址空间 | 减少进程间通信和状态切换的系统开销,获得较高的运行效率 | 内核庞大,占用资源较多且不易剪裁。系统的稳定性和安全性不好 |
微内核 | 只实现基本功能,将图形系统、文件系统、设备驱动及通信功能放在内核之外 | 内核精练,便于剪裁和移植。系统服务程序运行在用户地址空间,系统的可靠性、稳定性和安全性较高 可用于分布式系统 | 用户状态和内核状态需要频繁切换,从而导致系统效率不如单体内核 |
单体结构
单体结构(Monolithic):是一种常见的组织结构。
- 中间件和设备驱动程序通常集成在系统内核中。
- 系统只有一个可执行文件,包含所有功能组件,功能模块可相互调用。
- 如Linux、Jbed RTOS、μC/OS、PDOS。
分层结构
分层结构(Layered):操作系统被划分为若干个层次,各个层次之间的调用关系是单向的,即某一层次上的代码只能调用比它低层的代码。
微内核结构
微内核结构,也称客户/服务(client/server)结构
在内核中,把操作系统的大部分功能都剥离出去,只保留最核心的功能单元(如进程管理、存储管理)。
如:OS-9、C Executive、VxWorks和QNX等。
微内核(Micro kernel)是提供操作系统核心功能的内核的精简版本,它设计成在很小的内存空间内增加移植性,提供模块化设计,以使用户安装不同的接口。
微内核:尽可能把内核做的小一点。
微内核结构由一个非常简单的硬件抽象层和一组比较关键的原语或系统调用组成。这些原语仅仅包括了建立一个系统所需的几个部分。微内核的目标是将系统服务的实现和系统的基本操作规则分离开来。一个服务组件的失效并不会导致整个系统的崩溃,内核需要做的,仅仅是重新启动这个组件,而不必影响其他的部分。
微内核系统十分适用于嵌入式的专用系统,对于通用性较广的系统,将使CPU的通信开销量变大,从而影响运行速度。
微内核技术的主要优点:统一的接口,可伸缩性好,实时性好,可移植性好,安全可靠性高,支持分布式系统,真正面向对象的操作系统。
微内核技术 | 描述 |
---|---|
统一的接口 | 在用户态和核心态之间无须进程识别 |
可伸缩性好 | 能适应硬件更新,应用变化 |
实时性好 | 微内核可以方便的支持实时处理 |
安全可靠性高 | 微内核将安全设计作为系统内部特征来进行设计,对外仅适用少量应用编程接口 |
支持分布式系统 | 支持多处理器的体系结构和高度并行的应用程序 |
真正面向对象 | 真正面向对象的操作系统 |
可移植性好 | 所有与机器相关的代码,全部隔离在微内核中,如果要移植的话只需要改少部分代码 |
实时操作系统(RTOS)
当外界时间或数据产生时,能够接受并以足够快的速度处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行的嵌入式操作系统。
工业控制,军事设备,航空航天等领域对系统的相应时间有苛刻的要求,这就需要使用嵌入式实时系统,能提供及时响应与高可靠性是主要特点。具体分为:
- 硬实时操作系统,在规定时间内必须完成操作
- 软实时操作系统,按照任务优先级完成即可
嵌入式实时操作系统实时性的评价指标:
- 任务切换时间
- 中断处理相关的时间指标
- 中断延迟时间
- 中断响应时间
- 系统响应时间(对用户的输入或请求作出反应的时间)
- 信号量混洗时间(指从一个任务释放信号量到另一个等待该信号量的任务被激活的时间延迟)
嵌入式实时操作系统多任务调度算法:
- 优先级调度算法,分配一个相对固定的优先顺序,然后调度程序根据优先级的高低排序,按时间顺序进行高优先级任务优先调度。(非抢占式)
- 抢占式优先级调度算法,是在优先级调度算法基础上,允许高优先级任务抢占低优先级任务而运行。
- 时间轮转调度算法,调度程序会依次调度每个任务运行一个小的时间片,然后再调度另一个任务。每个任务运行完一个时间片,无论是否结束都会释放CPU让下一个任务运行。(纯粹的时间轮转调度无法满足实时系统的要求,取而代之的是基于优先级的抢占式时间轮转调度)
- 最晚截止期调度算法,指调度程序按每个任务的最接近其截止期末端的时间进行调度。
- 最早截止期调度算法,指调度程序按每个任务的截止期时间,选择最早到截止期头端时间的任务进行调度。
在RTOS中,大多数的RTOS调度算法都是抢占式的。
常见的嵌入式RTOS(实时操作系统,Real-Time Operating System)vxWorks、RT-Linux、QNX、pSOs。
鸿蒙操作系统
鸿蒙(Harmony OS)整体采用分层的层次化设计,从下向上依次为:内核层、系统服务层、框架层和应用层。系统功能按照“系统” - “子系统” - “功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。
鸿蒙(Harmony OS)操作系统架构具有4个技术特性:
(1)分布式架构首次用于终端OS,实现跨终端无缝协同体验
HarmonyOS的“分布式OS架构”具有分布式软总线、分布式数据管理、分布式任务调度和虚拟外设等4大能力,将相应分布式应用的底层技术实现难点对应用开发者屏蔽,使开发者能够聚焦自身业务逻辑,像开发同一终端一样开发跨终端分布式应用,也使最终消费者享受到强大的跨终端业务协同能力为各使用场景带来的无缝体验。
(2)确定时延引擎和高性能IPC技术实现系统天生流畅
确定时延引擎可在任务执行前分配系统中任务执行优先级及时限进行调度处理,优先级高的任务资源将优先保障调度,应用响应时延降低25.7%。鸿蒙微内核结构小巧的特性使lPC(进程间通信)性能大大提高,进程通信效率较现有系统提升5倍。
(3)基于微内核架构重塑终端设备可信安全
HarmonyOS采用全新的微内核设计,拥有更强的安全特性和低时延等特点。
HarmonyOS架构的系统安全性主要体现在搭载HarmonyOS的分布式终端上,可以保证“正确的人,通过正确的设备,正确地使用数据”。这里通过“分布式多端协同身份认证”来保证“正确的人”,通过“在分布式终端上构筑可信运行环境”来保证“正确的设备”,通过“分布式数据在跨终端流动的过程中,对数据进行分类分级管理”来保证“正确地使用数据”。
(4)通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
嵌入式数据库(EDBMS)
嵌入式系统的数据库系统称为嵌入式数据库系统或嵌入式实时数据库系统。
嵌入式数据库管理系统一般只提供本机服务接口,为前端应用提供基本的数据支持。
嵌入式系统的数据库系统也称为移动式数据库或者嵌入式移动数据库。它存在的目的就是解决移动计算环境下的数据管理问题。移动数据库是移动计算环境中的分布式数据库。
与传统数据库相比,嵌入式数据库系统有以下几个主要特点:
- 嵌入式
- 实时性
- 移动性
- 伸缩性
在嵌入式系统中引入数据库的原因:
- 所有的应用都需要重复的进行数据的管理工作
- 各应用之间的数据共享性能
- 应用软件的独立性,可移植性差,可重用性低
嵌入式数据库使用环境的特点:
- 设备随时的移动性
- 网络频繁断接
- 网络条件多样化
- 通信能力不对称
市场上常见的嵌入式数据库:
- Berkeley DB(开源,商用收费,支持让数千的并发线程同时操作数据)
- SQLite(开源,商用免费)
- Empress(商业数据库)
- eXtremeDB(嵌入式内存数据库,针对实时系统进行了优化)
按照数据库存储位置的不同而进行分类是目前广泛采用的分类方法,它可以划分为三类:
基于内存方式(Main Memory Database System,MMDB)
基于文件方式(File Database,FDB)
基于网络方式(Netware Database,NDB)
关于嵌入式网络数据库:
- 实际上,嵌入式网络数据库是把功能强大的远程数据库映射到本地数据库,使嵌入式设备访问远程数据库就像访问本地数据库一样方便。
- 嵌入式网络数据库主要由三部分组成:客户端、通信协议和远程服务器。客户端主要负责提供接口给嵌入式程序,通信协议负责规范客户端与远程服务器之间的通信还需要解决多客户端的并发问题,远程服务器负责维护服务器上的数据库数据。
- 这里要说明的是,由嵌入式网络数据库、嵌入式本地数据库(内存或文件)和嵌入式Web服务器等构成了综合的嵌入式综合信息系统。
更多推荐
所有评论(0)