基于stm32的嵌入式mp3播放器的研究_第1頁(yè)
基于stm32的嵌入式mp3播放器的研究_第2頁(yè)
基于stm32的嵌入式mp3播放器的研究_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、 電子技術(shù) 基于STM32的嵌入式MP3播放器的研究山東科技大學(xué) 張學(xué)慧 朱愛珍 【摘要】本文采用STM32微控制器作為控制單元,滿足高品質(zhì)MP3文件播放和控制,并采用嵌入式實(shí)時(shí)操作系統(tǒng)的移植技術(shù),實(shí)現(xiàn)多任務(wù)的執(zhí)行。整個(gè)系統(tǒng)主要由電源模塊、音頻解碼模塊、SD卡模塊、人機(jī)交互等幾個(gè)模塊組成。電源采用USB供電;采用VS1003作為硬件音頻解碼芯片;SD卡存儲(chǔ)MP3/WMA文件;人機(jī)交互部分采用LCD和觸摸屏實(shí)現(xiàn),使系統(tǒng)更具人性化?!娟P(guān)鍵詞】STM32;音頻解碼;SD卡;MP3播放器1. 引言MP3是一種高質(zhì)量音樂(lè)壓縮標(biāo)準(zhǔn),采用MP3壓縮的數(shù)據(jù)量可以縮小到1/12,音質(zhì)卻沒(méi)有多少損失。由于MP3音

2、樂(lè)的較小數(shù)據(jù)量和高質(zhì)量的播放效果,使它很快成為一種集音頻播放、數(shù)據(jù)存儲(chǔ)為一身的數(shù)碼產(chǎn)品,并深受人們的喜愛。本文設(shè)計(jì)的MP3是基于ARM公司最新Cortex-M3 內(nèi)核的STM32控制器,利用該處理器內(nèi)置的SPI接口對(duì)SD存儲(chǔ)卡進(jìn)行控制,并對(duì)MP3音頻文件進(jìn)行解碼實(shí)現(xiàn)MP3的播放。系統(tǒng)實(shí)現(xiàn)的功能:播放VS1003支持的MP3、WMA等音頻文件,且具有歌詞同步功能;控制播放上一首/下一首,音量增減;通過(guò)LCD顯示音量圖標(biāo)和播放狀態(tài)等。 2. 系統(tǒng)方案設(shè)計(jì)1系統(tǒng)采用STM32為主控制器有不可或缺的優(yōu)勢(shì),STM32系列是意法半導(dǎo)體基于專為要求高性能、低成本、低功耗的嵌入式應(yīng)用專門設(shè)計(jì)的ARM Cort

3、ex-M3內(nèi)核。時(shí)鐘頻率72MHz,功耗36mA,是32位市場(chǎng)上性價(jià)比最高的產(chǎn)品。系統(tǒng)主要由控制模塊、電源模塊、音頻解碼模塊、SD卡模塊、人機(jī)交互模塊組成。其結(jié)構(gòu)框圖如圖1所示。 系統(tǒng)的工作流程:STM32處理器讀取SD存儲(chǔ)卡里的MP3音樂(lè)文件數(shù)據(jù),通過(guò)SPI 傳輸至音頻解碼芯片經(jīng)過(guò)解碼轉(zhuǎn)換, 再送至耳機(jī)聽筒。SPI總線控制音頻DAC 芯片的參數(shù)實(shí)現(xiàn)音量控制等功能。使用人機(jī)交互設(shè)備實(shí)現(xiàn)播放/暫停、上一曲/ 下一曲等控制功能和顯示播放狀態(tài)。 3. 系統(tǒng)的硬件設(shè)計(jì)系統(tǒng)的硬件設(shè)計(jì)包含控制器及各模塊芯片的選型和相關(guān)電路的設(shè)計(jì)。 3.1 STM32控制器電路設(shè)計(jì)STM32系列32位微控制器基于Corte

4、x- M3內(nèi)核,旨在為MCU用戶提供新的開發(fā)自由度。它具有高性能、低功耗、低電壓等特性,同時(shí)還具有高集成度和易于開發(fā)的 特點(diǎn),使該系列產(chǎn)品成為小型項(xiàng)目和作為完整平臺(tái)的理想選擇2。STM32的使用需要一個(gè)最小系統(tǒng),包括晶振電路,復(fù)位電路。 1)晶振電路的設(shè)計(jì):晶振電路用于向處理器提供工作時(shí)鐘。本系統(tǒng)使用無(wú)源晶振 X1 作為系統(tǒng)的主振蕩器,一個(gè)32.768kHz的晶振作為內(nèi)置實(shí)時(shí)時(shí)鐘 (RTC)振蕩器3。晶體振蕩器的連接如圖2所示。 晶振的負(fù)載電容應(yīng)當(dāng)按照要求選取,電容不正確可能導(dǎo)致晶振起振緩慢甚至不起振,這將影響整個(gè)系統(tǒng)的穩(wěn)定性。 2 ) 復(fù)位電路的設(shè)計(jì): 采用簡(jiǎn)單的 “RC按鍵”復(fù)位形式,該復(fù)

