基于FPGA的三相正弦波发生器.docx

上传人:b****7 文档编号:9498982 上传时间:2023-02-05 格式:DOCX 页数:15 大小:811.28KB
下载 相关 举报
基于FPGA的三相正弦波发生器.docx_第1页
第1页 / 共15页
基于FPGA的三相正弦波发生器.docx_第2页
第2页 / 共15页
基于FPGA的三相正弦波发生器.docx_第3页
第3页 / 共15页
基于FPGA的三相正弦波发生器.docx_第4页
第4页 / 共15页
基于FPGA的三相正弦波发生器.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

基于FPGA的三相正弦波发生器.docx

《基于FPGA的三相正弦波发生器.docx》由会员分享,可在线阅读,更多相关《基于FPGA的三相正弦波发生器.docx(15页珍藏版)》请在冰豆网上搜索。

基于FPGA的三相正弦波发生器.docx

基于FPGA的三相正弦波发生器

 

短学期课程设计报告

 

设计名称:

电子技术课程设计

设计题目:

基于FPGA的三相正弦波发生器

院(系):

信息学院计算机科学与技术系

年级:

2014级

指导教师:

张辉波

 

西南交通大学

2016年7月

3.5引脚锁定…………………………………………………………………9

1.电路原理图…………………………………………………………………16

2.PCB版图………………………………………………………………………16

3.Verilog代码…………………………………………………………………17

 

一、绪论

1.1设计目的

三相交流电是三个频率相同的交流电的组合,相位彼此相差120度,主要应用于需要大电力的场合并且三相交流电的频率可调。

在此基础上研究关于三相正弦波的研究。

基于FPGA的三相正弦波发生器,在CycloneⅡ系列EP2C8T144C8上实现正弦波信号的产生,利用单片机PICl8F4550控制波形的频率及相位差。

同时单片机通过DAC0832控制波形数据转换DAC参考电压实现在波形幅度的控制,D/A输出的波形经过放大后输出。

输出的三相正弦波有利于观察。

1.2设计要求

关于此次三相正弦波的设计有两种任务要求,基本要求为输出的电压在0-5V之间可调。

输出的信号频率为50Hz。

正弦失真度在+/-5%之间。

而提高要求为输出三相方波,并且三相波要可调频可调相。

本组要完成的任务是简化版,故任务要求是输出频率为50Hz的三相正弦波即可。

二、方案设计

2.1概论设计

首先先完成单相正弦波的代码,实现单相正弦波波形的输出,然后绘制电路图,此时的电路图是不能调频调相的。

然后进行分频操作,将两个add1地址叠加,然后输出的三个ROM里读出数据即为存入的正弦波序列。

2.2各子系统模块

此次的三相波设计共涉及到四个子系统模块,分别是单相波的设计、正弦波形的设计、三相波的叠加、分频设计、引脚标注等。

2.3使用器件说明

三相正弦波发生器元器件清单

序号

元器件名称及型号

备注

1

DAC0832

需要3个

2

运放OP07

lm324也可以,需要3个

3

LMC7660

产生负电源

4

空心电源插座(5mm直径)

作品电源接口

5

有源晶振(6MHz)

可以直接使用FPGA自带

6

相关元器件芯片插座

安插相关芯片

7

印制板、烙铁、导线、焊锡等

电子工艺实习应用

8

EP2C8T144C8开发板

下载应用

9

多路直流稳压电源正负开关线性可调稳压模块正负+-12V5V3.3V

采用多路输出的电源开关

表2.1

三、详细设计

3.1设计原理

系统由单片机控制模块、FPGA波形产生模块、数模转换模块、滤波输出模块、触摸屏输入和液晶显示模块组成,单片机控制FPGA产生输入频率和相位差的三相正弦波,经过D/A转换后滤波输出,三相波形的幅度也由单片机通过改变D/A的参考电压控制

基于FPGA的三相正弦波发生器,是由地址发生器完成信号的输入,存入ROM中,经过数模转化软件即可得到合适的模型曲线。

总体框图:

图3.1

3.2正弦波设计

