嵌入式微处理器体系结构

冯诺依曼结构

  • 核心特征:程序和数据共享存储空间。
    • 计算机体系结构最经典的形式,程序指令和待处理的数据都存放在同一个物理存储器中。
    • 指令存储地址和数据存储地址都指向同一个存储器的不同位置
  • 主要特征:
    • 单一地址/数据总线:CPU通过同一条总线(地址总线和数据总线)来访问指令和数据
    • 指令和数据宽度相同
  • 流程和瓶颈
    • 通过总线取指 - 解码指令 - 取操作数 - 执行运算 - 写回结果
    • 即便执行一条指令,也需要两个串行的总线访问阶段,需要多个时钟周期。
    • 当处理器需要高速运算时,单一总线会成为系统性能的瓶颈

画板

哈佛结构

  • 核心特征:程序和数据分离存储
    • 程序指令和待处理的数据分别存储在两个独立的物理存储器中:程序存储器、数据存储器。
    • 每个存储器都有自己独立的地址空间和访问机制。
  • 主要特点:每个存储器都有自己独立的总线系统(地址总线和数据总线),总线可以并行独立工作。
  • 优势:消除了冯诺依曼中取指后需要等待取数据的串行操作,可以在取数据的同时对其他指令进行取指操作,提高了指令的执行速度和整体吞吐率。

微处理器分类

  • 根据嵌入式处理器的字长:分为4、8、16、32、64位,16位及以下的称为嵌入式微控制器,32位及以上称为嵌入式微处理器。
    • 嵌入式微控制器:字长较短,处理能力有限,但集成度高、功耗低、成本低。适合简单的控制任务。
    • 嵌入式微处理器:性能更强,但功耗也价格也更高。适合处理更复杂的应用。
  • 按系统集成度划分
    • 通用微处理器:微处理器内部仅包含中央处理器单元,需要各种外设才能组成完整系统
    • 微控制器:CPU、ROM、RAM、I/O等部件集成到同一个芯片。功耗低,可靠性高,用于家电、工业控制等领域。
  • 按用途分类
    • 嵌入式微控制器MCU:性能低、集成度高、成本低、功耗低、高度集成和面向控制,是工业控制领域的主流,
    • 嵌入式微处理器MPU:通用CPU演化而来,性能较强,但集成度较低,需要各种外设才能组成完整系统,去除了通用计算中不必要的冗余功能,专注于嵌入式应用需求,功耗、体积、成本和可靠性上优于工业PC。
    • 嵌入式信号处理器DSP:专门用于高速信号处理方面的处理器,执行特定数学运算极快。采用哈佛结构、流水线处理,其处理速度比最快的CPU还快10-50倍,在通信、音视频处理、数字滤波、FFT、谱分析等各种仪器上DSP获得了大规模的应用。
    • 嵌入式片上系统SOC:在单一芯片上集成了一个完整电子系统所需要的所有或者大部分关键组件,包括(CPU、存储器、模拟接口、总线、专用硬件加速模块),极高的集成度和软硬件协同设计,直接在芯片上集成或优化运行操作系统的关键软件模块,为特定领域高度定制化,高性能、低功耗、小体积的解决方案

多核处理器

将两个或者更多的处理器核心集成在一个芯片中,提升整体性能,并且降低了计算机系统的功耗和体积,由操作系统软件进行调度进行多进程、多线程并发。

多核处理器协调方式:

  • 对称多处理器技术SMP:将多个完全一样的处理器封装在芯片中,达到接近双倍的处理性能。
  • 非对称多处理器技术AMP:多个不同的内核封装到同一个芯片中,各自处理和执行特定的功能,在软件的些协调下分担不同的计算任务,例如手机CPU的大小核设计。

多核CPU的调度:

  • 全局队列调度:操作系统维护一个全局的任务等待队列,有CPU空闲时,操作系统就从空闲等待队列中选取就绪任务执行。CPU利用率高
  • 局部队列调度:操作系统为每一个处理器内核维护一个任务等待队列,当CPU空闲时,只会从自己的任务等待队列选取就绪任务,优点是无需在多个CPU之间切换。

嵌入式软件

