999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2019-09-10 07:22:44賴義漢盧彬鋒王宇松
赤峰學院學報·自然科學版 2019年2期

賴義漢 盧彬鋒 王宇松

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

關鍵詞:FPGA;紅外遙控;樂曲;播放器

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

1 引言

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

2 系統總體結構

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

3 系統各模塊的FPGA實現

3.1 樂曲演奏的基本原理

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

3.2 樂曲播放控制模塊實現

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

音長即音樂的節拍,也就是音調持續的時間,以2/4節拍為例,如果每個小節持續的時間為1s,則每拍的演奏時間為0.5s,為提高驅動能力及節拍精度,系統由占空比為50%的4Hz的時鐘來產生節拍信號,即每一個半節拍為0.25s.

3.3 基準時鐘的產生

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

3.4 樂曲的定制及動態音符的顯示

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

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

3.5 按鍵消抖模塊

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

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

3.6 紅外遙控系統接收電路及解碼模塊設計

3.6.1 紅外遙控接收電路

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

3.6.2 紅外遙控解碼模塊設計

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

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

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

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

4 系統仿真與測試

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

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

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

5 結束語

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

參考文獻:

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

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

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

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

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

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

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

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

主站蜘蛛池模板: 欧美激情视频一区| 一区二区三区在线不卡免费| 久久婷婷国产综合尤物精品| 福利在线不卡| 精品国产成人高清在线| 欧美一级黄色影院| 亚洲综合日韩精品| 亚洲欧美另类色图| 久久久久无码精品| 亚洲精品国产精品乱码不卞| 啊嗯不日本网站| 中文字幕在线观| 国产精品欧美激情| 午夜精品久久久久久久无码软件 | 亚洲码一区二区三区| 日本午夜视频在线观看| 欧美日本在线| 国产精品网址在线观看你懂的| 成人中文字幕在线| 亚洲国产av无码综合原创国产| 狠狠亚洲婷婷综合色香| 92精品国产自产在线观看| 永久毛片在线播| 免费在线成人网| 免费无码一区二区| 一级香蕉视频在线观看| 伦精品一区二区三区视频| 又猛又黄又爽无遮挡的视频网站| 国产成人无码久久久久毛片| 国产美女久久久久不卡| 在线另类稀缺国产呦| 一级成人a毛片免费播放| 在线99视频| 婷婷中文在线| 一级毛片在线播放免费观看| 国产亚洲成AⅤ人片在线观看| 国产69囗曝护士吞精在线视频| 午夜福利免费视频| 亚洲天堂视频网| 亚洲欧美不卡中文字幕| 亚洲一区网站| 五月天香蕉视频国产亚| 国产精品无码AV片在线观看播放| 国产嫖妓91东北老熟女久久一| 国产视频只有无码精品| …亚洲 欧洲 另类 春色| 综合色亚洲| 无码精品福利一区二区三区| 国产成人调教在线视频| 9啪在线视频| 午夜啪啪福利| 日本欧美在线观看| 老司机精品一区在线视频| 欧美97色| 找国产毛片看| 精品国产乱码久久久久久一区二区| 成色7777精品在线| 国产18在线播放| av一区二区三区在线观看| 亚洲国产精品一区二区第一页免 | 亚洲一区二区精品无码久久久| 一本色道久久88| 亚洲无线一二三四区男男| 色妞永久免费视频| 亚洲国产AV无码综合原创| 久久久久久久久久国产精品| 国产精品久线在线观看| 色国产视频| 国产精品福利社| 亚洲第一天堂无码专区| 国产一区在线视频观看| 毛片久久久| 国产成人无码播放| 国产成人精品日本亚洲| 亚洲天堂网在线视频| 亚洲午夜18| 1024国产在线| 9966国产精品视频| 免费va国产在线观看| 国产精品不卡片视频免费观看| 成人免费一区二区三区| 亚洲一区二区三区在线视频|