当前位置:文档之家› 基于FPGA的PWM模块设计

基于FPGA的PWM模块设计

基于FPGA的PWM模块设计

摘要

增强型脉宽调制模块的设计对于有源滤波器至关重要,能够广泛应用于电力电子技术装置中,有利于电力系统良好运行与城市电网改造,对于谐波治理和电力控制具有重要意义。

采用硬件描述语言VHDL自顶而下编写程序,并用MODELSIM仿真得到波形。设计部分对各子模块的功能及寄存器有详细的描述,程序主要围绕各模块寄存器配置动作展开;仿真部分则选取重要的功能进行分析,并未一一配置寄存器重复工作;仿真结果表明本次设计的模块能够实现基本功能,包括时钟分频、占空比调节、死区实现、错误处理,事件触发以及斩波功能。最后下载到FPGA中,保证快速稳定发出PWM波形。

关键词:增强型脉冲宽度调制,硬件描述语言,现场可编程门阵列

I

DESIGN OF ENHANCED PWM MODULE

BASE ON FPGA

Abstract

EPWM module is vital for active filter, which can be widely used in power electronic technology devices. Active filter is advantageous to the running of power system and urban power network reconstruction, active filter is also important to power harmonic governance and control.

This paper shows the design of enhanced PWM module, program from the top

to bottom by hardware description language VHDL, and then simulate using MODELSIM. The function of each module and detailed description of the register can be found in the design part, procedures mainly revolve around the configuration of each mod registers, part of the code is shown in the paper. Simulation part analyses important functions, and did not repeated work. Simulation results show that the designed module can realize the basic functions, including the clock divider, duty ratio, adjusting, dead zone, error handling, event trigger and chopped wave function.Finally downloaded to the FPGA, generate a stability PWM waveform.

Keywords: EPWM,VHDL,FPGA

II

目录

摘要.................................................... I Abstract................................................. II 1 选题背景. (1)

1.1 有源滤波器 (1)

1.2 FPGA (2)

1.3 脉宽调制PWM (3)

2 方案论证 (5)

2.1 方案综述 (5)

2.2 PWM原理 (5)

2.3 死区原理 (6)

2.4 VHDL语言 (7)

2.5 QUARTUSⅡ (8)

2.6 MODELSIM (9)

3 程序设计 (10)

3.1 顶层模块 (10)

3.2 时间基准子模块 (12)

3.3 计数比较子模块 (15)

3.4 动作限定子模块 (17)

3.5 死区控制子模块 (18)

3.6 PWM斩波器子模块 (20)

3.7 错误控制子模块 (22)

3.8 事件触发子模块 (24)

4 仿真 (27)

4.1 顶层模块 (27)

4.2 时间基准子模块 (27)

4.3 计数比较子模块 (30)

4.4 动作限定子模块 (31)

4.5 死区控制子模块 (35)

4.6 PWM斩波器子模块 (36)

4.7 错误控制子模块 (38)

4.8 事件触发子模块 (39)

5 总结与展望 (42)

致谢 (43)

参考文献 (44)

1选题背景

1.1有源滤波器

本课题来源于65KVA三相三线制有源电力滤波器的研发项目。谐波问题对电力系统和电力用户而言都是重要的问题,也是电力电子领域研究的热点之一。

谐波的危害包括:增加电力设施负荷,降低系统功率因数;引起无功补偿电容器谐振和谐波电流放大;产生脉动转矩致使电动机振动;产生涡流效应;降低设备使用寿命;谐波会改变保护继电器的动作特性;谐波改变了电压或电流的变化率和峰值;使计量仪表特别是感应式电能表产生计量误差;干扰邻近的电力电子设备、工业控制设备和通讯设备,影响设备的正常运行【1】。

