基于STM32 MP3播放器設(shè)計(jì)

上傳人:馬*** 文檔編號(hào):159963752 上傳時(shí)間:2022-10-09 格式:DOC 頁數(shù):16 大?。?69KB
收藏 版權(quán)申訴 舉報(bào) 下載
基于STM32 MP3播放器設(shè)計(jì)_第1頁
第1頁 / 共16頁
基于STM32 MP3播放器設(shè)計(jì)_第2頁
第2頁 / 共16頁
基于STM32 MP3播放器設(shè)計(jì)_第3頁
第3頁 / 共16頁

下載文檔到電腦,查找使用更方便

10 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《基于STM32 MP3播放器設(shè)計(jì)》由會(huì)員分享,可在線閱讀,更多相關(guān)《基于STM32 MP3播放器設(shè)計(jì)(16頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、 基于STM32 MP3播放器設(shè)計(jì) 學(xué)院:XXXXXXXXXXX 專業(yè)班機(jī):XXXXXXXX 姓名XXXXX 學(xué)號(hào):XXXXXXXX 1.1 本課題的提出及意義 MP3音頻播放器的最合理工作速度為30Mips,而一個(gè)典型的視頻媒體播放器的理想速度則為175Mips,所以提高M(jìn)P3的工作速度,以及改善MP3的音質(zhì)是最關(guān)鍵的,也是亟待解決的問題。? MP3是一種典型的嵌入式設(shè)備,而現(xiàn)在市場上比較常見的是閃存式MP3。由于閃存式MP3的容量限制,使它存儲(chǔ)歌曲數(shù)目較少,在功能上也很難實(shí)現(xiàn)多樣

2、化[1]。而硬盤式MP3的多功能及大容量,也必將受到不少消費(fèi)者的喜愛。?? MP3播放器一般分成3個(gè)部分:CPU、MP3硬件解碼器存儲(chǔ)器。其中可以將前兩部分集成在一起,即帶MP3硬件解碼器的CPU;或?qū)⒑髢刹糠旨稍谝黄?,即集成硬件解碼、D/A轉(zhuǎn)換及音頻輸入。存儲(chǔ)器可以是Flash存儲(chǔ)器或硬盤[2]。通過用MP3編碼技術(shù),可以得到大約12:1壓縮的有損音樂信號(hào)。 1.2 研究現(xiàn)狀 MP3全稱是MPEG Layer 3,狹義的講就是以MPEG Layer 3標(biāo)準(zhǔn)壓縮編碼的一種音頻文件格式。自韓國世韓(Seahan)公司1998年推出世界上第一臺(tái)MP3隨身聽以來, MP3播放器以其小巧的外形

3、,不錯(cuò)的近乎于CD的音質(zhì),前衛(wèi)的功能,越來越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的一個(gè)熱門話題[3]。在市場消費(fèi)刺激下,各大公司紛紛推出了自己的mp3播放器產(chǎn)品,IC供應(yīng)商提供了眾多的MP3解碼芯片及其解決方案。除了Micronas方案(MAS3507+DAC3550),還有臺(tái)灣創(chuàng)品方案(T33510,T33520)、美國SigmaTel方案(STMP3400)和TI的DA-250解決方案。這使mp3播放器的研制與生產(chǎn)變得更加容易,成本也大大降低,市場更加廣闊 [4]。 2 硬件設(shè)計(jì) 2.1整體方案 綜述 本設(shè)計(jì)由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,外擴(kuò)FL

4、ASH模塊,觸摸屏模塊,串口通信模塊組成。將解決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)圖

5、 圖 2-1 系統(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%的性能[7]。 在中斷處理方面,CortexM3集成了嵌套向量中斷控

6、制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3處理器的一個(gè)緊耦合部分,可以配置1~240個(gè)帶有256個(gè)優(yōu)先級(jí)、8級(jí)搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時(shí),搶占(Pre emption)、尾鏈(Tail chaining)、遲到技術(shù)(Late arriving)的使用,大大縮短了異常事件的響應(yīng)時(shí)間。CortexM3異常處理過程中由硬件自動(dòng)保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時(shí)間,降低了軟件設(shè)計(jì)的復(fù)雜性。DP)或串行JTAG調(diào)試端口(SWJDP,允許JTAG或SW協(xié)議)使用。 二、引腳圖。

7、 圖2-2 STM32F103ZET6 微控制器引腳分布圖 2.3.3 SD卡模塊 一、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卡原理圖。 圖2-3 SD卡接口電路 .

