当前位置:文档之家› 基于FPGA的直流电机系统控制研制

基于FPGA的直流电机系统控制研制

本科毕业设计论文

基于FPGA的直流电机控制系统研制

学生姓名:刘明达

班级:电自113

学号:0901011022

指导教师:刘晓峰

所在单位:电气工程学院

答辩日期:2015年6月28日

摘要

EDA技术具有很强的实践性,在学习过程中必须加强实际动手能力的训练,将书本上介绍的理论知识与实际应用相结合,从丰富多样的实验操作中增加实践经验,从应用实例中学习和模仿编程方法,可以获得事半功倍的效果。

直流电机具有速度控制容易,启、制动性能良好等优点,本文利用了PWM(脉宽调制) 调速方法。

本课题介绍了利用FPGA对直流电机实现控制的方法及其电路设计,直流电机转速控制器,锯齿波发生器,PMW波形发生器,来实现对直流电机的控制。采用VHDL语言对FPGA进行编程,将直流电机转速控制器和锯齿波发生器的值进行比较,从而实现对直流电机速度以及旋转方向精确灵活的控制。

关键词:FPGA,直流电机,VHDL,Quartus Ⅱ

Abstract

The technology of EDA has the very strong practicality, we must strengthen the capacity of the actual hands-training in the learning process,we must put the knowledge we have learned from the books into application,then we can accumulate much experience from various operations,we can also learn how to program and imitate it .This can be suppressed effectively.

DC motors have many advantages,such as easy speed controlling and good starting and braking performance.

This article introduces how to use FPGA to control the DC motors and design electric circuit,we can control the DC motors through DC motor speed controller, sawtooth generator and PMW waveform generator. We use VHDL for FPGA programming , We compare the value of the DC motor speed controller and sawtooth generator so that we can control the speed of DC motor and the rotation direction accurately and flexibly.

Keywords: FPGA ,DC Motor,VHDL, Quartus II

目录

摘要 ............................................................ I Abstract ......................................................... II 第1章绪论 .................................................... IV 1.1 课题研究背景及意义 .......................................... IV 1.2 课题研究现状 ................................................ IV 1.3 本课题所做的工作 ............................................ IV 第2章EDA技术及VHDL描述语言................................ VI 2.1 EDA的发展历程.............................................. VI

2.1.1 EDA的起源.............................................. VI

2.1.2EDA发展史及其主要内容. ................................. VI 2.2 FPGA简介................................................... VI

2.2.1 FPGA的开发与配置..................................... VIII

2.2.2 FPGA优点及FPGA/CPLD的选择......................... VIII 2.3 VHDL简介 .................................................. IX

2.3.1 VHDL的特点 ............................................ IX 第3章直流电机控制方案概述和对比 ................................ X 3.1 直流电机控制概述 ............................................. X

3.1.1 直流电机控制方案对比..................................... X

3.1.2 FPGA为核心器件的直流电机控制的系统构成................. XI 第4章基于VHDL的硬件模块设计................................ XII

4.1 基于FPGA的直流电机PWM控制.............................. XII 4.2 实现系统控制的各模块 ....................................... XII

4.2.1 直流电机转速控制器(binary_up_down_counter)............. XIII

4.2.2 锯齿波发生器(binary_counter)............................ XVII

4.2.3PMW波形发生器(CMP).............................. XVIII 4.3 直流电机工作时序分析 ...................................... XXII 第5章液晶图文显示 ........................................... XXIV

5.1 LCD液晶显示.............................................. XXIV

5.5.1 OCMJ液晶显示器....................................... XXIV

5.5.2 模块管脚说明 .......................................... XXIV 5.2 液晶图文显示................................................ XXV 结论 ....................................................... XXVIII 致谢 ......................................................... XXIX 参考文献 ..................................................... XXX 附录1:原理图................................................ XXXI 附录2:液晶显示部分实物图................................... XXXII

第1章绪论

1.1 课题研究背景及意义

电动机作为机电能量转换装置,一直在现代化的生产和生活中起着十分重要的作用[1]。直流电机由于具有速度控制容易,启、制动性能良好,且在宽范围内平滑调速等特点而在冶金、制造、轻工等工业部门中得到广泛应用。

