ps:本博客内容只针对博主复习期间对考点的一些总结,内容可能并不全面,还望海涵。也欢迎大家补充和指点错误~~
嵌入式系统概论
- 嵌入式系统是一种完全嵌入受控器件内部,为特定应用而设计的专用计算机系统。
嵌入式特点
- 系统专用性很强 。是针对具体应用的专用系统。
- 软、硬件依赖性强。嵌入式系统的专用性决定其软、硬件的互相依赖性很强,必须协同设计,共同实现功能。
- 系统实时性强。有相当一部分系统对外来时间要求在限定时间内做出相应,具有实时性。
- 处理器专用。嵌入式系统的处理器一般是为了某一特定目的和应用而专门设计的,通常具有功耗低,体积小,集成度高等优点。
- 多种技术紧密结合。嵌入式系统通常是计算机技术、半导体技术、电力电子技术、机械技术等与各行业具体应用相结合的产物。
- 系统透明性。用户可能根本感受不到所使用的设备中有嵌入式系统的存在。.
- 系统资源受限。为达到结构紧凑,可靠性高及降低系统成本的目的,其存储容量、I/O设备数量和处理器的处理能力都比较受限。
实时嵌入式系统(RTES)
-
逻辑(或功能)正确:系统处理外部事件产生正确的结果;
-
时间正确:系统处理外部事件必须在预定的周期内完成;
-
死线:系统处理外部事件的最迟时间界限,通常必须在到达死线之前完成。
-
实时系统:指功能正确和时间正确同时满足的系统。
-
根据对错失死线的容忍程度分为
-
硬RTES :对错失死线为零容忍的程度,一旦错失其处理的结果的价值为零,其惩罚是灾难性的。
-
软RTES:具有一定的灵活性,死线包含可变的容忍等级和平均时间死线,甚至带有不同程度的可接受性的响应时间的统计分布,其产生的结果的价值随时间按某种关系下降,错失死线不会导致系统失败。
-
嵌入式系统的基本体系结构
- 嵌入式系统由软件和硬件组成。硬件包括:处理器、存储器、外部设备;软件包括:(基础的)系统软件、支撑软件以及最能体现嵌入式系统特点和功能的应用软件。
硬件体系结构
-
微处理机是核心,负责控制系统的执行;有如下几类:
-
嵌入式微处理器:由通用计算机的CPU演化而来,具有体积小、功耗低、质量轻、成本低、可靠性高的优点。
-
嵌入式微控制器:又称单片机,将整个计算机系统都集成到一块芯片上,和嵌入式微处理机相比最大特点是单片化,体积更小、功耗和成本更低,可靠性更高。
-
嵌入式数字信号处理器:一种专门用于信号处理的处理器;
-
嵌入式片上系统 :一种在一块芯片上集成很多功能模块的复杂系统,大幅度缩小了系统的体积,降低了系统的复杂度,增强了可靠性。
-
-
外部设备是嵌入式系统同外界交互的通道;
- Flash存储器、键盘、输入笔、触摸屏、液晶显示器
-
存储器用于存放系统的代码、数据和运行结果;
- RAM、ROM、混合存储器
软件体系结构
-
这个体系自底向上由:嵌入式操作系统、支撑软件、应用软件 组成。
-
嵌入式操作系统(EOS):由操作系统内核(大多数内核都包含的3个公共部件:调度器、内核对象、内核服务)、应用程序接口、设备驱动程序接口 组成。
-
支撑软件由: 窗口系统、网络系统、数据库系统、java虚拟机 组成。
嵌入式操作系统(EOS)
-
概念:是指运行在嵌入式计算机系统上的支持嵌入式应用程序的操作系统,是用于控制和管理嵌入式系统中的硬件和软件资源、提供系统服务的软件集合。
-
特点:
-
微型化(没有大容量的内存,几乎没有外存);
-
代码质量高(存储空间资源宝贵,所以要求代码质量高,要尽量精简);
-
专业化(每种都是针对不同的应用领域而专门设计的);
-
实时性强(广泛运用于要求实时性的场合);
-
可裁剪、可配置(根据应用的特点和具体要求进行灵活配置和合理裁减,以适应微型化和专业化的要求)。
-
-
分类:
-
实时嵌入式操作系统(RTOS):对时间要求严格,其次在着眼于提高系统使用效率;
-
非实时嵌入式操作系统:不特别关注单个任务的相应时限,对平均性能、系统效率和资源利用率一般较高。
-
操作系统的内核
-
调度器:EOS的心脏,提供一组算法决定何时执行哪种任务;
-
基于优先级的抢占调度
-
静态优先级:指执行过程中优先级固定不变;
-
动态优先级:指执行过程中优先级可以动态变化;
-
-
时间轮转调度:为每个任务提供确定份额的CPU执行时间,纯粹的时间轮转无法满足实时系统要求,取而代之的是,基于优先级抢占式扩充时间轮转调度对于优先级相同的任务分配相同份额的CPU使用时间
-
-
内核对象:特殊的内核构件,帮助创建嵌入式应用;
-
RTOS可使用内核对象解决实时系统设计中的问题。
-
内核对象包括:
-
信号量:
-
二值信号量:0,认为不可用,1为可用
-
计数信号量:0,表示不可用,数值大于0,表示可用
-
互斥信号量:初值为1,默认可用
-
-
消息队列:相当于中介,实现任务之间的数据交换;
-
管道::提供非结构化数据交换和实现任务同步的内核对象,每个管道有两个端口,一个用来读,一个用来写,数据按照FIFO方式从管道读出,支持命名管道和无名管道;
-
事件: 经过时间寄存器一个任务可以检查出它执行的特殊任务是否出现;
-
信号:是当一个事件发生时产生的软中断,将信号接收者从其正常的执行路径移开并触发相关的异步处理。
-
条件变量:是一个与共享资源相关的内核对象,它允许一个任务等待其他任务创建共享资源需要的条件。
-
-
-
内核服务:是内核在对象上执行的操作。
- 异常与中断、计时器、I/O管理
常见的嵌入式操作系统
VxWorks、Palm、Windows CE、Linux
嵌入式操作系统数据库(移动数据库)
-
嵌入式操作系统数据库主要解决的问题是移动计算环境下数据的管理问题。
-
在嵌入式系统中引入数据库技术主要缺点:
-
所有的应用都需要重复进行数据管理工作,增加开发难度和代价;
-
各应用之间数据的共享性差;
-
应用软件的可移植性、独立性差、可重用性低;
-
-
在嵌入式系统中引入DBMS可很大程度解决上述问题,提高开发效率和可移植性。
-
嵌入式数据库系统的使用环境的特点:
- 设备随时移动性、网络频繁断接、网络条件多样化、通信能力不对称
-
嵌入式数据库系统的组成
- 主DBMS、嵌入式DBMS、同步服务器、连接网络
-
嵌入式数据库系统需要解决的问题
- 数据的一致性、数据的安全性、高效的事务处理
-
嵌入式数据库系统的特性
- 微核结构、对标准SQL的支持、事务管理功能、完善的数据同步机制、支持多种连接协议、完备的嵌入式数据库的管理功能、支持多种EOS
-
嵌入式数据库系统的实例
- Adaptive Server Anywhere 嵌入式DBMS、UItraLite 提交工具、MobiLink同步服务器、PowerDesigner Physical Architect数据库模型设计工具、PowerDynamo Web动态页面服务器、JConnect JDBC驱动器、Sybase Central图形化管理工具
嵌入式系统网络
-
嵌入式系统网络:用于连接各种嵌入式系统,使之可以互相交换信息,共享资源的网络系统。
-
嵌入式系统在不同场合采用不同的连接技术,家庭居室采用家庭信息网,工业自动化领域采用现场总线,移动信息设备采用移动通信网。
现场总线(工业自动化领域的计算机局域网)
-
将数字传感器、变换器、工业仪表及控制执行机构等现场设备与工业过程控制单元、现场操作站等互相连接而形成的网络。具有全数字化、分散、双向传输和多分支结构的特点,是工业控制网络向现场级发展的产物。
-
嵌入式因特网
-
接入方式:
-
直接接入:设备直接接入Internet,对Inernet直接进行访问,不需要专门的接入设备,需要的处理器性能和资源相对较高,需要占用IP资源,IPV4资源紧张,在IPV6网中可能更现实。
-
通过网关接入:设备不直接接入,不需要复杂的TCP/IP协议全集,通过接入设备(路由器)接入Internet.,对接入设备的性能和资源要求较低,接入设备的协议栈开销较小,不需要分配合法的IP地址,可以降低系统整个成本,设备可以实现多样化、小型化。
-
-
嵌入式TCP/IP协议栈和完整的TCP/IP协议栈比较
-
两者完成的功能是相同的
-
嵌入式协议栈的调用接口与完整的协议栈不同。完整的协议栈是是标准的、兼容性好、代码开销、处理和存储开销等都是巨大的;而嵌入式协议栈是修改简化的,是高效率的,它所提供的API与通用协议栈的API不一定完全一致。
-
嵌入式协议栈的可裁剪性,嵌入式协议栈大多是模块化的 ,可以在需要时进行动态安装。
-
嵌入式协议栈的平台兼容性,一般协议栈与操作系统结合紧密,移植性差,但嵌入式协议栈的实现一般对操作系统的依赖性不大,便于移植。
-
嵌入式协议栈的高效率,嵌入式协议栈的实现通常占用更少的空间,需要的数据存储器更小,代码效率高,从而降低了对处理器性能的要求。
嵌入式系统开发
开发环境与过程
-
嵌入式系统的软件开发采用交叉平台开发方法(CPD),即软件在一个通用的平台(宿主机系统)上开发,而在另一个嵌入式目标平台上运行(目标机系统)。
-
当软件的开发环境和执行环境一致时叫做本地开发。
-
CPD通常包含三个高度集成的部分:
-
运行在宿主机和目标机上强有力的交叉开发工具和实用程序;
-
运行在目标机上高性能、可裁剪的RTOS(实时嵌入式操作系统)
-
连接宿主机和目标机的多种通信方式(以太网、串口线、ICE(在线仿真器)、ROM仿真器)
-
开发过程
- 项目计划、可行性分析、需求分析、概要设计、详细设计、程序建立、下载、调试、固化、测试及运行
调试方法
-
通用系统与嵌入式系统的软件调试过程具有显著差异。
-
通用系统:调试工具与被调试的程序位于同一计算机上。
-
嵌入式系统:由于资源限制,调试过程也是以交叉式进行的。
-
嵌入式系统常用的调试方法:直接调试法、调试监控法、在线仿真法、片上调试法、模拟器法