5、位電路可以實(shí)現(xiàn)上電自動(dòng)復(fù)位和手動(dòng)按鍵復(fù)位3。上電自動(dòng)復(fù)位是通過(guò)外部復(fù)位電路的電容充電來(lái)實(shí)現(xiàn)的,按鍵復(fù)位是通過(guò)復(fù)位端經(jīng)電阻與電源VCC接通而實(shí)現(xiàn)的。3.2 電源電路的設(shè)計(jì) 系統(tǒng)中硬件電路的輸入電源需要5V、3.3V和2.5V。對(duì)于5V電源輸入,本著設(shè)計(jì)簡(jiǎn)單、有效的原則采用USB供電,而且還可以通過(guò)USB線直接對(duì)SD的文件進(jìn)行操作,實(shí)現(xiàn)即插即用。 對(duì)于3.3V和2.5V電源輸入,這些電 源要求的功率都不大,可以采用B1117-2.5 和B1117-3.3 穩(wěn)壓芯片來(lái)提供。3.3V 的電源輸入如圖3所示,2.2V電源輸入與之類似。 3.3 音頻解碼電路的設(shè)計(jì) 由于使用了ARM處理器,MP3的解碼方法

6、有兩種, 一是通過(guò)ARM 處理器軟解碼,通過(guò)對(duì)MP3數(shù)據(jù)格式的解析實(shí)現(xiàn)MP3 播放。二是通過(guò)外部解碼芯片解碼。前者對(duì)處理器運(yùn)算要求高,在解碼高碼率的MP3時(shí),STM32的處理能力不足,得不到好的解碼效果,而且STM32解碼之后還需要外部的DAC 來(lái)做音頻輸出, 所以采用后者。 MP3解碼芯片選擇的是由芬蘭VLSI公司出品的一款單芯片MP3/WMA音頻解碼芯片VS1003,其擁有一個(gè)高性能低功耗的DSP處理器核,5K的指令ROM,0.5K的數(shù)據(jù)RAM,串行控制和數(shù)據(jù)輸入接口,同時(shí)片內(nèi)帶有一個(gè)可變采樣速率的ADC、一個(gè)立體聲DAC以及音頻耳機(jī)放大器接口,還可以調(diào)節(jié)音量高低。其電路設(shè)計(jì)及與主控制器的

7、連接如圖4所示。 VS1003與處理器的數(shù)據(jù)通信是通過(guò)SPI總線方式進(jìn)行的。VS1003主要通過(guò)串行命令接口(SCI)和串行數(shù)據(jù)接口(SDI) 來(lái)接收STM32控制器的控制命令和MP3的 圖2 晶振電路SD 存儲(chǔ)卡 音頻解碼 STM32 電源電路 人機(jī)交互設(shè)備 微控制器 圖1 系統(tǒng)結(jié)構(gòu)框圖圖3 3.3V電源輸入-22-/2012.04/ 電子技術(shù) 圖5 SD卡連接開始圖4 音頻解碼電路解析文件系統(tǒng) STM32初始化從SD卡讀取mp3文件信息各硬件模塊初始化 mp3信息寫入VS1003 FAT文件系統(tǒng)初始化 音頻解碼并播放 成功? 讀SD的主引導(dǎo)目錄 結(jié)束圖6 人機(jī)交互設(shè)備電路圖7 程序設(shè)計(jì)流程

8、圖( 2 ) 與硬件無(wú)關(guān)的應(yīng)用軟件子系統(tǒng),包括FAT文件系統(tǒng)管理模塊和音樂(lè)播放模塊。主程序的設(shè)計(jì)流程如圖7所示。 系統(tǒng)啟動(dòng)后, 先初始化STM32 處理器,再初始化各硬件模塊,完成底層驅(qū)動(dòng)。由MCU通過(guò)FAT文件系統(tǒng)接口讀取SD 卡的一些基本信息,如容量、FAT表及根目錄所在的啟始扇區(qū)等。通過(guò)獲得這些信息,就可以找出SD卡是否有我們可以播放的音樂(lè)文件。若有音樂(lè)文件,處理器將通過(guò)SPI總線方式讀出該文件的音頻信息, 并將歌曲的數(shù)據(jù)流信息送入到解碼芯片中,通過(guò)VS1003芯片解碼以及其內(nèi)含的高質(zhì)量的立體DAC和耳機(jī)驅(qū)動(dòng)電路,實(shí)現(xiàn)MP3 歌曲的播放。在觸摸屏的控制下,通過(guò)LCD 中菜單選項(xiàng)實(shí)現(xiàn)歌曲選

