嵌入式系统设计与实例开发2.ppt_第1页
嵌入式系统设计与实例开发2.ppt_第2页
嵌入式系统设计与实例开发2.ppt_第3页
嵌入式系统设计与实例开发2.ppt_第4页
嵌入式系统设计与实例开发2.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

嵌入式系统设计与实例开发 ARM与 C OS 第二讲嵌入式系统的基本概念 课程大纲 参考资料1 王田苗主编 嵌入式系统设计及实例开发 ARM与 C OS 北京 清华大学出版社 2002 92 美 JeanJ Labrosse 邵贝贝译 C OS 源码公开的实时嵌入式操作系统 北京 中国电力出版社 2001 8简介 是目前学习嵌入式操作系统最好的入门教材 书中对一个完整的嵌入式实时内核 C OS 进行了剖析 详细讲述了实时内核的设计和创建方法 以及多任务实时系统的原理和编程思想 4 马忠梅等著 ARM嵌入式微处理器体系结构 北航出版社3 美 WayneWolf 孙玉方等译 嵌入式计算机系统设计原理 北京 机械工业出版社 2002 2简介 被称为 嵌入式计算系统设计的第一本教科书 书中重点介绍了嵌入式技术和基本原理和技术 涉及到嵌入式系统的相关的指令系统 CPU 计算平台 程序设计与分析 进程和操作系统 硬件加速器 网络 系统设计技术等方面 1 什么是嵌入式系统2 硬件基础3 嵌入式操作系统 嵌入式系统的基本概念 一 嵌入式系统的定义 发展历史嵌入式系统本身是一个相对模糊的定义 一个手持的MP3和一个PC104的微型工业控制计算机都可以认为是嵌入式系统 嵌入式系统已经有了近30年的发展历史 它是硬件和软件交替发展的双螺旋式发展 第一款微处理器是Intel的4004 它出现在1971年 然后是是Intel公司的8048 它出现在1976年 Motorola同时推出了68HC05 Zilog公司推出了Z80系列 这些早期的单片机均含有256字节的RAM 4K的ROM 4个8位并口 1个全双工串行口 两个16位定时器 之后在80年代初 Intel又进一步完善了8048 在它的基础上研制成功了8051 1981年ReadySystem发展了世界上第1个商业嵌入式实时内核 VTRX32 包含了许多传统操作系统的特征 包括任务管理 任务间通讯 同步与相互排斥 中断支持 内存管理等功能 随后 出现了如IntegratedSystemIncorporation ISI 的PSOS IMG的VxWorks QNX公司的QNX等 PalmOS WinCE 嵌入式Linux Lynx uCOS Nucleus 以及国内的Hopen DeltaOS等嵌入式操作系统 今天RTOS已经在全球形成了1个产业 根据美国EMF 电子市场分析 报告 1999年全球RTOS市场产值达3 6亿美元 而相关的整个嵌入式开发工具 包括仿真器 逻辑分析仪 软件编译器和调试器 则高达9亿美元 IEEE定义 根据IEEE 国际电气和电子工程师协会 的定义 嵌入式系统是 用于控制 监视或者辅助操作机器和设备的装置 原文为devicesusedtocontrol monitor orassisttheoperationofequipment machineryorplants 可以看出此定义是从应用上考虑的 嵌入式系统是软件和硬件的综合体 还可以涵盖机电等附属装置 一般定义 以应用为中心 以计算机技术为基础 软件硬件可裁剪 功能 可靠性 成本 体积 功耗严格要求的专用计算机系统 3 嵌入式系统的几个重要特征 1 系统内核小由于嵌入式系统一般是应用于小型电子装置的 系统资源相对有限 所以内核较之传统的操作系统要小得多 比如ENEA公司的OSE分布式系统 内核只有5K 而Windows的内核则要大得多 专用性强嵌入式系统的个性化很强 其中的软件系统和硬件的结合非常紧密 一般要针对硬件进行系统的移植 即使在同一品牌 同一系列的产品中也需要根据系统硬件的变化和增减不断进行修改 同时针对不同的任务 往往需要对系统进行较大更改 程序的编译下载要和系统相结合 这种修改和通用软件的 升级 是完全不同的概念 系统精简嵌入式系统一般没有系统软件和应用软件的明显区分 不要求其功能设计及实现上过于复杂 这样一方面利于控制系统成本 同时也利于实现系统安全 高实时性OS这是嵌入式软件的基本要求 而且软件要求固态存储 以提高速度 软件代码要求高质量和高可靠性 实时性 5 嵌入式软件开发走向标准化嵌入式系统的应用程序可以没有操作系统直接在芯片上运行 为了合理地调度多任务 利用系统资源 系统函数以及和专家库函数接口 用户必须自行选配RTOS Real TimeOperatingSystem 开发平台 这样才能保证程序执行的实时性 可靠性 并减少开发时间 保障软件质量 6 嵌入式系统开发需要开发工具和环境由于其本身不具备自主开发能力 即使设计完成以后 用户通常也是不能对其中的程序功能进行修改 必须有一套开发工具和环境才能进行开发 这些工具和环境一般是基于通用计算机上的软硬件设备以及各种逻辑分析仪 混合信号示波器等 开发时往往有主机和目标机的概念 主机用于程序的开发 目标机作为最后的执行机 开发时需要交替结合进行 嵌入式系统与PC之间的区别 嵌入式系统一般是专用系统 而PC是通用计算平台嵌入式系统的资源比PC少得多嵌入式系统软件故障带来的后果比PC机大得多嵌入式系统一般采用实时操作系统嵌入式系统大都有成本 功耗的要求嵌入式系统得到多种微处理体系的支持嵌入式系统需要专用的开发工具 典型嵌入式系统基本组成 硬件 典型嵌入式系统基本组成 软件 处理器 存储器 输入 输出 操作系统 应用程序 软件结构 硬件结构 嵌入式系统一般指非PC系统 它包括硬件和软件两部分 硬件包括处理器 微处理器 存储器及外设器件和I O端口 图形控制器等 软件部分包括操作系统软件 OS 要求实时和多任务操作 和应用程序编程 有时设计人员把这两种软件组合在一起 应用程序控制着系统的运作和行为 而操作系统控制着应用程序编程与硬件的交互作用 嵌入式系统的核心是嵌入式微处理器 嵌入式微处理器一般就具备以下4个特点1 对实时多任务有很强的支持能力 能完成多任务并且有较短的中断响应时间 从而使内部的代码和实时内核心的执行时间减少到最低限度 2 具有功能很强的存储区保护功能 这是由于嵌入式系统的软件结构已模块化 而为了避免在软件模块之间出现错误的交叉作用 需要设计强大的存储区保护功能 同时也有利于软件诊断 3 可扩展的处理器结构 以能最迅速地开展出满足应用的最高性能的嵌入式微处理器 4 嵌入式微处理器必须功耗很低 尤其是用于便携式的无线及移动的计算和通信设备中靠电池供电的嵌入式系统更是如此 如需要功耗只有mW甚至 W级 嵌入式处理器嵌入式处理器是嵌入式系统的核心 是控制 辅助系统运行的硬件单元 位 位单片机 16位 32位 64位嵌入式CPU 实时操作系统实时操作系统是嵌入式系统目前最主要的组成部分 实时性需要调度一切可利用的资源完成实时控制任务 着眼于提高计算机系统的使用效率 满足对时间的限制和要求 系统响应时间 Systemresponsetime 系统发出处理要求 到系统给出应答信号的时间 任务切换时间 Context switchingtime 任务之间切换而使用的时间 中断延迟 Interruptlatency 计算机接收到中断信号到操作系统作出响应 并完成切换转入中断服务程序的时间 冯 诺依曼体系结构和哈佛体系结构CISC与RICS影响CPU性能的因素存储器系统I O接口 二 硬件基础 冯 诺依曼体系结构模型 指令寄存器 控制器 数据通道 输入 输出 中央处理器 存储器 程序 指令0 指令1 指令2 指令3 指令4 数据 数据0 数据1 数据2 指令的执行周期T 1 取指令 InstructionFetch TF2 指令译码 InstructionDecode TD3 执行指令 InstructionExecute TE4 存储 Storage TS每条指令的执行周期 T TF TD TE TS 冯 诺依曼体系的特点 1 数据与指令都存储在存储器中2 被大多数计算机所采用3 ARM7 冯诺依曼体系 哈佛体系结构 指令寄存器 控制器 数据通道 输入 输出 中央处理器 程序存储器 指令0 指令1 指令2 数据存储器 数据0 数据1 数据2 地址 指令 地址 数据 哈佛体系结构的特点 1 程序存储器与数据存储器分开2 提供了较大的数存储器带宽3 适合于数字信号处理4 大多数DSP都是哈佛结构5 ARM9是哈佛结构 CISC和RISC CISC 复杂指令集 ComplexInstructionSetComputer 具有大量的指令和寻址方式8 2原则 80 的程序只使用20 的指令大多数程序只使用少量的指令就能够运行 RISC 精简指令集 ReducedInstructionSetComputer 在通道中只包含最有用的指令确保数据通道快速执行每一条指令使CPU硬件结构设计变得更为简单 CISC与RISC的数据通道 IF ID REG ALU MEM 开始 退出 IF ID ALU MEM REG 微操作通道 开始 退出 单通数据通道 影响CPU性能的因素 流水线 超标量和缓存 流水线技术 几个指令可以并行执行提高了CPU的运行效率内部信息流要求通畅流动 译码 取指 执行add 译码 取指 执行sub 译码 取指 执行cmp 时间 Add Sub Cmp 超标量执行 超标量执行 超标量CPU采用多条流水线结构 执行1 预取 指令CACHE 译码2 译码1 执行2 执行1 预取 译码2 译码1 执行2 流水线1 流水线2 数据 高速缓存 CACHE 1 为什么采用高速缓存微处理器的时钟频率比内存速度提高快得多 高速缓存可以提高内存的平均性能 2 高速缓存的工作原理高速缓存是一种小型 快速的存储器 它保存部分主存内容的拷贝 CPU 高速缓存控制器 CACHE 主存 数据 数据 地址 总线和总线桥 存储器系统 RAM 随机存取存储器 SRAM 静态随机存储器 DRAM 动态随机存储器1 SRAM比DRAM快2 SRAM比DRAM耗电多3 DRAM存储密度比SRAM高得多4 DRM需要周期性刷新ROM 只读存储器FLASH 闪存 SRAM和DRAM 1 SRAM2 DRAM CS R W Addr Data CS R W CAS Data RAS Addr 输入输出接口 1 I O2 A D D A3 键盘4 LCD5 存储器接口6 设备接口 三 嵌入式操作系统 操作系统的分类嵌入式实时操作系统多任务 任务优先级 调度前台与后台非占先式与占先式 可重入型函数 3 1操作系统的分类 1 顺序执行系统 系统内只含有一个程序 独占CPU的运行时间 按语句顺序执行该程序 直至执行完毕 另一程序才能启动运行 如DOS操作系统 2 分时操作系统 系统内同时可以有多个程序运行 把CPU的时间分按顺序分成若干片 每个时间片内执行不同的程序 如UNIX 3 实时操作系统 系统内有多个程序运行 每个程序有不同的优先级 只有最高优先级的任务才能占有CPU的控制权 具有强实时特点的嵌入式操作系统 具有弱实特点的嵌入式操作系统 没有实时特点的嵌入式操作系统 按实时性分类 1 强实时系统 其系统响应时间在毫秒或微秒级 数控机床 2 一航实时系统 其系统响应时间在毫秒 几秒的数量级上 其实时性的要求比强实时系统要差一些 电子菜谱的查询 3 弱实时系统 其系统响应时间约为数十秒或更长 工程机械 1 循环轮询系统 PollingLoop 最简单的软件结构是循环轮询 程序依次检查系统的每一个输入条件 一旦条件成立就进行相应的处理 Initialize While true if condition 1 action 1 if condition 2 action 2 if condition n acition n 按软件结构分类 2 事件驱动系统 Event Drivensystem 事件驱动系统是能对外部事件直接响应的系统 它包括前后台 实时多任务 多处理器等 是嵌入式实时系统的主要形式 应用程序是一个无限的循环 循环中调用相应的函数完成相应的操作 这部分可以看成后台行为 background 中断服务程序处理异步事件 这部分可以看成前台行为 foreground 后台也可以叫做任务级 前台也叫中断级 例如 很多基于微处理器的产品采用前后台系统设计 如微波炉 电话机 玩具等 从省电的角度出发 平时微处理器处在停机状态 所有的事都靠中断服务来完成 前后台系统 后台循环 前台中断 ISR ISR 后台前台 ISR 时间 3 2嵌入式实时操作系统 实时操作系统的特点 1 多任务 一个任务 也称作一个线程 是一个简单的运行程序 每个任务都是整个应用的某一部分 每个任务被赋予一定的优先级 有它自己的一套CPU寄存器和自己的栈空间 多任务运行的实现实际上是靠CPU 中央处理单元 在许多任务之间转换 调度 CPU只有一个 轮番服务于一系列任务中的某一个 多任务运行使CPU的利用率得到最大的发挥 并使应用程序模块化 在实际应用中 多任务的最大特点是 开发人员可以将很复杂的应用程序层次化 综合实验 时钟 位图 USB KEY 2 任务的事件驱动 3 中断与中断优先级 4 同步与异步一系列时间相关事件称为同步事件 驱动的任务为同步任务随机发生的事件称为异步事件 驱动的任务为异步任务 如中断 5 资源与临界资源程序进行时可使用的软硬件环境称为资源 2个以上任务可同时访问的共享资源称为临界资源 任何任务所占用的实体都可称为资源 资源可以是输入输出设备 例如打印机 键盘 显示器 资源也可以是一个变量 一个结构或一个数组等 6 容错与安全容错 当系统软 硬件发生故障时 系统仍能正常运转 完成预定的任务或某些重要的不允许间断的任务 包括系统自论断 自恢复 自动切换等功能 安全性 是指系统对自身文件和用户文件的存取合法性的控制 如口令 加密 实时系统是面向具体应用 对外来事件在限定时间内能做出反应的系统 限定时间的范围很广可以从微秒级 如信号处理 到分级 如联机查询系统 在实时系统中主要有三个指标来衡量系统的实时性 即响应时间 ResponseTime 生存时间 SurvivalTime 吞吐量 Throughput 响应时间 ResponseTime 是计算机识别一个外部事件到作出响应的时间 在控制应用中它是最重要的指标 如果事件不能及时的处理 系统可能就会崩溃 生存时间 SurvivalTime 是数据有效等待时间 在这段时间里数据是有效的 吞吐量 Throughput 是在一给定时间内 秒 系统可以处理的事件总数 例如通讯控制器用每秒钟处理的字符数来表示吞吐量 吞吐量是平均响应时间的倒数 实时系统的评价指标 多任务系统中 内核负责管理各个任务 或者说为每个任务分配CPU时间 并且负责任务之间的通信 内核提供的基本服务是任务切换 内核本身也增加了应用程序的额外负荷 代码空间增加ROM用量 内核本身的数据结构增加了RAM的用量 内核本身对CPU的占用时间一般在2到5个百分点之间 系统内核 这是操作系统的主要职责之一 它决定该轮到哪个任务运行了 往往调度是基于优先级的 根据其重要不同被赋予任务不同的优先级 CPU总是让处在就绪态的优先级最高的任务先运行 何时让高优先级任务掌握CPU的使用权 有两种不同的情况 这要看用的是什么类型的内核 是非占先式的还是占先式的内核 调度 dispatcher 任务优先级 priority 每个任务都有其优先级 priority 静态优先级和动态优先级 应用程序执行过程中诸任务优先级不变 则称之为静态优先级 在静态优先级系统中 诸任务以及它们的时间约束在程序编译时是已知的 应用程序执行过程中 如果任务的优先级是可变的 则称之为动态优先级 非占先式与占先式 非占先式 non preemptive 非占先式调度法也称作合作型多任务 cooperativemultitasking 各个任务彼此合作共享一个CPU 中断服务可以使一个高优先级的任务由挂起状态变为就绪状态 但中断服务以后控制权还是回到原来被中断了的那个任务 直到改任务主动放弃CPU的使用权时 那个高优先级的任务才能获得CPU的使用权 非占先式内核的一个特点是几乎不需要使用信号量保护共享数据 运行着的任务占有CPU 而不必担心被别的任务抢占 非占先式内核的最大缺陷在于其响应高优先级的任务慢 任务已经进入就绪态 但还不能运行 也许要等很时间 直到当前运行着的任务释放CPU 内核的任务级响应时间是不确定的 不知道什么时候最高优先级的任务才能拿到CPU的控制权 完全取决于应用程序什么时候释放CPU 非占先式 Non Preemptive 占先式 preemptive 当系统响应时间很重要时 要使用占先式 preemptive 内核 最高优先级的任务一旦就绪 总能得到CPU的控制权 当一个运行着的任务使一个比它优先级高的任务进入了就绪态 当前任务的CPU使用权就被剥夺了 或者说被挂起了 那个高优先级的任务立刻得到了CPU的控制权 使用占先式内核时 应用程序不应直接使用不可重入型函数 如果调入可重入型函数时 低优先级的任务CPU的使用权被高优先级任务剥夺 不可重入型函数中的数据有可能被破坏 占先式 Preemptive 可以被一个以上的任务调用 而不必担心数据的破坏 可重入型函数任何时候都可以被中断 一段时间以后又可以运行 而相应数据不会丢失 可重入型函数或者只使用局部变量 即变量保存在CPU寄存器中或堆栈中 一个不可重入型函数的例子intTemp Voidswap int x int y Temp x X Y y Temp 可重入型函数 一个可重入型函数的例子Voidswap int x int y intTemp Temp x X Y y Temp 代码的临界区也称为临界区 指处理时不可分割的代码 一旦这部分代码开始执行 则不允许任何中断打入 在进入临界区之前要关中断 而临界区代码执行完以后要立即开中断 在任务切换时 地址 指令 数据等寄存器堆栈保护 代码的临界区 宏观方面发展趋势 经济性 POS开发失败 几十万 几万 5千 5百 计算机要很便宜 让更多的人能买得起 小型化 笔记本

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论