Appearance
嵌入式系统
更新: 4/10/2025 字数: 0 字 时长: 0 分钟
概述(⭐)
嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。
从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。
一般嵌入式系统有嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
嵌入式系统体系架构

提示
嵌入式系统初始化过程:片级初始化 => 板级初始化 => 系统级初始化
传统意义上的嵌入式系统主要由以下部件组成:
- 嵌入式微处理器(控制器MCU)
- 存储器(RAM/ROM)
- 内(外)总线逻辑
- 定时/计数器
- 看门狗电路:定时器溢出则中断,系统复位处理。
- I/O接口:串口、网络、USB、JTAG接口(用来进行CPU调试的常用接口)
- 外部设备:如UART、LED等
- 其它部件
嵌入式系统典型架构
层次化模式架构
层次化模式依赖于概念的抽象,不同使用者可关注到架构的不同层面的细节。

主要设计思想
- 当一个系统存在高层次的抽象,这些抽象的表象形式是一个个的抽象概念,而这些抽象概念需要具体的低层概念进行实现时,就可采用层次化模式。
- 分层模式结构只包含了一个主要的元素(域包)和它的接口,以及用来说明模式结构的约束条件。
分类
类别 | 描述 | 优点 |
---|---|---|
封闭型 | 一层中的对象只能调用同一层或下一个底层的对象所提供的方法 | 封装、移植性好 |
开放型 | 一层中的对象可以调用同一层或低于该层的任意一层的对象 所提供的方法 | 性能较好 |
递归模式架构
递归模式实际上是对系统的抽象:系统中的交互协作可以在不同的层次上进行抽象,只不过每层反映的细节不同而已。递归模式的实现实际上就是靠重复应用简单的包含关系。

工作流
- 自顶向下:从系统层级开始并标识结构对象,这些对象提供实现协作的服务。在实时系统和嵌入式系统中,大多数情况下是基于某个标准方法,将系统分成一个个子系统。当开发人员逐步降低抽象层级,向下推进时,容易确保开发者的工作没有偏离用例中所规定的需求。
- 自底向上:专注于域的构造——首先确定域中的关键类和关系。这种方法之所以可行是因为开发者以往有丰富的开发经验,并能将其它领域所获得的知识映射到当前开发所在的域中。通过这种方法,最终开发者会到达子系统级的抽象。
嵌入式硬件(⭐⭐)
嵌入式系统发展阶段
- 单片微型计算机SCM
- 微控制器MCU
- 片上系统Soc
- 以Internet为基础的嵌入式系统
- 在智能化、云技术推动下的嵌入式系统
嵌入式微处理器
通常嵌入式处理器需要根据不同的使用场景选择不同类型的处理器,从处理器分类来看,分为:
- 微处理器(Micro Processor Unit, MPU):将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的母板功能。微处理器一般以某一种微处理内核为核心,每一种衍生产品的处理器内核都是一样的,不同的是存储器和外设的配置及封装。
- 微控制器(Micro Controller Unit, MCU):又称单片机,与MPU相比MCU的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高。
- 数字信号处理(Digital Signal Processor, DSP):DSP处理器对系统结构和指令进行了特殊设计(通常DSP采用哈佛结构),使其适合执行DSP算法,编译效率较高,指令执行速度也比较高。
- 图形处理器(Graphic Processing Unit, GPU):一种可执行渲染3D图形等图像的半导体芯片(处理器),可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关的运算工作。GPU可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的处理器。它可减少对CPU的依赖,并执行部分原本属于CPU的工作,尤其是在S3图形处理中,GPU采用了一些核心技术(如硬件T&L、纹理压缩等)保证了3D快速渲染的能力。GPU目前已广泛用于各行各业,集成了同时运行在GHz频率上的成千上万个核心,可以高速处理图像数据。最新的GPU峰值性能可高达100TFlops以上。
- 片上系统(System on Chip, Soc)
- 追求产品系统最大包容的集成器件。
- 它是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容。同时它又是一种技术,用以实现从确定系统功能开始,到软硬件划分,并完成设计的整个过程。
- 成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块。
- 减少了系统的体积和功耗,提高了可靠性和设计生产效率。
- 狭义角度:信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上。
- 广义角度:Soc是一个微小型系统,如果说CPU是大脑,那么Soc就是包括大脑、心脏、眼睛和手的系统。
- 国内外学术界一般倾向于将Soc定义为将微处理器、模拟IP核、数字IP核核存储器(或片外存储控制接口)集成在单一芯片上,通常是客户定制的,或是面向特定用途的标准产品。
嵌入式操作系统(⭐⭐⭐)
嵌入式操作系统是一种用途广泛的系统软件,负责嵌入式系统的全部软硬件资源分配、任务调度、控制、协调并行活动等工作。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
嵌入式实时操作系统
嵌入式实时操作系统兼容嵌入式操作系统的特点和实时操作系统的特点:
- 微型化
- 代码质量高
- 专业化
- 实时性强
- 可裁剪、可配置
调度算法
- 时间片轮转调度算法:为每个任务提供确定份额的CPU执行时间。
- 优先级调度算法
- 静态:系统为每个任务分配一个相对固定的优先顺序。
- 动态:优先级可以动态调整。
- 抢占式优先级调度算法:任何时候运行的任务都是所有就绪任务中具有最高优先级的任务。大多数RTOS调度算法都是抢占方式(可剥夺方式)。
- 单调速率调度算法【RMS】:是一种静态优先级调度算法,是经典的周期性任务调度算法。RMS的基本思路是任务的优先级与它的周期表现为单调函数的关系,任务的周期越短,优先级越高。
- 最早截止期调度算法【EDF】:根据任务的截止时间来确定其优先级,对于时间期限最近的任务,分配高优先级。
- 最低松弛度优先算法【LLF】:是一种动态优先级调度算法,主要应用于可抢占式调度方式中的任务,根据任务紧急(或松弛)的程度来确定任务的优先级。任务越紧急,优先级越高。
操作系统内核架构
内核是操作系统的核心部分,它管理着系统的各种资源。内核可以看成连接应用程序和硬件的一座桥梁,是直接运行在硬件上的最基础的软件实体。
目前从内核架构来划分,可分为:宏内核【单体内核】、微内核和混合内核。