9、擇和音量控制。 5.總結(jié)本文提出了一種基于STM32的嵌入式MP3播放器的設(shè)計(jì)方案,硬件上重點(diǎn)介紹了各模塊的電路設(shè)計(jì),軟件上介紹了需要的嵌入式知識(shí)和主程序的流程。該方案對(duì)于需要嵌入式媒體播放器的工業(yè)控制、車載播放器等行業(yè)具有一定的研究?jī)r(jià)值。方案設(shè)計(jì)中涉及到很多內(nèi)容, 包括芯片的選型與設(shè)計(jì),實(shí)時(shí)操作系統(tǒng)移植,F(xiàn)AT文件管理系統(tǒng),GUI圖形用戶界面,對(duì)嵌入式的設(shè)計(jì)具有一定的參考性。整個(gè)系統(tǒng)設(shè)計(jì)簡(jiǎn)潔,可靠性高,具有很高的性價(jià)比。數(shù)據(jù)。通過(guò)XCS、XDCS引腳的置高、置低來(lái)確認(rèn)是哪一個(gè)接口處于傳送狀態(tài)。對(duì)VS1003芯片的功能控制,如初始化、暫停、音量控制的讀取等,均是通過(guò)SCI寫入到特定寄存器來(lái)實(shí)現(xiàn)

10、的。 3.4 SD卡模塊 SD卡在日常生活與工作中使用非常廣泛,已經(jīng)成為最為通用的數(shù)據(jù)存儲(chǔ)卡。在MP3、數(shù)碼相機(jī)等設(shè)備上也都采用SD卡作為存儲(chǔ)設(shè)備。SD卡之所以得到如此廣泛的使用,是因?yàn)樗鼉r(jià)格低廉、存儲(chǔ)容量大、安全性強(qiáng)等優(yōu)點(diǎn)。SD卡支持兩種總線方式:SD方式與SPI方式。其中SD方式采用6線制,而SPI方式采用4線制,使用單片機(jī)對(duì)SD卡進(jìn)行讀寫時(shí)一般都采用SPI模式。因此設(shè)計(jì)中使用STM32 內(nèi)部接口SPI1 與SD卡進(jìn)行通信4 ,圖5是其引腳連接情況。 3.5 人機(jī)交互設(shè)備模塊 人機(jī)交互設(shè)備包括輸入設(shè)備和輸出設(shè)備,對(duì)于輸出設(shè)備,采用彩色液晶屏, 這 里 選 擇 一 款 2.8 寸的 TFT

11、液晶屏ILI9341,其分辨率為320*240,工作模式為8位數(shù)據(jù)模式,與MCU的通訊所需IO 口較少,速度也較快。輸入設(shè)備為了使控制方便,人性化,采用觸摸屏實(shí)現(xiàn)。觸摸屏的控制芯片選擇由TI公司生產(chǎn)的12位四線觸摸屏控制芯片ADS7843,因?yàn)樵撔酒木仁?2Bit,有很高的分辨率,有利于屏幕控制精度的提高。LCD與主控制器是SPI接口方式。其電路設(shè)計(jì)如 圖6所示。 4. 系統(tǒng)軟件設(shè)計(jì)4.1 系統(tǒng)軟件開發(fā)平臺(tái) Cortex-M3 是ARM 公司推出的最新的針對(duì)控制器應(yīng)用的內(nèi)核,提供業(yè)內(nèi)領(lǐng)先的高性能和低成本的解決方案。但目前能夠支持Cortex-M3架構(gòu)的開發(fā)工具很少,而MDK是ARM公司推出

