日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 工業(yè)控制 > 電子設計自動化
[導讀]摘要:介紹一種基于 FPGA的音樂流水燈控制器, 采用硬件描述語言對其進行描述, 分別實現(xiàn)樂曲的播放和同步流水燈的閃爍。并構(gòu)建一個 SOPC系統(tǒng), 集成 LCD模塊來顯示實時音樂的音階值和頻率強度。最后在 A ltera公司的FP

摘要:介紹一種基于 FPGA的音樂流水燈控制器, 采用硬件描述語言對其進行描述, 分別實現(xiàn)樂曲的播放和同步流水燈的閃爍。并構(gòu)建一個 SOPC系統(tǒng), 集成 LCD模塊來顯示實時音樂的音階值和頻率強度。最后在 A ltera公司的FPGA多媒體開發(fā)平臺 DE2上進行實現(xiàn)。

FPGA是現(xiàn)場可編程門陣列的簡稱, 它既有門陣列器件的高度集成和通用性, 又有可編程邏輯器件用戶可編程的靈活性。通過 FPGA實現(xiàn)音樂流水燈的控制, 實質(zhì)上就是將不同音階與特定頻率的方波信號對應起來, 以方波信號驅(qū)動蜂鳴器發(fā)出音樂, 再根據(jù)不同音階來控制流水燈的閃爍。與借助微處理器實現(xiàn)樂曲演奏相比, 以純硬件方式完成樂曲演奏電路更直觀。EDA工具和硬件描述語言發(fā)揮了強大功能,提供了設計可能性。

  1、總體設計方案

音樂流水燈主要是點綴公共場合的裝飾品, 音樂的播放和流水燈有節(jié)奏地閃爍, 同時達到聽覺和視覺的完美結(jié)合, 成為構(gòu)成其必不可少的條件。要了解如何產(chǎn)生不同音階的音樂, 首先要對樂音的特性有所了解。樂音實際上是有固定頻率的信號。在樂曲的構(gòu)成中, 樂音的頻率和持續(xù)的時間是其構(gòu)成的要素。音階的頻率可以通過高頻時鐘進行分頻得到。音頻的高低可以通過外部的 LED燈的閃爍來顯示, 這樣在音樂和流水燈的配合下可以使人產(chǎn)生強烈的節(jié)奏感。再輔以 LCD來顯示音階的高低長短, 不懂樂理知識的人便可以直觀的看到不同音調(diào)對應的音階。

總體設計要求如下:

( 1)分頻主要是通過一個可控分頻器實現(xiàn)的。采用時鐘的頻率越高, 分頻系數(shù)越大, 分頻后的音階頻率就越準確。但同時由于分頻系數(shù)大使用的計數(shù)單元增加, 從而耗費更多的硬件邏輯單元, 因此可以采取一個較為適中的時鐘頻率 12MH z 。

( 2)經(jīng)過分頻后的信號是一個脈寬極窄的時鐘信號, 必須對其進行脈沖寬度調(diào)整, 增大占空比, 才能有效地驅(qū)動蜂鳴器。在脈沖寬度調(diào)整時會對此信號再次二分頻, 所以在計算時, 以樂音音階的二倍頻率去求取在特定時鐘信號下的分頻系數(shù), 以便在調(diào)整占空比后得到正確的音階頻率。

( 3)樂曲的頻率變化多端, 對應的分頻系數(shù)也不斷變化, 因此需要將播放的樂曲的分頻系數(shù)事先存放在 ROM 中便于讀取。如果將分頻系數(shù)直接作為存儲碼存放在寄存器中, 勢必會占有更大的容量。因此在這里選取索引值來作為存儲碼以減小容量。

( 4)開發(fā)平臺上的 LED燈數(shù)量有限, 可以選用有規(guī)律的閃爍, 例如從左到右依次點亮、漸亮、漸滅等; 也可以用燈閃爍的多少來表示頻率的大小。本設計選用第二種。

圖 1為音樂流水燈控制系統(tǒng)的總原理框圖??梢钥吹皆撓到y(tǒng)包含樂曲播放控制模塊, 流水燈控制模塊和 LCD顯示模塊 3個模塊。其中樂曲播放控制模塊分為樂譜播放控制模塊, 音階分頻模塊和音階頻率產(chǎn)生模塊。

