基于STM32MP3播放器設(shè)計(jì)文檔良心出品_第1頁
基于STM32MP3播放器設(shè)計(jì)文檔良心出品_第2頁
基于STM32MP3播放器設(shè)計(jì)文檔良心出品_第3頁
基于STM32MP3播放器設(shè)計(jì)文檔良心出品_第4頁
基于STM32MP3播放器設(shè)計(jì)文檔良心出品_第5頁
已閱讀5頁,還剩11頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

基于STM32MP3播放器設(shè)計(jì)學(xué)院:XXXXXXXXXXX專業(yè)班機(jī):XXXXXXXX姓名XXXXX學(xué)號(hào):XXXXXXXX1.1本課題的提出及意義MP3音頻播放器的最合理工作速度為30Mips,而一個(gè)典型的視頻媒體播放器的理想速度則為175Mips,所以提高M(jìn)P3的工作速度,以及改善MP3的音質(zhì)是最關(guān)鍵的,也是亟待解決的問題。MP3是一種典型的嵌入式設(shè)備,而現(xiàn)在市場(chǎng)上比較常見的是閃存式MP3由于閃存式MP3的容量限制,使它存儲(chǔ)歌曲數(shù)目較少,在功能上也很難實(shí)現(xiàn)多樣化⑴。而硬盤式MP3的多功能及大容量,也必將受到不少消費(fèi)者的喜愛。MP3播放器一般分成3個(gè)部分:CPUMP3硬件解碼器存儲(chǔ)器。其中可以將前兩部分集成在一起,即帶MP3硬件解碼器的CPU或?qū)⒑髢刹糠旨稍谝黄?,即集成硬件解碼、D/A轉(zhuǎn)換及音頻輸入。存儲(chǔ)器可以是Flash存儲(chǔ)器或硬盤[2]。通過用MP3編碼技術(shù),可以得到大約12:1壓縮的有損音樂信號(hào)。1.2研究現(xiàn)狀MP3全稱是MPEGLayer3,狹義的講就是以MPEGLayer3標(biāo)準(zhǔn)壓縮編碼的一種音頻文件格式。自韓國(guó)世韓(Seahan)公司1998年推出世界上第一臺(tái)MP3隨身聽以來,MP3播放器以其小巧的外形,不錯(cuò)的近乎于CD的音質(zhì),前衛(wèi)的功能,越來越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的一個(gè)熱門話題[3]。在市場(chǎng)消費(fèi)刺激下,各大公司紛紛推出了自己的mp3播放器產(chǎn)品,IC供應(yīng)商提供了眾多的MP3解碼芯片及其解決方案。除了Micronas方案(MAS3507+DAC3550)還有臺(tái)灣創(chuàng)品方案(T33510,T33520)、美國(guó)SigmaTel方案(STMP3400和TI的DA-250解決方案。這使mp3播放器的研制與生產(chǎn)變得更加容易,成本也大大降低,市場(chǎng)更加廣闊[4]。2硬件設(shè)計(jì)2.1整體方案綜述

本設(shè)計(jì)由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,外擴(kuò)FLASH莫塊,觸摸屏模塊,串口通信模塊組成。將解決SD卡的讀取以及使用FATFS文件系統(tǒng)來對(duì)SD卡操作,TFT液晶屏的控制及觸摸屏原理、還有人機(jī)界面UI的實(shí)現(xiàn)等問題[5]。系統(tǒng)架構(gòu)如圖2-1所示。基本設(shè)計(jì)流程是使用STM32系列微控制器,采用FATFS文件系統(tǒng)方式讀取SD卡中音樂文件數(shù)據(jù),將所讀取的數(shù)據(jù)流傳輸給CPU軟件解碼(helix解碼庫)解碼編程PCM音頻,通過I2S送到ADC芯片PCM1770音頻輸出驅(qū)動(dòng)耳機(jī)實(shí)現(xiàn)音樂播放功能。液晶屏顯示歌曲的實(shí)時(shí)播放狀態(tài),功能按扭和控制歌曲的播放、停止、聲音增大、減小等。同時(shí),TFT觸摸屏則用于功能按扭和人機(jī)交換界面的輸入。2.2系統(tǒng)架構(gòu)圖2.3硬件模塊2.3.1處理器一、芯片介紹。CortexM3是ARM公司最新推出的基于ARMv7體系架構(gòu)的處理器核,具有高性能、低成本、低功耗的特點(diǎn),專門為嵌入式應(yīng)用領(lǐng)域設(shè)計(jì)。

ARMv7架構(gòu)采用了Thumb2技術(shù),它是在ARM的Thumb弋碼壓縮技術(shù)的基礎(chǔ)上發(fā)展起來的,并且保持了對(duì)現(xiàn)存ARM解決方案完整的代碼兼容性。 Thumb2技術(shù)比純ARM代碼少使用31%勺內(nèi)存,減小了系統(tǒng)開銷,同時(shí)能夠提供比Thumb技術(shù)高出38%勺性能⑺。在中斷處理方面,CortexM3集成了嵌套向量中斷控制器 NVIC(NestedVectoredInterruptController)。NVIC是CortexM3處理器的一個(gè)緊耦合部分,可以配置1~240個(gè)帶有256個(gè)優(yōu)先級(jí)、8級(jí)搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時(shí),搶占(Preemption)、尾鏈(Tailchaining)、遲至U技術(shù)(Latearriving)的使用,大大縮短了異常事件的響應(yīng)時(shí)間。CortexM3異常處理過程中由硬件自動(dòng)保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時(shí)間,降低了軟件設(shè)計(jì)的復(fù)雜性。 DR或串行JTAG調(diào)試端口(SWJDP允許JTAG或SW協(xié)議)使用。二、引腳圖。亡7Aad.dddccio_dddo_dddo_ddo_ga-d蟲dd

nrmr~irmr~ijtlern□mmnmnr~<ct口r~LOLnPE2PE3PE4PE5PE6VBATPCI3-TAMPE2PE3PE4PE5PE6VBATPCI3-TAMPER-RTCPC14-OSCU£?INpcis-oscasoutV55_5VDD_5OSC?INOSCOUTIMRSTPCOPCIPO2PC3VSSAVREF-VREF+VDDARA.O-WKUPPA.1F=ft.2匚匚匚1234567昔羿鳥141516171919雷SS757473;?嵩=□=i=1ZlZ3=1ZlS4321o543WB387G11l1119al11lDDDDDDcmB日曰已FPPPPFPPFF2.3.3SD卡模塊一、SD卡介紹。STM32微處理器CPU(STM32F103ZET6)具有一個(gè)SDIO接口。SD/SDIO/MMC主機(jī)接口可以支持MMC卡系統(tǒng)規(guī)范4.2版中的3個(gè)不同的數(shù)據(jù)總線模式:1位(默認(rèn))、4位和8位。在8位模式下,該接口可以使數(shù)據(jù)傳輸速率達(dá)到48MHz該接口兼容SD存儲(chǔ)卡規(guī)范2.0版[12]。

、SD卡原理圖<12-1.12<12<124.124.12PC10PC11PD23V3OPC10PCI1PD2PC12PCSPC?PC12PCS

pig、SD卡原理圖<12-1.12<12<124.124.12PC10PC11PD23V3OPC10PCI1PD2PC12PCSPC?PC12PCS

pig圖2-3SD卡接口電路CMpgCMMDATA2CD/DATA3CMDVDDCLKVSSOATAODATA!TFCardVbtZOC}oriBlerSOMerceryCarsenerefchfX('orVerIXE-DM?mn>C^rd )'<.5D_ wnetSD詁BnoryCard _?XNmcQ"ipend-Bvc^agerange*-ChfKikp輕耳inqt啊聊心LklUSBUiEJKZMD41C?fnpmt>iey応聲flnddhec<pdHht<fiiseotiocI:cardtwrth-noncDrnixrt.oer的gg?gnM?ina'sia:&ornrwtjtf-normporaeegbuiy?occlfs£ardreturrisead^irr?|飢羊皆12FiflnUEpdHIy.HCSit14cirss麻15non?arnpiti他ivofziQkeiwtga0(rrn?gREiBBpOHM-BbusyiOQfiUT3^arZ.DCcrrazBr圖2-4SD卡上電識(shí)別流程圖2.3.3LCD顯示模塊一、LCD控制器。LCD即液晶顯示器,因?yàn)槠涔牡汀Ⅲw積小,承載的信息量大,因而被廣泛用于信息輸出、與用戶進(jìn)行交互,目前仍是各種電子顯示設(shè)備的主流。因?yàn)?STM32內(nèi)部沒有集成專用的液晶屏和觸摸屏的控制接口,所以在顯示面板中應(yīng)自帶含有這些驅(qū)動(dòng)芯片的驅(qū)動(dòng)電路(液晶屏和觸摸屏的驅(qū)動(dòng)電路是獨(dú)立的),STM32芯片通過驅(qū)動(dòng)芯片來控制液晶屏和觸摸屏。

、FSMC框圖結(jié)構(gòu)。FSMC(flexiblestaticmemorycontroller),譯為靜態(tài)存儲(chǔ)控制器??捎糜赟TM32芯片控制9NORFLASHPSRAM和NANDFLASH存儲(chǔ)芯片。我們是使用FSMC勺NOR'PSRAM模式控制LCD。其結(jié)構(gòu)如圖2-5所示。FSMCirlerruipi忖NVlCFromdockFSMCirlerruipi忖NVlCFromdockHCLKNOR

menwy

ccxitrcMtefPCCart#圖2-5FSMC框圖結(jié)構(gòu)框圖2.3.4觸摸屏模塊一、觸摸屏感應(yīng)原理。觸摸屏常與液晶屏配套使用,組合成為一個(gè)可交互的輸入輸出系統(tǒng)。除了熟悉的電阻、電容屏外,觸摸屏的種類還有超聲波屏、紅外屏。觸摸屏的基本原理為分壓,它由一層或兩層阻性材料組成,在檢測(cè)坐標(biāo)時(shí),在阻性材料的一端接參考電壓 Vref,另一端接地,形成一個(gè)沿坐標(biāo)方向的均勻電場(chǎng)。當(dāng)觸摸屏受到擠壓時(shí),阻性材料與下層電極接觸,阻性材料被分為兩部分,因而在觸摸點(diǎn)的電壓,反映了觸摸點(diǎn)與阻性材料的Vref

端的距離,而且為線性關(guān)系,而該觸點(diǎn)的電壓可由 ADC測(cè)得。更改電場(chǎng)方向,以同樣的方法,可測(cè)得另一方向的坐標(biāo)。二、TSC2046觸摸屏控制器。TSC2046是專用在四線電阻屏的觸摸屏控制器, MCU可通過SPI接口向它寫入控制字,由它測(cè)得X、丫方向的觸點(diǎn)電壓返回給MCU如圖2-6所示唁匸工叱工工(Optun詛)ToBdteryVillageR旳ulaicr%唁匸工叱工工(Optun詛)ToBdteryVillageR旳ulaicr%DCLKA2A3X+DIM期IBUSYA5X-DOJTA6PENIRQ07%lavooC7—^1D7TSC2046SeFiaL'CofivwsionDock'COverier-SerialDataOui—Seted——SenaiDataIn[C5IGhID?PenInfeFrupt圖2-6TSC2046與電阻屏的連接圖2.3.5PCM音頻模塊PCM177器件是CMOS單片,集成電路包括立體聲數(shù)字-模擬轉(zhuǎn)換器,耳機(jī)電路。數(shù)據(jù)轉(zhuǎn)換器采用TI的增強(qiáng)型多級(jí)架構(gòu),它采用噪聲整形和多值振幅量化,實(shí)現(xiàn)出色的動(dòng)力性能和改進(jìn)的耐時(shí)鐘抖動(dòng)。該P(yáng)CM1770器件接受多個(gè)行業(yè)標(biāo)準(zhǔn)音頻數(shù)據(jù)格式,16至24位數(shù)據(jù),左對(duì)齊,I2S等,提供輕松連接到音頻DSF和解碼器。采樣率高達(dá)50kHz的支持。全套用戶可編程功能是通過一個(gè)3線串行控制端口,支持寄存器寫入功能訪問。原理接線圖如圖2-7所示

PM77HJHTA|—yPZIil7H_FD|—yPM77HJHTA|—yPZIil7H_FD|—yJC?L_HJS匚二^FOILJILBC匚^PCIITTO.?|—>ECU噸〔.iff?W-RETEFDW-L■■-.:賦KOf亶KLI丄[HFCMinti——C5圖2-7PCM1770連接圖3軟件設(shè)計(jì)3.1軟件開發(fā)架構(gòu)本設(shè)計(jì)由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,觸摸屏模塊,串口通信模塊組成。將要解決SD卡的讀取及使用FATFS系統(tǒng)對(duì)SD卡的操作、TFT液晶的控制及觸摸屏原理、還有圖形用戶界面GUI的實(shí)現(xiàn)等問題[10]。架構(gòu)如圖3-1軟件開發(fā)架構(gòu)圖用戶代碼CMSIS-DSPCMSIS層.DSP庫CMSI5實(shí)時(shí)系統(tǒng)API實(shí)時(shí)系統(tǒng)內(nèi)核15核心層核內(nèi)外設(shè)函數(shù)SIMDCortex-M4McCortex內(nèi)U設(shè)備外設(shè)函數(shù)(如STM32驅(qū)動(dòng)函數(shù)庫)外設(shè)寄存器定義&中斷冋量定義SysTick時(shí)神,圖3-1軟件開發(fā)架構(gòu)圖倜試跟蹤其它外模塊』設(shè)NVIC中斷控制器3.2軟件程序設(shè)計(jì)流程圖本系統(tǒng)的程序設(shè)計(jì)流程圖如圖3-2所示,工作流程是:STM32從SD卡中讀取音樂文件數(shù)據(jù),將所讀取的數(shù)據(jù)流傳輸給CPI軟件解碼(helix解碼庫)解碼編程PCM音頻,通過I2S送到ADC芯片PCM1770音頻輸出驅(qū)動(dòng)耳機(jī)實(shí)現(xiàn)音樂播放功能。液晶屏顯示歌曲的實(shí)時(shí)播放狀態(tài),功能按扭和控制歌曲的播放、停止、聲音增大、減小等。同時(shí), TFT觸摸屏則用于功能按扭和人機(jī)交換界面的輸入。音樂播放鏈路:FATFSI2S直接驅(qū)動(dòng)圖3-3音樂播放鏈路

3.3軟件代碼結(jié)構(gòu)為了使代碼結(jié)構(gòu)清晰,方便以后的維護(hù),代碼結(jié)構(gòu)設(shè)計(jì)如下:在根目錄I2S-MP3下,劃分為七個(gè)文件夾,分別為STARTU、CMSISFWLBUSERDOCff9和mp3下面分別就七個(gè)文件夾的作用和結(jié)構(gòu)進(jìn)行說明,其代碼目錄樹狀結(jié)構(gòu)如圖3-4所示。Project<卞Project-rd-rdI2S-MP3STARTUPCHSISFWUUSERDOC

価mp3圖3-4整體工程代碼結(jié)構(gòu)對(duì)其進(jìn)行分析:目錄名稱目錄說明STARTUP啟動(dòng)文件CMSISM3系列通用的文件FWLBST片上資源外設(shè)的驅(qū)動(dòng)文件USER用戶寫的驅(qū)動(dòng)文件DOC工程說明文檔ff9FATFS文件系統(tǒng)文件mp3音樂播放相關(guān)文件詳細(xì)代碼結(jié)構(gòu)啟動(dòng)文件是任何處理器在上點(diǎn)復(fù)位之后最先運(yùn)行的一段匯編程序。在我們編寫的 C語言代碼運(yùn)行之前,需要由匯編為C語言的運(yùn)行建立一個(gè)合適的環(huán)境,接下來才能運(yùn)行我們的程序[9]o液晶屏驅(qū)動(dòng)程序*@brieflcd初始化*@param無*@return無*/voidLCD_Init(void){LCD_GPIO_Config();LCD_FSMC_Config();LCD_Rst();LCD_REG_Config();}//配置IO端口//LCDFSMC模式的配置//LCD軟件復(fù)位//配置LCD初始化寄存器文件系統(tǒng)驅(qū)動(dòng)程序/***@brieffs文件系統(tǒng)初始化*@param無*@return無*/voidSd_fs_init(void){/*SD卡中斷初始化*/SDIO_NVIC_Configuration();/*SD卡硬件初始化,初始化盤符為0*/f_mount(0,&myfs[0]);/./ff9文件庫}/**@brief*@param*@returnSDIO優(yōu)先級(jí)配置為最高優(yōu)先級(jí)無無*/voidSDIO_NVIC_Configuration(void){NVIC_InitTypeDefNVIC_InitStructure;/*ConfiguretheNVICPreemptionPriorityBits*/

NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);NVIC_InitStructure.NVIC_IRQChannel=SDIO_IRQn;NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0;NVIC_InitStructure.NVIC_IRQChannelSubPriority=0;NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;NVIC_Init(&NVIC_InitStructure);}觸摸屏卡驅(qū)動(dòng)程序/**@brief 觸摸模擬SPIIO和中斷IO初始化*@param無*@return無*/voidTouch_Init(void){GPIO_SPI_Config();}/**@brief 模擬SPI的GPIO配置,當(dāng)SPI的4根信號(hào)線換為其他IO時(shí),*只需要修改該函數(shù)對(duì)應(yīng)的宏定義即可。*@param無*@return無*/voidGPIO_SPI_Config(void){GPIO_InitTypeDefGPIO_InitStructure;/*開啟GPIO時(shí)鐘*/,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF|,ENABLE);/*模擬SPI的GPIO初始化*/GPIO_InitStructure.GPIO_Pin=SPI_CLK_PIN;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;

GPIO_Init(SPI_CLK_PORT,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=SPI_MOSI_PIN;GPIO_Init(SPI_MOSI_PORT,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=SPI_MISO_PIN;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;GPIO_Init(SPI_MISO_PORT,&GPIO_InitStructure);GPIO_InitStructure.GPIO_Pin=SPI_CS_PIN;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(SPI_CS_PORT,&GPIO_InitStructure);/*拉低片選,選擇XPT2046*/GPIO_ResetBits(SPI_CS_PORT,SPI_CS_PIN);//GPIO_SetBits(SPI_CS_PORT,SPI_CS_PIN);/*XPT2046中斷IO配置*/TP_INT_GPIO_Config();}3.3.4MP3驅(qū)動(dòng)程序*@briefplayer_run運(yùn)行MP3播放器過程,內(nèi)部死循環(huán)*@param無*@return無*/voidplayer_run(void){charmusic_name[FILE_NAME_LEN];//掃描文件////掃描文件//跳出本函數(shù)file_scan(path);if(file_num==0){printf("\r\nnomp3file!");return;

player_state=S_READY;touch_even=E_NULL;//初始化狀態(tài)//初始化事件標(biāo)志all_page//初始化狀態(tài)//初始化事件標(biāo)志current_page=1;printf("\r\nfile_num=%d,all_page=%d",file_num,all_page);//PCM1770_VolumeSet(0); //調(diào)節(jié)音量lcd_list(current_page);//顯示歌曲列表,第一頁while(1){lcd_list(current_page);//顯示歌曲列表,第一頁while(1){if(play_index>=file_num-1)play_index=file_num-1;elseif(p

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(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)論