《第四章嵌入式系统设计实时多任务设课件.ppt》由会员分享,可在线阅读,更多相关《第四章嵌入式系统设计实时多任务设课件.ppt(38页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、制作者制作者制作者制作者 程丽程丽程丽程丽嵌入式系统概论嵌入式系统概论第四章第四章 嵌入式系统设计嵌入式系统设计-实时多任务设计实时多任务设计本章接下来介绍本章接下来介绍本章接下来介绍本章接下来介绍v软硬件功能划分软硬件功能划分v软硬件分开设计软硬件分开设计v软硬件协同设计软硬件协同设计v实时多任务设计实时多任务设计实时多任务设计实时多任务设计实时多任务设计实时多任务设计v起因起因常规方法的不足常规方法的不足v重点重点并发性、实时性设计并发性、实时性设计v方式方式传统方法的实时性改造传统方法的实时性改造v要点要点多任务划分多任务划分基于事件、基于结构基于事件、基于结构 DARTS DARTS设
2、计过程设计过程设计过程设计过程vDARTS的设计思想的设计思想把系统结构化成并发任务,定义任务间把系统结构化成并发任务,定义任务间接口;接口;包括包括ARTS阶段和阶段和DRTS阶段;阶段;ARTS阶段:阶段:实时系统需求模型;实时系统需求模型;DRTS阶段:阶段:实时系统设计。实时系统设计。DARTSDARTS设计过程设计过程设计过程设计过程v开发过程开发过程1.系统需求定义系统需求定义2.划分子系统划分子系统3.划分任务划分任务4.定义任务接口定义任务接口5.任务设计任务设计6.编码实现编码实现v3.划分任务划分任务划分任务的原则是划分任务的原则是I/O 依赖性依赖性 功能的时间关键性功能
3、的时间关键性计算需求计算需求功能功能内聚内聚时间内聚时间内聚周期执行周期执行DARTS设计方法设计方法I/O 依赖性依赖性 DeviceI/O Task App.Taskv如如果果变变换换依依赖赖于于I/O,速速度度受受限限I/O,可可独独立成任务立成任务v在在系系统统中中创创建建与与I/O设设备备数数目目相相当当的的I/O任任务务vI/O任任务务只只实现实现与与设备设备相关的代相关的代码码vI/O任任务务的的执执行行只只受受限限于于I/O设设备备的的速速度度,而不是而不是处处理器理器v在任务中分离设备相关性在任务中分离设备相关性 功能的时间关键性功能的时间关键性v将将有有时时间间关关键键性性
4、(deadline)的的功功能能分分离离出来出来,组组成独立运行的任成独立运行的任务务v赋赋予予这这些些任任务务高高的的优优先先级级,以以满满足足对对时时间间的的需要需要event 1event 2Task 1Task 2Task 3Task 3deadline 1deadline 2Task 2 计算需求计算需求计算需求计算需求计算需求计算需求v计计算算量量大大的的功功能能占占用用CPU的的时时间间多多,把把计计算算功功能能捆捆绑绑成成任任务务,以以消消耗耗CPU的的剩剩余余时时间间v赋赋予予计计算算任任务务较较低低优优先先级级,能能被被高高优优先先级级的的任任务务抢抢占占,保保持持高高优优
5、先先级级的的任任务务是是轻轻量量级级的的v多多个个计计算算任任务务可可安安排排成成同同优优先先级级,按按时时间间片循环轮转片循环轮转功能内聚功能内聚v将将紧紧密密相相关关的的功功能能变变换换组组成成一一个个任任务务,减少通信的开销减少通信的开销v把把每每个个变变换换都都作作为为同同一一任任务务中中一一个个个个独独立立的的模模块块,不不仅仅保保证证了了模模块块级级的的功功能能内内聚聚,也保证了任务级的功能内聚也保证了任务级的功能内聚event 1F1(x)+F3(x)event 2F2(x)时间内聚时间内聚v将将在在同同一一时时间间内内完完成成的的各各功功能能(即即使使这这些些功功能是不相关的能
6、是不相关的)形成一个任形成一个任务务v功功能能组组的的各各功功能能是是由由相相同同的的外外部部事事件件驱驱动动的的(如如时时钟钟等等),这这样样每每次次任任务务接接收收到到一一个个事事件件,它们都可以同时执行它们都可以同时执行v由由于于减减少少了了任任务务调调度度及及切切换换的的次次数数,减减少少了了系统的开销系统的开销Clock TickeventF1(x)+F2(y)+F3(z)F4(x)+F5(y)周期执行周期执行10HZF1F2F1F210HZ15HZ15HZv一一个个需需要要周周期期执执行行的的变变换换可可以以作作为为一一个个独独立立的任务,按一定的时间间隔被激活的任务,按一定的时间
7、间隔被激活v将在相同周期内将在相同周期内执执行的各功能行的各功能组组成一个任成一个任务务v频率高的任务赋予高优先级频率高的任务赋予高优先级v4.定义任务接口定义任务接口任务间的接口采用如下两个模块任务间的接口采用如下两个模块任务间通信模块任务间通信模块TCM(Task Communication Module)任务同步模块任务同步模块TSM(Task Synchronization Module)DARTS设计方法设计方法任务间通信模块任务间通信模块任务间通信模块任务间通信模块vDARTS支持两类不同的支持两类不同的TCM(任务间通(任务间通信模块)信模块)消息通信模块消息通信模块信息隐藏模块
8、信息隐藏模块v消息通信模块消息通信模块任务间通信模块任务间通信模块任务间通信模块任务间通信模块v松耦合消息通信松耦合消息通信消息队列包括二进制信号量,用于互斥消息队列包括二进制信号量,用于互斥事件同步用来在队列满时挂起生产者,事件同步用来在队列满时挂起生产者,队列为空时挂起消费者队列为空时挂起消费者每个消息队列限制了最大长度每个消息队列限制了最大长度每个消息队列都和一个事件相连,由事每个消息队列都和一个事件相连,由事件激活任务件激活任务v紧耦合消息通信紧耦合消息通信发送和接收队列各有一个元素发送和接收队列各有一个元素任务间通信模块任务间通信模块任务间通信模块任务间通信模块任务间通信模块任务间通
9、信模块任务间通信模块任务间通信模块任务间通信模块任务间通信模块任务间通信模块任务间通信模块v信息隐藏模块信息隐藏模块系统中可能有一些资源如查询数据、数系统中可能有一些资源如查询数据、数据池和数据存储区等可以被两个或更多据池和数据存储区等可以被两个或更多的任务共享使用,或是只读,或是可读的任务共享使用,或是只读,或是可读可写可写数据数据存储存储区区写数据写数据读数据读数据读数据读数据任务任务A任务任务Bv任务同步模块任务同步模块任务同步用事件来实现,目标任务等待任务同步用事件来实现,目标任务等待一个事件的发生,或源任务发送事件信一个事件的发生,或源任务发送事件信号激活目标任务号激活目标任务源源S
10、:发事件信号发事件信号(E)S目标目标D:等待事件等待事件(E)D任务同步模块任务同步模块任务同步模块任务同步模块TSMTSM任务界面任务界面任务界面任务界面v在在DARTS中任务界面按照以下规则统一中任务界面按照以下规则统一若传递信息的任务与接收信息的任务运行若传递信息的任务与接收信息的任务运行速度不同,用松耦合消息序列速度不同,用松耦合消息序列若传递信息的任务只有在收到接收者的回若传递信息的任务只有在收到接收者的回答后才能继续执行,用紧耦合消息答后才能继续执行,用紧耦合消息/应答应答如果只是需要事件发生的通告,没有数据如果只是需要事件发生的通告,没有数据传输,用事件信号传输,用事件信号需要
11、被两个或多个任务引用的数据区被处需要被两个或多个任务引用的数据区被处理成一个消息隐藏模块理成一个消息隐藏模块每个等待多个事件的任务都需要一个任务每个等待多个事件的任务都需要一个任务同步互斥模块同步互斥模块 DARTSDARTS设计方法设计方法设计方法设计方法v5.任务设计任务设计详细说明系统中各任务的设计考虑和执详细说明系统中各任务的设计考虑和执行流程,以利于程序员编制程序,包括:行流程,以利于程序员编制程序,包括:任务体系结构:详细定义任务包含的任务体系结构:详细定义任务包含的子模块和模块间的关系子模块和模块间的关系任务执行流程:尽可能详细地描述任任务执行流程:尽可能详细地描述任务的处理过程
12、务的处理过程任务内数据结构任务内数据结构任务内模块间接口任务内模块间接口v5.任务设计(续)任务设计(续)-模块构筑模块构筑系系统统和和任任务务设设计计完完成成后后,进进行行每每个个模模块块的的详细设计,直到每个具体的函数;详细设计,直到每个具体的函数;在在单单元元测测试试前前不不必必编编完完模模块块全全部部程程序序,可可以分阶段编码和测试;以分阶段编码和测试;模模块块的的详详细细设设计计应应一一气气呵呵成成,避避免免系系统统以以非结构化方式形成。非结构化方式形成。DARTSDARTS设计方法设计方法设计方法设计方法v5.任务设计(续)任务设计(续)-任务与系统集成任务与系统集成模块逐个连接、
13、测试以构成任务模块逐个连接、测试以构成任务任务被逐个连接和测试形成最终系统任务被逐个连接和测试形成最终系统可分两步集成可分两步集成在宿主机上模拟集成(软集成)在宿主机上模拟集成(软集成)在目标机上集成在目标机上集成 DARTSDARTS设计方法设计方法设计方法设计方法实实 例例 说说 明明机器人控制器系统机器人控制器系统控制设备由内部控制器和外部控制面板组控制设备由内部控制器和外部控制面板组成成控制器控制六个转轴,并与数字控制器控制六个转轴,并与数字I/O传感传感器交互作用。器交互作用。转轴和转轴和I/O由程序控制由程序控制该程序由控制面板操作启动执行该程序由控制面板操作启动执行上电上电手动手
14、动停止停止结束结束断电断电运行运行程序选择程序选择控制面板控制面板实实 例例 说说 明明机器人控制器系统机器人控制器系统按下按下“上电上电”按钮,系统进入了上电状态。按钮,系统进入了上电状态。上电成功后,系统进入手动状态。此时,操上电成功后,系统进入手动状态。此时,操作者可以通过作者可以通过程序选择开关程序选择开关选择程序选择程序按下按下“运行运行”按钮,则选定的程序开始运行,按钮,则选定的程序开始运行,系统转为运行态。系统转为运行态。程序运行中如果按下程序运行中如果按下“停止停止”键,程序被挂键,程序被挂起起操作者可按下操作者可按下“运行运行”键,使程序恢复执行,键,使程序恢复执行,也可按下
15、也可按下“结束结束”键,结束程序。键,结束程序。按下按下“结束结束”键后,系统进入终止态。当程键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。序最终终止执行时,系统返回手动状态。控制执行过程控制执行过程需求分析与说明需求分析与说明断电态断电态通电态通电态手动态手动态运行态运行态终止态终止态挂起态挂起态上电上电上电成功上电成功断电断电运行运行程序程序选择选择程序终止程序终止结束结束运行运行停止停止状态变迁图状态变迁图结束结束机器人控制器数据流图机器人控制器数据流图程序程序面板输入有效面板输入有效性检查性检查解释程序解释程序各语句各语句读传读传感器感器处理面处理面板输入板输入 处理处
16、理I/O命令命令处理动处理动作命令作命令向传感向传感器输出器输出输出动作输出动作轴数据轴数据接收确认接收确认输出到输出到面板面板轴控制器轴控制器读面板读面板 输入输入按下按下按钮按钮输入值输入值 有效值有效值 运行运行 停止停止 结束结束动作动作命令命令动作动作确认确认I/O命令命令传感器值传感器值输入输入状态值状态值控制值控制值控制控制输出值输出值显示灯显示灯 停止停止恢复恢复轴数据轴数据轴确认轴确认轴输入轴输入轴输出轴输出动作动作数据数据I/O时间时间内聚内聚时间时间内聚内聚功能功能内聚内聚控制面板控制面板输入处理器输入处理器控制面板控制面板处理器处理器控制面板控制面板输出处理器输出处理器
17、动作轴动作轴管理器管理器轴控制器轴控制器命令命令解释器解释器传感器传感器输入输入传感器传感器输出输出按下按下按钮按钮灯灯程序程序传感器传感器I/O数据存储数据存储输出输出输入输入机器人控制器的任务结构图机器人控制器的任务结构图轴轴I/O动作应答动作应答动作数据动作数据恢复恢复停止停止轴命令轴命令轴应答轴应答结束结束启动启动任务设计任务设计任务设计任务设计基本设计原则基本设计原则基本设计原则基本设计原则v尽量简单尽量简单v使用静态表使用静态表v尽量减少动态性尽量减少动态性v恰当的任务数目恰当的任务数目v使用有限状态自动机辅助设计使用有限状态自动机辅助设计v面向对象设计面向对象设计v减少预留接口减
18、少预留接口尽量简单尽量简单尽量简单尽量简单v不存在完善方法不存在完善方法任何的设计都只能尽量好,不可能最优。任何的设计都只能尽量好,不可能最优。v以成本为基准以成本为基准开发计划易实现,成本费用可控制,软开发计划易实现,成本费用可控制,软件质量有保障件质量有保障v不能过于强调精简不能过于强调精简软件具有可读性、可移植性、易维护软件具有可读性、可移植性、易维护v常用模型和方法常用模型和方法原型模型、增量模型、组件构件方法原型模型、增量模型、组件构件方法使用静态表使用静态表使用静态表使用静态表v系统运行前,根据各任务的实时要求生成系统运行前,根据各任务的实时要求生成一张任务的运行时间表,指明各任务
19、的起一张任务的运行时间表,指明各任务的起始运行时间以及运行长度始运行时间以及运行长度v运行时间表生成后,在系统运行过程中不运行时间表生成后,在系统运行过程中不再变化再变化v系统运行时,调度器只需根据这张表在指系统运行时,调度器只需根据这张表在指定的时刻启动相应的实时任务定的时刻启动相应的实时任务减少动态性减少动态性减少动态性减少动态性v特点决定特点决定嵌入式系统中,时间资源非常宝贵,往嵌入式系统中,时间资源非常宝贵,往往需要以空间换时间往需要以空间换时间v采用静态数据结构采用静态数据结构如静态数组如静态数组v不能绝对禁止动态不能绝对禁止动态消息队列、资源丰富系统、动态更新消息队列、资源丰富系统、动态更新减少任务数减少任务数减少任务数减少任务数v任务队列变长,任务调度管理复杂化,调任务队列变长,任务调度管理复杂化,调度延迟增加,从而降低整个系统的实时性度延迟增加,从而降低整个系统的实时性能能v任务数目的增多,任务间通信几何级数增任务数目的增多,任务间通信几何级数增长,影响系统的实时性能长,影响系统的实时性能v原则原则在实时性允许的范围内定义适当的任务在实时性允许的范围内定义适当的任务数目数目
限制150内