基于Cortex M3的音頻播放器的設計
隨著科學技術的發(fā)展,MP3這一產品的技術越來越成熟,MP3現(xiàn)在以外形精致小巧,功能的的多樣性,且抗震省電等特點得到了廣大消費者的喜愛,且MP3歌曲可以隨時自由下載,更是將MP3的使用達到極大的普及,豐富了人們的文化生活。
本文引用地址:http://2s4d.com/article/201609/303781.htm系統(tǒng)采用TI公司新推出的Cortex M3系列微控制器LM3S9B96。該芯片使用高性能的ARM Cortex-M3 32位的RISC內核,工作頻率為80 MHz。完全滿足音頻文件的讀取、解碼、播放等功能。改進了市場中流行的MP3由于播放文件格式單一、人機界面的單調的缺陷。
1 系統(tǒng)總體設計
系統(tǒng)總體設計如圖1所示,以TI公司的微處理器LM3S9B96為控制核心,通過讀取SD卡*.mp3、*.wma、*.wav等格式的音頻文件,然后通過音頻解碼芯片VS1003實現(xiàn)解碼,最后通過外部音頻功放完成放大,推動揚聲器工作。LCD觸摸屏主要完成所播放歌曲名稱的顯示和人機交互功能。系統(tǒng)由ARM微處理器控制核心、音頻解碼模塊、功率放大模塊、SD卡存儲模塊、人機交互模塊等組成。系統(tǒng)框圖如圖1所示。
2 硬件系統(tǒng)設計
2. 1 Cortex M3 LM3S9B96微處理器
LM3S9B96是TI公司最新推出的基于ARMv7體系架構的處理器核,主要實現(xiàn)對SD卡音頻格式文件的讀取、然后將音頻文件發(fā)送到外部音頻解碼芯片VS1003。人機交互功能中的觸摸屏控制所包括的操作系統(tǒng)移植及應用軟件的執(zhí)行均是通過該處理器來完成。
2.2 音頻編解碼器及與控制器的硬件連接
音頻解碼芯片VS1003采用芬蘭VLSI公司出品的一款單芯片的MP3/WMA音頻解碼芯片,其內部集成一個高性能低功耗的DSP處理器核,來實現(xiàn)將SD卡里的音頻數據流讀出并進行解析、轉化成模擬信號輸出。同時,微控制器通過SPI接口發(fā)出命令控制字實現(xiàn)對VS1003芯片的功能控制,如初始化、暫停、音量控制、播放時間的讀取等。其與LM3S9B96的硬件連接連接如圖2所示。
2.3 SD卡與微控制器LM3S9B96的硬件連接
系統(tǒng)中SD卡通過SPI接口與LM3S9B96進行連接,其主要實現(xiàn)MP3音頻文件的存儲,其電路連接如圖3所示。
2.4 觸摸屏模塊功能與微控制器LM3S9B96的硬件連接
LCD觸摸屏采用SSD1298驅動控制器和ADS7843觸摸屏控制芯片實現(xiàn)LCD的顯示和觸摸功能。其顯示功能主要包括:MP3文件名的顯示、歌詞顯示功能及一些附助信息,主要完成人機對話。觸摸屏控制芯片ADS7843 LCD觸摸屏和LM3S9B96的電路連接、如圖4所示。
2.5 LCD觸摸屏與μC/GUI
μC/GUI是一種嵌入式應用中的圖形支持系統(tǒng)。其適用于任意LCD控制器和CPU下任何尺寸的真實顯示或虛擬顯示。為了方便對LCD觸摸屏的控制,在LCD中繪制各種窗口,做出友好的人機互動界面,方便客戶的操作,在μC/GUI中提供了內存管理、視窗管理器、各種常用的控件、字體管理、文本輸出、圖形繪制等功能,開發(fā)者借助輔助開發(fā)工具很容易生成用戶所需要的圖形界面,大大縮短了開發(fā)時間。
其運行界面如圖5所示。
3 系統(tǒng)軟件設計
系統(tǒng)軟件設計分為三部分。
1)μC/OS—II操作系統(tǒng)。μC/OS—II是一個支持多任務的操作系統(tǒng),本次設計將創(chuàng)建3個任務,觸摸屏任務、圖形界面任務和音樂播放任務,系統(tǒng)移植的μC/OS—II來實現(xiàn)任務的調度、任務切換和信號量處理。
2)μC/GUI圖形用戶接口,μC/GUI是一種嵌入式應用中的圖形支持系統(tǒng),本設計中用移植了μC/GUI來實現(xiàn)音頻播放器的操作界面。
3)數據存儲方面,播放MP3時,系統(tǒng)采用FatFs文件系統(tǒng)讀取存儲在SD卡中的MP3數據。
3.1 μC/OS-Ⅱ操作系統(tǒng)
μC/OS—II是嵌入微處理器的操作系統(tǒng),它是實時操作系統(tǒng),具有任務管理,文件管理,設備管理的底層支持。μC/OS—II具有執(zhí)行效率高、占用空間小、實時性能優(yōu)良和可擴展性強等特點,最小內核可編譯至2 KB,它適用于多種微處理器,微控制器和數字處理芯片,已經移植到了幾乎所有知名的CPU上。要使μC/OS-Ⅱ能正常運行,處理器必須滿足以下要求:
1)處理器的C編譯器能產生可重入代碼。
2)處理器支持中斷,并且能產生定時中斷(通常在10~100 Hz之間)。
3)用C語言就可以開關中斷。
4)處理器支持能夠容納一定量數據(可能是幾千字節(jié))的硬件堆棧。
5)處理器有將堆棧指針和其它CPU寄存器讀出和存儲到堆?;騼却嬷械闹噶?。
本系統(tǒng)主要是將μC/OS—II移植處理器上需要修改3個ARM體系結構相關的文件:OS_CPU.H、OS_CPU_A.ASM、OS_CPU_C.C進行了操作。移植包括以下幾步:
1)用#define設置一個常量的值 (OS_CPU.H)
2)聲明10個數據類型 (OS_CPU.H)
3)用#define聲明3個宏 (OS_CPU.H)
4)用C語言編寫6個簡單的函數 (OS_CPU_C.C)
5)編寫4個匯編語言函數 (OS_CPU_A.ASM)
3.2 μC/GUI的移植
對于μC/GUI圖形系統(tǒng)應用不管什么目標系統(tǒng),大部分的圖形應用開發(fā)系統(tǒng)都可以在模擬器下運行,但最終的目的還是要在目標系統(tǒng)上運行。因此在移植?C/GUI的時候,目標系統(tǒng)必須具備如下幾點:
1)CPU(8/16/32/64位)
2)必要的RAM和ROM存儲
3)LCD顯示器(任何類型及分辯率的)
本次移植過程分為以下幾個步驟進行:
評論