状态机原理及用法_图文.doc

  1. 1、本文档共45页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
状态机模块 Yanping Huang 黄燕平 状态机模块.xml Status Machine Copyright?2006 Yanping Huang 2 / 36 Page 目录 1、术语 (3 1.1、参考文献 (3 2、内容摘要 (3 2.1、状态机概念 (3 2.2、状态机其他 (4 2.2.1、状态机类型 (4 2.2.2、状态机的描述手法 (4 2.2.3、状态机特殊定义说明 (4 3、状态机实现方式选择 (8 3.1、HSM 函数方式 (8 3.2、uHsm 结构方式 (8 3.3、uHsm 设计事项 (9 4、状态机功能库用法 (13 4.1、第一步设计状态图 (13 4.2、定义自己的状态机需要的定制数据 (13 4.3、实现状态机 (14 4.3.1、包含状态机头 (14 4.3.2、预定义状态函数 (14 4.3.3、状态机中事件定义 (14 4.3.4、定义状态编号 (14 4.3.5、定义状态数据表 (15 4.3.5、定义状态函数 (15 4.4、使用状态机 (18 4.4.1、函数环境中使用 (18 4.4.2、中断环境中使用 (19 4.4.3、使用状态机的附加说明 (20 5、可扩充功能的模式 (20 6、状态机框架 (21 7、基于状态机的并发设计 (22 7.1、并发模式的反省 (22 7.2、概要设计 (25 状态机模块.xml 状态机 1、术语 状态机: 有限状态机: HSM:层次化状态机 uHsm:嵌入式层次化状态机 Virtual Bus:虚拟总线VBus 1.1、参考文献 Practical Statecharts in C/C++:Quantum Programming for Embedded Systems 中文译名:嵌入式系统的微模块化程序设计——实用状态图C/C++实现 作者:Miro Samek Ph.D. 翻译:敬万钧陈丽容 出版:北京航空航天大学出版社 译名不太准确,应该是“实用C/C++状态图技术——嵌入式系统量子编程”。其中“量子”一词在书中有特别涵义。或者简单点“实用嵌入式状态图技术”。 2、内容摘要 2.1、状态机概念 状态图逻辑中,涉及到层次化问题。最古老的状态图的代码实现是用嵌套switch语句实现,但是状态图层次超过2层后,这种试想方法代码太过复杂,不实用。 还有一种办法用C++等面向对象的、有继承能力的技术实现状态机中的状态,这非常符合状态图中不同层次状态的继承关系,但是有其他缺陷。 Miro先生的HSM采用函数方式定义状态,极大优化了状态机的实现,但是也有一些缺陷待改进。 描述一种新型的状态机模块(uHsm实现方法,更好地实现了状态机,并且从综合折中考察,具有相当的比较优势。主要的优势是逻辑严密、性能高效、对状态图的运作最接近状态图理论的理想概念,因而需要特别处理(因此也就特别容易产生偏差的逻辑点少,特别适合运行稳定性高、资源不丰富的嵌入式环境。 版权所有?2006 黄燕平第3页/共36页 状态机模块.xml Status Machine Copyright?2006 Yanping Huang 4 / 36 Page 2.2、状态机其他 2.2.1、状态机类型 状态机描述的状态有两种大类,一类是任务运行似的逻辑。这种状态图的状态通常是任务在 等待某个条件达到,也就是任务处于“等待状态”。通常任务本身是直接推动状态机运作的 发动机,任务本身检查状态机的事件达到情况并进行分发。任务状态的变迁由某个事件的达 成触发,可能要求任务间同步机制ITC 具有回调能力,以便在条件成立时向状态机事件队 列中压入事件。这种状态机明显有异步逻辑特征,称为“异步类状态机”。 第二种类型是算法逻辑,利用状态机逻辑清晰的特性描述复杂的算法。该状态机通常嵌入在 某个算法函数类部,帮助该函数完成功能。函数入口后,模拟任务等具有主动性的实体,向 状态机分发事件。这种状态机明显有同步函数调用特征,称为“同步类状态机”。同步状态 机的一次事件过程就是一次入口函数调用过程。入口函数调用返回时,状态机必须处于一个 明确定义的状态,不能是不确定的中间状态。 无论异步还是同步,特别是对异步状态机而言,状态机内部不能在某个状态发生等待、阻塞 等情况,而应该是标记状态后返回,把执行的机会让给其他任务或逻辑体(状态机的驱动实 体。之后在条件达到的情况下,通过事件分发机构调动状态机的运行。 2.2.2、状态机的描述手法 1、 引入流程图:应该考虑在状态机描述工具中引入流程图。 2、 内部流程外化表示:还应该考虑状态内部过程用虚线引出、引入,这样方便在图示中说 明逻辑。 3、 在状态中放置一个表示状态私有数据的块,对其虚线引用表示读取或操作它。历史数据 记录也是其中的一个特例。此处的历史数据有别

文档评论(0)

22255990 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档