基于FPGA的音乐硬件演奏电路设计.docx
- 文档编号:23496483
- 上传时间:2023-05-17
- 格式:DOCX
- 页数:27
- 大小:412.59KB
基于FPGA的音乐硬件演奏电路设计.docx
《基于FPGA的音乐硬件演奏电路设计.docx》由会员分享,可在线阅读,更多相关《基于FPGA的音乐硬件演奏电路设计.docx(27页珍藏版)》请在冰豆网上搜索。
基于FPGA的音乐硬件演奏电路设计
信息工程学院
2014/2015学年第二学期
课程设计报告
题目:
基于FPGA的音乐硬件演奏电路设计
课程名称FPGA系统开发
班级学号23/15/16
学生姓名
指导教师
2015年7月3日
课程设计报告任务书
学号
136********795
136********191
136********852
姓名
刘嘉颖/李滢/陈领
专业
电子信息工程
设计
题目
基于FPGA的音乐硬件演奏电路设计
设
计
技
术
要
求
这是一种运用纯硬件实现乐曲播放的电路,比运用微处理器实现乐曲播放更加复杂。
它运用了强大功能的EDA工具FPGA和硬件描述语言VHDL。
本设计以歌曲《妈妈的吻》来实现乐曲播放电路的功能。
[1]顺序播放乐曲功能:
当电路开始工作时,如果存储器中有多首乐曲,那么演奏电路将从头到尾顺序播放这些乐曲。
[2]循环播放乐曲功能:
当演奏完后一首乐曲时,将自动返回到第一首歌曲开始播放,反复不止,直到关闭电源电路停止工作为止。
[3]乐曲简谱显示功能:
当演奏电路播放乐曲时,能够将当前播放的音符通过一列发光二极管以二进制的形式予以显示。
[4]乐曲高音显示功能:
如果电路正在播放高音音符,那么将有一个发光二极管点亮来显示。
[5]音量大小可调功能:
运用EDA实验箱上的数字功率放大器LM386N,对数控分频器输出的音频信号予以处理,输出大小连续可调的音频信号到扬声器。
设
计
要
求
[1]本次设计在EDA开发平台QUARTUSII9.0上利用VHDL语言设计数控分频器电路,利用数控分频的原理设计音乐硬件演奏电路,并定制LPM-ROM存储音乐数据,以“梁祝”和“月亮代表我的心”两首乐曲为例,将音乐数据存储到LPM-ROM,就达到了以纯硬件的手段来实现乐曲的演奏效果。
只要修改LPM-ROM所存储的音乐数据,将其换成其他乐曲的音乐数据,再重新定制LPM-ROM,连接到程序中就可以实现其它乐曲的演奏。
[2]认真完成本课程设计报告,确保报告的完整性,按时提交,不得抄袭他人成果。
参
考
文
献
[1]康华光,陈大钦.电子技术基础数字部分(第四版)[M].高等教育出版社,1987:
45-59.
[2]潘松.EDA技术实用教程[M].北京:
科学教育出版社,2006:
2-38.
[3]卢毅编著.VHDL与数字电路设计[M].北京.科技大学出版,2001:
38-40.
[4]侯佰亨,顾新编著.VHDL硬件描述语言与实际应用[M].西安.西安电子科社,2000:
269-280.
[5]谢自美.电子线路设计(第二版)[M].华中科技大学出版社,2000:
130-135.
[6]王金明.数字系统设计与verilogHDL(第四版)[M].电子工业出版社,2011:
264-270.
课程设计报告成绩
姓名:
刘嘉颖/李滢/陈领学号:
23/15/16专业:
电子信息工程
课程设计题目:
基于FPGA音乐硬件演奏系统设计
指导教师评语:
成绩:
指导教师:
年月日
摘要
数据采集系统是信号与信息处理系统中不可缺少的重要组成部分,同时也是软件无线电系统中的核心模块,在现代雷达系统以及无线基站系统中的应用越来越广泛。
其中FPGA作为本系统的控制核心和传输桥梁,发挥了极其重要的作用。
通过FPGA不仅完成了系统中全部数字电路部分的设计,并且使系统具有了较高的可适应性、可扩展性和可调试性。
FPGA是近年来广泛应用的超大规模、超高速的可编程逻辑器件,由于其具有高集成度、高速、可编程等优点,大大推动了数字系统设计的单片化、自动化,缩短了单片数字系统的设计周期、提高了设计的灵活性和可靠性,在超高速信号处理和实时测控方面有非常广泛的应用。
本文对FPGA的数据采集与处理技术进行研究,基于FPGA在数据采样控制和信号处理方面的高性能和单片系统发展的新热点,把FPGA作为整个数据采集与处理系统的控制核心。
关键词:
FPGA,采集和控制,单片机,电路板,VHDL
绪论
1.1引言
随着计算机技术的飞速发展和普及,数据采集系统也迅速地得到应用。
在生产过程中,应用这一系统可对生产现场的工艺参数进行采集、监视和记录,为提高产品质量、降低成本提供信息和手段。
在科学研究中,应用数据采集系统可获得大量的动态信息,是研究瞬间物理过程的有力工具,也是获取科学奥秘的重要手段之一。
随着技术的发展,各种各样基于数字化的产品不断推陈出新,给我们的生活带来了极大的好处。
数字化之所以能如此得到广泛拓展开来,其主要在于以下两个优点:
1、数字处理灵活、方便。
在软件无线电领域,正在构建~个较通用的平台,通过软件来实现现在许多“僵化”硬件平台的功能。
这正是基于数字化带来的灵活性。
2、数字系统稳定可靠。
在早期,较之模拟系统,数字系统的最优点就在于有良好的稳定性。
1.2EDA简介
EDA是电子设计自动化(ElectrONicDesignAUTOMATION)的缩写,在20世纪90年代初从计算机辅助设计(CAD)、计算机辅助制造(CAM)、计算机辅助测试(CAT)和计算机辅助工程(CAE)的概念发展而来的。
EDA技术就是以计算机为工具,设计者在EDA软件平台上,用硬件描述语言HDL完成设计文件,然后由计算机自动地完成逻辑编译、化简、分割、综合、优化、布局、布线和仿真,直至对于特定目标芯片的适配编译、逻辑映射和编程下载等工作。
EDA技术的出现,极大地提高了电路设计的效率和可操作性,减轻了设计者的劳动强度。
1.3FPGA简介
FPGA是英文FieldProgrammableGateArray的缩写,即现场可编程门阵列,它是在PAL、GAL、EPLD等可编程器件的基础上进一步发展的产物。
它是作为专用集成电路(ASIC)领域中的一种半定制电路而出现的,既解决了定制电路的不足,又克服了原有可编程器件门电路数有限的缺点。
FPGA采用了逻辑单元阵列LCA(LogicCellArray)这样一个新概念,内部包括可配置逻辑模块CLB(ConfigurableLogicBlock)、输出输入模块IOB(InputOutputBlock)和内部连线(Interconnect)三个部分。
FPGA的基本特点主要有
1)采用FPGA设计ASIC电路,用户不需要投片生产,就能得到合用的芯片。
2)FPGA可做其它全定制或半定制ASIC电路的中试样片。
3)FPGA内部有丰富的触发器和I/O引脚。
4)FPGA是ASIC电路中设计周期最短、开发费用最低、风险最小的器件之一。
5)FPGA采用高速CHMOS工艺,功耗低,可以与CMOS、TTL电平兼容。
可以说,FPGA芯片是小批量系统提高系统集成度、可靠性的最佳选择之一。
目前FPGA的品种很多,有XILINX的XC系列、TI公司的TPC系列、ALTERA公司的FIEX系列等。
FPGA是由存放在片内RAM中的程序来设置其工作状态的,因此,工作时需要对片内的RAM进行编程。
用户可以根据不同的配置模式,采用不同的编程方式。
加电时,FPGA芯片将EPROM中数据读入片内编程RAM中,配置完成后,FPGA进入工作状态。
掉电后,FPGA恢复成白片,内部逻辑关系消失,因此,FPGA能够反复使用。
FPGA的编程无须专用的FPGA编程器,只须用通用的EPROM、PROM编程器即可。
当需要修改FPGA功能时,只需换一片EPROM即可。
这样,同一片FPGA,不同的编程数据,可以产生不同的电路功能。
因此,FPGA的使用非常灵活。
FPGA有多种配置模式:
并行主模式为一片FPGA加一片EPROM的方式;主从模式可以支持一片PROM编程多片FPGA;串行模式可以采用串行PROM编程FPGA;外设模式可以将FPGA作为微处理器的外设,由微处理器对其编程。
1.4VHDL语言简介
VHDL的英文全名是VHSICHardwareDescriptionLanguage(VHSIC硬件描述语言)。
VHSIC是VeryHighSpeedIntegratedCircuit的缩写,是20世纪80年代在美国国防部的资助下始创的,并最终导致了VHDL语言的出现。
1987年底,VHDL被IEEE和美国国防部确认为标准硬件描述语言。
VHDL主要用于描述数字系统的结构,行为,功能和接口。
除了含有许多具有硬件特征的语句外,VHDL的语言形式和描述风格与句法是十分类似于一般的计算机高级语言。
VHDL的程序结构特点是将一项工程设计,或称设计实体(可以是一个元件,一个电路模块或一个系统)分成外部(或称可视部分,及端口)和内部(或称不可视部分),既涉及实体的内部功能和算法完成部分。
在对一个设计实体定义了外部界面后,一旦其内部开发完成后,其他的设计就可以直接调用这个实体。
这种将设计实体分成内外部分的概念是VHDL系统设计的基本点
1.5QuartusII简介
QuartusII可以在XP、Linux以及Unix上使用,除了可以使用Tcl脚本完成设计流程外,提供了完善的用户图形界面设计方式。
具有运行速度快,界面统一,功能集中,易学易用等特点。
QuartusII支持Altera的IP核,包含了LPM/MegaFunction宏功能模块库,使用户可以充分利用成熟的模块,简化了设计的复杂性、加快了设计速度。
对第三方EDA工具的良好支持也使用户可以在设计流程的各个阶段使用熟悉的第三方EDA工具。
此外,QuartusII通过和DSPBuilder工具与Matlab/Simulink相结合,可以方便地实现各种DSP应用系统;支持Altera的片上可编程系统(SOPC)开发,集系统级设计、嵌入式软件开发、可编程逻辑设计于一体,是一种综合性的开发平台。
QuartusII图标MaxplusII作为Altera的上一代PLD设计软件,由于其出色的易用性而得到了广泛的应用。
目前Altera已经停止了对MaxplusII的更新支持,QuartusII与之相比不仅仅是支持器件类型的丰富和图形界面的改变。
Altera在QuartusII中包含了许多诸如SignalTapII、ChipEditor和RTLViewer的设计辅助工具,集成了SOPC和HardCopy设计流程,并且继承了MaxplusII友好的图形界面及简便的使用方法。
AlteraQuartusII作为一种可编程逻辑的设计环境,由于其强大的设计能力和直观易用的接口,越来越受到数字系统设计者的欢迎。
1.6数据采集技术简介
数据采集,又称数据获取,是利用一种装置,从系统外部采集数据并输入到系统内部的一个接口。
数据采集技术广泛应用在各个领域。
比如摄像头,麦克风,都是数据采集工具。
被采集数据是已被转换为电讯号的各种物理量,如温度、水位、风速、压力等,可以是模拟量,也可以是数字量。
采集一般是采样方式,即隔一定时间(称采样周期)对同一点数据重复采集。
采集的数据大多是瞬时值,也可是某段时间内的一个特征值。
准确的数据量测是数据采集的基础。
数据量测方法有接触式和非接触式,检测元件多种多样。
不论哪种方法和元件,均以不影响被测对象状态和测量环境为前提,以保证数据的正确性。
数据采集含义很广,包括对面状连续物理量的采集。
在计算机辅助制图、测图、设计中,对图形或图像数字化过程也可称为数据采集,此时被采集的是几何量(或包括物理量,如灰度)数据。
在互联网行业快速发展的今天,数据采集已经被广泛应用于互联网及分布式领域,数据采集领域已经发生了重要的变化。
首先,分布式控制应用场合中的智能数据采集系统在国内外已经取得了长足的发展。
其次,总线兼容型数据采集插件的数量不断增大,与个人计算机兼容的数据采集系统的数量也在增加。
国内外各种数据采集机先后问世,将数据采集带入了一个全新的时代。
第一章总体设计
2.1硬件设计
2.1.1线性电源模块
根据系统要求,需提供+12V、-12V、+5V的电源。
因此我采用了滤波电容、防自激电容、LED灯及固定式三端稳压器LM7905、LM7812和LM7912等器件搭建成能产生精度高、稳定度好的直流输出电压的线性电源电路。
系统的线性电源电路部分原理图如图1所示:
图1系统的线性电源模块电路
当电路接通后,如果LED灯亮起,则代表能产生出要求的电压。
为了实验的携带方便,我另外再加上电源变压器和整流电桥。
2.1.2数据采集模块
系统采用ADC0809进行数据采集。
ADC0809是逐次逼近式A/D转化器,由8位A/D转换器、8路多路开关以及微处理机兼容组成的控制逻辑的CMOS组件。
ADC0809每进行一次比较,即决定数字码中的以为码的去留操作,需要8个时钟的脉冲,而它是8位A/D转换器,所以它完成一次转换需要8*8=64个时钟,这样它的转换时间为t=64*(1/f),f为时钟频率。
系统用的时钟为500KHz,所以ADC0809的转换时间为128us[6]。
因为采样时需要满足采样定理,即采样频率需要大于等于输入信号最高频率的2倍,所以ADC0809能采样的最高频率为3906.25Hz。
ADC0809的主要特性:
1.分辨率为8位。
2.具有转换启停控制端。
3.单个+5V电源供电。
4.模拟输入电压范围0~+5V,不需要零点和满刻度校准。
系统中由可调电位器提供。
5.工作温度范围为-40~+85摄氏度。
6.低功耗,约15mW。
它的内部逻辑结构如图2所示:
图2ADC0809内部逻辑结构
ADC0809引脚排列如图3所示:
图3ADC0809引脚排列
ADC0809实物图如图4:
图4ADC0809实物图
ADC0809为28引脚双列直插式封装,各引脚含义如下:
IN0-IN7:
8位模拟量输入引脚。
D0-D7:
8位数字输出量引脚。
START:
A/D转换启动信号输入端。
EOC:
转换结束信号输出引脚,开始转换时为低电平,当转换结束时为高电平。
OE:
输出允许控制端,用以打开三态数据输出锁存器。
CLK:
时钟信号输入端。
VCC:
+5V工作电压。
VREF(+):
参考电压正端。
GND:
地。
VREF(-):
参考电压负端。
ALE:
地址锁存允许信号输入端。
ABC:
地址输入线。
系统的数据采集模块部分电路原理图如图5所示:
图5系统数据采集模块电路
当ALE高电平有效时,因为ABC接的都是低电平,所以选择的是IN0通道。
当START为上跳沿时,所有内部寄存器清零;下跳沿时,开始A/D转换;在转换期间,START需保持低电平不变。
而当EOC为高电平时,表明A/D转换结束。
当OE=1时,输出转换得来的数据;否则,输出数据线呈高阻态。
2.1.3数据输出模块
系统采用的数据输出为DAC0832。
DAC0832是8分辨率的D/A转换集成芯片,由8位输入锁存器、8位DAC寄存器、8位D/A转换电路及转换控制电路构成。
它因为价格低廉、接口简单、转换控制容易等优点,而得到了广泛的应用[7]。
DAC0832的主要参数有:
1.分辨率为8位。
2.转换时间为1us。
3.满量程误差为±1LSB。
4.参考电压为-10~+10V。
5.供电电源为+5~+15V。
6.逻辑电平输入与TTL兼容。
它的内部逻辑结构如图6所示:
图6DAC0832内部逻辑结构
DAC0832引脚排列如图7所示:
图7DAC0832引脚排列
DAC0832实物图如图8:
图8DAC0832实物图
各引脚含义如下:
CS:
片选信号输入线(选通数据锁存器),低电平有效。
WR1:
数据锁存器写选通输入线,负脉冲(脉宽应大于500ns)有效。
AGND:
模拟信号地。
D0~D7:
8位数据输入线。
VREF:
基准电压输入线,范围为-10V~+10V。
Rfb:
反馈信号输入线,可通过改变Rfb端外接电阻值来调整转换满量程精度。
DGND:
数字信号地。
IOUT1:
电流输出端1,其值随DAC寄存器的内容线性变化。
IOUT2:
电流输出端2,其值与IOUT1值之和为一常数。
XFER:
数据传输控制信号输入线,低电平有效。
WR2:
DAC寄存器选通输入线,负脉冲(脉宽应大于500ns)有效。
ILE:
数据锁存允许控制信号输入线,高电平有效。
VCC:
电源输入端,范围为+5V~+15V。
本实验用的是+5V。
DAC0832的输出放大和滤波电路采用TL082芯片搭建。
TL082是一通用J-FET双运算放大器。
它的内部结构和引脚排列如图9所示:
图9TL082内部结构和引脚排列
TL082为8引脚双列直插式封装,各引脚含义如下:
(1)Output1——输出1;
(2)Invertinginput1——反向输入1;
(3)Non-invertinginput1——正向输入1;
(4)Vcc-——电源-12V;
(5)Non-invertinginput2——正向输入2;
(6)Invertinginput2——反向输入2;
(7)Output2——输出2;
(8)Vcc+——电源+12V。
系统的数据输出电路部分原理图如图10所示:
图10系统数据输出模块电路
2.1.4按键控制模块
系统采用两个按键开关设计正/负电平输入信号电路,作按键控制模块。
一个按键控制CLR,另一个按键控制WREN。
两个按键开关电路如图11所示:
图11系统按键控制模块电路
2.2软件设计
2.2.1ADCINT设计
ADCINT是控制0809的采样状态机。
由ADC0809驱动程序生成的原理图如图12所示:
图12ADCINT
ADCINT仿真图如图13所示:
图13ADCINT仿真图
2.2.2CNT10B设计
CNT10B中有一个用于RAM的9位地址计数器,它的工作时钟CLK0由WREN控制:
当WREN=‘1’时,CLK0=LOCK0,LOCK0来自于ADC0809采样控制器,这时处于采样允许阶段,RAM的地址锁存时钟inclock=CLKOUT=LOCK0;这样每当一个LOCK0的脉冲通过ADC0809时采到一个数据,并将它存入RAM中。
当WREN=‘0’时,采样禁止,允许读出RAM中的数据。
把示波器接到DAC0832的输出端就能看到波形。
CNT10B原理图如图14所示:
图14CNT10B
2.2.3RAM8设计
RAM8是LAM_RAM,它有8位数据线和9位地址线。
WREN是写时能,高电平有效。
RAM8原理图如图15所示:
图15RAM8
2.2.4时钟控制设计
由芯片EP2C8Q208C8N产生的20MHz的时钟做输入,经过分频以后,一路输出与芯片EP2C8Q208C8N的169引脚相连的500KHz的时钟,另一路则输出给ADC0809供电的10KHz的时钟。
时钟控制原理图如图16所示:
图16时钟控制
2.2.5系统顶层设计
系统顶层原理框图如图17所示,图中D为8位数据输入,CLK为系统时钟输入信号频率,由系统时钟信号输入电路控制。
Q为RAM8的8位输出,与DAC083。
图17系统顶层原理框图
系统顶层仿真图如图18所示:
18系统顶层仿真图
第三章系统软硬件调试
根据系统总体要求,把写好的VHDL程序进行引脚锁定,综合,适配,编程下载,调试。
将线性电源模块、数据采集模块、FPGA模块、数据输出模块及按键控制模块连接好,时钟频率由系统时钟信号输入电路提供,然后通过JTAG下载模式在线将生成的配置文件写入芯片中,如图19所示:
图19程序下载
通过反复调试、修改、功能验证确认无误后,用示波器探头接DAC0832输出端。
测得的实验数据见表1:
表1系统测试数据
输入波形的频率
输出波形的频率
50.050Hz
50.031Hz
99.630Hz
99.611Hz
113.77Hz
113.40Hz
150.24Hz
150.29Hz
199.18Hz
199.22Hz
250.61Hz
250.53Hz
300.54Hz
300.59Hz
350.96Hz
351.03Hz
407.50Hz
407.40Hz
测得的数据范围从50.050Hz到407.50Hz,平均相对误差为0.0039,具有较高的精度,基本达到了设计要求。
结论
本设计从可编程逻辑器件(FPGA)着手,用VHDL语言,结合ADC0809、DAC0832、TL082等芯片实现了数据采集与输出。
首先通过对数据采集原理进行分析,总体上提出实现数据采集与输出方案,通过CNT10B和RAM8等模块的设计,用FPGA实现了数据的采集与输出,并完成了软硬件设计和调试。
其放大电路和滤波电路用的芯片是TL082,其放大倍数合适,低通滤波性能较好,输出波形较为平滑。
同时,设计中还存在一些不足之处,主要表现在以下几个方面。
第一,外围电路的数据采集模块不够理想,成为影响波形输出的主要因素,可以用更好的AD芯片。
第二,滤波部分可以找到更合适的滤波器件,以提高波形的平滑度。
第三,RAM8采用8位,针对输出平坦度不够的问题,可以通过软硬件修正的方法来解决,可以扩充ROM的容量。
设计中何帅帅负责程序编写和软件仿真,罗腾利负责编写报告,周彪负责资料查找。
致谢
首先要感谢指导老师王栋的严格指导和亲切关怀,从一开始选题方向的指导,以及VHDL程序上的帮助,又提供了实验室这么好的良好的设计环境和条件,最终才使我能够顺利完成项目的设计,老师兢兢业业的工作精神、踏实真诚的处事态度也让我受益匪浅。
值此成文之际,我向老师表示衷心的感谢。
同时也感谢同组的同学以及我们专业其他同学,此次设计的顺利完成少不了你们的毫无保留帮助和倾尽全力的支持,在此我衷心感谢你们。
由于自身水平有限,设计中难免存在一些不足之处,敬请老师批评指正。
参考文献
[1]潘松,黄继业.EDA技术实用教程(第三版)[M].北京:
科学出版社,2006:
1-2
[2]赵曙光,郭万有.可编程逻辑器件原理、开发与应用[M].西安:
电子科技大学出版社,2000:
80-85
[3]
[4]甘历.VHDL应用与开发实践[M].北京:
科技出版社,2003:
50-51
[5]徐志军.大规模可编程逻辑器件及其应用[M].成都:
电子科技大学出版社,2000
[6]程佩清.数字信号处理教程[M].北京:
清华大学出版社,2001
[7]王金明.数字系统设计与VerilogHDL[M].北京:
电子工业出版社,2001
[8]UweMeyer-Baese.数字信号处理的FPGA实现[M].北京:
清华大学出版社,2002
附录
时钟控制的VHDL源程序:
libraryieee;
useieee.std_logic_1164.all;
useieee.std_logic_arith.all;
useieee.std_logic_unsigned.all;
ent
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 FPGA 音乐 硬件 演奏 电路设计