




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
MP3播放器設(shè)計方案1.1選題背景隨著數(shù)字編解碼及壓縮技術(shù)的發(fā)展,語音文件也朝著高壓縮比、高保真的方向發(fā)展,從MP1、MP2到目前的MP3格式。便攜式MP3播放器作為一種集音頻播放、數(shù)據(jù)存儲為一身的數(shù)碼產(chǎn)品,其功能結(jié)構(gòu)為電子設(shè)計人員所津津樂道。MP3是MPEG—1音頻III(layerIII)的簡稱。MPEG—1音頻(ISO/IECll172—3)是目前普遍應(yīng)用的音頻壓縮標(biāo)準(zhǔn),其中層III的算法最為復(fù)雜,但壓縮比最大,效果也最好,在低碼率的條件下基本能達(dá)到CD的音質(zhì)效果°MP3標(biāo)準(zhǔn)用盡可能低的碼流實(shí)現(xiàn)CD音質(zhì)的聲音而不會產(chǎn)生數(shù)據(jù)損失。如果對于一段聲音不進(jìn)行壓縮的話,那么每存儲一秒鐘的立體聲CD音質(zhì)音樂必須用1.4Mbit,這是個十分大的開銷。通過運(yùn)用MPEG音頻標(biāo)準(zhǔn)的壓縮技術(shù),我們可以把存儲空間壓縮到原來的1/12而不會降低聲音的音質(zhì)。即使使用1/24的壓縮因子,仍然比單純降低采樣率的音質(zhì)要好。低數(shù)據(jù)量和高播放品質(zhì)的優(yōu)點(diǎn)使其成為音樂存儲、數(shù)字廣播、網(wǎng)上音樂傳輸?shù)闹饕绞健H藗儾粌H可以使用計算機(jī)軟件,還可以通過數(shù)字隨身聽來欣賞音樂。在這種數(shù)字化潮流下,嵌入式系統(tǒng)已成為當(dāng)前研究和應(yīng)用的熱點(diǎn)之一,嵌入式手持設(shè)備的視音頻多媒體應(yīng)用也越來越廣泛。由于嵌入式系統(tǒng)的應(yīng)用要求及成本因素決定了嵌入式系統(tǒng)在系統(tǒng)資源,包括硬件資源和軟件資源方面都是非常精簡和高效的1.2國內(nèi)外研究現(xiàn)狀及意義MP3全稱是MPEGLayer3狹義的講就是以MPEGLayer3標(biāo)準(zhǔn)壓縮編碼的一種音頻文件格式。在INTERNET廣泛普及的今天,MP3音樂以其較小數(shù)據(jù)量和近似完美的播放效果已經(jīng)成為計算機(jī)上和INTERNET最流行的音樂格式了。將CD格式的音樂數(shù)據(jù)壓縮成MP3格式,音效相差無幾(除非你有很好的音響和鑒賞力),文件大小至少可以壓縮12倍(每首PCM格式的CD歌曲大約40~50MB數(shù)據(jù)量)。自韓國世韓(Seahan)公司1998年推出世界上第一臺MP3隨身聽以來,MP3播放器以其小巧的外形,不錯的近乎于CD的音質(zhì),前衛(wèi)的功能,越來越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的.專業(yè).專注.一個熱門話題。它的記錄媒介是芯片或卡,無需轉(zhuǎn)動部件,徹底擺脫了磁帶和光碟的束縛,因而,抗震和節(jié)電性能更好。在市場消費(fèi)刺激下,各大公司紛紛推出了自己的mp3播放器產(chǎn)品,IC供應(yīng)商提供了眾多的MP3解碼芯片及其解決方案。除了Micronas方案(MAS3507+DAC3550)、ST方案(ST92163+STA013/015)、CrysTaL軟解壓單芯片方案(EP7209,EP7212)、TI軟解壓單芯片方案(TMS320C5409),還有臺灣創(chuàng)品方案(T33510,T33520)、美國SigmaTel方案(STMP3400)和TI的DA-250解決方案。這使mp3播放器的研制與生產(chǎn)變得更加容易,成本也大大降低,市場更加廣闊。系統(tǒng)硬件設(shè)計2.1設(shè)計目標(biāo)本論文是基于STM32的MP3播放器的設(shè)計,論文中將涉及到:STM32的學(xué)習(xí)和嵌入式原理的應(yīng)用,MP3解碼的實(shí)現(xiàn)原理及其解碼芯片的應(yīng)用指南,SD卡的數(shù)據(jù)存儲結(jié)構(gòu)及其各種文件系統(tǒng)的區(qū)別,TFT觸摸屏的操作及簡單GUI在TFT上的實(shí)現(xiàn)。預(yù)期將能實(shí)現(xiàn)在TFT液晶上對MP3播放的實(shí)時控制。2.2設(shè)計方案對比控制器方案方案一:此方案采用89C51單片機(jī)實(shí)現(xiàn),單片機(jī)軟件編程自由度大,可用編程實(shí)現(xiàn)各種控制算法和邏輯控制。但是89C51需外接模數(shù)轉(zhuǎn)換器來滿足數(shù)據(jù)采樣。如果系統(tǒng)增加語音播放功能,還需外接語音芯片,對外圍電路來說,比較復(fù)雜,且軟件實(shí)現(xiàn)也較麻煩。另外,51單片機(jī)需要用仿真器來實(shí)現(xiàn)軟硬件調(diào)試,較為繁瑣。方案二:此方案采用SPCE061A單片機(jī)實(shí)現(xiàn),此單片機(jī)內(nèi)置8路ADC,2路DAC,且集成開發(fā)環(huán)境中,配有很多語音播放函數(shù),用SPCE061A實(shí)現(xiàn)語音播放相對方便。但5V的工作電壓,16位的處理器芯片,較低的閃存,使得功耗比較大,處理速度比較慢,工作效率比較低,存儲量受到限制。方案三:此方案采用STM32F103VCT6實(shí)現(xiàn),它使用高性能的ARMCortex-M332位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)型1/0端口以及包含2個12位的ADC、3個通用16位定時器和一個PWM定時器。使得處理速度大大提高,機(jī)器功耗大大降低,整體性能得到很大提.專業(yè).專注...專業(yè).專注...專業(yè).專注.高。32位的處理器使得控制更加穩(wěn)定、迅速,窗口型看門狗,使得程序運(yùn)行更加高效。另外,比較方便的是該板支持硬件仿真,通過Ulink仿真器可以方便實(shí)現(xiàn)在線逐步調(diào)試,這大大方便了系統(tǒng)的開發(fā)與調(diào)試工作。基于STM32的高性能,低功耗,方便調(diào)試等特性,故選擇方案三。MP3解碼方案方案一:此方案采用軟解MP3,直接用軟件解碼。節(jié)約了硬件成本,但代碼復(fù)雜,編程難度較高,工作量極大,而且對控制器的處理速度和資源要求都比較高。方案二:此方案采用硬解MP3,直接用音頻解碼芯片解碼。它使用高性能的VS1003MP3解碼芯片,功能強(qiáng)大而且價格便宜,VS1003支持MP3、WAV、WMA、MIDI等諸多音頻格式,音質(zhì)可與市場上中檔MP3播放器相媲美?;谏鲜霰容^,故選擇方案二;顯示模塊方案方案一:此方案采用LCD1602,完成數(shù)據(jù)顯示°LCD1602驅(qū)動電路簡單,它可以顯示簡單的中英文字符,功能和設(shè)計的成本都比較低!方案二:此方案采用LCD12864,它既可以顯示中英文字符,也可以顯示圖片。但其圖案分辨率較低,而且只能顯示單色字符。方案三:此方案采用TFT液晶模塊,它既可以顯示彩色數(shù)字、中英文字符和圖案,還可以加上觸摸屏模塊,實(shí)現(xiàn)GUI用戶圖形交互實(shí)時控制!基于TFT液晶的強(qiáng)大功能,故選擇方案三。MP3儲存介質(zhì)方案方案一:此方案采用直接將MP3文件存放在控制器的內(nèi)部ROM儲存器中,讀取速度快,操作簡單方便。但是,相比于51,AVR,SPCE061A等單片機(jī),雖然STM32有著很大的內(nèi)部ROM容量,但還是不能完整的保存一首MP3歌曲。方案二:此方案采用U盤來儲存MP3文件,極大的提高了儲存容量。方案三:此方案采用SD卡來儲存MP3文件。采用SPI通訊方式的SD卡不僅讀取數(shù)據(jù)的速度快,而且具有小體積,大容量等特點(diǎn)。根據(jù)本人的實(shí)際情況,故采用了方案三。2.3系統(tǒng)設(shè)計原理本設(shè)計由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,外擴(kuò)FLASH模塊,觸摸屏模塊,串口通信模塊組成。將要解決SD卡的讀取及使用FATFS系統(tǒng)對SD卡的操作、TFT液晶的控制及觸摸屏原理、還有圖形用戶界面GUI的實(shí)現(xiàn)等問題。硬件系統(tǒng)方框圖如圖2-1所示?;驹O(shè)計流程是使用STM32系列微控制器,采用FATFS文件系統(tǒng)方式讀取SD卡中的MP3文件,并控制MP3解碼芯片對MP3文件進(jìn)行解碼播放,并在TFT液晶上顯示實(shí)時播放情況。圖2-1硬件系統(tǒng)方框圖中央處理器工作原理STM32系列是基于CortexM3核的微控制器,它在CortexM3內(nèi)核的基礎(chǔ)上擴(kuò)展了高性能的外圍設(shè)備。CortexM3是ARM公司最新推出的基于ARMv7體系架構(gòu)的處理器核,具有高性能、低成本、低功耗的特點(diǎn),專門為嵌入式應(yīng)用領(lǐng)域設(shè)計。ARMv7架構(gòu)采用了Thumb2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的基礎(chǔ)上發(fā)展起來的,并且保持了對現(xiàn)存ARM解決方案完整的代碼兼容性。Thumb2技術(shù)比純ARM代碼少使用31%的內(nèi)存,減小了系統(tǒng)開銷,同時能夠提供比Thumb技術(shù)高出38%的性能。在中斷處理方面,CortexM3集成了嵌套向量中斷控制器NVIC(NestedVectoredInterruptController)。NVIC是CortexM3處理器的一個緊耦合部分,可以配置1~240..專業(yè).專注.??專業(yè)?專注.個帶有256個優(yōu)先級、級搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時,搶占(Preemption)、尾鏈(Tailchaining)、遲到技術(shù)(Latearriving)的使用,大大縮短了異常事件的響應(yīng)時間。CortexM3異常處理過程中由硬件自動保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時間,降低了軟件設(shè)計的復(fù)雜性。CortexM3體系架構(gòu)提出了新的單線調(diào)試技術(shù),CortexM3處理器的跟蹤調(diào)試是通過調(diào)試訪問端口(DebugAccessPort,DAP)來實(shí)現(xiàn)的。DAP端口可以作為串行線調(diào)試端口(SWDP)或串行JTAG調(diào)試端口(SWJDP,允許JTAG或SW協(xié)議)使用。其中SWDP只需要時鐘和數(shù)據(jù)2個引腳,實(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)品的控制需求。其引腳分布如圖2-2所示:OmcnccffillZiOOiOCiOiCiaStJiC'-O二|件OmcnccffillZiOOiOCiOiCiaStJiC'-OO5lO耳OL1JLJJ£tlAACLdQ-fLQQmdCLELCLddCLdddELCLCLdnnnnnnnnnnnnnnnnnnnnnnPE2CPE3CPE4EPE5EPE6EVBATCPCl3-TAMPER-ATCrPC14-OSC32JNEPC15-OSC32OUTEPE2CPE3CPE4EPE5EPE6EVBATCPCl3-TAMPER-ATCrPC14-OSC32JNEPC15-OSC32OUTEVSS_5cVDD_5COSCJNCOSC_OUTE祜5TT匚PCDEPC1EPC2CPC3CVSSAcVREF-EVREF咔cVDDAERAO-WKUPcPA1CPA2c/TCJ-n皿呂<070091o門1213141S1617181E202122232425SSSSSSSSooog-?mSocScqr;kr?、■LGFP100VDD_2=1VSS.2NCF%13F^.12Rft11Rft10PA9fasPC9PC9PC7PC6PD15PD14PD13PD12PD11PD10PD9PDSPB15二一」nnnnndPB14PB11PB12、gfMBQlmm寸stnzoce口lg小寸ggcmoXuuuuuuuuuuuuuuuuuuuuuuuuue寸寸wmBgpinoLCMboimoLWE寸iadlla<Y垃弍乜匸)uuuuuuuuuuuuuuuuuuuuuuuuue寸寸wmBgpinoLCMboimoLWE寸iadlla<Y垃弍乜匸)匸)08CDLUUJUJl=t-l_「匸一II£Li^!OCL£La_D_[^_Q_CLQBCLQ-Q-a_LLILLjLLJLULULLJ(EiiI]iJ7Q圖2-2STM32F103VCT6微控制器引腳分布圖2.3.2音頻解碼芯片VS1003是一個單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個高性能,自主產(chǎn)權(quán)的低功耗DSP處理器核VS_DSP4,工作數(shù)據(jù)存儲器,為用戶應(yīng)用提供5KB的指令RAM和0.5KB的數(shù)據(jù)RAM。串行的控制和數(shù)據(jù)接口,4個常規(guī)用途的I/O口,一個UART,也有一個高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個耳機(jī)放大器和地線緩沖器,芯片原理圖如圖2-3所示。其具體特性如下:能解碼MPEG1和MPEG2音頻層III(CBR+VBR+ABR);WMA4.0/4.1/7/8/95-384kbps所有流文件;WAV(PCM+IMAAD-PCM);產(chǎn)生MIDI/SP-MIDI文件。對話筒輸入或線路輸入的音頻信號進(jìn)行IMAADPCM編碼。支持MP3和WAV流。高低音控制,低功耗,單時鐘操作12?13MHz,內(nèi)部PLL鎖相環(huán)時鐘倍頻器。(4)內(nèi)含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無相位差。內(nèi)含能驅(qū)動30歐負(fù)載的耳機(jī)驅(qū)動器,模擬,數(shù)字,I/O單獨(dú)供電。(5)為用戶代碼和數(shù)據(jù)準(zhǔn)備的5.5KB片上RAM,串行的控制,數(shù)據(jù)接口,可被用作微處理器的從機(jī)。(6)特殊應(yīng)用的SPIFlash引導(dǎo),供調(diào)試用途的UART接口,新功能可以通過軟件和4GPIO添加。圖2-3VS1003芯片原理圖2.3.3TFT電阻式觸摸屏TFT電阻式觸摸屏由TFT顯示屏、驅(qū)動IC(ILI9320控制TFT)、觸摸屏、觸摸屏控制器(ads7843控制觸摸屏電壓的轉(zhuǎn)換)等組成。本設(shè)計采用的TFT顯示屏是3.2寸TFT[240*320]26萬色彩屏模塊,支持SD卡,支持DATAFLASH,支持16位/8位模式,模塊可以180度任意旋轉(zhuǎn)使用。ILI9320是一款包括一個720通道的源極驅(qū)動器,一個320通道門驅(qū)動器,172,800字節(jié)數(shù)據(jù)RAM,能驅(qū)動240RGBx320TFT液晶顯示器的驅(qū)動芯片。電阻式觸摸屏工作原理如下:電阻式觸摸屏利用壓力感應(yīng)進(jìn)行控制,它的主要部
分是一塊與顯示器表面配合的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,表面圖有一層透明氧化金屬導(dǎo)電層,上面蓋有另外一層氧化金屬導(dǎo)電層,在他們之間有許多細(xì)小的(小于1/1000英寸)透明隔離點(diǎn)把兩層導(dǎo)電層隔開絕緣。當(dāng)手指觸摸屏幕時,兩層導(dǎo)電層在觸摸點(diǎn)位置就有了接觸,控制器偵測到這一接觸并計算出(X,Y)的位置,再根據(jù)模擬鼠標(biāo)的方式運(yùn)作。圖2-4電阻式觸摸屏的原理圖觸摸屏控制芯片為ADS7843,ADS7843是一個內(nèi)置12位模數(shù)轉(zhuǎn)換、低導(dǎo)通電阻模擬開關(guān)的串行接口芯片。供電電壓2.7~5V,參考電壓VREF為1V~+VCC,轉(zhuǎn)換電壓的輸入范圍為0~VREF,最高轉(zhuǎn)換速率為125kHz,其引腳功能如表2-5所示。ADS7843典型應(yīng)用電路如圖圖2-6所示。表2-5ADS7843的引腳功能表引腳號引腳名功能描述1衛(wèi)+%供電電源V23艾十,Y十按觸摸屏正電極,內(nèi)部a/dM道4.5X-PY接觸摸屏負(fù)電極6GND電源地戀IN3;IN4兩個附厲A/D愉入通道9l,jlREFA/D參考電壓輸入11PENIRQ中斷輸出,須接外拉電阻{.IMG或12,14,16D.QUT?DINnDCLK串行按口引腳,在日勺鐘下降沿數(shù)據(jù)移出,上升沿移進(jìn)13BUSY忙扌旨喬,低電平有效15片選??專業(yè)?專注.??專業(yè)?專注.1-101-(可選)721VccDCLK2X-CS1-101-(可選)721VccDCLK2X-CS155TrDIN144x-BUSY1J5Y-DOUT12&GNDPENIRC!117HST3+VccinftIN4Vref9ADS78430.1ljT—附屬輸入通道4Q—噸口DlOOki?(可選)圖2-6ADS7843典型應(yīng)用電路SD卡SD卡(SecureDigitalMemoryCard)是一種為滿足安全性、容量、性能和使用環(huán)境等各方面的需求而設(shè)計的一種新型存儲器件,SD卡允許在兩種模式下工作,即SD模式和SPI模式,本系統(tǒng)采用SPI模式。本小節(jié)僅簡要介紹在SPI模式下,STM32處理器如何讀寫SD卡。SD卡如果采用FAT16文件格式,按照其不同的特點(diǎn)和作用大致可分為5部分:MBR區(qū)、DBR區(qū)、FAT區(qū)、FDT區(qū)和DATA區(qū)。由于SD卡一般不做引導(dǎo)盤,一般也不分區(qū),因此通常無MBR區(qū),直接從DBR區(qū)開始。下面對后面四個區(qū)分別作簡介:DBR區(qū)內(nèi)容為系統(tǒng)引導(dǎo)記錄,它包括一個引導(dǎo)程序和一個被稱為BPB(BiosParameterBlock)的本分區(qū)參數(shù)記錄表。引導(dǎo)程序的主要任務(wù)是當(dāng)MBR將系統(tǒng)控制權(quán)交給它時,判斷本分區(qū)根目錄是否有操作系統(tǒng)引導(dǎo)文件,如果有則將其讀入內(nèi)存,并把控制權(quán)交給該文件°BPB參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束扇區(qū)、文件存儲格式、根目錄大小、FAT個數(shù),分配單元大小等重要參數(shù)。FAT區(qū)該區(qū)內(nèi)容為文件分配表,F(xiàn)AT16文件系統(tǒng)進(jìn)行空間分配的最基本單位是簇。文件分配表反映了SD卡所有簇的使用情況,通過查文件分配表可以得知任一簇的使用情況。對于FAT16來說,F(xiàn)AT表每項占用兩個字節(jié)。FAT表的第一項通常為FFF8H。對于其它項,若其值為0000H表示可用;FFF7H表示為壞簇;FFF8H-FFFFH之間表示該簇為某文件或目錄的最后一個簇,F(xiàn)FF0H-FFF6H之間為保留值;其它值則指示下一個簇的簇號。(3)FDT區(qū)該區(qū)的內(nèi)容為文件目錄表,F(xiàn)AT文件系統(tǒng)的一個重要思想是把目錄(文件夾)當(dāng)作一個特殊的文件來處理,F(xiàn)AT32甚至將根目錄當(dāng)作文件處理。FAT分區(qū)中所有目錄文件,實(shí)際上可以看作是一個存放其它文件(文件夾)入口參數(shù)的數(shù)據(jù)表。因此,目錄占用空間的大小并不等同于其下所有數(shù)據(jù)的大小,但也不等于0,通常是占很小的空間。其具體的存儲原理是:不管目錄文件所占空間為多少簇,一簇為多少扇區(qū)、多少字節(jié);系統(tǒng)都會以32個字節(jié)為單位,進(jìn)行目錄文件所占簇的分配。(4)DATA區(qū)該數(shù)據(jù)區(qū)存放文件的內(nèi)容,SD卡所占用的空間絕大部分為此部分。如果文件長度大于一個簇的大小,需要多個簇存放該文件,這些放通過FAT鏈表串連起來。SD卡內(nèi)部結(jié)構(gòu)及引腳如圖2-7所示MerrcryGQTBmBrtSCS匚毎呂」畫MerrcryGQTBmBrtSCS匚毎呂」畫£L圖2-7SD卡內(nèi)部結(jié)構(gòu)及引腳SD卡主要引腳和功能為:CLK:時鐘信號,每個時鐘周期傳輸一個命令或數(shù)據(jù)位,頻率可在0?25MHz之間變化,SD卡的總線管理器可以不受任何限制的自由產(chǎn)生0?25MHz的頻率。CMD:雙向命令和回復(fù)線,命令是一次主機(jī)到從卡操作的開始,命令可以是從主機(jī)到單卡尋址,也可以是到所有卡;回復(fù)是對之前命令的回答,回復(fù)可以來自單卡或所..專業(yè).專注...專業(yè).專注.有卡;DAT0?3:數(shù)據(jù)線,數(shù)據(jù)可以從卡傳向主機(jī)也可以從主機(jī)傳向卡。SD卡以命令形式來控制SD卡的讀寫等操作??筛鶕?jù)命令對多塊或單塊進(jìn)行讀寫操作。在SPI模式下其命令由6個字節(jié)構(gòu)成,其中高位在前。SD卡共支持三種傳輸模式:SPI模式(獨(dú)立序列輸入和序列輸出),1位SD模式(獨(dú)立指令和數(shù)據(jù)通道,獨(dú)有的傳輸格式),4位SD模式(使用額外的針腳以及某些重新設(shè)置的針腳。支持四位寬的并行傳輸)低速卡通常支持0~400千比特/秒數(shù)據(jù)傳輸率,采用SPI和1位SD傳輸模式。高速卡支持0~100兆比特/秒數(shù)據(jù)傳輸率,采用4位SD傳輸模式;支持0-25兆比特/秒,采用SPI和1位SD模式。系統(tǒng)軟件設(shè)計3.1系統(tǒng)軟件開發(fā)平臺STM32系列微控制器采用ARM公司最新的CortexM3內(nèi)核。Cortex-M3是ARM公司推出的最新的針對微控制器應(yīng)用的內(nèi)核,提供業(yè)界領(lǐng)先的高性能和低成本的解決方案,將成為MCU應(yīng)用的熱點(diǎn)和主流。但是目前能夠支持Cortex-M3架構(gòu)的開發(fā)工具很少,包括SDT、ADS1.2等開發(fā)工具都不支持。MDK是目前性價比最高的支持Cortex-M3處理器的開發(fā)工具。故本次設(shè)計的軟件平臺是建立在軟件MDKVision4.11之上的。
程序設(shè)計流程圖圖3-1程序設(shè)計流程圖本系統(tǒng)的程序設(shè)計流程圖如圖3-1所示,工作過程大致為:STM32通過從SD卡中讀取MP3文件,將所讀取的數(shù)據(jù)流發(fā)送到VSl003解碼器中解碼播放;TFT觸摸屏則用于顯示歌曲的實(shí)時播放狀態(tài)、歌詞的顯示、功能按扭和控制歌曲的快進(jìn),快退,停止等。3.2各模塊軟件系統(tǒng)設(shè)計VS1003驅(qū)動程序1、VS1003初始化的一般流程如下:(1)硬復(fù)位,xReset二0;(2)延時,xDCS、xCS、xReset置1;(3)等待DREQ為高;(4)軟件復(fù)位:SPI_MODE=0x0804;等待DREQ為高(軟件復(fù)位結(jié)束);設(shè)置VS1003的采樣率:SPI_AUDATA=0xBB81,采樣率,立體聲;設(shè)置重音:SPI_BASS=0x0055;設(shè)置音量:SCI_VOL=0x2020;向VS1003發(fā)送4個字節(jié)無效數(shù)據(jù),用以啟動SPI發(fā)送;2、VS1003播放MP3的一般流程如下:打開一個指定的MP3文件;發(fā)32個字節(jié)的數(shù)據(jù)到VS1003;檢測DREQ,當(dāng)DREQ為高時發(fā)下一個32字節(jié)的數(shù)據(jù);是否發(fā)完32個字節(jié),否,則回到第3步;是否發(fā)完打開的MP3文件,否,則回到第2步;關(guān)閉打開的MP3的文件;VS1003讀寫函數(shù)如下:u16Vsl003_REG_Read(u8address);//讀寄存器voidVsl003_DATA_Write(unsignedchar*buf);//寫數(shù)據(jù)voidVs1003_CMD_Write(u8address,u16data);//寫命令voidVs1003_Init(void);//初始化VS1003voidMp3Reset(void);//硬復(fù)位voidVs1003SoftReset(void);//軟復(fù)位voidsetl003(void);//設(shè)置VS1003的音量,播放模式等voidVsRamTest(void);//RAM測試voidVsSineTest(void);//正弦測試u16GetDecodeTime(void);//得到解碼時間u16GetHeadInfo(void);//得到比特率voidResetDecodeTime(void);//重設(shè)解碼時間voidLoadPatch(void);//加載頻譜分析代碼voidGetSpec(u8*p);//得到分析數(shù)據(jù)TFT顯示屏驅(qū)動程序驅(qū)動TFT顯示屏實(shí)際上就是對ILI9320驅(qū)動IC的操作。對ILI9320的初始化操作如下:向ILI9320控制器寫入0x00.如果返回的數(shù)據(jù)為不是0x9320,則驅(qū)動IC不是ILI9320,停止初始化。如果返回的數(shù)據(jù)為0x9320,則向相應(yīng)的寄存器寫入默認(rèn)的數(shù)據(jù),啟動驅(qū)動IC。拉低片選信號CS,再寫R22h寄存器,接著寫入要寫的數(shù)據(jù)。寫結(jié)束后再將CS拉高。TFT顯示屏的讀寫函數(shù)如下:externvoidTFT_Write_Start(void);//寫開始externvoidTFT_Write_End(void);//寫結(jié)束externvoidTFT_SetGRAMHVA(ul6x0,ul6y0);//設(shè)置GRAM的最初地址externvoidTFT_SetGRAMArea(u16HSA,u16HEA,u16VSA,u16VEA);//設(shè)置一個GRAM顯示區(qū)域externvoidTFT_init(void);//TFT顯示屏初始化//externvoidTFT_Test_Square(u16x0,u16x1,u16y0,u16y1,u16Color);externvoidTFT_Clear(u16x0,u16x1,u16y0,u16y1,u16Color);//清屏函數(shù)externvoidDrawOnePixel(u16x,u16y,u16Color);//畫點(diǎn)函數(shù)externvoidWrite_Asc8x16E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);//8*16英文字符externvoidWrite_Asc12x24E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);externvoidWrite_Asc12x24E_String(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidWrite_Asc20x40E(u16x,u16y,u16TextColor,u16BackColor,u16W_Char);externvoidWrite_GB16(u16x,u16y,u16TextColor,u16BackColor,u8*W_Char);//16*16中文字符externvoidWrite_GB_16_And_Asc8x16E(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidWrite_GB_24_And_Asc12x24E(u16x,u16y,u16TextColor,u16BackColor,u8*W_String);externvoidDisplay_Picture(u16x,u16y,u16Width,u16Height,u16*Picture);//顯示圖片SD卡驅(qū)動程序1、驅(qū)動模選擇SD卡上電時,如果CS接地,SD將進(jìn)入SPI模式,CS接高電平,將進(jìn)入SDBUS模式。在SDBUS模式時,發(fā)送CMDOSD卡不會回應(yīng),在SPI模式時,發(fā)送CMD0,SD卡能回應(yīng)R1信息。2、初始化SD卡進(jìn)入SDBUS模式后,發(fā)送CMD0復(fù)位SD卡。由于處于SDBUS模式,SD卡此時不會回復(fù)信息。發(fā)送命令的時候需要注意SD卡命令狀態(tài),不同的狀態(tài)只能響應(yīng)待定的命令,下面為初始化命令發(fā)送流程:(1)CMD0復(fù)位卡。(2)CDM55用戶命令。(3)CMD41SD卡工作電壓設(shè)置命令。(4)CMD2從默認(rèn)地址獲取SD卡ID。(5)CMD3獲取一個新地址。(6)CMD9從新地址讀取SD卡ID。(7)CMD7選擇新地址的SD卡為有效卡。(8)CMD55用戶命令。(9)CMD6設(shè)置數(shù)據(jù)位寬。(10)CMD16設(shè)置BLOCK長度。(11)CMD13讀取當(dāng)前SD卡狀態(tài)。(12)初始化完成。3、發(fā)送SD卡支持的操作命令不同的SD卡所支持的命令稍有不同,但基本命令都是支持的。詳細(xì)支持哪類命令要從SD卡的ID中獲得。這一步主要為讀,寫,擦這三個功能。讀CMD17,寫CMD24,擦CMD38。4、退出SD卡操作如果總線上掛有多個SD卡,就需要用CMD7命令退出當(dāng)前SD卡,從面選擇其他的SD卡操作。CMD7命令為選擇卡或取消卡,在初始化的時候發(fā)送CMD7命令,SD卡將進(jìn)入數(shù)據(jù)發(fā)送模式,在數(shù)據(jù)模式里發(fā)送CMD7則退出當(dāng)前卡的操作。需要注意的是,在數(shù)據(jù)模式里不同的狀態(tài)只支持特定命令。SD卡讀寫函數(shù)如下:u8SPI_ReadWriteByte(u8TxData);//SPI總線讀寫一個字節(jié)u8SD_WaitReady(void);//等待SD卡就緒u8SD_SendCommand(u8cmd,u32arg,u8crc);//SD卡發(fā)送一個命令u8SD_SendCommand_NoDeassert(u8cmd,u32arg,u8crc);u8SD_Init(void);//SD卡初始化u8SD_ReceiveData(u8*data,u16len,u8release);//SD卡讀數(shù)據(jù)u8SD_GetCID(u8*cid_data);//讀SD卡CIDu8SD_GetCSD(u8*csd_data);//讀SD卡CSDu32SD_GetCapacity(void);//取SD卡容量u8SD_ReadSingleBlock(u32sector,u8*buffer);//讀一個sectoru8SD_WriteSingleBlock(u32sector,constu8*buffer);//寫一個sectoru8SD_ReadMultiBlock(u32sector,u8*buffer,u8count);//讀多個sectoru8SD_WriteMultiBlock(u32sector,constu8*data,u8count);//寫多個sector系統(tǒng)調(diào)試4.1運(yùn)行過程(1)使用MDKuvision4.11編譯程序生成相應(yīng)的hex文件。(2)使用串口線將板子的串口與PC機(jī)連接,設(shè)置啟動方式,將Boot0接高電平,Bootl接低電平。(3)打開mcuispV0.993—單片機(jī)在線編程專家,加載MDK生成的hex文件,將程序燒錄到控制器中。(4)設(shè)置啟動方式,將Boot0接低電平,Bootl接低電平。復(fù)位一下硬件,即可進(jìn)入MP3播放界面。插上耳機(jī),即能聽到美妙的音樂。4.2設(shè)計過程遇到的困難和問題4.2.1硬件方面在本次設(shè)計中,由于首次用到AltiumDesigner來設(shè)計PCB,遇到了各種各樣的困難和問題。例如:由于設(shè)計的原理圖很大,如果把所有的元件都畫在同一張原理圖上,那么將會顯得非常的雜亂,煩瑣。在這里我使用了層次圖的設(shè)計方法,把子模塊各放到一個層中設(shè)計,在頂層中再把子模塊連接起來,不僅使設(shè)計顯得更加直觀,而且利于模塊之間的移植。還有,層之間的元件重疊,不顯示綠色報錯。在設(shè)計中第一次用到貼片元件,也是本次設(shè)計中的一次挑戰(zhàn)。經(jīng)過多次嘗試努力,終于找到了焊接貼片元件的訣竅:首先將元件小心地放到PCB板上,使其與焊盤對齊,要保證芯片的放置方向是正確的。將烙鐵頭尖沾上少量的焊錫,在兩個對角位置的引腳上加少量的焊錫,使芯片固定而不能移動。在焊完對角后重新檢查芯片的位置是否對準(zhǔn),如有必要可進(jìn)行調(diào)整或拆除并重新在PCB板上對準(zhǔn)位置。在IC腳上加滿焊錫,為拖焊作準(zhǔn)備。把PCB板45度角斜放或立起來,以保證焊接過程中,熔化的焊錫能順利流動。從上到下,順勢來回拖動烙鐵頭,使焊錫與貼片IC引腳分離。檢查無虛焊,無短路后,用硬毛刷浸上酒精沿引腳方向仔細(xì)擦拭,直到焊劑消失為止,即可完成焊接。在完成焊接工作之后,上電調(diào)試時,發(fā)現(xiàn)系統(tǒng)非常不穩(wěn)定。由于硬件系統(tǒng)上沒有接有JTAG仿真接口,不能在MDK中仿真調(diào)試,所以只能在程序中的每一個子初始化函數(shù)中加入一個串口測試程序,結(jié)果發(fā)現(xiàn)程序死在VS1003的初始化中。在經(jīng)過幾個日日夜夜的努力之后,正當(dāng)我準(zhǔn)備要放棄,重新做板子的時候,無意之間手碰到了VS1003的晶振引腳,系統(tǒng)又恢復(fù)正常了。通過與主控制器的晶振接法作比較后,在VS1003的晶振引腳之間加上一個1M的電阻后,系統(tǒng)就可以正常工作了。4.2.2軟件方面在首次驅(qū)動VS1003時,聲音總是斷斷續(xù)續(xù)的。在逐步檢查,排除了晶振的頻率,SPI的速度,STM32控制器的處理速度之后,發(fā)現(xiàn)原來是在寫入數(shù)據(jù)之后沒有等待VS1003的DREQ引腳為高電平,就繼續(xù)寫入數(shù)據(jù)。在加入while((GPIOC->IDR&MP3_DREQ)==0);//等待DREQ為高這一條語句之后,就能正常的播放音樂了。總結(jié)通過這次畢業(yè)設(shè)計的研究與制作,讓我了解了MP3音樂文件的結(jié)構(gòu),以及在SD卡上以FAT16存儲方式的基礎(chǔ)上,針對MP3各模塊部分,包括主控制芯片及音頻解碼芯片、SD卡模塊、以及TFT觸摸屏等部分的分和互相協(xié)助配合下,完成了電路原理圖以及PCB制作,焊接與調(diào)試電路板,然后是軟件編程實(shí)現(xiàn)功能。盡管該方案無法作為一個通用MP3的方案,但是對于某些音頻需要的工業(yè)控制、汽車電子、醫(yī)療電子等方案具有一定的參考性。雖然在這次設(shè)計中還存在許多不足,但是通過這次畢業(yè)設(shè)計,我掌握了很多硬件、軟件等方面的知識,也學(xué)會了很多課本上沒有的東西,這為我以后更深入的學(xué)習(xí)打下了良好的基礎(chǔ),同時也對我今后到社會工作中的發(fā)展很有幫助。參考文獻(xiàn)[1]李寧?基于MDK的STM32處理器開發(fā)應(yīng)用[M].北京航空航天大學(xué)出版社.2008-10-1.[2]宋巖譯.ARMCortex-M3權(quán)威指南[M].北京航空航天大學(xué)出版社.2009-07.[3]王永虹,徐煒,郝立平.STM32系列ARMCortex-M3微控制器原理與實(shí)踐[M].北京航空航天大學(xué)出版社.2008-7-1.[4]譚浩強(qiáng)?程序設(shè)計(第三版)[M].清華大學(xué)出版社.2O05-7-3.[5][美]克尼漢,[美]里奇,徐寶文,李志譯.C程序設(shè)計語言(第2版?新版)[M].機(jī)械工業(yè)出版社.2004-1-1.[6]陳正沖.C語言深度解剖一解開程序員面試筆試的秘密[M].北京航空航天大學(xué)出版社.2010-7-1.??專業(yè)?專注.??專業(yè)?專注.李寧.ARM開發(fā)工具RealViewMDK使用入門[M].北京航空航天大學(xué)出版社.2008-3-1.胡仁喜.AltiumDesignerSummer09從入門到精通[M].機(jī)械工業(yè)出版社.2010T2-1.附錄u_sncjrLD3£TMar](i3Sd-ir-DcLTu_sncjrLD3£TMar](i3Sd-ir-Dc^eobgxw:州mIJLCD_CSLCD~ESLCPfl'
[陽旦!IP_C£TT-IHTSPIL血Q
SPIL_MDSISPTLECKDliiiiiDEDLDWDUDSDEOiDB05DBOODBOTDEUSDEdODELODBLLDBL2DBL3DBL4-DELS2>ejeet匚匚匚匚匚匚」匚匚匚ug匚」匸匚匚匚匚匚匚IJLCD_CSLCD~ESLCPfl'
[陽旦!IP_C£TT-IHTSPIL血Q
SPIL_MDSISPTLECKDliiiiiDEDLDWDUDSDEOiDB05DBOODBOTDEUSDEdODELODBLLDBL2DBL3DBL4-DELS2>ejeet匚匚匚匚匚匚」匚匚匚ug匚」匸匚匚匚匚匚匚EDSDED?!'r-Ai—li—Ai—1FC5SPU_5CK:WETSPDMEOSPnl^oBiS3>_PW1DC1SCLDCljDA■PIAEHTPlAUPFU:Ji:i¥_P0WIOYSELR-化SPILSPILSPIL陋QJtDSISCR誌飪忑站訂班初也—JC3SPDJCKspn_Mrei卿MEDU3AB.7L~TKITRFTJKiDJTDInCKJIM5DEEQ■■._KDIS匚ZCS匚ALECLEBCIOIDC!ctdmdX'iurt£r脫ND-C3CAN^EKC^ifTKHET_BMETJMTWOL□SAETgITSAELI2_TKLIJAnMm遷_>US^TL_RZJTDIJTCEartsU隔KOBE
^L003E5diT^STI2趙SPI2_M0S]STEJCKBESET::fa口coSD_CDSD^CS疚P亦HCL_SCLnCLSDAlEEk.丙AEIUT?pEK]0Y_D0WJL□?10^iLED
nrm□SB_DM匚;1EB_C3⑹mBEELEH_U5B_DP匚43J~TKOADCJH2JlDC_DHjaTjanmJ0Y_LmJ0¥w7-1系統(tǒng)頂層原理圖ICOnT3V3\0>DAVRTF-o2HOOT1m-iFAudwrtcirlDoHlDoH<SPDMO£IUSEE.?:1JSAE:T1_TXIITSARTIJX'VFB_PMCDSP[LSCKSPDMISOPAIDPAHPA12…心:PA14wiijITCH:JTDIPAfrWKUPPOJ/A]>C]23_[mOPA1ATSART2_RTSPC]rfL[>C]23_[NllPA2AT5ARr2_7XParfJ>C]23_QT12FA3AT倆r2_RMFC3曲DCM_QT13PiM/£Ill_NS£P(guān)C^AI>CL3_QT14PA5XSPUSCKPCJ/AI>CUQT15PA6/£E>11皿口P?/DQMCKI'A?/£JU_M0£IPL皿毎MJCKPA£ATSARri_CKPCaJSDTD_DD/HME_CH3PWrtJSARr]_7XPC^SDJOJJl/nMS.CHtPAIO/USARTI^RXPCHVU5ARTI_IXPAIWSARTI.CTSPCIJ/USART+JWPA12ATSART1_RTSPC12/USART5_IXPAIMTMSJSWDIDPEE^AMPEE-RTEPM7TCKZ刖匚LEPCLtfOSCSajHPAliJTI>[pc)Jrt)sa2_DurPEmLDCM酬P(guān)DO^SM?DJftJLHRXPEH皿口沖DDLJFSMC_I>Si,CJLH_7MVB^/EoarirpirmoORPB3JTTDOEDM^SWC_CTJTPE4/JNTR5rPI>MF3McZnOEPB5/T2C]_5WBAPDJ/F5WCJTWEPB6A2C1_5CLPMVF5MC_^WAITPB7/QC1_SDAPE?JFS3.[D_imPEC/i:^T_RJD1MI?PD9iTSMC_P13F£S/CM_TKZIMLPD9iTSBdC?I>14fEiKuDLdSCKPDLOiTSMCD15fBlWLj$DJLPDLLiTSMCJL16PBOSI'EJISEPDL2iTSMLr_JL175CKPDLJiTEMCJUSPB14/SIiE!_MIS口PDL4iT5MC_ljapbij^peZmo肛PDL5T5MCJ>1『05CJHPHyrSMCJlBLOOSC_OUTPEL<FSMC_NBL1PESiT5MC_A23PESiTSMC-JUSBOOIOPEtiFSMC_AXlPEiiTSMCA31HESTI<E6iT£MCXQI'E?iT£Mi2_MTRIJ.IEBiT5MC_D5YREJ>PEJiTSMCJMPELDiT5MCJ>7PELl>T5MCJ>3NCFEl2iTEMC_I>9PEL3iT5MC_I>10PEL+iTSMC_PllVBAIPEL5iTSMCJ>12VDD1-VSS1iipVDD;VSEJi“亍汀迪F仍皿r:和lVDPJ5VS5J5VDPAVS5APOJPCIFCJ
衛(wèi)口PCSPC7:UWEJFIT1|:虛TMT|:.WOLI:.DREQ;TPJHT■1■:ti^o:丄吐弐IPCS~>>&PC9ED_PWR>U3B_EtC=-曇PC1OXCS>總PC11m-cs>袒PCDHET上£>JPCU:TAlf?甌ISPC14PEE16T'-H-YlIttpF□□JT3J.T?KTll'GHDGNU10HDRX:IMEjrd12CLEDAAI>CQT.L?Jj:-CQTj'?^X=pgWFllIEWTDIGNI>'l||—B0D7Q3TPFLESE7<EEESET|-LOK3V5|衛(wèi)曲:PM:PD1D:PD11:PD12PI:'BFI>I4F":-15LEDl">LEKI?、LEDj?->LEM:=■LCDCE/■LCP_Rr^^LCDJED更PED3z^DHOO}MOL>PB03>PBQ3>DRQ+》PfiOJ>DM》MOT>VKEFiCRATBT1罕嚴(yán)1]lDKgpe=2_PE6DBfla>UB09>]>B10>DH】l}I>B]j>陽】3:『PB34>3IP曲0ND11/B5A圖7-2STM32控制器最小系統(tǒng)原理圖;DHE:■.伽■■PEDPB~peTPE~peFPO
pfiJ
pelT111pown:inircPDU?:deh;??fLU-WR■■:■HESEI-.SHL_Mi:LI<£p]LJ[0S[-:'SHUCKPDtiHEEEIPJltiPJUPAPTTUJWP捫■碩u>][ilJIBSOHCKTJ+£J?::ai_gi|-QHDSDi=1PH35_[卩吐;2SI5CKHSETC5:逍一財::spi(M氐<giBIT-;FCSCJ■■■-迂Gtir-wwm芒1-IjHD355TftdUliPi—iCcJoESPI2JOJUTflOE11feddTnc*nGND3U3373二QI汨刃]??:亟座補(bǔ)訓(xùn)AEO斡GMD:,w^ULp]Lps]應(yīng)-:皿件3DI-:.j[r?jcwS3SVf-PI-詁EWPB■=rf[>L|£2
LOEErtfl;1?::牡同氐卜刑一&-II9D>|PI;口器十wp—iSIB—i喬_DLMIjHDCLEWIi那CNDCWIiJ皿血
刑_O-1
脳2
][Qi5TOESW-PlSisIfixtcrEniiLnn.圖7-3外圍電路原理圖:3V33V3D62753V33V3D6275?專業(yè)?專注.?專業(yè)?專注.?專業(yè)?專注.?專業(yè)?專注.3V3”弋a(chǎn)vedc嘗LOd373-T-CapPollUJ
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 餐飲店員工勞動合同及社會保險協(xié)議
- 車輛煤炭運(yùn)輸與智能調(diào)度系統(tǒng)合同
- 特色餐廳轉(zhuǎn)讓合同:包含品牌、門店、經(jīng)營許可等
- 商場物業(yè)維修協(xié)議書范本
- 節(jié)能環(huán)保彩鋼活動房施工安裝及安全協(xié)議
- 汽車安全保險業(yè)務(wù)合作協(xié)議書
- 《個人借款還款計劃及欠條保管責(zé)任合同》
- 拆遷補(bǔ)償款提取與二手房交易資金監(jiān)管服務(wù)合同
- 3D打印橋臺模型校驗(yàn)
- 國網(wǎng)可研編寫培訓(xùn)
- 精選《機(jī)械制圖》期末考試題庫388題(含答案)
- 建筑自動化課件2013 10.通信網(wǎng)絡(luò)技術(shù)
- 2023年山西萬家寨水務(wù)控股集團(tuán)有限公司招聘筆試題庫及答案解析
- 數(shù)碼照片檔案管理夏2014
- GB/T 19249-2003反滲透水處理設(shè)備
- 2023年德陽市旌陽區(qū)廣播電視臺(融媒體中心)招聘筆試題庫及答案解析
- 小學(xué)生職業(yè)生涯規(guī)劃啟蒙課件PPT
- 鉆井安全操作規(guī)范
- 食用菌生產(chǎn)技術(shù) 大球蓋菇栽培技術(shù)課件
- 花城版小學(xué)二年級音樂(下)全冊教案
- 小班語言課《水果歌》PPT
評論
0/150
提交評論