您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 经营企划 > FPGA第三讲课件――产生PWM、SPWM波
FPGA产生PWM、SPWM波FPGA---PWMPWM是脉冲宽度调制(PulseWidthModulation)的简称,它在自动控制和计算机技术领域中都有广泛的应用。在电机控制、交流检测等实际应用系统中,PWM是整个系统的技术核心。因此,设计支持PWM输出的芯片(或独立的电路功能模块)实用价值很大。PWM调制原理PWM波通常由一列占空比不同的矩形脉冲构成,其占空比与信号的瞬时采样值成比例。图1所示为脉冲宽度调制系统的原理框图和波形图。该系统有一个比较器和一个周期为Ts的锯齿波发生器组成。语音信号如果大于锯齿波信号,比较器输出正常数A,否则输出0。因此,从图1中可以看出,比较器输出一列下降沿调制的脉冲宽度调制波。PWM技术最初是在无线电技术中用于信号的调制,后来在低频大功率电路中得到了很好的应用。在直流伺服控制系统中,通过专用集成芯片或中小规模数字集成电路构成的传统PWM控制电路往往存在电路设计复杂、体积大、抗干扰能力差以及设计困难、设计周期长等缺点,因此,PWM控制电路的模块化、集成化已成为发展趋势。它不仅可以使系统体积减小、重量减轻且功耗降低,同时可使系统的可靠性大大提高。随着电子技术的发展,特别是ASIC(专用集成电路)设计技术的日趋完善,数字化的EDA(电子设计自动化)工具给电子设计带来了巨大变革,在水声和超声、电机控制等许多应用场合,需要产生多路频率和脉冲宽度可调的PWM波形,这可通过FPGA丰富的硬件资源和可以配置I/O引脚来实现。嵌入式系统中FPGA的应用设计关键是系统软硬件功能的划分。1.单路PWM发生器结构和原理图2是实现的单路PWM硬件结构框图。CPU通过数据线向FPGA写入定时常数控制PWM的频率、初始相位和占空比,并通过外部启动信号控制PWM的启动。系统的工作过程:采用50M时钟脉冲信号作为PWM生成器的时钟信号。首先CPU计算出所需要输出PWM的频率,初始相位和占空比信息,通过数据线向FPGA内部寄存器写入以上信息,并通过外部启动信号控制PWM的启动。2.多路PWM发生器的实现原理通过上面的设计可以实现单路的PWM的FPGA设计,利用FPGA来扩展I/O接口,可实现多路PWM(脉宽调制)输出,在超声、电机控制等许多应用场合,需要产生多路频率,和脉冲宽度可调的PWM波形。应用实现的单路的PWM的设计,可以推广到多路PWM设计,图4为多路PWM的系统原理框图。通过一个主控内部计算产生输出生成PWM所需的频率、初始相位、占空比等参数,后级可并联数个FPGA芯片,来生成PWM波形,每片FPGA内部又可以生成6-10路PWM信号,通过级联FPGA,可以产生多路不同频率、占空比、初始相位的PWM信号,有较好的同步及一致性,对于需要多路PWM信号的系统实现有着很强的实用性。FPGA---SPWM正弦脉宽调制(SPWM)技术在交流调速系统中得到广泛应用,但SPWM的波形生成是应用中一个难点,目前形成SPWM的方法有:(1)由分立元件构成,结构简单,但可靠性和精度均不能满足要求;(2)采用计算机计算或查表方式,省却了硬件电路,但CPU负担很重;(3)采用专用集成电路,如SLE4520、SA4828等,但其功能固定,可扩展性差;(4)采用FPGA(现场可编门阵列),具有速度快、精度高且可以在线编程修改等优点,是一种较好的方案。SPWM原理;用输出的正弦信号作为调制波,用高频三角波作为载波.SPWM两个参数:载波比:N=F三角/F正弦(最好为3的倍数)调制度:M=V正弦/V三角(1)2SPWM波形控制器设计系统由直接频率生成器产生低频正弦信号,然后与累加累减计数器产生的数字高速三角波进行高速比较而产生SPWM,再经过死区控制模块产生死区。2.1系统构图图2是SPWM波形控制器结构框图。SPWM波形产生设计SPWM波是根据三角载波与正弦调制波的交点而得到的一系列脉冲,其幅度不变而宽度按正弦规律变化。利用FPGA生成SPWM信号,需要将数字三角载波数据与正弦调制波数据进行实时比较。当三角波计数器数据比正弦调制波数据大时,输出1;当三角波计数器数据比正弦调制波数据小时,输出0。由此可以产生宽度按正弦变化但幅度不变的SPWM信号。5结论利用FPGA的高速、高集成度、易于编程的特点,设计一个SPWM波形控制器,既可以生成三相SPWM波形,也可以产生单相SPWM,只需改变程序即可。仿真和测试验证了设计的有效性,可以很方便地和单片机构成通用的交流调速系统,具有较好的应用价值。PWM是通过改变输出方波的占空比来改变等效的输出电压。广泛地用于电动机调速和阀门控制,比如我们现在的电动车电机调速就是使用这种方式。SPWM,就是在PWM的基础上改变了调制脉冲方式,脉冲宽度时间占空比按正弦规率排列,这样输出波形经过适当的滤波可以做到正弦波输出。它广泛地用于直流交流逆变器等,比如高级一些的UPS就是一个例子。三相SPWM是使用SPWM模拟市电的三相输出,在变频器领域被广泛的采用。宏功能模块与IP应用Altera提供多种方法来获取AlteraMegafunctionPartnersProgram(AMPP™)和MegaCore®宏功能模块,这些函数经严格的测试和优化,可以在Altera特定器件结构中发挥出最佳性能。可以使用这些知识产权的参数化模块减少设计和测试的时间。MegaCore和AMPP宏功能模块包括应用于通信、数字信号处理(DSP)、PCI和其它总线界面,以及存储器控制器中的宏功能模块。使用MegaWizardPlug-InManager输出文件.bsf:BlockEditor中使用的宏功能模块的符号(元件)。输出文件.cmp:组件申明文件。输出文件.inc:宏功能模块包装文件中模块的AHDL包含文件。输出文件.tdf:要在AHDL设计中实例化的宏功能模块包装文件。输出文件.vhd:要在VHDL设计中实例化的宏功能模块包装文件。输出文件.v:要在VerilogHDL设计中实例化的宏功能模块包装文件。输出文件_bb.v:VerilogHDL设计所用宏功能模块包装文件中模块的空体或black-box申明,用于在使用EDA综合工具时指定端口方向。输出文件_inst.tdf:宏功能模块包装文件中子设计的AHDL例化示例。输出文件_inst.vhd:宏功能模块包装文件中实体的VHDL例化示例。输出文件_inst.v:宏功能模块包装文件中模块的VerilogHDL例化示例。LPM随机存储器的设置和调用在此首先确定图7-1中ROM内的波形数据文件。QuartusII能接受的LPM_ROM中的初始化数据文件的格式有2种:MemoryInitializationFile(.mif)格式和Hexadecimal(Intel-Format)File(.hex)格式。以下以64点正弦波形数据为例分别说明。实际应用中只要使用其中一种格式的文件即可。首先在QuartusII中选择ROM数据文件编辑窗,即在File菜单中选择New,并在New窗中选择Otherfiles页,再选择MemoryInitializationFile项,单击OK按钮后产生ROM数据文件大小选择窗。正余弦mif文件生成器1.表格编辑法2.文件编辑法文件编辑器设计MIF文件,其格式如图所示。其中地址和数据都为十六进制,冒号左边是地址值,右边是对应的数据,并以分号结尾。3.程序生成法MIF文件也可以用程序语言生成,如C程序。例是产生正弦波数据值的C程序:【例】#includestdio.h#includemath.hmain(){inti;floats;for(i=0;i1024;i++){s=sin(atan(1)*8*i/1024);printf(%d:%d;\n,i,(int)((s+1)*1023/2));}}把上述程序编译成程序后,可在DOS命令行下执行命令:romgensin_rom.mif;将生成sin_rom.mif文件,再加上.mif文件的头部说明即可。romgen假设是编译后的程序名。定制LPM_ROM元件设计步骤如下:(1)打开MegaWizardPlug-InManager初始对话框。在Tools菜单中选择MegaWizardPlug-InManager,产生如图所示的界面,选择Createanewcustom…项(如果要修改一个已编辑好的LPM模块,则选择Editanexistingcustom…项),即定制一个新的模块。单击Next按钮后,产生如图7-6所示的对话框,在左栏选择Storage项下的LPM_ROM,再选择Cyclone器件和VHDL语言方式;最后输入ROM文件存放的路径和文件名:d:\sin_gnt\data_rom.vhd(V)(定制的ROM元件文件名),单击Next按钮。(2)选择ROM控制线、地址线和数据线。在如图7-7和图7-8所示的对话框中选择地址线位宽和ROM中数据数分别为6和64;选择地址锁存控制信号inclock。(3)单击Next按钮后出现图7-9的界面。在“WhatshouldtheRAM...”栏选择默认的“Auto”。在适配中,QuartusII将根据选中的目标器件系列,自动确定嵌入RAM模块的类型(如ACEX1K系列为EAB;APEX20K系列为ESB;Cyclone系列为M4K等)。在图7-9的“Doyouwantto...”栏选择打勾“yes,usethisfileforthememorycontent”项,并按“Browse”钮,选择指定路径上的文件sdata.hex。在“AlowIn-SystemMemory...”栏选择打勾,并在“TheInstanceIDofthisrom”栏键入“rom1”,作为此ROM的ID名称。通过这个设置,可以允许QuartusII能通过JTAG口对下载于FPGA中的此ROM进行“在系统”测试和读写(如果需要读写多个嵌入的LPM_ROM或LPM_RAM,ID号rom1就作为此ROM的识别名称),这种读写不影响FPGA中电子系统的正常工作。最后点击图7-9的Next按钮,再点击图7-10的Finish钮后完成ROM定制。输入设计文件-原理图输入法1)新建工程之后,便可以进行电路系统设计文件的输入。选择file菜单中的New命令,弹出如图所示的新建设计文件类型选择窗口。产生一个新的图表模块/原理图文件菜单:FileNewBlock/Schematicdocument(原理图输入法为例子讲述)2)选择New对话框中的DeviceDesignfiles页下的BlockDiagram/SchematicFile,点击OK,打开如图所示的图形编辑器对话框,进行设计文件输入。3)在图形编辑窗口中的任何一个位置双击鼠标,或点击图中的“符号工具”按钮,或选择菜单Edit下的Insertsymbol命令,弹出如右图所示的元件选择窗口Symbol对话框。4)用鼠标点击单元库前面的加号(+),库中的元件符号以列表的方式显示出来,选择所需要的元件符号,该符号显示在Symbol对话框的右边,点击OK按钮,添加相应元件符号在图像编辑工作区中,连接原理图。原理图输入法-优缺点:优点:1)可以与传统的数字电路设计法接轨,即使用传统设计方法得到电路原理图,然后在QuartusⅡ平台完成设计电路的输入、仿真验证和综合,最后下载到目标芯片中。2)它将传统的电路设计过程的布局布线、绘制印刷电路板、电路焊接、电路加电测试等过程取消,提高了设计效率,降低了设计成本,减轻了设计者的劳动强度。缺点:1)原理图设计方法没有实现标准化,不同的EDA软件中的图形处理工具对图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差,难以交换和管理。2)由于兼容性不好,性能优秀的电路模块的移植和再利用非常困难难以实现用户所希望的面积、速度以及不同风格的综合优化3)原理图输入的设计方法不能实现真实意义上的自顶向下的
本文标题:FPGA第三讲课件――产生PWM、SPWM波
链接地址:https://www.777doc.com/doc-3416424 .html