嵌入式系统概论
- 特点
- 系统专用性强
- 软、硬件依赖强
- 系统实时性强
- 处理器专用
- 多种技术紧密结合
- 系统透明性
- 系统资源受限
- 嵌入式系统I/O 工作方式:查询方式,实现上简单
- 实时系统 RTES(实时嵌入式系统[Real-Time Embedded System])
- 兼容 实时性 和 嵌入式的称为 实时嵌入式系统
- 特点
- 逻辑正确:能产生预计的结果
- 时间正确:处理时间必须在预计时间内完成
- Deadline:系统必须在 deadline 前完成计算
- 实时系统:时间正确 和 功能正确
- 不同场景对 deadline 的容忍度不同,将 RTES 分为
- 硬RTES deadline 必须满足不允许出现,否则价值为零
- 软RTES deadline 必须满足,可容忍出现,需要自动尝试恢复
- RTES 的开始时间和完成时间一样重要,当任务缺少必要资源(CPU、内存)会阻碍任务的启动,造成deadline,这时候问题演变为资源调度问题
- 硬件体系结构
- 微处理器(负责控制系统)
- 外部设备
- 存储器(RAM/ROM/混合存储器)
- 分类
- 嵌入式微处理器:和RAM、ROM、总线安装在一个主板上
- 嵌入式微控制器(单片机):集成了CPU等等,单片化
- 嵌入式数字信号处理器:提供特殊的DSP(Digital Signal Processor)指令,包括 数字滤波、快速傅里叶变化和 频谱分析
- 嵌入式片上系统
- 软件体系结构
- 应用软件
- 支撑软件 窗口软件、Java虚拟机、数据库系统、网络系统
- 嵌入式操作系统(EOS)
-
嵌入式操作系统 EOS
- 特点
- 微型化 没有外存,主存很少,资源占用小,精简
- 代码质量高 存储空间小,代码精简且高效
- 专业
- 实时性强
- 可裁剪可配置
- 分类
-
实时嵌入式操作系统(RTOS)
- 影响实时性能
- 上下文切换时间
- 最大中断延迟时间
- 任务调度算法
-
优先级反转
- 由于 RTOS 中 高优先级任务 需要的共享资源被 低优先级任务阻塞,导致高优先级任务的耗时不可预测
- 采用 优先级继承 解决,释放资源顺序与获取资源书序相反
- 拥有多个共享资源的任务 优先级提高多次,当有高优先任务的等待低优先任务释放资源时,可以临时提高低优先级任务的优先级,尽快的释放共享资源
- 由 RTOS 执行完成
- 良好的系统设计
- 影响实时性能
- 非实时嵌入式操作系统
-
实时嵌入式操作系统(RTOS)
- 结构
- 调度器 核心 分配器、调度算法
- 内核对象 任务、信号量
- 内核服务 内存管理
- 多任务调度机制
- 任务之间是不公平的对于 RTOS 调度器来说
- 任务、任务对象、多任务、调度器、可调度实体
- 上下文切换 每个任务都有自己的上下文状态,将状态保存在寄存器
- 可重入性 有此特性的代码都支持中断
- 分发器 经过三个区域之一:应用程序、ISR(Interrupt Service Routines 中断程序)或内核
- 内核提供 任务管理服务 允许任务操作有:任务创建、删除,任务调度控制、任务信息获取
- 内核算法
- 基于优先级抢占的时间片轮转调度 为每个任务提供确定份额的CPU执行时间
-
基于优先级的抢占调度
- 静态优先级 固定好优先级
- 动态优先级 执行过程中优先级会变动,单调执行速率调度发(Rate Mornitonic Scheduling RMS)
- 特点
- 内核对象
-
信号量 相当于锁,达到同步和异步
- 二值信号量 全局信号,0不可用,1可用
- 计数信号量 全局信号,0不可用,大于0可用,释放信号量+1,获取信号量-1
- 互斥信号量 局部信号 初始为开锁、获取闭锁,释放开锁
- 消息队列 任务除了同步状态,还需要交换信息,将交换数据存放在 数据通道中 实现 任务和 ISR的交换。
-
管道 类似一个 队列提供两端,一端是Read,一端是Write,中间传输的是非结构化字节流
- 命名管道 类似于一个文件名,使用名字即可访问
- 非命名管道 必须使用创建后返回的描述符才可用
- 事件
- 信号 事件发生时产生的软中断
- 条件变量 当一个任务等待其他任务创建共享资源需要的条件,经常与互斥信号一起使用
-
信号量 相当于锁,达到同步和异步
- 内核服务
- 异常
-
同步异常 程序与指令执行相关事件引起的异常
- 精确异常
- 不精确异常 流水线和指令预取处理机不能精准判断
-
异步异常 外部时间异常,系统复位异常等
- 屏蔽异常 可以被软件阻塞或开放的
- 不可屏蔽异常
- 异常的优先级高过 内核对象:任务、信号量、队列
-
同步异常 程序与指令执行相关事件引起的异常
- 中断 属于异常的一种,关中断时长 是实时内核的重要指标
- 计数器
- 实时时钟
- 系统时钟
- 时钟节拍
- 可编程计时器
- 软件计时器
- I/O管理
- 异常
- 常见嵌入式系统
- VxWorks 持续性、高性能,试用面广
- Palm 强开放
- Windows CE
- Linux
嵌入式系统数据库
- 环境特点
- 设备随时移动性、网络频繁断接、网络条件多样化、通信能力不对称
- 完整嵌入式数据库系统
- 移动设备端:嵌入式DBMS
- 安全性
- 事务性
- 一致性 -> 乐观复制
- 同步数据
- 微结构、标准SQL支持
- 多种协议支持 串行通信、TCP/IP
- 支持多种 EOS:palm、windows ce
- 嵌入式数据库管理功能
- 连接网络
- 服务端:同步服务器,数据服务器[主备]
- 移动设备端:嵌入式DBMS
嵌入式系统网络
-
现场总线(FieldBus)控制器 工业标准
- 全数字化、全分布、双向传输
- 自诊断、节省布线和控制器空间、多功能
- 开放性、互操作性、智能化与自治性
- 可靠性
-
嵌入式Internet
- 接入方式
- 直连因特网 需要耗费IP资源,IPv6可以考虑
- 通过网关接入 需要一个额外的接入设备
- TCP/IP协议栈
- 与普通协议栈不同,不同厂家做了修改
- 可裁剪性、平台兼容性、高效性
- 接入方式
嵌入式系统开发
- 开发方法:交叉平台开发法(Cross Platform Development CPD),软件在一个通用平台开发,在另一个嵌入式目标平台运行
- 工具:交叉编译器、交叉链路器、源代码调试器
- 调试方法
- 直接调试:在目标平台直接调试
-
调式监控法(插桩法):通过 在目标平台装有监控程序
- 通过 串口、并口、以太网、ICE、ROM仿真器等 相连 宿主机和目标机
- 目标机 启动一个 模块 桩 监控和控制被调程序
- 宿主机通过 连接线路 向调式监控器发送请求
- 宿主机 与 目标主机需要建立的是一组连接,包括了逻辑连接
- ROM仿真器 实现了监控模块
- 在线仿真法(ICE) 好用贵
- 片上调式法(ICD) 性能不如ICE,使用范围受限
- 模拟器法
能耗问题
-
动态电源管理(Dynamic Power Manager DPM) 根据系统的负载和工作情况动态改变管理策略
- 休眠状态 设定一个极限T 作为进入休眠的系统空闲时间
- 动态速度缩放
- 算法
- 基于阈值
- 预测算法 通过动态分析以往空闲时间间隔,得出间隔时间(研究发现、学习树、回归等式法)
- 随机法