- 宏内核:把所有的服务都集中设计在内核里面。
- 微内核:只提供最基础的服务(如:进程管理、内存管理等),其它服务(如文件系统、网络协议等)在内核之外的用户空间运行。
- 混合内核:宏内核和微内核的结合体。基于微内核的架构设计,把一些性能要求高的服务也放在内核中(如设备驱动、应用进程间通信等)。典型代表:Windows系统。
内核架构 | 优点 | 缺点 |
---|---|---|
宏内核 | 减少进程间通信和状态切换的系统开销,性能高 | 内核庞大,占用资源较多且不易裁剪; 系统的稳定性和安全性不好 |
微内核 | 结构相当清晰,有利于协作开发; 内核精炼,便于裁剪和移植(灵活、可扩展); 系统服务程序运行在用户空间,系统的可靠性、 稳定性和安全性较高; 可用于分布式系统 | 用户态和内核态切换频繁,性能偏低 |
混合内核 | 宏内核的性能和微内核的稳定性、安全性 | 复杂度高 |
鸿蒙操作系统
鸿蒙操作系统【HarmonyOS】整体采用分层的层次化设计,从上到下依次为:内核层、系统服务层、框架层和应用层。
系统功能按照“系统-子系统-功能/模块”逐级展开,在多设备部署场景下,支持根据实际需求裁剪某些非必要的子系统或功能/模块。

鸿蒙操作系统架构具有4个特性:
- 分布式架构首次用于终端OS,实现跨终端无缝协同体验
- 确定时延引擎和高性能IPC技术实现系统天生流畅
- 基于微内核架构重塑终端设备可信安全
- 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享
嵌入式数据库(⭐)
相比于传统数据库,嵌入式数据库的主要特点:嵌入式、实时性、移动性、伸缩性。
目前广泛采用的分类方法是按数据存储位置的不同来划分:
- 基于内存方式(Main Memeor Database, MMDB)
- 基于文件方式(File Database, FDB)
- 基于网络方式(Netware Database, NDB)
提示
嵌入式网络数据库、嵌入式本地数据库(内存或文件)和嵌入式Web服务器等构成了嵌入式综合信息系统。
MMDB
实时系统和数据库系统的有机结合。
内存数据库是支持实时事务的最佳技术,其本质特征是以其“主拷贝”或“工作版本”常驻内存,即活动事务只与实时内存数据库的内存拷贝打交道。
FDB
以文件方式存储数据,即数据按照一定格式存储在磁盘中。使用时由应用程序通过相应的驱动程序甚至直接对数据文件进行读写。
这种数据库的访问方式是被动的,只要了解其文件格式,任何程序都可以直接读取,因此其安全性很低。虽然文件数据库存在诸多弊端,但可以满足嵌入式系统在空间、时间等方面的特殊要求。
NDB
基于手机4G/5G的移动通信基础上的数据库系统,在逻辑上可以把嵌入式设备看作远程服务器的一个客户端。
特点是:无需解析SQL语句;支持更多的SQL操作;客户端小、无须支持可裁剪行;有利于代码重用。
实际上,嵌入式网络数据库是把功能强大的远程数据库映射到本地数据库,使嵌入式设备访问远程数据库就像访问本地数据库一样方便。
嵌入式网络数据库主要由三部分组成:
- 客户端:负责提供接口给嵌入式程序。
- 通信协议:负责规范客户端与远程服务器之间的通信,还要解决多客户端的并发问题。
- 远程服务器:负责维护服务器上的数据库数量。
嵌入式软件开发(⭐)
嵌入式软件开发与传统软件开发的差异:
- 在宿主机(PC机或工作站)上使用专门的嵌入式开发工具,生成二进制代码后,需要使用工具装载在目标机或固化在目标机存储器上。
- 开发一般需要专门的开发工具、目标系统和测试设备;开发的结果通常需要固化在目标系统的存储器或处理器内部存储器资源中。
- 更强调软硬件协同工作的效率和稳定性。
- 对实时性、安全性、可靠性要求较高。
- 要充分考虑代码规模。
- 对于安全攸关系统,其开发还应满足某些领域对代码和设计的审定。
- 模块化设计:将一个较大的程序按功能划分成若干个子模块,每个子模块实现特定的功能。

嵌入式软件设计层面的功耗控制主要从以下方面展开:
- 软硬件协同设计,即软件的设置要与硬件的匹配,考虑硬件因素。
- 编译优化,采用低功耗优化的编译技术。
- 减少系统的持续运行时间,可从算法角度进行优化
- 用
中断
代替查询
。 - 进行电源的有效管理。