第四章嵌入式系统设计实时多任务设课件_第1页
第四章嵌入式系统设计实时多任务设课件_第2页
第四章嵌入式系统设计实时多任务设课件_第3页
第四章嵌入式系统设计实时多任务设课件_第4页
第四章嵌入式系统设计实时多任务设课件_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

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

文档简介

1、制作者 程丽嵌入式系统概论第四章 嵌入式系统设计-实时多任务设计本章接下来介绍软硬件功能划分软硬件分开设计软硬件协同设计实时多任务设计实时多任务设计起因常规方法的不足重点并发性、实时性设计方式传统方法的实时性改造要点多任务划分基于事件、基于结构 DARTS设计过程DARTS的设计思想把系统结构化成并发任务,定义任务间接口;包括ARTS阶段和DRTS阶段;ARTS阶段:实时系统需求模型;DRTS阶段:实时系统设计。DARTS设计过程开发过程1. 系统需求定义2. 划分子系统3. 划分任务4. 定义任务接口5. 任务设计6. 编码实现3. 划分任务划分任务的原则是I/O 依赖性 功能的时间关键性计

2、算需求功能内聚时间内聚周期执行DARTS设计方法I/O 依赖性 DeviceI/O Task App.Task如果变换依赖于I/O,速度受限I/O,可独立成任务在系统中创建与I/O设备数目相当的I/O任务I/O任务只实现与设备相关的代码I/O任务的执行只受限于I/O设备的速度,而不是处理器在任务中分离设备相关性 功能的时间关键性将有时间关键性(deadline)的功能分离出来, 组成独立运行的任务赋予这些任务高的优先级,以满足对时间的需要event 1event 2Task 1Task 2Task 3Task 3deadline 1deadline 2Task 2 计算需求计算需求计算量大的功

3、能占用CPU的时间多,把计算功能捆绑成任务,以消耗CPU的剩余时间赋予计算任务较低优先级, 能被高优先级的任务抢占,保持高优先级的任务是轻量级的多个计算任务可安排成同优先级,按时间片循环轮转功能内聚将紧密相关的功能变换组成一个任务,减少通信的开销把每个变换都作为同一任务中一个个独立的模块,不仅保证了模块级的功能内聚,也保证了任务级的功能内聚event 1F1(x) + F3(x)event 2F2(x)时间内聚将在同一时间内完成的各功能(即使这些功能是不相关的)形成一个任务功能组的各功能是由相同的外部事件驱动的(如时钟等),这样每次任务接收到一个事件,它们都可以同时执行由于减少了任务调度及切换

4、的次数,减少了系统的开销Clock TickeventF1(x) + F2(y)+F3(z)F4(x)+F5(y)周期执行10HZF1F2F1F210HZ15HZ15HZ一个需要周期执行的变换可以作为一个独立的任务,按一定的时间间隔被激活将在相同周期内执行的各功能组成一个任务频率高的任务赋予高优先级4. 定义任务接口任务间的接口采用如下两个模块任务间通信模块TCM(Task Communication Module)任务同步模块TSM(Task Synchronization Module)DARTS设计方法任务间通信模块DARTS支持两类不同的TCM(任务间通信模块)消息通信模块信息隐藏模块

5、消息通信模块任务间通信模块松耦合消息通信消息队列包括二进制信号量,用于互斥事件同步用来在队列满时挂起生产者,队列为空时挂起消费者每个消息队列限制了最大长度每个消息队列都和一个事件相连,由事件激活任务紧耦合消息通信发送和接收队列各有一个元素任务间通信模块任务间通信模块任务间通信模块信息隐藏模块系统中可能有一些资源如查询数据、数据池和数据存储区等可以被两个或更多的任务共享使用,或是只读,或是可读可写数据存储区写数据读数据读数据任务A任务B任务同步模块任务同步用事件来实现,目标任务等待一个事件的发生,或源任务发送事件信号激活目标任务源S:发事件信号(E)S目标D:等待事件(E)D任务同步模块TSM任

6、务界面在DARTS中任务界面按照以下规则统一若传递信息的任务与接收信息的任务运行速度不同,用松耦合消息序列若传递信息的任务只有在收到接收者的回答后才能继续执行,用紧耦合消息/应答如果只是需要事件发生的通告,没有数据传输,用事件信号需要被两个或多个任务引用的数据区被处理成一个消息隐藏模块每个等待多个事件的任务都需要一个任务同步互斥模块 DARTS设计方法5. 任务设计详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序,包括:任务体系结构:详细定义任务包含的子模块和模块间的关系任务执行流程:尽可能详细地描述任务的处理过程任务内数据结构任务内模块间接口5. 任务设计(续)- 模块构筑系统

7、和任务设计完成后,进行每个模块的详细设计,直到每个具体的函数;在单元测试前不必编完模块全部程序,可以分阶段编码和测试;模块的详细设计应一气呵成,避免系统以非结构化方式形成。 DARTS设计方法5. 任务设计(续)- 任务与系统集成模块逐个连接、测试以构成任务任务被逐个连接和测试形成最终系统可分两步集成在宿主机上模拟集成(软集成)在目标机上集成 DARTS设计方法实 例 说 明机器人控制器系统控制设备由内部控制器和外部控制面板组成控制器控制六个转轴,并与数字I/O传感器交互作用。转轴和I/O由程序控制该程序由控制面板操作启动执行上电手动停止结束断电运行程序选择控制面板实 例 说 明机器人控制器系

8、统按下“上电”按钮,系统进入了上电状态。上电成功后,系统进入手动状态。此时,操作者可以通过程序选择开关选择程序按下“运行”按钮,则选定的程序开始运行,系统转为运行态。程序运行中如果按下“停止”键,程序被挂起操作者可按下“运行”键,使程序恢复执行,也可按下“结束”键,结束程序。按下“结束”键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。 控制执行过程需求分析与说明断电态通电态手动态运行态终止态挂起态上电上电成功断电运行程序选择程序终止结束运行停止状态变迁图结束机器人控制器数据流图程序面板输入有效性检查解释程序各语句读传感器处理面板输入 处理I/O命令处理动作命令向传感器输出输出动作

9、轴数据接收确认输出到面板轴控制器读面板 输入按下按钮输入值 有效值 运行 停止 结束动作命令动作确认I/O命令传感器值输入状态值控制值控制输出值显示灯 停止恢复轴数据轴确认轴输入轴输出动作数据I/O时间内聚时间内聚功能内聚控制面板输入处理器控制面板处理器控制面板输出处理器动作轴管理器轴控制器命令解释器传感器输入传感器输出按下按钮灯程序传感器I/O数据存储输出输入机器人控制器的任务结构图轴I/O动作应答动作数据恢复停止轴命令轴应答结束启动任务设计任务设计基本设计原则尽量简单使用静态表尽量减少动态性恰当的任务数目使用有限状态自动机辅助设计面向对象设计减少预留接口尽量简单不存在完善方法任何的设计都只能尽量好,不可能最优。以成本为基准开发计划易实现,成本费用可控制,软件质量有保障不能过于强调精简软件具有可读性、可移植性、易维护常用模型和方法原型模型、增量模型、组件构件方法使用静态表系统运行前,根据各任务的实时要求生成一张任务的运行时间表,指明各任务的起始运行时间以及运行长度运行时间表生成后,在系统运行过程中不再变化系统运行时,调度器只需根据这张表在指定的时刻启动相应的实时任务减少动态性特点决定嵌入式系统中,时间资源非常

温馨提示

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

评论

0/150

提交评论