基于FPGA的多功能触摸屏电子琴系统设计
2016-08-13陈守满
陈 强,陈守满
(安康学院 科研处,陕西 安康 725000)
基于FPGA的多功能触摸屏电子琴系统设计
陈 强,陈守满
(安康学院 科研处,陕西 安康 725000)
文章中设计的基于FPGA的多功能触摸屏电子琴具有触摸屏控制弹奏的暂停与启动、弹奏比较评分、随时储存个人创作、自动播放音乐等多功能。这是一款体积小、系统可靠性高、开发周期短和研制成本低的便携式迷你电子琴。其弥补了物理实体电子琴笨重的不足,实现了大多数音乐爱好者随时记录音乐感受随时谱曲,方便个人创作以及电子琴技能练习,也使音乐教学更直接、更方便。学生可自主学习电子琴,大大增加了学生对电子琴学习兴趣,给教学带来了极大的便利。
FPGA;电子琴;触摸屏
随着电子产品深层潜入人们的生活,不仅大大方便了人们的生活,同时也实现了人们对于美好生活的期许。作为大众电子音乐器件—电子琴,因其操作简单且能模拟各种传统乐器的音色而深受广大消费者喜爱。目前市场上有很多种音乐器件,可以直接产生各种乐曲,多数为使用单片机、555定时器、逻辑组合电路、LDQ852集成块等传统方法设计的电子琴[1-4]。这些采用传统方法设计的电子琴,通常需要使用单片机、存储器和数字逻辑电路来进行PCB(印刷电路板)板级的系统集成。尽管这些方案有单片机软件的支持较为灵活,但是由于受硬件资源的限制,未来在对设计的变更和升级时不可避免要付出较多的研发经费和较长的投放市场周期的代价。随着电子设计自动化(EDA)技术的发展,基于可编程ASIC器件的数字电子系统设计的完整方案越来越受到人们的重视[5-8],并且以EDA(电子设计自动化)技术为核心的能在可编程ASIC器件上进行系统芯片集成的新设计方法,也正在快速地取代传统数字电路设计方式。本设计项目主要采用DE0 Nano FPGA 开发板和TRDB_LTM触摸屏实现多功能电子琴的设计。
1 多功能触摸电子琴的系统设计
本设计采用现场可编程逻辑器件(FPGA),利用Verilog HDL硬件描述语言编程实现各个模块的功能,最后通过各个模块的协调工作来实现LCD 触摸屏电子琴触摸弹奏、自动播放乐曲、弹奏练习评分比较、随时随地保存个人创作的功能。本设计的思路是:通过对LCD触摸屏上不同的按键进行选择,将采集到的信号转换成含有音符信号的代码以及产生分频预置值,采用数控分频的方法获得不同音符对应的频率,如果是弹奏练习模式在和ROM中所存储的频率做一个比较输出本次弹奏的得分;如果是自动播放的模式,可以通过扬声器输出不同音符对应的音调以及ROM中所存储的用于自动播放的乐曲;个人创作的乐曲会自动存储在存储器中。多功能触摸电子琴的系统如图1所示。
图1 多功能触摸电子琴的结构
2 音乐节拍发生器模块
音乐节拍发生器模块将利用FPGA芯片的内部ROM存储器存放乐曲简谱表,由一个计数器来为乐曲数据存储器ROM产生地址。此计数器的计数频率为4Hz,即每一计数值的停留时间为0.25s,随着音乐节拍发生器中的计数器以时钟频率4Hz做加法计数时,地址值递增时,乐曲数据ROM存储器中的音符数据依次从ROM中的输出口输向音符译码电路,所存储的乐曲就开始连续自然地演奏起来。计数器的位数根据所存放乐曲简谱基本节拍数来决定。
3 音符译码电路模块
音符译码电路相当于音调发生器,它是一个音符频率查表电路,音符译码电路模块放置了21种音乐简谱相对应的频率值,根据这些频率值为数控分频模块提供所发音符频率的初始值,音符译码电路模块的作用就是产生获得音阶的分频预置值,程序中设置了21个音符所对应的音符频率的初始值。程序中的音符分频系数通过索引值来进行选取,索引值即由LCD触摸屏扫描电路传递来的当前音符的索引值。当发声控制输入index中的某一位为高电平时,则对应某一音阶的数值将在端口输出,该数值即为该音阶的分频预置值,分频预置值控制数控分频器对50MHz的系统时钟进行分频,由此可得到每个音符对应的发音频率。
音符译码电路模块将 LCD触摸屏的输入信号进行分析处理,并发出相关控制信号,驱动下级电路(数控分频电路模块)的工作,为驱动扬声器正确发音提供了有效的依据,由图1可见,利用软件不但大大地简化了电路,而且达到了预期的目的,Verilog HDL硬件描述语言的优势再次体现出来,为设计提供了极大的方便。
4 音符发声器模块
由于音符译码电路的输出是音符发声器的输入,所以如何设计一个电路,将传递过来的不同音符的分频预置值进行处理,然后再产生不同音符对应的音符频率,就成为音符发声器设计的关键。
音符发声器的上一级电路(音符译码电路)里,已经将各个音符的分频预置值转化为20位的二进制,于是选择数控分频器,数控分频器对FPGA的基准频率进行分频,在数控分频器的输入端给定CLK和不同的分频预置值时,数控分频器的输出端便可得到对应的音符频率。
数控分频电路是由一个初值可变的20位加法计数器构成,音符发声器电路在获取音符译码电路的音阶索引值对应的分频预置值后,通过可控计数器进行分频。分频器电路中的分频预置值进行加1计数,该计数器的模为1048576,当计数器计满时,计数器产生一个溢出信号fullspks,此溢出信号就是用作发音的频率信号,在计数器的输入端给定不同的初值(分频预置值即计数初值),其输出将产生不同的频率信号,也即不同音符的发音频率信号,该计数器的工作原理用等式表示为:计数初值+分频系数=1048576+溢出信号fullspks,它计满时所需要的计数初值为:计数初值=1048576-分频系数。分析此式可知,低音时计数初值小,分频系数大,进位信号fullspks的周期长,扬声器发出的声音低,反之扬声器发出的声音高;其中计数初值随音乐的乐谱而变化,自动控制分频系数,从而实现数控分频,这就是利用数控分频器自动演奏音乐的原理。对于不同的分频系数,加载不同的初始值即可。用加载初始值而不是将分频输出译码反馈,可以有效地减少本次设计所占用的可编程逻辑器件的资源。
5 多功能触摸电子琴的设计验证
图2 系统RTL级网
本次设计目标芯片选用美国ALTERA公司Cyclone系列FPGA旗舰中的EP4CE22F17C6芯片,通过EDA开发工具Quartus II 13.0,对各个模块的Verilog HDL源程序及顶层电路进行引脚分配、逻辑综合、适配、编译等各种测试工作,最终将设计编译的数据下载到芯片中。经实际电路测试验证,达到了设计的要求。系统RTL级网如图2所示,下载配置后得到的实际验证效果如图3所示。
图3 多功能触摸屏电子琴实物
6 结语
基于FPGA的多功能触摸电子琴实现了通过LCD触摸屏弹奏音乐、自动播放乐曲、随时保存个人创作的功能,弹奏评分比较等功能。实践证明:运用Verilog HDL层次化和模块化的设计方法,更好地优化了音乐演奏数字电路的设计。采用FPGA所设计的电子琴系统具有结构简单、开发时间短、外围器件少、体积小、抗干扰能力强、可靠性高的特点。系统维护起来也更方便和快捷,尤其是对于设计者来说,不需要考虑太多的硬件设计,只需要有自己的设计思路,编程后下载到FPGA器件中进行测试就可实现所需的功能,有效地缩短了产品开发周期,减少了设计芯片的数量,降低了功耗,提高了设计的灵活性、可靠性和可扩展性。将LCD触摸屏与电子琴硬件描述语言有效结合,不仅所花成本低,而且具有较高的使用价值。
[1]曹曼.基于FPGA的电子琴设计[J].信息科技,2012(2):180-181.
[2]陈华容.基于FPGA的电子琴设计[J].器件与电路,2006(2):26-29.
[3]孙万麟.基于AT89C51单片机的电子琴设计[J].电脑知识与技术,2010(7X):5626-5627.
[4]周琛晖.基于AT89S51单片机的电子琴设计[J].电脑知识与技术,2009(9X):7679-7681.
[5]张卿.基于FPGA的音乐演奏电路及电子琴的设计[J].科技信息,2009(16):143-148.
[6]付梦婷,付永庆.基于CPLD的88键电子琴的设计与实现[J].电子器件,2013(5):737-741.
[7]李雪梅.基于FPGA的电子琴动态录音与回放系统的设计[J].现代电子技术,2009(3):130-133.
[8]王庆春,何晓燕.基于FPGA的便携式逻辑分析仪的设计[J].电子测量技术,2012(10):80-83.
Design of Multi-function Touch Screen Keyboard Based on FPGA
Chen Qiang, Chen Shouman
( Research Department of Ankang University, Ankang 725000, China)
Multi-function Touch Screen Keyboard Based on FPGA in this article is designed with touch screen control play pause and start playing score, at any time, you can store personal creation, automatically play music.It is small in the volume, system reliability,development cycle short and low cost that makes up the heavy physical keyboard and achieves the goal that most music lovers can record music feeling at any time, it is convenient for personal creation and practice of electronic keyboard skills , it also makes music teaching more direct and more convenient for students to be autonomous on learning keyboard, greatly increases keyboard learning interest for students and it brings a great convenience to music teaching.
field programmable gate array(FPGA); keyboard; touch screen
陈强(1983— ),男,湖北黄冈,本科,实习研究员;研究方向:计算机系统集成。
项目名称:安康学院2013年国家级大学生创新创业训练计划;项目编号:201311397005。项目名称:安康学院2013年校级大学生创新创业训练计划项目;项目编号:2013aku015。2012年陕西省教育厅科学研究项目;项目名称:基于高光谱图像的蚕茧品质无损检测研究;项目编号:12JK0536。