资源预览内容
第1页 / 共58页
第2页 / 共58页
第3页 / 共58页
第4页 / 共58页
第5页 / 共58页
第6页 / 共58页
第7页 / 共58页
第8页 / 共58页
第9页 / 共58页
第10页 / 共58页
亲,该文档总共58页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
DARTS实时软件分析设计方法主讲:谢小云acs.jx.cn1、DARTS设计方法概述2、DARTS设计方法的设计步骤 3、基于DARTS的洗衣机控制软件设计 4、机器人控制器系统的设计目录实时软件开发设计方法1、DARTS设计方法概述u通用软件开发的设计:n系统划分为各个功能子模块,再进一步细分为函数 ,采用自顶向下的设计方法u嵌入式应用软件的设计n通过并发的任务来运作的,应用软件开发的系统设 计将系统划分为多个任务,各个任务允许并发执行 ,通过相互间通信建立联系。实时软件开发设计方法1、DARTS设计方法概述nDARTS(Design Approach for Real-Time Systems) ,它是SAISD(System Analysis System Design结构 化分析和设计)方法在实时系统开发中的应用,按照软件生命周期进行软件开发。nDARTS通过将系统分解成任务和定义任务接口的 方法,来扩充结构化分析/设计的方法,使得实时应用系统具有并行处理的能力。该开发方法的关 键是将一个系统分解为并行的任务,并定义任务 间的接口。 实时软件开发设计方法1 、DARTS设计方法概述2、DARTS设计方法的设计步骤 3、基于DARTS的洗衣机控制软件设计4、机器人控制器系统的设计目录实时软件开发设计方法2.1 嵌入式实时软件系统生命周期u需求分析u系统设计DARTS设计方法n数据流分析n划分任务n定义任务接口u任务设计u模块构筑u任务与系统集成u系统测试实时软件开发设计方法2.2 DARTS-数据流分析 u在需求分析的基础上,以数据流图作为分析工 具分析系统的数据流,从系统的功能需求开始 分析系统的数据流,以确定主要的功能。 u数据流图(Data Flow Diagram,DFD)也称 为Bubble Chart或Data Flow Graph,它用来描绘系统的逻辑模型,从数据传递和加工的角 度,以图形的方式描绘数据在系统中流动和处 理的过程,反映系统必须完成的逻辑功能。 实时软件开发设计方法2.2 DARTS-数据流分析u数据流图的基本图形符号 加工。输入数据在此进行变换产生输出数据,其中要标明加工的名字。 数据输入的源点或数据输出的终点。其中要标明源点或终点的名字。 数据流。被加工的数据与流向,箭头边应给出数据流名字,可用 名词或名词性短语命名。 数据存储。必须加以命名,用名词或名词性短语命名。 实时软件开发设计方法2.2 DARTS-数据流分析u数据流图示例 实时软件开发设计方法2.2 DARTS-数据流分析u数据流与加工之间的关系 n在数据流图中,如果有两个以上数据流指向一个加 工,或者是从一个加工中引出两个以上的数据流, 这些数据流之间往往存在一定关系。 实时软件开发设计方法2.2 DARTS-数据流分析实时软件开发设计方法2.2 DARTS-数据流分析u数据流图的画法 n识别系统的输入和输出,画出基本系统模型 n把顶层图细化为系统的功能级数据模型n对功能级数据流图中描绘的主要功能进一步细化 实时软件开发设计方法2.3 DARTS-划分任务 u识别出系统的所有功能以及它们之间的数据流 关系,得到完整的数据流图后,下一步是识别 出可并行的功能。系统设计人员把可并行、相 对独立的功能单元抽象成一个系统任务。 uDARTS设计方法提供了怎样在数据流图上确 定并发任务的方法。 u实时软件系统中并行任务的分解主要考虑系统 内功能的异步性。 u一个任务可对应一个变换,也可对应多个变换 。实时软件开发设计方法2.3 DARTS-划分任务 u划分任务的原则:n I/O依赖性n如果变换依赖于I/O,速度受限I/O,可独立成任务n在系统中创建与I/O设备数目相当的I/O任务nI/O任务只实现与设备相关的代码nI/O任务的执行只受限于I/O设备的速度,而不是处理器n在任务中分离设备相关性DeviceI/O Task App.Task实时软件开发设计方法2.3 DARTS-划分任务n功能的时间关键性:n具有时间关键性的功能应当分离处理出来,成 为一个独立的任务,并且赋予这些任务较高的 优先级,以满足系统对时间的要求。event 1event 2Task 1Task 2Task 3Task 3deadline 1deadline 2实时软件开发设计方法2.3 DARTS-划分任务n计算需求n计算量大的功能在运行时势必会占用CPU很多时间,应当让它们单独成为一个任务。n为了保证其他费时少的任务得到优先运行,应 该赋予计算量大的任务以较低优先级运行,这 样允许它能被高优先级的任务抢占。 n多个计算任务可安排成同优先级,按时间片循 环轮转实时软件开发设计方法2.3 DARTS-划分任务n功能内聚:n系统中各紧密相关的功能,不适合划分为独立 的任务,应该把这些逻辑上或数据上紧密相关 的功能合成一个任务,使各个功能共享资源或 相同事件的驱动。 n把每个变换都作为同一任务中一个个独立的模 块,不仅保证了模块级的功能内聚,也保证了 任务级的功能内聚event 1F1(x) + F3(x)event 2 F2(x)实时软件开发设计方法2.3 DARTS-划分任务n时间内聚:n将同一时间内完成的各功能形成一个任务 ,即使这些功能是不相关的n功能组的各功能是由相同的外部事件驱动的( 如时钟等),这样每次任务接收到一个事件, 它们都可以同时执行n由于减少了任务调度及切换的次数,减少了系 统的开销Clock TickeventF1(x) + F2(y)+F3(z)F4(x)+F5(y)实时软件开发设计方法2.3 DARTS-划分任务n功能的周期执行n将在相同周期内执行的各个功能组成一个任务 ,使运行频率越高的任务赋予越高的优先级。 n频率高的任务赋予高优先级F1F2 F110HZ10HZ 15HZ15HZ F2实时软件开发设计方法2.4 DARTS-定义任务间的接口 u在数据流图中,接口以数据流和数据存储区的 形式存在。 u在DARTS中有两类任务接口模块: n任务通信模块TCM(Task Communication Module) n任务同步模块TSM(Task Synchronization Module) 实时软件开发设计方法2.4 DARTS-定义任务间的接口u任务通信模块n信息隐藏模块数据 存储区写数据读数据读数据任务A任务B实时软件开发设计方法2.4 DARTS-定义任务间的接口n消息通信模块实时软件开发设计方法2.4 DARTS-定义任务间的接口u任务同步模块源S:发事件信号(E)S目标D:等待事件(E)D实时软件开发设计方法2.4 DARTS-定义任务间的接口u表示任务之间的接口的符号实时软件开发设计方法2.5 DARTS-任务设计 u有了划分好的任务以及定义好的任务间的接口 后,接下来就可以开始任务的设计。 u主要工作是确定每个任务的结构,画出每个任 务的数据流图,使用结构化设计方法,从数据 流图导出任务的模块结构图,并定义各模块的 接口,之后,便可以进行任务的详细设计,给 出每个模块的程序流程图及数据结构。 实时软件开发设计方法1 、DARTS设计方法概述2、DARTS设计方法的设计步骤 3、基于DARTS的洗衣机控制软件设计 4、机器人控制器系统的设计目录实时软件开发设计方法3.1 洗衣机控制软件需求分析与说明 u功能需求定义和描述 n默认状态下洗衣机处于关闭状态。 n电源开关开启后,洗衣机默认的程序功能是洗衣、 漂洗、脱水,默认水位时中等水位,运行状态是等 待状态; n洗衣机有运行状态和等待状态; n当洗衣机处于运行状态时,用户的程序控制,即洗 衣、漂洗、脱水按键和水位按键的输入无效;只有 当洗衣机处于等待状态时其输入才有效; n程序控制的洗衣、漂洗、脱水这三个键可以按下一 个、两个或者三个,洗衣机总是按洗衣-漂洗-脱 水的顺序执行程序并且只执行用户选择的程序; 实时软件开发设计方法3.1 洗衣机控制软件需求分析与说明n水位按键每次只能选择高、中、低三种水位的一个 值; n洗衣机显示面板显示洗衣机的电源状态、暂停启动状态、当前执行的程序以及即将执行的程序和水 位状态,并且能根据用户输入以后及时改变显示信 息。实时软件开发设计方法3.1 洗衣机控制软件需求分析与说明u非功能需求定义和描述 n洗衣机开关机的响应时间控制在500ms以内;n洗衣机在运行状态和等待状态之间的才换控 制在800ms以内;n洗衣机功能和水位的输入控制在600ms以内;n洗衣机显示面板的响应控制在1200ms以内;n这里假设洗衣机洗衣用600s的时间,漂洗用 300s的时间,脱水用100s的时间。实时软件开发设计方法3.1 洗衣机控制软件需求分析与说明u外部接口描述 实时软件开发设计方法3.1 洗衣机控制软件需求分析与说明u系统状态变迁图 实时软件开发设计方法3.2 洗衣机控制软件系统设计以及数据流分析 u说明n洗衣机程序状态信息是一组数据,包含四个项:电 源状态、运行情况、程序状态和水位信息,与输入 面板的相对应;n时钟中断的时间间隔是20ms,通过具有一定频率的时钟中断来查看当前洗衣机程序执行的执行情况 、按键输入和面板输出,以提高效率、降低复杂性 。n洗衣机状态、指令集是洗衣机在转变为相应状态的 时候所需要运行的指令等,这些存储在快速读写存 储器之中,读取这些数据的时间非常快,在100ms的量级。 实时软件开发设计方法3.3 洗衣机控制软件任务划分u洗衣机控制软件任务划分(在数据流图中被划入相同的任务 的数据处理过程用相同颜色的虚线方框来表示) n按键输入任务:功能内聚原则;n中断定时任务:周期执行原则;n洗衣机状态信息处理任务:计算需求和功能内聚原则 ;n信号输出任务:I/O依赖性原则。n为了提高效率,将数据流图中的洗衣机状态信息和洗 衣机状态指令集整合在一起作为洗衣机程序的信息存 储,以便各个任务的访问能够有一个统一的入口。 实时软件开发设计方法3.3 洗衣机控制软件任务划分u洗衣机控制软件任务接口 实时软件开发设计方法3.4 任务模块设计u按键输入任务 n数据流图 实时软件开发设计方法3.4 任务模块设计n模块结构图 实时软件开发设计方法3.4 任务模块设计u状态信息处理任务 n数据流图 实时软件开发设计方法3.4 任务模块设计n模块结构 实时软件开发设计方法3.4 任务模块设计u中断定时任务 n数据流图实时软件开发设计方法3.4 任务模块设计n模块结构实时软件开发设计方法3.4 任务模块设计u信号输出任务 n数据流图实时软件开发设计方法3.4 任务模块设计n模块结构实时软件开发设计方法1 、DARTS设计方法概述2、DARTS设计方法的设计步骤 3、基于DARTS的洗衣机控制软件设计 4、机器人控制器系统的设计目录实时软件开发设计方法上电手动停止结束断电运行程序选择控制面板控制设备由内部控 制器和外部控制面 板组成控制器控制六个转 轴,并与数字I/O传感器交互作用。转轴和I/O由程序控制该程序由控制面板 操作启动执行4.1 需求分析与说明实时软件开发设计方法u控制执行过程n按下“上电”按钮,系统进入了上电状态。n上电成功后,系统进入了手动状态。此时,操作者 可以通过程序选择开关选择程序n按下“运行”按钮,则选定的程序开始运行,系统转为运行态。n程序运行中如果按下“停止”键,程序被挂起。之后 ,操作者可以按下“运行”键,使程序恢复执行,也 可按下“结束”键,结束程序。n按下“结束”键后,系统进入终止态。当程序最终终止执行时,系统返回手动状态。 4.1 需求分析与说明实时软件开发设计方法断电态通电态手动态运行态终止态挂起态上电上电 成功断电启动程序 选择程序 终止结束启动停止状态变迁图4.1 需求分析与说明实时软件开发设计方法4.2 数据流分析程序面板输入有 效 性检查解释程序 各语句读传 感器处理面板 输入处理 I/O命令处理动 作命令向传感 器输出输出动作 轴数据接收 确认输出到 面板轴控制 器读面板
收藏 下载该资源
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号