文档详情

第6章 状态机程序的设计.ppt

发布:2020-07-09约9.23千字共38页下载文档
文本预览下载声明
第 6 章 状态机程序设计 6.1 有限状态机引论 6.1.1 有限状态机概念 在一个复杂的控制系统中,可以将控制过程分 为几步或几个状态,在每个状态下,控制系统的动 作简单明确。我们只要根据系统的要实现的功能, 画出状态转换图及每个状态下的动作或输出函数, 即可实现有效控制。这种控制方式在数字系统中称 为状态机,实际上就是控制系统理论中比较重要的 步进控制。 例: AD574 转换控制器 控制逻辑: CE CS RC X12/8 A0 工作状态 0 X X X X 禁止 X 1 X X X 禁止 1 0 0 X 0 启动 12 位转换 1 0 0 X 1 启动 8 位转换 1 0 1 1 X 12 位数据输出 1 0 1 0 0 高 8 位数据输出 1 0 1 0 1 低 4 位数据输出 S0 初始 S1 启动AD S2 等STATUS=1 S3 等STATUS=0 S4 读AD结果 S5 保存结果 STATUS=0 S T A T U S = 1 STATUS=1 S T A T U S = 0 R C S T A T U S D B C S 启 动 A D A D 转 换 中 读 结 果 操作时序 状态转换图 要求控制器在现场信号作用下自动进行状态 转换,并根据当前状态发出相应控制信号 以控制现场。状态机就是完成这一目的。 有限状态机及其设计技术是实用数字系统 设计中的重要组成部分,是实现高效率高 可靠逻辑控制的重要途径。 6.1.2 状态机的优点 无论与基于 VHDL 的其他设计方案相比,还是与可完成相 似功能的 CPU 相比,状态机都有其难以超越的优越性, 它主要表现在以下几方面: 1 、控制灵活、方便:状态机的工作方式是根据控制信号 按照预先设定的状态顺序运行的,因此状态机在其运行 方式上类似于控制灵活和方便的 CPU 。 2 、结构简单,便于设计:设计方案相对固定 3 、易构成性能良好的同步时序逻辑模块,避免竞争冒险 现象。 4 、运行速度比 CPU 要高出三至四个数量级。 5 、可靠性:状态机由纯硬件电路构成;由非法状态跳出, 只要 2 、 3 个时钟周期,所耗时间短 6.1.3 状态机的分类 1 )从状态机的信号输出方式上分有 Mealy 型和 Moore 型两 种状态机。 Mealy 属于异步输出状态机。其输出是当前状态和所有输 入信号的函数,它的输出是在输入变化后立即发生的, 不依赖时钟的同步。 Moore 属于同步输出状态机,其输出则仅为当前状态的函 数,这类状态机在输入发生变化还必须等待时钟的到来, 时钟使状态发生变化时才导致输出的变化,所以比 Mealy 机要多等待一个时钟周期。 2 )从程序结构上分,有单进程状态机和多进程状态机。 3 )从编码方式上分有顺序编码状态机、一位热码编码状 态机或其他编码方式状态机。 6.2 典型状态机设计 典型状态机设计由状态信号定义、准备下一状态进程、状 态切换进程、输出进程等四部分构成。 【例 6-1 】用 FPGA/CPLD 控制 AD574 进行 12 位 A/D 转换, 并将转换结果保存在 Q0~Q11 中 CE CS RC X12/8 A0 工作状态 0 X X X X 禁止 X 1 X X X 禁止 1 0 0 X 0 启动 12 位转换 1 0 0 X 1 启动 8 位转换 1 0 1 1 X 12 位数据输出 1 0 1 0 0 高 8 位数据输出 1 0 1 0 1 低 4 位数据输出 分析: 12 位 A/D 转 换, 12 位结果输出, X12/8 接高电平, A0 接低电平; 2 个 片选信号用 1 个 CE , CS 接低电平。 D 0 ~ D 1 1 D V C C X 1 2 / 8 C S C E C E R C R C A 0 Q A D 5 7 4 F P G A / C P L D 1 M H z C L K S T A T U S S T A T U S S0 初始 S1 启动AD S2 等STATUS=1 S3 等STATUS=0 S4 读AD结果 S5 保存结果 STATUS=0 S T A T U
显示全部
相似文档