状态机教程
状态机一般结构
输入集合 A 组合逻辑 后续状态 状 态 迁 移 状 态 记 忆 输 出 形 成
CLK 同步
输 出 集 合 X
时序逻辑
当前状态
状态迁移图
输入集合
(触发事件)
输出集合
(执行动作)
S
状态等待 状态位置
a1 , a2 , … , an x1 , x2 , … , xn
状态名称
转移方向
状态机实例 —— 自动门
辅导讲座
有限状态机基础知识及练习
状态机一般定义
(Finite State Machine,FSM) ◆状态 ——系统的基本数学特征。
◆状态机 —— 一个离散数学模型。给定 一个输入集合,根据对输入的接受次序 来决定一个输出集合。(摩尔状态机)
◆有限状态机。
???
开 锁
2s / 撤销“谢谢”
投币 / 开锁
是否完美了?通过 / 报警
解警 / 消除警报
加 锁
违 例
通过 投币
通过 / 加锁 、撤销“谢谢” 就绪 / 消除警报、加锁 “就绪” 是退出 “违例” 状态的唯一条件!
再问一次:是否完美了? ………………
状态机实例
完美只是相对的!
小 结(概念)
◆无论对连续系统还是离散系统,状态概念无 所不在。FSM 提供了一种描述和控制应用逻辑的 非常强大的方法,具有规则简单、可读性和可验 证性强等特点。
加 锁
开 锁
通过 / 加锁 修改“加锁”状态的异常处 理
状态机实例
异常处理优化
初始状态
投币 / 开锁
Φ / 加锁 投币 / 谢谢
加 锁
开 锁
通过 / 加锁 修改“加锁”状态的异常处 理
状态机实例
一个更好的异常处理方案
可靠性 经济性 完美性 条件是充分的 条件是必要的 条件是充分和必要的 Φ / 加锁 投币 / 谢谢 初始状态
有一自动门,它可以被锁上,也可以开 锁。当门锁上时,某人可以在它的槽中塞进 一枚硬币。这样,门就会自动开锁,转变到 开锁的状态;人通过后,门就会自动锁上。
我们希望把自动门交给一个简单的 FSM 管理。通过对这个简单 FSM 的分析, 了解 FSM 的设计过程。
自动门的基本状态
初始状态 Φ / 加锁 投币 / 开锁
◆FSM 也是个不错的工具。很多复杂的逻辑都 可以用一张图表来表述。
◆对一个复杂离散系统而言, 使用 FSM 方案 几乎无所不能。FSM 在通信协议、图形界面控制 和其他很多工程应用中均有其足迹。
小 结(方法)
◆ 明确对象要求,确定输入和输出集合,合 理分配状态。 ◆ 确定状态迁移方向和迁移触发条件,确定 合乎要求的输出集合。 ◆ 充分预计各种异常情况,确定异常处理策 略及出口。
◆ 按照实际需求,制定合理的诊断模式。
◆ 完成系统综合。 ◆ 系统评价,设计验证。
加 锁
开 锁
通过 / 加锁
状态机实例
异常处理
初始状态 Φ / 加锁 投币 / 开锁
通过 / 报警
投币 / 谢谢
加 锁
开 锁
通过 / 加锁
状态机实例
自动门的结构简图
通过传感器 开锁执行
投币传感器
控 制 器
加锁执行 “谢谢”
时钟 CLK
声光报警
状态机实例
异常处理优化
初始状态
投币 / 开锁
Φ / 加锁 通过 / 报警 投币 / 谢谢