FPGA第三讲课件-产生PWM、SPWM波.ppt

上传人:xt****7 文档编号:17039109 上传时间:2020-11-07 格式:PPT 页数:39 大小:2.39MB
返回 下载 相关 举报
FPGA第三讲课件-产生PWM、SPWM波.ppt_第1页
第1页 / 共39页
FPGA第三讲课件-产生PWM、SPWM波.ppt_第2页
第2页 / 共39页
FPGA第三讲课件-产生PWM、SPWM波.ppt_第3页
第3页 / 共39页
点击查看更多>>
资源描述
FPGA产生 PWM、 SPWM波 FPGA-PWM PWM是脉冲宽度调制( Pulse Width Modulation)的简称,它在自动控 制和计算机技术领域中都有广泛的应用。在电机控制、交流检测等实际 应用系统中, 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) 2 SPWM波形控制器设计 系统由直接频率生成器产生低频正弦信号 ,然后与累加累减计数器产生的数字高速三 角波进行高速比较而产生 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提供多种方法来获取 Altera Megafunction Partners Program(AMPP) 和 MegaCore宏功能模块,这些函数经严格的测试和优化,可以在 Altera特定器件 结构中发挥出最佳性能。可以使用这些知识产权的参数化模块减少设计和测试的 时间。 MegaCore和 AMPP宏功能模块包括应用于通信、数字信号处理 (DSP)、 PCI和其它总线界面,以及存储器控制器中的宏功能模块。 使用 MegaWizard Plug-In Manager .bsf : Block Editor中使用的宏功能模块的符号(元件)。 .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 种: Memory Initialization File( .mif)格式和 Hexadecimal( Intel-Format) File( .hex)格式。以下以 64 点正弦波形数据为例分 别说明。 实际应用中只要使用其中一种格式的文件即可。 首先在 Quartus II 中选择 ROM 数据文件编辑窗, 即在 File 菜单中选择 New, 并在 New窗中选择 Other files 页,再选择 Memory Initialization File 项,单击 OK按钮后产生 ROM 数据文件大小选择窗。 正余弦 mif文件生成器 1.表格编辑法 2.文件编辑法 文件编辑器设计 MIF 文件,其格式如图所示。其中地址和数据都为十六进制,冒号 左边是地址值,右边是对应的数据,并以分号结尾。 3.程序生成法 MIF 文件也可以用程序语言生成,如 C 程序。例 是产生正弦波数据值的 C 程序: 【 例 】 #include #include math.h main() int i;float s; for(i=0;i sin_rom.mif; 将生成 sin_rom.mif 文件, 再加上 .mif 文件的头部说明即可。 romgen 假设是编译后的程 序名。 定制 LPM_ROM元件 设计步骤如下: ( 1)打开 MegaWizard Plug-In Manager 初始对话框。在 Tools 菜单中选 择 MegaWizard Plug-In Manager,产生如图所示的界面,选择 Create a new custom 项(如果要修改一个已编辑好的 LPM模块,则选择 Edit an existing custom 项) ,即定制一个新的模块。单击 Next 按钮后, 产生如图 7-6 所示的对话框,在左栏选择 Storage 项下的 LPM_ROM, 再选择 Cyclone 器件和 VHDL 语言方式;最后输入 ROM 文件存放的路 径和文件名: d:sin_gntdata_rom.vhd( V)(定制的 ROM 元件文件 名) ,单击 Next 按钮。 ( 2)选择 ROM 控制线、地址线和数据线。在如图 7-7 和图 7-8 所示的对话框 中选择地址线位宽和 ROM 中数据数分别为 6 和 64;选择地址锁存控制信号 inclock。 ( 3)单击 Next按钮后出现图 7-9的界面。在“ What should the RAM.”栏选择 默认的“ Auto”。在适配中, Quartus II将根据选中的目标器件系列,自动确定 嵌入 RAM模块的类型(如 ACEX1K系列为 EAB; APEX20K系列为 ESB; Cyclone系列为 M4K等)。 在图 7-9的“ Do you want to.”栏选择打勾“ yes, use this file for the memorycontent”项,并按“ Browse”钮,选择指定路径上的文件 sdata.hex。 在 “ Alow In-System Memory.”栏选择打勾,并在“ The Instance ID of this rom”栏键 入“ rom1”,作为此 ROM的 ID名称。通过这个设置,可以允许 Quartus II能通过 JTAG口对下载于 FPGA中的此 ROM进行“在系统”测试和读写(如果需要读写多 个嵌入的 LPM_ROM或 LPM_RAM, ID号 rom1就作为此 ROM的识别名称),这种 读写不影响 FPGA中电子系统的正常工作。最后点击图 7-9的 Next按钮,再点击图 7- 10的 Finish 钮后完成 ROM定制。 输入设计文件原理图输入法 1)新建工程之后,便可以进行电路系统设计文件的输入。选择 file菜单 中的 New命令,弹出如图所示的新建设计文件类型选择窗口。 产生一个 新的图表模块 /原理图文件菜单 : File New Block/Schematic document( 原理图输入法为例子讲述 ) 2)选择 New对话框中的 Device Design files页下的 Block Diagram/Schematic File, 点击 OK,打开如图所示的图形编辑器对话框,进行设计文件输入。 3)在图形编辑窗口中的任何一个位置双击鼠标, 或点击图中的 “ 符 号 工 具 ” 按钮 , 或选择菜 单 Edit下的 Insert symbol命令, 弹出如 右 图所示的 元件 选择窗口 Symbol 对话 框。 4)用鼠标点击单元库前面的加号 (+),库中的元件符号以列表的方式显示出来,选择 所需要的元件符号,该符号显示在 Symbol对话框的右边,点击 OK按钮,添加相应元件 符号在图像编辑工作区中,连接原理图。 原理图输入法优缺点: 优点: 1)可以与传统的数字电路设计法接轨,即使用传统设计方法得到电路原理 图,然后在 Quartus 平台完成设计电路的输入、仿真验证和综合,最后下载到目 标芯片中。 2) 它将传统的电路设计过程的布局布线、绘制印刷电路板、电路焊接、 电路加电测试等过程取消,提高了设计效率,降低了设计成本,减轻了设计者的劳 动强度。 缺点: 1)原理图设计方法没有实现标准化,不同的 EDA软件中的图形处理工具对 图形的设计规则、存档格式和图形编译方式都不同,因此兼容性差,难以交换和管 理。 2)由于兼容性不好,性能优秀的电路模块的移植和再利用非常困难难以实 现用户所希望的面积、速度以及不同风格的综合优化 3)原理图输入的设计方法不能实现真实意义上的自顶向下的设计方案,无 法建立行为模型,从而偏离了电子设计自动化最本质的涵义。 Quartus 编译器的主要任务是对设计项目进行检查并完成逻辑综合,同时将项目 最终设计结果生成器件的下载文件。编译开始前,可以先对工程的参数进行设置。 Quartus 软件中的编译类型有全编译和分步编译两种。 选择 Quartus 主窗口 Process菜单下 Start Compilation命令,或者在主窗口 的工 具栏 上直接点击图标 可以进行全编译 全 编译的过程包括分析与综合 ( Analysis & Synthesis) 、适配 ( Fitter) 、编程 ( Assembler) 、时序分析 (Classical Timing Analysis)这 4个环节 ,而这 4个环节各 自对应相应的菜单命令,可以单独分步执行,也就是分步编译。 编译设计文件 分步编译就是使用对应命令分步执行对应的编译环节,每 完成一个编译环节,生成一个对应的编译报告。分步编译跟全 编译一样分为四步: 1、 分析与综合 ( Analysis & Synthesis) :设计文件进行分 析和检查输入文件是否有错误,对应的菜单命令是 Quartus 主 窗口 Process菜单下 StartStart Analysis & Synthesis, 对应的 快捷图标是 在主窗口 的工具栏 上 的 ; 2、适配( Fitter) :在适配过程中,完成设计逻辑器件中的 布局布线、选择适当的内部互连路径、引脚分配、逻辑元件分 配等,对应的菜单命令是 Quartus 主窗口 Process菜单下 StartStart Fitter ;(注:两种编译方式引脚分配有所区别 ) 3、 编程 ( Assembler) : 产生多种形式的器件编程映像文件 ,通过软件下载 到目标器件当中去,应的菜单命令是 Quartus 主窗口 Process菜单下 StartStart Assembler ; 4、 时序分析 (Classical Timing Analyzer) :计算给定设计与器件上的延时, 完成设计分析的时序分析和所有逻辑的性能分析,菜单命令是 Quartus 主窗 口 Process菜单下 StartStart Classical Timing Analyzer ,对应的快捷图标是 在主窗口 的工具栏 上 的 。 编译完成以后,编译报告窗口 Compilation Report会报告工程文件编译的相关 信息,如编译的顶层文件名、目标芯片的信号、引脚的数目等等 。 全编译操作简单,适合简单的设计。对于复杂的设计,选择分步编译 可以及时发现问题,提高设计纠错的效率,从而提高设计效率。 分配引脚 为了观察编译器自动指定引脚分配情况: 使用命令 Assignments Pin Planner 打开引脚规划器( Pin Planner) 观察引脚分配结果的方法: 鼠标移至已被分配的引脚(涂有深色)将显示对应端口名称。 编程下载设计文件 对设计进行验证后,即可对目标器件进行编程和配置,下载 设计文件到硬件中进行硬件验证。 Quartus 编程器 Programmer最常用的编程模式是 JTAG模 式。 JTAG模式主要用在调试阶段,主动串行编程模式用于板级 调试无误后将用户程序固化在串行配置芯片 EPCS中。 1、 JTAG编程下载模式 此方式的操作步骤主要分为 3步: 1.选择 Quartus 主窗口 的 Tools菜单下的 Programmer命令或点击 图标,进入器 件编程和配置对话框。如果此对话框中的 Hardware Setup后为“ No Hardware”, 则需要选择编程的硬件。点击 Hardware Setup,进入 Hardware Setup对话框,下 页图所示,在此添加硬件设备。 2.配置编程硬件后,选择下载模式,在 Mode中指定的编程模式为 JTAG模式; 3.确定编程模式后,单击 添加相应的 counter.sof编程文件,选中 counter.sof文件后的 Program/Configure选项,然后点击 图标下载设计 文件到器件中, Process进度条中显示编程进度,编程下载完成后就可以进行目标 芯片的硬件验证了。 1、 JTAG编程下载模式 AS编程下载 选择 AS模式下载,注意在之前你的下载线一定要设置好。如果你的配置 芯片是 EPCS4,就不用做那个复杂的事情,就可以直接下载。开发软件 默认的就是 EPCS4 按照一般编程逻辑设计的步骤,利用 Quartus 软件进行开发是可以分为以 下几个步骤: ( 1)输入设计文件(编写 VHDL程序或原理图文件等) ( 2)编译设计文件 【 使用 Compiler】 ; ( 3)仿真设计文件 【 使用 Waveform ditor,Simulator】 ; ( 4)安排芯片管脚位置 【 使用 FloorplanEditor】 ; ( 5)编程下载设计文件至芯片 【 使用 Programmer】 。 QUARTUS2 设计流程小结
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!