嵌入式软件是专门运行在嵌入式系统中的程序,为专用设备赋能,主要特点是:

  • 规模相对较小:专注于特定任务
  • 开发难度大:需考虑硬件限制(资源少、功耗、成本)、实时性、可靠性。
  • 实时性要求高:许多系统要求必须在严格时间内响应外部事件。
  • 可靠性要求高:尤其在一些关键领域(如汽车、医疗)不能出错。
  • 固化存储:程序通常存储在只读存储器中,设备断电后程序也不会丢失。

根据功能和层次,嵌入式软件可以分为三类:

  • 系统软件:管理和控制嵌入式系统的核心资源(CPU、内存、外设),为嵌入式应用提供各种软件支撑,如设备驱动程序、嵌入式操作系统、嵌入式中间件等。
  • 应用软件:嵌入式系统的上层软件,定义了嵌入式设备的主要功能和用途,并负责与用户交互,一般面向特定的应用领域。如飞控软件、地图等。
  • 支撑软件:辅助嵌入式软件开发的工具软件,如系统分析设计工具、在线仿真工具、交叉编译器等。

嵌入式系统

软硬一体的专用计算机系统
一般嵌入式系统由 由以下核心组件组成,

  • 嵌入式处理器:和一般处理器相比,更强调恶劣的使用环境,并且体积小、低功耗、成本效益高,工艺可分为民用、工业和军用。
  • 相关支撑硬件:处理器之外的必要硬件,包括存储器、定时器、I/O接口、总线等相关专用硬件。
  • 嵌入式操作系统:运行在嵌入式系统中的基础软件,具有实时性、可裁减性、安全性等特征。
  • 支撑软件:辅助进行嵌入式软件开发的工具软件
  • 应用软件:嵌入式系统为完成某一特定目标而开发的软件。

嵌入型系统的特征

  • 专用型强:为特定领域应用量身定做。
  • 技术融合:将先进的计算机技术、通信技术、半导体技术和电子技术等各个行业的具体应用相结合,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统
  • 软硬一体。软件为主:硬件是平台,软件才是实现功能价值的主体,常使用IP核(具备独立功能的成熟设计模块)来高效构建硬件、
  • 资源受限:嵌入式系统一般只需要完成一些简单的任务,设计时考虑到经济性,所以不能使用通用cpu,意味着资源少、成本低、结构简单。
  • 程序代码固化在非易失存储器上:为了提供执行速度和提高可靠性,嵌入式系统的软件一般固化在存储器芯片或单片机本身。而不是存储在磁盘中。
  • 需专门开发工具和环境:嵌入式系统本身不具备开发能力,必须要一整套开发工具和环境才能进行开发。
  • 体积小、价格低、工艺先进、性价比高、配置低、实时性强。
  • 安全和可靠性高。

嵌入式系统根据实时性要求分类

  • 嵌入式实时系统分类
    • 强实时系统:必须在严格时间内响应
    • 弱实时系统:有相应时间要求,但是偶尔错过不会造成严重后果
  • 嵌入式非实时操作系统:响应时间没有严格限制。
    根据安全性分类可以分为安全攸关系统和非安全攸关系统。

嵌入式系统可以分为硬件层、抽象层、操作系统层、中间层和应用层等

  • 硬件层:主要是为嵌入式系统提供运行支撑的硬件环境,其核心是微处理器、存储器、I/O接口和通用设备以及总线、 电源、时钟等。、
  • 抽象层:(板级支持包BSP)隐藏底层细节,为上层操作系统提供统一的硬件访问接口。
  • 操作系统层:提供核心服务,如任务调度、内存管理、文件系统、网络通信、GUI等,但并非所有嵌入式都需要操作系统。
  • 中间件层:一般位于操作系统之上,管理计算机资源和网络通信,一般是用来应用之间的通信连接。
  • 应用层:嵌入式的具体核心应用。

板级支持包BSP

介于主板硬件和操作系统驱动程序层之间的一层,一般认为属于操作系统的一部分,主要实现对操作系统的支持,为上层驱动程序提供访问硬件和硬件设备寄存器的函数包,使其能够更好的运行在硬件主板。  
功能包括:
1、硬件初始化:
    * 片级初始化:纯硬件操作,设置微处理器核心本身(如寄存器、工作模式)
    * 板级初始化:设置微处理器之外的硬件(如内存寄存器、时钟树、外设寄存器)
    * 加载BootLoader: 系统加电后运行的第一段小程序
