基于CPLD的多功能脉冲分配器系统的设计
(a) 一分频波形图
(b) 二分频波形图
(c) 三分频波形图
(d) 四分频波形图
12
盐城工学院本科生毕业设计说明书(2007)
(e) 五分频波形图
(f) 六分频波形图
(g) 七分频波形图
(h) 八分频波形图
图3-7 分频结果仿真波形图
13
基于CPLD的多功能脉冲分配器系统的设计
3.2.4 脉冲分配状态机的设计和波形仿真
利用VHDL设计的实用逻辑系统中,有许多是可以利用有限状态机的设计方案来描述和实现的。与基于VHDL的其它设计方案相比,状态机具有其突出的优越性,它的主要表现有以下几方面:
(1)状态机克服了纯硬件数字系统顺序方式控制不灵活的缺点。状态机的工作方式是根据控制信号按照预先设定的状态进行顺序运行的,状态机是纯硬件数字系统中的顺序控制电路,因此状态机在运行速度和工作可靠性方面十分突出。 (2)由于状态机的结构模式相对简单,设计方案相对固定,特别是可以定义符号化枚举类型的状态,这一切都为VHDL综合器尽可能发挥其强大的优化功能提供了有利条件。而且,性能良好的综合器都具备许多可控或自动的优化状态机的功能。 (3)状态机容易构成性能良好的同步时序逻辑模块,这对于对付大规模逻辑电路设计中令人深感棘手的竞争冒险现象无疑是一个上佳的选择。为了消除毛刺现象,在状态机设计中有许多设计方案可供选择。
(4)与VHDL的其它描述方式相比,状态机的VHDL表述丰富多样,程序层次分明、结构清晰、易读易懂;在排错、修改和模块移植方面也有其独到的好处。 (5)在高速运算和控制方面,状态机更有巨大的优势。由于在VHDL中,一个状态机可以由多个进程构成,一个结构体中可以包含多个状态机,而一个单独的状态机(或多个并行运行的状态机)以顺序方式所能完成的运算和控制方面的工作量本身就大。
(6)就可靠性而言,状态机的优势也是十分明显的。首先状态机是由纯硬件电路构成,它的运行不依赖软件指令的逐条执行,因此不存在软件运行过程中许多固有的缺陷;其次是状态机的设计能使用各种完整的容错技术;再次是当状态机进入非法状态并从中跳出,进入正常状态所耗的时间十分短暂,通常只有两三个时钟周期,约十纳秒,尚不足以对系统的运行构成损害。
在实用的逻辑系统中,一个完整的状态机设计过程包含几个步骤:
(1)确定任务和分析功能。首先要对实际应用问题进行分析和归纳,以明确控制系统的任务以及要实现的功能。
(2)把设计任务按逻辑要求转化为状态图。即确定所采用的状态机的每一个状态,以及状态之间转换的转换条件。
(3)根据状态图(或把状态图转化为状态表,并对状态图和状态表进行必要的简化处理),设计状态机的源程序。
(4)编辑程序,完成编译仿真。
脉冲分配事实上就可以用一个复杂的状态机来描述和实现。
根据步进电机的工作方式,画出的脉冲分配状态转换图如图3-8所示。
14
盐城工学院本科生毕业设计说明书(2007)
图3-8 脉冲分配的状态转换图
图中共有7个状态,其转换条件是模式信号MODE和方向选择信号DIR合成的矢量;STATE0是复位态,当EX=0时,系统复位,OUTA、OUTB、OUTC输出低电平;其它六个状态对应三相六拍的六个状态(双三拍的三个状态包含在六个状态中),如STATE_BC表示在BC拍,OUTB、OUTC输出高电平,OUTA输出低电平。从图3-6可以看出,在某个模式下,当DIR有效时,状态机转移到相应模式下的环行脉冲序列的下一状态。如在三相六拍的STATE_BC状态时,如果模式改变(即MODE=‘1’,为双三拍模式),则当DIR=0时,Trans_value=10,此时转移到STATE_AC,而如果DIR=1,则Trans_value=11,状态机转移到STATE_AB。
把状态图转化为状态表,可以分成四种不同模式的状态表。
表3-2 脉冲分配的状态表
(a) 三相六拍模式
输入 CP X ↑ ↑ ↑ ↑ ↑ ↑ EX 1 0 0 0 0 0 0 MODE X 0 0 0 0 0 0 DIR X 0 0 0 0 0 0 OUTA 0 1 1 0 0 0 1 输出 OUTB 0 0 1 1 1 0 0 OUTC 0 0 0 0 1 1 1 15
基于CPLD的多功能脉冲分配器系统的设计
续:表3-2 (b) 三相六拍反转模式
输入 CP X ↑ ↑ ↑ ↑ ↑ ↑ EX 1 0 0 0 0 0 0 MODE X 0 0 0 0 0 0 DIR X 1 1 1 1 1 1 OUTA 0 1 1 0 0 0 1 输出 OUTB 0 0 0 0 1 1 1 OUTC 0 0 1 1 1 0 0 (c) 双三拍正转模式
输入 CP X ↑ ↑ ↑ EX 1 0 0 0 MODE X 1 1 1 DIR X 0 0 0 OUTA 0 1 0 1 输出 OUTB 0 1 1 0 OUTC 0 0 1 1 (d) 双三拍反转模式
输入 CP X ↑ ↑ ↑ EX 1 0 0 0 MODE X 1 1 1 DIR X 1 1 1 OUTA 0 1 1 0 输出 OUTB 0 1 0 1 OUTC 0 0 1 1 根据以上分析,编写脉冲分配状态机的VHDL程序代码。脉冲分配程序根据转换条件(模式信号MODE和方向选择信号DIR合成的矢量),实现7个状态之间的转换,并且各个状态有各自不同的输出。脉冲分配程序清单见附录3。
具体的脉冲分配仿真波形图如图3-9所示。
16
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于CPLD的多功能脉冲分配器的设计说明书(4)在线全文阅读。
相关推荐: