FLAC高保真數(shù)字音頻播放器,方案設計、硬件平臺、軟件架構(gòu)
一、項目概述
1.1 引言
目前,大部分的音樂文件都是以mp3格式來保存的,mp3是一種有損的音頻壓縮格式,它無法完美地再現(xiàn)原版音樂。隨著存儲器容量的擴大、網(wǎng)絡帶寬的增加、處理器性能的增強以及人們對生活品質(zhì)要求的提高,無損音樂越來越受到人們的青睞,對無損音樂播放器的需求也就越來越大。
1.2 項目背景/選題動機
我們希望能在AVR單片機上實現(xiàn)一個“FLAC高保真音頻播放器”。播放器用ATMEL的EVK1105套件來實現(xiàn),它將從SD卡、U盤和網(wǎng)絡中讀取音頻文件,并對其進行解碼及播放。該播放器能播放高保真音頻文件,具有設備體積小、操作簡單和便于攜帶使用等優(yōu)點。
二、需求分析
2.1 功能要求
音頻播放:能支持FLAC格式的音頻播放
音頻文件的存儲介質(zhì):支持SD卡、移動硬盤、U盤、網(wǎng)絡流中音頻文件的讀取和播放
力爭實現(xiàn)對APE格式的支持
2.2 性能要求
播放文件的采樣頻率:48-96kHz
播放文件的采樣精度:16/24位字長
三、方案設計
3.1 系統(tǒng)功能實現(xiàn)原理
系統(tǒng)通過讀取本地存儲器(SD卡、U盤、移動硬盤)上的音頻文件,或者從網(wǎng)絡接口獲取數(shù)據(jù)流,得到音頻數(shù)據(jù),然后通過AT32UC3A0512 MCU進行解碼播放操作。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
3.2 硬件平臺選用及資源配置
系統(tǒng)使用AVR EVK1105開發(fā)板,該開發(fā)板資源配置如下:
AT32UC3A0512處理器,最高主頻66MHz;
立體聲音頻輸出;
全彩QVGA(320*240)LCD顯示屏;
JTAG接口;
USB OTG接口;
SD和MMC讀卡器;
10/100Mbps的以太網(wǎng)接口;
TLV320AIC23B編解碼芯片
3.3系統(tǒng)軟件架構(gòu)
系統(tǒng)組件可分解為如下圖所示的模塊:
圖2 系統(tǒng)模塊圖
系統(tǒng)層模塊
文件系統(tǒng):由于要讀取SD卡、U盤上的文件,所以要在底層實現(xiàn)一個文件系統(tǒng),如fat。
網(wǎng)絡協(xié)議棧:播放器可以接收網(wǎng)絡流媒體,這需要網(wǎng)絡協(xié)議棧的支持,如LwIP。
設備驅(qū)動:由于程序中會使用LCD、按鍵、SD card讀卡器、USB接口、網(wǎng)絡接口、編解碼芯片,需要為它們實現(xiàn)驅(qū)動。
應用層模塊
音頻獲?。?/p>
從網(wǎng)絡流或者SD卡、U盤中讀取音頻文件。
音頻解碼:
解碼音頻數(shù)據(jù),并進行播放。
播放器UI:
用于控制播放的過程,例如開始播放、停止播放,以及響應用戶的其它操作請求。
3.4 系統(tǒng)軟件流程
圖3 程序運行流程圖
系統(tǒng)在啟動之后,進行相關的初始化工作。初始化結(jié)束、進入了開始界面之后,若用戶按下按鈕播放音樂,那么就選擇播放本地音頻或者網(wǎng)絡音頻:若選擇本地音頻文件,則讀取SD卡、U盤、移動硬盤中的相應文件并進行播放;若選擇網(wǎng)絡音頻文件,則接收網(wǎng)絡音頻數(shù)據(jù)流并進行播放。播放完畢后,重新回到開始界面。
3.5 系統(tǒng)預計實現(xiàn)結(jié)果
該系統(tǒng)能夠播放SD卡、U盤和移動硬盤上存儲的FLAC文件,也可以播放網(wǎng)絡流媒體;由按鍵來控制播放器,在LCD上顯示音頻信息。此外,爭取實現(xiàn)對APE格式文件的支持。
一、項目概述
1.1 引言
目前,大部分的音樂文件都是以mp3格式來保存的,mp3是一種有損的音頻壓縮格式,它無法完美地再現(xiàn)原版音樂。隨著存儲器容量的擴大、網(wǎng)絡帶寬的增加、處理器性能的增強以及人們對生活品質(zhì)要求的提高,無損音樂越來越受到人們的青睞,對無損音樂播放器的需求也就越來越大。
1.2 項目背景/選題動機
我們希望能在AVR單片機上實現(xiàn)一個“FLAC高保真音頻播放器”。播放器用ATMEL的EVK1105套件來實現(xiàn),它將從SD卡、U盤和網(wǎng)絡中讀取音頻文件,并對其進行解碼及播放。該播放器能播放高保真音頻文件,具有設備體積小、操作簡單和便于攜帶使用等優(yōu)點。
二、需求分析
2.1 功能要求
音頻播放:能支持FLAC格式的音頻播放
音頻文件的存儲介質(zhì):支持SD卡、移動硬盤、U盤、網(wǎng)絡流中音頻文件的讀取和播放
力爭實現(xiàn)對APE格式的支持
2.2 性能要求
播放文件的采樣頻率:48-96kHz
播放文件的采樣精度:16/24位字長
三、方案設計
3.1 系統(tǒng)功能實現(xiàn)原理
系統(tǒng)通過讀取本地存儲器(SD卡、U盤、移動硬盤)上的音頻文件,或者從網(wǎng)絡接口獲取數(shù)據(jù)流,得到音頻數(shù)據(jù),然后通過AT32UC3A0512 MCU進行解碼播放操作。
圖1 系統(tǒng)硬件結(jié)構(gòu)框圖
3.2 硬件平臺選用及資源配置
系統(tǒng)使用AVR EVK1105開發(fā)板,該開發(fā)板資源配置如下:
AT32UC3A0512處理器,最高主頻66MHz;
立體聲音頻輸出;
全彩QVGA(320*240)LCD顯示屏;
JTAG接口;
USB OTG接口;
SD和MMC讀卡器;
10/100Mbps的以太網(wǎng)接口;
TLV320AIC23B編解碼芯片
3.3系統(tǒng)軟件架構(gòu)
系統(tǒng)組件可分解為如下圖所示的模塊:
圖2 系統(tǒng)模塊圖
系統(tǒng)層模塊
文件系統(tǒng):由于要讀取SD卡、U盤上的文件,所以要在底層實現(xiàn)一個文件系統(tǒng),如fat。
網(wǎng)絡協(xié)議棧:播放器可以接收網(wǎng)絡流媒體,這需要網(wǎng)絡協(xié)議棧的支持,如LwIP。
設備驅(qū)動:由于程序中會使用LCD、按鍵、SD card讀卡器、USB接口、網(wǎng)絡接口、編解碼芯片,需要為它們實現(xiàn)驅(qū)動。
應用層模塊
音頻獲?。?/p>
從網(wǎng)絡流或者SD卡、U盤中讀取音頻文件。
音頻解碼:
解碼音頻數(shù)據(jù),并進行播放。
播放器UI:
用于控制播放的過程,例如開始播放、停止播放,以及響應用戶的其它操作請求。
3.4 系統(tǒng)軟件流程
圖3 程序運行流程圖
系統(tǒng)在啟動之后,進行相關的初始化工作。初始化結(jié)束、進入了開始界面之后,若用戶按下按鈕播放音樂,那么就選擇播放本地音頻或者網(wǎng)絡音頻:若選擇本地音頻文件,則讀取SD卡、U盤、移動硬盤中的相應文件并進行播放;若選擇網(wǎng)絡音頻文件,則接收網(wǎng)絡音頻數(shù)據(jù)流并進行播放。播放完畢后,重新回到開始界面。
3.5 系統(tǒng)預計實現(xiàn)結(jié)果
該系統(tǒng)能夠播放SD卡、U盤和移動硬盤上存儲的FLAC文件,也可以播放網(wǎng)絡流媒體;由按鍵來控制播放器,在LCD上顯示音頻信息。此外,爭取實現(xiàn)對APE格式文件的支持。