收藏 分销(赏)

嵌入式软件设计洗衣机程序需求分析与详细设计.doc

上传人:精*** 文档编号:9737955 上传时间:2025-04-05 格式:DOC 页数:10 大小:120KB 下载积分:8 金币
下载 相关 举报
嵌入式软件设计洗衣机程序需求分析与详细设计.doc_第1页
第1页 / 共10页
嵌入式软件设计洗衣机程序需求分析与详细设计.doc_第2页
第2页 / 共10页


点击查看更多>>
资源描述
基于DARTS的洗衣机控制软件设计 1.洗衣机控制软件需求分析与说明 洗衣机是日常家用电器,它是人们日常使用频率较高的家用电器,有全自动、半自动等不同类型。根据题目中提出的需求概述,结合日常生活中人们的使用习惯,在这里给出其功能需求和相应的非功能需求以及相应的外部接口等的定义和描述。 1)功能需求定义和描述 (1) 默认状态下洗衣机处于关闭状态。用户按下电源开关后,洗衣机上电工作;当洗衣机处于工作状态时,用户按下电源开关后,无论洗衣机处于何种运行状态均断电、停止工作; (2) 电源开关开启后,洗衣机默认的程序功能是洗衣、漂洗、脱水,默认水位时中等水位,运行状态是等待状态; (3) 洗衣机有运行状态和等待状态;当用户按下暂停\启动开关后,若洗衣机原来处于等待状态,则转入运行状态,执行等待状态时的程序执行状态;若洗衣机处于运行状态,则转入等待状态,并保存程序的执行状态; (4) 当洗衣机处于运行状态时,用户的程序控制,即洗衣、漂洗、脱水按键和水位按键的输入无效;只有当洗衣机处于等待状态时其输入才有效; (5) 程序控制的洗衣、漂洗、脱水这三个键可以按下一个、两个或者三个,洗衣机总是按洗衣->漂洗->脱水的顺序执行程序并且只执行用户选择的程序; (6) 水位按键每次只能选择高、中、低三种水位的一个值; (7) 洗衣机显示面板显示洗衣机的电源状态、暂停\启动状态、当前执行的程序以及即将执行的程序和水位状态,并且能根据用户输入以后及时改变显示信息。 2)非功能需求定义和描述 (1) 洗衣机开关机的响应时间控制在500ms以内; (2) 洗衣机在运行状态和等待状态之间的才换控制在800ms以内; (3) 洗衣机功能和水位的输入控制在600ms以内; (4) 洗衣机显示面板的响应控制在1200ms以内; (5) 这里假设洗衣机洗衣用600s的时间,漂洗用300s的时间,脱水用100s的时间。 3)外部接口描述 电源 暂停/启动 漂洗 甩干 高水位 中水位 低水位 洗涤 外部接口描述如下所述:共有八个按钮,分为四组,分别是电源、暂停/启动、程序控制和水位。按钮旁边的指示灯显示每个按钮对应的状态:电源指示灯亮表示电源打开,暗则表示关闭;暂停/启动按钮亮表示正在运行,暗表示处于暂停状态;程序控制按钮亮表示正在执行或者将要执行,暗则表示不能执行;水位按钮亮表示当前处于某个水位。 4)系统状态变迁图 断电态 通电等待态 通电执行态 电源打开 电源关闭 程序\水位控制 启动 暂停 电源关闭 2.洗衣机控制软件系统设计以及数据流分析 根据以上所提出的需求,相应的数据流图如下所示: 读取按键输入 按下按键 按键有效性检查 按键输入 按键输入处理 按键有效 无效处理 按键无效 洗衣机状态信息 查看程序状态 状态信息 按键状态转换 状态信息 有效按键输入 定时20个时钟中断 触发信息 状态判断器 输入信息 定时10个时钟中断 面板输出 触发信息 状态信息 改变显示管 状态信息 解释程序信息 状态变化信息 发动机机械、电信号 信号响应 动作输出 定时15个时钟中断 触发信息 洗衣机状态、指令集 指令信息 说明: (1)洗衣机程序状态信息是一组数据,包含四个项:电源状态、运行情况、程序状态和水位信息,与输入面板的相对应; (2)时钟中断的时间间隔是20ms,通过具有一定频率的时钟中断来查看当前洗衣机程序执行的执行情况、按键输入和面板输出,以提高效率、降低复杂性。 (3)洗衣机状态、指令集是洗衣机在装变为相应状态的时候所需要运行的指令等,这些设局存储在快速读写存储器之中,读取这些数据的时间非常快,在100ms的量级。 3.洗衣机控制软件任务划分以及任务模块设计 1)洗衣机控制软件任务划分 根据设计的数据流图,洗衣机程序的任务划分如下图所示(在数据流图中被划入相同的任务的数据处理过程用相同颜色的虚线方框来表示): 读取按键输入 按下按键 按键有效性检查 按键输入 按键输入处理 按键有效 无效处理 按键无效 洗衣机状态信息 查看程序状态 状态信息 按键状态转换 状态信息 有效按键输入 定时20个时钟中断 触发信息 状态判断器 输入信息 定时10个时钟中断 面板输出 触发信息 状态信息 改变显示管 状态信息 解释程序信息 状态变化信息 发动机机械、电信号 信号响应 动作输出 定时15个时钟中断 触发信息 洗衣机状态、指令集 指令信息 进行以上任务划分的理由: 在DARTS设计方法中,划分任务的原则包括以下几种:I/O依赖性、功能的时间关键性、计算需求、功能内聚、时间内聚和周期执行,正是根据以上原则进行整体考虑得到以上的功能划分。 (1)按键输入任务:功能内聚原则; (2)中断定时任务:周期执行原则; (3)洗衣机状态信息处理任务:计算需求和功能内聚原则; (4)信号输出任务:I/O依赖性原则。 另外,为了提高效率,将数据流图中的洗衣机状态信息和洗衣机状态指令集整合在一起作为洗衣机程序的信息存储,以便各个任务的访问能够有一个统一的入口。 2)洗衣机控制软件任务接口 洗衣机信息存储 按键输入任务 信号输出任务 状态信息处理任务 中断定时任务 触发信息 触发信息 按键输入消息队列 存储信息消息队列 存储信息消息队列 修改存储信号 面板、动作输出 按键输入 3)任务模块设计 (1)按键输入任务 按键输入任务的主要功能是在面板上的按键按下以后,得到正确的按键信息传递给状态信息任务对按键信息进行处理。这里的正确信息是指每次只能有同一种类的按键信息按下,比如不能同时按下暂停\启动键和洗衣程序任务键或者洗衣程序任务键和水位键等。而且需要将按键的电信号转换成可以识别的程序信号传递下去。按键输入任务的数据流图如下所示: 读取按键 按键输入 提取按键信息 错误信息处理 按键信息转换 按键信息传递 不同类型按键 相同类型按键 传递给状态信息任务处理 忽略按键信息 按键类型判断 按键输入的模块结构图如下所示: 读取按键 按键信息提取、判断 错误信息处理 正确信息传递 (2)状态信息处理任务 状态信息处理任务的主要功能是(1)每隔一段时间,把得到的按键输入转换成为相应的状态信息,根据得到的按键输入和当前的运行信息进行比较得到一个正确的运行信息写入信息存储器;(2)每隔一段时间,将运行信息传递给信号输出单元执行要运行的程序。状态信息处理的数据流图如下所示: 定时信号 得到按键信息 是 得到运行状态信息 按键信息 洗衣机信息存储 运行信息 按键信息 与运行信息 判断是否有按键 是 按键是否与运行信息矛盾 否 写入运行信息 运行信息 发送状态变化信息 状态变化信息 定时信号 得到运行状态信息 否 运行信息 判断信息是否应该改变 否 是 不予相应,空操作 更改的运行信息 状态信息处理的模块结构如下所示: 获取按键信息 状态判断 运行信息更改 动作信号传递 查看运行信息 (3)中断定时任务 中断定时任务的主要功能是为程序的执行提供时间控制,状态信息处理和信号输出均需要中断定时任务的控制。中断定时任务为每一个需要的任务设置定时器,如果定时器时间到达就发送触发信息,并重置相应的中断定时器。中断定时任务的数据流图如下: 判断20个定时时间是否到 是 重设20个定时时间,发送处罚信息 否 定时器重置信号 设置定时器 定时器是指减1 定时器设置信号 触发信息 判断15个定时时间是否到 时钟中断 是 重设15个定时时间,发送处罚信息 否 定时器重置信号 设置定时器 定时器是指减1 定时器设置信号 触发信息 判断10个定时时间是否到 是 重设10个定时时间,发送处罚信息 否 定时器重置信号 设置定时器 定时器是指减1 定时器设置信号 触发信息 定时器的任务模块如下所示: 设置定时信息 发送触发信号 获取定时信息 判断10个定时时间 判断15个定时时间 判断20个定时时间 重置定时信息 是 是 是 否 否 否 (4)信号输出任务 信号输出任务主要是将程序的执行状态转化为用户可见的显示和洗衣机的动作输出。其数据流图如下所示: 程序执行状态读取 执行信息存储 显示面板输出 触发信息 状态、指令读取 状态和指令比对,选择正确指令 指令转化为电信号,出书信号 状态改变信息 状态改变信息,指令信息 指令信息 电信号 运行信息 指令信息 信号输出任务模块如下所示: 执行信息读取 显示面板输出 指令转换、电信号输出 4.主要的功能流程设计 通过以上的分析与设计,程序框架基本建立,大部分模块的形成和设计如上面设计过程中的功能所示,这里对按键输入任务中的按键提取、判断和状态信息处理任务中的状态信息处理的算法实现进行描述。 按键提取、判断的流程: 当得到输入键值以后,检测按键的类型,如果类型大于1便认为是错误输入;按键的类型等于1则认为是正确输入,才能将其进行传递。 状态信息处理的流程: (1) 如果输入的是电源开关按键值,直接传递给动作输出信号任务改变电源状态,并将洗衣机状态信息设为初始状态,因为电源状态在洗衣机软件中具有最重要的地位和最高优先级; (2) 如果输入的是暂停\启动按键值,应先判断电源状态是否为开,如果为开启状态就改变运行状态为相对的状态,如果为关则将洗衣机状态设置为初始状态,因为在电源为关闭的状态下不应检测到该按键值,这说明系统运行信息被非法修改; (3) 如果输入的是运行程序值,同(2)一样首先判断电源是否开启,处理方式相同;然后判断是否处于暂停状态,如果处于运行程序状态则忽略输入值;如果处于暂停状态,则修改相应的运行信息; (4) 如果输入的是水位值,则首先执行同(3)的判断过程;然后检查当前的运行程序是否是脱水,如果是脱水程序运行则忽略水位值信息,否则设置水位值。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服