文章目录
本章前言:清华第二版教材这一节写的颠三倒四、毫无章法。我在笔记中尽量做了改进,所以顺序和教材中出入较大,但重点内容尽可能的保留了。
1. 基本概念
- 嵌入式系统是以应用为中心、以计算机技术为基础,并将可配置与可裁减的软、硬件集成于一体的专用计算机系统,需要满足应用对功能、可靠性、成本、体积和功耗等方面的严格要求。
- 嵌入式系统通常通过外部接口采集相关输入信息或人机接口输入的命令,对输入数据进行加工和计算,并将计算结果通过外部接口输出,以控制受控对象
- 从计算机角度看,嵌入式系统是指嵌入各种设备及应用产品内部的计算机系统。它主要完成信号控制的功能,体积小、结构紧凑,可作为一个部件埋藏于所控制的装置中。它提供用户接口,管理有关信息的输入输出和设备监控工作,使设备及应用系统有较高智能和性价比。
- 从技术角度看,嵌入式系统是计算机技术、通信技术、半导体技术、微电子技术、语音图像、数据传输技术,以及传感器等先进技术和具体应用对象相结合后的换代产品,是技术密集、投资规模大、高度分散、不断创新的知识密集型系统,反映了当代最新技术的先进水平。
从综合角度看,嵌入式系统定义为现代科学多学科相互融合的以应用技术产品为核心,以计算机技术为基础,以通信技术为载体,以消费类产品为对象,引入各类传感器,引入Internet网络技术的连接,从而适应应用环境的产品。
- 工作原理
2. 嵌入式系统的组成
-
嵌入式处理器
- 特点:低功耗、体积小、适应恶劣环境
- 工艺档次分类:民用、工业、军用
-
相关支撑硬件
- 包括:存储器、定时器、总线、IO接口、相关专用硬件
-
嵌入式操作系统
- 特征:
实时性
、可剪裁性
、安全性
- 特征:
-
支撑软件:支撑软件是指为应用软件开发与运行提供公共服务、软件开发、调试能力的软件,支撑软件的公共服务通常运行在操作系统之上,以库的方式被应用软件所引用。
-
应用软件:应用软件是指为完成嵌入式系统的某一特定目标所开发的软件。
示例:一个基于ARM处理器的嵌入式计算机硬件组
- 嵌入式ARM处理器
- 相关支撑硬件:存储器、输出设、输入设备、接口和网络总线
本嵌入式存储器配备了非易失存储器(Flash)、内存(SDRAM)、硬盘(非线性Flash盘),显示设备配备了LCD显示,输入设备配备了键盘设备,提供了RS-232串行接口、USB接口和JTAG等三路I/O接口,配备了TCP/IP 网络和 CAN总线。
3. 嵌入式系统的特点
- 专用性强
面向特定应用需求,能够把通用CPU中许多由板卡完成的任务集成在芯片内部,从而有利于嵌入式系统的小型化。 - 技术融合
将先进的计算机技术、通信技术、半导体技术和电子技术与各个行业的具体应用相结合,是一个技术密集、资金密集、高度分散、不断创新的知识集成系统。 - 软硬一体软件为主
软件是嵌入式系统的主体,有IP核。嵌入式系统的硬件和软件都可以高效地设计,量体裁衣,去除冗余,可以在同样的硅片面积上实现更高的性能。 - 比通用计算机资源少
由于嵌入式系统通常只完成少数几个任务。设计时考虑到其经济性,不能使用通用CPU,这就意味着管理的资源少,成本低,结构更简单。 - 程序代码固化在非易失存储器中
为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存在磁盘中。 - 需专门开发工具和环境
嵌入式系统本身不具备开发能力,即使设计完成以后,用户通常也不能对其中的程序功能进行修改,必须有一套开发工具和环境才能进行开发。 - 体积小、价格低、工艺先进、性能价格比高、系统配置要求低、实时性强
- 对安全性和可靠性的要求高
4. 嵌入式系统分类
4.1 分类
- 根据不同用途分:
- 嵌入式实时系统
- 强实时 (Hard Real-Time) 系统
- 弱实时(WeakReal-Time)系统
- 嵌入式非实时系统
- 嵌入式实时系统
- 从安全性要求分
- 安全攸关(Safety-Critical 或 Life-Critical)系统
- 非安全关系统
4.2 实时系统(Real-Time System,RTS)
- 概念:指能够在指定时间内完成系统功能和做出响应的系统。(可以是同步或异步)
- 系统计算的正确性不仅取决于程序的逻辑正确性,也取决于结果产生的时间(如果系统的时间约束条件得不到满足,将会发生系统错误。)
4.3 安全攸关系统 (Safety-Critical System)
是指其不正确的功能或者失效会导致人员伤亡、财产损失等严重后果的计算机系统。
7. 嵌入式软件
7.1. 嵌入式系统软件组成架构
由于嵌入式系统和硬件的紧密耦合,因此软件的分层架构也包含了硬件层。
7.1.1 硬件层
包括:微处理器存储器 (ROM、SDRAM、FIash 等)、IO接口(A/D、D/A、I等)、通用设备、总线、电源时钟等
7.1.2 抽象层
对硬件进行抽象,为上层应用(操作系统)提供虚拟的硬件资源
如:板级支持包(Board Support Package,BSP)是一种硬件驱动软件,它是面向硬件层的硬件芯片或电路进行驱动,为上层操作系统提供对硬件进行管理的支持。
7.1.3 操作系统层
- 主要由嵌入式操作系统、文件系统、图形用户接口、网络系统和通用组件等可配置模块组成
教材上的一些废话:嵌入式操作系统的功能主要包括任务管理、内部存储器管理任务间通信管理和时钟/中断管理等,主要完成系统的硬件资源、软件资源进行调度和管理可配置组件是对操作系统的基本功能的扩展,为用户提供更加丰富的公共能力,这些组件具备可配置和可剪裁特性,用户可根据自己设计的应用系统需求,做适当组合。通常可配置组件包括了文件系统、设备管理、运行时库 (RTL)、图形用户接口 (GUI)、网络管理(如TCP/IP)和支持系统软件调试用的目标机代理 (Agent) 等组件。
7.1.4 中间件层
- 作用:管理计算机资源和网络通信,是各中间件的桥梁
- 嵌入式中间件的分类:中间件可分为服务中间、件集成中间件、数据中间件、消息中间件和安全中间件等5类
- 常用的中间件产品:嵌入式数据库、OpenGL 图形图像处理软件、JAVA 中间件、虚拟机(VM)、DDS/CORBA 、Hadoop 等
7.1.5 应用层
应用层是指嵌入式系统的具体应用,主要包括不同的应用软件。
7.2 嵌入式软件的特点
- 可剪裁性
- 嵌入式软件能够根据系统功能需求,通过工具进行适应性功能的加或减,删除掉系统不需要的软件模块,使得系统更加紧凑。
- 设计方法:静态编译、动态库、控制函数流程实现功能控制等。
- 可配置性
- 嵌入式软件需要具备根据系统运行功能或性能需要而被配置的能力,使得嵌入式软件能够根据系统的不同状态、不同容量和不同流程,对软件工作状况进行能力的扩展.变更和增量服务。
- 设计方法:数据驱动、静态编译、配置表
- 强实时性
- 概念:要求任务必须在规定的时限内处理完成
- 影响因素:算法优劣
- 设计方法:表驱动、配置、静/动态结合、汇编语言
- 安全性
- 概念: 系统在规定的条件下和规定的时间内不发生事故的能力
- 提高安全性采用的设计方法:编码标准、安保障机制、FMECA (故障模式、影响及危害性分析)。
- 可靠性
- 概念:指系统在规定的条件下和规定的时间周期内程序执行所要求的功能的能力。
- 在安全攸关系统中,其系统的可靠性指标通常要达到10~10
- 提高安全性通常采用的设计方法包:括容错技术、余度技术、鲁棒性设计等。
- 高确定性
- 概念:嵌入式系统运行的时间、状态和行为是预先设计规划好的,其行为不能随时间、状态的变迁而变化
- 确保软件确定性通常采用的设计方法:静态分配资源、越界检查、状态机、静态任务调度等。
7.3 与传统软件的差异
- 嵌入式软件开发是在宿主机 (PC机或工作站)上使用专门的嵌入式工具开发,生成二进制代码后,需要使用工具卸载到目标机或固化在目标机存储器上
- 嵌入式软件开发时更强调软/硬件协同工作的效率和稳定性
- 嵌入式软件开发的结果通常需要固化在目标系统的储存器或处理器内部储存器资源中
- 嵌入式软件的开发一般需要专门的开发工具、目标系统和测试设备。
- 嵌入式软件对实时性的要求更高。
- 嵌入式软件对安全性和可靠性的要求较高。
- 嵌入式软件开发是要充分考虑代码规模。
- 在安全攸关系统中的嵌入式软件,其开发还应满足某些领域对设计和代码审定。
- 模块化设计即将一个较大的程序按功能划分成若千程序模块,每个模块实现特定的功能
2.4.4 安全攸关软件的安全性设计
- 软件安全的定义:在软件生命周期内,应用安全工程技术,确保软件采取积极的措施提高系统安全性,确保降低系统安全性的错误,使其减少或控制在一个风险可接受的水平内。
NASA8719.13A