基于PLD技術(shù)的MIDI音樂播放控制系統(tǒng)設(shè)計(jì)論文
MIDI音樂是Windows下的一種合成音樂,由于它通過記錯(cuò)的方式來記錄一段音樂,因此與wave音樂相比,它可以極大地減少存儲容量。
今天學(xué)習(xí)啦小編要與大家分享的是:基于PLD技術(shù)的MIDI音樂播放控制系統(tǒng)設(shè)計(jì)相關(guān)論文。具體內(nèi)容如下,歡迎參考閱讀:
基于PLD技術(shù)的MIDI音樂播放控制系統(tǒng)設(shè)計(jì)
引言
系統(tǒng)的設(shè)計(jì)是依據(jù)MIDI音樂基本原理,結(jié)合PLD技術(shù),采用ALTERA公司的可編程邏輯器件CPLDEPM240T100C5作為控制單元來實(shí)現(xiàn)。系統(tǒng)的核心是運(yùn)用VHDL語言進(jìn)行編程,在CPLD內(nèi)部設(shè)計(jì)出音調(diào)發(fā)生器、音樂編碼器、彩燈閃爍控制三個(gè)模塊。外圍可配時(shí)鐘、彩燈、開關(guān)、揚(yáng)聲器等設(shè)備,從而實(shí)現(xiàn)音樂選擇控制播放、彩燈隨音樂節(jié)奏閃爍變化等功能的PLD應(yīng)用系統(tǒng)。
1、 系統(tǒng)組成
如圖1所示,是系統(tǒng)組成的原理框圖。其核心模塊為CPLD芯片,內(nèi)部有音調(diào)發(fā)生器、音樂編碼器和彩燈閃爍控制器三個(gè)模塊。音樂編碼器內(nèi)儲存著預(yù)先設(shè)定的歌曲編碼,通過改變音樂選擇開關(guān)的狀態(tài)可以決定當(dāng)前要播放哪首音樂。音樂編碼器控制著音調(diào)發(fā)生器和彩燈閃爍控制器,每當(dāng)音樂節(jié)奏時(shí)鐘送給音樂編碼器一個(gè)時(shí)鐘脈沖時(shí),音樂編碼器就當(dāng)前要播放的音符的編碼送給音調(diào)發(fā)生器和彩燈閃爍控制器。音調(diào)發(fā)生器根據(jù)編碼對應(yīng)的分頻系數(shù)將基準(zhǔn)時(shí)鐘分頻,得到當(dāng)前要播放的音符所對應(yīng)頻率的脈沖,再用這個(gè)脈沖去激勵(lì)揚(yáng)聲器,就可以得到這個(gè)音符的聲音。彩燈閃爍控制器根據(jù)編碼將當(dāng)前要播放的音符對應(yīng)的彩燈亮滅狀態(tài)發(fā)送給彩燈。核心部分CPLD利用VHDL語言來完成,其他部分通過外圍電路實(shí)現(xiàn)。
圖1 系統(tǒng)組成原理框圖
2、 MIDI 音樂播放器芯片設(shè)計(jì)
MIDI音樂是Windows下的一種合成音樂,由于它通過記錯(cuò)的方式來記錄一段音樂,因此與wave音樂相比,它可以極大地減少存儲容量。MIDI音樂的基本原理為:組成樂曲的每一個(gè)音符的頻率值及持續(xù)的時(shí)間是樂曲能連續(xù)演奏的兩個(gè)基本數(shù)據(jù),因此只要控制輸出到揚(yáng)聲器的激勵(lì)信號頻率的高低和每一個(gè)頻率信號的持續(xù)時(shí)間,就可以使揚(yáng)聲器發(fā)生連續(xù)的樂曲。如圖2所示,為CPLD內(nèi)部芯片設(shè)計(jì)原理圖。
圖2 CPLD芯片設(shè)計(jì)原理圖
3、系統(tǒng)控制模塊設(shè)計(jì)
3.1 音樂編碼器模塊設(shè)計(jì)
此模塊包括節(jié)拍控制電路和音符產(chǎn)生電路。節(jié)拍控制電路以樂曲中最短音符的節(jié)拍為基準(zhǔn),產(chǎn)生樂曲所需要的全部節(jié)拍。將1/16音符設(shè)置為計(jì)數(shù)器的一個(gè)數(shù),對應(yīng)的1/4音符則是四個(gè)計(jì)數(shù)。在設(shè)計(jì)中為了讓歌曲循環(huán)播放,計(jì)數(shù)器設(shè)定計(jì)滿自動(dòng)清零計(jì)數(shù)的功能,只要不斷電,不關(guān)開關(guān),歌曲就可以自動(dòng)循環(huán)播放。
3.2 音調(diào)發(fā)生模塊設(shè)計(jì)
此模塊包括預(yù)置數(shù)產(chǎn)生電路和頻率發(fā)生器。預(yù)置數(shù)產(chǎn)生電路采用查找表形式,按照音符的頻率要求產(chǎn)生相應(yīng)的預(yù)置數(shù)。根據(jù)可變模值計(jì)數(shù)器的設(shè)計(jì)原理及音符的分頻系數(shù),可算出樂曲中各音符的預(yù)置數(shù)。
頻率發(fā)生器由可變模值計(jì)數(shù)器實(shí)現(xiàn)。由于系數(shù)要求產(chǎn)生出的信號頻率較高,因此選用4MHz高頻率脈沖作為可變模值計(jì)數(shù)器的計(jì)數(shù)脈沖,而為了減少輸出的偶次諧波分量,最后輸出到揚(yáng)聲器的波形應(yīng)為應(yīng)為對稱方波,因此在到達(dá)揚(yáng)聲器之前,有一個(gè)2分頻的分頻器。
3.3 彩燈閃爍控制模塊設(shè)計(jì)
彩燈閃爍控制電路主要是控制燈的亮和滅,此電路輸出高低電平信號,就可以直接驅(qū)動(dòng)發(fā)光二極管。在彩模塊,設(shè)計(jì)為不同音符,對應(yīng)不同的亮滅,這樣,當(dāng)音樂演奏起來的時(shí)候,隨著音符的變化,彩燈也因?yàn)椴煌囊舴W爍起來。
3.4 開關(guān)選擇模塊設(shè)計(jì)
采用case語句,對外部電路輸入的一個(gè)音符串進(jìn)行判斷,芯片內(nèi)部處理這個(gè)字符串,從而判斷選擇的是哪首歌曲的播放。
3.5 頂層模塊設(shè)計(jì)
采用VHDL語言進(jìn)行頂層模塊設(shè)計(jì),如圖3,將上述所提到的所有模塊,利用component語句進(jìn)行集合,然后利用管腳映射的方法,將所有輸入輸出連接在一起,這樣就設(shè)計(jì)出了一個(gè)完整的MIDI音樂播放芯片,只需要再接入外圍電路即可進(jìn)行演示。
圖3 頂層模塊原理圖
4、 仿真實(shí)現(xiàn)
將各設(shè)計(jì)模塊在 Quartus II 軟件平臺上進(jìn)行仿真調(diào)試校驗(yàn),設(shè)計(jì)系統(tǒng)頂層模塊的仿真波形圖如圖4所示。
圖4 頂層模塊的仿真波形圖