Preface

嵌入式系统是一种以应用为中心,以计算机技术为基础,可以适应不同应用对功能、可靠性、成本、体积、功耗等方面的要求,集可配置可裁剪的软硬件于一体的计算机系统。它的主要特点是:

  • 专用性强:个性化很强,软硬件结合紧密;
  • 软硬件依赖性强:软硬件必须协同设计,以达到预期功能并满足性能、成本及可靠性要求;
  • 实时性强;
  • 处理器专用:处理器一般专为某种特定目的设计,功耗低、体积小、集成度高;
  • 多种技术紧密结合:常见计算机技术、半导体技术、电力电子技术、机械技术等结合;
  • 系统透明性;
  • 系统资源受限。

兼具实时性和嵌入式特性的系统称为实时嵌入式系统(Real-Time Embeded System, RTES)。RTES一般具有如下几个概念:

  • 逻辑正确:对外部输入可以正确处理;
  • 时间正确:系统对外部输入的处理必须在预定的周期内完成;
  • Deadline:对外部输入处理的最迟时间界限;
  • 实时系统:同时满足逻辑正确、时间正确的系统,二者的重要程度等同;但是在特殊情形下也可能牺牲时间正确性保证逻辑正确性。

根据对Deadline容忍程度的不同,一般可以分为硬RTES和软RTES。一般任务的开始时间和Deadline同样重要,如果任务缺少必要的资源,就有可能阻碍人物的开始并错失Deadline,因此deadline问题就演变为资源调度问题。

基本结构

Hardware

核心部件是各种类型的嵌入式处理器:

  • 嵌入式微处理器(MPU):由计算机通用CPU演变而来,体积小、功耗低、质量轻、成本低以及可靠性高;
  • 嵌入式微控制器(MCU):单片机,计算机系统集成到单个芯片中,具有更多的必要外设;
  • 嵌入式数字处理器(DSP):专用于信号处理,采用数据指令分离的哈佛结构,具有专门的硬件乘法器且广泛采用流水线操作;
  • 嵌入式片上系统(SoC):集成了很多功能模块的复杂系统。

Software

软件架构主要分为系统层、支撑软件层和应用程序层。 操作系统层一般采用微内核架构,负责进程调度以及IPC、内存分配及异常和中断管理等基本任务;支撑软件层负责窗口系统、网络系统、DBMS及Java虚拟机构成,不过一般嵌入式软件开发环境也被认为是支撑软件层的一部分;应用软件层是系统功能的集中体现。

嵌入式操作系统(Embeded OS, EOS)是运行在嵌入式硬件系统上的操作系统,具有如下特点:

  • 微型化:由于嵌入式系统中存储资源宝贵,因此EOS一般都设计的小型化以减少对系统资源的占用,并固化在存储器芯片中;
  • 代码质量高:以节省存储资源;
  • 专业化:广泛支持不同的硬件平台,因此具有很好的适应性和可移植性;
  • 实时性强:要求任务处理的实时性;
  • 可裁剪、可配置:可以根据应用的灵活性进行配置和合理的裁剪,以适应的微型化和专业化的需求。

EOS又可以分为实时操作系统(Real-Time OS, RTOS)和非实时操作系统。

image.png

大多数EOS内核都包含以下的三个公共部分:

  1. 调度器:EOS的心脏,提供一组算法决定任务的执行顺序;
  2. 内核对象:特殊的内核构件,帮助创建嵌入式应用;
  3. 内核服务:是内核在对象上执行的操作后者通用操作。
多任务调度机制

任务是独立执行的线程;任务对象由任务名、ID、优先级、任务控制块、堆栈和执行例程构成;多任务是指系统在预定的死线内处理多个活动的能力;调度器是内核的心脏;可调度实体是指可以根据预定的调度算法竞争到系统执行时间的内核对象;上下文切换是指每次被调度运行时所要求的寄存器状态;可重入性是指一段代码被多个任务调用而不必担心数据被破坏;分发器时调度器的一部分,执行上下文切换并改变执行的流程。

任务执行时间不作为评价系统性能的指标。

常见的调度算法:

  • 基于优先级的抢占调度:
    • 静态优先级
    • 动态优先级
    • RMS调度:
      • 任务是周期性的,不需要同步和资源共享,长度固定
      • 抢占式调度
      • 为满足实时性需求,RMS调度时CPU利用率应当小于70%

其它调度算法下CPU利用率应该维持在60%-70%之间。

  • 时间轮转调度:为每个任务提供确定的CPU执行时间;
  • 基于优先级抢占的扩充时间轮转调度:优先级相同的任务获得相同的时间长度,若任务无事可做,或者在当前时间片内任务结束,则转交CPU控制权给下一个就绪的任务。
内核对象
  1. 信号量
  2. 消息队列: 实现任务之间的信息交换,类似缓冲区的对象,用于暂存消息;
  3. 管道:提供非结构化数据交换和实现任务同步的内核对象,一端用于读,而另一端用于写;
  4. 事件
  5. 信号:软中断,用于通知其他任务或ISR运行期间发生的事情;
  6. 条件变量
内核服务
  1. 异常与中断
    异常是指任何个打断处理器正常执行,迫使处理器进入特权模式的事件。分为同步异常和异步异常两种。中断是由外部硬件产生的事件引发的异步异常。

  2. 计时器
    用于驱动时间敏感的活动。

  3. IO管理

常见的EOS

VxWorks, Palm, Windows CE, Linux

嵌入式数据库

嵌入式DBMS使用环境的特点如下:

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

image.png

实际应用中必须解决数据的一致性、高效的事务处理和数据的安全性等问题。

  • 数据的一致性:嵌入式DBMS和同步服务器的链接是一种弱链接,低带宽、长延迟,不稳定和经常性断接。常用乐观复制方法
  • 高效的事务处理
  • 安全性:严格存取权限

特性:

  • 微核结构
  • 对标准SQL的支持
  • 事务管理功能
  • 完善的数据同步机制
  • 支持多种连接协议
  • 完备的嵌入式数据库管理功能
  • 支持多种EOS

嵌入式系统网络

现场总线网(Field Bus)和嵌入式TCP/IP协议栈

嵌入式开发环境

交叉平台开发方法

调试方法

直接调试法、调试监控法、在线仿真法、片上调试法及模拟器法