8、 圖2-4 SD卡上電識(shí)別流程圖 2.3.3 LCD顯示模塊 一、LCD控制器。 LCD,即液晶顯示器,因?yàn)槠涔牡?、體積小,承載的信息量大,因而被廣泛用于信息輸出、與用戶進(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(flexible static memory controller),譯為靜態(tài)存儲(chǔ)控制器。可用于ST

9、M32 芯片控制 NOR FLASH、PSRAM、和 NAND FLASH 存儲(chǔ)芯片。我們是使用FSMC的NOR\PSRAM 模式控制 LCD。其結(jié)構(gòu)如圖2-5所示。 .. 圖2-5 FSMC框圖結(jié)構(gòu)框圖 2.3.4觸摸屏模塊 一、觸摸屏感應(yīng)原理。 觸摸屏常與液晶屏配套使用,組合成為一個(gè)可交互的輸入輸出系統(tǒng)。除了熟悉的電阻、電容屏外,觸摸屏的種類還有超聲波屏、紅外屏。觸摸屏的基本原理為分壓,它由一層或兩層阻性材料組成,在檢測坐標(biāo)時(shí),在阻性材料的一端接參考電壓 Vref,另一端接地,形成一個(gè)沿坐標(biāo)方向

10、的均勻電場。當(dāng)觸摸屏受到擠壓時(shí),阻性材料與下層電極接觸,阻性材料被分為兩部分,因而在觸摸點(diǎn)的電壓,反映了觸摸點(diǎn)與阻性材料的 Vref 端的距離,而且為線性關(guān)系,而該觸點(diǎn)的電壓可由 ADC 測得。更改電場方向,以同樣的方法,可測得另一方向的坐標(biāo)。 二、TSC2046觸摸屏控制器。 TSC2046 是專用在四線電阻屏的觸摸屏控制器,MCU 可通過 SPI 接口向它寫入控制字,由它測得 X、Y 方向的觸點(diǎn)電壓返回給 MCU。如圖2-6所示 圖2-6 TSC2046 與電阻屏的連接圖 2.3.5 PCM音頻模塊 PCM1770

11、器件是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等,提供輕松連接到音頻DSP和解碼器。采樣率高達(dá)50 kHz的支持。全套用戶可編程功能是通過一個(gè)3線串行控制端口,支持寄存器寫入功能訪問。原理接線圖如圖2-7所示 圖2-7 PCM1770連接圖 3 軟件設(shè)計(jì) 3.1 軟件開發(fā)架構(gòu) 本設(shè)計(jì)由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,觸摸

12、屏模塊,串口通信模塊組成。將要解決SD卡的讀取及使用FATFS系統(tǒng)對(duì)SD卡的操作、TFT液晶的控制及觸摸屏原理、還有圖形用戶界面GUI的實(shí)現(xiàn)等問題[10]。架構(gòu)如圖3-1軟件開發(fā)架構(gòu)圖 圖3-1軟件開發(fā)架構(gòu)圖 3.2 軟件程序設(shè)計(jì)流程圖 開始 系統(tǒng)初始化 顯示屏初始化 觸摸屏初始化 SD卡初始化 PCM1770初始化 MP3播放程序 觸摸屏按下? 播放模式設(shè)置 讀取觸摸屏數(shù)據(jù), 執(zhí)行相應(yīng)功能操作

13、 圖3-2 程序設(shè)計(jì)流程圖 本系統(tǒng)的程序設(shè)計(jì)流程圖如圖3-2所示,工作流程是:STM32從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ī)交換界面的輸入。 音樂播放鏈路: 圖3-3 音樂播放鏈路 3.3 軟件代碼結(jié)構(gòu) 為了使代碼結(jié)構(gòu)清晰,方便以后的維護(hù),代碼結(jié)構(gòu)設(shè)計(jì)如下: 在根目錄I2S-MP3下,劃分

14、為七個(gè)文件夾,分別為STARTUP、CMSIS、FWLB、USER、DOC、ff9和mp3。下面分別就七個(gè)文件夾的作用和結(jié)構(gòu)進(jìn)行說明,其代碼目錄樹狀結(jié)構(gòu)如圖3-4 所示。 圖3-4 整體工程代碼結(jié)構(gòu) 對(duì)其進(jìn)行分析: 目錄名稱 目錄說明 STARTUP 啟動(dòng)文件 CMSIS M3系列通用的文件 FWLB ST 片上資源外設(shè)的驅(qū)動(dòng)文件 USER