由于现今集成电路、现代电力电子技术、控制理论的飞快发展,如今电机控制技术已经得到普及,已经由过去的提供动力为目的转变为可以对电机进行精确管制。通常应用A LTERA公司的现场可编程门阵列 (F P G A)芯片来进行对电机控制器的设计、制造和调试且在此基础上来分析研究应用控制器对直流电机来进行调度控制的方法。

1.2 课题研究现状

近几年来,由于微电子技术与计算机技术的飞速发展及单片机的普及,将调速装置向密集化、小型化和智能化方向发展。国外交直流系统数字化已经达到实用阶段。由微处理器为技术核心的数字控制系统硬件电路的标准化程度高,需要成本低,并不受器件的温度漂移所引起的影响。数字控制系统能够有效的进行逻辑判断和复杂的运算,能做到不同于一般线性调节的最优化、适应性、非线性、智能化等控制规律。如采用微机控制产生PWM信号。用微机或单片机产生PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM波形,因此外围电路比较复杂[2]。单片机,虽然D S P 具备生成PWM信号及捕获电机编码器信号的能力,但其对IC生成 PWM信号的通道数目及电机编码器捕获通道数目有限。对多个直流电机的控制很难满足要求。

基于现场可编程门阵列FPGA对直流电机的控制策略, 为实现电动机数字控制提供了一种有效的方法[3]。FPGA器件具有集成度高、体积小、运算速度快、易于修改等特点。用FPGA来实现多路PWM调控,内部自带数模变换功能,不再需要外接数模转换设备,形式简单,误差小、控制性能强。用单片机和DSP 的控制都难以达到同样的控制效果。

1.3本课题所做的工作

FPGA的开发语言(V H D L语言)是一种用于数字系统设计和测试的硬件描述语言,也是我们国家极力推广的一种标准语言。本课题采用VHDL语言编程,利用Altera公司的QuartusII开发平台创建成调速系统所需的各个特殊功能“器

件”。通过设计工具QuartusⅡ对设计进行综合、适配与时序仿真,利用FPGA 器件—EP1K30实现对PMW占空比的调节,从而达到对直流电机控制系统的设计[4]。具体工作如下:

1.掌握VHDL硬件编程语言;

2.掌握Altera公司推出的集成仿真工具QuartusII 6.0的使用方法;

3.利用VHDL硬件编程语言设计直流电机系分驱动控制模块工程项目;

4.以EP1K30TC144-3器件为核心制作可实际运行的直流电机系分驱动控制硬件电路。

第2章 EDA技术及VHDL描述语言

2.1 EDA的发展历程

2.1.1EDA的起源

ED A是电子设计自动化(E lectronic Design Automation)缩写,是1965年结合了C A D、C A M、C A T和C A E的理念,并将其完善得到的。ED A技术是以计算机为工具,根据硬件描述语言H DL( Hardware Description language)完成的设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合及优化、布局布线和仿真以及对于特定目标芯片的适配编译和编程下载等工作。典型的EDA 工具中必须包含两个特殊的软件包,即综合器和适配器。综合器的功能就是将设计者在EDA平台上完成的针对某个系统项目的HDL、原理图或状态图形描述,针对给定的硬件系统组件,进行编译、优化、转换和综合,最终获得我们欲实现功能的描述文件[4]。综合器在工作前,要给定所要实现的硬件结构参数,其功能就是将软件描述和所给定的硬件结构用一定的方式联系起来。也就是,综合器要在软件描述与硬件实现间搭一座桥梁。综合过程就是要将电路的高级语言描述转换成低级的、可与目标器件F P GA/C PLD相映射的网表文件。

2.1.2EDA发展史及其主要内容.

人类已步入高度发达的信息化社会,信息化社会的发展永远离不开电子产品的进步。虽然电子产品的功能越来越强大,制作工艺也愈加繁琐,可其价格却只低不高,同时电子产品的淘汰速度逐年加开,淘汰率也逐年增大,导致上述现象的因素很多,但之所以有这样飞跃性的发展,要归功于电子设计技术的日益发达。电子设计技术当中应用最广泛的便是E DA。EDA可以对以下三种设计进行辅助:

