电子琴设计.docx
《电子琴设计.docx》由会员分享,可在线阅读,更多相关《电子琴设计.docx(16页珍藏版)》请在冰豆网上搜索。
![电子琴设计.docx](https://file1.bdocx.com/fileroot1/2022-12/7/6a04da8e-c82d-449c-8fbe-7048db9bd3c6/6a04da8e-c82d-449c-8fbe-7048db9bd3c61.gif)
电子琴设计
课程名称:
FPGA技术及应用实训
设计题目:
电子琴设计
学院:
电子信息工程学院
学生姓名:
陶龙,周伟,陈佳丽,杨宇辰,王博
班级:
214341
指导教师:
金长江
2016年12月19日星期一
课程设计任务书
设计题目
电子琴设计
设计要求:
设计8个音符,8按键一一对应,简易电子琴。
使用Cyclone2完成。
应完成的工作:
1、具有电源开关及指示灯,有复位按键;
2、通过限流电阻与三极管基极相接,三极管集电极接蜂鸣器。
3、音符通过定时器T0产生,然后通过键盘扫描法,将按下的键转换成相应的音符,并通过输出端口使蜂鸣器发出相对应的声音,声音的长短由按键的时间决定。
参考文献阅读:
[1]赵鑫,蒋亮,齐兆群.数字电路设计[M].
[2]聂章龙,张静.项目开发教程(VerilogHDL与CPLD/FPGA).
工作计划:
完成硬件设计部分;
完成软件设计部分;
完成仿真和调试部分。
任务下达日期:
2016年12月19日
任务完成日期:
2016年12月26日
摘要
随着电子技术的发展,电子技术正在逐渐改善着人们的学习、生活、工作,因此开发本系统希望能够给人们多带来一点生活上的乐趣,电子技术与音乐的结合不断加深。
由此而产生的电子琴在这种形势下,因其体积小,易于携带,经济适用,对初学者,尤其对识谱的人来说是很容易弹奏的,一首简单的曲子灵感好的人甚至不用很多的练习和教师的指导就能很快的弹奏出来。
是一般家庭都能承受得了的经济投入,而且电子琴键盘操作直观易于掌握。
这样就强烈地激发了学习者的学习兴趣,迅速地提高了电子琴的普及率。
电子琴使用简单。
深受广大音乐爱好者推崇。
作为电子专业的学生,掌握电子琴的制作是很好检验我们所学知识应用。
它所包含的知识基本上覆盖我们的模拟电子技术基础、数字电子技术基础、EDA技术、电子线路、FPGA基础以及接口技术课程的重要章节。
虽然我们不能设计出很复杂的电子琴,主要是考虑到设备以及成本等一系列问题,因此我打算设计并制作一个简易的电子琴。
采用集成电路设计,基于FPGA设计一款简易的电子琴.
关键词:
电子琴;FPGA.
目录
1.设计背景5
1.1目的和意义5
2.设计方案5
2.1控制模块选择方案5
3.系统硬件设计及说明5
3.1系统组成及总体框图5
3.2元件简介7
3.2.1CYCLONE27
3.2.2S9013三极管8
3.3各功能模块原理图9
3.3.1键盘扫描模块电路原理图9
3.3.2音频处理模块电路原理图9
4.系统软件设计10
4.1如何用FPGA产生音频脉冲10
5.系统调试11
5.1软件仿真调试11
5.2软件调试11
5.3调试结论12
6.收获与致谢12
7.参考文献12
8.附件13
8.1元器件清单13
8.2系统硬件电路图13
8.3实物图14
8.4程序15
1.设计背景
1.1目的和意义
电子琴是现代电子科技与音乐结合的产物,是一种新型的键盘乐器。
它在现代音乐扮演着重要的角色,FPGA具有强大的控制功能和灵活的编程实现特性,它已经溶入现代人们的生活中,成为不可替代的一部分。
本文的主要内容是用FPGA为核心控制元件,设计一个电子琴。
以FPGA作为主控核心,与键盘、扬声器等模块组成核心主控制模块,在主控模块上设有16个按键和扬声器。
本文主要对使用FPGA设计简易电子琴进行了分析,并介绍了基于FPGA电子琴统硬件组成。
利用FPGA产生不同频率来获得我们要求的音阶,最终可随意弹奏想要表达的音乐。
并且本文分别从原理图,主要芯片,各模块原理及各模块的程序的调试来详细阐述。
本系统是简易电子琴的设计,扬声器播放器对应的音符。
通过设计本系统可了解FPGA的基本功能。
对FPGA的了解有一个小的飞跃。
2.设计方案
2.1控制模块选择方案
方案一:
用可控硅制作电子琴。
将220V交流电经变压器降压,再经过整流、滤波,获得+13.5V直流电压。
将单向可控硅SCR和电阻、电容组成驰张振荡器电路。
但该设计方案制作成本高且复杂。
方案二:
采用AT89C51FPGA进行控制,由于AT89C51不具备ISP功能,
因此Atmel公司已经停产在市面上已经不常见,况且其ROM只有4K在系统将来升级方面没有潜力。
方案三:
采用FPGA进行控制,由于其性价比高,完全满足了本作品智能化的要求,它的内部程序存储空间达到8K,使软件设计有足够的内部使用空间并且方便日后系统升级,使用方便,抗干扰性能提高。
选择方案:
鉴于上述对比与分析,本设计采用方案三
3.系统硬件设计及说明
3.1系统组成及总体框图
硬件设计的任务是根据总体设计要求,在选择的机型的基础上,具体确定系统中所要使用的元器件,设计出系统的原理框图、电路原理图。
该设计要实现一种由FPGA控制的电子琴,FPGA工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号。
该设计具有11个音节的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。
由于本例实现的音乐发生器是由用户通过键盘输入弹奏乐曲的,所以节拍由用户掌握,不由程序控制。
用FPGA产生的音频脉冲直接驱动扬声器并不能产生所要实现的音乐,因为它没有足够的驱动能力,这就需要音频功率放大电路。
本例使用s9013三极管来实现音频功放电路。
图3-1系统结构图
3.2元件简介
3.2.1CYCLONE2
随着低复杂度FPGA器件成本的不断下降,具有灵活性和及时面市优势的FPGA与ASIC相比更有竞争性,在数字消费市场上的应用也急剧增加。
第一代Cyclone系列迄今发售了3百多万片,在全球拥有3,000多位客户,对大批量低成本数字消费市场有着巨大的影响,该市场消纳了三分之一的器件。
根据GartnerDataquest调查,在2004年光消费电子市场对FPGA需求就将达到3亿9千万美元,预计到2008年,将增加到11亿6千万美元,年复合增长率(CAGR)为31.9%。
同时,CycloneII器件系列也在电信、计算机外设、工业和汽车市场上获得了巨大的进步。
CycloneII器件包含了许多新的特性,如嵌入存储器、嵌入乘法器、PLL和低成本的封装,这些都为诸如视频显示、数字电视(DTV)、机顶盒(STB)、DVD播放器、DSL调制解调器、家用网关和中低端路由器等批量应用进行了优化。
产品简介编辑Altera公司2004年推出了新款CycloneII系列FPGA器件。
CycloneIIFPGA的成本比第一代Cyclone器件低30%,逻辑容量大了三倍多,可满足低成本大批量应用需求Altera最近推出的NiosII系列软核处理器支持CycloneIIFPGA系列。
NiosII系列软核处理器占用的逻辑仅需0.35美元,可以设计到CycloneII器件中。
在CycloneIIFPGA中实现NiosII的设计除了大幅度降低实现成本之外,还具有100DMIP的性能,大约比Cyclone器件和Nios处理器提升了100%。
设计者使用NiosII处理器,能够在任何一个CycloneII器件上构建完整的可编程系统芯片(SOPC),是中低规模ASIC的新的替代方案。
主要特性编辑CycloneII器件采用TSMC90nm低K绝缘材料工艺技术,这种技术结合Altera低成本的设计方式,使之能够在更低的成本下制造出更大容量的器件。
这种新的器件比第一代Cyclone产品具有两倍多的I/O引脚,且对可编程逻辑,存储块和其它特性进行了最优的组合,具有许多新的增强特性。
Altera为配置CycloneIIFPGA提供了低成本的串行配置器件。
这些串行配置器件定价为批量应用,成本是相应CycloneIIFPGA的10%。
四个串行配置器件(1Mbit,4Mbit,16Mbit和64Mbit)提供了节省空间的8脚和16脚SOIC封装。
器件中任何不用于配置的存储器可用于一般存储,进一步增强其价值。
Altera也为CylconeII器件客户提供了40多个可定制IP核,Altera和AlteraMegafunction伙伴计划(AMPPSM)合作者提供的不同的IP核是专为CycloneII架构优化的,包括:
NiosII嵌入式处理器;DDRSDRAM控制器;FFT/IFFT;PCI编译器;FIR编译器;NCO编译器;POS-PHY编译器;ReedSolomon编译器;Viterbi编译器等等。
当客户完全满意IP功能,再购买完全的许可。
3.2.2S9013三极管
型号对比编辑
s9014,s9013,s9015,s9012,s9018系列的晶体小功率三极管,把显示文字平面朝自己,从左向右依次为e发射极b基极c集电极;对于中小功率塑料三极管按图使其平面朝向自己,三个引脚朝下放置,则从左到右依次为ebc,s8050,8550,C2078也是和这个一样的。
用下面这个引脚图(管脚图)表示:
当前,国内各种晶体三极管有很多种,管脚的排列也不相同,在使用中不确定管脚排列的三极管,必须进行测量确定各管脚正确的位置(下面有用万用表测量三极管的三个极的方法),或查找晶体管使用手册,明确三极管的特性及相应的技术参数和资料。
非9014,9013系列三极管管脚识别方法:
(a)判定基极。
用万用表R×100或R×1k挡测量管子三个电极中每两个极之间的正、反向电阻值。
当用第一根表笔接某一电极,而第二表笔先后接触另外两个电极均测得低阻值时,则第一根表笔所接的那个电极即为基极b。
这时,要注意万用表表笔的极性,如果红表笔接的是基极b。
黑表笔分别接在其他两极时,测得的阻值都较小,则可判定被测管子为PNP型三极管;如果黑表笔接的是基极b,红表笔分别接触其他两极时,测得的阻值较小,则被测三极管为NPN型管如9013,9014,9018。
(b)判定三极管集电极c和发射极e。
(以PNP型三极管为例)将万用表置于R×100或R×1K挡,红表笔基极b,用黑表笔分别接触另外两个管脚时,所测得的两个电阻值会是一个大一些,一个小一些。
在阻值小的一次测量中,黑表笔所接管脚为集电极;在阻值较大的一次测量中,黑表笔所接管脚为发射极。
在实际应用中、小功率三极管多直接焊接在印刷电路板上,由于元件的安装密度大,拆卸比较麻烦,所以在检测时常常通过用万用表直流电压挡,去测量被测管子各引脚的电压值,来推断其工作是否正常,进而判断三极管的好坏。
3.3各功能模块原理图
3.3.1键盘扫描模块电路原理图
图3-8键盘扫描模块电路原理图
3.3.2音频处理模块电路原理图
由于FPGA驱动能力不够,在处理音符信号时,需加功率放大装置,音频信号放大器对信号进行放大。
图3-10音频处理模块电路原理图
4.系统软件设计
本软件设计关键是要实现一种由FPGA控制的简单音乐发生器,它由16个音节组成的键盘,用户可以根据乐谱在键盘上进行演奏,音乐发生器会根据用户的弹奏,通过扬声器将音乐播放出来。
4.1如何用FPGA产生音频脉冲
了解音乐的一些基本知识后可知,产生不同频率的音频脉冲即能产生音乐,对于FPGA而言,产生不同频率有脉冲非常方便,可以利用它的定时/计数器来产生这样的方波频率信号,因此,需要弄清楚音乐中的音符和对应的频率,以及FPGA定时计数的关系。
在本实验中,FPGA工作于12MHZ时钟频率,使用其定时/计数器T0,工作模式为1,改变计数值TH0和TL0可以产生不同频率的脉冲信号,在此情况下,C调的各音符频率与计数值T的对照如下表:
表4-2音符频率与计数值T的对照表
音符
频率(HZ)
计数值(T值)
音符
频率(HZ)
计数值(T值)
低1DO
262
63628
#4FA#
740
64860
#1DO#
277
63737
中5SO
784
64898
低2RE
294
63835
#5SO#
831
94934
#2RE#
311
63928
中6LA
880
64968
低3MI
330
64021
#6LA#
932
64994
低4FA
349
64103
中7SI
968
65030
#4FA#
370
64185
低1DO
1046
65058
低SO
392
64260
#1DO#
1109
65085
#5SO#
415
64331
高2RE
1175
65110
低6LA
440
64400
#2RE#
1245
65134
#6LA#
466
64463
高3MI
1318
65157
低7SI
494
64524
高4FA
1397
65178
中1DO
523
64580
#4FA#
1490
65198
#1DO#
554
64633
高5SO
1568
65217
中2RE
587
64633
#5SO#
1661
65235
#2RE#
622
64884
高6LA
1760
65252
中3MI
659
64732
#6LA#
1865
65268
中4FA
698
64820
高7SI
1967
65283
5.系统调试
电路调试是整个系统功能是否实现的关键步骤,我们将整个调试过程分为三大部分:
硬件调试、软件调试和综合调试。
5.1软件仿真调试
软件仿真调试主要是针对FPGA部分进行调试。
在软件运行前,先确保电路中连线正确,这一工作是整个调试工作的第一步,也是非常重要的一个步骤。
在这部分调试中主要通过目测,用来完成检测电路中是否存在断路或者短路情况等。
在确保软件仿真电路正常,无异常情况(断路或短路)方可进行软件运行,在本次设计中,软件运行主要是测试FPGA键盘控制部分和音频功放电路调试。
5.2软件测试
调试主要方法和技巧:
通常一个调试程序应该具备至少四种性能:
跟踪、断点、查看变量、更改数值。
整个程序是一个主程序调用各个子程序实现功能的过程,要使主程序和整个程序都能平稳运行,各个模块的子程序的正确与平稳运行必不可少,所以在软件调试的最初阶段就是把各个子程序模块进行分别调试。
5.3调试结论
通过各方面努力,本次课程设计任务完成,系统部分功能已实现。
基本达到预定的效果。
课程设计是专科学习阶段一次非常难得的理论与实践相结合的机会,通过这次系统的项目设计提高了我运用所学的专业基础知识来解决面临实际问题的能力,同时也提高了我查阅各种文献资料、设计手册、设计规范以及软件编程排版的水平。
6.致谢
通过这两周的FPGA课程设计,我们学到了不少课本上没有的知识,也锻炼了自己的动手能力,将以前学过的零散的知识串到一起。
首先在课程设计刚开始的调研阶段,我们学会了怎么通过各种方式查询相关的资料。
通过对这些资料的学习,我们大致了解了FPGA的发展现状以及未来的发展趋势,认识到目前FPGA方面的各种各样的发展,和它们之间的竞争。
了解了FPGA方面的先进技术,这些都为我的未来的学习指明了方向。
我们的课程设计主要涉及硬件和软件两方面的内容,通过这些我们的硬件和软件开发能力都获得了提高。
首先硬件方面,基本了解了电子产品的开发流程和所要做的工作。
并设计了一个FPGA最小系统。
通过开发板的设计和硬件搭建的过程,使我们对51系FPGA的接口有了更深层次的理解,熟悉了一些FPGA常用的外围电路引脚和连接方法,如LM386键盘等。
在软件方面,通过串行口调试工具的开发,使我们加深了对元器件封装的理解,熟
悉了51系列FPGA内部的寄存器和编程规则,以及如何控制外围电路。
最后,感谢老师的精心指导,使我们能够完成这次课程设计。
如果没有老师的热情帮助,我们想本次课题设计很难正常工作。
7.参考文献
[1]赵鑫,蒋亮,齐兆群.数字电路设计[M].北京机械工业出版社,2005.6
[2]苏家健,曹柏荣,汪志锋.FPGA原理及应用技术[M].高等教育出版社
[3]李朝青.FPGA原理及接口技术[M].北京:
北京航天航空大学出版色,2001
[4]胡汉才.FPGA原理及其接口技术[M].北京:
清华大学出版社,2004
[5]张靖武,周灵彬.FPGA原理、应用与PROTEUS仿真,2008.8
8.附件
8.1元器件清单
课题名称
电子琴设计
元器件名称
型号规格
数量
备注
NPN型三极管
S9013
1
电阻
10k
3
1k
1
按键
蜂鸣器
1
底座
40p
1
8p
1
电路板
15*20
1
8.2系统硬件电路图
8.3实物图
8.4程序
modulemusic(keyin,clock,buzzout,ledout);
inputclock;
input[7:
0]keyin;
outputbuzzout;
output[7:
0]ledout;
regbuzzout_reg;
reg[15:
0]count;
reg[15:
0]count_end;
reg[7:
0]keyin_reg;
always@(posedgeclock)
begin
count=count+1;
if((count==count_end)&(count_end!
=16'hffff))
begin
count=16'h0;
buzzout_reg=~buzzout_reg;
end
end
always@(keyin)
begin
keyin_reg=keyin;
case(keyin_reg)
8'b11111110:
count_end=16'h5dfb;
8'b11111101:
count_end=16'h53bb;
8'b11111011:
count_end=16'h4a95;
8'b11110111:
count_end=16'h4651;
8'b11101111:
count_end=16'h3eb1;
8'b11011111:
count_end=16'h37da;
8'b10111111:
count_end=16'h31bf;
8'b01111111:
count_end=16'h2ef2;
8'b11111100:
count_end=16'h29d4;
8'b11111010:
count_end=16'h2543;
8'b11110110:
count_end=16'h232f;
8'b11101110:
count_end=16'h1f58;
8'b11011110:
count_end=16'h1bed;
8'b10111110:
count_end=16'h18df;
default:
count_end=16'hffff;
endcase
end
assignbuzzout=buzzout_reg;
assignledout=keyin_reg;
endmodule
FPGA技术及应用实训总结
维持两周的FPGA实训结束了,我们组选作的题目是电子琴的设计,我在我们组主要担当写报告的工作,在写报告期间查阅了相关资料,了解电子琴设计虽然看似简单,但一个不小心就会出错,在查阅资料的过程中也让我对FPGA这门课程有了更加深入的了解,在此次实训的过程中我也有过挫折有不太清楚明了的地方,但是我并没有气馁,遇到困难我总是先自己寻找失败的原因,仔细的检查分析,请教同学、请教老师。
在这一过程中我对FPGA的掌握有了更进一步的见解,我和我的组员们分工合作,各自完成自己的模块,大家相互学习,相互提高。
实训中,我学到了很多东西,首先我通过听老师讲述、查阅书本、网络等多种渠道学习了FPGA的知识。
在学习的过程中,我既体会到了学习的乐趣,又提高了合作能力,还懂得了对于我们在做事过程中发现的问题要冷静的思考,不要盲目的进行。
在这次设计过程中所得到的体会,在过去是没有过的,在书本中是也是无法找到的。
我以后将更努力的学习这方面的知识。
在学习FPGA的整个过程中,我建立起对FPGA学习的兴趣,遇到困难时要勇于面对它,并想办法解决。
在整个电路设计中,我对寄分频器、计数器、LED七段数码管显示器、Modelsim等设计模块和软件有了更进一步的认识和掌握,拓宽了自己的知识面,锻炼了自己的动手能力,增加实践经验。
途经困难参考成功者的经验,拓宽自己的视野,通过与同学、老师的交流,使自己在短短一周的实训中受益匪浅。
通过一周的实训学习,我收获颇多,我在不断钻研中了解了一些可编程逻辑器件的特点:
FPGA提供了最高的逻辑密度、最丰富的特性和最高的性能。
我了解到了它的基本使用方法,学会了练习导入或者编辑一些简单的程序,并能通过仿真软件进行仿真。
同时我通过学习FPGA慢慢形成了硬件设计思想,虽然对于Verilog语言不是很懂,我相信我以后会慢慢熟悉的。
对于我这个初学者,一定要多动手,多练习,多仿真。
总之,FPGA给我带来的思想上的提升是难以言语的。
班级:
214341
姓名:
杨宇辰
FPGA技术及应用实训总结
通过这两周有关FPGA电子琴的设计,我的收获与体会颇多,受益匪浅。
首先,我们一个组五个成员,然后我们根据自己的擅长以分配工作。
我的首要工作就是要通过课本以及网络去了解什么是乐曲电子琴,什么器件组成电子琴,然后列出元件清单,构所需的电路图,最后再完成焊接。
在课程设计刚开始的调研阶段,我学会了怎么通过各种方式查询相关的资料。
通过对这些资料的学习,我大致了解了FPGA的发展现状以及未来的发展趋势,认识到目前FPGA方面的各种各样的发展,和它们之间的竞争,了解了FPGA方面的先进技术,这些都为我的未来的学习指明了方向。
在这次实训中还锻炼了我其他方面的能力,提高了我的综合素质。
首先,它锻炼了我做项目的能力,提高了独立思考问题、自己动手操作的能力,在工作的过程中,复习了以前学习过的知识,并掌握了一些应用知识的技巧等。
对于CycloneII系列FPGA器件,以前大二刚开始学的时候。
在实训的过程中,深刻体会到团队合作的力量,仅凭一人之力想要完成整个实验是几乎不可能的事情,所以我们时时刻刻都应该合作。
可以说这次实训不仅使我学到了知识,丰富了经验,也帮助我缩小了关于FPGA实践和理论的差距。
比如,在做电路板的时候,我们几个人到处寻找自己所缺的工具,甚至跑到人家的教室去用工具,由此看来我们每一位成员构想竭尽全力去把这个工作做好,最后,我们也没有辜负自己,第一个完成了老师布置的任务,在完成电子琴制作的时候,那种油然而生的自豪感才是最难忘的。
这次实训将会有利于我更好的适应以后的工作,我会把握和珍惜实训的机会,在未来的工作中我会把学到的理论知识和实践经验不断的应用到实际工作中,为实现理想而努力。
FPGA技术及应用实训总结
两周的FPGA实训就这样结束了,我们组的五个人分工合作大家各尽其职,进展也相对顺利,因为我们组的成员大多数以前都是学硬件的,接触实实在在的东西比较多,所以做第一个和第三个实验感觉还好。
而第二个实验是对音频信号的处理,感觉那音频信号存储在ROM中看不见摸不着,不知道怎么弄才好。
不过,以后我们会在这一方面加强的。
另外,我们组的成员坐得比较分散,不像其他四组的同学一样都是坐在一起的,所以呢,彼此之间的讨论很少,从而导致实验效率的下降。
第二次实验之后,金老师发现了这个问题,于是