有源滤波器是电力系统中重要的电力电子技术应用装置,是保证电力系统良好运行和城市电网改造所迫切需求的技术手段。有源电力滤波器,是采用现代电力电子技术和基于高速DSP器件的数字信号处理技术制成的新型电力谐波治理专用设备。它由指令电流运算电路和补偿电流发生电路两个主要部分组成。指令电流运算电路实时监视线路中的电流,并将模拟电流信号转换为数字信号,送入高速数字信号处理器对信号进行处理,将谐波与基波分离,并以脉宽调制(PWM)信号形式向补偿电流发生电路送出驱动脉冲,驱动IGBT或IPM功率模块,生成与电网谐波电流幅值相等、极性相反的补偿电流注入电网,对谐波电流进行补偿或抵消,主动消除电力谐波【2】。

有源滤波器同无源滤波器比较,治理效果好,主要可以同时滤除多次及高次谐波,不会引起谐振,但是价位相对高。实际应用安全系数很低,国际普遍做法是以变压器升压,来保证可靠性,国家相关部门也要求以变压器升压的形式和有源滤波器结合,治理高压谐波。现在广泛应用于通信,半导体,石化,化纤,钢铁,汽车制造等行业。

1

1.2FPGA

FPGA(Field-Programmable Gate Array),即现场可编程门阵列,它是在PAL、GAL、CPLD等可编程器件的基础上进一步发展的产物。它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点【3】。

高集成度、高速和高可靠性是FPGA最明显的特点,其时钟延迟科大纳秒级,结合其并行工作方式,在超高速应用领域和实时测控方面有非常广阔的应用背景。在高可靠应用领域,如果涉及得当,将不会存在类似于MCU的复位不可靠和PC

可能跑飞等问题。FPGA的高可靠性还表现在,几乎可将整个系统下载与统一芯片中,实现所谓片上系统,从而大大缩小了体积,易于管理和屏蔽【3】。

由于FPGA的集成规模非常大,可利用先进的EDA工具进行电子系统设计和

产品开发,由于开发工具的通用性、设计语言的标准化以及设计过程几乎与所用器件的硬件结构没有关系,所以设计成功的各类逻辑功能软件有很好的兼容性和可移植性,它几乎可以用于任何型号与规模的FPGA中,从而使得产品设计效率

大幅度提高。可以在很短的时间内完成复杂设计。与ASIC设计相比,FPGA显著的优势是开发周期短,投资风险小,产品上市速度快,市场适应能力强和硬件升级回旋余地大,而且当产品定型和产量扩大后,可将生产中达到充分检验的VHDL 设计迅速实现ASIC投产【3】。

作为一种可编程逻辑器件,FPGA在短短二十多年中从电子设计的外围器件逐渐演变为数字系统的核心。伴随半导体工艺技术的进步,FPGA器件的设计技术取得了飞跃发展及突破。通过FPGA器件的发展历程来看,今后仍将朝下以下几个

方向发展:高密度、高速度、宽频带、高保密;低电压、低功耗、低成本、低价格;IP软/硬核复用、系统集成;动态可重构以及单片集群;紧密结合应用需求,多元化发展。

2

1.3脉宽调制PWM

在我国,当前主要的谐波源主要是一些整流设备,如化工、冶金行业的整流设备和各种调速、调压设备以及电力机车。传统的整流方式通常采用二极管整流或相控整流方式,采用二极管整流方式的整流电路存在从电网吸取畸变电流,造成电网的谐波污染,而且直流侧能量无法回馈电网等缺点。采用相控方式的整流电路也存在深度相控下交流侧功率因数很低,因换流引起电网电压波形畸变等缺点。这些整流电路从电网汲取电流的非线性特征,给周围用电设备和公用电网都会带来不利影响【4】。

为了抑制电力电子装置产生的谐波,其中的一种方法就是对整流电路本身进行改进,使其尽量不产生谐波,且电流和电压同相位。这种整流电路称为高功率因数变流器或高功率因数整流电路。高功率因数变流器主要采用PWM整流技术,一般需要使用自关断器件。对电流型整流电路,可直接对各个电力半导体器件的通断进行 PWM调制,使输入电流成为接近正弦且与电源电压同相的PWM波形,从而得到接近1的功率因数。对电压型整流电路,需要将整流电路通过电抗器与电源相连。只要对整流电路各开关器件施以适当的PWM控制,就可以对整流电路网侧交流电流的大小和相位进行控制,不仅可实现交流电流接近正弦波,而且可使交流电流的相位与电源电压同相,即系统的功率因数总是接近于1【5】。

