盐城工学院本科生毕业设计说明书(2007)
而当MODE为1时,芯片是双三拍输出。
RST是分频模块的复位脚。RST为1时,内置的计数值清零重新计数。 a1、a2、a3是三位输出频率控制脚。通过改变a1、a2、a3来控制频率的大小。 OUTA、OUTB、OUTC是芯片的三相输出脚。
图3-4 XC9572芯片有关管脚的端口功能分布图
上述功能也可以简单的以表格的形式来描述,如表3-1所示。
表3-1 脉冲分配器功能表
输入 CP X ↑ ↑ ↑ ↑ EX 1 0 0 0 0 MODE X 0 0 1 1 DIR X 0 1 0 1 OUTA 输出 OUTB OUTC 输出全0,芯片复位 三相六拍正转 三相六拍反转 双三拍正转 双三拍反转 上表并未给出分频模块的功能,进入放大电路的实际频率是CP经分配器分频后输出的CLK_OUT。
如果要求一个XC9572芯片控制两台步进电机的运行,只需在XC9572的输出端口加三路输出OUTa、OUTb、OUTc,其输出特性和OUTA、OUTB、OUTC三相相同。
7
基于CPLD的多功能脉冲分配器系统的设计
3.2 脉冲分配器的软件部分设计及波形仿真
随着计算机技术、超大规模集成电路技术的发展,传统的硬件系统设计方法很难满足硬件设计复杂度快速增长以及设计成果可继承性的需要,从而导致了采用硬件描述语言的硬件电路设计方法的兴起。
所谓硬件描述语言(HDL),就是可以描述硬件电路的功能、信号连接及定时关系的语言。硬件描述语言HDL有多种类型,最有代表性的是美国国防部开发的VHDL(VHSIC Hardware Description Language)语言和Verilog公司开发的Verilog HDL语言。
VHDL语言具有与硬件电路无关和与设计平台无关的特性,并且具有良好的电路行为描述和系统描述的能力,并在语言的层次化、结构化和易读性设计方面,表现了强大的生命力和应用潜力,因此选用VHDL语言进行编程。 3.2.1 VHDL语言的特点和基本结构
VHDL语言是一种国际标准的硬件描述语言,具有丰富的表达能力,可使不同复杂度(系统级/电路板级/芯片级/门级)的电路网络在同一抽象程度上被描述,其支持系统级、寄存器级、门级三种不同层次,是未来数字系统设计的主流。
VHDL语言与一般的计算机高级语言相比,具有如下优点: (1)通用性和设计的可变换性
VHDL语言是一种国际标准的硬件描述语言,几乎所有的综合仿真工具都支持它。由于VHDL是一种标准,所以VHDL模型可以在与此标准相一致的任意系统上运行,这就意味着无论是否使用了相同的设备,在一个地方建立的模型,都可以在另外一个地方运行。因而设计者可以交换一个数字系统的子系统的高层次描述,从而独立地发展每个子系统。
(2)支持多种设计方法和设计技术
VHDL语言支持Top Down和基于库(Library_Based)的设计方法,而且还支持同步电路、异步电路、FPGA和其它随机电路的设计,其范围之广是其它HDL语言所不能比拟的。
(3)系统硬件描述能力强
VHDL语言具有多层次描述系统硬件功能的能力,可以从系统的数学模型直到门级电路。另外,高层次的行为描述可以和低层次的RTL描述及结构描述混合使用。VHDL语言能进行系统级的硬件描述,这是它的一个最突出的优点。其它HDL语言如UDL/I、Verilog等只能进行IC级或PCB级描述,而不能对系统级的硬件进行很好的描述。
(4)大规模设计和设计的再利用
在完成一个大型硬件系统的设计后,分解设计和描述设计的功能同等重要。在VHDL中,有些功能是专门为此而开发的。在VHDL中出现的程序包、配置说明和表
8
盐城工学院本科生毕业设计说明书(2007)
示一个实体的各种不同实现的多个结构体的概念,都体现了对设计共享、实验及设计管理的支持。
一个完整的VHDL语言程序通常包含实体(entity)、结构体(architecture)、配置(configuration)、包集合(package)和库(library)5个部分,如图3-5所示。实体用于描述所设计的系统的外部接口信号;结构体用于描述系统内部的结构和行为;配置用于从库中选取所需单元来组成系统;包集合存放各设计模块能共享的数据类型、常数、程序等;库用于存放已编译的实体、构造体、包集合、配置。
配 置 图3-5 VHDL语言程序基本结构
实 体 结构体 说明语句 功能描述语句 库、包集合 VHDL文件 下面是一个完整的VHDL程序设计的基本语法结构。 library<库名>;——————指定库名
use<库名>.<程序包名>.all;——————指定程序包 ?
entity 实体名称 is [generic(类属声明)];—————实体声明 [port(端口声明)]; end[实体名称];
architecture 结构体名称of 实体名称 is—————结构体声明 {块声明语句}; begin
{并行处理语句}; end[结构体名称]; 3.2.2 控制逻辑分析
设计要求步进电机以三相六拍和双三拍方式工作。如果以“0”表示绕组断电,以“1”表示绕组通电。那么对于ABC三相绕组来说,步进电机在正、反转时,脉冲分配器输出对应的脉冲序列应为:
三相六拍正转:A—AB—B—BC—C—CA—A?
100—110—010—011—001—101—100?
9
基于CPLD的多功能脉冲分配器系统的设计
三相六拍反转:A—AC—C—BC—B—AB—A?
100—101—001—011—010—110—100? 双三拍正转:AB—BC—CA—AB? 110—011—101—110? 双三拍反转:AB—AC—BC—AB? 110—101—011—110? 脉冲分配器输出对应的波形如图3-6所示。
CP A B C
(a) 三相六拍正转
CP A B C
(b)三相六拍反转
CP A B C
(c)双三拍正转
CP A B C
(d)双三拍反转 图3-6 逻辑分析输出波形图
10
盐城工学院本科生毕业设计说明书(2007)
同时脉冲分配器提供八种频率的输出脉冲信号,这就需要设计一个分频器,把输入的脉冲信号分频为八种不同频率的输出脉冲信号。分频的主要原理是把输入脉冲信号按控制要求进行延时后输出,不同的延时时间可以起到不同分频的作用,如把两个输入脉冲延时为一个脉冲输出,那就是二分频,那么要达到1—8分频就容易实现。同时还要考虑输出脉冲信号的占空比为1:1,即输出脉冲信号的高低电平所占的空间大小一致。这样,通过分频器分频后能够得到八种不同频率的输出脉冲信号,从而实现步进电机八种转速的选择。
了解了具体的控制逻辑后,可以分别对分配模块和脉冲分配状态机进行具体的程序设计和波形仿真。 3.2.3 分频模块的设计和波形仿真
分频器是数字电路中最常用的电路之一。在数字电路中,常需要对较高频率的时钟信号进行分频操作,得到较低频率的时钟信号。而计数器是实现分频电路的基础,通过计数器对脉冲信号的计数,按预定的要求限制脉冲个数,可以延长输出脉冲周期,同时缩小了频率,从而达到了分频的效果。
根据设计要求有三位输出频率控制端,可以将输入频率分成八种频率输出。也就是说,需要把输入的脉冲信号按由
a1、a2、a3 三个控制端形成不同的控制顺序
组合进行分频,然后有1—8分频后对应的八种不同频率脉冲信号输出,进而实现步进电机的八种转速的选择。
在1—8的分频过程中,为了使输出脉冲信号的占空比一致,达到1:1的效果,涉及1、3、5、7的奇数分频和2、4、6、8的偶数分频。偶数分频最易于实现,欲实现占空比为1:1的偶数N分频,一般来说有两种方案:一是当计数器计数到
N2时,
将输出电平进行一次翻转,同时给计数器一个复位信号,如此循环下去;二是当计数器输出为0到
N2-1时,时钟输出为0或1,计数器输出为
Ν2到N-1时,时钟输出为1
或0,当计数器计数到N-1时,复位计数器,如此循环下去。需要说明的是,第一种方案仅仅能实现占空比为50%的分频器,第二种方案可以有限度的调整占空比。实现奇数分频相对难一些,欲实现占空比为1:1的2N+1分频器,则需要对分频时钟的上升沿和下降沿分别进行
N2N+1分频,然后将两个分频所得的时钟信号相或得到占
空比为1:1的2N+1分频器。特别需要指出的是,奇数1分频其实没有涉及频率的分频,可以把原来的输入脉冲信号无需分频就可作为输出脉冲信号直接输出。 根据以上分析,编写分频器的VHDL程序代码。分频程序由奇数分频部分、偶数分频部分和整体输出部分组成。分频程序清单见附录2。
具体的分频结果仿真波形图如图3-7所示。
11
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库基于CPLD的多功能脉冲分配器的设计说明书(3)在线全文阅读。
相关推荐: