火车状态机设计:变量与控制逻辑

需积分: 10 2 下载量 40 浏览量 更新于2024-07-11 收藏 550KB PPT 举报
"该设计涉及使用状态机来控制电动火车控制器,主要关注火车的行驶方向、轨道中的开关方向以及火车传感器的输入信号。目标是确保两辆火车在各自轨道上安全行驶,避免碰撞。设计中定义了特定的变量来表示火车状态,并利用传感器监控火车位置。" 在设计电动火车控制器时,状态机是一种常用的方法,它是一种有向图形结构,由节点(或状态)和转移函数组成。每个事件触发状态机从当前状态转移到另一个状态。在这个特定的设计中,有两个火车运行,每辆火车都有自己的行驶方向,同时轨道上有开关来改变行驶路径。此外,还有一系列传感器提供火车位置的输入信号。 火车行驶方向通过两个二进制变量DA和DB来表示,如DA=00表示火车A停止,DA=01表示逆时针行驶,DA=10表示顺时针行驶,而DA=11则为非法赋值。DB的赋值规则与DA相同,用于表示火车B的行驶方向。轨道中的开关状态由SW1、SW2和SW3这三个变量控制,当开关为1时,外通道与内通道相连,为0时,外通道仅与外通道相连,这样可以调整火车的行驶路径。 火车的传感器输入信号包括Sensor1到Sensor5,简称为s1到s5。这些传感器在火车经过时会输出高电平,表明火车已到达该位置;当传感器处于低电平时,表示火车尚未到达或已经离开。 状态机的状态描述涵盖了火车在不同情况下的行驶状态,例如"AOUT"状态表示火车A和B各自在逆时针方向的独立轨道上行驶,此时switch1和switch2都为0,dirA和dirB分别为01,表示逆时针行驶。而"AIN"状态可能涉及到火车A进入公共车道,这需要更复杂的控制逻辑来确保安全。 整个设计中,状态机的关键任务是根据火车的位置和轨道开关状态来决定火车的行驶方向,同时通过响应传感器输入来更新状态,以确保无碰撞的安全行驶。这一设计通常会应用于FPGA(现场可编程门阵列)中,因为FPGA能够高效地实现复杂的逻辑控制。通过这种方式,状态机能够实时监控并控制火车的行为,确保系统的可靠性和安全性。