当前位置:
文档之家› 12第四章嵌入式系统设计-实时多任务设
12第四章嵌入式系统设计-实时多任务设
❖I/O任务只实现与设备相关的代码
❖I/O任务的执行只受限于I/O设备的速度, 而不是处理器
❖在任务中分离设备相关性
功能的时间关键性
event 1 Task 1
event 2 Task 2
Task 3
deadline 1 Task 2 deadline 2
Task 3
❖将有时间关键性(deadline)的功能分离 出来, 组成独立运行的任务
❖将在同一时间内完成的各功能(即使这些功 能是不相关的)形成一个任务
❖功能组的各功能是由相同的外部事件驱动的 (如时钟等),这样每次任务接收到一个事件, 它们都可以同时执行
❖由于减少了任务调度及切换的次数,减少了 系统的开销
周期执行
15HZ F1
10HZ F2
15HZ F1
10HZ F2
❖一个需要周期执行的变换可以作为一个独立 的任务,按一定的时间间隔被激活
DARTS设计方法
❖3. 划分任务 ▪ 划分任务的原则是 •I/O 依赖性 •功能的时间关键性 •计算需求 •功能内聚 •时间内聚 •周期执行
I/O 依赖性
Device
I/O Task
App.Task
❖如果变换依赖于I/O,速度受限I/O,可独 立成任务
❖在系统中创建与I/O设备数目相当 的 I/O任 务
转轴和I/O由程序控制 该程序由控制面板操作启动执行
实 例 说 明——机器人控制器系统
上电
手动
运行
断电
停止
结束
程序选择 控制面板
控制执行过程
按下“上电”按钮,系统进入了上电状态。 上电成功后,系统进入手动状态。此时,操
作者可以通过程序选择开关选择程序 按下“运行”按钮,则选定的程序开始运行,
DARTS设计过程
❖DARTS的设计思想 ▪ 把系统结构化成并发任务,定义任务间 接口; ▪ 包括ARTS阶段和DRTS阶段; ▪ ARTS阶段:实时系统需求模型; ▪ DRTS阶段:实时系统设计。
DARTS设计过程
❖开发过程 ▪ 1. 系统需求定义 ▪ 2. 划分子系统 ▪ 3. 划分任务 ▪ 4. 定义任务接口 ▪ 5. 任务设计 ▪ 6. 编码实现
嵌入式系统概论
第四章 嵌入式系统设计 --实时多任务设计
制作者 程丽
本章接下来介绍
❖软硬件功能划分 ❖软硬件分开设计 ❖软硬件协同设计 ❖实时多任务设计
实时多任务设计
❖起因 ▪ 常规方法的不足
❖重点 ▪ 并发性、实时性设计
❖方式 ▪ 传统方法的实时性改造
❖要点 ▪ 多任务划分 ▪ 基于事件、基于结构
event 1
event 2 F1(x) + F3(x) F2(x)
❖将紧密相关的功能变换组成一个任务, 减少通信的开销
❖把每个变换都作为同一任务中一个个独 立的模块,不仅保证了模块级的功能内聚, 也保证了任务级的功能内聚
时间内聚
Clock
event
Tick F1(x) + F2(y)+F3(z) F4(x)+F5(y)
系统转为运行态。 程序运行中如果按下“停止”键,程序被挂
❖赋予这些任务高的优先级,以满足对时间的 需要
计算需求
计算需求
❖计算量 大 的 功能占用CPU的时间多, 把 计 算功能捆绑成任务,以消耗CPU的剩余时 间
❖赋予计算任务较低优先级, 能被高优先级 的任务抢占,保持高优先级的任务是轻量 级的
❖多个计算任务可安排成同优先级,按时间 片循环轮转
功能内聚
DARTS设计方法
❖5. 任务设计(续)- 任务与系统集成 ▪ 模块逐个连接、测试以构成任务 ▪ 任务被逐个连接和测试形成最终系统 ▪ 可分两步集成 •在宿主机上模拟集成(软集成) •在目标机上集成
实 例 说 明——机器人控制器系统
控制设备由内部控制器和外部控制面板组 成
控制器控制六个转轴,并与数字I/O传感 器交互作用。
❖将在相同周期内执行的各功能组成一个任务
❖频率高的任务赋予高优先级
DARTS设计方法
❖4. 定义任务接口 ▪ 任务间的接口采用如下两个模块 •任务间通信模块TCM (Task Communication Module) •任务同步模块TSM (Task Synchronization Module)
任务间通信模块
❖DARTS支持两类不同的TCM(任务间通 信模块) ▪ 消息通信模块 ▪ 信息隐藏模块
任务间通信模块 ❖消息通信模块
任务间通信模块
❖松耦合消息通信 ▪ 消息队列包括二进制信号量,用于互斥 ▪ 事件同步用来在队列满时挂起生产者, 队列为空时挂起消费者 ▪ 每个消息队列限制了最大长度 ▪ 每个消息队列都和一个事件相连,由事 件激活任务
源S:发事件信号(E) S
目标D:等待事件(E) D
任务界面
❖在DARTS中任务界面按照以下规则统一 ▪ 若传递信息的任务与接收信息的任务运行 速度不同,用松耦合消息序列 ▪ 若传递信息的任务只有在收到接收者的回 答后才能继续执行,用紧耦合消息/应答 ▪ 如果只是需要事件发生的通告,没有数据 传输,用事件信号 ▪ 需要被两个或多个任务引用的数据区被处 理成一个消息隐藏模块 ▪ 每个等待多个事件的任务都需要一个任务 同步互斥模块
DARTS设计方法
❖5. 任务设计 ▪ 详细说明系统中各任务的设计考虑和执 行流程,以利于程序员编制程序,包括: •任务体系结构:详细定义任务包含的 子模块和模块间的关系 •任务执行流程:尽可能详细地描述任 务的处理过程 •任务内数据结构 •任务内模块间接口
DARTS设计方法
❖5. 任务设计(续)- 模块构筑 ▪ 系统和任务设计完成后,进行每个模块的 详细设计,直到每个具体的函数; ▪ 在单元测试前不必编完模块全部程序,可 以分阶段编码和测试; ▪ 模块的详细设计应一气呵成,避免系统以 非结构化方式形成。
❖紧耦合消息通信通信模块
任务间通信模块
❖信息隐藏模块
▪ 系统中可能有一些资源如查询数据、数 据池和数据存储区等可以被两个或更多 的任务共享使用,或是只读,或是可读 可写
写数据 任务A
读数据
数据
存储 区
读数据 任务B
任务同步模块TSM
❖任务同步模块 ▪ 任务同步用事件来实现,目标任务等待 一个事件的发生,或源任务发送事件信 号激活目标任务