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

从传统意义上讲,嵌入式系统主要由以下部件组成
- 嵌入式微处理器(MCU)
- 存储器(RAM/ROM)
- 内(外)总线逻辑
- 定时/计数器
- 看门狗电路:定时器溢出则中断,系统复位处理
- I/O接口(串口、网络、USB、JTAG接口--用来进行CPU调试的常用接口)
- 外部设备(UART、LED等)
- 其他部件
嵌入式软件开发
嵌入式软件的开发与传统的软件开发方法存在比较大的差异,主要表现在以下方面:
- 嵌入式软件开发是在宿主机(PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机存储器上运行
- 嵌入式软件开发时更强调/硬件协同工作的效率和稳定性
- 嵌入式软件开发的结果通常需要固化在目标系统的存储器或处理器内部存储器资源中
- 嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备
- 嵌入式软件对实时性的要求更高
- 嵌入式软件对安全性和可靠性的要求较高
- 嵌入式软件开发是要充分考虑代码规模
- 在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码审定
- 模块化设计即将一个较大的程序按功能划分成若干程序模块,每个模块实现特定的功能

嵌入式软件设计层面的功耗控制主要可以从以下方面展开:
- 软硬件协同设计,即软件的设计要与硬件的匹配,考虑硬件因素
- 编译优化,采用低功耗优化的编译技术
- 减少系统的持续运行时间,可从算法角度进行进化
- 用“中断”代替“查询”
- 进行电源的有效管理
嵌入式硬件
嵌入式系统的发展大致经历了五个阶段:
- 第一阶段:单片微型计算机(SCM)阶段,即单片机时代
- 第二阶段:微控制器(MCU)阶段
- 第三阶段:片上系统(SoC)
- 第四阶段:以Internet为基础的嵌入式系统
- 第五阶段:在智能化、云技术推动下的嵌入式系统
嵌入式微处理器
通常嵌入式处理器的选择还要根据使用场景不同选择不同类型的处理器,从处理器分类看,大致可分为MPU、MCU、DSP、GPU、SoC:
- 微处理器:将微处理器装配在专门设计的电路板上,只保留与嵌入式应用有关的母版功能。微处理器一般以某一种微处理内核为核心,每一种衍生产品的处理器的内核都是一样的,不同的是存储器和外设的配置和封装
- 微控制器:又称单片机。与MPU相比MCU的最大优点在于单片化,体积大大减小,从而使功耗和成本下降,可靠性提高
- 信号处理器:DSP处理器对系统结构和指令进行了特殊设计(通常,DSP采用一种哈佛结构),使其适合于执行DSP算法,编译率高,指令执行速度也高
- 图形处理器
- GPU是图形处理单元的缩写,是一种可执行渲染3D图形等图修的半导体芯片(处理器)
- GPU可用于个人电脑、工作站、游戏机和一些移动设备上做图像和图形相关运算工作的处理器
- 它可减少对CPU的依赖,并进行部分原本CPU的工作,尤其是在3D图形处理中,GPU采用了核心技术(如:硬件T&L、纹理压缩等)保证了快速3D渲染能力
- GPU目前已广泛用于各行各业,GPU中集成了同时运行在GH的频率上的成千上万个core,可以告诉处理图像数据。最新的GPU峰值性能可高达100TFlops以上
- 片上系统:
- 追求产品系统最大包容的集成器件
- 他是一个产品,是一个有专用目标的集成电路,其中包含完整系统并有嵌入软件的全部内容
- 同时它又是一种技术,用以实现从确定系统功能开始,到软/硬件划分,并完成设计的整个过程
- 成功实现了软硬件的无缝结合,直接在微处理器片内嵌入操作系统的代码模块
- 减少了系统的体积和功耗、提高了可靠性和设计生产效率
- 狭义角度:信息系统核心的芯片集成,是将系统关键部件集成在一块芯片上
- 广义角度:SoC是一个微小型系统,如果说中央处理器(CPU)是大脑、心脏、眼睛和手的系统
- 国内外学术界一般倾向将SoC定义为微处理器、模拟IP核、数字IP核和存储器(或片外存储控制接口)集成在单一芯片上,它通常是客户定制的,或是面向特定用途的标准产品
人工智能芯片
人工智能芯片的定义:从广义上讲只要能够运行人工智能算法的芯片都叫做AI芯片。但是通常意义上的AI芯片指的是针对人工智能算法做了特殊加速设计的芯片,现阶段,这些人工智能算法一般以深度学习算法为主,也可以包括其他机器学习算法。
人工智能芯片四大类(按技术架构分类):
- GPU
- FPGA(现场可编程门阵列)
- ASIC(专用集成电路)
- 类脑芯片
AI芯片的关键特征
- 新型的计算范式:AI计算既不脱离传统计算,也具有新的计算特质
- 训练和推断:AI系统通常涉及训练和推断过程
- 大数据处理能力:满足高效能机器学习和数据处理要求
- 数据精度:降低精度的设计
- 可重构的能力:针对特定领域而不针对特定应用的设计,可以通过重新配置,适应新的AI算法、架构和任务
- 开发工具:AI芯片需要软件工具链的支持
嵌入式微处理器体系结构

总线
基本概念
总线是一组能为多个部件分时共享的信息传送线,用来连接过个部件并为之提供信息交换通路。【总线通常是半双工的】
特点
- 挂接在总线上的多个部件只能分时向总线发送数据,但可同时从总线接收数据
- 通过总线复用方式可以减少总线中信号线的数量,以较少的信号线传输更多的信息
- 从功能上来对总线进行划分数据总线、地址总线和控制总线
- 从数据传输的方式划分并行总线和串行总线
串行总线
将数据字节的各位用多条数据线同时进行传送【短距离】
串行总线
数据是一位一位地进行传输的,在传输中每一位数据都占据一个固定的时间长度【长距离,传输波特率可调整,正确性依赖与校验码,数据传输方式可以使用多种】
嵌入式操作系统的定义及特点
嵌入式操作系统是指用于嵌入式系统的操作系统。嵌入式操作系统是一种用途广泛的系统软件,负责嵌入式系统的全部软、硬件资源分配、任务调度、控制、协调并进行活动等工作。通常包括与硬件相关的底层驱动软件、系统内核、设备驱动接口、通信协议、图形界面、标准化浏览器等
划分
根据系统对时间的敏感程度可将嵌入式系统划分为:
嵌入式实时操作系统
嵌入式非实时系统:能够在制定或者确定的时间内完成系统功能和外部或内部、同步或异步时间做出响应的系统
嵌入式实时操作系统兼具嵌入式操作系统的特点和实时操作系统的特点
特点
- 微型化
- 代码质量高
- 专业化
- 实时性强
- 可剪裁、可配置
实时操作系统的最核心特点是实时性强
嵌入式实时操作系统实时性的评价指标
- 中断响应和延迟时间
- 任务切换时间
- 信号量混洗时间
嵌入式实时操作系统调度算法
- 优先级调度算法:系统为每个人物分配一个相对固定的优先顺序
- 抢占式优先级调度算法:根据任务的紧急程度确定该任务的优先级。大多数RTOS调度算法都是抢占方式(可剥夺方式)
- 最早截止期调度算法(EDF算法):根据任务的截止时间头端来确定其优先级,对于时间期限最近的任务,分配最高的优先级
- 最晚截止期调度算法:根据任务的截止时间末端确定其优先级,对于时间期限最近的任务,分配最高的优先级
嵌入式操作系统
操作系统内核架构
内核是操作系统的核心部分,它管理着系统的各种资源。内核可以看到成连接应用程序和硬件的一座桥梁,是直接运行在硬件上的最基础的软件实体
目前从内核架构来划分,可分为宏内核和微内核

嵌入式数据库
与传统数据库相比,嵌入式数据库系统有以下几个主要特点
- 嵌入式
- 实时性
- 移动性
- 伸缩性
分类
- 基于内存方式
- 基于文件方式
- 基于网络方式

嵌入式网络数据库
- 实际上,嵌入式网络数据库是把功能强大的远程数据库映射到本地数据库,使嵌入式设备访问远程数据库就像访问本地数据库一样方便
- 嵌入式网络数据库主要由三部分组成:客户端、通信协议和远程服务器。客户端主要负责提供接口给嵌入式程序,通信协议负责规范客户端与远程服务器之间的通信,还需要解决多客户端的并发问题,远程服务器负责维护服务器上的数据库数据
- 由嵌入式网络数据库、嵌入式本地数据库(内存或文件)和嵌入式Web服务器等构成了综合的嵌入式综合信息系统