基於PLD技術的MIDI音樂播放控制系統設計

學識都 人氣:7.8K

引言

基於PLD技術的MIDI音樂播放控制系統設計

系統的設計是依據MIDI音樂基本原理,結合PLD技術,採用ALTERA公司的可編程邏輯器件CPLDEPM240T100C5作爲控制單元來實現。系統的核心是運用VHDL語言進行編程,在CPLD內部設計出音調發生器、音樂編碼器、彩燈閃爍控制三個模塊。外圍可配時鐘、彩燈、開關、揚聲器等設備,從而實現音樂選擇控制播放、彩燈隨音樂節奏閃爍變化等功能的PLD應用系統。

一、系統組成

如圖1所示,是系統組成的原理框圖。其核心模塊爲CPLD芯片,內部有音調發生器、音樂編碼器和彩燈閃爍控制器三個模塊。音樂編碼器內儲存着預先設定的歌曲編碼,通過改變音樂選擇開關的狀態可以決定當前要播放哪首音樂。音樂編碼器控制着音調發生器和彩燈閃爍控制器,每當音樂節奏時鐘送給音樂編碼器一個時鐘脈衝時,音樂編碼器就當前要播放的音符的編碼送給音調發生器和彩燈閃爍控制器。音調發生器根據編碼對應的分頻係數將基準時鐘分頻,得到當前要播放的音符所對應頻率的脈衝,再用這個脈衝去激勵揚聲器,就可以得到這個音符的聲音。彩燈閃爍控制器根據編碼將當前要播放的音符對應的彩燈亮滅狀態發送給彩燈。核心部分CPLD利用VHDL語言來完成,其他部分通過外圍電路實現。

圖1 系統組成原理框圖

二、MIDI 音樂播放器芯片設計

MIDI音樂是Windows下的一種合成音樂,由於它通過記錯的方式來記錄一段音樂,因此與wave音樂相比,它可以極大地減少存儲容量。MIDI音樂的基本原理爲:組成樂曲的每一個音符的頻率值及持續的時間是樂曲能連續演奏的兩個基本數據,因此只要控制輸出到揚聲器的激勵信號頻率的高低和每一個頻率信號的持續時間,就可以使揚聲器發生連續的樂曲。如圖2所示,爲CPLD內部芯片設計原理圖。

圖2 CPLD芯片設計原理圖

三、系統控制模塊設計

3.1 音樂編碼器模塊設計

此模塊包括節拍控制電路和音符產生電路。節拍控制電路以樂曲中最短音符的節拍爲基準,產生樂曲所需要的全部節拍。將1/16音符設置爲計數器的一個數,對應的1/4音符則是四個計數。在設計中爲了讓歌曲循環播放,計數器設定計滿自動清零計數的`功能,只要不斷電,不關開關,歌曲就可以自動循環播放。

3.2 音調發生模塊設計

此模塊包括預置數產生電路和頻率發生器。預置數產生電路採用查找表形式,按照音符的頻率要求產生相應的預置數。根據可變模值計數器的設計原理及音符的分頻係數,可算出樂曲中各音符的預置數。

頻率發生器由可變模值計數器實現。由於係數要求產生出的信號頻率較高,因此選用4MHz高頻率脈衝作爲可變模值計數器的計數脈衝,而爲了減少輸出的偶次諧波分量,最後輸出到揚聲器的波形應爲應爲對稱方波,因此在到達揚聲器之前,有一個2分頻的分頻器。

3.3 彩燈閃爍控制模塊設計

彩燈閃爍控制電路主要是控制燈的亮和滅,此電路輸出高低電平信號,就可以直接驅動發光二極管。在彩模塊,設計爲不同音符,對應不同的亮滅,這樣,當音樂演奏起來的時候,隨着音符的變化,彩燈也因爲不同的音符閃爍起來。

3.4 開關選擇模塊設計

採用case語句,對外部電路輸入的一個音符串進行判斷,芯片內部處理這個字符串,從而判斷選擇的是哪首歌曲的播放。

3.5 頂層模塊設計

採用VHDL語言進行頂層模塊設計,如圖3,將上述所提到的所有模塊,利用component語句進行集合,然後利用管腳映射的方法,將所有輸入輸出連接在一起,這樣就設計出了一個完整的MIDI音樂播放芯片,只需要再接入外圍電路即可進行演示。

圖3 頂層模塊原理圖

四、仿真實現

將各設計模塊在 Quartus II 軟件平臺上進行仿真調試校驗,設計系統頂層模塊的仿真波形圖如圖4所示。

圖4 頂層模塊的仿真波形圖