没有合适的资源?快使用搜索试试~ 我知道了~
状态机的详细说明
需积分: 10 1 下载量 7 浏览量
2011-12-09
00:47:08
上传
评论
收藏 35KB DOCX 举报
温馨提示
试读
20页
状态机就是状态转移图。举个最简单的例子。人有三个状态健康,感冒,康复中。触发的条件有淋雨(t1),吃药(t2),打针(t3),休息(t4)。所以状态机就是健康-(t3)-〉健康;健康-(t1)-〉感冒;感冒-(t3)->健康;感冒-(t2)-〉康复中;康复中-(t4)-〉健康。等等。就是这样状态在不同的条件下跳转到自己或不同状态的图
资源详情
资源评论
资源推荐
状态机
什么是状态机
就是状态转移图。举个最简单的例子。人有三个状态健康,感冒,康复
中。触发的条件有淋雨(t1),吃药(t2),打针(t3),休息(t4)。所
以状态机就是健康-(t3)-〉健康;健康-(t1)-〉感冒;感冒-(t3)->健
康;感冒-(t2)-〉康复中;康复中-(t4)-〉健康。等等。就是这样状态
在不同的条件下跳转到自己或不同状态的图。
状态机综述
关于状态机的一个极度确切的描述是它是一个有向图形,由一组节点和
一组相应的转移函数组成。状态机通过响应一系列事件而“运行”。每个事件
都在属于“当前” 节点的转移函数的控制范围内,其中函数的范围是节点的一
个子集。函数返回“下一个”(也许是同一个)节点。这些节点中至少有一个
必须是终态。当到达终态, 状态机停止。
包含一组状态集(states)、一个起始状态(start state)、一组输入
符号集(alphabet)、一个映射输入符号和当前状态到下一状态的转换函
数(transition function)的计算模型。当输入符号串,模型随即进入起始
状态。它要改变到新的状态,依赖于转换函数。在有限状态机中,会有有许
多变量,例如,状态 机有很多与动作(actions)转换(Mealy 机)或状态
(摩尔机)关联的动作,多重起始状态,基于没有输入符号的转换,或者指
定符号和状态(非定有 限状态机)的多个转换,指派给接收状态(识别者)
的一个或多个状态,等等。
传统应用程序的控制流程基本是顺序的:遵循事先设定的逻辑,从头到
尾地执行。很少有事件能改变标准执行流程;而且这些事件主要涉及异常情
况。“命令行实用程序”是这种传统应用程序的典型例子。
另一类应用程序由外部发生的事件来驱动——换言之,事件在应用程序
之外生成,无法由应用程序或程序员来控制。具体需要执行的代码取决于接
收到的事件,或者它 相对于其他事件的抵达时间。所以,控制流程既不能是
顺序的,也不能是事先设定好的,因为它要依赖于外部事件。事件驱动的
GUI 应用程序是这种应用程序的典 型例子,它们由命令和选择(也就是用户
造成的事件)来驱动。
Web 应用程序由提交的表单和用户请求的网页来驱动,它们也可划归到
上述类别。但是,GUI 应用程序对于接收到的事件仍有一定程度的控制,因
为这些事件要依赖于向用户显示的窗口和控件,而窗口和控件是由程序员控
制的。Web 应用 程序则不然,因为一旦用户采取不在预料之中的操作(比
如使用浏览器的历史记录、手工输入链接以及模拟一次表单提交等等),就
很容易打乱设计好的应用程序逻辑。
显然,必须采取不同的技术来处理这些情况。它能处理任何顺序的事件,
并能提供有意义的响应——即使这些事件发生的顺序和预计的不同。有限状
态机正是为了满足这方面的要求而设计的。
有限状态机是一种概念性机器,它能采取某种操作来响应一个外部事件。
具体采取的操作不仅能取决于接收到的事件,还能取决于各个事件的相对发
生顺序。之所以能 做到这一点,是因为机器能跟踪一个内部状态,它会在收
到事件后进行更新。为一个事件而响应的行动不仅取决于事件本身,还取决
于机器的内部状态。另外,采取 的行动还会决定并更新机器的状态。这样一
来,任何逻辑都可建模成一系列事件/状态组合。
[1]
状态机可归纳为 4 个要素,即现态、条件、动作、次态。这样的归纳,
主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和
“次态”是果。详解如下:
①现态:是指当前所处的状态。
②条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者
执行一次状态的迁移。
③动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状
态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执
行任何动作,直接迁移到新状态。
④次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,
“次态”一旦被激活,就转变成新的“现态”了。
状态机简介
状态机简写为 FSM(Finite State Machine),主要分为 2 大类:第一类,
若输出只和状态有关而与输入无关,则称为 Moore 状态机:第二类,输出
不仅和状态有关而且和输入有关系,则称为 Mealy 状态机。要特别注意的是,
因为 Mealy 状态机和输入有关,输出会受到输入的干扰,所以可能会产生毛
刺(Gitch)现象,使用时应当注意。事实上现在市面上有很多 EDA 工具可
以很方便的将采用状态图的描述转换成可以综合的 VHDL 程序代码。
状态机的两种写法
有限状态机 FSM
思想广泛应用于硬件控制电路设计,也是软件上常用的一种处理方法(软
件上称为 FMM--有限消息机)。它把复杂的控制逻辑分解成有限个稳定状态,
在每个状态 上判断事件,变连续处理为离散数字处理,符合计算机的工作特
点。同时,因为有限状 态机具有有限个状态,所以可以在实际的工程上实现。
但这并不意味着其只能进行有限 次的处理,相反,有限状态机是闭环系统,
有限无穷,可以用有限的状态,处理无穷的 事务。
有限状态机的工作原理如图 1 所示,发生事件(event)后,根据当前状
态(cur_state) ,决定执行的动作(action),并设置下一个状态号
(nxt_state)。
-------------
| |-------->执行动作 action
发生事件 event ----->| cur_state |
| |-------->设置下一状态号 nxt_state
-------------
当前状态
图 1 有限状态机工作原理
e0/a0
剩余19页未读,继续阅读
jklinqing007
- 粉丝: 13
- 资源: 274
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 采用P-f和Q-V滞控的去中心化逆变器型交流微电网的模拟(Simulink仿真实现)
- 彩虹聚合二级域名DNS管理系统源码v1.3
- 【TOF相机笔记3】Simulink使用方法
- 算法部署-基于C++和Python使用ONNXRuntime部署RT-DETR目标检测算法-附项目源码-优质项目实战.zip
- Bitree.cpp
- 改变浏览器大小,图片(img)内容居中显示
- 全景分割-基于FAIR-DETR对Cityscapes数据集进行微调实现全景分割-附项目源码-优质项目实战.zip
- Tru master.m4a
- 基于ELMAN神经网络的用气量预测,基于ELMAN的天然气消费量预测(代码完整,数据齐全)
- 基于Vue3+ThreeJS实现机械臂控制和预览+源码+开发文档+代码解析(高分优秀项目)
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0