1)I C设计

2)电子电路设计

3)PCB设计

在EDA没有被研发成功时,要实现超大规模集成电路的设计制造是不可能的,同时,怎样完善EDA来适应发展愈发快速的电子设计工业,是一个值得探讨的问题。E DA技术有三个发展阶段:

(1)第一个阶段为C AD的应用,在这个阶段以前,人们对于版图设计,布局等工作只能手工完成。而在这之后,人们开始利用计算机对其进行辅助工作。这个时期的主要存在两个问题,即:EDA软件的功能单一,相互独立;对相对复杂的电

子系统设计,不能提供系统级的仿真和综合,所以在设计中错误只能在产品开发的后期才能发现,这时想要修正是十分困难的。(2)八十年代为CAE阶段,与CAD 相比,除了纯粹的图形绘制功能外,又增加了电路功能设计和结构设计,并通过电气连接网络表将两者结合于一起,实现了工程设计,这就是计算机辅助工程的概念。C AE的主要作用是:原理图输入,逻辑仿真,电路分析,自动布局布线,P CB后分析。在这个阶段中,基于门阵列和标准单元库设计的半定制ASIC得到了极大的发展,将电子系统设计推入了ASIC时代。但是,大部分从原理图出发的CAE工具仍然不能适应复杂电子系统的要求,而且具体化的元件图形也制约着优化设计。(3)九十年代为E SDA阶段。尽管C AD/C AE的技术取得了巨大的成功,但并没有将人从繁重的设计工作中彻底的解放出来。在整个的设计过程中,自动化与智能化的程度还不高,各种E DA软件界面也千差万别,要学习并使用很困难,并且互不兼容,这直接影响到了设计环节间的衔接。针对上述的情况,更多学者开始追求贯彻整个设计过程的自动化,这就是E SDA即电子系统设计自动化。从目前的E D A技术来看,其未来趋势是政府重视、使用普及、应用广泛、工具多样、软件功能强大[5]。

EDA技术相当于在电子设计领域中发起的一场变革,它一直引领着电子设计领域走向更高的高度,如今正在飞速发展阶段,新的E DA工具正在不断的被开发出来,但国内的E DA技术的应用水平长期落后于发达国家,广大电子工程人员需尽早掌握这一先进技术,这不仅是提高设计效率的需要,更是我国电子工业在世界市场上生存、竞争与发展的需求。

2.2 FPGA简介

FPGA(Field Programmable Gate Array)即现场可编程门阵列,它是在PAL (Programmable Logic Array)、GAL(Generic Logic Array)、EPLD等可编程器件的基础上进一步发展的产物。FPGA是一种半定制电路,它不仅弥补了定制电路的不足,也在一定程度上改进了原始的可编程门列阵门数受限的劣势。它是一种采用可编程互连连接在一起的逻辑单元阵结构。是其内部呈阵列状排列的多个可配置逻辑块(C LB),可以提供用户需要的逻辑功能;四周围绕输入/输出接口块(IO B),可以提供内部逻辑和外部封装之间的接口;其余为垂直交叉的可编程互连资源,用于在块与块之间的传输信号,类似与连接中,小规模集成电路器件的印刷版上的走线[6]。FPGA较原有电路的优势:体积小、精度高、响应迅速、灵活性、稳定性,可无限次反复编程,主要是能现场模拟调试验证。通常利用FPGA器件很短时间内便可以实现电子系统的设计和制造。利用研制周期短这一优势,在上市时间和制作成本等方面都有很好的效果。FPGA有着很强的‘变通能力’,当数据输入发生变化时,其电路功能也发生相应的变化。所以FPGA 已经成为许多领域中运用最普遍的一种电路。

2.2.1 FPGA的开发与配置

FPGA的设计是应用FPGA开发系统完成的。人们要做的仅仅是将硬件描述语言或电路原理图输入计算机,FPGA开发系统便可以自动完成设计过程,完成FPGA 的内部配置,使硬件描述语言或电路原理图所描述的功能,这样一块空白的FPGA 芯片就变成了一块特殊功能ASIC芯片。常用的配置模式有:

(1)并行主模式:一个FPGA加一个EPROM;

(2)主从模式:用一个PROM可对多个FPGA进行编程;

(3)外设模式:将FPGA作为微处理器的外设;

(4)串行模式:可以采用串行PROM编程FPGA。

2.2.2 FPGA优点及FPGA/CPLD的选择

PGA采用了逻辑单元阵列L CA(L o g i c C ell A r r a y)这样一个新概念,其内部含有三个部分,分别是:

(1)可配置逻辑模块CLB(Configurable Logic Block)

(2)输出输入模块IOB(Input Output Block)

(3)内部连线(Interconnect)

所以FPGA具有很多的基本特点,主要有:

1)设计ASIC时,用户无须进行投片生产,便可制作出合适的芯片。

2)可用作其它ASIC电路试样片。

3)内部含充足的触发器和输入输出引脚。

4)具有设计周期短、成本低的优点。

5)CHMOS的运用,减小了功耗,能和CMOS、TTL电平兼容。可以说,FPGA 芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。CPLD是由GAL (Generic Logic Array)发展起来的,其主题结构人人是与或阵列,具有ISP 功能的CPLD器件由于具有和FPGA器件相似的集成度和易用性,使其在可编程逻辑期间技术的竞争中和FPGA并驾齐驱,成为两支领导可编程器件技术发展的力量之一[7]。在很多的时候需要对两者进行比较,使用最佳选择,这里简单比较如下。

F P

G A与C P L D都是可编程AS IC器件,有很多共同的特点,且在一些领域中,它都体现出巨大的优势,但基于两者的结构不同,它们的特征也存在着一定的不同

当今世界正经历着波澜壮阔的科技技术的巨大变革,FPGA等可编程逻辑器件技术发展一日千里,推动着电子技术设计的变革和深入发展,我们应该不断更新知识,掌握不断发展的科学技术

2.3 VHDL简介

目前用于C PLD/FP GA、ASI C设计的语言种类有如下几种:VH DL语言、V erilog 语言、AH DL语言、AB EL语言等。其中在CPLD/FPGA编程中使用最广泛的当属VHDL 语言和AHDL语言,但Verilog以其统一的标准,强大的描述能力,也逐渐被用户接受[9]。

VHDL的英文全称是VHSIC(Very High Speed Integrated CircuitHdware Description Language ),诞生于1982年。1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。自IEEE-1076(简称87版)之后,各EDA公司相继推出自己的VHDL设计环境,或宣布自己的设计工具可以和VHDL接口。1993年,IEEE对VHDL进行了修订,从更高的抽象层次和系统描述能力上扩展VHDL 的内容,公布了新版本的VHDL,即IEEE标准的1076-1993版本,简称93版。现在, VHDL和Verilog作为IEEE的工业标准硬件描述语言,又得到众多EDA 公司的支持,在电子工程领域,已成为事实上的通用硬件描述语言[10]。相信,在未来,V H D L将担负起大部分的数字系统设计任务。

2.3.1VHDL的特点

VH DL语言是一种用于电路设计的高级语言,主要是应用在数字电路的设计中。VHDL主要用于描述数字系统的结构/行为/功能和接口。VH DL的程序结构特点是将一项工程设计,或称设计实体分成外部和内部,既涉及实体的内部功能和算法完成部分。在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。这种将设计实体分成内外部分的概念是VHDL系统设计的基本点。应用VHDL进行工程设计的优点是多方面的[11]。

1)与其它的硬件描述语言比较,VHDL拥有更为强大的行为描述能力,

这也奠定了它会是系统设计领域的最佳硬件描述语言。其强大的行为描

述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系

统的重要保证。

2)VHDL具有丰富的仿真语句和库函数,使它能在任何大系统的设计早

期就能查验设计系统的功能可行性,并随时可对设计进行仿真模拟。

3)VHDL语句的行为描述能力和程序结构决定了他具有支持大规模设计