正弦波的数据需要转换为*.mif文件后存放到ROM中,mif文件有固定格式规定了每个字的位宽WIDTH、总字数DEPTH、地址进制基数ADDR-ESS_RADIX和数据进制基数DATA_RADIX。

在Matlab环境中编程计算出正弦波数据,然后生成mif文件。

  EP2C8T144C8拥有较充裕的存储空间。

因此,设计中为了提高精度在ROM中存放256个正弦数据,频率控制字、相位控制字由单片机控制产生,经过相位累加器组成地址发生器,产生的地址连到ROM的地址线上进行查表得到波形数据。

详见附录代码-Verilog-S401和S402.

单项正弦波的实现

图3.2

3.3三相波叠加

为实现上述要求的三相正弦波,可采用问题分解的方法、逐个分析问题。

三相波的叠加

图3.3

对于图中的ROM可以利用Quartus2的LPM功能,定制一个8bit数据宽度,128字节深度的ROM:

先完成单相正弦波的代码,实现单相正弦波波形的输出,然后绘制电路图,此时的电路图是不能调频调相的。

然后进行分频操作,将两个add1地址叠加,然后输出的三个ROM里读出数据即为存入的正弦波序列。

3.4分频设计

为了对波形频率精确控制,不同频率段需要不同的输入频率。

项目设计中采用选择的引脚为P17口为50MHz外部有源晶振。

根据题目的要求,输出的三相正弦波要求为50Hz,因此要在输入端与正弦波发生器之间添加一个分频器,使得其频率降低。

其分频代码见附录-Verilog-S404.

3.5引脚锁定

1、输入引脚

图3.4P17口主板器件名为50MHz

2、三相波的输出

图3.5

图3.6

图3.7

四、测试及使用说明

4.1测试步骤

本次电子设计的目的是实现三项正弦波发生器,即可输出三相波即可。

由于在课程设计时已经确定其输出的频率50Hz(输入口cp为50MHz的P17口,且设置一个分频器使其输出为50Hz),而且三项正弦波已设置完全,故本题不需进行数据输入。

主要测试步骤:

1、电源部分进行连线

2、插入电源,通电

3、输出端连线到示波器上

4、将文件下载到电路板上

5、运行,观察示波器

4.2实验结果

本题的目的是实现三项正弦波的输出,故分步进行先完成单相波,接着是双相波,最后为三相波。

1.仿真波形:

图4.1

2.两相正弦波

图4.2

3.三项正弦波

图4.3

 

五、结论

  本项目以低功耗、操作方便、结构合理、易于调试为主要设计原则,以求解出三相正弦波发生器,在系统设计过程中,力求硬件线路简单,充分发挥软件编程方便灵活的特点,并最大限度挖掘FPGA片内资源,来满足系统要求。

  利用硬件描述语言VHDL编程QuartusII软件环境下进行了编译及仿真测试,在FPGA芯片上设计了函数发生器,产生正弦波,系统的频率分辨率高,频率切换速度比较快,设计缩短了开发研制周期,提高了设计效率,而且使系统具有结构紧凑、设计灵活、实现简单、性能稳定的特点。

本设计的重点与难点在于实物图的设计与制作,更深层次的则在于早期PCB版的设计,以及后期的钻孔、连线、焊接等。

这些操作影响到最终的成果展示。

我们小组也在最终的PCB版的制作上出现了麻烦。

六、实习总结

1

在这次电子技术课程设计实习中,我们组完成的课题是:

三相正弦波发生器(简化版)。

这次实习将我们学习的数电,电分的专业知识运用到实际生产中,由于未接触过模电,因此我们组的实习要求有所降低,难度也小多了,但我们的努力可一点都没少。

在实习中,我们掌握了对AltiumDesigner等软件的使用,又重新熟悉了对对数电建模软件QuartusII的应用。

在这个课程设计实习中,我们将以前许多在课本上学习到的专业的理论知识应用到实际操作上。

整个实习过程是相当愉快的,但是仍旧出现了不少的问题,这说明我们依然欠缺某些必要的知识,而这些知识实在课堂上没有学到的,只有在课后自己积累。

这也突出了我们自主学习的能力。

在亲自动手制作的时候,我们知道了理论联系实际的重要性,而焊接练习则是最好的证明。

