版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
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)鍵的,也是亟待解決的問(wèn)題。 MP3是一種典型的嵌入式設(shè)備,而現(xiàn)在市場(chǎng)上比較常見(jiàn)的是閃存式MP3。由于閃存式MP3的容量限制,使它存儲(chǔ)歌曲數(shù)目較少,在功能上也很難實(shí)現(xiàn)多樣化1。而硬盤式MP3的多功能及大容量,也必將受到不少消費(fèi)者的喜愛(ài)。 MP3播放器一般分成3個(gè)
2、部分:CPU、MP3硬件解碼器存儲(chǔ)器。其中可以將前兩部分集成在一起,即帶MP3硬件解碼器的CPU;或?qū)⒑髢刹糠旨稍谝黄?,即集成硬件解碼、DA轉(zhuǎn)換及音頻輸入。存儲(chǔ)器可以是Flash存儲(chǔ)器或硬盤2。通過(guò)用MP3編碼技術(shù),可以得到大約12:1壓縮的有損音樂(lè)信號(hào)。1.2 研究現(xiàn)狀MP3全稱是MPEG Layer 3,狹義的講就是以MPEG Layer 3標(biāo)準(zhǔn)壓縮編碼的一種音頻文件格式。自韓國(guó)世韓(Seahan)公司1998年推出世界上第一臺(tái)MP3隨身聽(tīng)以來(lái), MP3播放器以其小巧的外形,不錯(cuò)的近乎于CD的音質(zhì),前衛(wèi)的功能,越來(lái)越受到消費(fèi)者的青睞,也就成為業(yè)界甚至大眾媒體關(guān)注的一個(gè)熱門話題3。在市場(chǎng)消
3、費(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)來(lái)對(duì)SD卡操作,TFT液晶屏的控制及觸摸屏原理、還有人
4、機(jī)界面UI的實(shí)現(xiàn)等問(wèn)題5。系統(tǒng)架構(gòu)如圖2-1所示。基本設(shè)計(jì)流程是使用STM32系列微控制器,采用FATFS文件系統(tǒng)方式讀取SD卡中音樂(lè)文件數(shù)據(jù),將所讀取的數(shù)據(jù)流傳輸給CPU軟件解碼(helix解碼庫(kù))解碼編程PCM音頻,通過(guò)I2S送到ADC芯片 PCM1770音頻輸出驅(qū)動(dòng)耳機(jī)實(shí)現(xiàn)音樂(lè)播放功能。液晶屏顯示歌曲的實(shí)時(shí)播放狀態(tài),功能按扭 和控制歌曲的播放、停止、聲音增大、減小等。同時(shí),TFT觸摸屏則用于功能按扭 和人機(jī)交換界面的輸入。2.2系統(tǒng)架構(gòu)圖圖 2-1 系統(tǒng)架構(gòu)圖2.3硬件模塊2.3.1處理器一、芯片介紹。CortexM3是ARM公司最新推出的基于ARMv7體系架構(gòu)的處理器核,具有高性能、低
5、成本、低功耗的特點(diǎn),專門為嵌入式應(yīng)用領(lǐng)域設(shè)計(jì)。ARMv7 架構(gòu)采用了Thumb2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的基礎(chǔ)上發(fā)展起來(lái)的,并且保持了對(duì)現(xiàn)存ARM解決方案完整的代碼兼容性。 Thumb2技術(shù)比純ARM代碼少使用31%的內(nèi)存,減小了系統(tǒng)開(kāi)銷,同時(shí)能夠提供比Thumb技術(shù)高出38%的性能7。在中斷處理方面,CortexM3集成了嵌套向量中斷控制器NVIC(Nested Vectored Interrupt Controller)。NVIC是CortexM3處理器的一個(gè)緊耦合部分,可以配置1240個(gè)帶有256個(gè)優(yōu)先級(jí)、8級(jí)搶占優(yōu)先權(quán)的物理中斷,為處理器提供出色的異常處理能力。同時(shí),
6、搶占(Pre emption)、尾鏈(Tail chaining)、遲到技術(shù)(Late arriving)的使用,大大縮短了異常事件的響應(yīng)時(shí)間。CortexM3異常處理過(guò)程中由硬件自動(dòng)保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時(shí)間,降低了軟件設(shè)計(jì)的復(fù)雜性。DP)或串行JTAG調(diào)試端口(SWJDP,允許JTAG或SW協(xié)議)使用。二、引腳圖。圖2-2 STM32F103ZET6 微控制器引腳分布圖2.3.3 SD卡模塊一、SD卡介紹。STM32微處理器 CPU ( STM32F103ZET6 )具有一個(gè) SDIO 接口。SD/SDIO/MMC 主機(jī)接口可以支持 MMC 卡系統(tǒng)規(guī)范 4.2 版中的
7、3 個(gè)不同的數(shù)據(jù)總線模式:1 位(默認(rèn))、4 位和 8 位。在 8 位模式下,該接口可以使數(shù)據(jù)傳輸速率達(dá)到 48MHz,該接口兼容 SD 存儲(chǔ)卡規(guī)范 2.0 版12。二、SD卡原理圖。圖2-3 SD卡接口電路.圖2-4 SD卡上電識(shí)別流程圖2.3.3 LCD顯示模塊一、LCD控制器。LCD,即液晶顯示器,因?yàn)槠涔牡?、體積小,承載的信息量大,因而被廣泛用于信息輸出、與用戶進(jìn)行交互,目前仍是各種電子顯示設(shè)備的主流。因?yàn)?STM32 內(nèi)部沒(méi)有集成專用的液晶屏和觸摸屏的控制接口,所以在顯示面板中應(yīng)自帶含有這些驅(qū)動(dòng)芯片的驅(qū)動(dòng)電路(液晶屏和觸摸屏的驅(qū)動(dòng)電路是獨(dú)立的),STM32 芯片通過(guò)驅(qū)動(dòng)芯片來(lái)控制液
8、晶屏和觸摸屏。2、 FSMC框圖結(jié)構(gòu)。FSMC(flexible static memory controller),譯為靜態(tài)存儲(chǔ)控制器??捎糜赟TM32 芯片控制 NOR FLASH、PSRAM、和 NAND FLASH 存儲(chǔ)芯片。我們是使用FSMC的NORPSRAM 模式控制 LCD。其結(jié)構(gòu)如圖2-5所示。.圖2-5 FSMC框圖結(jié)構(gòu)框圖2.3.4觸摸屏模塊一、觸摸屏感應(yīng)原理。觸摸屏常與液晶屏配套使用,組合成為一個(gè)可交互的輸入輸出系統(tǒng)。除了熟悉的電阻、電容屏外,觸摸屏的種類還有超聲波屏、紅外屏。觸摸屏的基本原理為分壓,它由一層或兩層阻性材料組成,在檢測(cè)坐標(biāo)時(shí),在阻性材料的一端接參考電壓 V
9、ref,另一端接地,形成一個(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 可通過(guò) SPI 接口向它寫入控制字,由它測(cè)得 X、Y 方向的觸點(diǎn)電壓返回給 MCU。如圖2-6所示圖2-6 TSC2046 與電阻屏的連接圖2.3.5 PCM音頻模塊PCM1770器件是CMOS,單片,集成電路包括立體聲數(shù)字 -
10、 模擬轉(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的支持。全套用戶可編程功能是通過(guò)一個(gè)3線串行控制端口,支持寄存器寫入功能訪問(wèn)。原理接線圖如圖2-7所示圖2-7 PCM1770連接圖3 軟件設(shè)計(jì)3.1 軟件開(kāi)發(fā)架構(gòu)本設(shè)計(jì)由STM32最小系統(tǒng),SD卡的讀取模塊,TFT控制模塊,觸摸屏模塊,串口通信模塊組成。將要解決SD卡的讀取及使用FATFS系統(tǒng)對(duì)SD卡的操作、TFT液晶的控制及
11、觸摸屏原理、還有圖形用戶界面GUI的實(shí)現(xiàn)等問(wèn)題10。架構(gòu)如圖3-1軟件開(kāi)發(fā)架構(gòu)圖圖3-1軟件開(kāi)發(fā)架構(gòu)圖3.2 軟件程序設(shè)計(jì)流程圖開(kāi)始系統(tǒng)初始化顯示屏初始化觸摸屏初始化SD卡初始化PCM1770初始化MP3播放程序觸摸屏按下?播放模式設(shè)置讀取觸摸屏數(shù)據(jù),執(zhí)行相應(yīng)功能操作圖3-2 程序設(shè)計(jì)流程圖本系統(tǒng)的程序設(shè)計(jì)流程圖如圖3-2所示,工作流程是:STM32從SD卡中讀取音樂(lè)文件數(shù)據(jù),將所讀取的數(shù)據(jù)流傳輸給CPU軟件解碼(helix解碼庫(kù))解碼編程PCM音頻,通過(guò)I2S送到ADC芯片 PCM1770音頻輸出驅(qū)動(dòng)耳機(jī)實(shí)現(xiàn)音樂(lè)播放功能。液晶屏顯示歌曲的實(shí)時(shí)播放狀態(tài),功能按扭和控制歌曲的播放、停止、聲音增大
12、、減小等。同時(shí),TFT觸摸屏則用于功能按扭和人機(jī)交換界面的輸入。音樂(lè)播放鏈路:圖3-3 音樂(lè)播放鏈路3.3 軟件代碼結(jié)構(gòu)為了使代碼結(jié)構(gòu)清晰,方便以后的維護(hù),代碼結(jié)構(gòu)設(shè)計(jì)如下:在根目錄I2S-MP3下,劃分為七個(gè)文件夾,分別為STARTUP、CMSIS、FWLB、USER、DOC、ff9和mp3。下面分別就七個(gè)文件夾的作用和結(jié)構(gòu)進(jìn)行說(shuō)明,其代碼目錄樹(shù)狀結(jié)構(gòu)如圖3-4 所示。圖3-4 整體工程代碼結(jié)構(gòu)對(duì)其進(jìn)行分析:目錄名稱 目錄說(shuō)明 STARTUP 啟動(dòng)文件CMSIS M3系列通用的文件FWLB ST 片上資源外設(shè)的驅(qū)動(dòng)文件USER 用戶寫的驅(qū)動(dòng)文件DOC 工程說(shuō)明文檔 ff9 FATFS文件系統(tǒng)
13、文件mp3 音樂(lè)播放相關(guān)文件詳細(xì)代碼結(jié)構(gòu)啟動(dòng)文件是任何處理器在上點(diǎn)復(fù)位之后最先運(yùn)行的一段匯編程序。在我們編寫的 c 語(yǔ)言代碼運(yùn)行之前,需要由匯編為 c 語(yǔ)言的運(yùn)行建立一個(gè)合適的環(huán)境,接下來(lái)才能運(yùn)行我們的程序9。液晶屏驅(qū)動(dòng)程序/* * brief lcd 初始化 * param 無(wú) * return 無(wú) */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
14、fs 文件系統(tǒng)初始化 * param 無(wú) * return 無(wú) */void Sd_fs_init(void) /* SD卡中斷初始化 */SDIO_NVIC_Configuration();/* SD 卡硬件初始化,初始化盤符為0*/ f_mount(0,&myfs0); /./ff9文件庫(kù)/* brief SDIO優(yōu)先級(jí)配置為最高優(yōu)先級(jí) * param 無(wú) * return 無(wú)*/void SDIO_NVIC_Configuration(void) NVIC_InitTypeDef NVIC_InitStructure; /* Configure the NVIC Preempti
15、on 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(&NVIC_InitStr
16、ucture);觸摸屏卡驅(qū)動(dòng)程序/* brief 觸摸模擬SPI IO 和中斷 IO初始化 * param 無(wú) * return 無(wú)*/void Touch_Init(void) GPIO_SPI_Config();/* brief 模擬SPI的GPIO配置,當(dāng)SPI的4根信號(hào)線換為其他IO時(shí),* 只需要修改該函數(shù)對(duì)應(yīng)的宏定義即可。 * param 無(wú) * return 無(wú)*/void GPIO_SPI_Config(void) GPIO_InitTypeDef GPIO_InitStructure; /* 開(kāi)啟GPIO時(shí)鐘*/ RCC_APB2PeriphClockCmd(RCC_APB2P
17、eriph_GPIOF | RCC_APB2Periph_GPIOG, 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_
18、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.G
19、PIO_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.4 MP3驅(qū)動(dòng)程序/* * brief playe
20、r_run 運(yùn)行MP3 播放器過(guò)程,內(nèi)部死循環(huán) * param 無(wú) * return 無(wú) */void player_run(void)char music_nameFILE_NAME_LEN;f_mount(0, &fs);file_scan(path);/掃描文件if(file_num = 0)printf("rn no mp3 file ! ");return; /跳出本函數(shù)player_state = S_READY; /初始化狀態(tài)touch_even = E_NULL; /初始化事件標(biāo)志all_page = (file_num+7)/8 ;/current
21、_page = 1;printf("rn file_num =%d,all_page=%d",file_num,all_page);/PCM1770_VolumeSet(0); /調(diào)節(jié)音量PCM1770_VolumeSet(28);lcd_list(current_page);/顯示歌曲列表,第一頁(yè)while(1) /進(jìn)入死循環(huán),根據(jù)狀態(tài)切換if(play_index >= file_num-1)/檢查play_indexplay_index = file_num-1;/index指向最后一個(gè)文件else if(play_index<=0)play_index =0;even_process();/事件處理switch(player_state)case S_PLAY:/播放狀態(tài)/開(kāi)始play 流程/讀取音頻文件流程/´打開(kāi)playlist,讀取音頻文件名fres = f_open (&file, &q
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 公司新推出勞務(wù)分包合同
- 大客戶采購(gòu)合同的簽訂技巧
- 短期借款合同范文
- 終止房屋租賃合同的協(xié)議
- 地毯生產(chǎn)流程合同
- 復(fù)墾質(zhì)量守諾
- 租賃倉(cāng)庫(kù)續(xù)約延期事項(xiàng)
- 房江湖服務(wù)合同貼心提示
- 法庭證人責(zé)任書(shū)
- 高校圖書(shū)采購(gòu)合同
- 2024年生產(chǎn)主管的挑戰(zhàn)與機(jī)遇
- 20以內(nèi)進(jìn)位加法100題(精心整理6套-可打印A4)
- 揚(yáng)州育才小學(xué)2023-2024一年級(jí)上冊(cè)數(shù)學(xué)期末復(fù)習(xí)卷(一)及答案
- 澳大利亞英文版介紹
- 化妝品功效評(píng)價(jià)
- 【幼兒園園本教研】幼兒表征的教師一對(duì)一傾聽(tīng)策略
- 山東省各地市地圖課件
- 四班三倒排班表
- 方案的構(gòu)思過(guò)程 課件-2023-2024學(xué)年高中通用技術(shù)蘇教版(2019)技術(shù)與設(shè)計(jì)1
- Mysql 8.0 OCP 1Z0-908 CN-total認(rèn)證備考題庫(kù)(含答案)
- 手拉葫蘆安全使用培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論