共9条
1/1 1 跳转至页
[讨论]一个嵌入式系统如何建模
FSM (State machine and finite state machine)
状态机和有限状态机
通常,状态机是一种记录下给定时刻状态的设备,并根据输入,对每个给定的改变,改变其状态或引发一个动作。计算机就是一个状态机,每个机器指令的输入都改变一个或多个状态,并可能引发其它的动作。每个计算机的数据寄存器存储一个状态。ROM存储这一个状态。每个应用程序开始时有一个初始状态,当它处理输入后状态可以改变。所以,每个时刻一个计算机系统可被视为一个复杂的状态集,每个程序是一个状态机。实际应用中,状态机被用于开发和描述特殊的设备或程序交互。
小结:一个状态机可被描述为:
存储在某地的事物的初始状态或记录;
可能的输入事件集合;
根据输入可能得到的新状态的集合;
根据输入可能得到的动作或输出事件的集合;
在《实时面向对象建模》一书中,状态机被描述为:
输入事件的集合;
输出事件的集合;
状态集合;
把状态和输入事件映射到输出事件的集合;
把状态和输入事件映射到状态的集合;
对初始状态的描述;
有限状态机是有有限个状态的机器。有限状态机可被用作提出和解决问题的开发工具,也可被用作为以后开发者描述解决方案的正式工具。有很多种显示状态机的方法,从简单的表格到图形示例。
DE: Discrete-event models[离散事件驱动模型]
S/R: Synchronous/reactive models[同步/反应模型]
FSM/ASM: State machines[状态机模型]
CSP/CCS: Synchronous message passing[同步消息传递模型]
Continuous time and differential equations
Discrete time and difference equations
Cycle-driven models
Rate monotonic scheduling
Asynchronous message passing
Timed CSP and timed PN
Publish and subscribe
Unstructured events
我这儿提供Edward A. Lee的一篇文章, 讲述了这些基本概念,
不过是英文的, 啃起来很废牙:-)
如果大家有兴趣, 我还有很多文档[upload=zip]uploadImages/2002523925643049.zip[/upload]
发信人: dodo (dodo), 信区: Matlab
标 题: Stateflow
发信站: 饮水思源站 (Tue Oct 13 22:40:23 1998) , 站内信件
from Matlab Digest:
Stateflow[tm] is a graphical tool for designing complex control and
supervisory logic systems. It gives you the ability to model and
simulate the behavior of complex reactive, event-driven systems
based on finite state machine theory.
--
欢迎来我的主页看看: http://dodoo.yeah.net/
提供有关matlab,Computer Vision,Neural network的资源
※ 来源:·饮水思源站 bbs.sjtu.edu.cn·[FROM: 202.119.30.69]
Matlab的StateFlow可以模型的设计和仿真
其实建模就是一种思想, 而UML等语言, 以至于C/C++也不过实现思想的工具,
不过是谁更方便而已,
比如简单的循环求和, 这种计算这些工具都可以方便表现,
而OO范型实现, C就不太方便
而对于嵌入式系统, 大多是reactive的, 状态机是一种普遍模型,
用UML的statechart, Stateflow, 还有windriver的Betterstate都能方便描述,
如果综合考虑并行模型, 就更接近实际, 当然也更复杂.
另外状态机对规约协议的编写也有很重要的指导意义
我最近对计算模型对嵌入系统编程的指导意义比较感兴趣,
其实最近出版的<嵌入系统构建>和<嵌入式计算系统设计原理>也是这个意思
还有经典的<设计模式>也从这方面对我们有所帮助
一个普遍简单的例子就是,电子表界面的设计, 有兴趣的可参考:
http://www.embedded.com/2000/0008/0008feat1.htm
欢迎讨论!
http://www.embedded.com/story/OEG20020729S0030
Design Patterns for High Availability
By David Kalinsky
Embedded Systems Programming
(07/31/02, 06:15:29 PM EDT)
It is possible to achieve five-nines reliability with everyday commercial-quality hardware and software. The key is the way in which these components are combined.
共9条
1/1 1 跳转至页
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
vscode+cmake搭建雅特力AT32L021开发环境被打赏30分 | |
【换取逻辑分析仪】自制底板并驱动ArduinoNanoRP2040ConnectLCD扩展板被打赏47分 | |
【分享评测,赢取加热台】RISC-V GCC 内嵌汇编使用被打赏38分 | |
【换取逻辑分析仪】-基于ADI单片机MAX78000的简易MP3音乐播放器被打赏48分 | |
我想要一部加热台+树莓派PICO驱动AHT10被打赏38分 | |
【换取逻辑分析仪】-硬件SPI驱动OLED屏幕被打赏36分 | |
换逻辑分析仪+上下拉与多路选择器被打赏29分 | |
Let'sdo第3期任务合集被打赏50分 | |
换逻辑分析仪+Verilog三态门被打赏27分 | |
换逻辑分析仪+Verilog多输出门被打赏24分 |