的分解和已有设计的再利用功能。符合市场对大规模系统高效的需求,

且能高速完成需由多人或多个代发组共同并行工作才能实现的设计。

4)对于用VHDL来完成的一个确定的设计,可以利用EDA工具进行逻辑

综合和优化,并自动的把VHDL描述设计转变成门级网表。

5)VHDL对设计的描述具有相对对立性,使设计者可以不必懂硬件的结

构,也不必管理最终设计现实的目标器件是什么,而进行独立的设计。

6)VHDL本身的生命周期长。

第3章直流电机控制方案概述和对比

3.1 直流电机控制概述

直流电机由于具有速度控制容易,启、制动性能良好,且在宽范围内平滑调速等特点而在冶金、制造、轻工等工业部门中得到广泛应用。通常我们将直流电动机转速的控制方法分为两类,一类是励磁控制法,另一类是电枢电压控制法。励磁控制法控制磁通,其控制功率虽然小,但低速时受到磁饱和的限制,高速时受到换向火花和换向器结构强度的限制;而且由于励磁线圈电感较大,动态响应较差。所以我们常用的控制方法是改变电枢端电压调速的电枢电压控制法。通过调节电阻R 就可以改变端电压,从而达到调速目的。但是用这种传统的调压调速方法效率非常低。如今随着电力电子技术的进步,出现了许多新的电枢电压控制方法,其中PWM(脉宽调制) 是常用的一种调速方法。其基本原理是用改变电机电枢(定子) 电压的接通和断开的时间比(占空比) 来控制马达的速度,在脉宽调速系统中,当电机通电时,其速度增加;电机断电时,其速度减低[12]。只需按一定的规律改变通、断电的时间,就可以使电机的速度达到并保持一稳定值。

本文采取了F PGA来改进步进电机多路P WM控制,内部自带数模变换功能,不再需要外接数模转换设备,形式简单,误差小、控制性能强。用单片机和DSP 的控制都难以达到同样的控制效果。

3.1.1直流电机控制方案对比

由于以微处理器为核心的数字控制系统硬件电路的标准化程度高,制作成本低,又不受器件温度漂移的影响。其控制软件能够进行逻辑判断和复杂运算,能够实现不同于一般线性调节的最优化、自适应、非线性、智能化等控制规律。如采用微机控制产生PWM信号[13]。一般的PWM信号事通过模拟比较器产生的,比较器的一端接给定的参考电压,另一端接周期性线性增加的锯齿波电压。当锯齿波电压小于参考电压时输出低电平,当锯齿波电压大于参考电压时输出高电平。改变参考电压就可以改变PWM波形中的高电平的宽度。若用微机或单片机产生PWM信号波形,需要通过D/A转换器产生锯齿波电压和设置参考电压,通过外接模拟比较器输出PWM波形,因此外围电路比较复杂。

FPGA中的数字PWM控制与一般的模拟PWM控制不同。用FPGA产生PWM波形,只需FPGA内部资源就可以实现。用数字比较器代替模拟比较器,数字比较器的一端接设定值计数器输出,另一端接线性递增计数器输出。当线性计数器的计数值小于设定值时输出低电平,当计数器大于设定值时输出高电平。与模拟控制相比,省去了外接的D/A转换器和模拟比较器,FPGA外部连线很少,电路更加简

单,便于控制[14]。具有广泛的应用前景。

经过对比本课题决定采用基于FPGA的直流电机控制系统。

3.1.2FPGA为核心器件的直流电机控制的系统构成

直流电机控制系统主要由五部分组成,如图3-1所示:直流电机转速控制器,锯齿波发生器,PM W波形发生器,直流电机转动方向控制器和由功率放大电路和H桥组成的正∕反转功率驱动电路。

图3-1 FPGA直流电机控制电路

第4章基于VHDL的硬件模块设计

4.1 基于FPGA的直流电机PWM控制

如图4-1所示:直流电机控制系统主要由五部分组成:直流电机转速控制器,锯齿波发生器,PMW波形发生器,直流电机转动方向控制器和由功率放大电路和H桥组成的正∕反转功率驱动电路。