12、目前性價(jià)比最高的支持Cortex-M3處理器的開發(fā)工具。故本次設(shè)計(jì)的軟件平臺(tái)是建立在MDK Vision3之上的5。 4.2 軟件設(shè)計(jì)基礎(chǔ) 1) ) FAT 文件系統(tǒng): MP3 播放器支持 FAT文件系統(tǒng),以便識(shí)別出SD卡上的音樂(lè)文件,需要文件系統(tǒng)存儲(chǔ)數(shù)據(jù)的原理,協(xié)議,格式等。根據(jù)對(duì)文件系統(tǒng) 的掌握,通過(guò)跑在RTX實(shí)時(shí)操作系統(tǒng)上的MP3 驅(qū)動(dòng)程序和應(yīng)用程序,將存儲(chǔ)在SD 卡上MP3數(shù)據(jù)文件讀取出來(lái),并進(jìn)行正常的播放。 2) GUI圖形用戶界面:系統(tǒng)中的MP3 界面是基于GUI圖形界面,采用圖形方式顯示MP3操作用戶界面在視覺上更易于接受??梢酝ㄟ^(guò)窗體、菜單、按鍵等方式來(lái)方便的進(jìn)行操作。 4.3

13、 軟件模塊化設(shè)計(jì) 從整個(gè)系統(tǒng)來(lái)說(shuō),按其與硬件是否直接相關(guān),可以把軟件分為兩大部分: (1)與硬件相關(guān)的底層驅(qū)動(dòng)軟件子系統(tǒng),包括LCD驅(qū)動(dòng)模塊、觸摸屏驅(qū)動(dòng)模塊、SD卡驅(qū)動(dòng)模塊、VS1003驅(qū)動(dòng)模塊。 -23-/2012.04 電子技術(shù) AVR單片機(jī)的V-USB和串口通信方式比較93707 王志海 【摘要】AVR單片機(jī)與計(jì)算機(jī)的數(shù)據(jù)傳輸方式通常使用串口通信,隨著USB接口的快速普及,直接提供串口的PC機(jī)主板和應(yīng)用串口進(jìn)行數(shù)據(jù)傳輸?shù)耐鈬O(shè)備也越來(lái)越 少。選擇一個(gè)簡(jiǎn)單、快速、適用的通信方式對(duì)于單片機(jī)系統(tǒng)的設(shè)計(jì)開發(fā)就尤為關(guān)鍵。本文對(duì)AVR單片機(jī)使用的串口通信方式和V-USB通信方式的開發(fā)實(shí)現(xiàn)過(guò)程進(jìn)行比

14、較,分析了兩種通訊方式的特點(diǎn)和應(yīng)用場(chǎng)合,方便工程人員參考選擇數(shù)據(jù)通信實(shí)現(xiàn)方案?!娟P(guān)鍵詞】USB接口;V-USB;串口通信;AVR單片機(jī)1. 引言串口通信是單片機(jī)與上位機(jī)最常用的數(shù)據(jù)通信方式,隨著USB接口的普及, 單片機(jī)與計(jì)算機(jī)之間越來(lái)越多的使用USB 接口進(jìn)行數(shù)據(jù)傳輸,但是直接選用USB接口控制芯片會(huì)增加開發(fā)成本與難度。為單片機(jī)設(shè)備選擇一個(gè)簡(jiǎn)單、快速、適用的通信方式,不但可以降低開發(fā)成本和技術(shù)難度,也可以最大程度的提高單片機(jī)系統(tǒng)的運(yùn)行效率。本文對(duì)AVR單片機(jī)使用串口通信和V-USB 方案的開發(fā)實(shí)現(xiàn)過(guò)程進(jìn)行比較,分析了兩種通訊方式的特點(diǎn)和應(yīng)用場(chǎng)合。 1.1 V-USB簡(jiǎn)介 V-USB系統(tǒng)的硬件

15、結(jié)構(gòu)很簡(jiǎn)單,需要一個(gè)AVR單片機(jī)( 片上具有2KB Flash, 128字節(jié)RAM的大部分型號(hào)都可以),再加上少量的外部元件(晶振、電阻、穩(wěn)壓二極管等),就組成了一個(gè)基本的V-USB系統(tǒng),實(shí)現(xiàn)方案需占用單片機(jī)的兩個(gè)數(shù)據(jù)引腳(其中D+必須連接至INT0),并不占用其他的UART、計(jì)時(shí)器等硬件資源。系統(tǒng)組成如圖1。 圖中的D1和D2是3.6V穩(wěn)壓二極管, 目的是限制USB數(shù)據(jù)線上的電平。USB通信規(guī)范中規(guī)定,數(shù)據(jù)線D+、D-上的電平范圍在3.0V至3.6V之間,而AVR單片機(jī)的輸出電平是VCC。如果單片機(jī)的VCC是5V,如沒(méi)有D1、D2的情況下將導(dǎo)致電平不匹配,會(huì)出現(xiàn)在計(jì)算機(jī)中無(wú)法正確識(shí)別出USB