音樂流水燈控制系統(tǒng)的總體原理框圖

圖1音樂流水燈控制系統(tǒng)的總體原理框圖

  2、 模塊設計

2.1 、樂曲播放控制模塊

樂曲播放控制模塊的主要功能是在一定的時鐘信號驅(qū)動下將事先存儲在 ROM 里的樂譜所對應的索引值依次輸出, 控制分頻, 并產(chǎn)生相應的分頻信號頻率, 以此來控制蜂鳴器的發(fā)聲。

  2.1.1、音階分頻器的設計

為了能夠在播放樂曲的同時顯示當前音階, 用LED的位數(shù)來指示當前音階的高低音。程序中的音階分頻系數(shù)通過索引值來進行選取, 即在音樂播放過程中由樂譜存儲電路傳遞來的當前音階的索引值。

2.1.2 、音階頻率產(chǎn)生的設計

音階頻率產(chǎn)生電路在獲取上面的音階索引值對應的分頻系數(shù)后, 通過可控計數(shù)器進行分頻。分頻電路中的計數(shù)器進行減 1計數(shù), 計數(shù)器的進位信號即為分頻信號。因為此信號的脈沖寬度極小, 所以需要調(diào)整占空比才使外部驅(qū)動電路提供足夠的驅(qū)動蜂鳴器的功率, 而具體是對分頻信號再進行二分頻實現(xiàn)的。

  2.1.3、 樂譜播放控制模塊設計

音樂播放就是通過外部的 8 H z時鐘驅(qū)動, 內(nèi)部以計數(shù)器進行計數(shù)、產(chǎn)生地址, 送到 ROM 單元中作為存儲器地址, 將對應地址的數(shù)據(jù) 音階索引值輸出。

在本設計中, 每個音的發(fā)出由另一個 8H z的時鐘信號來控制。樂譜中的 4分音符由 4個時鐘信號來驅(qū)動。每個時鐘下, 其對應的音階輸出以索引值的形式存儲在 ROM中。文中 ROM 的地址線為 10位, 數(shù)據(jù)線寬度為 4位。ROM 里存儲的數(shù)據(jù)即各音節(jié)的索引值, 根據(jù)樂譜轉(zhuǎn)換的需要, 16個索引值即可滿足樂曲曲譜編寫的需求, 所以設置了 4位數(shù)據(jù)線。地址線的寬度主要取決于樂曲的長度。本設計中用到了約520個 4 bit單元, 為了留有一定裕度, 將數(shù)據(jù)線寬度定義為 10位, 即 1 024個 4 b i t單元。其中不同的音階對應的索引值如表 1所示。

表 1 音階索引表

音階索引表

按照樂譜, 將音階對應的索引值連續(xù)地存儲到ROM中。例如, 樂譜上一個 4分音符的中音 3 , 在ROM存儲器中對應的索引值是 10 , 并且連續(xù)放置 4次, 而一個 8分音符 5也就是半拍的 5 , 則是將對應索引值 5在 ROM 中連續(xù)存放兩次。播放時在播放時鐘( 8H z )的驅(qū)動下, 索引值不斷地從 ROM 輸出。索引值送到音階分頻模塊中, 轉(zhuǎn)換為計數(shù)初值輸出, 再送到音階分頻產(chǎn)生模塊中, 作為計數(shù)初值, 產(chǎn)生音階頻率輸出驅(qū)動蜂鳴器。這樣, 就能在蜂鳴器上發(fā)出要播放的樂曲了。確定了樂譜后, 即 ROM 的存儲內(nèi)容后, 就可以定制 ROM, 將其初始化文件指定為mif文件即可。

2.2、流水燈控制模塊設計

由于此設計是基于 DE270開發(fā)板之上的, 因此將對應的音階輸出, 應用 LED燈來顯示流水燈閃爍效果。根據(jù)音調(diào)"hight"的高低設置點亮燈的數(shù)量,當"hight "為低時播放低音信號, 為高時播放中音信號。如果要用到高音信號可以將! hight!長度改為 2bit 。選取板上的 oLEDR [ 6..0]前 7盞燈與低音信號對應, oLEDR[ 13..7]與中音信號對應。在本設計中,為了看到明顯的流水燈變化, 當發(fā)出中音音頻時低音顯示燈全亮。

  2.3、 LCD顯示模塊設計

