一、概述
嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁剪的软、硬件集成与一体的专用计算机系统,需要满足应用对功能、可靠性、成本、提及和功耗等方面的严格要求。
从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。
一般嵌入式系统由嵌入式处理器、相关支撑硬件、嵌入式操作系统、支撑软件以及应用软件组成。
二、嵌入式系统的发展历程
第一阶段:
单片微型计算机(SCM)阶段,即单片机阶段。硬件为单片机,软件为无操作系统阶
段,采用汇编语言实现。嵌入式处理器为:微控制器(MCU)
主要特点:系统结构和功能点单一,处理效率低、存储容量有限、几乎没有用户接口。
第二阶段:
微控制器(MUC)阶段。主要技术发展方向:不断扩展对象系统要求和各种外围电路
和接口电路,突显其对象的智能化控制能力。主要以嵌入式微处理器为基础,以简单的操作
系统为核心。
主要特点:硬件使用嵌入式微处理器,嵌入式微处理器种类繁多,通用性较弱,系统开
销小,效率高
第三阶段:
片上系统(SoC,System on Chip)阶段。
主要特点:嵌入式系统能够运行于各种不同类型的微处理器上,兼容性好,操作系统的
内核小,效率高。
第四阶段:
以因特网为基础的嵌入式系统。嵌入式网络化主要表现在:1. 嵌入式处理器集成了网络
接口;2. 嵌入式设备应用于网络环境中
第五阶段:
智能化、云技术结合阶段。
主要特点:低能耗、高速度、高集成、高可信、适用范围广。
发展方向:
1. 面向端-端系统微型传感器设备
2. 面向智能服务的设备
三、嵌入式软件开发
嵌入式软件开发与传统软开发相比:
1. 嵌入式软件开发是在宿主机上用专门的嵌入式开发工具,生成二进制代码后,需要使
用工具卸载到目标机或固化在目标机的存储器上运行。
2. 嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性。
3. 嵌入式软件开发的结果通常需要固化在目标系统的存储器或存储器内部存储器资源
中。
4. 嵌入式软件开发一般需要专门的开发工具、目标系统和测试设备。
5. 嵌入式软件对实时性、安全性、可靠性的要求更高,开发时要考虑代码规模。
6. 在安全攸关系统中的嵌入式软件,其开发还要满足某些领域设计和代码审定。
7. 模块化设计,将较大的程序分成若干个模块。
JTAG(联合测试工作组):主要用于芯片内部测试和调试。
嵌入式软件设计层面功耗控制设计:
1. 软硬件协同编程,即软件的设计要与硬件相匹配
2. 编译优化,采用低功耗优化的编译技术
3. 减少系统的持续运行时间,可从算法角度进行优化
4. 用“中断”代替“查询”
5. 进行电源的有效管理
四、嵌入式处理器
1. 微处理器(MPU):
装配在专门设计的电路板上,只保留与嵌入式应用有关的母板功能。一般以某种微处理
内核为核心。
优点:体积小、重量轻,成本低,可靠性高。
缺点:电路板上必须包括各种接口和外设,降低了系统的可靠性。
2. 微控制器(MCU):
与MPC相比,最大的优点在于单片化,体积大大减小,降低功能和成本,提高可靠性
3. 信号处理器(DSP):
DSP处理器对系统结构和指令进行了特殊设计,采用哈佛结构,使其适合于执行DSP指
令,编译效率高,指令执行速度快。
冯诺依曼体系结构和哈佛结构对比:
分类 | 定义 | 特点 | 举例 |
冯诺依曼体系结构 | 将程序指令和数据存储器合并在一起的存储器结构 | 指令和数据存储器合并在一起。 指令和数据都通过相同的数据总线传输 | 一般用于常规计算机处理器,PC机 |
哈佛结构 | 一种并行结构,将程序和数据存储在不同的存储空间中,每个存储器独立编址、独立访问 | 指令和数据分开存储,可以并行读取,有较高的数据吞吐量。 有4条总线:指令数据总线,指令地址总线;数据数据总线,数据地址总线 | 一般用于嵌入式系统处理器。DSP |
4. 图形处理器(GPU):
是一种可执行渲染3D图形等图像的半导体芯片(处理器)。
可以用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的处
理器。可以减少对CPU的依赖,并执行部分CPU的工作。GPU采用了核心技术(硬件T&L、
纹理压缩等)保证3D快速渲染的能力。
最新GPU峰值性能扩大100T flops以上。
5. 片上系统(SoC):
SoC追求产品系统最大包容的集成电路。它是一个产品,是一个有专用目标的集成电
路,其中包含完整系统并有嵌入软件的全部内容。它是一种技术,用以实现从确定系统功能
开始,到软/硬件划分,并完成设计的整个过程。成功实现了软硬件的无缝结合,直接在软
处理器片内核嵌入操作系统的代码模块。减小了系统的体积和功耗,提高了可靠性和设计生
产效 率。一般倾向于将SoC定义为微处理器、模拟IP核、数字IP核和存储器集成在单一芯片
上,通常是用户定制的,或者面向特殊用途的标准产品。
从狭义上来说:SoC是信息系统核心的芯片集成,是将系统关键部件集成在芯片上。
从广义上来说:SoC是一个微小型系统。
6. 人工智能芯片:
广义上:能够运行人工智能算法的芯片;
狭义上:针对人工智能算法做了特殊加速设计的芯片
人工智能芯片:
GPU:大规模数据计算或图形处理;
FPGA(现场可编程门阵列):对硬件进行配置,定制开发
ASIC(专用集成电路):性价比高
类脑芯片:生物智能,模拟人脑计算
人工智能芯片的特性:
1. 新型的计算范式;2. 训练和推理;3. 大数据处理能力;4.数据精度(降低);5.
可重构能力(针对不同领域特定设计);
五、总线
总线是一组能为多个部件分时共享的信息传送线,用来连接多个部件并为之提供信息交换通路。总线总是半双工的。
总线的类型:
单工:一根总线,只能进行发送或接收(单向)
半双工:一根总线,在同一个时刻只能进行发送或接收(双向)
全双工(双工):两根总线,可以同时进行发送和接收
特点:
1. 挂接在总线上的多个部件只能分时向总线发送数据,但可以同时从总线接收数据
2. 通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息
从功能上分总线分为:数据总线、地址总线、控制总线
从数据传输方式分为:
并行总线:将数据字节的各位用多条数据线同时传送(适合短距离传送)
串行总线:数据是一位一位进行传输的,在传输中每一位数据都占据一个固定的时间长
度。适合长距离传输,数据的准确性依赖于校验码,传输波特率可调整,数据的传输方式有
多种。是半双工的
六、嵌入式操作系统
定义:负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并行活动等工作。 通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等。
特点:1. 可剪裁性;2. 可移植性;3. 强实时性;4. 强紧凑型(微型化);5. 高质量代码;6. 强定制性;7. 标准接口;8. 强稳定性;9. 强确定性(专业化程度高);10. 操作简捷、方便;11. 较强的硬件适应性;12. 可固化性
嵌入式操作系统的架构模式:层次架构、递归架构
嵌入式操作系统的分类:1. 嵌入式非实时操作系统;2. 嵌入式实时操作系统
嵌入式实时操作系统:
定义:能够在指定或者确定的时间内完成系统功能和外部或内部、同步或异步时间
做出响应的系统。
评价指标:1. 中断时间和延迟时间;2. 任务切换时间;3.信号量混洗时间
嵌入式实时操作系统常见的调度算法:
1. 优先级调度算法:每个任务又一个固定的优先级
2. 抢占式优先级调度算法:根据任务紧急程度动态调整优先级
3. 最早截止期调度算法:根据任务最早截止时间确定优先级
4. 最晚截止期调度算法:根据任务最晚截止时间确定优先级
七、内核
内核是嵌入式操作系统的核心,管理系统的各种资源,是连接应用程序和硬件的桥梁,是直接运行在硬件上的最基础的软件实体
内核分为:微内核和宏内核,区别在于内核空间内实现空间的多少。
实质 | 优点 | 缺点 | |
宏内核(单内核) | 将功能全部在内核中实现,运行在内核状态和同一地址空间 | 减少进程通信和状态切换的系统开销,运行效率高 | 内核庞大、占用资源多且不易裁剪。系统的稳定性和安全性差 |
微内核(鸿蒙OS) | 只实现基本功能,其余功能在内核外实现 | 内核结构清晰,有利于协作开发;内核精炼,有利于裁剪和移植;可靠性、稳定性、安全性高,可用于分布式系统 | 用户态与和心态需要频繁切换,效率低 |
八、嵌入式数据库
特点:嵌入式、实时性、移动性、伸缩性
嵌入式操作系统的分类:
1. 基于内存方式(MMDB)
2. 基于文件方式(FDB)
3. 基于网络方式(NDB)
定义 | 特点 | |
基于内存的数据库 | 实时系统和数据库系统的有机结合 | 内存数据库是支持实时事务的最佳技术。本质特征是以其主拷贝或工作版本常驻内存活动事务只与数实时内存数据库的内存拷贝打交道 |
基于文件的数据库 | 以文件的方式存储数据库数据 | 访问方式是被动式的,安全性低,可以满足嵌入式系统在空间、时间等方面的特殊要求 |
基于网络的数据库 | 基于手机4G/5G的通信基础上,在逻辑上可以把嵌入式设备看作远程服务器的客户端 | 无需解析SQL语句;支持更多的SQL操作;客户端小,无须支持可剪裁性;有利于代码的重用 |
基于网络的嵌入式数据库的实现原理:
1. 把功能强大的远程数据库映射到本地数据库,使嵌入式设备访问远程数据库就像访问
本地数据库一样方便
2. 嵌入式网络数据库由客户端、通信协议、远程服务器组成。客户端主要负责提供接口
给嵌入式程序;通信协议负责规范客户端与远程服务器的通信和解决并发;远程服务器负责
维护数据库上的数据库数据。
九、鸿蒙OS
鸿蒙OS采用分层的层次化设计,从下至上依次为:内核层、系统服务层、框架层、应用层。系统按照系统-子系统-功能/模块展开。
鸿蒙OS的4个技术特性:
1. 分布式架构首次应用与终端OS,实现跨终端无缝协同体验,实现了分布式软总线、
分布式数据管理、分布式任务调度、虚拟外设四大能力
2. 确定时延引擎和高性能IPC技术实现系统天生流程,在任务执行前分配系统中任务执
行优先级及时限进行调度处理
3. 基于微内核架构重塑助终端设备安全性
4. 通过统一IDE支撑一次开发,多端部署,实现跨终端生态共享