基于 DARTS 的洗衣机控制软件设计
洗衣机控制软件需求分析与说明
洗衣机是日常家用电器,它是人们日常使用频率较高的家用电器,有全自动、半自动等 不同类型。根据题目中提出的需求概述,结合日常生活中人们的使用****惯,在这里给出其功 能需求如下所示:
说明:
洗衣机程序状态信息是一组数据,包含四个项:电源状态、运行情况、程序状态和 水位信息,与输入面板的相对应;
时钟中断的时间间隔是20ms,通过具有一定频率的时钟中断来查看当前洗衣机程序 执行的执行情况、按键输入和面板输出,以提高效率、降低复杂性。
洗衣机状态、指令集是洗衣机在装变为相应状态的时候所需要运行的指令等,这些设局存储在快速读写存储器之中,读取这些数据的时间非常快,在
100ms的量级。
洗衣机控制软件任务划分以及任务模块设计
1)洗衣机控制软件任务划分 根据设计的数据流图,洗衣机程序的任务划分如下图所示(在数据流图中被划入相同的 任务的数据处理过程用相同颜色的虚线方框来表示):
进行以上任务划分的理由:
在DARTS设计方法中,划分任务的原则包括以下几种:I/O依赖性、功能的时间关键性、 计算需求、功能内聚、时间内聚和周期执行,正是根据以上原则进行整体考虑得到以上的功 能划分。
按键输入任务:功能内聚原则;
中断定时任务:周期执行原则;
洗衣机状态信息处理任务:计算需求和功能内聚原则;
信号输出任务: I/O 依赖性原则。
另外,为了提高效率,将数据流图中的洗衣机状态信息和洗衣机状态指令集整合在一起 作为洗衣机程序的信息存储,以便各个任务的访问能够有一个统一的入口。
洗衣机控制软件任务接口
任务模块设计
按键输入任务 按键输入任务的主要功能是在面板上的按键按下以后,得到正确的按键信息传递给状态 信息任务对按键信息进行处理。这里的正确信息是指每次只能有同一种类的按键信息按下,比如不能同时按下暂停
\启动键和洗衣程序任务键或者洗衣程序任务键和水位键等。而且需 要将按键的电信号转换成可以识别的程序信号传递下去。按键输入任务的数据流图如下所
按键输入的模块结构图如下所示:
状态信息处理任务 状态信息处理任务的主要功能是(1)每隔一段时间,把得到的按键输入转换成为相应的 状态信息,根据得到的按键输入和当前的运行信息进行比较得到一个正确的运行信息写入信 息存储器;(2)每隔一段时间,将运行信息传递给信号输出单元执行要运行的程序。状态信 息处理的数据流图如下所示:
(3)中断定时任务 中断定时任务的主要功能是为程序的执行提供时间控制,状态信息处理和信号输出均需 要中断定时任务的控制。中断定时任务为每一个需要的任务设置定时器,如果定时器时间到 达就发送触发信息,并重置相应的中断定时器。中断定时任务的数据流图如下:
否
时钟中断
定时器是
指减1
判断20个定
到
时时间是否
定时器设置信号
是
>
设置定时
器
重设20个
定时时间,
发送处罚
信息
寸器重置信号
触发信息
否
定时器是
指减1
判断15个定
到
时时间是否
定时器设置信号
设置定时
器
重设15个
定时时间,
发送处罚
信息
寸器重置信号
触发信息
判断10个定 时时间是否 至V
否
定时器设置信号
定时器是
指减1
设置定时
器
重设10个
定时时间,
发送处罚
信息
寸器重置信号
触发信息
定时器的任务模块如下所示:
疋
否
是
设置定时信息
重置定时信息
判断10个定 时时间
判断15个定 时时间
判断20个定 时时间
发送触发信号
获取定时信息
(4)信号输出任务 信号输出任务主要是将程序的执行状态转化为用户可见的显示和洗衣机的动作输出。其
数据流图如下所示:
信号输出任务模块如下所示:
主要的功能流程设计
通过以上的分析与设计,程序框架基本建立,大部分模块的形成和设计如上面设计过程 中的功能所示,这里对按键输入任务中的按键提取、判断和状态信息处理任务中的状态信息 处理的算法实现进行描述。
按键提取、判断的流程: 当得到输入键值以后,检测按键的类型,如果类型大于1 便认为是错误输入;按键的类 型等于1 则认为是正确输入,才能将其进行传递。
状态信息处理的流程:
(1) 如果输入的是电源开关按键值,直接传递给动作输出信号任务改变电源状态, 并将洗衣机状态信息设
嵌入式软件设计 来自淘豆网www.taodocs.com转载请标明出处.