引言
大规模可编程逻辑器件CPLD和FPGA是当今应用最广泛的两类可编程逻辑器件,电子设计工程师利用它可以在办公室或实验室设计出所自己所需要的专用芯片和专用产品,从而大大缩短了产品上市时间,降低了开发成本。此外,可编程逻辑器件还具有静态可重复编程和动态在系统重构的特性,使得硬件的功能可以像软件一样通过编程来修改,这样就极大的提高了电子系统设计的灵活性和通用性。
1 工作原理
MIDI音乐是Windows下的一种合成音乐,由于它通过记谱的方式来记录一段音乐,因此与wave 音乐相比,它可以极大的减少存储容量。MIDI音乐的基本原理:组成乐曲的每一个音符的频率值(音调)及其持续的时间(音长)是乐曲能连续演奏的两个基本数据,因此只要控制输出到扬声器的激励信号的频率的高低和每个频率信号持续时间,就可以使扬声器发出连续的乐曲。
图1是本文设计的音乐播放器的原理框图。该音乐编码器内储存着预先设定的四首歌曲的编码,通过改变音乐选择开关的状态可以决定当前要播放哪首音乐。音乐编码器控制着音调发生器和彩灯闪烁控制器,每当音乐节奏时钟送给音乐编码器一个时钟脉冲时,音乐编码器就将当前要播放的音符的编码送给音调发生器和彩灯闪烁控制器。音调发生器根据编码对应的分频系数将2MHz的基准时钟分频,得到当前要播放的音符所对应频率的脉冲,再用这个脉冲去激励扬声器,就可以得到这个音符的声音。彩灯闪烁控制器根据编码将当前要播放的音符对应的彩灯亮灭状态送给彩灯。
其中音调发生器、音乐编码器、彩灯控制器这三项功能可由ALTERA公司可编程逻辑器件(CPLD)EPF10LC84-4芯片,采用VHDL语言来完成[1-3]。音频放大器、彩灯、各种时钟可由具体的外围电路来实现。
2.MIDI音乐发生器芯片的设计
本设计的关键是要准确地产生音乐中各音符所对应的频率信号,并根据乐曲要求按节拍输出。为了减少系统复杂性,本设计根据可变模值计数器的原理,按照乐曲要求定时改变计数器的预置数,即可产生乐曲所需要的频率信号。芯片原理框图如图2所示,芯片是采用VHDL硬件描述语言,在MUXPLUS II环境下设计的。