摘要:本音樂(lè)播放器依據(jù)MIDI音樂(lè)基本原理,,結(jié)合EDA技術(shù),,采用ALTERA公司的可編程邏輯器件(CPLD)EPF10LC84-4作為控制核心而設(shè)計(jì)的。本文主要闡述了利用VHDL語(yǔ)言設(shè)計(jì)MIDI音樂(lè)發(fā)生器芯片,,再配上必要的外圍電路,,從而實(shí)現(xiàn)四首音樂(lè)選擇播放,、并配有隨音樂(lè)節(jié)奏而閃爍變化的彩燈等功能的EDA應(yīng)用系統(tǒng)。
0 引言
大規(guī)??删幊踢壿嬈骷﨏PLD和FPGA是當(dāng)今應(yīng)用最廣泛的兩類可編程邏輯器件,,電子設(shè)計(jì)工程師利用它可以在辦公室或?qū)嶒?yàn)室設(shè)計(jì)出所自己所需要的專用芯片和專用產(chǎn)品,從而大大縮短了產(chǎn)品上市時(shí)間,,降低了開(kāi)發(fā)成本,。此外,可編程邏輯器件還具有靜態(tài)可重復(fù)編程和動(dòng)態(tài)在系統(tǒng)重構(gòu)的特性,,使得硬件的功能可以像軟件一樣通過(guò)編程來(lái)修改,,這樣就極大的提高了電子系統(tǒng)設(shè)計(jì)的靈活性和通用性。
1 工作原理
MIDI音樂(lè)是Windows下的一種合成音樂(lè),,由于它通過(guò)記譜的方式來(lái)記錄一段音樂(lè),,因此與wave 音樂(lè)相比,它可以極大的減少存儲(chǔ)容量,。MIDI音樂(lè)的基本原理:組成樂(lè)曲的每一個(gè)音符的頻率值(音調(diào))及其持續(xù)的時(shí)間(音長(zhǎng))是樂(lè)曲能連續(xù)演奏的兩個(gè)基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲器的激勵(lì)信號(hào)的頻率的高低和每個(gè)頻率信號(hào)持續(xù)時(shí)間,,就可以使揚(yáng)聲器發(fā)出連續(xù)的樂(lè)曲,。
圖1是本文設(shè)計(jì)的音樂(lè)播放器的原理框圖。該音樂(lè)編碼器內(nèi)儲(chǔ)存著預(yù)先設(shè)定的四首歌曲的編碼,,通過(guò)改變音樂(lè)選擇開(kāi)關(guān)的狀態(tài)可以決定當(dāng)前要播放哪首音樂(lè),。音樂(lè)編碼器控制著音調(diào)發(fā)生器和彩燈閃爍控制器,每當(dāng)音樂(lè)節(jié)奏時(shí)鐘送給音樂(lè)編碼器一個(gè)時(shí)鐘脈沖時(shí),,音樂(lè)編碼器就將當(dāng)前要播放的音符的編碼送給音調(diào)發(fā)生器和彩燈閃爍控制器,。音調(diào)發(fā)生器根據(jù)編碼對(duì)應(yīng)的分頻系數(shù)將2MHz的基準(zhǔn)時(shí)鐘分頻,得到當(dāng)前要播放的音符所對(duì)應(yīng)頻率的脈沖,,再用這個(gè)脈沖去激勵(lì)揚(yáng)聲器,,就可以得到這個(gè)音符的聲音。彩燈閃爍控制器根據(jù)編碼將當(dāng)前要播放的音符對(duì)應(yīng)的彩燈亮滅狀態(tài)送給彩燈,。
其中音調(diào)發(fā)生器,、音樂(lè)編碼器、彩燈控制器這三項(xiàng)功能可由ALTERA公司可編程邏輯器件(CPLD)EPF10LC84-4芯片,,采用VHDL語(yǔ)言來(lái)完成[1-3],。音頻放大器、彩燈,、各種時(shí)鐘可由具體的外圍電路來(lái)實(shí)現(xiàn),。
2.MIDI音樂(lè)發(fā)生器芯片的設(shè)計(jì)
本設(shè)計(jì)的關(guān)鍵是要準(zhǔn)確地產(chǎn)生音樂(lè)中各音符所對(duì)應(yīng)的頻率信號(hào),并根據(jù)樂(lè)曲要求按節(jié)拍輸出,。為了減少系統(tǒng)復(fù)雜性,,本設(shè)計(jì)根據(jù)可變模值計(jì)數(shù)器的原理,,按照樂(lè)曲要求定時(shí)改變計(jì)數(shù)器的預(yù)置數(shù),即可產(chǎn)生樂(lè)曲所需要的頻率信號(hào),。芯片原理框圖如圖2所示,,芯片是采用VHDL硬件描述語(yǔ)言,在MUXPLUS II環(huán)境下設(shè)計(jì)的,。
圖2 芯片原理圖
圖中節(jié)拍控制電路產(chǎn)生節(jié)拍定時(shí)信號(hào),;音符產(chǎn)生電路按節(jié)拍要求產(chǎn)生樂(lè)曲所需要的音符;預(yù)值數(shù)產(chǎn)生電路受音符控制,,產(chǎn)生該音符頻率相對(duì)應(yīng)的預(yù)置數(shù),,送計(jì)數(shù)器的置入數(shù)據(jù)輸入端。音符頻率發(fā)生器根據(jù)不同的預(yù)置數(shù)產(chǎn)生相應(yīng)的頻率信號(hào),,從而完成樂(lè)曲的演奏功能,。
3 外圍電路設(shè)計(jì)
3.1 音樂(lè)節(jié)奏時(shí)鐘和彩燈閃爍節(jié)奏時(shí)鐘產(chǎn)生電路
我們需要的音樂(lè)節(jié)奏時(shí)鐘是一個(gè)4Hz左右的時(shí)鐘脈沖,其頻率很低,,利用555定時(shí)器構(gòu)成的多諧振蕩器即可產(chǎn)生,,如圖3所示。
555集成定時(shí)器是一種將模擬功能與邏輯功能巧妙結(jié)合在一起的混合集成電路,,555定時(shí)器構(gòu)成的多諧振蕩器電路圖如圖3所示,,由3腳輸出的脈沖頻率的計(jì)算公式為:
改變可變電阻的阻值就可以改變輸出頻率。我們要求輸出的頻率為4Hz,,C=47Uf,,所以R1+R2應(yīng)為7.66K。
音樂(lè)節(jié)奏時(shí)鐘對(duì)整個(gè)音樂(lè)播放器的作用至關(guān)重要,,要求音樂(lè)節(jié)奏時(shí)鐘脈沖非常穩(wěn)定,,這樣才能保證音樂(lè)的流暢播放,否則播放出來(lái)的將是一段雜亂無(wú)章的聲音,,就不是音樂(lè)而是噪聲了,。為了使輸出的脈沖比較穩(wěn)定、減少外界干擾,,將輸出的脈沖再經(jīng)過(guò)D觸發(fā)器(7474)后送給CPLD芯片,,因此555定時(shí)器件腳輸出的脈沖頻率應(yīng)提高一倍(即8Hz),這樣R1+R2的阻值應(yīng)為3.83K,。
彩燈閃爍節(jié)奏時(shí)鐘產(chǎn)生電路與音樂(lè)節(jié)奏時(shí)鐘產(chǎn)生電路原理相同,,也是用555定時(shí)器構(gòu)成的多諧振蕩器來(lái)實(shí)現(xiàn),只是彩燈控制時(shí)鐘產(chǎn)生電路的頻率要比音樂(lè)節(jié)奏時(shí)鐘產(chǎn)生電路的頻率高,,在十幾到幾十赫茲之間,,它的R2值不定,可根據(jù)自己的要求來(lái)定,,如果想要彩燈閃爍快點(diǎn)則頻率就高一些,,想閃爍頻率慢就低一些,。
3.2 音頻功率放大電路
由CPLD芯片輸出的音頻信號(hào)很微弱,不能直接去驅(qū)動(dòng)揚(yáng)聲器,,因此需要一個(gè)音頻放大電路對(duì)輸出的音頻信號(hào)進(jìn)行放大,,然后再去驅(qū)動(dòng)揚(yáng)聲器。我們采用由集成功率放大器LM386組成的音頻功率放大器,,如圖4所示,。其中,C2是交流耦合電容,,將功率放大器的交流輸出送到負(fù)載上,,輸出信號(hào)通過(guò)Rw接到LM386的同相端。C1是退耦電容,,R1-C3網(wǎng)絡(luò)起到消除高頻自激振蕩作用,。
3.4 音樂(lè)選擇開(kāi)關(guān)與彩燈閃爍控制電路
這兩部分電路很簡(jiǎn)單,在音樂(lè)選擇開(kāi)關(guān)電路中(圖5)S1斷開(kāi)時(shí)A端為高電平,,閉合時(shí)A端為低電平,,S2 斷開(kāi)時(shí)B端為高電平,閉合時(shí)B端為低電平,,通過(guò)S1,、S2的開(kāi)與關(guān)來(lái)改變A、B的狀態(tài),,從而實(shí)現(xiàn)對(duì)四首音樂(lè)的選擇。
彩燈閃爍控制電路(圖6)是由發(fā)光二極管構(gòu)成的,,A,、B、C,、D,、E、F,、G,、H八端電平的高低變化控制著八個(gè)發(fā)光二極管的亮滅。
4 系統(tǒng)調(diào)試
把以上各部分電路與預(yù)先設(shè)計(jì)好的MIDI音樂(lè)發(fā)生器芯片(EPF10LC84-4)連接起來(lái),,形成整個(gè)系統(tǒng),。
系統(tǒng)調(diào)試主要是對(duì)音樂(lè)節(jié)奏時(shí)鐘、彩燈控制時(shí)鐘的頻率和音頻功率放大電路進(jìn)行調(diào)試,。
1.音樂(lè)節(jié)奏時(shí)鐘的調(diào)試:音樂(lè)節(jié)奏時(shí)鐘理論要求時(shí)4Hz,,在實(shí)際的演奏過(guò)程中頻率稍微高于4Hz效果較好,通過(guò)改變R1的電阻來(lái)改變音樂(lè)節(jié)奏時(shí)鐘,,從而改變音樂(lè)節(jié)奏,。表1是音樂(lè)節(jié)奏時(shí)鐘調(diào)試過(guò)程中的記錄,。
R1阻值(KΩ)
4.38
3.83
3.40
3.06
節(jié)奏時(shí)鐘頻率(Hz)
3.5
4
4.5
5
音樂(lè)節(jié)奏效果
較慢
稍慢
適中
稍快
經(jīng)過(guò)比較,最終將R1的阻值定在3.4 KΩ,,音樂(lè)節(jié)奏時(shí)鐘的頻率為4.5 Hz,。
2.彩燈控制時(shí)鐘的調(diào)試:彩燈控制時(shí)鐘頻率要求在十幾到幾十赫茲之間。