施奇 毛麗民 張笠君 陳肖帆
常熟理工學院電氣與自動化工程學院,江蘇 常熟 215500
基于FPGA的樂曲演奏電路的設計
施奇 毛麗民 張笠君 陳肖帆
常熟理工學院電氣與自動化工程學院,江蘇 常熟 215500
本文首先運用Visual Basic 進行上位機琴鍵控制界面的程序設計,再利用VHDL語言進行演奏電路的設計,并將該模塊通過QUARTUS II平臺下載到Altera芯片中, 上位機機通過RS232串行口可以直接與FPGA進行通信,完成數(shù)據(jù)交換工作。該演奏電路通過琴鍵控制界面輸入音調(diào),由RS232通信方式控制發(fā)出DO、RE、MI、FA等8個音調(diào),蜂鳴器發(fā)出聲音,完成演奏功能。
FPGA;Visual Basic;RS232通信模塊
FPGA; Visual Basic; RS232 communication module
近幾年在數(shù)字系統(tǒng)設計領域出現(xiàn)了一種全新的設計技術——數(shù)字系統(tǒng)設計自動化(EDA, Electronic Design Automation)技術。該技術具有系統(tǒng)設計效率高、集成度好、保密性強、易于修改、易于實現(xiàn)等優(yōu)點,因此而成為當今數(shù)字系統(tǒng)設計的主流技術,其應用領域也越來越廣泛,其中進行電子琴的實現(xiàn)也是一個重要嘗試和應用,本文研究了一個基于FPGA樂曲演奏電路的設計方案,利用altera的FPGA芯片,在QuartusⅡ平臺下,采用自頂而下的設計思路,結(jié)合VB的程序設計,完成樂曲演奏電路的設計。
1.1 設計要求及功能
該演奏電路能實現(xiàn)八個音鍵的控制以及對于編好的音樂進行播放,根據(jù)各個音調(diào)的頻率的差異,來實現(xiàn)按下不同的音鍵而發(fā)出不同的聲音。當8位發(fā)聲控制鍵輸入中某一位為高電平時,則對應某一音階的初始計數(shù)值作為獲得該音階的分頻預置值將送入預制數(shù)計數(shù)器;預制數(shù)計數(shù)器輸出相應的頻率同時輸出對應該音階簡譜的顯示代碼;該頻率經(jīng)二分頻器后送入揚聲器,揚聲器就可發(fā)出對應音符的聲音,同時在數(shù)碼管上顯示該音名。
1.2 總體功能示意圖
圖1 系統(tǒng)功能示意圖
本設計采用A ltera第一代Cyclone系列FPGA EP1C6,該器件基于全1.5V SRAM工藝,容量從2910至20060個邏輯單元具有多達294912bit 嵌入RAM Cyclone FPGA支持各種單端I/O 標準。EP1C6 有4000個邏輯單元(LE),有17個M 4K RAM 塊,有兩個PLL。主要電路圖如下所示:
圖2 蜂鳴器電路圖
U 3為蜂鳴器當IO134 輸出不同頻率出來時,U 3 蜂鳴器會發(fā)出相應的聲音。
根據(jù)HBN評分情況進行效果標準評價[3]:(1)治愈,面部癥狀全部消失,面神經(jīng)功能完全恢復,面部運動正常;(2)顯效,面部癥狀基本消失,存在輕微功能減弱,靜止狀態(tài)下面部對稱,張力無異常,眼睛可完全閉合,口有輕微不對稱;(3)有效,明顯功能減弱,靜止狀態(tài)下面部對稱,張力無異常,抬眉額紋對稱,用力可閉合眼睛合,口較明顯不對稱;(4)無效,面部癥狀無顯著改善,口無力,眼不能閉??傆行橹斡?、顯效及有效之和。
圖3 電源電路圖
FPGA 核心供電部分采用AMS1117-1.5V LDO 芯片,能提供1.5V 800 毫安的電流。
圖4 RS232電路圖
U 1是MAX 3232,負責將TTL的電平轉(zhuǎn)為2 3 2電平,C 1,C 4,C 5,C 3 均是M A X 323 2所需要的外圍電路,LED 1、LED2 是兩個LED燈,它們分別在RS232數(shù)據(jù)接收和數(shù)據(jù)發(fā)送線上, 當有數(shù)據(jù)發(fā)送或接收時,它們會閃爍,表示正在發(fā)送或接收數(shù)據(jù),可以根據(jù)這兩個LED 燈判斷是否有數(shù)據(jù)經(jīng)過。
3.1 上位機的設計
在PC機上運用Visual Basic編寫上位機琴鍵控制界面,如下圖所示:
圖5 琴鍵控制界面
3.2 電子琴演奏電路的設計
電子琴演奏電路在Quartus II9.0 環(huán)境下采用頂層原理圖設計。
3.2.1 程序設計流程圖如下所示
圖6 程序流程圖
3.2.2 頂層電路圖
圖 7系統(tǒng)頂層電路圖
(1)COU N T模塊
由于設計中RDX輸入的數(shù)據(jù)是以9600b/s傳送的,那么需要一個接收同步信號的部分,用12MH時鐘信號通過COUNT模塊分1250倍頻得到9600H z的頻率來實現(xiàn)同步接收。
圖8 COUNT模塊
(2)SC模塊
SC模塊完成接收數(shù)據(jù)工作,RS232傳送一個數(shù)據(jù)或者字符需要10位,即1位啟動位加8位數(shù)據(jù)位,1個停止位。在SC模塊中,通過集數(shù)方式來接受一位數(shù)據(jù),一旦檢測到1位啟動位即低電平,就開始接受PC機送出的ASCII碼,并開始計算,收到8位數(shù)據(jù)寄存后開始清零,完成一位數(shù)據(jù)的接收,輸出8位ASC II碼。
圖9 SC模塊
(3)TONETABA模塊
TONETABA模塊完成ASCII碼轉(zhuǎn)換為四位BCD碼輸出顯示,另外控制頻率值,來控制SPEAKER的頻率發(fā)音。
圖10 TONETABA模塊
(4)SPEA KER模塊
SPEAK ER模塊實際上就是一個分頻器,通過對12M H z分頻產(chǎn)生不同的音符。
圖11 SPEAKER模塊
3.2.3 仿真結(jié)果
在程序設計完成及編譯成功后,對系統(tǒng)進行了仿真,得到如下的圖形。
圖11 仿真電路圖
本設計進行了系統(tǒng)的調(diào)試和功能驗證并利用QuartusII9.0軟件生成.sof文件,下載到A ltera EP1C6T144C8N中,實際結(jié)果表明本系統(tǒng)設計的電子琴及硬件播放的音樂全部技術指標和功能很好地符合設計的要求,發(fā)聲準確,滿足了設計要求。
[1]鄒益. FPGA/CPLD技術實用教程[M].北京:中國石化出版社.2010
[2]黃秋元,陳適. FPGA應用技術基礎教程[M].北京:電子工業(yè)出版社.2009
[3]田耘,徐文波.Xilinx FPGA開發(fā)實用教程[M].北京:清華大學出版社.2008
[4]曹瑞,盧印舉. EDA技術與CPLD/FPGA開發(fā)應用簡明教程[M].北京:清華大學出版社.2007
Music performance circuit design based on FPGA
Shi qi Mao Limin Zhang Lijun Chen Xiaofan
School of Electrical and Automation Engineering,Changshu Institute of Technology,changshu 21500,china
This paper design the Keyboard control interface using Visual Basic,then design performed circuit using VHDL Language,download the module to the Altera chip through the QUARTUS II platform, PC communicate with the FPGA via RS232 serial port to exchange the data .The performance circuit input tone through Keyboard control interface,The DO,RE, MI, FA, etc. 8 tones is controlled by the RS232 communication ,make the buzzer sounds,complete the Music performance
TP316
A
10.3969/j.issn.1001-8972.2011.10.076
施奇(1 9 8 9-),男, 漢族,江蘇南京人,常熟理工學院電氣與自動化工程學院。