基于FPGA的多路PWM发生器设计.docx
- 文档编号:9590956
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:54
- 大小:337.37KB
基于FPGA的多路PWM发生器设计.docx
《基于FPGA的多路PWM发生器设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的多路PWM发生器设计.docx(54页珍藏版)》请在冰豆网上搜索。
基于FPGA的多路PWM发生器设计
摘要
本系统设计了基于现场可编程门阵列(FPGA)实现的多路PWM脉冲发生器。
该脉冲发生器通过74HC595接口单元接收单片机AT89S52写入的PWM脉冲宽度数据的参数,然后由FPGA产生PWM波形。
其工作原理是由单片机输入数据控制而由FPGA产生PWM波形。
基于Altera公司的Cyclone系列现场可编程门阵列(FPGA)的多通道PWM控制器的设计实现方法。
PWM控制的基本原理是控制开关占空比。
利用FPGA的多通道并行控制功能,在控制电路输出频率不变的情况下,达到了可依据不同通道对多个通道进行占空比调整的设计要求。
利用Altem公司的QuartusII开发平台验证了设计方案的同时介绍了单片机AT89S52、脉冲发生器的基本原理、硬件构成和实现方法。
此实现方法具有硬件设计简单、运行速度快、成本低等优点。
而且该PWM发生器既简化了电路的设计,也提高了系统的可靠性。
该系统由FPGA、AT89S52单片机系统、液晶显示模块、直流电机驱动、矩阵式键盘、电源电路组成。
关键词:
FPGA;单片机;PWM;直流电机;KeiluVision3软件;Quartus1I软件
Abstract
Developedbasedonfieldprogrammablegatearray(FPGA)implementationofmulti-PWMpulsegenerator.ThepulsegeneratorthroughtheinterfaceunitreceivesthePWMMCUAT89S52writepulsewidthofthedata,thengeneratePWMwaveformfromtheFPGA.ItsworkingprincipleiscontrolledbytheMCUinputdatageneratedbytheFPGAPWMwaveform.AlsointroducedMCUAT89S52,thebasicprinciplesofpulsegenerator,thehardwarecompositionandrealization.Thismethodprovidesthehardwaredesignsimple,fastandlowcost.AndthatthePWMgeneratorcircuitnotonlysimplifiesthedesign,butalsoimprovethereliabilityofthesystem.
Keywords:
SCM;pulsemodulator;fieldprogrammablegatearray;VerilogHDLSoftware;Quartus1ISoftware
引言
现场可编程门阵列(FPGA,FieldProgrammableGateArray)的出现是超大规模集成电路(VISI)技术和计算机辅助设计(CAD)技术发展的结果。
FPGA器件集成度高、体积小,具有通过用户编程实现专门应用的的功能。
它允许电路设计者利用基于计算机的开发平台,经过设计输入、仿真、测试和校验,直到达到预期的效果。
利用FPGA可以大大缩短系统的研制周期,减少资金投入。
更吸引人的是采用FPGA器件可以将原来的电路板级产品集成为芯片级产品,从而降低了功耗,提高了可靠性,同时还可以很方便的对设计进行在线修改。
FPGA器件成为研制开发的理想器件,特别适于产品的样机开发和小批量生产,因此人们也把FPGA称为可编程的ASIC。
可以断定FPGA在结构、密度、功能、速度和灵活性方面将得到进一步的发展。
随着工艺和结构的改进,FPGA的集成度将进一步提高,性能将进一步完善,成本将逐渐下降,在现代电子系统设计中将起到越来越重要的作用。
脉冲宽度调制技术(PWM)是电力电子技术中一个非常重要的组成部分,它对提高电力电子装置的性能,推动电力电子技术的发展起着巨大的作用。
随着各种电路拓扑的相继提出,PWM本身也在不断的发展、演化。
在传统的二逻辑PWM的基础上,又逐渐发展出三逻辑PWM和多逻辑PWM。
在许多实际应用中,需要扩展FPGA(现场可编程门阵列)模块,将CPU实现有困难或实现效率低的部分用FPGA实现,如数字信号处理、硬件数字滤波器、各种算法等,或者利用FPGA来扩展I/O接口,如实现多路PWM(脉宽调制)输出、实现PCI接口扩展等。
通过合理的系统软硬件功能划分,结合优秀高效的FPGA设计,整个系统的效率和功能可以得到最大限度的提高。
在电机控制等许多应用场合,需要产生多路频率和脉冲宽度可调的PWM波形。
本设计用Altera公司FPGA产品开发工具Quartus1I,设计了8路PWM输出接口,并下载到FPGA,实现与CPU的协同工作。
现场可编程门阵列芯片(FieldProgrammableGateArray,FPGA)内部包含的逻辑门数从几百至几万,具有可任意配置的几百个寄存器和I/O口,并且开发周期短,可灵活配置实现多种功能而无需改动硬件电路。
利用FPGA设计了一个多路PWM发生器。
1设计思想与总体方案
本系统要求完成利用单片机AT89S52输入数据控制字来实现FPGA产生8路脉冲波形宽度的功能,对PWM数据的处理问题,因此,首要解决采用何种微控制器以及何种方式来对脉冲宽度及频率进行采集处理包括计算,其次是采集到的8路PWM将通过何种方式去显示或通过何钟方式表达出来让人一目了然,最后要解决的是当产生PWM的高频率时蒋出现误差很大,所以要对内外部设备作相应的控制。
1.1主控制器方案论证
方案一:
目前,传统实现PWM控制系统的核心控制芯片仍然是采用单片机,其工作原理是利用单片机内部的定时/计数器来产生所需的PWM信号,但是该输出信号存在频率不高、占空比的调节精度差和相位容易产生抖动等缺点。
通常情况下,多通道的PWM输出信号时,需用多片单片机。
这就增加了系统成本和系统的复杂性,不便于系统的控制。
同时,在恶劣的工业环境下,单片机抗干扰性能差,甚至影响到系统的安全运行。
因此采用单片机作为核心控制芯片的PWM控制系统得花大量的精力解决抗干扰的问题。
方案二:
FPGA与MCU相对比,FPGA的优势主要有速度快、系统资源丰富、应用灵活等。
FPGA内部集成锁相环,可以把外部时钟倍频,核心频率可以到几百兆,而单片机运行速度则低得多。
所以,在输出信号频率高速的场合,单片机无法代替FPGA。
且单片机I/O口有限,而FPGA动辄数百I/O引脚,可以方便连接外设。
比如一个系统有多路A/D或D/A,单片机要进行资源分配和总线隔离,而FPGA拥有丰富的I/O资源,可以很容易用不同I/O连接各外设,实现大规模系统。
单片机程序是串行执行的,执行完一条才能执行下一条,在处理突发事件翻时只能调用有限的中断资源;而FPGA内部程序并行运行,FPGA不同逻辑可并行执行,同时处理不同任务,这就导致了FPGA工作更有效率。
因此,本系统的设计硬件主控制器选用方案二,采用FPGA作为8路PWM控制系统的核心控制芯片。
1.2显示方案论证
方案一:
直接要数码管或者7段数码管加MAX7219驱动显示。
MAX7219驱动7段数码管采用低电压扫描驱动具有:
可以节约单片机I/O口,耗电少、使用寿命长、成本低、亮度高、故障少、视角大、可视距离远等特点;但是显示单一,只能显示数字和几个字母。
就本设计而言需要显示很多的操作提示信息和报警信息,数码管是难以达到的;且本设计需要单片机I/O口并不多,就AT89S52的资源来说不必要考虑单片机I/O不必要考虑I/O口资源不足的问题。
方案二:
LED点阵显示。
LED点阵可以显示多种字符以及图形,可视距离远,可用软件进行调制,有很强的兼容性以及可操作性。
但是需要占要很多系统资源来对其控制;而就AT89S52单片机的速度或系统资源来说控制LED点阵的效果并不很理想,而且LED点阵结构比较庞大,不利随身携带。
方案三:
LCD液晶显示。
LCD液晶零辐射、低功耗、散热小、体积小、图像还原精确、字符显示锐利控制简单等。
与数码管相比显得更为专业、漂亮;液晶显示屏以其微功耗体积小,显示内容丰富、超薄轻巧、使用方便等诸多优点,在通讯、仪器仪表、电子设备、家用电器等低功耗应用系统中得到原来越广泛的应用,使这些电子设备的人机界面变得越来越形象,目前已广泛的饿用于电子表、计算器、IC卡电话机机,液晶电视机、掌上玩具许多方面;虽然视觉范围较近,不太利于远处观察。
对于本设计来说只是做为红外遥控电子钟的温度显示及人机操作界面提示信息,不需要原距离观察,如果需要远距离观察的的话应该首选LED点阵显示。
本设计结合需要及实际经济情况综合考虑采用方案三1602LCD液晶显示作为脉冲宽度和频率及测试电机转速相关信息的显示。
1.3键盘接口的选择
在实际应用中,要求设定8路脉冲宽度和频率值要随着需要观察的大小而调制,因此,就要根据实际所需要的情况在极限值内调制其值。
作为一个系统,一旦做成产品后,就很难通过对程序的修改来完成对各项初值的设定,因而只有用按键的方式来重新对脉冲宽度和频率值进行设置。
键盘有独立式和行列式两种,独立式键盘适用于简单的键盘设置,行列式键盘适用于复杂的键盘设置中。
对于该系统中需要对8路脉宽的选择和各路脉冲宽度大小及频率高底的调整进行设置,这样的键盘编程虽然复杂,但对这个系统用起来比较方便,快捷,因而我们选用矩阵式键盘。
1.4PWM调制的基本原理
PWM波形通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。
图4-3所示为脉冲宽度调制系统的原理框图和波形图。
该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。
语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。
因此,从图1-1(a)中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。
图1-1脉冲宽度调制原理
通过图1-1(b)的分析可以看出,生成的矩形脉冲的宽度取决于脉冲下降沿时刻的幅度值。
因而,采样值之间的时间间隔是在非均匀。
在系统的输入端插入一个采样保持电路可以得到均匀的采样信号,但是对于实际中的情况,均匀采样和非均匀采样差异非常小。
如果假定采样为均匀采样,第K个矩形脉冲可以表示为:
1.4.1单路PWM发生器结构和原理
图1-2是实现单路PWM硬件结构框图。
CPU通过数据线向FPGA写入定时常数控制PWM的频率、初始相位和占空比,并通过外部启动信号控制PWM的启动。
图1-2单路PWM原理图
系统的工作过程:
采用20M时钟信号作为PWM生成器的时钟信号。
首先CPU(这里使用的是DSP)计算出所需要输出PWM的频率,初始相位和占空比信息,通过数据线向FPGA内部寄存器写入以上信息,并通过外部启动信号控制PWM的启动。
然后通过逻辑控制单元输出原始PWM信号,逻辑控制器主要组成为计数器,逻辑控制单元的基本原理图如图1-3所示。
周期计数器单元确定了PWM信号频率,当要改变PWM频率时,只需改变周期计数单元的计数数量成计数权值。
这样计数器的溢出时间也就确定了PWM的脉冲占空比。
周期计数器的输出和占空比计数器的输出经过比较器后得到的脉冲确定了PWM脉冲的占空比。
再和相位延时计数器进行比较输出。
通过逻辑控制单元可以控制PWM信号的初始相位延时、频率、占空比等参数。
逻辑控制单元实际上是本设计中FPGA内部实现的主要部分。
在其内部逻辑设计中主要完成的功能有:
(1)PWM输出波形的产生,采用3个计数寄存器,通过实时比较它们的数值来确定输出的脉冲波形形状。
(2)控制寄存器的赋值和控制位的读取。
(3)计数器单一循环和连续循环的控制实现。
(4)中断发生器的实现以及计时器的中断请求控制的实现。
(5)计数工作时钟的多种模式的选择处理。
(6)地址解码器的实现。
图1-3逻辑控制单元基本原理框图
死区逻辑控制单元可以产生具有死区的两路PWM信号,以避免共态导通。
设计一个死区模块产生的原始PWM信号有延时输出,通过改变程序中设置参数来实现改变死区宽度。
1.4.2多路PWM发生器的实现原理
通过上面的设计可以实现单路的PWM的FPGA设计,利用FPGA来扩展I/O接口,可实现多路PWM(脉宽调制)输出,在超声、电机控制等许多应用场合,需要产生多路频率,和脉冲宽度可调的PWM波形。
应用实现的单路的PWM的设计,可以推广到多路PWM设计,图1-4为多路PWM的系统原理框图。
通过一个主控DSP芯片内部计算产生输出生成PWM所需的频率、初始相位、占空比等参数,后级可并联数个FPGA内部又可以生成8路PWM,通过级联FPGA,可以产生多路不同频率、占空比、初始相位的PWM信号,有较好的同步及一致性,对于
需要多路PWM信号的系统实现有着很强的实用性。
图1-4多路PWM的系统原理图框图
2硬件电路设计
2.1系统硬件的结构框图
使用FPGA与单片机相结合的方式构成8路PWM发生器的核心部分,这是一种从相位概念出发直接合成所需波形的一种新的全数字频率合成技术。
其中FPGA完成相位累加、波形地址查找及波形输出等功能,AT89S52单片机实现频率控制字的输入和液晶显示部分。
FPGA与单片机通过串行输入并行输出的方式进行通信。
本方案利用单片机输入数据控制字来控制FPGA软件实现脉冲波形宽度调制及频率的功能。
原理为:
用单片机输入数字送入FPGA内部产生PWM波形,可以用8个发光二级管的亮度来表示脉冲宽度的大小;通过矩阵式键盘输入数据及对脉宽和频率大小的加减,从液晶显示器上可以清楚的观察到脉冲宽度和频率的大小,同时也可以从电机的转动速度的快慢来看出脉宽的大小。
根据实际要求和设计方案的论证,系统主要由AT89S52及相关的复位电路组成的单片机最小系统模块、FPGA模块产生8路PWM、液晶显示LCD1602显示模块和直流电机模块及电源模块、矩阵式键盘输入模块6部分电路组成。
综上述实际总体方案电路关系框图如图2-1所示:
图2-1硬件原理图
2.2单片机最小系统模块
2.2.1AT89S52芯片介绍
AT89S52芯片结构图如图2-2图所示:
图2-2AT89S52芯片图
AT89C52是一个低电压,高性能CMOS8位单片机,片内含8kbytes的可反复擦写的Flash只读程序存储器和256bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,功能强大的AT89C52单片机可为您提供许多较复杂系统控制应用场合。
AT89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线,AT89C52可以按照常规方法进行编程,也可以在线编程。
其将通用的微处理器和Flash存储器结合在一起,特别是可反复擦写的Flash存储器可有效地降低开发成本。
AT89C52有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。
主要功能特性:
·兼容MCS51指令系统·8k可反复擦写(>1000次)FlashROM
·32个双向I/O口·256x8bit内部RAM
·3个16位可编程定时/计数器中断·时钟频率0-24MHz
·2个串行中断·可编程UART串行通道
·2个外部中断源·共6个中断源
·2个读写中断口线·3级加密位
·低功耗空闲和掉电模式·软件设置睡眠和唤醒功能
一些特殊口:
P3.0RXD串行输入口
P3.1TXD串行输出口
P3.2INT0外部中断1
P3.3INT1外部中断2
P3.4T0记时器0外部输入
P3.5T1记时器1外部输入
P3.6WR外部数据存储器写选通
P3.7RD外部数据存储器读选通
AT89C52的管脚与8052基本相同
2.2.2单片机电路设计
本设计单片机主要是处理数字字并协调各个模块正常工作的部件。
AT89S52单片机具有4个8路I/O口;本设计中主要是用了P0口显示模块的数据接口;P1口作为矩阵式键盘数据输入控制,并用P1口的P15、P16、P17及复位口作为USU下载口;P2口的P21、P22、P23位与FPGA通信,P24位为霍尔传感器接口;P26、P27、P28位作为液晶屏的使能接口;P3口的X1、X2、RST位分别接复位、时钟晶振数据引脚;在此特别说明虽然P0内部没有上拉电阻,但是在本设计中只是做为液晶显示屏的数据总线或地址总线;在液晶显示屏模块上要用接上拉电阻。
At89S52单片机接上相应的电源和时钟,组成单片最小系统系统如图2-3所示。
图2-3单片机最小系统
2.3FPGA开发板与单片机通信模块
2.3.1EPlC3T144C8芯片介绍
主芯片EPlC3T144C8:
AlteraCyclone系列FPGA是A1tera公司2003年9月份推出的,基于1.5V,0.13μm工艺,Cyclone是一个性价比很高的FPGA系列。
其中EPlC3T144是Cyclone系列中的一员,共有2910逻辑单元,59904RAMbits,1个PLLS,最多有104个用户I/O,可以说这款FPGA的资源非常丰富,足够满足大型设计的需要。
本设计选用Altera公司的Cyclone系列芯片,芯片型号为EPlC3T144C8,因为该芯片是Altera公司推出的低价格、高容量的FPGA,其以较低的价格、优良的特性及丰富的片上资源在实际应用中被广泛的采用,这些都是其他同类产品无法相比的。
其芯片的总体框图如图2-4所示。
图2-4EPlC3T144C8图
(1)EPlC3T144C8芯片的特点
EPlC3T144C8芯片的特点采用1.5V内核电压,0.33μmSRAM工艺,与其他同类产品相比具有以下特点:
逻辑资源丰富,逻辑单元(LE)数量为2910个。
有104个可用I/O引脚,I/O输出可以根据需要调整驱动能力,并具有压摆率控制、三态缓冲、总线保持等功能:
整个器件的I/0引脚分为四个区,每个区可以独立采用不同的输入电压,并可提供不同电压等级的I/0输出。
多电压接口,支持LVTTL,LVCMOS,LVDS等I/0标准。
④灵活的时钟管理,片内配有一个锁相环(PLL)电路,可以提供输入时钟的1~32倍频或分频、156~417ps相移和可变占空比的时钟输出,输出时钟的特性可直接在开发软件QuartusII里设定。
经锁相环输出的时钟信号既可以作为内部的全局时钟,也可以输出到片外供其它电路使用。
⑤内有SignalTap嵌入式逻辑分析器,极大地方便了设计者对芯片内部逻辑进行检查,而不需要将内部信号输出到I/O管脚上。
(2)下载线电路
Altera器件的编程连接硬件包括:
ByteBlaster并口下载电缆、ByteBlasterMV并口下载电缆、MasterBlaster串口/USB通信电缆、BitBlaster串口下载电缆。
本设计采用了ByteBlasterMV串口下载电缆。
ByteBlasterMV串口下载电缆采用两种下载模式:
被动串行模式和JTAG仿真下载模式。
为了利用ByteBlasterMV并口下载电缆配置1.5VCyclone系列EPlC3T144,3.3V电源中应该连接上拉电阻,电缆的VCC脚连接到3.3V电源,而器件的VCCINT引脚连到相应的1.5V电源。
对于PS配置,器件的VCCIO引脚必须连到2.5V或3.3V电源。
对于JTAG在线配置和在线编程,电缆的VCC引脚必须连接3.3V电源。
ByteBlasterMV并口下载电缆与PC机相连的是25针插头,与PCB电路板相连的是10针插座。
数据从PC机并口通过ByteBlasterMV并口电缆下载到电路板。
(3)电源电路
采用LMl086系列芯片为电路提供稳定的电源。
LMl086是一系列工作在1.5A负载电流下,最大输出电流为1.5A的低输出电压控制器。
在本设计中用于为FPGA提供1.5V和3.3V电源电压,这是该芯片的主要特点。
2.3.274HC595芯片介绍
74HC595是硅结构的CMOS器件,兼容低电压TTL电路,遵守JEDEC标准。
74HC595是具有8位移位寄存器和一个存储器,三态输出功能。
移位寄存器和存储器是分别的时钟。
数据在SCHcp的上升沿输入,在STcp的上升沿进入的存储寄存器中去。
如果两个时钟连在一起,则移位寄存器总是比存储寄存器早一个脉冲。
移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的具备三态的总线输出,当使能OE(为低电平时),存储寄存器的数据输出到总线。
74HC595芯片如图2-5所示。
8位串行输入/输出或者并行输出移位寄存器,具有高阻关断状态。
图2-574HC595芯片
(1)特点
8位串行输入/8位串行或并行输出存储状态寄存器,三种状态
输出寄存器可以直接清除100MHz的移位频率
(2)输出能力
并行输出,总线驱动;串行输出;标准中等规模集成电路。
595移位寄存器有一个串行移位输入(Ds),和一个串行输出(Q7’),和一个异步的低电平复位,存储寄存器有一个并行8位的,具备三态的总线输出,当使能OE(为低电平时),存储寄存器的数据输出到总线。
(3)参考数据
CPD决定动态的能耗,
PD=CPD×VCC×f1+∑(CL×VCC2×f0)
f1=输入频率,CL=输出电容,f0=输出频率(MHz),Vcc=电源电压
(4)引脚说明
符号引脚描述
Q0…Q715,1,7并行数据输出
GND8地
Q7’9串行数据输出
MR10主复位(低电平)
SHCP11移位寄存器时钟输入
STCP12存储寄存器时钟输入
OE13输出(低电平)有效
DS14串行数据输入
VCC16电源
(5)功能
输入输出功能
SHCPSTCPOEMRDSQ7’Qn
××L↓×LNCMR为低电平时仅仅影响移位寄存器
×↑LL×LL空移位寄存器到输出寄存器
××HL×LZ清空移位寄存器,并行输出为高阻状态
↑×LHHQ6NC逻辑高电平移入移位寄存器状态0,包含所有的移位寄存器状态移入,例如,以前的状态6(内部Q6”)出现在串行输出位。
×↑LH×NCQn’移位寄存器的内容到达保持寄存器并从并口输出
↑↑LH×Q6’Qn’移位寄存器内容移入,先前的移位寄存器的内容到达保持寄存器并出。
(6)注释
H=高电平状态
L=低电平状态
↑=上升沿
↓=下降沿
Z=高阻
NC=无变化
×=无效
当MR为高电平,OE为低电平时,数据在SHCP上升沿进入移位寄存器,在STCP上升沿输出到并行端口。
(7)程序说明
每当spi_shcp上升沿到来时,spi_ds引脚当前电平值在移位寄存器中左移一位,在下一个上升沿到来时移位寄存器中的所有位都会向左移一位,同时Q7'也会串行输出移位寄存器中高位的值,这样连续进行8次,就可以把数组中每一个数(8位的数)送到移位寄存器;然后当spi_stcp上升沿到来时,移位寄存器的值将会被锁存到锁存器里,并从Q1~7引脚
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA PWM 发生器 设计