基于FPGA的SPWM波形发生器_第1页
基于FPGA的SPWM波形发生器_第2页
基于FPGA的SPWM波形发生器_第3页
基于FPGA的SPWM波形发生器_第4页
基于FPGA的SPWM波形发生器_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SPWM波形发生器(设实验箱频率=50MHz)。第2页数字电子技术课程设计报告基于FPGA的SPWM波形发生器目录一.设计题目 34076二.设计原理 36609三.设计模块 415515四.设计成果 624064(1)仿真结果 515090(2)实物图 76609五.设计总结 8设计题目利用FPGA设计正弦波发生器,要求采用FPGA的IO口输出一个SPWM波形,通过RC滤波器滤波后,变为正弦波。正弦波发生器的输出正弦波频率可根据FPGA的IO口输入。利用FPGA的8个IO口,将0-256Hz的频率分为256个档位。例如当IO口输入的数字为00000010时,输出频率为2Hz的正弦波。要求利用Quartus软件设计FPGA内部硬件结构,利用自制的万用板电路焊接8个0/1开关和输出滤波器。最后用杜邦线将FPGA和万用板连接起来,实现正弦波输出。设计原理1SPWM原理SPWM用输出的正弦信号作为调制波,用高频三角波作为载波,控制逆变器的一个桥臂的上、下两个开关管导通与关断。如果在半个正弦周期内,只有上(下)桥臂的开关管反复通断,下(上)桥臂开关管动作,则称为单极式SPWM。如果在整个周期内,上、下桥臂的开关管交替导通与关断,即上通下断和上断下通的状态反复切换,则称为双极式SPWM。图1给出了双极式SPWM的原理示意图。当载波与调制波相交时,由该交点确定逆变器一个桥臂开关器件的开关动作时刻及开关通断状态,获得一系列宽度不等的正负矩形脉冲电压波形。该脉冲序列的特点是等幅不等宽,其宽度按正弦规律变化;在正弦波半个周期内,正负脉冲的面积总和与正弦波的面积相等。SPWM调制的理论基础是面积等效原则,图1中横轴代表时间,因此SPWM的理论依据实际是时间平均等效原理。图1SPWM产生原理图可以证明,当脉冲数足够多时,可以认为逆变器输出电压的基波幅值和调制波幅值是相等的,即SPWM逆变器输出的脉冲波的基波幅值就是调制时要求的等效正弦波。2SPWM波形控制器设计系统由利用ROM存储的正弦波数据与三角波数据进行高速比较而产生SPWM波形。2.1系统构图频率生频率生成正弦波数据三角波比较SPWM波形 调用图2SPWM波形控制器结构框图。2.2SPWM波形产生设计SPWM波是根据三角载波与正弦调制波的交点而得到的一系列脉冲,其幅度不变而宽度按正弦规律变化。利用FPGA生成SPWM信号,需要将数字三角载波数据与正弦调制波数据进行实时比较。当三角波计数器数据比正弦调制波数据大时,输出1;当三角波计数器数据比正弦调制波数据小时,输出0。由此可以产生宽度按正弦变化但幅度不变的SPWM信号。图3SPWM模块的原理图设计模块3.1.1分频模块该模块根据输入的用八位二进制表示的目标频率(control),将FPGA给予的50MHz的高频脉冲Clk分频为不同频率的方波脉冲信号clkout,clkout将作为正弦波地址分配模块的输入,clkout的频率用于确定之后正弦波调用地址的速度。设方波脉冲信号clkout的频率为fo,Clk输入端每接收到一个上升沿信号,判断一次cout中间变量的值,直到将50MHz的脉冲分为频率为fo的脉冲信号。 3.1.2正弦波(三角波)地址分配模块该模块作为地址译码器,根据CP输入端的clkout信号频率决定调用地址的快慢,通过地址分配将ROM里的128个数据依次循环输出。3.1.3正弦波数据模块该模块通过生成mif文件,将128个组成正弦波的数据存放在ROM里面。当地址分配模块的地址译码器向该模块发送调用地址信息时,输出相应地址的存放数据。循环往复,输出完整的正弦波数据。调用地址的快慢决定了输出数据点的时间间隔,由此决定了不同时间点对应的正弦波数据的不同,即正弦波数据频率的不同。分频模块中提到的clkout的频率fo经化简后可得:又因为128个脉冲调用128个数据才能组成完整正弦波,故fo是输出正弦波数据频率f的128倍。由此,实现了通过控制输入端的八位二进制数组输出1~256Hz的不同频率的正弦波。3.1.4三角波模块与正弦波模块同理定制ROM,但由于三角波作为载波需要较高的频率,故其CP输入端直接连接50MHz的脉冲信号3.1.5比较模块如果输入的正弦波幅值比三角波大,则输出为1,若输入的正弦波幅值比三角波小,则输出为0.3.2滤波模块二阶有源低通滤波器的设计:根据f=1/2πRC,C取4.7uf,频率取300Ω,计算得R=112Hz,取R=110Ω。设计成果24064(1)仿真结果15090(2)实物图设计总结经过为期一个星期的设计,我们小组对Verilog语言有了更加深刻的认识。VerilogHDL是超高速集成电路的硬件描述语言,它能够描述硬件的结构、行为与功能。在编写程序的时候,我们才发现能看懂程序和能自己写程序是两个完全不同的概念,在一开始写程序时,即便是一个很简单的功能模块,在编译时也可能产生很多错误,在不断的改错过程中,自己对Verilog语言的语法结构有了深刻的理解,对编译过程中常见的错误也有了全面的认识。同时,在答辩的时候,也能够学到其他同学程序的优点,比如,在答辩时,有一个小组提出了问题,经过课下分析,发现我们的程序确实存在需要改进的地方,经过重新存储ROM,再次编译后,仿真波形更加正确。完成此次设计后,我们不仅能对QuartusII开发仿真软件熟练操作,能达到学以致用,同时还掌握了模拟电子技术的滤波器的运用。经过这一过程,我发现平常的学习在注重理论知识的掌握同时,要加强实验环节,只有通过不断地实践,我们才能把知识掌握的更牢固,理解的更透彻另附模块代码:分频模块:modulefenpin(control,Clk,clkout);input[7:0]control;inputClk;outputclkout;reg[31:0]con;regclkout;reg[31:0]Cout;//always语句里赋值需要定义为reg类型regClk_En;//always语句里赋值需要定义为reg类型initial//赋初值clkout<=0;always@(posedgeClk)begincon=32'd50000000;con=con/(control+1);Cout<=(Cout==con/128)?32'd0:(Cout+32'd1);Clk_En<=(Cout>=con/256)?1'd1:1'd0;//把脉冲源50Mhz分频为128*输入hzclkout<=Clk_En;endendmodule正弦波的地址分配:modulesin_yima(CP,Q);inputCP;output[6:0]Q;reg[6:0]M;always@(posedgeCP)beginM<=M+1;endassignQ=M;endmodule三角波地址分配:modulesjb_yima(CP,Q);inputCP;output[6:0]Q;reg[6:0]M;alwa

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论