图4-1 直流电机PMW控制图

图4-1所示电路完成的主要功能为: Enable为使能信号,当Enable=1时允许调速,相反当Enable=0时则禁止调速。Up_Down 为加速\减速控制信号,当

Up_Down=1,输入CLK1使直流电机转速控制器计数器的输出值增大,P MW占空比增大,电机转速加快;当U p_D own=0,输入C LK1使直流电机转速控制器的输出值减小,P M W的占空比减小,电机转速变慢。在C L K0的作用下,锯齿波计数器输出周期性线性增加的锯齿波。当锯齿波的计数值小于直流电机转速控制器的设定值时,数字比较器输出高电平;当锯齿波的计数值大于直流电机转速控制器的设定值时,数字比较器输出低电平,由此产生周期性的P M W波形。旋转方向控制电路控制控制直流电动机转向和启∕停,该电路由两个2选1多路选择器组成,Z h en g_Fan为方向控制信号,Zheng_Fan引脚控制选择进入H桥的PMW 波形,以控制电机的旋转方向。Start_Stop为启/停信号,Start_Stop引脚通过“与”门控制PMW的输出,实现对电机的工作∕停止控制。H桥电路由大功率晶体管组成,P M W波形经方向控制电路送至H桥,将功率放大以后驱动电机转动。

PMW控制电路由直流电机转速控制器(binary_up_down_counter)和锯齿波发生器(binary_counter)组成。binary_up_down_counter是一个简单的5位二进制计数器,做直流电机转速控制器,而binary_counter是一个线性递增计数器,作锯齿波发生器,其余的模块是2选1多路选择器和比较器。锯齿波发生器在C LK0的激励下输出从0开始的逐渐增大的锯齿波。两路计数器的输出同时加在数字比较器上,当直流电机转速控制器输出值小于锯齿波发生器输出的值,比较器输出低电平;当直流电机转速控制器输出大于锯齿波发生器输出的值时,比较器输出高电平。这样就产生了占空比保持不变的方波。改变直流电机转速控制器的设定值initial时,就可以改变PMW 输出信号的在占空比即初调;直流电机转速控制器是一个双向计数器,能够进行加∕减计数,由U p_Down 控制其加∕减计数方向,在时钟CLK上升沿到来时可以改变binary_up_down_counter的输出即微调。为了方便连续变速控制,在计数器C LK 端通过“与”门,加入了C C LK1外部变速控制附加时钟,并由E n ab l e信号控制是否允许变速。

4.2 实现系统控制的各模块

4.2.1直流电机转速控制器(binary_up_down_counter)

直流电机转速控制器(binary_up_down_counter)是一个可控制的加减计数器,作细分计数器。输出CQ[4.0]加载到数字比较器的一端。通过VHDL语言实现的直流电机转速控制器硬件电路如图4-2所示:

图4-2 直流电机转速控制器

通过VHDL语言的编译定义了直流电机转速控制器硬件电路的五个输入引脚,分别为系统时钟引脚(CLK)、数据清零引脚(Reset)、使能输入引脚(Enable)、变速控制引脚(Up_Down)、起始数据输入引脚(Initial)。还有一个输出端(CQ)。直流电机转速控制器是一个双向计数器,能够进行加∕减计数,并由U p_Dow n控制其加∕减计数方向,C L K是计数时钟输入端。为了方便连续变速控制,在计数器C LK端通过“与”门,加入了C LK1外部变速控制附加时钟,并由E nab l e信号控制是否允许变速。Reset为清零键用来控制初值是否给定。Initial用来给定控制直流电机速度的初始值,即给定初始速度。几个输入引脚相互配合起到了对直流电机转速控制器控制速度的功能。

具体程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.numeric_std.all;

entity binary_up_down_counter is

port

(

clk : in std_logic;

reset : in std_logic;

enable : in std_logic;

updown : in std_logic;

Initial : in std_logic_vector(4 downto 0);

CQ : out std_logic_vector(4 downto 0)

);

end entity;