15、 用戶寫的驅(qū)動(dòng)文件 DOC 工程說明文檔 ff9 FATFS文件系統(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]。 液晶屏驅(qū)動(dòng)程序 /** * @brief lcd 初始化 * @param 無 *

16、 @return 無 */ void LCD_Init(void) { LCD_GPIO_Config(); //配置IO端口 LCD_FSMC_Config(); //LCD FSMC模式的配置 LCD_Rst(); //LCD軟件復(fù)位 LCD_REG_Config(); //配置LCD初始化寄存器 } 文件系統(tǒng)驅(qū)動(dòng)程序 /** * @brief fs 文件系統(tǒng)初始化 * @param 無 * @return 無 */ void Sd_fs_init(void) { /* SD卡

17、中斷初始化 */ SDIO_NVIC_Configuration(); /* SD 卡硬件初始化,初始化盤符為0*/ f_mount(0,&myfs[0]); /./ff9文件庫 } /* * @brief SDIO優(yōu)先級(jí)配置為最高優(yōu)先級(jí) * @param 無 * @return 無 */ void SDIO_NVIC_Configuration(void) { NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preemption

18、 Priority Bits */ 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

19、(&NVIC_InitStructure); } 觸摸屏卡驅(qū)動(dòng)程序 /* * @brief 觸摸模擬SPI IO 和中斷 IO初始化 * @param 無 * @return 無 */ void Touch_Init(void) { GPIO_SPI_Config(); } /* * @brief 模擬SPI的GPIO配置,當(dāng)SPI的4根信號(hào)線換為其他IO時(shí), * 只需要修改該函數(shù)對(duì)應(yīng)的宏定義即可。 * @param 無 * @return 無 */ void GPIO_SPI_Conf

20、ig(void) { GPIO_InitTypeDef GPIO_InitStructure; /* 開啟GPIO時(shí)鐘*/ RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF | RCC_APB2Periph_GPIOG, ENABLE); /* 模擬SPI的GPIO初始化*/ GPIO_InitStructure.GPIO_Pin=SPI_CLK_PIN; GPIO_InitStructure.GPIO_Speed=GPIO_Speed_10MHz ; GPIO_InitS

21、tructure.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_Ini

22、tStructure.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)

23、; /* 拉低片選,選擇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.4 MP3驅(qū)動(dòng)程序 /** * @brief player_run 運(yùn)行MP3 播放器過程,內(nèi)部死循環(huán) * @param 無 * @return 無 */ void player_run(void)

24、{ char music_name[FILE_NAME_LEN]; f_mount(0, &fs); file_scan(path); //掃描文件 if(file_num == 0) { printf("\r\n no mp3 file ! "); return; //跳出本函數(shù) } player_state = S_READY; //初始化狀態(tài) touch_even = E_NULL; //初始化事件標(biāo)志 a

25、ll_page = (file_num+7)/8 ; // current_page = 1; printf("\r\n file_num =%d,all_page=%d",file_num,all_page); // PCM1770_VolumeSet(0); //調(diào)節(jié)音量 PCM1770_VolumeSet(28); lcd_list(current_page); //顯示歌曲列表,第一頁 while(1) // 進(jìn)入死循環(huán),根據(jù)狀態(tài)切換 {

26、 if(play_index >= file_num-1) //檢查play_index play_index = file_num-1; //index指向最后一個(gè)文件 else if(play_index<=0) play_index =0; even_process(); //事件處理 switch(player_state) { case S_PLAY: //播放狀態(tài) //開始play 流程 //讀

27、取音頻文件流程 //′打開playlist,讀取音頻文件名 fres = f_open (&file, "0:mp3player/playlist.txt", FA_READ); fres = f_lseek (&file, play_index*FILE_NAME_LEN); fres = f_read(&file, music_name, FILE_NAME_LEN, &rw_num); fres = f_close (&file); //獲取文件名,準(zhǔn)備解碼 printf("準(zhǔn)備播放:%s

28、 ",music_name); if(strstr(music_name,".mp3")||strstr(music_name,".MP3")) //MP3格式 { //開始MP3解碼 mp3_player(music_name); } else //WAV文件格式 { //開始WAV文件播放 wav_player(music_name); } break;

29、 case S_SWITCH: //切歌狀態(tài) player_state = S_PLAY; //?更新標(biāo)志位 /* 檢測要切換的歌曲是否在播放的上一頁*/ if((play_index+8)/8 < current_page) { current_page--; //?刷新當(dāng)前頁碼 lcd_list(current_page); //刷新LCD列表 } /*檢測要切換的歌曲是否在播放的下一頁*/ if((play_index+8)/8 >current_page) { current_page++; //?刷新當(dāng)前頁碼 lcd_list(current_page); //刷新LCD列表 } break; default:break; } } } 15

展開閱讀全文
溫馨提示:
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ì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!