陳 強(qiáng),陳守滿
(安康學(xué)院 科研處,陜西 安康 725000)
基于FPGA的多功能觸摸屏電子琴系統(tǒng)設(shè)計(jì)
陳 強(qiáng),陳守滿
(安康學(xué)院 科研處,陜西 安康 725000)
文章中設(shè)計(jì)的基于FPGA的多功能觸摸屏電子琴具有觸摸屏控制彈奏的暫停與啟動(dòng)、彈奏比較評(píng)分、隨時(shí)儲(chǔ)存?zhèn)€人創(chuàng)作、自動(dòng)播放音樂(lè)等多功能。這是一款體積小、系統(tǒng)可靠性高、開(kāi)發(fā)周期短和研制成本低的便攜式迷你電子琴。其彌補(bǔ)了物理實(shí)體電子琴笨重的不足,實(shí)現(xiàn)了大多數(shù)音樂(lè)愛(ài)好者隨時(shí)記錄音樂(lè)感受隨時(shí)譜曲,方便個(gè)人創(chuàng)作以及電子琴技能練習(xí),也使音樂(lè)教學(xué)更直接、更方便。學(xué)生可自主學(xué)習(xí)電子琴,大大增加了學(xué)生對(duì)電子琴學(xué)習(xí)興趣,給教學(xué)帶來(lái)了極大的便利。
FPGA;電子琴;觸摸屏
隨著電子產(chǎn)品深層潛入人們的生活,不僅大大方便了人們的生活,同時(shí)也實(shí)現(xiàn)了人們對(duì)于美好生活的期許。作為大眾電子音樂(lè)器件—電子琴,因其操作簡(jiǎn)單且能模擬各種傳統(tǒng)樂(lè)器的音色而深受廣大消費(fèi)者喜愛(ài)。目前市場(chǎng)上有很多種音樂(lè)器件,可以直接產(chǎn)生各種樂(lè)曲,多數(shù)為使用單片機(jī)、555定時(shí)器、邏輯組合電路、LDQ852集成塊等傳統(tǒng)方法設(shè)計(jì)的電子琴[1-4]。這些采用傳統(tǒng)方法設(shè)計(jì)的電子琴,通常需要使用單片機(jī)、存儲(chǔ)器和數(shù)字邏輯電路來(lái)進(jìn)行PCB(印刷電路板)板級(jí)的系統(tǒng)集成。盡管這些方案有單片機(jī)軟件的支持較為靈活,但是由于受硬件資源的限制,未來(lái)在對(duì)設(shè)計(jì)的變更和升級(jí)時(shí)不可避免要付出較多的研發(fā)經(jīng)費(fèi)和較長(zhǎng)的投放市場(chǎng)周期的代價(jià)。隨著電子設(shè)計(jì)自動(dòng)化(EDA)技術(shù)的發(fā)展,基于可編程ASIC器件的數(shù)字電子系統(tǒng)設(shè)計(jì)的完整方案越來(lái)越受到人們的重視[5-8],并且以EDA(電子設(shè)計(jì)自動(dòng)化)技術(shù)為核心的能在可編程ASIC器件上進(jìn)行系統(tǒng)芯片集成的新設(shè)計(jì)方法,也正在快速地取代傳統(tǒng)數(shù)字電路設(shè)計(jì)方式。本設(shè)計(jì)項(xiàng)目主要采用DE0 Nano FPGA 開(kāi)發(fā)板和TRDB_LTM觸摸屏實(shí)現(xiàn)多功能電子琴的設(shè)計(jì)。
本設(shè)計(jì)采用現(xiàn)場(chǎng)可編程邏輯器件(FPGA),利用Verilog HDL硬件描述語(yǔ)言編程實(shí)現(xiàn)各個(gè)模塊的功能,最后通過(guò)各個(gè)模塊的協(xié)調(diào)工作來(lái)實(shí)現(xiàn)LCD 觸摸屏電子琴觸摸彈奏、自動(dòng)播放樂(lè)曲、彈奏練習(xí)評(píng)分比較、隨時(shí)隨地保存?zhèn)€人創(chuàng)作的功能。本設(shè)計(jì)的思路是:通過(guò)對(duì)LCD觸摸屏上不同的按鍵進(jìn)行選擇,將采集到的信號(hào)轉(zhuǎn)換成含有音符信號(hào)的代碼以及產(chǎn)生分頻預(yù)置值,采用數(shù)控分頻的方法獲得不同音符對(duì)應(yīng)的頻率,如果是彈奏練習(xí)模式在和ROM中所存儲(chǔ)的頻率做一個(gè)比較輸出本次彈奏的得分;如果是自動(dòng)播放的模式,可以通過(guò)揚(yáng)聲器輸出不同音符對(duì)應(yīng)的音調(diào)以及ROM中所存儲(chǔ)的用于自動(dòng)播放的樂(lè)曲;個(gè)人創(chuàng)作的樂(lè)曲會(huì)自動(dòng)存儲(chǔ)在存儲(chǔ)器中。多功能觸摸電子琴的系統(tǒng)如圖1所示。

