微处理

嵌入式技术

特定的硬件设备中集成计算机系统及软件,来实现某种特定功能技术

特点:

1、专用性

2、实时性

3、低成本

4、可靠性

5、体积小

嵌入式硬件

处理体系结构

冯诺依曼结构

传统计算机采用冯·诺依曼(Von Neumann)结构,也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
冯·诺依曼结构的计算机程序和数据共用一个存储空间,程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置。
采用单一的地址及数据总线,程序指令和数据的宽度相同。
处理器执行指令时,先从储存器中取出指令解码,再取操作数执行运算,即使单条指令也要耗费几个甚至几十个周期,在高速运算时,在传输通道上会出现瓶颈效应。这是一种串行结构。相对比较低效

指令数据存储在一个存储器中,只能串行读取,通过相同的数据总线传输

AMD

哈佛结构

是一种并行体系结构,它的主要特点是将程序和数据存储在不同的存储空间中,即程序存储器和数据存储器是两个相互独立的存储器,每个存储器独立编址、独立访问。
• 与两个存储器相对应的是系统中的两套独立的地址总线和数据总线。
• 这种分离的程序总线和数据总线可允许在一个机器周期内同时获取指令字(来自程序存储器)和操作数(来自数据存储器),从而提高了执行速度,使数据的吞吐率提高了1倍

DSP

指令和数据存在不同存储结构中,可并行读取,有较高的数据吞吐率,指令和数据的数据总线和地址总线

对比

在冯诺依曼架构中,指令和数据共享同一个存储器,CPU 只能执行一条指令,因为它需要等待指令和数据都被读取到 CPU 中。而在哈佛架构中,指令和数据存储在不同的内存中,CPU 可以同时访问指令和数据内存,因此可以同时执行多条指令。所以,可以这样
理解,冯诺依曼架构是单车道,而哈佛架构是多车道。

冯诺依曼架构的好处,就是简单、易于实现和设计。哈佛架构的好处,可以使用不同的技术来优化性能。

冯·诺依曼架构适用于大多数通用计算机,因为它能够灵活地处理各种不同的计算任务,同时还可以使用缓存等技术来优化性能。而哈佛架构则适用于一些特定的应用领域,例如需要高效地处理大量数据的嵌入式系统,或数字信号处理器等领域。

微处理器分类

字长宽度分类:16位以下MCU,32位以上MPU

如果按系统集成度划分,可分为两类:一种是微处理器内部仅包含单纯的中央处理器单元,称为一般用途型微处理器:另一种则是将CPU、ROM、RAM及I/O等部件集成到同一个芯片上,称为单芯片微控制器(Single Chip Microcontroller)。

• 如果根据用途分类,一般分为嵌入式微控制器MCU、嵌入式微处理器MPU、嵌入式数字信号处理器DSP、嵌入式片上系统SOC等

嵌入式微控制器MCU

16位以下的,典型代表是单片机,是单片化,体积大大减小,从而使功耗和成本下降、可靠性提高,嵌入式系统工业的主流

嵌入式微处理器MPU

通用计算机中的CPU演变而来。它的特征是具有32位以上的处理器,具有较高的性能,当然其价格也相应较高。但与计算机处理器不同的是,在实际嵌入式应用中,只保留和嵌入式应用紧密相关的功能硬件,去除其他的冗余功能部分,这样就以最低的功耗和资源实现嵌入式应用的特殊要求。与工业控制计算机相比,嵌入式微处理器具有体积小、重量轻、成本低、可靠性高的

嵌入式数字信号处理器DSP

哈佛结构, 运算性能最好,专门用于信号处理方面的处理器,其在系统结构和指令算法方面进行了特殊设计,具有很高的编译效率和指令的执行速度。采用哈佛结构,流水线处理,其处理速度比最快的CPU还快10—50倍。

嵌入式片上系统SOC

集成度最高,追求产品系统最大包容的集成器件。SoC最大的特点是成功实现了软硬件无缝结合,直接在处理器片内嵌入操作系统的代码模块

高端SoC芯片主要集中于手机、平板电脑、服务器市场等,次高端SoC芯片多应用于安防、智能音频、物联网等领域,专用型SoC芯片多应用于TWS耳机和智能手表等

区别

性能与功能:dsp,mpu,soc,mcu

集成度:soc,mcu

成本:dsp,mpu,soc,mcu

适用场景:

1、mcu用于简单控制与接口

2、mpu高性能控制与应用

3、dsp专业信号处理,运算性能最高

4、soc单一智能设备,集成度最高

多核处理器

多核指多个微处理器内核,是将两个或更多的微处理器封装在一起,集成在一个电路中。多核处理器是单枚芯片,能够直接插入单一的处理器插槽中。多核与多CPU相比,很好的降低了计算机系统的功耗和体积。在多核技术中,由操作系统软件进行调度,多进程,多线程并发都可以。
2个或多个内核工作协调实现方式:
• 对称多处理技术SMP:将2颗完全一样的处理器封装在一个芯片内,达到双倍或接近双倍的处理性能,节省运算资源。
• 非对称处理技术AMP:2个处理内核彼此不同,各自处理和执行特定的功能,在软件的协调下分担不同的计算任务。