PWM的一个优点是从处理器到被控系统信号都是数字形式的,无需进行数模转换。让信号保持为数字形式可将噪声影响降到最小。噪声只有在强到足以将逻辑1改变为逻辑0或将逻辑0改变为逻辑1时,也才能对数字信号产生影响。

对噪声抵抗能力的增强是PWM相对于模拟控制的另外一个优点,而且这也是在某些时候将PWM用于通信的主要原因。从模拟信号转向PWM可以极大地延长通信距离。在接收端,通过适当的RC或LC网络可以滤除调制高频方波并将信号还原为模拟形式。

3

PWM控制技术主要应用在电力电子技术行业,包括风力发电、电机调速、直流供电等领域,由于其四象限变流的特点,可以反馈再生制动的能量,对于如今国家提出的节能减排有积极意义。

4

2方案论证

2.1方案综述

题目要求清晰,要求用FPGA实现DSP的EPWM模块。掌握PWM原理和死区原理,采用自上而下的方式VHDL语言编写代码。使用QUARTUSⅡ设计与MODELSIM 仿真,并下载到FPGA开发板上实现PWM波形。

传统的电路设计方法都是自底向上的,即首先确定可用的元器件,然后根据这些器件进行逻辑设计,完成各模块后进行连接,最后形成系统。基于EDA技术的所谓的自顶向下的设计方法正好相反,其步骤首先是从整体上对系统设计作详细的规划,然后完成电路系统功能行为方面的设计,一般采用完全独立于具体期间物理结构的硬件描述语言,从系统的基本功能或行为级上对设计的产品进行描述定义,进行多层次的仿真评估,在确保设计的可行性与正确性的前提下,完成功能确认。功能确认后,再利用EDA工具的逻辑综合功能,把功能描述转换成具体目标芯片的网表文件。随着设计流程的下行,设计项目的详细程度逐渐增加,输出给该器件厂商的布局布线适配器,进行逻辑映射及布局布线,再利用产生的仿真文件进行包括功能和是虚的验证,以确保实际系统的性能。

2.2PWM原理

PWM(Pulse Width Modulation)控制是对脉冲的宽度进行调制的技术,即通过对一系列脉冲的宽度进行调制,来等效地获得所需要波形(含形状和幅值)。面积等效原理是PWM控制技术的重要理论基础。冲量相等而形状不同的窄脉冲加在具有惯性的环节上时,其效果基本相同。其中冲量即指窄脉冲的面积;效果基本相同,是指环节的输出响应波形基本相同;如果把各输出波形用傅里叶变换分析,则其低频段非常接近,仅在高频段略有差异。

图2.1.1是一个PWM波代替正弦半波的例子。将正弦半波看成是由N个彼此相连的脉冲宽度为T/2N,但幅值顶部是曲线且大小按正弦规律变化的脉冲序列组成的。把上述脉冲序列利用相同数量的等幅而不等宽的矩形脉冲代替,使矩形脉

5

6

冲的中点和相应正弦波部分的中点重合,且使矩形 脉冲和相应的正弦波部分面积(冲量)相等,这就是PWM 波形【6】。

图2.2.1 PWM 波形示例

2.3 死区原理

图2.3.1 三相三线PWM 整流器 图2.3.2 死区波形

死区时间Td 的加入,会对变换器的波形产生一定的影响,称之为死区效应。三相三线PWM 整流器如图2.3.1所示,以A 相为例,首先分析死区对三相PWM

流器工作过程的影响。规定电流正方向如图2.3.1所示。该桥臂上下两个开关管的理想驱动波形、如图 2.3.2(a)、(b)所示,传统的死区实现方法图2.3.2(c)、(d)所示,时桥臂上下两个开关管的驱动波形为'、'。

