亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于FPGA紅外遙控樂曲播放器設計

        2019-09-10 07:22:44賴義漢盧彬鋒王宇松
        赤峰學院學報·自然科學版 2019年2期
        關(guān)鍵詞:播放器樂曲

        賴義漢 盧彬鋒 王宇松

        摘要:本文介紹了樂曲播放的基本原理及基于FPGA芯片樂曲播放器系統(tǒng)的組成,分析了紅外遙控器的工作原理及紅外遙控接收解碼器、按鍵消抖的有限狀態(tài)機設計方法,系統(tǒng)以FPGA內(nèi)部嵌入式存儲塊作為樂曲存儲器,能夠動態(tài)顯示樂曲的音符,通過SignalTap II邏輯分析儀進行在線仿真和硬件測試,系統(tǒng)控制穩(wěn)定,音質(zhì)效果好,外圍電路簡單.

        關(guān)鍵詞:FPGA;紅外遙控;樂曲;播放器

        中圖分類號:TN912.2? 文獻標識碼:A? 文章編號:1673-260X(2019)02-0068-04

        1 引言

        傳統(tǒng)的音樂播放器主要以單片機為主控制芯片[1-2],由芯片中的定時器來產(chǎn)生樂曲的音調(diào)及音調(diào)的持續(xù)時間,從而實現(xiàn)樂曲的連續(xù)演奏.由于單片機運行速度及內(nèi)部存儲容量有限,其音調(diào)頻率的精度及樂曲的存儲數(shù)量會受到一定的限制[3].而FPGA芯片內(nèi)部含有豐富的邏輯陣列、嵌入式存儲器塊、PLL鎖相環(huán)等硬件資源,以FPGA芯片為控制芯片,以Verilog硬件描述語言來設計樂曲的播放器,具有低功耗、外圍電路簡單,速度快、功能可擴展等特點.樂曲播放器具有上一首、下一首、播放/暫停、自動/手動和紅外遙控等多種控制模式,能夠動態(tài)顯示音符等功能.

        2 系統(tǒng)總體結(jié)構(gòu)

        系統(tǒng)主要由FPGA核心模塊及系統(tǒng)時鐘、按鍵模塊、紅外一體接收電路,音樂放大電路等外圍電路組成.系統(tǒng)總體框圖如圖1所示.其中系統(tǒng)時鐘頻率為50MHz, FPGA采用Altera公司的Cyclone IV系列的EP4C4E10F174CN芯片,F(xiàn)PGA核心模塊包含按鍵消抖模塊、分頻器模塊、樂曲播放模塊、樂譜存儲及動態(tài)音符驅(qū)動模塊等.

        3 系統(tǒng)各模塊的FPGA實現(xiàn)

        3.1 樂曲演奏的基本原理

        聲音的頻譜范圍為20Hz~20KHz范圍,樂曲主要由音調(diào)(音符的頻率值)和音長(持續(xù)時間)兩個基本數(shù)據(jù)組成,即只要控制輸出信號的頻率高低及持續(xù)的時間就可以使揚聲器發(fā)出連續(xù)的樂曲聲.根據(jù)音樂的十二平均率規(guī)定[4]:每兩個八度之間的頻率相差一倍,在兩個八度音之間,又可分為12個半音,每兩個半音的頻率比為■,如音名A(簡譜中的低音6)的頻率為440Hz,音名B到C之間、E到F之間為半音,其余為全音,由此可以計算出簡譜中從低音1到高音7之間每個音名對應的頻率,樂曲就是由一連串的音符組成的,按照樂曲的樂譜依次輸出這些音符所對應音調(diào)的頻率,就可以在揚聲器上連續(xù)發(fā)出各個音符的音調(diào),因此,要演奏一首音樂,關(guān)鍵是控制樂曲中的音符的發(fā)生頻率及樂曲的節(jié)拍的.由于每兩個音的音頻比值(高音比低音)正好是2或是2n,因此,對于所有八度關(guān)系的樂音除了音高上的差異外,本質(zhì)上聽起來不會任何區(qū)別.

        3.2 樂曲播放控制模塊實現(xiàn)

        準確獲取音符的發(fā)音頻率及持續(xù)的時間是樂曲無失真演奏的重要因素,為產(chǎn)生樂譜中不同的音符的頻率,系統(tǒng)采用預置數(shù)分頻法對基準時鐘信號進行分頻,預置數(shù)不同,其計數(shù)值不同分頻數(shù)也不同,就能得到不同的頻率值.由于音階頻率多為非整數(shù),分頻后會存在或多或少的誤差,一般采用四舍五入法.本設計以6MHz的時鐘信號為基準頻率,通過設置不同的初值使分頻器產(chǎn)生各種音符頻率.如要產(chǎn)生低音的“1”,則分頻數(shù)為6MHz/216.6Hz≈22935.8,即分頻數(shù)約為22936,為提高信號的驅(qū)動能力,使音調(diào)的頻率輸出占空比為50%,則分頻數(shù)為22936/2=11468,其他音符以此類推,本設計以C調(diào)為例,各音階頻率、分頻數(shù)、音符編碼之間關(guān)系如表1所示.

        音長即音樂的節(jié)拍,也就是音調(diào)持續(xù)的時間,以2/4節(jié)拍為例,如果每個小節(jié)持續(xù)的時間為1s,則每拍的演奏時間為0.5s,為提高驅(qū)動能力及節(jié)拍精度,系統(tǒng)由占空比為50%的4Hz的時鐘來產(chǎn)生節(jié)拍信號,即每一個半節(jié)拍為0.25s.

        3.3 基準時鐘的產(chǎn)生

        基準時鐘是產(chǎn)生樂曲音調(diào)的基礎,根據(jù)設計要求,需要得到音調(diào)所需的6MHz基準時鐘和節(jié)拍所需的4Hz信號,為提高時鐘的精度,采用FPGA內(nèi)部集成的嵌入式鎖相環(huán)PLL來實現(xiàn),鎖相環(huán)可以與輸入的系統(tǒng)時鐘信號同步,并以其作為參考信號實現(xiàn)鎖相,從而可以輸出一個或多個同步倍頻或分頻的片內(nèi)時鐘,得到高精度的頻率,以供邏輯系統(tǒng)使用,與直接來自外部的時鐘相比,這種片內(nèi)時鐘會減少時鐘的延時和時鐘信號的變形,減少干擾,能很好地保證系統(tǒng)穩(wěn)定高速可靠工作.通過設置ALTPLL模塊的分頻數(shù),由50MHz系統(tǒng)時鐘得到6MHz和4MHz的頻率,再由4MHz的頻率再經(jīng)過分頻得到占空比為50%的4Hz的節(jié)拍時鐘信號.從而保證基準時鐘的穩(wěn)定性和準確性.

        3.4 樂曲的定制及動態(tài)音符的顯示

        為提高樂曲的直觀性和可讀性,樂曲中用變量q[11:0]表示音名,其中高4位q[11:8]表示高音的■:■,q[7:4]表示中音的1~7,q[3:0]表示低音的■:■,其編碼方式如表1所示.通過定制FPGA中LPM- ROM存儲音樂數(shù)據(jù),通過改變ROM的地址就可以輸出不同的音符編碼,通過查表可得到不同的分頻預置數(shù),從而得到不同的音調(diào)頻率,通過控制地址產(chǎn)生的頻率就可以控制樂符輸出的節(jié)拍,以純硬件的方法來實現(xiàn)樂曲的演奏效果.若要實現(xiàn)其他樂曲的演奏,只要修改LPM-ROM所存儲的音樂數(shù)據(jù),再重新定制LPM-ROM,就可以實現(xiàn)其他樂曲的演奏.為使演奏能循環(huán)進,需另外設計置一節(jié)拍時長計數(shù)器,保證演奏完后又重新開始,或跳到下一首的樂曲的首地址.

        LPM-ROM中存儲的是樂曲音符的編碼,由3位的BCD碼組成,分別表示不同音階,系統(tǒng)采用3位數(shù)碼管分別動態(tài)顯示樂曲中的高中低音的音符,顯示模塊采用動態(tài)掃描方式,由8位的段碼信號和3位的位碼信號來驅(qū)動3位的共陰數(shù)碼管,從而實現(xiàn)音符的動態(tài)顯示.

        3.5 按鍵消抖模塊

        鍵盤模塊有四個按鍵:上一首(key_up)、下一首(key_down)、暫停/播放(key_pause);自動/手動(key_auto).由于機械按鍵存在抖動,為保證每按一次,產(chǎn)生一個負脈沖,執(zhí)行一次操作,這里采用有限狀態(tài)機分別對按鍵按下和釋放進行消抖處理[5].其按鍵識別與消抖的狀態(tài)轉(zhuǎn)換圖如圖2所示.

        工作過程:初始狀態(tài)為IDLE,當檢測有下降沿時,進入STATE0狀態(tài),并通過一個計數(shù)器計時電平持續(xù)的時間.在按鍵按下時,計數(shù)器開始計數(shù),并且每個周期判斷該鍵是否為低電平,如果仍為低電平且計數(shù)器計數(shù)值達一定值(約10ms)后,則按鍵切換標志變量key_flag產(chǎn)生一個高電平脈沖,按鍵狀態(tài)變量key_state為低電平,進入穩(wěn)定狀態(tài)DOWN,若計數(shù)值未達到預定值,則為抖動重新返回IDLE狀態(tài);在DOWN狀態(tài)時,如果檢測到上升沿,則進入STATE1狀態(tài),啟動計數(shù)器,并且每個周期判斷該鍵是否仍為高電平,當高電平保持時間達10ms后,則按鍵切換標志變量key_flag產(chǎn)生一個高電平脈沖,按鍵狀態(tài)變量key_state為高電平,一次完整的按鍵識別結(jié)束,重新回到IDLE狀態(tài),若計數(shù)值未達到預定值,則為抖動重新返回DOWN狀態(tài).如果滿足(key_flag==1&&key_state==0)則按鍵按下有效,按鍵為低電平,如果(key_flag== 1&&key_state==1)則按鍵釋放完成,按鍵為高電平.

        3.6 紅外遙控系統(tǒng)接收電路及解碼模塊設計

        3.6.1 紅外遙控接收電路

        紅外遙控系統(tǒng)分為發(fā)射和接收兩部分,紅外發(fā)射部分主要由紅外發(fā)光二極管、矩陣鍵盤、編碼和調(diào)制電路等組成[6],紅外接收部分采用Holtek公司的HT6221一體化紅外接收頭模塊,該接收頭集紅外接收、放大、濾波和比較輸出等模塊功能,性能穩(wěn)定可靠,其接口電路如圖3所示,其中IR輸出信號接FPGA的紅外遙控解碼模塊.

        3.6.2 紅外遙控解碼模塊設計

        HT6221紅外遙控器是一款基于NEC紅外通信協(xié)議的遙控編碼芯片,其采用脈沖寬度編碼(PPM)的編碼格式,其數(shù)據(jù)幀格式由:引導碼、8位地址碼、8位地址反碼、8位按鍵數(shù)據(jù)碼、8位按鍵數(shù)據(jù)反碼以及1位結(jié)束位組成[7],如圖4所示.

        其中,引導碼由9ms高電平和4.5ms的低電平組成,其代表一個數(shù)據(jù)的幀頭.NEC協(xié)議采用脈沖之間不同時長的時間間隔來區(qū)分“0”和“1”編碼.

        編碼“0”是0.56ms高電平+0.56ms的低電平,編碼“1”是0.56ms的高電平+1.69ms的低電平,以上分析的是遙控器發(fā)射端信號的編碼方法,其接收端信號的編碼方法與發(fā)射端的編碼電平正好相反.

        通過上面的分析可知,能否正確接收一幀數(shù)據(jù),其核心是識別9ms、4.5ms、0.56ms、1.69ms這四個關(guān)鍵時序信號,這里采用4個計數(shù)器分別對這四種時序信號進行計時,考慮信號傳輸時會有不同程度的誤差,因此,計數(shù)值要有一定的范圍.為準確讀取遙控識別碼,采用有限狀態(tài)機來識別各種控制狀態(tài)及數(shù)據(jù)的接收解碼過程,狀態(tài)轉(zhuǎn)換圖如圖5所示,其中IDLE:空閑狀態(tài),等待紅外一體化輸出信號IR下降沿到來;LEADER_9:識別9ms的低電平引導碼;LEADER_45:識別4.5ms的高電平引導碼,若識別成功則進行讀碼狀態(tài),否則返回空閑狀態(tài).DATA_STATE:讀碼狀態(tài),連續(xù)讀取32位的地址、數(shù)據(jù)信號,若讀完或讀取過程發(fā)生錯誤,返回空閑狀態(tài),重新識別.狀態(tài)機的編碼采用“0001、0010、0100、1000”的四位獨熱碼編碼方式,由于設計只需要得到遙控器8位的按鍵碼值IR_db[7:0],因此,地址碼及反碼不輸出.紅外遙控解碼模塊接口功能如表2所示.

        4 系統(tǒng)仿真與測試

        系統(tǒng)頂層原理圖如圖6所示,由分頻模塊(pll6_4m)、按鍵消抖模塊(key_filt)、音樂控制模塊(music_control)、音曲存儲模塊(music_rom)、紅外一體解碼模塊(IR)及樂曲顯示驅(qū)動模塊等組成,系統(tǒng)通過QuartusII軟件進行綜合并對部分模塊進行仿真測試.

        首先對紅外遙控模塊進行編譯及管腳分配,并在頂層中嵌入ISSP(In-System Sources and Probes Editor)模塊,探測口與紅外模塊的IR_db[7:0]連接,并下載到FPGA開發(fā)板中,然后在QuartusII中調(diào)用ISSP,在紅外遙控器中按下不同的功能鍵,觀察prober探測端口采集的數(shù)據(jù),如在遙控器中按下CH+(按鍵值為47H)和PLAY(按鍵值為43H)鍵,ISSP抓取的數(shù)據(jù)如圖7所示,從圖中看出其IR_db的數(shù)據(jù)值,與HT6221手冊上的編碼值相同[8].

        利用QuartusII集成的SignalTap II邏輯分析儀,對樂曲播放器電路的音符編碼及音頻等信號進行測試.SignalTap II提供了一個不使用外部I/O口引腳就能檢測內(nèi)部信號狀態(tài),SignalTap II采樣時鐘頻率設為12.8KHz,采樣深度為8K,保存SignalTap II設置后,編譯并下載至FPGA開發(fā)板,啟動SignalTap II邏輯分析儀,對LPM-ROM的地址信號addr、樂曲編碼信號q以及音頻信號audio進行在線采集,采集信號如圖8所示,從圖中可以看出,地址信號addr發(fā)生變化,能夠調(diào)用LPM-ROM中的音符編碼,同時在audio端輸出不同頻率的方波,同時在開發(fā)板上的揚聲器上也能聽到優(yōu)美準確的樂曲旋律,實現(xiàn)了預定的功能,達到設計要求.

        5 結(jié)束語

        樂曲播放系統(tǒng)采用單片的FPGA完成紅外遙控按鍵碼的識別、按鍵信號的采集及樂曲的存儲及播放,能動態(tài)顯示音符,經(jīng)實際電路板測試音調(diào)準確,音質(zhì)效果好,控制靈活,樂曲可根據(jù)用戶需求隨意變更或自行增加,具有功能擴展方便,且外圍電路簡單,穩(wěn)定可靠等特點,可應用于車載MP3等場合.

        參考文獻:

        〔1〕邱燕.基于51單片機音樂播放器的設計[J].通訊世界,2016(10):252-253.

        〔2〕何諧,唐大權(quán),張淑廷等.一種基于51單片機的音樂播放器的設計[J].現(xiàn)代電子技術(shù),2014,36(16):11-13.

        〔3〕劉垣,李外云,趙嘉怡.基于STC單片機WAVE音樂播放器的設計與實現(xiàn)[J].科技創(chuàng)新與應用,2015(34):50-51.

        〔4〕段耀勇,劉鵬,周瑞琪.中國傳統(tǒng)數(shù)學與“十二平均率”的產(chǎn)生[J].贛南師范學院學報,2005(6):22-24.

        〔5〕于晶,楊曉慧,黃勇.基于FPGA的按鍵消抖電路設計方法的研究[J].電子設計工程,2011,19(22):1-3.

        〔6〕崔巖,吳國興,顧媛媛,等.基于FPGA的紅外遙控密碼鎖的設計[J].電子技術(shù)應用,2013,39(11):44-46.

        〔7〕常濤,雪琦.基于FPGA的紅外遙控信號接收模塊設計[J].電子元器件應用,2010,13(5):44-46.

        〔8〕袁玉卓,曾凱鋒,梅雪松.FPGA自學筆記-設計與驗證[M].北京航空航天大學出版社,2017.8.

        猜你喜歡
        播放器樂曲
        齒間小樂曲
        始亂
        讀者(2023年1期)2023-03-06 15:58:19
        Walkman誕生40周年 索尼適時發(fā)布NW-ZX500和NW-A100系列播放器
        基于STM32的MP3播放器設計
        電子制作(2019年9期)2019-05-30 09:41:44
        Moon ACE播放器/放大器一體機
        準媽媽必聽十首胎教樂曲
        幸福(2016年6期)2016-12-01 03:08:23
        悲傷的樂曲
        播放器背板注塑模具設計
        中國塑料(2015年8期)2015-10-14 01:10:55
        国产女主播免费在线观看| 一级片麻豆| 天天躁日日躁狠狠躁一区| 人妻少妇精品无码专区app| 中文字幕av久久激情亚洲精品| av人妻在线一区二区三区| 国产午夜视频一区二区三区| 亚洲码无人客一区二区三区| 国产精品一区二区三区av在线| 久久精品国产91精品亚洲| 亚洲av无码乱码在线观看富二代| 国产成本人片无码免费2020| 色婷婷五月综合亚洲小说| 亚洲日韩精品欧美一区二区三区不卡 | 少妇bbwbbw高潮| 精品黄色一区二区三区| 青青草视频网站在线观看| 男人添女人囗交做爰视频| 国产人妻久久精品二区三区老狼| 精品人妻潮喷久久久又裸又黄| 无码精品色午夜| 最大色网男人的av天堂| 亚洲精品中文字幕91| 国产自拍精品一区在线观看| 久久99精品久久水蜜桃| 欧美aa大片免费观看视频| 日本中文字幕不卡在线一区二区| 亚洲精品一区二区三区日韩| 国产免费牲交视频| 亚洲中文字幕久在线| 国产欧美va欧美va香蕉在线观 | 无遮挡亲胸捏胸免费视频| 亚洲欧美日韩高清一区二区三区 | 色偷偷久久久精品亚洲| 十八禁在线观看视频播放免费| 毛茸茸性xxxx毛茸茸毛茸茸| 亚洲精品白浆高清久久| 熟女人妻一区二区三区| 少妇高潮惨叫久久久久电影69| 少妇愉情理伦片丰满丰满午夜| 亚洲国产美女精品久久|