圖1 多功能觸摸電子琴的結(jié)構(gòu)
音樂(lè)節(jié)拍發(fā)生器模塊將利用FPGA芯片的內(nèi)部ROM存儲(chǔ)器存放樂(lè)曲簡(jiǎn)譜表,由一個(gè)計(jì)數(shù)器來(lái)為樂(lè)曲數(shù)據(jù)存儲(chǔ)器ROM產(chǎn)生地址。此計(jì)數(shù)器的計(jì)數(shù)頻率為4Hz,即每一計(jì)數(shù)值的停留時(shí)間為0.25s,隨著音樂(lè)節(jié)拍發(fā)生器中的計(jì)數(shù)器以時(shí)鐘頻率4Hz做加法計(jì)數(shù)時(shí),地址值遞增時(shí),樂(lè)曲數(shù)據(jù)ROM存儲(chǔ)器中的音符數(shù)據(jù)依次從ROM中的輸出口輸向音符譯碼電路,所存儲(chǔ)的樂(lè)曲就開(kāi)始連續(xù)自然地演奏起來(lái)。計(jì)數(shù)器的位數(shù)根據(jù)所存放樂(lè)曲簡(jiǎn)譜基本節(jié)拍數(shù)來(lái)決定。
音符譯碼電路相當(dāng)于音調(diào)發(fā)生器,它是一個(gè)音符頻率查表電路,音符譯碼電路模塊放置了21種音樂(lè)簡(jiǎn)譜相對(duì)應(yīng)的頻率值,根據(jù)這些頻率值為數(shù)控分頻模塊提供所發(fā)音符頻率的初始值,音符譯碼電路模塊的作用就是產(chǎn)生獲得音階的分頻預(yù)置值,程序中設(shè)置了21個(gè)音符所對(duì)應(yīng)的音符頻率的初始值。程序中的音符分頻系數(shù)通過(guò)索引值來(lái)進(jìn)行選取,索引值即由LCD觸摸屏掃描電路傳遞來(lái)的當(dāng)前音符的索引值。當(dāng)發(fā)聲控制輸入index中的某一位為高電平時(shí),則對(duì)應(yīng)某一音階的數(shù)值將在端口輸出,該數(shù)值即為該音階的分頻預(yù)置值,分頻預(yù)置值控制數(shù)控分頻器對(duì)50MHz的系統(tǒng)時(shí)鐘進(jìn)行分頻,由此可得到每個(gè)音符對(duì)應(yīng)的發(fā)音頻率。
音符譯碼電路模塊將 LCD觸摸屏的輸入信號(hào)進(jìn)行分析處理,并發(fā)出相關(guān)控制信號(hào),驅(qū)動(dòng)下級(jí)電路(數(shù)控分頻電路模塊)的工作,為驅(qū)動(dòng)揚(yáng)聲器正確發(fā)音提供了有效的依據(jù),由圖1可見(jiàn),利用軟件不但大大地簡(jiǎn)化了電路,而且達(dá)到了預(yù)期的目的,Verilog HDL硬件描述語(yǔ)言的優(yōu)勢(shì)再次體現(xiàn)出來(lái),為設(shè)計(jì)提供了極大的方便。
由于音符譯碼電路的輸出是音符發(fā)聲器的輸入,所以如何設(shè)計(jì)一個(gè)電路,將傳遞過(guò)來(lái)的不同音符的分頻預(yù)置值進(jìn)行處理,然后再產(chǎn)生不同音符對(duì)應(yīng)的音符頻率,就成為音符發(fā)聲器設(shè)計(jì)的關(guān)鍵。
音符發(fā)聲器的上一級(jí)電路(音符譯碼電路)里,已經(jīng)將各個(gè)音符的分頻預(yù)置值轉(zhuǎn)化為20位的二進(jìn)制,于是選擇數(shù)控分頻器,數(shù)控分頻器對(duì)FPGA的基準(zhǔn)頻率進(jìn)行分頻,在數(shù)控分頻器的輸入端給定CLK和不同的分頻預(yù)置值時(shí),數(shù)控分頻器的輸出端便可得到對(duì)應(yīng)的音符頻率。
數(shù)控分頻電路是由一個(gè)初值可變的20位加法計(jì)數(shù)器構(gòu)成,音符發(fā)聲器電路在獲取音符譯碼電路的音階索引值對(duì)應(yīng)的分頻預(yù)置值后,通過(guò)可控計(jì)數(shù)器進(jìn)行分頻。分頻器電路中的分頻預(yù)置值進(jìn)行加1計(jì)數(shù),該計(jì)數(shù)器的模為1048576,當(dāng)計(jì)數(shù)器計(jì)滿時(shí),計(jì)數(shù)器產(chǎn)生一個(gè)溢出信號(hào)fullspks,此溢出信號(hào)就是用作發(fā)音的頻率信號(hào),在計(jì)數(shù)器的輸入端給定不同的初值(分頻預(yù)置值即計(jì)數(shù)初值),其輸出將產(chǎn)生不同的頻率信號(hào),也即不同音符的發(fā)音頻率信號(hào),該計(jì)數(shù)器的工作原理用等式表示為:計(jì)數(shù)初值+分頻系數(shù)=1048576+溢出信號(hào)fullspks,它計(jì)滿時(shí)所需要的計(jì)數(shù)初值為:計(jì)數(shù)初值=1048576-分頻系數(shù)。分析此式可知,低音時(shí)計(jì)數(shù)初值小,分頻系數(shù)大,進(jìn)位信號(hào)fullspks的周期長(zhǎng),揚(yáng)聲器發(fā)出的聲音低,反之揚(yáng)聲器發(fā)出的聲音高;其中計(jì)數(shù)初值隨音樂(lè)的樂(lè)譜而變化,自動(dòng)控制分頻系數(shù),從而實(shí)現(xiàn)數(shù)控分頻,這就是利用數(shù)控分頻器自動(dòng)演奏音樂(lè)的原理。對(duì)于不同的分頻系數(shù),加載不同的初始值即可。用加載初始值而不是將分頻輸出譯碼反饋,可以有效地減少本次設(shè)計(jì)所占用的可編程邏輯器件的資源。