当>0时,时刻之前下管导通,电流流过,=0。时刻关断,由于开关周期比基波周期小很多,且有电感L的作用,故认为通过上管的反并联二极管续流。经过死区时间后,在时刻开通管,由于很小,此时仍然认为>0,故仍然是导通,=。可见当>0时,从0变成的时刻为,即由的关断时刻决定【7】【8】。时刻关断,但由于流经,关断不影响电流路径,此时=。经过死区时间后,在时刻开通下管,从换流至,下管接通,=0。可见,由切换成0的时刻是,由的开通时刻决定。

当<0时,也可以作类似的分析,从0变成的时刻为,即由的开通时刻决定;由切换成0的时刻是,由的开通时刻决定。从以上分析可以发现如下的规律:由于交流相电流存在一个续流的阶段,开关周期又比基波周期小很多,故一个开关周期内电流可以看作是方向不变的直流信号,交流侧电压由导通方向与方向一致的开关管的实际开关脉冲决定【9】。

2.4VHDL语言

VHDL主要用于描述数字系统的结构、行为、功能和接口。VHDL的程序结构特点是将一项工程设计或称设计实体分为外部和内部。与其他的硬件描述语言相比,VHDL具有更强的行为描述能力,从而决定了它成为系统设计领域最佳的硬件描述语言【10】。强大的行为描述能力是避开具体的器件结构,从逻辑行为上描述和设计大规模电子系统的重要保证。VHDL既是硬件电路描述语言和设计语言,也是标准的网表格式和仿真语言,具有丰富的仿真语句和库函数。VHDL语句的行为描述能力和程序结构决定了它具有支持大规模设计的分解和已有设计的再利用功能。对于用VHDL完成的一个确定的设计,可以利用EDA工具进行逻辑综合和

7

优化,并自动把VHDL描述设计转变成门极网表。这种方式突破了门级设计的瓶颈,极大地减少了电路设计的时间和可能发生的错误,降低了开发成本。VHDL

对设计的描述具有相对独立性,设计者可以不懂硬件结构,也不必管最终设计实现的目标器件是什么而进行独立设计。由于VHDL具有类属描述语句和子程序调用功能,对于已完成的设计,在不改变源程序的条件下,秩序改变端口类属参量或函数,就能轻易地改变设计的规模和结构【11】【12】。

2.5QUARTUSⅡ

Quartus II 是Altera公司的综合性PLD/FPGA开发软件,支持原理图、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多种设计输入形式,内嵌自有的综合器以及仿真器,可以完成从设计输入到硬件配置的完整PLD设计流程。

Quartus II提供了完全集成且与电路结构无关的开发包环境,具有数字逻辑设计的全部特性,包括:可利用原理图、结构框图、VerilogHDL、AHDL和VHDL 完成电路描述,并将其保存为设计实体文件;芯片(电路)平面布局连线编辑;LogicLock增量设计方法,用户可建立并优化系统,然后添加对原始系统的性能影响较小或无影响的后续模块;功能强大的逻辑综合工具;完备的电路功能仿真与时序逻辑仿真工具;定时/时序分析与关键路径延时分析;可使用SignalTap II 逻辑分析工具进行嵌入式的逻辑分析;支持软件源文件的添加和创建,并将它们链接起来生成编程文件;使用组合编译方式可一次完成整体设计流程;自动定位编译错误;高效的期间编程与验证工具;可读入标准的EDIF网表文件、VHDL网表文件和Verilog网表文件;能生成第三方EDA软件使用的VHDL网表文件和Verilog网表文件。

8

2.6MODELSIM

Mentor公司的ModelSim是业界最优秀的HDL语言仿真软件,它能提供友好的仿真环境,是业界唯一的单内核支持VHDL和Verilog混合仿真的仿真器。它采用直接优化的编译技术、Tcl/Tk技术、和单一内核仿真技术,编译仿真速度快,编译的代码与平台无关,便于保护IP核,个性化的图形界面和用户接口,为用户加快调错提供强有力的手段,是FPGA/ASIC设计的首选仿真软件。

