积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式软件 >> 相关文章
  相关分类: LINUX | WINCE | UC/OS | Bootloader | 下载 | VXWORKS | 网络协议 | JAVA | 汇编 | 驱动设计 | Symbian | XP Embedded | Nucleus | 新产品 | 相关文章 | 综合技术 |
一种简单有效的面向过程软件设计思想
 
作者:江西联创通信有限公司 贺晔晔   来源:单片机与嵌入式系统应用    点击数:156   更新时间:2008-10-20
您可以添加到网摘 让更多人关注此文章:

    引 言
   
面向状态转换的软件设计思想属于面向过程软件设计思想的范畴,它完全符合软件工程模块化、结构化的设计思想。在面向过程的软件设计中,状态的转化与分解对于解决具有复杂过程的问题有着很好的效果,并能被用户很好地理解和接受,它的基本指导思想为:自顶向下、逐层分解、逐步求精、理清状态、分解状态。同时,它也具有很强的实用性、可读性、可移植性,并且思路清晰、简单易学、具有一定范围内的通用性。通常可采用UML中的状态图来对其进行设计和描述,也可使用有穷自动机(DFA)中的状态图来对其进行设计和描述。


1 单过程对象状态转换图
   
首先,来看一个简单的单过程对象的例子。在洗衣机的工作过程中,一般要经过以下几个过程:
    ①接通电源,洗衣机按“启动”按钮后开始供水;
    ②当水满到“水满传感器”时就停止供水;
    ③水满之后,洗衣机开始执行漂洗过程,正转5 s,然后倒转5 s,执行此循环动作10 min;
    ④漂洗结束之后,出水阀开始放水;
    ⑤放水30 s后结束放水;
    ⑥开始脱水操作,脱水持续5 min;
    ⑦脱水结束后发出“光报警器”报警,叫工作人员来取衣服;
    ⑧按“停止”按扭(或10 s报警超时到),声光报警器停止,并结束整个工作过程。
    按照该洗衣机的工作流程,可用有穷自动机(DFA)中的状态图来描述其状态转化过程,如图1所示。

    了解了该洗衣机的状态转化过程后,根据其状态转化图就可以很容易地为其进行软件设计,并写出相应的程序实现代码。


2 单过程对象状态转换图的程序代码实现
   
下面就根据该洗衣机工作状态转换图,对洗衣机工作过程进行软件设计和编程(使用C语言来描述):
    首先,该状态图只涉及一个对象,那就是洗衣机,因此只需要定义一个状态变量,用该状态变量来表示洗衣机的状态。该变量定义为:
  
    最后,再定义一个时间变量wDelayTime来表示对洗衣机工作过程中的时间控制。至此,通过洗衣机工作过程中的状态转换图,就可以很容易地写出该洗衣机工作过程的程序实现代码(函数StateControl(),其中有些函数的具体实现代码没有给出,主要目的是要了解该状态转换的设计思想和方法)。



3 多过程对象状态转换图
    再来看一个相对比较复杂的问题,在程控电话交换机中,一台程控电话交换机可接有上百、上千,甚至上万部电话机。其中,每一部电话机对应于程控电话交换机中的一个物理及逻辑端口,程控电话交换机就是通过对这些物理及逻辑端口的工作状态进行控制,进而实现对这些电话机工作状态的控制。一部正常工作的电话机一般具有以下几种主要状态:空闲态、拨号态、回铃音态、振铃态、通话态和忙音态。程控电话交换机的工作过程主要就是实现电话机在这些状态之间的转换与迁移。
    由于连接在一台程控电话交换机上的所有电话机都具有上述6个相同的状态转换过程,因此,可用一个状态数组来表示一台程控电话交换机上所有电话机的工作状态。图2为程控电话交换机中电话机工作时的状态转换图。

4 多过程对象状态转换图的程序代码实现
   
为在软件设计及程序代码上实现上述程控电话交换机中电话机状态的转移,首先需要定义6种工作状态(用C语言实现):

   
    还要注意到,在拨号状态,还存在2种子状态:听拨号音拨首位号状态和听静音拨非首位号状态。
    也就是说,在拨首位号时是处于听拨号音状态的拨号,而在拨非首位号时则是处于听静音状态的拨号,这两种状态是要进行区分的。当然,首位号在程控电话交换机中还有其他更为重要的作用,这里就不多讲了。
    为此,需为拨号态再定义2种子状态,定义如下:

   
    假设该程控电话交换机最多可接有1 000部电话机,由于这些电话机都具有上述6种状态,并且都具有相同的状态转移过程,因此,可用一个状态数组来表示所有电话机的状态。其定义如下:


    至此,可写出该程控电话交换机电话机状态转移程序代码(函数PhoneStateControl()),该程序代码在主程序中100 ms被定时调用(其具体实现代码略——编者注)。


5 结 论
   
以上两个例子简洁、明了地实现了各自所要的功能。该状态转换的设计思想具有化繁为简的功效,同时也具有简单、易学、易用等特点。通过上述两个例子的说明及描述,相信大家对该状态转换思想有所了解。这种状态转换思想的关键与核心是,要能够清楚地将问题的状态抽象并分解出来,并且对于所有状态的分解与描述争取做到不遗漏、不冗余、层次分明。这样,就能够很好地理解并运用这种思想为我们服务了。



相关文章
· 基于MSP430的烟雾报警器优化设计[351]
· 嵌入式DDR息线的布线分析与设计[140]
· 为当今的电子设计选择合适的音频转换器[181]
· 基于MAX264的程控滤波器[127]
· 基于PIC单片机的可编程电源的设计与应用[124]
热门评论排行
·VHDL设计中电路简化问题的
·ARM嵌入式系统基础教程(N
·江苏嵌入式Linux教育培训
·ARM处理器应用开发4步骤
·锐极LINUX驱动培训班定于

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
节能环保备受关注 半导体照
半导体产业最终将存活并将再次蓬勃发展
电子元件业御寒过冬 静待行
台湾当局拨款60亿美元援助DRAM厂
Vishay Silico
严冬期如何发展半导体业 扩
2008年中国集成电路市场回顾与展望
分析师:亚洲芯片厂商库存远超预期
2008年基础电子业十大事件点评
Aptina并购智多微手机软件平台设
 
热门下载 [更多]
 
[ PCB设计] Protel99教程下载
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
 
论坛新帖 [更多]
 
供应HY5PS561621AF...
优势供应SPP11N80C3...
优势供应ICE2A0565Z...
低价专业PCB打样 双面板20...
深圳市天漠科技超低价供应atm...
深圳市天漠科技超低价供应ARM...
[推荐]2.5米精度,高灵敏度...
830实验箱+电脑没有并口...
[原创]平望科技助力自服终端国...
低价专业PCB打样 双面板20...

 
赞助商 [更多]
 

ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网