多核CPU的调度(当有多个任务运行时,如何进行CPU的分配)
• 多核CPU环境下进程的调度算法一般有全局队列调度和局部队列调度两种.

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

嵌入式软件

嵌入式软件是指应用在嵌入式计算机系统当中的各种软件,除了具有通用软件的一般特性,还具有一些与嵌入式系统相关的特点,包括:规模较小、开发难度大、实时性和可靠性要求高、要求固化存储。

BSP

板级支持包,包含了与硬件相关的驱动程序,引导程序,硬件抽象层。BSP主要负责底层硬件资源的管理和控制,提供给上层软件使用

特点:

硬件相关性:需要特定的硬件平台

操作系统相关性:相同硬件平台的不同操作系统也需要不同的BSP软件包支持

内容:

引导加载程序BootLoader

设备驱动器

BootLoader

嵌入式系统,加电后运行的第一段软件代码,是操作系统内核运行之前的一小段运行程序,以便为最终调用操作系统做好准备

1、片段初始化:纯硬件的初始化,芯片

2、板级初始化:同时包含软件和硬件的初始化

3、加载内核,系统级初始化,将操作系统和应用程序的Flash内存复制到系统内存中

分类

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

嵌入式系统

一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成
嵌入式系统分为硬件层、抽象层、操作系统层、中间件层和应用层
操作系统层主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成

嵌入式系统应具备以下特性:

1、专用性强

2、技术融合

3、软硬一体,软件为主

4、比通用计算机资源少

5、程序化代码固化在非易失存储器中

6、需专门开发工具和环境

7、安全性和可靠性要求高

8、体积小,实时性要求高

嵌入式处理器

嵌入式处理器芯片除满足低功耗、体积小等需求外,根据不同环境需求,其工艺可分为民用、工业和军用等三个档次

相关支撑硬件

括存储器、定时器、总线、I0接口以及相关专用硬件。

嵌入式操作系统

运行在嵌入式系统中的基础软件,主要用于管理计算机资源和应用软件。与通用操作系统不同,嵌入式操作系统应具备实时性、可剪裁性和安全性等特征

支撑软件

应用软件开发与运行提供公共服务、软件开发、调试能力

应用软件

嵌入式数据库系统EDBMS

设备随时移动性
网络频繁断接
网络条件多样化
通信能力不对称

一个完整的EDBMS由若干子系统组成,包括主数据库、同步服务器、嵌入式数据库和连接网络等几个子系统

嵌入式移动数据库在实际应用中必须解决好数据的一致性(复制性)、高效的事务处理和数据的安全性等关键问题

嵌入式操作系统

嵌入式操作系统EOS与通用操作系统相比,EOS主要有以下特点:
(1)微型化。EOS的运行平台不是通用计算机,而是嵌入式系统。这类系统一般没有大容量的内存,几乎没有外存,因此,EOS必须做得小巧,以占用尽量少的系统资源。
(2)代码质量高。在大多数嵌入式应用中,存储空间依然是宝贵的资源,这就要求程序代码的质量要高,代码要尽量精简。
(3)专业化。嵌入式系统的硬件平台多种多样,处理器的更新速度快,每种处理器都是针对不同的应用领域而专门设计的。因此,EOS要有很好适应性和移植性,还要支持多种开发平台。
(4)实时性强。嵌入式系统广泛应用于过程控制、数据采集、通信、多媒体信息处理等要求实时响应的场合,因此,实时性成为EOS的又一特点。
(5)可裁减和可配置。应用的多样性要求EOS具有较强的适应能力,能够根据应用的特点和具体要求进行灵活配置和合理裁减,以适应微型化和专业化的要求。

嵌入式实时操作系统

嵌入式实时系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。在嵌入式实时系统中,要求系统在投入运行前即具有确定性和可预测性。

实时操作系统(RTOS)的特点
当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统做出快速响应,并控制所有实时任务协调一致运行。因而,提供及时响应和高可靠性是其主要特点。
实时操作系统有硬实时和软实时之分,硬实时要求在规定的时间内必须完成操作,这是在操作系统设计时保证的;软实时则只要按照任务的优先级,尽可能快地完成操作即可

实时操作系统的特征:
高精度计时系统
多级中断机制:需要建立多级中断嵌套处理机制,以确保对紧迫程度较高的实时事件进行及时响应和处理
实时调度机制:调度策略和算法上保证优先调度实时任务;建立更多“安全切换”时间点,保证及时调度实时任务

嵌入式软件设计

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

1、运行在宿主机强有力的交叉开发工具和程序

2、运行在目标机的高性能,可剪裁的实时操作系统

3、连接宿主机和目标机的多种通信方式

嵌入式系统软件的特点:规模较小、开发难度大、实时性和可靠性要求高、要求固化存储

嵌入式系统的开发需要借助宿主机(通用计算机)来编译出目标机的可执行代码

嵌入式软件的开发可以分为几个阶段:编码、交叉编译、交叉调试。

调试时采用的是在宿主机和目标机之间进行的交叉调试,调试器仍然运行在宿主机的通用操作系统之上,但被调试的进程却是运行在基于特定硬件平台的嵌入式操作系统中