首先需要在 SOPC Bu i lder中構(gòu)建 SOPC系統(tǒng), 按要求依次添加 N iosII處理器, 4 kB的片上 RAM, LCD模塊, 4位輸入口, 給處理器分配復位向量地址和異常向量地址。

LCD顯示模塊用來實現(xiàn)樂譜和音頻強度的實時顯示, 可以顯示 16 ? 2個字符, 其軟件流程如圖 2所示。

LCD軟件流程圖

圖 2 LCD軟件流程圖

其中 LCD初始化包括對 LCD的功能設置, 顯示開關(guān)設置和模式設置。LCD定位到首行首列是通過對LCD寫定位指令, 將顯示位置確定到第一行第一列。寫字符" jian pu"到第一行是通過寫數(shù)據(jù)指令將字符jian pu : 和實時變化的樂譜顯示在液晶屏的第一行。

低、中、高音分別用 L、M、H表示并且加上對應的音階值進行顯示。LCD顯示換行是通過定位指令來實現(xiàn)的。顯示音頻強度到第二行是用符號# > !的個數(shù)表示音調(diào)的高低, 一個表示低音 1 , 兩個表示低音 2 ,依次類推。

在對 LCD模塊進行顯示控制時, 用到了寫控制命令和寫數(shù)據(jù)命令。這些命令是針對具體配置的硬件電路而編寫的 .h頭文件。LCD模塊的頭文件如下:

#definelcd_write_cmd(base,data)

IOWR(base,0,data)

#definelcd_read_cmd(base)

IORD(base,1)

#definelcd_write_data(base,data)

IOWR(base,2,data)

#definelcd_read_data(base)

IORD(base,3)

這樣編寫是為了和具體的硬件電路相對應, 在LCD模塊的硬件描述語言中, 液晶模塊 RW 和 RS的地址分配如下:

assi gn LCD_ RW = address[ 0]

assi gn LCD_ RS = address[ 1]

其中 RS信號是命令與數(shù)據(jù)線, 高電平表示目前數(shù)據(jù)線上交換的是數(shù)據(jù), 低電平表示目前數(shù)據(jù)線上交換的是命令。液晶模塊根據(jù)這個信號做出正確的響應。RW 是電平信號, 高電平表示對液晶模塊執(zhí)行讀取操作, 低電平表示對液晶模塊寫入數(shù)據(jù)或命令。這樣便可以確定各讀寫操作對應于基地址的偏移量。

  3、 頂層設計和驗證

系統(tǒng)的頂層設計就是將各個底層功能模塊例化,在頂層調(diào)用, 進行正確的連接, 構(gòu)成最后的系統(tǒng)。整個系統(tǒng)的硬件電路如圖 3所示。

系統(tǒng)硬件電路

圖3 系統(tǒng)硬件電路

至此, 一個硬件音樂流水燈電路就完成了。外部提供兩路時鐘信號( 12MH z和 8 Hz) , 再將樂曲輸出端連接到帶有驅(qū)動裝置的蜂鳴器或揚聲器上, 就可以欣賞所添加的樂曲了。若硬件設計上只有一路時鐘信號輸入, 可在 FPGA 內(nèi)部設計分頻器, 將其分頻到8H z 再使用, 還可以在此基礎(chǔ)上更改。另外還可以在一個 ROM 種存儲多首樂曲, 通過按鍵選擇播放樂曲。

  3、 結(jié)束語

文中在 FPGA芯片上, 利用 VHDL語言設計了功能強大的 32位 ALU。由于 ALU是 CP U的重要組成部分, 各類系統(tǒng)中都不可避免地需要 ALU, 因此本設計的應用泛圍較廣。



參考文獻:

[1].ROM datasheethttp://www.dzsc.com/datasheet/ROM+_1188413.html.
[2].mifdatasheethttp://www.dzsc.com/datasheet/mif_2043409.html.
[3].ALUdatasheethttp://www.dzsc.com/datasheet/ALU_2089372.html.


來源:指尖劃過1次

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關(guān)系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關(guān)重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關(guān)鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術(shù)之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動汽車的動力性能和...

關(guān)鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎(chǔ)設施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動電源

開關(guān)電源具有效率高的特性,而且開關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關(guān)鍵字: LED 驅(qū)動電源 開關(guān)電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動電源
關(guān)閉