原创 【博客大赛】有限状态机(FSM)在嵌入式软件中的应用之一

2013-11-25 20:05 2809 20 21 分类: MCU/ 嵌入式 文集: STM32F1学习笔记

看到有朋友的博客里面在讨论FSM(有限状态机)的内容(http://bbs.ednchina.com/BLOG_ARTICLE_3016729.HTM),对此我也很感兴趣,所以也发一篇凑凑热闹。当然,我这个可能更侧重在嵌入式软件编程方面吧。

这篇博客的主要内容,其实算是整理自网络上的一些文档,主要的思想还是来自附件的PDF文档《用状态机原理进行软件设计》,那篇文档比这篇博客要写得好。

一.   FSM的定义:

维基百科版:有限状态机(英语:finite-state machine,缩写:FSM)又称有限状态自动机,简称状态机,是表示有限个状态以及在这些状态之间的转移和动作等行为的数学模型。(http://zh.wikipedia.org/wiki/%E6%9C%89%E9%99%90%E7%8A%B6%E6%80%81%E6%9C%BA

另一版本,来自附件文档:总的来说,有限状态机系统,是指在不同阶段会呈现出不同的运行状态的系统,这些状态是有限的、不重叠的。这样的系统在某一时刻一定会处于其所有状态中的一个状态,此时它接收一部分允许的输入,产生一部分可能的响应,并且迁移到一部分可能的状态。

二.   FSM的要素:

1. State(状态)

 State(“状态”),就是一个系统在其生命周期中某一时刻的运行情况,此时,系统会执行一些动作,或者等待一些外部输入。

2. Guard(条件)

  状态机对外部消息进行响应的时候,除了需要判断当前的状态,还要判断跟这个状态相关的一些条件是否成立。这种判断称为guard(“条件”)。guard通过允许或者禁止某些操作来影响状态机的行为。  

3. Event(事件)

 Event(“事件”),就是在一定的时间和空间上发生的对系统有意义的事情。  

4. Action(动作)

  当一个Event被状态机系统分发的时候,状态机用Action(“动作”)来进行响应,比如修改一下变量的值、进行输入输出、产生另外一个Event或者迁移到另外一个状态等等。

5. Transition(迁移)

  从一个状态切换到另一个状态被称为Transition(“迁移”)。引起状态迁移的事件被称为triggering event  (“触发事件”),或者被简称为trigger  (“触发”)。

//这一节的内容全部剽自附件文档,这些都是专业的定义。文档中用了一个键盘的假想模型来阐述FSM的要素。我把这个模型整理了一下,用中文来表示,用visio重新画了一下。

圆角矩形里面是状态,箭头表示迁移,箭头上标注的是条件、事件或动作,虚线框里面的算是注释了。

20131125123505449.jpg 

PARTNER CONTENT

文章评论1条评论)

登录后参与讨论

用户440448 2013-11-25 14:06

顶一个~~
相关推荐阅读
飞言走笔 2017-01-06 21:56
2017,新的博客旅程
EDNChina 改版终于成功了!祝贺! 2017年,开始新的旅程~ ...
飞言走笔 2016-06-01 10:17
【博客大赛】《白鹿原》读后
《白鹿原》这本书已经买了很久,多次以来,都是只翻看几页,顶多几章就放下了,觉得这是一个大部头,得有足够的时间才行。前几天陈忠实先生去世的消息传来,让我很震惊和惭愧。 一口气读完这本书,畅快淋漓,又意...
飞言走笔 2016-03-26 16:42
【博客大赛】《毛斯朝》读后
这本书最早是在凤凰卫视曾子墨主持的一期关于沈志华先生的《世纪大讲堂》节目中知晓的。但是一直拖到今天才读完。 说实话,书的主要内容与当前官方的宣传口径有很多不一致的地方,而沈先生作为中国掌握苏联档...
飞言走笔 2016-03-08 13:46
【博客大赛】蓝牙4.0低功耗技术及其认证要求
详见附件 ...
飞言走笔 2016-02-02 14:20
【转】蓝牙4.0协议官方手册(一)——通用属性配置文件
转自:http://blog.csdn.net/jinzhichaoshuiping/article/details/43370009 通用属性配置文件 (GATT)——该说明书定义了通用属性配置...
飞言走笔 2016-01-31 23:24
【博客大赛】脑洞大开、三观重塑——《人类简史》读后
终于读完了《人类简史》,没有把这本书拖到二月份,这也是2016年读完的第一本书。之前也有所耳闻,但是没有太在意,倒是罗胖子的跨年演讲上偶然提到,不知怎么就勾起了阅读此书的欲望。 本文的标题用了“脑洞...
EE直播间
更多
我要评论
1
20
关闭 站长推荐上一条 /3 下一条