主要特点包括:RTL和门级优化,本地编译结构,编译仿真速度快,跨平台跨版本仿真;单内核VHDL和Verilog混合仿真;源代码模版和助手,项目管理;集成了性能分析、波形比较、代码覆盖、数据流ChaseX、Signal Spy、虚拟对象Virtual Object、Memory窗口、Assertion窗口、源码窗口显示信号值、信号条件断点等众多调试功能;C和Tcl/Tk接口,C调试;对SystemC的直接支持,和HDL任意混合;支持SystemVerilog的设计功能;对系统级描述语言的最全面支持,SystemVerilog,SystemC,PSL;ASIC Sign off。可以单独或同时进行行为(behavioral)、RTL级、和门级(gate-level)的代码。

9

10

3 程序设计

3.1 顶层模块

DSP 中EPWM 模块表现的是一个完整的PWM 通道由两个PWM 输出EPWMxA 和EPWMxB 。EPWM 模块是通过同步时钟方案连在一起的,必要时允许他们当做一个信号系统来运行。每个EPWM 有7个子模块:时间基准子模块、计数比较模块、动作限定子模块、死区控制子模块、PWM 斩波器子模块、错误控制子模块和事件触发子模块。结构图如图3.1.1所示。

图3.1.1EPWM 模块结构图

EPWM 模块具有以下特点:专用的16位时间基准计数器,控制输出周期和频率;两个PWM 输出(ePWMxA 和ePWMxB);异步控制PWM ;可编程超前和滞后相位控制;同步相位;双边沿延时控制的死区产生;可编程错误定位;错误条件可以强制PWM 输出高、低和高阻态;所有的事件都可以触发CPU 中断和ADC 开始转换信号;高频PWM 斩波,用于变换器门驱动【13】。

模块的输入信号主要有:基于时间的同步输入信号EPWMxSYNCI 和六路故障区输入信号(TZ1,TZ2,TZ3,TZ4,TZ5,TZ6)。同步信号雏菊花形将EPWM 模块连接在一起,每个模块可以配置成使用或忽略同步信号。故障区信号TZx 警告

EPWM

11

模块有外部故障发生,设备的每个模块都可以设置成使用或者忽略任何故障区信号。

模块的输出信号主要有:基于时间的同步输出信号EPWMxSYNCO ,两路PWM 输出信号EPWMxA 和EPWMxB ,两路中断信号EPWMxTZINT 和EPWMxINT ,两路转换开始信号EPWMxSOCA 和EPWMxSOCB 。每个EPWM 模块有两个ADC 开始转换信号,任何EPWM 模块都可以触发任何一个序列。哪个事件触发ADC 开始转换可以在事件触发子模块中配置。

图3.1.2 顶层模块实体

定义的顶层模块实体如图3.1.2所示,其中sys_clk 是系统时钟。EPWM 模块本来还需要32位的数据和地址总线来配置寄存器。由于实验硬件条件限制,我设计了7位寄存器地址总线regaddress ,4位寄存器数据总线regdata 。每个

图3.1.3 写入寄存器代码示例

16位寄存器分四次写入,由regaddress 的0、1两位来决定写入的是寄存器的高四位,次高四位,次低四位,低四位。其余五位采用二进制编码分别指向23

12

寄存器,多余的地址闲置。Address_wren 和data_wren 分别是地址使能和数据使能信号,以避免寄存器数据被随便更改。其余便是设计一些信号,赋值各个实体的端口,按照图3.1.1所示的结构串联起来得到顶层模块。配置寄存器的代码示例如图3.1.3所示。

3.2 时间基准子模块

时间基准子模块用来决定EPWM 模块的事件时序,通过同步逻辑信号可以实现多个EPWM 模块以相同时间基准工作,图3.2.1是时间基准模块的信号图。用户通过对时间基准模块的设定和配置可以实现以下功能:确定EPWM 时间基准寄存器的频率或周期;与其他EPWM 模块的时间基准同步;与其他EPWM 模块的相位关系,设置时间基准计数模式,如增、减,增减模式;产生时间基准计数等于周期信号(CTR=PRD )和时间基准计数等于0信号(CTR=ZERO );是指时间基准速度【13】。

