《有限状态机基础知识及练习》由会员分享,可在线阅读,更多相关《有限状态机基础知识及练习(21页珍藏版)》请在金锄头文库上搜索。
1、有限状态机基础知识及练习有限状态机基础知识及练习有限状态机基础知识及练习有限状态机基础知识及练习辅导讲座辅导讲座辅导讲座辅导讲座瑰扁胀膛凶佬鸯秃搁孤甜镭研泥鼓刮蚀堕吧盈官噪内睡剪逢谩概妓沂郑渡有限状态机基础知识及练习有限状态机基础知识及练习状态机一般定义状态机一般定义状态机一般定义状态机一般定义(Finite State MachineFinite State Machine,FSMFSM)状态机状态机状态机状态机 一个离散数学模型。给定一个离散数学模型。给定一个离散数学模型。给定一个离散数学模型。给定 一个输入集合,根据对输入的接受次序一个输入集合,根据对输入的接受次序一个输入集合,根据对输
2、入的接受次序一个输入集合,根据对输入的接受次序 来决定一个输出集合。(摩尔状态机)来决定一个输出集合。(摩尔状态机)来决定一个输出集合。(摩尔状态机)来决定一个输出集合。(摩尔状态机)状态状态状态状态 系统的基本数学特征。系统的基本数学特征。系统的基本数学特征。系统的基本数学特征。有限状态机有限状态机有限状态机有限状态机 输入集合和输出集合输入集合和输出集合输入集合和输出集合输入集合和输出集合 都是有限的,并只有有限数目的状态。都是有限的,并只有有限数目的状态。都是有限的,并只有有限数目的状态。都是有限的,并只有有限数目的状态。进演甥宏莹椽遮扯崖玖吠综诅轮巧复峦轮韦穆汕尤荧零拒荣熟跪詹绅尼柑有
3、限状态机基础知识及练习有限状态机基础知识及练习输入集合输入集合输入集合输入集合 A A A A输输输输出出出出集集集集合合合合 X XX X状状状状态态态态记记记记忆忆忆忆输输输输出出出出形形形形成成成成状状状状态态态态迁迁迁迁移移移移状态机一般结构状态机一般结构状态机一般结构状态机一般结构CLKCLKCLKCLK组合逻辑组合逻辑组合逻辑组合逻辑时序逻辑时序逻辑时序逻辑时序逻辑同步同步同步同步当前状态当前状态当前状态当前状态后续状态后续状态后续状态后续状态遇侍笛码选涕侵昔界根匈呸官韶窟漾干劈慢起奉芜惩荒黎蔫霉珊尽乖域腊有限状态机基础知识及练习有限状态机基础知识及练习S Saa11 , a ,
4、a22 , , a , , annxx11 , x , x22 , , x , , xnn状态位置状态位置状态位置状态位置状态名称状态名称状态名称状态名称转移方向转移方向转移方向转移方向输入集合输入集合输入集合输入集合(触发事件)(触发事件)(触发事件)(触发事件)输出集合输出集合(执行动作)(执行动作)状态等待状态等待状态等待状态等待状态迁移图状态迁移图状态迁移图状态迁移图堕漂彪谅仿锡羊歧几钝定满虾人巍志镭目袁拒蒋骗棉列廖馆剃皑稼捐俘炔有限状态机基础知识及练习有限状态机基础知识及练习nnnnaa11 , a , a22 , , a , , annxx11 , x , x22 , , x ,
5、, xnn状态位置状态位置状态位置状态位置状态名称状态名称状态名称状态名称转移方向转移方向转移方向转移方向输入集合输入集合输入集合输入集合(触发事件)(触发事件)(触发事件)(触发事件)输出集合输出集合输出集合输出集合(执行动作)(执行动作)(执行动作)(执行动作)状态等待状态等待状态等待状态等待状态迁移图状态迁移图状态迁移图状态迁移图SS状态编码状态编码状态编码状态编码刻聘靖殉佑弧目卢血昂峡容侨敖唾谅拍亭巢挡桑桶谩泣陡炸掷困痒戍挂录有限状态机基础知识及练习有限状态机基础知识及练习状态机实例状态机实例状态机实例状态机实例 自动门自动门自动门自动门 有一自动门,它可以被锁上,也可以开有一自动门,
6、它可以被锁上,也可以开有一自动门,它可以被锁上,也可以开有一自动门,它可以被锁上,也可以开锁。当门锁上时,某人可以在它的槽中塞进锁。当门锁上时,某人可以在它的槽中塞进锁。当门锁上时,某人可以在它的槽中塞进锁。当门锁上时,某人可以在它的槽中塞进一枚硬币。这样,门就会自动开锁,转变到一枚硬币。这样,门就会自动开锁,转变到一枚硬币。这样,门就会自动开锁,转变到一枚硬币。这样,门就会自动开锁,转变到开锁的状态;人通过后,门就会自动锁上。开锁的状态;人通过后,门就会自动锁上。开锁的状态;人通过后,门就会自动锁上。开锁的状态;人通过后,门就会自动锁上。 我们希望把自动门交给一个简单的我们希望把自动门交给一
7、个简单的我们希望把自动门交给一个简单的我们希望把自动门交给一个简单的 FSM FSM FSM FSM管理。通过对这个简单管理。通过对这个简单管理。通过对这个简单管理。通过对这个简单 FSM FSM FSM FSM 的分析,的分析,的分析,的分析, 了解了解了解了解FSM FSM FSM FSM 的设计过程。的设计过程。的设计过程。的设计过程。躇庐侨陛诸如扑蹲窑缎拭看诌繁牟脂撬苍湃垮富喘踢钠惟吵窥儒乒而跪店有限状态机基础知识及练习有限状态机基础知识及练习自动门的基本状态自动门的基本状态自动门的基本状态自动门的基本状态加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开
8、锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁初始状态初始状态初始状态初始状态 / / / / 加锁加锁加锁加锁状态机实例状态机实例状态机实例状态机实例倚冬口笔嗜慌焊媒蛾廊磋哇牙坠核昧悼捍媚隘陛批识媒悟嗡裸霜斡护乳烦有限状态机基础知识及练习有限状态机基础知识及练习异常处理异常处理异常处理异常处理通过通过通过通过 / / / / 报警报警报警报警投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁初始状态初始状态初始状态初始状态 / / / / 加锁加锁
9、加锁加锁状态机实例状态机实例状态机实例状态机实例赠锅缀嘘胃刻闺重意哪衰由砂龙除呕吕变籽嘉昌舜降狱氢辐红捏岔活佯岁有限状态机基础知识及练习有限状态机基础知识及练习自动门的结构简图自动门的结构简图自动门的结构简图自动门的结构简图状态机实例状态机实例状态机实例状态机实例声光报警声光报警声光报警声光报警投币传感器投币传感器投币传感器投币传感器通过传感器通过传感器通过传感器通过传感器加锁执行加锁执行加锁执行加锁执行控控控控制制制制器器器器开锁执行开锁执行开锁执行开锁执行“谢谢谢谢谢谢谢谢”时钟时钟时钟时钟 CLK CLK酮棒畏染郡尖踞慈煌科匈稗携拾合啥祸枚庚噶绸频妙拿腆琶录赚陈操剖掺有限状态机基础知识及
10、练习有限状态机基础知识及练习自动门实例的自动门实例的自动门实例的自动门实例的VHDLVHDL描述描述描述描述状态机实例状态机实例状态机实例状态机实例LIBRARYLIBRARYLIBRARYLIBRARY ieee; ieee; ieee; ieee;USEUSEUSEUSE ieee.std_logic_1164. ieee.std_logic_1164. ieee.std_logic_1164. ieee.std_logic_1164.ALLALLALLALL; ; ;ENTITYENTITYENTITYENTITY door_contr door_contr door_contr doo
11、r_contr ISISISISPORTPORTPORTPORT ( ( ( ( clk,reset,coin,pass: clk,reset,coin,pass: clk,reset,coin,pass: clk,reset,coin,pass: ININININ std_logic; std_logic; std_logic; std_logic; door,alarm,thank: door,alarm,thank: door,alarm,thank: door,alarm,thank: OUTOUTOUTOUT std_logic std_logic std_logic std_log
12、ic ); ); ); );ENDENDENDEND door_contr; door_contr; door_contr; door_contr;ARCHITECTUREARCHITECTUREARCHITECTUREARCHITECTURE behavior behavior behavior behavior OFOFOFOF door_contr door_contr door_contr door_contr ISISISIS TYPETYPETYPETYPE states states states states ISISISIS (lock,unlock); (lock,unlo
13、ck); (lock,unlock); (lock,unlock); SIGNALSIGNALSIGNALSIGNAL next_state: states; next_state: states; next_state: states; next_state: states; BEGINBEGINBEGINBEGINPROCESSPROCESSPROCESSPROCESS (clk) (clk) (clk) (clk) BEGINBEGINBEGINBEGIN IFIFIFIF (reset = 1) (reset = 1) (reset = 1) (reset = 1) THENTHENT
14、HENTHEN next_state = lock; next_state = lock; next_state = lock; next_state = lock; alarm = 0; alarm = 0; alarm = 0; alarm = 0; thank = 0; thank = 0; thank = 0; thank = 0; door = 0; door = 0; door = 0; door lock = lock = lock = IFIFIFIF (coin = 1) (coin = 1) (coin = 1) (coin = 1) THENTHENTHENTHEN ne
15、xt_state = unlock; next_state = unlock; next_state = unlock; next_state = unlock; door = 1; door = 1; door = 1; door = 1; ELSIFELSIFELSIFELSIF (pass = 1) (pass = 1) (pass = 1) (pass = 1) THENTHENTHENTHEN next_state = lock ; next_state = lock ; next_state = lock ; next_state = lock ; alarm = 1; alarm
16、 = 1; alarm = 1; alarm = 1; door = 0; door = 0; door = 0; door unlock = unlock = unlock = IFIFIFIF (coin = 1) (coin = 1) (coin = 1) (coin = 1) THENTHENTHENTHEN next_state = unlock; next_state = unlock; next_state = unlock; next_state = unlock; thank = 1; thank = 1; thank = 1; thank = 1; door = 1; do
17、or = 1; door = 1; door = 1; ELSIFELSIFELSIFELSIF (pass = 1) (pass = 1) (pass = 1) (pass = 1) THENTHENTHENTHEN next_state = lock; next_state = lock; next_state = lock; next_state = lock; door = 0; door = 0; door = 0; door = 0; END IFEND IFEND IFEND IF; ; ; END CASEEND CASEEND CASEEND CASE; ; ; END IF
18、END IFEND IFEND IF; ; ; END PROCESSEND PROCESSEND PROCESSEND PROCESS; ; ;ENDENDENDEND behavior; behavior; behavior; behavior;咯克蛤方氦践膘丁杉履只巍樟厄在屋线亚捆娥硕词驻澈阀只邹斋脚篷汤枯有限状态机基础知识及练习有限状态机基础知识及练习自动门实例的方真(一)自动门实例的方真(一)自动门实例的方真(一)自动门实例的方真(一)状态机实例状态机实例状态机实例状态机实例哼蹬足亲第体犊棒呼蜀上诗豌常沤盗彝肪逾凰门的壮症据穷室族挨屎试鳖有限状态机基础知识及练习有限状态机基础知识及练
19、习自动门实例的方真(二)自动门实例的方真(二)自动门实例的方真(二)自动门实例的方真(二)状态机实例状态机实例状态机实例状态机实例寐意点子堑靖交狄围属探丝虑捡保嚣骄盂礁肄剩故剁冷原内影幢嗽告凯胖有限状态机基础知识及练习有限状态机基础知识及练习通过通过通过通过 / / / / 报警报警报警报警投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁异常处理优化异常处理优化异常处理优化异常处理优化状态机实例状态机实例状态机实例状态机实例修改修改修改修改“加锁加锁加锁加锁
20、”状态的异常处状态的异常处状态的异常处状态的异常处理理理理初始状态初始状态初始状态初始状态 / / / / 加锁加锁加锁加锁寥预啃沸贰灌卜跺渍睁陌脖峰贞杯貉倪版雅狡政荔帐词肯挽汾埠炬艳魄莽有限状态机基础知识及练习有限状态机基础知识及练习投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁异常处理优化异常处理优化异常处理优化异常处理优化状态机实例状态机实例状态机实例状态机实例修改修改修改修改“加锁加锁加锁加锁”状态的异常处状态的异常处状态的异常处状态的异常处理理理
21、理初始状态初始状态初始状态初始状态 / / / / 加锁加锁加锁加锁弯菲谷淤涸紫伪圭认烙克紧儒惊培岩牧档恒耕拳戚捎某茅抱谤思考闲彪仓有限状态机基础知识及练习有限状态机基础知识及练习一个更好的异常处理方案一个更好的异常处理方案一个更好的异常处理方案一个更好的异常处理方案投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁初始状态初始状态初始状态初始状态 / / / / 加锁加锁加锁加锁违违违违 例例例例通过通过通过通过 / / / / 报警报警报警报警通过通过通过
22、通过投币投币投币投币解警解警解警解警 / / / / 消除警报消除警报消除警报消除警报就绪就绪就绪就绪 / / / / 消除警报、加锁消除警报、加锁消除警报、加锁消除警报、加锁状态机实例状态机实例状态机实例状态机实例是否完美了?是否完美了?是否完美了?是否完美了?、撤销、撤销、撤销、撤销“谢谢谢谢谢谢谢谢”2s / 2s / 2s / 2s / 撤销撤销撤销撤销“谢谢谢谢谢谢谢谢”再问一次:是否完美了?再问一次:是否完美了?再问一次:是否完美了?再问一次:是否完美了?完美只是相对的!完美只是相对的!完美只是相对的!完美只是相对的!“就绪就绪就绪就绪” 是退出是退出是退出是退出 “违例违例违例违
23、例” 状态的唯一条件!状态的唯一条件!状态的唯一条件!状态的唯一条件!可靠性可靠性 条件是条件是充分充分的的经济性经济性 条件是条件是必要必要的的完美性完美性 条件是条件是充分和必要充分和必要的的趟灼保闽簧崭俞龚副人砷淖署旋遭皂除粘农堤痊现吧裤便或焚狰杖纬赶渍有限状态机基础知识及练习有限状态机基础知识及练习状态机实例状态机实例状态机实例状态机实例诊断处理诊断处理诊断处理诊断处理投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁、撤销加锁、撤销加锁、撤销加锁、撤销“谢谢谢谢
24、谢谢谢谢”初始状态初始状态初始状态初始状态/ / / / 加锁加锁加锁加锁违违违违 例例例例通过通过通过通过 / / / / 报警报警报警报警通过通过通过通过投币投币投币投币解警解警解警解警 / / / / 消除警报消除警报消除警报消除警报就绪就绪就绪就绪 / / / / 消除警报、加锁消除警报、加锁消除警报、加锁消除警报、加锁投币测试投币测试投币测试投币测试通过测试通过测试通过测试通过测试投币投币投币投币 / / / / 谢谢谢谢谢谢谢谢通过通过通过通过 / / / / 撤销撤销撤销撤销“谢谢谢谢谢谢谢谢”H HH H/ / / / 撤销撤销撤销撤销“谢谢谢谢谢谢谢谢”普通模式普通模式普通模
25、式普通模式诊断模式诊断模式诊断模式诊断模式复位复位复位复位 / / / / 消除警报、加锁、撤销消除警报、加锁、撤销消除警报、加锁、撤销消除警报、加锁、撤销“谢谢谢谢谢谢谢谢”2s / 2s / 2s / 2s / 撤销撤销撤销撤销“谢谢谢谢谢谢谢谢”注意状态的嵌套使用!注意状态的嵌套使用!超状态超状态子状态子状态加锁测试加锁测试加锁测试加锁测试 / / / / 加锁加锁加锁加锁开锁测试开锁测试开锁测试开锁测试 / / / / 开锁开锁开锁开锁报警测试报警测试报警测试报警测试 / / / / 报警报警报警报警解警测试解警测试解警测试解警测试 / / / / 解警解警解警解警诊断诊断诊断诊断 /
26、 / / / 状态保护状态保护状态保护状态保护返回返回返回返回 / / / / 状态恢复状态恢复状态恢复状态恢复虚状态(断点保护)虚状态(断点保护)墨恩桅努杯蜒柞贫连沾昆韧炳韩晋韩党馋和铸恫靴稳拯乙惟脐吠免溢仙熄有限状态机基础知识及练习有限状态机基础知识及练习回顾自动门的基本状态回顾自动门的基本状态回顾自动门的基本状态回顾自动门的基本状态加加加加 锁锁锁锁开开开开 锁锁锁锁投币投币投币投币 / / / / 开锁开锁开锁开锁通过通过通过通过 / / / / 加锁加锁加锁加锁初始状态初始状态初始状态初始状态 / / / / 加锁加锁加锁加锁状态机实例状态机实例状态机实例状态机实例义侩愚贮耳驳钢誊布
27、红繁屏白勒瘸稿胯筏碑炒脐在忘瑚锥滔洱逾钉暇谷钧有限状态机基础知识及练习有限状态机基础知识及练习小小小小 结(概念)结(概念)结(概念)结(概念) 无论对连续系统还是离散系统,状态概念无无论对连续系统还是离散系统,状态概念无无论对连续系统还是离散系统,状态概念无无论对连续系统还是离散系统,状态概念无所不在。所不在。所不在。所不在。FSM FSM FSM FSM 提供了一种描述和控制应用逻辑的提供了一种描述和控制应用逻辑的提供了一种描述和控制应用逻辑的提供了一种描述和控制应用逻辑的非常强大的方法,具有规则简单、可读性和可验非常强大的方法,具有规则简单、可读性和可验非常强大的方法,具有规则简单、可读
28、性和可验非常强大的方法,具有规则简单、可读性和可验证性强等特点。证性强等特点。证性强等特点。证性强等特点。 FSM FSM FSM FSM 也是个不错的工具。很多复杂的逻辑都也是个不错的工具。很多复杂的逻辑都也是个不错的工具。很多复杂的逻辑都也是个不错的工具。很多复杂的逻辑都可以用一张图表来表述。可以用一张图表来表述。可以用一张图表来表述。可以用一张图表来表述。 对一个复杂离散系统而言,对一个复杂离散系统而言,对一个复杂离散系统而言,对一个复杂离散系统而言, 使用使用使用使用 FSM FSM FSM FSM 方案方案方案方案几乎无所不能。几乎无所不能。几乎无所不能。几乎无所不能。FSM FSM
29、 FSM FSM 在通信协议、图形界面控制在通信协议、图形界面控制在通信协议、图形界面控制在通信协议、图形界面控制和其他很多工程应用中均有其足迹。和其他很多工程应用中均有其足迹。和其他很多工程应用中均有其足迹。和其他很多工程应用中均有其足迹。 途兴窟泅弗谷葫趣枷泼勉迫椅隐鹃之历胰淀趴呻滑吞炼羚租隐楼吻酋汹攀有限状态机基础知识及练习有限状态机基础知识及练习 明确对象要求,确定输入和输出集合,合明确对象要求,确定输入和输出集合,合明确对象要求,确定输入和输出集合,合明确对象要求,确定输入和输出集合,合 理分配状态。理分配状态。理分配状态。理分配状态。小小小小 结(方法)结(方法)结(方法)结(方法
30、) 确定状态迁移方向和迁移触发条件,确定确定状态迁移方向和迁移触发条件,确定确定状态迁移方向和迁移触发条件,确定确定状态迁移方向和迁移触发条件,确定 合乎要求的输出集合。合乎要求的输出集合。合乎要求的输出集合。合乎要求的输出集合。 充分预计各种异常情况,确定异常处理策充分预计各种异常情况,确定异常处理策充分预计各种异常情况,确定异常处理策充分预计各种异常情况,确定异常处理策 略及出口。略及出口。略及出口。略及出口。 按照实际需求,制定合理的诊断模式。按照实际需求,制定合理的诊断模式。按照实际需求,制定合理的诊断模式。按照实际需求,制定合理的诊断模式。 完成系统综合。完成系统综合。完成系统综合。
31、完成系统综合。 系统评价,设计验证。系统评价,设计验证。系统评价,设计验证。系统评价,设计验证。 倡敖吵友址外朗饲曹瀑隙蝗庙舒观模桂臂颅捣椅污洪删捅野铲蜀沿泄暖涣有限状态机基础知识及练习有限状态机基础知识及练习练习(练习(练习(练习(1 1):交通信号机):交通信号机):交通信号机):交通信号机 绿信比绿信比绿信比绿信比 1:1 1:1 1:1 1:1 路型路型路型路型 十字交叉十字交叉十字交叉十字交叉 相变周期相变周期相变周期相变周期 20(s) 20(s) 20(s) 20(s) 黄黄黄黄( ( (红黄红黄红黄红黄) ) )灯时间灯时间灯时间灯时间 2(s) 2(s) 2(s) 2(s)
32、绿闪周期绿闪周期绿闪周期绿闪周期 0.5(s) 0.5(s) 0.5(s) 0.5(s) 绿闪时间绿闪时间绿闪时间绿闪时间 5(s) 5(s) 5(s) 5(s) 定时输入定时输入定时输入定时输入 100 Hz,TTL 100 Hz,TTL 100 Hz,TTL 100 Hz,TTL 蹄轮捆征镁图逻朵防唉温准繁象俭蹄啡哉鸡赃锅随访腊联渤刀泼彤糠骇勤有限状态机基础知识及练习有限状态机基础知识及练习练习(练习(练习(练习(2 2):升降电梯):升降电梯):升降电梯):升降电梯 平层信号开关平层信号开关平层信号开关平层信号开关 每层每层每层每层 楼层数楼层数楼层数楼层数 4 4 4 4 层层层层 楼层数显楼层数显楼层数显楼层数显 1 1 1 1 位十进制位十进制位十进制位十进制 顶层呼叫按钮顶层呼叫按钮顶层呼叫按钮顶层呼叫按钮 向下向下向下向下 底层呼叫按钮底层呼叫按钮底层呼叫按钮底层呼叫按钮 向上向上向上向上 中间层呼叫按钮中间层呼叫按钮中间层呼叫按钮中间层呼叫按钮 向上、向下向上、向下向上、向下向上、向下 运行方向指示运行方向指示运行方向指示运行方向指示 2 LED 2 LED 2 LED 2 LED趣长钨凯亮酗朔错屋恋行泣延驯枢蜡涧窗好匡贴戊梨宋弊论膳蝎矛范蔚络有限状态机基础知识及练习有限状态机基础知识及练习