已閱讀5頁(yè),還剩37頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
畢業(yè)論文stm32 mp3播放器畢業(yè)論文題目: 基于STM32的MP3播放系統(tǒng)設(shè)計(jì) 專 業(yè) 電子信息科學(xué)與技術(shù)摘要 MP3是一種高質(zhì)量音樂(lè)壓縮標(biāo)準(zhǔn),采用MP3壓縮的數(shù)據(jù)量可以縮小到1/12,音質(zhì)卻沒(méi)有多少損失。由于MP3音樂(lè)的較小數(shù)據(jù)量和高質(zhì)量的播放效果,使它很快成為一種集音頻播放、數(shù)據(jù)存儲(chǔ)為一身的數(shù)碼產(chǎn)品,并深受人們的喜愛(ài)。本文采用STM32系列微控制器,結(jié)合解碼芯片VS1003、SD卡、 LCD等外圍設(shè)備設(shè)計(jì)并實(shí)現(xiàn)了MP3播放器。其主要功能有:播放VS1003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過(guò)搖桿控制播放上一首/下一首,通過(guò)電位計(jì)來(lái)控制音量增減,通過(guò)LCD顯示音量圖標(biāo)和播放狀態(tài)等;本系統(tǒng)還計(jì)劃實(shí)現(xiàn)讀卡器功能,PC機(jī)可通過(guò)USB接口直接對(duì)開(kāi)發(fā)板上的SD卡進(jìn)行讀寫(xiě)操作,以方便拷貝音頻文件。關(guān)鍵字:MP3播放器、CortexM3、STM32V100、VS1003ABSTRACTIs a high quality MP3 music compression standard, with MP3 compressed data can be reduced to 1 / 12, but there is little loss of sound quality. MP3 music as the smaller amount of data and high-quality playback, it will soon become a set of audio playback, the data is stored as a digital product, and very popular. In this paper, STM32 family of microcontrollers, combined with decoder chip VS1003, SD card, LCD and other peripherals design and implementation of MP3 players. Its main functions are: Play VS1003 supports all audio files, such as MP3, WMA, WAV files, and the sound quality is very good; through the joystick control playback on a / to the next, through a potentiometer to control volume change, through the LCD show the volume icon and play status, etc.; The system also plans to achieve reader function, PC machine interfaces via USB directly to the development board of the SD card read and write operations to facilitate the copying audio files.Key words: MP3 Players; CortexM3; STM32V100; VS1003目 錄摘要IABSTRACTII目 錄III第一章 緒論11.1 選題背景11.2 國(guó)內(nèi)外研究現(xiàn)狀及意義11.3 設(shè)計(jì)和研究方向2第二章 系統(tǒng)設(shè)計(jì)理論基礎(chǔ)32.1 Arm嵌入式系統(tǒng)32.2 STM32V100 Arm開(kāi)發(fā)板32.3 SD卡32.4 FAT16文件系統(tǒng)42.4.1 DBR區(qū)42.4.2 FAT區(qū)52.4.3 FDT區(qū)52.4.4 DATA區(qū)52.5 音頻編解碼器52.6 液晶顯示器62.7 電路焊接6第三章 系統(tǒng)總體設(shè)計(jì)方案及硬件環(huán)境73.1 設(shè)計(jì)目標(biāo)73.2 設(shè)計(jì)原理73.2.1 中央處理器工作原理73.2.2 電源部分原理83.2.3 音頻解碼器介紹83.2.5 液晶顯示原理93.3模塊設(shè)計(jì)方案對(duì)比103.3.1 控制模塊103.3.2 電源模塊103.3.3 音頻解碼器模塊113.3.4 顯示模塊113.4 最終設(shè)計(jì)方案12第四章 硬件電路設(shè)計(jì)134.1 系統(tǒng)硬件設(shè)計(jì)平臺(tái)134.2 總體架構(gòu)設(shè)計(jì)134.3 模塊化電路設(shè)計(jì)144.3.1 SD卡模塊144.3.2 音頻解碼器模塊154.3.3 液晶顯示模塊16第五章 軟件程序設(shè)計(jì)175.1 系統(tǒng)軟件開(kāi)發(fā)平臺(tái)175.2 程序?qū)崿F(xiàn)思想175.3整體軟件系統(tǒng)流程圖175.4 各模塊軟件系統(tǒng)設(shè)計(jì)185.4.1 SD卡讀寫(xiě)模塊設(shè)計(jì)185.4.2 FAT16文件系統(tǒng)185.4.2 MP3播放流程設(shè)計(jì)195.4.3 液晶顯示設(shè)計(jì)195.5 程序設(shè)計(jì)結(jié)果20第六章 測(cè)試和調(diào)試216.1 運(yùn)行過(guò)程216.3 問(wèn)題分析216.3.1 硬件方面216.3.2 軟件方面22第七章 結(jié)論23結(jié)束語(yǔ)24參考文獻(xiàn)25致謝26附錄27附錄一2736 第一章 緒論1.1 選題背景隨著信息技術(shù)的飛速發(fā)展,形式多樣的數(shù)字化產(chǎn)品已經(jīng)開(kāi)始成為繼PC機(jī)后的信息處理工具,在這種數(shù)字化潮流下,嵌入式系統(tǒng)已成為當(dāng)前研究和應(yīng)用的熱點(diǎn)之一,嵌入式手持設(shè)備的視音頻多媒體應(yīng)用也越來(lái)越廣泛。由于嵌入式系統(tǒng)的應(yīng)用要求及成本因素決定了嵌入式系統(tǒng)在系統(tǒng)資源, 包括硬件資源和軟件資源方面都是非常精簡(jiǎn)和高效的。隨著數(shù)字編解碼及壓縮技術(shù)的發(fā)展,語(yǔ)音文件也朝著高壓縮比、高保真的方向發(fā)展,從MP1、MP2到目前的MP3格式。便攜式MP3播放器作為一種集音頻播放、數(shù)據(jù)存儲(chǔ)為一身的數(shù)碼產(chǎn)品,其功能結(jié)構(gòu)為電子設(shè)計(jì)人員所津津樂(lè)道。MP3是MPEG一1音頻III(1ayerIII)的簡(jiǎn)稱。MPEG一1音頻(ISOIECll 1723)是目前普遍應(yīng)用的音頻壓縮標(biāo)準(zhǔn),其中層III的算法最為復(fù)雜,但壓縮比最大,效果也最好,在低碼率的條件下基本能達(dá)到CD的音質(zhì)效果。MP3標(biāo)準(zhǔn)用盡可能低的碼流實(shí)現(xiàn)CD音質(zhì)的聲音而不會(huì)產(chǎn)生數(shù)據(jù)損失。如果對(duì)于一段聲音不進(jìn)行壓縮的話,那么每存儲(chǔ)一秒鐘的立體聲CD音質(zhì)音樂(lè)必須用14Mbit,這是個(gè)十分大的開(kāi)銷。通過(guò)運(yùn)用MPEG音頻標(biāo)準(zhǔn)的壓縮技術(shù),我們可以把存儲(chǔ)空間壓縮到原來(lái)的112而不會(huì)降低聲音的音質(zhì)。即使使用124的壓縮因子,仍然比單純降低采樣率的音質(zhì)要好。低數(shù)據(jù)量和高播放品質(zhì)的優(yōu)點(diǎn)使其成為音樂(lè)存儲(chǔ)、數(shù)字廣播、網(wǎng)上音樂(lè)傳輸?shù)闹饕绞?。人們不僅可以使用計(jì)算機(jī)軟件,還可以通過(guò)數(shù)字隨身聽(tīng)來(lái)欣賞音樂(lè)。1.2 國(guó)內(nèi)外研究現(xiàn)狀及意義MP3全稱是MPEG Layer 3,狹義的講就是以MPEG Layer 3標(biāo)準(zhǔn)壓縮編碼的一種音頻文件格式。在INTERNET廣泛普及的今天, MP3音樂(lè)以其較小數(shù)據(jù)量和近似完美的播放效果已經(jīng)成為計(jì)算機(jī)上和INTERNET最流行的音樂(lè)格式了。將CD格式的音樂(lè)數(shù)據(jù)壓縮成MP3格式,音效相差無(wú)幾(除非你有很好的音響和鑒賞力),文件大小至少可以壓縮12倍(每首PCM格式的CD歌曲大約4050MB數(shù)據(jù)量)。自韓國(guó)世韓(Seahan)公司1998年推出世界上第一臺(tái)MP3隨身聽(tīng)以來(lái), MP3播放器以其小巧的外形,不錯(cuò)的近乎于CD的音質(zhì),前衛(wèi)的功能,越來(lái)越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的一個(gè)熱門(mén)話題。它的記錄媒介是芯片或卡,無(wú)需轉(zhuǎn)動(dòng)部件,徹底擺脫了磁帶和光碟的束縛,因而,抗震和節(jié)電性能更好。在市場(chǎng)消費(fèi)刺激下,各大公司紛紛推出了自己的mp3播放器產(chǎn)品,IC供應(yīng)商提供了眾多的MP3解碼芯片及其解決方案。除了Micronas方案(MAS3507+DAC3550)、ST方案(ST92163+STA013/015)、Crystal軟解壓?jiǎn)涡酒桨?EP7209,EP7212)、TI軟解壓?jiǎn)涡酒桨?TMS320C5409),還有臺(tái)灣創(chuàng)品方案(T33510,T33520)、美國(guó)SigmaTel方案(STMP3400)和TI的DA-250解決方案。這使mp3播放器的研制與生產(chǎn)變得更加容易,成本也大大降低,市場(chǎng)更加廣闊 。1.3 設(shè)計(jì)和研究方向STM32系列微控制器采用ARM公司最新的CortexM3內(nèi)核。VS1003音頻解碼芯片為 VS10xx系列的第三代產(chǎn)品,是芬蘭VLSI Solution 公司生產(chǎn)的單片MP3/WMA/MIDI解碼和ADPCM編碼芯片。本文采用STM32系列微控制器,結(jié)合解碼芯片VS1003、SD卡、 LCD等外圍設(shè)備設(shè)計(jì)并實(shí)現(xiàn)了MP3播放器。其主要功能有:播放VS1003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過(guò)搖桿控制播放上一首/下一首,通過(guò)電位計(jì)來(lái)控制音量增減等;通過(guò)LCD顯示音量圖標(biāo)和播放狀態(tài);本系統(tǒng)還計(jì)劃實(shí)現(xiàn)讀卡器功能,PC機(jī)可通過(guò)USB接口直接對(duì)開(kāi)發(fā)板上的SD卡進(jìn)行讀寫(xiě)操作,以方便拷貝音頻文件。第二章 系統(tǒng)設(shè)計(jì)理論基礎(chǔ)2.1 Arm嵌入式系統(tǒng)嵌入式系統(tǒng)的體系結(jié)構(gòu)(architecture)是嵌入式設(shè)備的一種抽象,這意味著體系結(jié)構(gòu)是系統(tǒng)的一般化,它典型的展現(xiàn)詳細(xì)的現(xiàn)實(shí)信息,例如軟件源代碼或硬件電路設(shè)計(jì)。在體系結(jié)構(gòu)層次,一個(gè)嵌入式系統(tǒng)中的硬件和軟件組件表示為相互作用的要素的某種組合。要素是硬件或軟件的表示,它們的實(shí)現(xiàn)細(xì)節(jié)被抽象掉了,只留下行為和相互關(guān)系的信息。體系結(jié)構(gòu)的要素可以在內(nèi)部集成于嵌入式設(shè)備之中,或者存在于嵌入式系統(tǒng)外部并且與內(nèi)部的要素相互作用。簡(jiǎn)而言之,嵌入式體系結(jié)構(gòu)包括嵌入式系統(tǒng)的要素、與嵌入式系統(tǒng)相互作用的要素、每個(gè)單獨(dú)的要素的屬性、以及要素之間相互作用的關(guān)系。2.2 STM32V100 Arm開(kāi)發(fā)板STM32F103VBT6增強(qiáng)型系列使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號(hào)的器件都包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和一個(gè)PWM定時(shí)器,還包含標(biāo)準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個(gè)I2C和SPI、3個(gè)USART、一個(gè)USB和一個(gè)CAN。STM32F103VBT6增強(qiáng)型系列工作于-40C至+105C的溫度范圍,供電電壓2.0V至3.6V,一系列的省電模式保證低功耗應(yīng)用的要求。2.3 SD卡SD卡(Secure Digital Memory Card)是一種為滿足安全性、容量、性能和使用環(huán)境等各方面的需求而設(shè)計(jì)的一種新型存儲(chǔ)器件,SD卡允許在兩種模式下工作,即SD模式和SPI模式,本系統(tǒng)采用SPI模式。本小節(jié)僅簡(jiǎn)要介紹在SPI模式下,STM32處理器如何讀寫(xiě)SD卡,如果讀者如希望詳細(xì)了解SD卡,可以參考相關(guān)資料。SD卡內(nèi)部結(jié)構(gòu)及引腳如圖2-1 所示圖2.1 SD卡內(nèi)部結(jié)構(gòu)及引腳SD卡主要引腳和功能為:CLK:時(shí)鐘信號(hào),每個(gè)時(shí)鐘周期傳輸一個(gè)命令或數(shù)據(jù)位,頻率可在025MHz之間變化,SD卡的總線管理器可以不受任何限制的自由產(chǎn)生025MHz的頻率;CMD:雙向命令和回復(fù)線,命令是一次主機(jī)到從卡操作的開(kāi)始,命令可以是從主機(jī)到單卡尋址,也可以是到所有卡;回復(fù)是對(duì)之前命令的回答,回復(fù)可以來(lái)自單卡或所有卡;DAT03:數(shù)據(jù)線,數(shù)據(jù)可以從卡傳向主機(jī)也可以從主機(jī)傳向卡。SD卡以命令形式來(lái)控制SD卡的讀寫(xiě)等操作。可根據(jù)命令對(duì)多塊或單塊進(jìn)行讀寫(xiě)操作。在SPI模式下其命令由6個(gè)字節(jié)構(gòu)成,其中高位在前。SD卡命令的格式如表1所示,其中相關(guān)參數(shù)可以查閱SD卡規(guī)范。2.4 FAT16文件系統(tǒng)SD卡如果采用FAT16文件格式,按照其不同的特點(diǎn)和作用大致可分為5 部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。由于SD卡一般不做引導(dǎo)盤(pán),一般也不分區(qū),因此通常無(wú)MBR區(qū),直接從DBR區(qū)開(kāi)始。下面對(duì)后面四個(gè)區(qū)分別作簡(jiǎn)介2.4.1 DBR區(qū)內(nèi)容為系統(tǒng)引導(dǎo)記錄,它包括一個(gè)引導(dǎo)程序和一個(gè)被稱為BPB(Bios Parameter Block)的本分區(qū)參數(shù)記錄表。引導(dǎo)程序的主要任務(wù)是當(dāng)MBR將系統(tǒng)控制權(quán)交給它時(shí),判斷本分區(qū)根目錄是否有操作系統(tǒng)引導(dǎo)文件,如果有則將其讀入內(nèi)存,并把控制權(quán)交給該文件。BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲(chǔ)格式、根目錄大小、FAT個(gè)數(shù),分配單元大小等重要參數(shù)。2.4.2 FAT區(qū)該區(qū)內(nèi)容為文件分配表,F(xiàn)AT16文件系統(tǒng)進(jìn)行空間分配的最基本單位是簇。文件分配表反映了SD卡所有簇的使用情況,通過(guò)查文件分配表可以得知任一簇的使用情況。對(duì)于FAT16來(lái)說(shuō),F(xiàn)AT表每項(xiàng)占用兩個(gè)字節(jié)。FAT表的第一項(xiàng)通常為FFF8H。對(duì)于其它項(xiàng),若其值為0000H表示可用;FFF7H表示為壞簇;FFF8H-FFFFH之間表示該簇為某文件或目錄的最后一個(gè)簇,F(xiàn)FF0H-FFF6H之間為保留值;其它值則指示下一個(gè)簇的簇號(hào)。2.4.3 FDT區(qū)該區(qū)的內(nèi)容為文件目錄表,F(xiàn)AT文件系統(tǒng)的一個(gè)重要思想是把目錄(文件夾)當(dāng)作一個(gè)特殊的文件來(lái)處理,F(xiàn)AT32甚至將根目錄當(dāng)作文件處理。FAT分區(qū)中所有目錄文件,實(shí)際上可以看作是一個(gè)存放其它文件(文件夾)入口參數(shù)的數(shù)據(jù)表。因此,目錄占用空間的大小并不等同于其下所有數(shù)據(jù)的大小,但也不等于0,通常是占很小的空間。其具體的存儲(chǔ)原理是:不管目錄文件所占空間為多少簇,一簇為多少扇區(qū)、多少字節(jié);系統(tǒng)都會(huì)以32個(gè)字節(jié)為單位,進(jìn)行目錄文件所占簇的分配。2.4.4 DATA區(qū)該數(shù)據(jù)區(qū)存放文件的內(nèi)容,SD卡所占用的空間絕大部分為此部分。如果文件長(zhǎng)度大于一個(gè)簇的大小,需要多個(gè)簇存放該文件,這些放通過(guò)FAT鏈表串連起來(lái)。2.5 音頻編解碼器音頻編碼解碼器芯片主要由圍繞一些處理硬件的一個(gè)模數(shù)轉(zhuǎn)換器(ADC)和一個(gè)數(shù)模轉(zhuǎn)換器(DAC)組成,但它們只是眾所周知的海底冰山露出來(lái)的一角。最近一段時(shí)間,大部分工程師認(rèn)為音頻編解碼器就是在DSP平臺(tái)上運(yùn)行的壓縮和解壓縮算法。在整個(gè)音頻頻率范圍里,“語(yǔ)音”編解碼器適合數(shù)字電話應(yīng)用,而“音頻”編解碼器則適合娛樂(lè)音頻應(yīng)用。在這個(gè)意義上,音頻編解碼器是從Dolby公司的噪音抑制技術(shù)演變成Dolby和其它一些公司更綜合性的壓縮方法。它們的出現(xiàn)還與國(guó)際標(biāo)準(zhǔn)組織(ISO)的運(yùn)動(dòng)圖像專家小組(MPEG)有關(guān),該工作小組負(fù)責(zé)為數(shù)字音頻和視頻的編碼表示制定相應(yīng)的標(biāo)準(zhǔn)。 盡管語(yǔ)音編解碼器技術(shù)的發(fā)展一定程度上處于靜止?fàn)顟B(tài),但音頻編解碼器技術(shù)一直在向前演進(jìn)。2.6 液晶顯示器定義:通常,我們?cè)跀?shù)字式電子表與手提電腦上所看到的顯示數(shù)字之玻璃薄片即稱之為液晶顯示器(Liquid Crysplay,簡(jiǎn)稱LCD)。優(yōu)點(diǎn):平面型顯示,體積小,重量輕,功耗低,驅(qū)動(dòng)電壓低,可用大規(guī)模集成電路直接驅(qū)動(dòng),可以在明亮的境下顯示,不含有害射線等。種類:按顯示方式,可分為透射型、反射型的投影顯示三大類。按顯示機(jī)理,可分為如下五種:TN(Twist Nematic)扭曲向列型HTN(High Twist Nematic)高扭曲向列型STN(Super Twist Nematic)超扭曲向列型FSTN(Film Super Twist Nematic)薄膜超扭曲向弄列型TFT(Thin-film Transistor)薄膜晶體管2.7 電路焊接在焊接模塊外引線、接口電路時(shí),應(yīng)按如下規(guī)程進(jìn)行操作:1)烙鐵頭溫度小于280。2)焊接時(shí)間小于34s。3)焊接材料:共晶型、低熔點(diǎn)。4)不要使用酸性助焊劑,一般選擇松香。5)重復(fù)焊接不要超過(guò)3次,且每次重復(fù)需間隔3分鐘。第三章 系統(tǒng)總體方案設(shè)計(jì)3.1 設(shè)計(jì)目標(biāo)本文采用STM32系列微控制器,結(jié)合解碼芯片VSl003、SD卡、LCD等外圍設(shè)備設(shè)計(jì)并實(shí)現(xiàn)了MP3播放器。其主要功能有:播放VSl003支持的所有音頻文件,如MP3、WMA、WAV文件,且音質(zhì)非常好;通過(guò)搖桿控制播放上一首下一首、音量增減等;通過(guò)LCD顯示歌曲名字和播放狀態(tài);本系統(tǒng)還實(shí)現(xiàn)了讀卡器功能,PC機(jī)可通過(guò)USB接口直接對(duì)開(kāi)發(fā)板上的SD卡進(jìn)行讀寫(xiě)操作,以方便拷貝音頻文件。3.2 設(shè)計(jì)原理3.2.1 中央處理器工作原理STM32處理器CortexM3是ARM公司最新推出的基于ARMv7體系架構(gòu)的處理器核,具有高性能、低成本、低功耗的特點(diǎn),專門(mén)為嵌入式應(yīng)用領(lǐng)域設(shè)計(jì)。ARMv7 架構(gòu)采用了Thumb2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的,并且保持了對(duì)現(xiàn)存ARM解決方案完整的代碼兼容性3。 Thumb2技術(shù)比純ARM代碼少使用31%的內(nèi)存,減小了系統(tǒng)開(kāi)銷,同時(shí)能夠提供比Thumb技術(shù)高出38%的性能。在中斷處理方面,CortexM3集成了嵌套向量中斷控制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3處理器的一個(gè)緊耦合部分,可以配置1240個(gè)帶有256個(gè)優(yōu)先級(jí)、8級(jí)搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時(shí),搶占(Preemption)、尾鏈(Tailchaining)、遲到技術(shù)(Latearriving)的使用,大大縮短了異常事件的響應(yīng)時(shí)間。CortexM3異常處理過(guò)程中由硬件自動(dòng)保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時(shí)間,降低了軟件設(shè)計(jì)的復(fù)雜性。CortexM3體系架構(gòu)提出了新的單線調(diào)試技術(shù),CortexM3處理器的跟蹤調(diào)試是通過(guò)調(diào)試訪問(wèn)端口(Debug Access Port,DAP)來(lái)實(shí)現(xiàn)的。DAP端口可以作為串行線調(diào)試端口(SWDP)或串行JTAG調(diào)試端口(SWJDP,允許JTAG或SW協(xié)議)使用。其中SWDP只需要時(shí)鐘和數(shù)據(jù)2個(gè)引腳,實(shí)現(xiàn)低成本跟蹤調(diào)試,避免使用多引腳進(jìn)行JTAG調(diào)試,并全面支持RealView編譯器和 RealView調(diào)試產(chǎn)品。此外CortexM3還具備高度集成化的特點(diǎn),大大減小了芯片面積,內(nèi)部集成了許多緊耦合系統(tǒng)外設(shè),合理利用了芯片空間,使系統(tǒng)滿足下一代產(chǎn)品的控制需求。STM32系列是基于CortexM3核的微控制器,它在CortexM3內(nèi)核的基礎(chǔ)上擴(kuò)展了高性能的外圍設(shè)備。3.2.2 電源部分原理電源設(shè)計(jì)是一個(gè)系統(tǒng)設(shè)計(jì)中的關(guān)鍵部分,對(duì)于整個(gè)系統(tǒng),一個(gè)穩(wěn)定的、具有一定功率的電源和合理的電源管理是必不可少的。本系統(tǒng)有以下幾種電源:CPU的內(nèi)核數(shù)字和模擬電源電壓+1.8 V,CPU的IO口數(shù)字和模擬電源電壓+3.3 V、總線的隔離電源、LCD的驅(qū)動(dòng)電源、LCD的背光逆變電源、其他外圍設(shè)備電源電壓+5 V等電源。3.2.3 音頻解碼器介紹VS1003 是一個(gè)單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個(gè)高性能,自主產(chǎn)權(quán)的低功耗DSP 處理器核VS_DSP4,工作數(shù)據(jù)存儲(chǔ)器,為用戶應(yīng)用提供5KB 的指令RAM 和0.5KB 的數(shù)據(jù)RAM。串行的控制和數(shù)據(jù)接口,4 個(gè)常規(guī)用途的I/O 口,一個(gè)UART,也有一個(gè)高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個(gè)耳機(jī)放大器和地線緩沖器。其具體特性如下:能解碼 MPEG 1 和MPEG2 音頻層 III(CBR+VBR+ABR);WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件;WAV(PCM+IMAAD-PCM);產(chǎn)生MIDI/SP-MIDI 文件。對(duì)話筒輸入或線路輸入的音頻信號(hào)進(jìn)行IMAADPCM編碼支持 MP3 和WAV 流高低音控制單時(shí)鐘操作12.13MHz內(nèi)部PLL鎖相環(huán)時(shí)鐘倍頻器低功耗內(nèi)含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無(wú)相位差內(nèi)含能驅(qū)動(dòng)30 歐負(fù)載的耳機(jī)驅(qū)動(dòng)器模擬,數(shù)字,I/O 單獨(dú)供電為用戶代碼和數(shù)據(jù)準(zhǔn)備的5.5KB片上RAM串行的控制,數(shù)據(jù)接口可被用作微處理器的從機(jī)特殊應(yīng)用的SPI Flash引導(dǎo)供調(diào)試用途的UART接口新功能可以通過(guò)軟件和4 GPIO 添加圖3.1 VS1003芯片3.2.5 液晶顯示原理1602液晶模塊內(nèi)部的字符發(fā)生存儲(chǔ)器(CGROM)已經(jīng)存儲(chǔ)了160個(gè)不同的點(diǎn)陣字符圖形,如表(1)所示,這些字符有:阿拉伯?dāng)?shù)字、英文字母的大小寫(xiě)、常用的符號(hào)、和日文假名等,每一個(gè)字符都有一個(gè)固定的代碼,比如大寫(xiě)的英文字母“A”的代碼是01000001B(41H),顯示時(shí)模塊把地址41H中的點(diǎn)陣字符圖形顯示出來(lái),我們就能看到字母“A”表3.2 LCD1602字符表3.3模塊設(shè)計(jì)方案對(duì)比3.3.1 控制模塊方案一:此方案采用 89C51 單片機(jī)實(shí)現(xiàn),單片機(jī)軟件編程自由度大,可用編程實(shí)現(xiàn)各種控制算法和邏輯控制。但是 89C51 需外接模數(shù)轉(zhuǎn)換器來(lái)滿足數(shù)據(jù)采樣。如果系統(tǒng)增加語(yǔ)音播放功能,還需外接語(yǔ)音芯片,對(duì)外圍電路來(lái)說(shuō),比較復(fù)雜,且軟件實(shí)現(xiàn)也較麻煩。另外,51 單片機(jī)需要用仿真器來(lái)實(shí)現(xiàn)軟硬件調(diào)試,較為繁瑣。方案二:此方案采用 SPCE061A 單片機(jī)實(shí)現(xiàn),此單片機(jī)內(nèi)置 8 路 ADC,2 路 DAC,且集成開(kāi)發(fā)環(huán)境中,配有很多語(yǔ)音播放函數(shù),用 SPCE061A 實(shí)現(xiàn)語(yǔ)音播放相對(duì)方便。但5V的工作電壓,16位的處理器芯片,較低的閃存,使得功耗比較大,處理速度比較慢,工作效率比較低,存儲(chǔ)量受到限制。方案三:此方案采用STM32V100 ARM板實(shí)現(xiàn),它使用高性能的ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲(chǔ)器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)型I/O端口以及包含2個(gè)12位的ADC、3個(gè)通用16位定時(shí)器和一個(gè)PWM定時(shí)器。使得處理速度大大提高,機(jī)器功耗大大降低,整體性能得到很大提高。32位的處理器使得控制更加穩(wěn)定、迅速,窗口型看門(mén)狗,使得程序運(yùn)行更加高效。另外,比較方便的是該板支持硬件仿真,通過(guò)Ulink仿真器可以方便實(shí)現(xiàn)在線逐步調(diào)試,這大大方便了系統(tǒng)的開(kāi)發(fā)與調(diào)試工作。3.3.2 電源模塊1)在各種電子設(shè)備中,直流穩(wěn)壓電源是必不可少的組成部分,它是電子設(shè)備唯一能量來(lái)源,它的設(shè)計(jì)思路可以根據(jù)我們以前學(xué)過(guò)的模電知識(shí)來(lái)完成,既做一個(gè)穩(wěn)壓電源,將交流220V的電壓經(jīng)過(guò)變壓器、整流電路、濾波電路和穩(wěn)壓電路四個(gè)部分,輸出我們想要得的+5V電壓。2)可以用四節(jié)干電池和穩(wěn)壓三極管進(jìn)行穩(wěn)壓,從而得到我們要用的+5V直流電壓,通過(guò)外接排針 CN12,從外板供電。3)可以通過(guò)主板上USB 端口(CN1)供電,供電電流小于500mA。出于調(diào)試的方便和即插即用性,以及本系統(tǒng)的側(cè)重點(diǎn)在MP3播放器上,所以我采用USB為系統(tǒng)供電,如此一來(lái)使系統(tǒng)的實(shí)現(xiàn)變得更加簡(jiǎn)便、迅速。3.3.3 音頻解碼器模塊VS1003 特性:VS1003可以作為一個(gè)微控制器的從機(jī),通過(guò)串行SPI接口來(lái)接收輸入的比特流,輸入的比特流被解碼后,可以通過(guò)一個(gè)數(shù)字音量控制器到達(dá)一個(gè)18 位過(guò)采樣多位DAC。通過(guò)串行總線控制解碼器。這樣利用一個(gè)VS1003芯片與STM32F103x處理器配合,STM32處理器讀取SD卡中的MP3文件,將其通過(guò)SPI接口送往VS1003芯片播放,然后再利用STM32F10X處理器的一些GPIO口來(lái)控制VS1003即可以實(shí)現(xiàn)一個(gè)MP3 Player的原形設(shè)計(jì)。3.3.4 顯示模塊1)常見(jiàn)的基于單片機(jī)設(shè)計(jì)的音樂(lè)播放器基本不能顯示歌曲。該音樂(lè)播放系統(tǒng)設(shè)計(jì)上增加液晶顯示器,LCD顯示模塊主要完成數(shù)據(jù)顯示、輸出數(shù)據(jù)與顯示數(shù)據(jù)的同步等功能,可為使用者提供曲目信息。由于LED數(shù)碼管只能顯示數(shù)字而無(wú)法顯示其他中英文字符,并對(duì)成本及功能考慮,因此從設(shè)計(jì)的成本及功能的角度考慮,采用LCD1602顯示模塊,它可以顯示每目的英文名字。LCD1602驅(qū)動(dòng)電路簡(jiǎn)單,可以由CPU輸出命令驅(qū)動(dòng)。2)又由于STM32V100開(kāi)發(fā)板中沒(méi)有液晶控制器的功能模塊,如果所選擇的液晶屏內(nèi)部也沒(méi)有液晶控制器,那么,要使CPU可以對(duì)液晶進(jìn)行控制,就必須加設(shè)計(jì)一個(gè)液晶驅(qū)動(dòng)控制電路。另外,由于液晶用來(lái)顯示調(diào)節(jié)播放音量的ADC轉(zhuǎn)換值和歌曲的順序,所以字符型的LCD1602基本上能夠滿足顯示要求。又由于系統(tǒng)設(shè)計(jì)時(shí)間的限制,因此本系統(tǒng)中選擇自帶控制器的液晶屏LCD1602液晶顯示。其連接電路圖如圖3.3 所示。圖3.3 LCD液晶管腳連接圖3.4 最終設(shè)計(jì)方案通過(guò)上述論證,本系統(tǒng)采用STM32作為微控制器,VS1003作為解碼芯片,采用SD卡存儲(chǔ)MP3/WMA文件,LCD作為顯示器件,最終完成MP3的播放設(shè)計(jì)。同時(shí)PC機(jī)可以通過(guò)USB接口操作開(kāi)發(fā)板上SD卡中的文件,也可以通過(guò)串口通信控制音樂(lè)播放。具體方案圖如圖3.4所示圖3.4 總體設(shè)計(jì)方案框圖第四章 硬件電路設(shè)計(jì)本系統(tǒng)在硬件上分為5個(gè)模塊:微控制器STM32F103、存儲(chǔ)模塊SD卡、解碼模塊VSl003、控制搖桿Joystick和顯示屏LCD。MP3播放功能模塊的工作分為兩個(gè)部分:第一部分是循環(huán)播放MP3歌曲,該功能需要首先做一些初始化工作,MP3解碼器一旦開(kāi)始工作,就會(huì)一直向CPU請(qǐng)求數(shù)據(jù),直至歌曲結(jié)束,只有通過(guò)鍵盤(pán)操作才會(huì)使該功能提前結(jié)束。因?yàn)镸P3文件的數(shù)據(jù)量較大,在flash存儲(chǔ)器內(nèi)是以頁(yè)為單位進(jìn)行存儲(chǔ)的,所以MP3的播放程序初始化就是要把該文件的首地址和頁(yè)數(shù)先讀出到CPU中,然后CPU可以根據(jù)如上數(shù)據(jù)進(jìn)行取數(shù)據(jù)工作。第二部分則一直在等待中斷發(fā)生,該程序是與鍵盤(pán)結(jié)合起來(lái)的,主要用于使用者對(duì)播放過(guò)程的控制。鍵盤(pán)操作對(duì)MP3播放過(guò)程的控制還包括后退、躍進(jìn)、跳到下一首、音量控制等。因?yàn)檎麄€(gè)播放過(guò)程的鍵盤(pán)控制功能比較單一,沒(méi)有鍵的復(fù)合操作,所以程序都很容易實(shí)現(xiàn)。當(dāng)MP3播放器插入到USB接口時(shí),系統(tǒng)執(zhí)行USB通訊功能模塊,該模塊主要用于對(duì)flash存儲(chǔ)器內(nèi)的文件數(shù)據(jù)進(jìn)行管理。4.1 系統(tǒng)硬件設(shè)計(jì)平臺(tái)本系統(tǒng)以STM32V100開(kāi)發(fā)板為平臺(tái),進(jìn)行MP3播放器的設(shè)計(jì)。4.2 總體架構(gòu)設(shè)計(jì)如圖4.1 所示,STM32F103x使用SPI2端口與VS1003芯片的SI、SO、SCLK連接;VS1003芯片的控制引腳xCS、xRESET、xDCS分別與STM32F103的PA1、PA0和PA2連接,低電平有效;VS1003的狀態(tài)引腳DREQ與STM32F103處理器的PA3連接,低電平表示需要送數(shù)據(jù),高電平表示正在處理數(shù)據(jù)。圖4.1 MP3 Player硬件設(shè)計(jì)電路圖4.3 模塊化電路設(shè)計(jì)4.3.1 SD卡模塊該系統(tǒng)使用STM32內(nèi)部接口SPIl與SD卡進(jìn)行通信,下面介紹其引腳連接情況。 PE3:低電平有效,連接到SD卡的片選引腳CDDAT3。SPI在和SD卡進(jìn)行通信時(shí),需要將PE3拉低才能對(duì)SD卡進(jìn)行操作。 PA7:映射為STM32內(nèi)部接口SPIl的主輸出從輸入(MOSI)信號(hào)線。這里STM32是主設(shè)備,SD卡是從設(shè)備。數(shù)據(jù)流的傳輸方向是從STM32傳輸給SD卡。該信號(hào)線用于傳輸一些控制命令來(lái)完成SD卡的操作,如讀、寫(xiě)等。 PA5:已連接到STM32內(nèi)部接口SPIl的時(shí)鐘(SCLK)信號(hào)線??稍O(shè)置SPI的時(shí)鐘頻率來(lái)調(diào)整讀取SD卡數(shù)據(jù)的快慢。 PA6:已連接到STM32內(nèi)部接口SPIl的主輸入從輸出(MISO)信號(hào)線。數(shù)據(jù)的傳輸方向是從SD卡傳輸給STM32,主要返回SD卡的一些狀態(tài)、內(nèi)部寄存器值等。 PCI2:用于檢測(cè)SD卡是否完全插入。當(dāng)SD卡完全插入時(shí),PCl2為低電平,否則為高電平。由于本系統(tǒng)采用STM103V100-II開(kāi)發(fā)板,所以就以其自帶的SD卡的結(jié)構(gòu)及讀寫(xiě)方法進(jìn)行介紹,STM103V100-II評(píng)估板有SD連接器,其使用SPI總線與STM32處理器連接,如圖4.2所示圖4.2 SD連接器與STM32處理器SPI連接圖4.3.2 音頻解碼器模塊該系統(tǒng)使用STM32內(nèi)部接口SPl2與VSl003進(jìn)行通信,下面具體介紹其引腳連接以及使用情況。 PA3:VSl003的中斷請(qǐng)求引腳。當(dāng)VSl003內(nèi)部數(shù)據(jù)已處理完畢,需要新的數(shù)據(jù)時(shí),將DREQ拉高。STM32根據(jù)這個(gè)信號(hào)來(lái)給VSl003發(fā)送新的數(shù)據(jù)流。 PBl3:已連接到STM32內(nèi)部接口SPI2的時(shí)鐘(SCLK)信號(hào)線。 PBl4:已連接到STM32內(nèi)部接口SPI2的主輸入從輸出(MISO)信號(hào)線。這里STM32是主設(shè)備,VSl003是從設(shè)備。數(shù)據(jù)流的傳輸方向是從VSl003傳輸給STM32。主要用于讀取VSl003的一些狀態(tài)和內(nèi)部寄存器值,比如寄存器測(cè)試返回的內(nèi)部寄存器的值。 PBl5:已連接到STM32內(nèi)部接口SPl2的主輸出從輸入(MOSI)信號(hào)線。這里STM32是主設(shè)備,VSl003是從設(shè)備。數(shù)據(jù)流方向是從STM32傳輸給VSl003,主要傳輸給VSl003一些控制命令、MP3WMA數(shù)據(jù)流等。PAl:低電平有效,如果拉低該引腳,那么通過(guò)SPI傳輸?shù)氖强刂菩盘?hào)??刂菩盘?hào)包括讀寫(xiě)VSl003的內(nèi)部寄存器、對(duì)VSl003進(jìn)行初始化、設(shè)置左右聲道音量等。PA2:低電平有效,如果拉低該引腳,那么通過(guò)SPI傳輸?shù)氖菙?shù)據(jù)信號(hào)。比如在向VSl003傳輸MP3WMA的數(shù)據(jù)流時(shí)需要拉低該引腳。PA0:低電平有效,拉低該引腳則硬件復(fù)位VSl003。本系統(tǒng)所設(shè)計(jì)的音頻解碼模塊的硬件電路圖如圖4.3所示圖4.3 音頻解碼器驅(qū)動(dòng)電路圖4.3.3 液晶顯示模塊 LCD液晶顯示模塊主要完成數(shù)據(jù)顯示、輸出數(shù)據(jù)與顯示數(shù)據(jù)的同步等功能,可為使用者提供曲目信息。由3.3.4 顯示模塊方案可知,前期為了簡(jiǎn)化電路的設(shè)計(jì),以及充分利用開(kāi)發(fā)板資源,此次系統(tǒng)顯示模塊設(shè)計(jì)采用STM32V100開(kāi)發(fā)板有自帶的LCD液晶屏,如果時(shí)間允許,我將對(duì)支持漢字液晶屏進(jìn)行研究以用于顯示歌詞,音量等。LCD液晶屏硬件電路如圖4.3所示圖4.4 LCD1602硬件電路圖第五章 軟件程序設(shè)計(jì)5.1 系統(tǒng)軟件開(kāi)發(fā)平臺(tái)STM32系列微控制器采用ARM公司最新的CortexM3內(nèi)核。Cortex-M3是ARM公司推出的最新的針對(duì)微控制器應(yīng)用的內(nèi)核,提供業(yè)界領(lǐng)先的高性能和低成本的解決方案,將成為MCU應(yīng)用的熱點(diǎn)和主流。但是目前能夠支持Cortex-M3架構(gòu)的開(kāi)發(fā)工具很少,包括SDT、ADS1.2等開(kāi)發(fā)工具都不支持。MDK是目前性價(jià)比最高的支持Cortex-M3處理器的開(kāi)發(fā)工具。故本次設(shè)計(jì)的軟件平臺(tái)是建立在軟件MDK Vision3之上的。5.2 程序?qū)崿F(xiàn)思想本系統(tǒng)的工作過(guò)程大致為:STM32通過(guò)SPIl從SD卡中讀取MP3WMA文件,將所讀取的數(shù)據(jù)流通過(guò)SPl2發(fā)送到VSl003解碼中播放;PC機(jī)可通過(guò)USB總線讀寫(xiě)SD卡的內(nèi)容,傳送MP3WMA等文件;LCD顯示屏用于顯示MP3的文件名、播放狀態(tài)。五維搖桿左右搖動(dòng)控制播放上一首下一首,上下?lián)u動(dòng)控制音量,按下則控制播放暫停。5.3整體軟件系統(tǒng)流程圖有硬件系統(tǒng)可得軟件的系統(tǒng)流程圖:圖5.1 軟件系統(tǒng)流程圖5.4 各模塊軟件系統(tǒng)設(shè)計(jì)5.4.1 SD卡讀寫(xiě)模塊設(shè)計(jì)msd.c 該文件用于提供SD卡的驅(qū)動(dòng),由ST公司所帶例程提供,本系統(tǒng)用到以下一些函數(shù)。 SPI_Config:配置與SD卡相連接的SPI1; MSD_Init:初始化SD卡通訊; MSD_WriteByte:向SD卡寫(xiě)一個(gè)字節(jié); MSD_WriteByte:從SD卡讀一個(gè)字節(jié); MSD_GoIdleState:令SD卡處于空閑態(tài); Get_Medium_Characteristics:獲取SD卡的容量; MSD_SendCmd:向SD卡發(fā)命令; MSD_GetResponse:從SD卡獲取響應(yīng); MSD_ReadBlock:從SD卡讀取一塊數(shù)據(jù);5.4.2 FAT16文件系統(tǒng)fat16.c該文件提供FAT16文件系統(tǒng)的支持,主要包含以下一些函數(shù): ReadMBR:讀取MBR數(shù)據(jù)結(jié)構(gòu); ReadBPB:讀取BPB數(shù)據(jù)結(jié)構(gòu); ReadFAT:讀取文件分配表指定項(xiàng); ReadBlock:讀取一個(gè)扇區(qū); FAT_Init:獲取FAT16文件系統(tǒng)基本信息; DirStartSec:獲取根目錄的開(kāi)始扇區(qū)號(hào); DataStartSec:獲取數(shù)據(jù)區(qū)的開(kāi)始扇區(qū)號(hào); ClusConvLBA:獲取一個(gè)簇的開(kāi)始扇區(qū)號(hào); LBAConvClus:轉(zhuǎn)換扇區(qū)號(hào)與簇號(hào)之間的關(guān)系; LBAConvClus:計(jì)算可用空間,返回字節(jié)數(shù); GetFileName:獲取指定文件的首扇區(qū)號(hào); List_DateAndTime:獲取文件或目錄項(xiàng)的日期時(shí)間; SearchFoler:在指定范圍內(nèi)查找子目錄; List_AllDir_Long:列出指定范圍內(nèi)的目錄及目錄信息; FAT_FileOpen:打開(kāi)指定文件; FAT_FileRead:讀取文件數(shù)據(jù);5.4.2 MP3播放流程設(shè)計(jì)通過(guò)SPI1從SD卡中讀取聲波文件,將所讀取的部分存放在一個(gè)緩沖器中,利用TIMER2通道1定期產(chǎn)生的中斷,從緩沖器中讀取聲音數(shù)據(jù),然后根據(jù)聲音數(shù)據(jù)通過(guò)TIMER4的通道3產(chǎn)生不同頻率方波輸出。這里使用了兩個(gè)緩沖器,一個(gè)用于存放從SD卡讀到的聲音數(shù)據(jù),另一個(gè)用于將聲音數(shù)據(jù)輸出到PWM,兩個(gè)緩沖區(qū)的功能不斷交替,形成一個(gè)由2個(gè)緩沖區(qū)構(gòu)成的環(huán)形緩沖。播放聲波文件由PC機(jī)通過(guò)超級(jí)終端以命令的方式選擇,聲音的播放狀態(tài)也顯示在PC機(jī)超級(jí)終端上。具體流程如圖 所示圖5.2 MP3播放程序設(shè)計(jì)流程圖5.4.3 液晶顯示設(shè)計(jì)液晶顯示模塊是一個(gè)慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時(shí)要先輸入顯示字符地址,也就是告訴模塊在哪里顯示字符,表(2)是DM-1602的內(nèi)部顯示地址。比如第二行第一個(gè)字符的地址是40H,那么是否直接寫(xiě)入40H就可以將光標(biāo)定位在第二行第一個(gè)字符的位置呢?這樣不行,因?yàn)閷?xiě)入顯示地址時(shí)要求最高位D7恒定為高電平1所以實(shí)際寫(xiě)入的數(shù)據(jù)應(yīng)該是01000000B(40H)+10000000B(80H)=11000000B(C0H) 具體流程圖如圖5.3所示圖5.3 液晶顯示流程圖5.5 程序設(shè)計(jì)結(jié)果由于SPIl讀取SD卡文件的速度遠(yuǎn)超過(guò)VSl003播放數(shù)據(jù)流的速度,因此VSl003在播放來(lái)自SPI2的數(shù)據(jù)流期間,SPIl能從SD卡中讀取下次播放所需的數(shù)據(jù),不會(huì)產(chǎn)生聲音不連續(xù)的情況。由于使用了2個(gè)SPI接口,相互之間無(wú)干擾,且提高了文件系統(tǒng)的效率,因此本系統(tǒng)得到了非常高品質(zhì)的音樂(lè)。第六章 測(cè)試和調(diào)試6.1 運(yùn)行過(guò)程1) 使用MDK uvision3通過(guò)ULINK2仿真器連接開(kāi)發(fā)板,或使用2根USB電纜分別將CN1和CN5與PC機(jī)USB端口相連(使用板上自帶的ULINK Me)。2) 使用串口線將開(kāi)發(fā)板的串口COM0與PC機(jī)連接,在PC機(jī)上運(yùn)性windows自帶的超級(jí)終端串口通信程序(波特率115200、1位停止位、無(wú)校驗(yàn)位、無(wú)硬件流控制);3) 程序目錄下的Simple_Wave_Player.Uv2工程,將其編譯連接后燒寫(xiě)到STM32V100的板子中。4)將所要測(cè)試聲波文件TEST1.wav、TEST2.wav拷貝到SD卡中,并將SD卡插入板子的SD連接器中。5)重啟STM32V100開(kāi)發(fā)板,在超級(jí)終端上將看到SD卡的信息以及提示符“X:”,鍵入敵人命令然后回車列出SD卡上的所有文件和目錄。6)可以在超級(jí)終端中輸入“dir”、“cd”、“free”、“read”等命令,(注:read命令后跟文件名;讀出并輸出文件的文本內(nèi)容,可以正確顯示文本文件,如:以“txt”,“c”,“h”為后綴的文件),觀察運(yùn)行結(jié)果。7)在超級(jí)終端中輸入“play TEST1.wav”,通過(guò)開(kāi)發(fā)板的揚(yáng)聲器或者耳機(jī)將能聽(tīng)到音樂(lè)聲。6.3 問(wèn)題分析6.3.1 硬件方面重啟STM32v100開(kāi)發(fā)板的時(shí)候,超級(jí)終端上不能顯示SD卡的相應(yīng)信息。造成這種現(xiàn)象的原因是由于存儲(chǔ)歌曲文件的SD卡格式不正確,SD卡要采用FAT文件格式。6.3.2 軟件方面1)顯示曲目編號(hào)的時(shí)候LCD液晶顯示屏不能完全顯示相應(yīng)字符串。液晶顯示問(wèn)題,一般是顯示位置函數(shù) write_com(0x80+0x40+add) 出錯(cuò)造成的,因?yàn)長(zhǎng)CD液晶一行可以顯示16個(gè)字節(jié),而后8個(gè)字節(jié)是不能顯示在屏上的,所以調(diào)節(jié)要顯示的位置值,就可以是完整的顯示在LCD液晶屏的兩行上。2)VS1003模塊能否正常工作的關(guān)鍵在于驅(qū)動(dòng)函數(shù)SPIPutChar()和SPIGetChar()函數(shù),它關(guān)系到中央處理器對(duì)驅(qū)動(dòng)模塊的控制與支配。unsigned char SPIPutChar(unsigned char outb) /* Write and Read a byte on SPI interface. */ unsigned char inb; /* Wait if TXE cleared, Tx FIFO is full. */ while (SPI2-SR & TXE) = 0); SPI2-DR = outb; /* Wait if RNE cleared, Rx FIFO is empty. */ while (SPI2-SR & RXNE) = 0); inb = SPI2-DR; return (inb);u8 SPIGetChar(void) u8 Data = 0; /* Wait until the transmit buffer is empty */ while (SPI_GetFlagStatus(SPI2, SPI_FLAG_TXE) = RESET); /* Send the byte */ SPI_SendData(SPI2, 0xFF); /* Wait until a data is received */ while (SPI_GetFlagStatus(SPI2, SPI_FLAG_RXNE) = RESET); /* Get the received data */ Data = SPI_ReceiveData(SPI2); /* Return the shifted data */ return Data;第七章 結(jié)論本系統(tǒng)實(shí)現(xiàn)了簡(jiǎn)易MP3 Player的基本原型設(shè)計(jì),還可以進(jìn)一步利用英蓓特STM103V100-II評(píng)估板資源來(lái)完善和豐富該MP3 Player的功能,例如利用Joystick來(lái)選擇歌曲、利用LCD來(lái)顯示歌曲名、利用ADC來(lái)調(diào)節(jié)音量、利用幾個(gè)LED燈來(lái)表示音量大小。如果能完成以上所有相關(guān)設(shè)計(jì),則可以基本熟悉STM32處理器的各種應(yīng)用開(kāi)發(fā)。結(jié)束語(yǔ)本文提出了一種基于STM32的MP3播放器設(shè)計(jì)方案,并使用ARM開(kāi)發(fā)工具RealView MDK實(shí)現(xiàn)了該方案的原型。盡管該方案無(wú)法作為一個(gè)通用MP3的方案,但是對(duì)于某些音頻需要的工業(yè)控制、汽車電子、醫(yī)療電子等方案具有一定的參考性。本系統(tǒng)也可以嘗試采用更有效的中斷方式,在內(nèi)存中設(shè)置一個(gè)環(huán)形的緩沖區(qū),SPI1從SD卡讀取的MP3文件數(shù)據(jù)存放在其中,當(dāng)VS1003需要數(shù)據(jù)時(shí)其DREQ引腳將產(chǎn)生低電平,利用其產(chǎn)生中斷,在中斷服務(wù)程序中從緩沖區(qū)讀取數(shù)據(jù)送VS1003,直至DREQ引腳恢復(fù)為高電平時(shí)退出中斷。限于時(shí)間與篇幅的問(wèn)題,我將不對(duì)上述情況予以實(shí)現(xiàn)。參考文獻(xiàn)1 李寧編著?;贛DK的STM32處理器開(kāi)發(fā)應(yīng)用。北京航空航天大學(xué)出版社,2008年2 馬忠梅,李善平,康慨,葉楠編著。ARM&Linux嵌入式系統(tǒng)教程。北京航天航空大學(xué)出版社,2004年3 熊茂華,楊震倫編著。ARM9嵌入式系統(tǒng)設(shè)計(jì)與開(kāi)發(fā)應(yīng)用。清華大學(xué)出版社4 賴曉晨、原旭、孫寧編著。嵌入式系統(tǒng)程序設(shè)計(jì)。清華大學(xué)出版社,2010年5 康華光,陳大欽,張林編著。電子技
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 《柴油機(jī)燃料供給》課件
- 《畜禽免疫學(xué)》課件
- 中醫(yī)診斷學(xué)課件-中醫(yī)診斷學(xué)緒論
- 2024年高考?xì)v史總復(fù)習(xí)考前沖刺攻略 第4講 高考應(yīng)試能力的培養(yǎng)
- 單位管理制度合并匯編職員管理十篇
- 3號(hào)橋臺(tái)(擴(kuò)基U型橋臺(tái))計(jì)算書(shū)
- 《標(biāo)書(shū)制作商務(wù)部分》課件
- 2016年高考語(yǔ)文試卷(新課標(biāo)Ⅱ卷)(解析卷)
- 《寄小讀者》導(dǎo)讀課件
- 文明的歷史足跡
- 中華人民共和國(guó)殘疾評(píng)定表
- 人教版美術(shù)五年級(jí)上冊(cè)《第2課 色彩的和諧》說(shuō)課稿2
- 2024年6月浙江省高考?xì)v史試卷(真題+答案)
- 住友(SWS)汽車連接器(Connectors)產(chǎn)品配套手冊(cè)
- 辦公樓室內(nèi)裝飾工程施工設(shè)計(jì)方案技術(shù)標(biāo)范本
- 2023年香港華夏杯六年級(jí)競(jìng)賽初賽數(shù)學(xué)試卷
- 高中數(shù)學(xué)放縮法
- 上海市閔行區(qū)2024-2025學(xué)年八年級(jí)(上)期末物理試卷(解析版)
- 2024年國(guó)考行測(cè)真題-言語(yǔ)理解與表達(dá)真題及完整答案1套
- 人教版三年級(jí)上冊(cè)數(shù)學(xué)期末測(cè)試卷可打印
- 醫(yī)療高級(jí)職稱評(píng)審論文答辯
評(píng)論
0/150
提交評(píng)論