跳转至

状态机

状态机是将一个过程划分为有限个不同的状态,然后根基不同的信号进行状态之间的转移,并完成相应的动作,是协调相关信号动作、完成特定操作的控制中心

有限状态机简写为FSM(Finite State Machine)

状态机主要有两大类:

- 若输出只和状态有关而与输入无关,则称为摩尔(Moore)型状态机
- 输出不仅和状态有关而且和输入有关系,则称为米莉(Mealy)型状态机

状态机可归纳为4个要素,即现态、条件、动作、次态

这样的归纳,主要是出于对状态机的内在因果关系的考虑。“现态”和“条件”是因,“动作”和“次态”是果。详解如下:

  1. 现态:是指当前所处的状态
  2. 条件:又称为“事件”,当一个条件被满足,将会触发一个动作,或者执行一次状态的迁移
  3. 动作:条件满足后执行的动作。动作执行完毕后,可以迁移到新的状态,也可以仍旧保持原状态。动作不是必需的,当条件满足后,也可以不执行任何动作,直接迁移到新状态
  4. 次态:条件满足后要迁往的新状态。“次态”是相对于“现态”而言的,“次态”一旦被激活,就转变成新的“现态”了

在进行状态机设计时通常需要先进行绘制状态图

示例如下:

状态机