圖2 系統(tǒng)RTL級(jí)網(wǎng)
本次設(shè)計(jì)目標(biāo)芯片選用美國(guó)ALTERA公司Cyclone系列FPGA旗艦中的EP4CE22F17C6芯片,通過(guò)EDA開(kāi)發(fā)工具Quartus II 13.0,對(duì)各個(gè)模塊的Verilog HDL源程序及頂層電路進(jìn)行引腳分配、邏輯綜合、適配、編譯等各種測(cè)試工作,最終將設(shè)計(jì)編譯的數(shù)據(jù)下載到芯片中。經(jīng)實(shí)際電路測(cè)試驗(yàn)證,達(dá)到了設(shè)計(jì)的要求。系統(tǒng)RTL級(jí)網(wǎng)如圖2所示,下載配置后得到的實(shí)際驗(yàn)證效果如圖3所示。

圖3 多功能觸摸屏電子琴實(shí)物
基于FPGA的多功能觸摸電子琴實(shí)現(xiàn)了通過(guò)LCD觸摸屏彈奏音樂(lè)、自動(dòng)播放樂(lè)曲、隨時(shí)保存?zhèn)€人創(chuàng)作的功能,彈奏評(píng)分比較等功能。實(shí)踐證明:運(yùn)用Verilog HDL層次化和模塊化的設(shè)計(jì)方法,更好地優(yōu)化了音樂(lè)演奏數(shù)字電路的設(shè)計(jì)。采用FPGA所設(shè)計(jì)的電子琴系統(tǒng)具有結(jié)構(gòu)簡(jiǎn)單、開(kāi)發(fā)時(shí)間短、外圍器件少、體積小、抗干擾能力強(qiáng)、可靠性高的特點(diǎn)。系統(tǒng)維護(hù)起來(lái)也更方便和快捷,尤其是對(duì)于設(shè)計(jì)者來(lái)說(shuō),不需要考慮太多的硬件設(shè)計(jì),只需要有自己的設(shè)計(jì)思路,編程后下載到FPGA器件中進(jìn)行測(cè)試就可實(shí)現(xiàn)所需的功能,有效地縮短了產(chǎn)品開(kāi)發(fā)周期,減少了設(shè)計(jì)芯片的數(shù)量,降低了功耗,提高了設(shè)計(jì)的靈活性、可靠性和可擴(kuò)展性。將LCD觸摸屏與電子琴硬件描述語(yǔ)言有效結(jié)合,不僅所花成本低,而且具有較高的使用價(jià)值。
[1]曹曼.基于FPGA的電子琴設(shè)計(jì)[J].信息科技,2012(2):180-181.
[2]陳華容.基于FPGA的電子琴設(shè)計(jì)[J].器件與電路,2006(2):26-29.
[3]孫萬(wàn)麟.基于AT89C51單片機(jī)的電子琴設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2010(7X):5626-5627.
[4]周琛暉.基于AT89S51單片機(jī)的電子琴設(shè)計(jì)[J].電腦知識(shí)與技術(shù),2009(9X):7679-7681.
[5]張卿.基于FPGA的音樂(lè)演奏電路及電子琴的設(shè)計(jì)[J].科技信息,2009(16):143-148.
[6]付夢(mèng)婷,付永慶.基于CPLD的88鍵電子琴的設(shè)計(jì)與實(shí)現(xiàn)[J].電子器件,2013(5):737-741.
[7]李雪梅.基于FPGA的電子琴動(dòng)態(tài)錄音與回放系統(tǒng)的設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2009(3):130-133.
[8]王慶春,何曉燕.基于FPGA的便攜式邏輯分析儀的設(shè)計(jì)[J].電子測(cè)量技術(shù),2012(10):80-83.
Design of Multi-function Touch Screen Keyboard Based on FPGA
Chen Qiang, Chen Shouman
( Research Department of Ankang University, Ankang 725000, China)
Multi-function Touch Screen Keyboard Based on FPGA in this article is designed with touch screen control play pause and start playing score, at any time, you can store personal creation, automatically play music.It is small in the volume, system reliability,development cycle short and low cost that makes up the heavy physical keyboard and achieves the goal that most music lovers can record music feeling at any time, it is convenient for personal creation and practice of electronic keyboard skills , it also makes music teaching more direct and more convenient for students to be autonomous on learning keyboard, greatly increases keyboard learning interest for students and it brings a great convenience to music teaching.
field programmable gate array(FPGA); keyboard; touch screen
陳強(qiáng)(1983— ),男,湖北黃岡,本科,實(shí)習(xí)研究員;研究方向:計(jì)算機(jī)系統(tǒng)集成。
項(xiàng)目名稱(chēng):安康學(xué)院2013年國(guó)家級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃;項(xiàng)目編號(hào):201311397005。項(xiàng)目名稱(chēng):安康學(xué)院2013年校級(jí)大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃項(xiàng)目;項(xiàng)目編號(hào):2013aku015。2012年陜西省教育廳科學(xué)研究項(xiàng)目;項(xiàng)目名稱(chēng):基于高光譜圖像的蠶繭品質(zhì)無(wú)損檢測(cè)研究;項(xiàng)目編號(hào):12JK0536。