直流电机转速控制器是五位的加减计数器,计数器加的过程实为系统的加速过程,相反减的过程为系统的减速过程。直流电机转速控制器输出的数据被连到PMW波形发生器(数字比较器)与锯齿波发出的数据相比较,从而完成直流电机速度的控制。

初值的加入,当reset引脚输入低电平时由initial引脚输入五位数据初值,从而给定直流电机的初始速度。

系统的加速过程,当enable引脚输入高电平且up_down引脚输入高电平时,此时直流电机转速控制器进行一个加的过程,通过比较与锯齿波发生器发出的数值使输出波形的占空比变大,从而达到直流电机加速的目的。相反enable引脚输入低电平则不发生加速过程。

系统的加速过程,当enable引脚输入高电平且up_down引脚输入低电平时,此时直流电机转速控制器进行一个减的过程,通过比较与锯齿波发生器发出的数值使输出波形的占空比变小,从而达到直流电机减速的目的。

具体程序如下:

architecture rtl of binary_up_down_counter is

signal Init : std_logic_vector(4 downto 0);

begin

init<= initial;

process (clk)

variable cnt: std_logic_vector(4 downto 0);

begin

-- Synchronously update counter

if reset = '0' then

-- Reset the counter to initial

cnt := init;

elsif (rising_edge(clk)) then

if enable = '1' then

if updown='1' then

if cnt="11111" then cnt:=cnt;

else cnt:=cnt+1;

end if;

else

if cnt="00000" then cnt:=cnt;

else cnt:=cnt-1;

end if;

end if;

end if;

end if;

CQ<= cnt;

end process;

end rtl;

直流电机转速控制器功能仿真如图4-3所示:当输入时钟clk为上升沿时,输出值CQ就会加1。输出值范围由0可以自加到31。

图4-3 binary_up_down_counter仿真波形图

4.2.2 锯齿波发生器(binary_counter)

锯齿波发生器(线性递增计数器)通过脉宽时钟作用下递增计数,产生阶梯形上升的周期性的锯齿波。锯齿波发生器输出五位数据。锯齿波发生器确定了脉冲的宽度,其输出的数据被连到PMW波形发生器与直流电机转速控制器输出的数据比较。从而达到了对占空比的控制。通过VHDL语言实现的锯齿波发生器硬件电路如图4-4所示:

图4-4 binary_counter (锯齿波发生器)

具体设计程序如下:

library ieee;

use ieee.std_logic_1164.all;

use ieee.std_logic_unsigned.all;

use ieee.numeric_std.all;

entity binary_counter is

port

(

clk : in std_logic;

CQ : out std_logic_vector(4 downto 0)

);

end entity;

architecture rtl of binary_counter is

begin

process (clk)

variable cnt: std_logic_vector(4 downto 0);

begin

if (rising_edge(clk)) then

if cnt="11111" then cnt:="00000";

else cnt:=cnt+1;

end if;

end if;

-- Output the current count

CQ <= cnt;

end process;

end rtl;

锯齿波发生器功能仿真如图4-5所示:当输入时钟clk为上升沿时,输出值CQ就会加1。输出值范围由0可以自加到31。

输出值

图4-5 binary_counter 仿真波形

4.2.3PMW波形发生器(CMP)

P M W波形发生器(数字比较器)用来对锯齿波发生器和直流电机转速控制器输出值的大小做比较,当锯齿波发生器的值小于直流电机转速控制器的设定值时输出高电平,当锯齿波发生器的值大于直流电机转速控制器的设定值时输出低电平。由此可输出周期性的PWM波形。其硬件电路如图4-6所示:

图4-6 比较器

PMW波形发生器的生成步骤如下:

(1)打开MegaWizard Plug In Manager初始对话框。选择Tools→MegaWaizard Plug In Manager命令,打开如图对话框,选中Create a new custom megafuncition variation单选按钮,即定制一个新的模块。如图4-7所示:

图4-7 定制新的宏功能块

(2)单击Next按钮后,打开如图对话框,在左栏选择storage项下的L P M C O M P A R E然后选择A C EX1K 器件和V H D L语言方式:最后再输入文件存放的路径和文件名。如图4-8所示:

相关主题
文本预览
相关文档 最新文档