虽然我们知道许多关于焊接的理论知识,但却无法得到合格的焊点,只有通过不断练习来弥补。

在课程设计过程中,我们发现错误,改正并领悟。

最终在大家的努力下最终完成了任务。

通过这次实习,我们不仅培养了独立思考、亲自动手操作的能力,而且还提高了许多其他能力,比如团队协作能力等。

要想圆满地完成一项任务除了需要扎实的专业知识之外,还需要小组成员的通力合作。

总之,这次实习,我受益匪浅。

2、

在电子技术课程设计实习中,我们组的课题是:

三相正弦波发生器。

由于计算机系未学习过模电,所以在实际设计中我们遇到了很多问题。

老师很体贴的为我们降低了难度,但是这次实习我们的努力可一点都没少。

实习的目的是将数电,模电的专业知识运用到实际生产中,加深对这些方面的理解,加强成员的动手能力等,这些方面我们都获得了提高。

首先,我们掌握了对Altium Designer等软件的使用,又重新熟悉了对数电建模软件Quartus II的应用。

实习结束时,我们都也已可以熟练的使用这些元件完成我们所要实现的功能。

常言道“绝知此事要躬行”,在实习中温习了一部分数电的知识,并掌握了很多以前忽略的数电知识。

为了完成实习,我们也自学了模电的一些基础知识。

实习最重要的是加强了我们的动手能力,也加强了我们的小组合作的默契。

总之,通过这次实习,培养了我们的独立思考、亲自动手操作的能力,并还提高了如团队协作能力等其他能力。

我有很大的收获。

3、

在完成了焊接练习之后,我们就进入了第二个实习——电子课程设计实习,我们组的选题是三相正弦波发生器,就是实现三相正弦波的发生。

在电子课程设计过程中,我们主要运用到的是数电,模电以及电路分析的知识,要用到的主要软件是QuartusII和AltiumDesigner。

在一开始的时候,我们主要用到的是数电的知识,虽说有些部分有一点遗忘,对QuartusII的操作也有一些生疏,但是经过复习我们还是顺利地完成了编程,原理图绘制以及仿真,这一部分进行得还是比较顺利的,没有遇到太多的问题。

但是之后我们在输出正弦波的时候遇到了问题,输出的波形不是标准的三相正弦波,在询问老师之后,才得知是因为没有分频,所以导致了输出时出错,完善原理图之后就能正确输出了。

下一部分就是用AD软件来完成PCB板的设计,这一部分原理图的设计对我们来说难度是比较大的,但是在大家的共同努力之下,这部分工作也得以圆满完成。

在实现这一步之后就是布线,虽然布线的工作有一些复杂繁琐,我们在这一过程中也遇到了一些问题,但最终也是被我们解决了。

最后就是用到之前焊接的内容进行焊接,做出实物成品。

在本次实习过程中,我有很多的感悟。

首先我们要更加重视知识的运用,学会用所学的内容去解决实际问题,而并不是一味地填充,去死记硬背。

同时我们要时常复习之前所学的内容,正所谓温故而知新,通过本次实习让我对QuartusII的使用更加熟练。

除此之外就是要多向他人请教,我们在学习工作中会遇到很多的问题,不要积攒问题,要及时解决。

最后就是重视团队合作,重视集体的力量,分工合作往往会达到事半功倍的效果。

附件

电路原理图

附图1

附图2

PCB版图

附图3

Verilog代码

1、modules401(cp,q);

inputcp;

output[7:

0]q;

reg[7:

0]q=0;

always@(posedgecp)

begin

if(q>=8'd255)

q=8'b0000_0000;

else

q=q+1;

end

endmodule

2、modules402(q,add);

input[7:

0]q;

outputreg[7:

0]add;

always@(q)

begin

add=q+8'b0101_0101;

end

endmodule

3、modules404(clk,cp);

inputclk;

outputregcp;

reg[11:

0]q=0;

always@(posedgeclk)

begin

q=q+1;

if(q<=2000)

cp=1;

elseif(q<=4000)

begin

cp=0;

if(q==4000)

q=0;

end

end

endmodule

 

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1