2、提供硬件访问接口:为上层的设备驱动程序提供操作系统底层的函数库(读取寄存器、处理中断),
3、适配操作系统:为特定的操作系统定制硬件接口,使其能够在该硬件平台顺利运。
4、启动操作系统:在硬件初始化完成后,准备好必要的资源,将控制权交给操作系统

特点:

  • 硬件相关性:作为软件和硬件之间的接口,BPS需要为操作系统提供操作和控制硬件的具体方法
  • 操作系统相关性:不同的操作系统具有自己的软件层次结构,因此不同操作系统具有特定的硬件接口形式

BSP包含以下两方面的内容

  • 加载BootLoader:初始化关键硬件(CPU、内存等)→建立内存映射→从存储中加载操作系统和应用到内存→启动操作系统。
  • 设备驱动程序:BSP提供基础的、与硬件交互的驱动函数,设备驱动程序是任何嵌入式操作系统都必不可少的软件层:
        * 硬件启动:在上电以后,对硬件进行初始化。
        * 硬件关闭:将硬件设置安全、低功耗的关机状态
        * 硬件停/启:临时暂停或者恢复硬件
        * I/O操作:对硬件进行读写操作。

嵌入式 数据库EDBMS

环境特点:

  • 设备随机移动:嵌入式数据库主要用于移动信息设备、设备的位置经常随用户变化。
  • 网络频繁断接:由于移动或环境影响,网络间接性断开重连。
  • 网络条件多样化:带宽、延迟、通信代价、Qos等方面有差异、
  • 通信能力不对称:移动设备的发送能力有限,使得服务器和设备之间的上下行带宽差距大。

系统组成:

  • 主数据库:中心数据存储节点
  • 同步服务器:管理主数据库和嵌入式数据库的数据同步
  • 嵌入式数据库:本地存储和处理工作,支持断网操作
  • 连接网络 :通过移动通信/WIFI等连接组成  
    嵌入式数据库在实际应用中需要处理一些关键问题
  • 数据一致性:多副本同步(冲突解决策略)
  • 高效事务处理:资源受限下的快速响应。
  • 数据安全:加密传输、本地存储保护。

嵌入式操作系统EOS

  • 微型化:内存/外存极少,需要采用轻量化设计
  • 代码质量高:精简代码体积,优化资源占用(避免冗余)。
  • 专业化:通过强移植性和专用型来适配多样硬件平台。
  • 实时性强:快速响应外部事件。
  • 可裁剪和可配置:按需定制功能模块(如移除GUI等)

嵌入式实时操作系统

  • 可预测性:系统在运行之前,功能、响应特性和执行结果是可预测的。
  • 确定性:给定的初始状态和输入条件下,在确定的时间给出确定的结果。

RTOS核心机制

  • 高精度计时系统:依赖硬件时钟+软件优化达到微秒级计时精度
  • 多级中断机制:高优先级中断立即响应。
  • 实时调度机制:优先执行实时任务

实时操作系统RTOS的特点:  
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时系统协调一致运行。因此,提供及时响应和高可靠性是主要特点

  • 硬实时:在规定的时间内必须完成操作,在操作系统设计时保证的
  • 软实时:按照任务的优先级,尽可能快速的完成工作。

嵌入式软件设计

一个典型的交叉平台开发环境,包含三个高度集成的部分

  1. 运行在宿主机和目标机上的强有力的交叉开发环境和使用程序
  2. 运行在目标机上的高性能、可裁剪的实时操作系统
  3. 连接宿主即和目标机的多种通信方式,例如 网线、usb、串口等。
  • 交叉编译:交叉编译就是在一个平台生成另外一个平台的可执行代码,因为嵌入式系统本身不具备开发功能,所以,嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码。
  • 交叉调试:嵌入式软件开发中,调试器运行在宿主机的通用操作系统之上,被调试的进程运行在基于特定硬件平台的嵌入式操作系统中,通过串口或者网络进行通信。
Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