16、設(shè)備的情況。單片機(jī)所需的電源VCC可由USB的5V輸出電源直接提供,電阻R1和R2起到了限流和保護(hù)的作用,避免意外情況下?lián)p壞計(jì)算機(jī)的USB端口或單片機(jī)的端口。 V-USB的軟件源代碼是由C代碼和匯編代碼組成的,開發(fā)環(huán)境為AVR GCC,已組織好幾種不同USB設(shè)備的框架,開發(fā)者只需直接利用即可。最小化的V-USB程序框架編譯后需要占用單片機(jī)1150至1400 字節(jié)的程序空間。 由于V-USB使用單片機(jī)IO口模擬USB 通信,是用純軟件的方式實(shí)現(xiàn)了硬件芯片的功能。而USB通信的速率要求是比 較高的。因此在進(jìn)行USB通信時(shí)單片機(jī)的CPU占用率比較高的。為保證可靠的USB數(shù)據(jù)傳輸, 單片機(jī)CPU 時(shí)鐘

17、必須是工作在12MHz 、 12.8MHz 、 15MHz 、 16MHz 、16.5MHz、18MHz、20MHz這幾個(gè)頻率。 2.2 串口通信下位機(jī)實(shí)現(xiàn) 具備USART單元的AVR單片機(jī)都可以使用串行通信方式,硬件實(shí)現(xiàn)僅使用單片機(jī)的RXD 和TXD 引腳。為和計(jì)算機(jī)的RS- 232接口連接,一般使用MAX232芯片進(jìn)行電平轉(zhuǎn)換,這需要增加部分外圍電路, MAX232應(yīng)用電路如圖2: 若要提高用串口通訊硬件的易用性,還可以選擇成品的USB轉(zhuǎn)TTL接口芯片,可以方便的將使用串口通信的單片機(jī)設(shè)備變?yōu)閁SB設(shè)備,并且不影響上位機(jī)和下位機(jī)的程序編制。 為減小波特率偏差,USART對(duì)單片機(jī)的使用的晶振

18、頻率和串口設(shè)置的通訊速率有一些要求,不匹配的波特率和晶振頻率會(huì)使傳輸出現(xiàn)通訊錯(cuò)誤。具體可查各型單片機(jī)的數(shù)據(jù)手冊(cè)中的波特率設(shè)置表。 3. 上位機(jī)程序編制3.1 V-USB上位機(jī)程序編寫 V-USB項(xiàng)目在計(jì)算機(jī)端使用跨平臺(tái)的開源項(xiàng)目LibUSB來(lái)訪問(wèn)USB設(shè)備。LibUSB- Win32 是 LibUSB 在 Windows 操作系 統(tǒng)(Win2k,WinXP,Vista,Win7) 上的通用USB設(shè)備驅(qū)動(dòng)程序及開發(fā)包。 V-USB的全稱是Virtual USB for AVR microcontrollers,是一個(gè)開源項(xiàng)目。它利用純軟件的實(shí)現(xiàn)方式在ATMEGA 公司的AVR系列單片機(jī)上虛擬出U

19、SB口, 將其模擬為低速USB設(shè)備,實(shí)現(xiàn)方案不需要添加其他的USB接口芯片。通常單片機(jī)與上位機(jī)進(jìn)行USB通信,需要用專用的芯片進(jìn)行USB協(xié)議的轉(zhuǎn)換,例如CP2101、PL2303、SL811、PDIUSBD12等。其中CP2101 、PL2303 芯片使用起來(lái)雖然簡(jiǎn)單,但是功能單一,只能做USB轉(zhuǎn)串口的通訊設(shè)備;而PDIUSBD12、SL811芯片功能較強(qiáng),但是設(shè)計(jì)使用復(fù)雜,這些USB芯片的價(jià)格都相對(duì)較高,增加了系統(tǒng)的硬件成本。而V-USB簡(jiǎn)單易用,成本較低, 絕大多數(shù)的AVR系列單片機(jī)加上很少的幾個(gè)外部元件,就可以組成一個(gè)USB系統(tǒng)。 1.2 串口通信簡(jiǎn)介 串口通信基于RS-232-C串行總線接口標(biāo)準(zhǔn),最初是為了連接計(jì)算機(jī)主機(jī)與CRT終端之間的通信,后來(lái)逐漸廣泛地應(yīng)用于各種設(shè)備之間的數(shù)據(jù)交換。早期的計(jì)算機(jī)主機(jī)都帶有RS-232接口,是最常用的數(shù)據(jù)接口,具

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論