图3.2.1 时间基准寄存器信号与寄存器

子模块输入信号主要有:系统时钟信号SYSCLK,基于时间的同步输入信号EPWMxSYNCI,三个寄存器写入信号分别配置周期相位和控制寄存器,比较模块产生的比较信号CTR_CMPB,在适当的情况下作为同步输出信号的源。子模块的输出信号主要有:基于时间的同步输入信号EPWMxSYNCO,时间基准计数器等于周期信号CTR_PRD,时间基准计数器等于零信号CTR_ZERO,时间基准计数器等于最大值信号CTR_MAX,时间基准计数方向信号CTR_DIR,时间基准时钟信号TBCLK和时

间基准计数器计数值信号TBCTR。时间基准时钟是按时钟信号的预定处理得到的,它可以被EPWM内所有模块运用,该时钟决定时间基准计数器递增或递减的速度。

图3.2.2时间基准子模块实体

时间基准子模块有五个寄存器。时间基准周期寄存器(TBPRD),这些位设

定时间基准计数器的周期,相应地决定PWM的频率,该寄存器是否映射由

TBCTL[PRDLD]位决定。默认情况下寄存器是映射的。时间基准相位寄存器(TBPHS),相对于那些提供同步输入信号的时间基准而言,这些位设定选定EPWM的时间基

准计数器相位。时间基准计数寄存器(TBCTR),读取这些位得到目前时间基准

计数器的值,向这些位写入设定当前时间基准计数器的值。只要写入操作发生,数据更新将发生,写入不和时间基准时钟同步而且寄存器不被映射。时间基准状态寄存器(TBSTS),低三位分别为时间基准计数器最大锁定状态位,输入同步

锁定状态位,时间基准计数器方向状态位。

13

时间基准控制寄存器(TBCTL)是时基子模块工作的核心。整个设计都是围绕TBCTL的配置来进行的。其中0、1配置计数器模式可以配置成递增计数模式(时间基准计数器从零递增到周期值,当达到周期值,时间基准计数器复位置零,从此开始重新递增计数,重复运行),递减计数模式(时间基准计数器从周期值递减到零,当达到零值时,时间基准计数器重置周期值,从此再重新递减重复运行),递增递减计数模式(时间基准计数器从零递增到周期值,当达到周期值是,时间基准计数器开始递减直至零,此时再递增重复运行)。判断控制寄存器的第7至12位,可以得到时钟预分频的系数,根据公式TBCLK=SYSCLKOUT/(HSPCLKDIV*CLKDIV)得到时基时钟,如图3.2.3所示。配置第2、3、13位可以得到相位同步的方案,尤其要注意增减计数模式同步后由第十三位决定相位加载后的计数方向。

图3.2.3 时钟分频代码

14

15

基于时间的同步输出信号EPWMxSYNCO 可以由第4、5两位选择信号源,从EPWMxSYNCI ,CTR=0,CTR=CMPB 三者中选一个座位EPWMxSYNCO 的信号源。时间基准计数器等于周期信号CTR_PRD ,时间基准计数器等于零信号CTR_ZERO 和时间基准计数器等于最大值信号CTR_MAX 得到方式则是通过判断时基计数器与周期,零,最大值比较产生。时间基准计数方向信号CTR_DIR ,若是递增模式置为‘1’,递减模式置为‘0’,增减模式中,当计数值等于周期则置为‘1’,计数值等于零则置为‘0’,若有相位同步发生则计数方向根据第十三位决定。时间基准模块的设计是否合理决定了整个模块的可靠性。

3.3 计数比较子模块

计数比较子模块以时间基准计数器计数值作为输入,该值连续同计数比较器A 和计数比较器B 寄存器进行比较,当时间基准计数器等于其中一个比较寄存器时,比较寄存器单元产生一个相应事件。用户通过对计数比较模块的设定和配置可以实现以下功能:基于CMPA 和CMPB 寄存器所确定的可编程时间标志产生相应

图3.3.2计数比较子模块功能框图

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