![基于STM的MP播放器設(shè)計_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/ca807b86-da5f-4b14-9098-7629d09eb402/ca807b86-da5f-4b14-9098-7629d09eb4021.gif)
![基于STM的MP播放器設(shè)計_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/ca807b86-da5f-4b14-9098-7629d09eb402/ca807b86-da5f-4b14-9098-7629d09eb4022.gif)
![基于STM的MP播放器設(shè)計_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/ca807b86-da5f-4b14-9098-7629d09eb402/ca807b86-da5f-4b14-9098-7629d09eb4023.gif)
![基于STM的MP播放器設(shè)計_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/ca807b86-da5f-4b14-9098-7629d09eb402/ca807b86-da5f-4b14-9098-7629d09eb4024.gif)
![基于STM的MP播放器設(shè)計_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-1/10/ca807b86-da5f-4b14-9098-7629d09eb402/ca807b86-da5f-4b14-9098-7629d09eb4025.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、I北大學(xué)課程設(shè)計說學(xué)生姓名:賀彥興學(xué)號:1106044224儀器與電子學(xué)院 電子科學(xué)與技術(shù)基于STM32的MP3播放器設(shè)計指導(dǎo)教師:李錦明職稱:副教授2015 年 1 月 30 日摘要MP3是一種高質(zhì)量音樂壓縮標(biāo)準(zhǔn),采用 MP3壓縮的數(shù)據(jù)量可以縮小到1/12,音 質(zhì)卻沒有多少損失。由于MP3音樂的較小數(shù)據(jù)量和高質(zhì)量的播放效果,使它很 快成為一種集音頻播放、數(shù)據(jù)存儲為一身的數(shù)碼產(chǎn)品,并深受人們的喜愛。本文 采用STM32系列微控制器,結(jié)合解碼芯片 VS1003、SD卡、LCD等外圍設(shè)備 設(shè)計并實(shí)現(xiàn)了 MP3播放器。其主要功能有:播放 VS1003支持的所有音頻文件, 如MP3、WMA、WAV文件
2、,且音質(zhì)非常好;通過搖桿控制播放上一首 /下一首, 通過電位計來控制音量增減,通過 LCD顯示音量圖標(biāo)和播放狀態(tài)等;本系統(tǒng)還 計劃實(shí)現(xiàn)讀卡器功能,PC機(jī)可通過USB接口直接對開發(fā)板上的SD卡進(jìn)行讀寫 操作,以方便拷貝音頻文件。關(guān)鍵字:MP3 播放器、CortexM3、STM32、VS1003ABSTRACTIs a high quality MP3 music comp ressi on sta ndard, with MP3 comp ressed data can be reduced to 1 / 12, but there is little loss of sound quality
3、. MP3 music as the smaller amount of data and high-quality p layback, it will soon become a set of audio p layback, the data is stored as a digital p roduct, and very popu lar. I n this paper, STM32 family of microcontrollers, combined with decoder chip VS1003, SD card, LCD and other perip herals de
4、sig n and imp leme ntati on of MP3 p layers. Its main fun cti ons are: PlayVS1003 su pp orts all audio files, such as MP3, WMA, WAV files, and the sou nd quality is very good; through the joystick con trol p layback on a / to the n ext, through a potentiometer to control volume change, through the L
5、CD show the volume icon and p lay status, etc.; The system also plans to achieve reader fun cti on, PC machi ne in terfaces via USB directly to the devel opment board of the SD card read and write op erati ons to facilitate the copying audio files.Key words: MP3 Players; CortexM3; STM32; VS1003附件20第
6、一章緒論目錄1.11.2選題背景與現(xiàn)狀 設(shè)計和研究方向第二章系統(tǒng)概述與硬件電路設(shè)計系統(tǒng)的總體構(gòu)架- 電源模塊微控制器模塊2.3.1 CortexM3 2.3.2 STM32F103 2.5VS1003音頻模塊-2.5.1 VS1003 概述-2.5.2 VS1003 解碼電路設(shè)計2.4 SD 卡2.4.1 SD卡概述2.4.2 FAT16文件系統(tǒng)-2.4.3 SD卡驅(qū)動電路 2.5 液晶顯示器 2.5.1液晶顯示原理 -2.5.2液晶顯示模塊 -2233445777899910第三章 系統(tǒng)軟件設(shè)計103.1軟件設(shè)計總流程3.2底層驅(qū)動程序設(shè)計3.2.1 VS1003 驅(qū)動設(shè)計
7、 3.2.2 SD 卡讀取驅(qū)動3.2.3 RTC時鐘驅(qū)動-3.2.4液晶顯示設(shè)計-3.3功能模塊的設(shè)計3.3.1 音樂播放功能的設(shè)計3.3.2 USB 讀卡器 101111121414151516第四章 結(jié)論17結(jié)束語18參考文獻(xiàn)19第一章 緒論1.1 選題背景與現(xiàn)狀二十一世紀(jì)的第一個十年過去了, 隨著電子技術(shù)的高速發(fā)展和嵌入式系統(tǒng)的 應(yīng)用,越來越多的電子產(chǎn)品進(jìn)入人們的視野。面對多形式、多渠道的信息,人們 對信息的整合運(yùn)用與隨時調(diào)整的要求越來越高, 消費(fèi)電子無疑將潛移默化地改變 人們的生活。 目前, 消費(fèi)電子產(chǎn)業(yè)每年都持續(xù)增長, 所涉及的產(chǎn)品領(lǐng)域和行業(yè)也 越來越多。豐富的電子產(chǎn)品正從各個角度向
8、消費(fèi)者展示著 “數(shù)字生活 ”的新概念, 給人們帶來了耳目一新的全面享受。隨著數(shù)字聲音作為一種存儲、 處理和傳輸高保真聲音的方法在消費(fèi)電子等領(lǐng)MP3 音樂域的廣泛應(yīng)用,與之相關(guān)的數(shù)字音頻壓縮技術(shù)也得到了充分的發(fā)展,格式的出現(xiàn)和In ternet的日益普及更是將數(shù)字音樂推向了高潮。MP3壓縮音樂的方式是通過一個運(yùn)算法則, 去掉聲音中高頻與低頻的部分, 大幅刪減不必要的容 量浪費(fèi),同時保留了人類所能感受到的音頻部分, 因此其好處在于大幅降低了數(shù) 字聲音文件的容量,而不會破壞原來的音質(zhì)。音質(zhì)越低的聲音在 MP3 的運(yùn)算法 則下可以得到越高的壓縮比。低數(shù)據(jù)量和高播放品質(zhì)的優(yōu)點(diǎn)使其成為音樂存儲、 數(shù)字廣播
9、、 網(wǎng)上音樂傳輸?shù)闹饕绞健?人們不僅可以使用計算機(jī)軟件, 還可以通 過數(shù)字隨身聽來欣賞音樂。自從1998年世界上第一臺MP3播放器推出以來。MP3播放器市場以極快 的速度發(fā)展, MP3 的功能也越來越多。 國產(chǎn)品牌的 MP3 播放器也進(jìn)入市場當(dāng)中, 以紐曼、藍(lán)魔、魅族等企業(yè)為代表的MP3播放器企業(yè)占據(jù)了國內(nèi)MP3播放器市 場主要份額。1.2 設(shè)計和研究方向STM32系列微控制器采用ARM公司最新的CortexM3內(nèi)核。VS1003音頻解碼芯片為 VS10xx 系列的第三代產(chǎn)品,是芬蘭 VLSI Solution 公司生產(chǎn)的單片MP3/WMA/MIDI 解碼和 ADPCM 編碼芯片。本文采用S
10、TM32系列微控制器,結(jié)合解碼芯片 VS1003、SD卡、LCD等外圍設(shè)備設(shè)計并實(shí)現(xiàn)了 MP3 播放器。其主要功能有:播放 VS1003 支持的所有 音頻文件,如 MP3、 WMA、 WAV 文件,且音質(zhì)非常好;通過按鍵控制播放上 一首 /下一首、音量增減等;通過 LCD 顯示音量圖標(biāo)和播放狀態(tài);本系統(tǒng)還計劃 1實(shí)現(xiàn)讀卡器功能,PC機(jī)可通過USB接口直接對開發(fā)板上的SD卡進(jìn)行讀寫操作, 以方便拷貝音頻文件。第二章系統(tǒng)概述與硬件電路設(shè)計2.1系統(tǒng)的總體構(gòu)架本系統(tǒng)采用STM32作為微控制器,VS1003作為解碼芯片,采用SD卡存儲 MP3/WMA文件,LCD作為顯示器件,最終完成 MP3的播放設(shè)計
11、。同時PC機(jī) 可以通過USB接口操作開發(fā)板上SD卡中的文件,也可以通過串口通信控制音MP3播放功能模塊的工作分為兩個部分:第一部分是循環(huán)播放 MP3歌曲,該功能需要首先做一些初始化工作,MP3解碼器一旦開始工作,就會一直向 CPU請求數(shù)據(jù),直至歌曲結(jié)束,只有通過鍵 盤操作才會使該功能提前結(jié)束。因?yàn)镸P3文件的數(shù)據(jù)量較大,在flash存儲器內(nèi) 是以頁為單位進(jìn)行存儲的,所以 MP3的播放程序初始化就是要把該文件的首地址和頁數(shù)先讀出到CPU中,然后CPU可以根據(jù)如上數(shù)據(jù)進(jìn)行取數(shù)據(jù)工作。第二部分則一直在等待中斷發(fā)生,該程序是與鍵盤結(jié)合起來的,主要用于使 用者對播放過程的控制。鍵盤操作對 MP3播放過程
12、的控制還包括后退、躍進(jìn)、跳到下一首、音量控制等。因?yàn)檎麄€播放過程的鍵盤控制功能比較單一,沒有鍵 的復(fù)合操作,所以程序都很容易實(shí)現(xiàn)。當(dāng) MP3播放器插入到USB接口時,系統(tǒng)執(zhí)行USB通訊功能模塊,該模塊主要用于對flash存儲器內(nèi)的文件數(shù)據(jù)進(jìn)行管理。2.2電源模塊電源是電子設(shè)備中必不可少的一部分, 它為設(shè)備提供了能量。電源模塊電路 如圖2-2所示。本系統(tǒng)有以下幾種電源:CPU的內(nèi)核數(shù)字和模擬電源電壓+1.8 V, CPU的1/O 口數(shù)字和模擬電源電壓+3.3 V、總線的隔離電源、LCD的驅(qū)動電源、 LCD的背光逆變電源、其他外圍設(shè)備電源電壓+5 V等電源。5V電源適配器經(jīng)過 AMS1117-3.
13、3和AMS1117-2.5產(chǎn)生3.3V和2.5V的直流電源供系統(tǒng)使用。GNDDILN4148CND圖2.2 電源電路2.3微控制器模塊2.3.1 CortexM3CortexM3是ARM公司最新推出的基于 ARMv7體系架構(gòu)的處理器核,具有 高性能、低成本、低功耗的特點(diǎn),專門為嵌入式應(yīng)用領(lǐng)域設(shè)計。ARMv7架構(gòu)采用了 Thumb2技術(shù),它是在ARM的Thumb代碼壓縮技術(shù)的 基礎(chǔ)上發(fā)展起來的,并且保持了對現(xiàn)存ARM解決方案完整的代碼兼容性3。Thumb2技術(shù)比純ARM代碼少使用31%的內(nèi)存,減小了系統(tǒng)開銷,同時能夠提 供比Thumb技術(shù)高出38%的性能。在中斷處理方面,CortexM3集成了嵌
14、套向量中斷控制器NVIC(NestedVectored Interrupt Controller)。NVIC 是 CortexM3 處理器的一個緊耦合部分,可 以配置1240個帶有256個優(yōu)先級、8級搶占優(yōu)先權(quán)的物理中斷,為處理器提供 出色的異常處理能力。同時,搶占(Pre emption)、尾鏈(Tail chaining)、遲 到技術(shù)(Late arriving)的使用,大大縮短了異常事件的響應(yīng)時間。CortexM3異常處理過程中由硬件自動保存和恢復(fù)處理器狀態(tài),進(jìn)一步縮短了中斷響應(yīng)時 間,降低了軟件設(shè)計的復(fù)雜性。CortexM3體系架構(gòu)提出了新的單線調(diào)試技術(shù), CortexM3處理器的跟蹤
15、調(diào)試是通過調(diào)試訪問端口 (Debug Access Port 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.3.2 STM32F103本設(shè)計中的微控制器采用意法半導(dǎo)體公司出產(chǎn)的STM32F103VBT64芯片,
16、STM32F103VBT6增強(qiáng)型系列使用高性能的 ARM Cortex-M3 32位的RISC內(nèi)核,工作頻率為72MHz,內(nèi)置高速存儲器(高達(dá)128K字節(jié)的閃存和20K字節(jié)的SRAM),豐富的增強(qiáng)I/O端口和聯(lián)接到兩條APB總線的外設(shè)。所有型號的器件 都包含2個12位的ADC、3個通用16位定時器和一個PWM定時器,還包含標(biāo) 準(zhǔn)和先進(jìn)的通信接口:多達(dá)2個I2C和SPI、3個USART、一個USB和一個CAN 。STM32F103VBT6增強(qiáng)型系列工作于-40 °至+105°C的溫度范圍,供電電壓2.0V至3.6V,一系列的省電模式保證低功耗應(yīng)用的要求。是一款性價比很高的 3
17、2位ARM處理器,是低成本ARM嵌入式應(yīng)用的極佳選擇。其引腳分布如圖2.3所示。innrrnnniLiiiirirrJnrinnirSSS&»3S5 S學(xué)SSSS&838,H wS E 8吧膽iWjiPE2CPE3CPE4IZPFftC Pts匸 'BATC PC1J-r4,PFR'fl:TCC PH)3C32_ U C PCl5-O9C32_0UTt VSM c VDD Sc OSC_Nc O9C_0dTi;WFST 匚 PCO c PG1 E FG7r PC5C VJiAc TIEF- r Ticr- c VDOAt RAO-'AHUP c
18、 RAI c 切匕LOrP lOD/54 3? lo A-ro 4 3 3 1 -J- BQ 7 -n 5 4 J 2 1 7 f F F 7 7 £S ft fh 亠 i -ds iT H 5 _P-Lrl s - A 鼻Jrtrrr: J J Jrlnr: 3n Jtoo; BS_2 hcFA 13FA 12 g n nFX FAS PCS 中 rc7 res PAS F31J PD1 J F3PD1IIIKD)OPCA rza PDIO F3H 313 r3125-I U I- U JU LI J-ll-l U l-l U M -I卜O -*1 r-tfl! n. £
19、 £ E 2 上蘭豐皀呂吉 Cummijj in LLJ m器Qddddd亠d圖2.3 STM32引腳圖2.5 VS1003音頻模塊雖然STM32F103RB具有最高72MHZ勺頻率,但它沒有獨(dú)立的DSP音效處理能力,如果直接用它來進(jìn)行音頻數(shù)據(jù)處理, 很難實(shí)現(xiàn)優(yōu)質(zhì)的音頻輸出,同時考慮 到自己的能力和精力有限,因而本系統(tǒng)的音頻解碼部分則另采用一款簡單實(shí)用的音效處理芯片VS10030來完成。本模塊涉及到模擬信號與數(shù)字信號,在設(shè)計時要考慮信號的隔離措施,模擬信號與數(shù)字信號的連接處需串聯(lián)磁珠或 0歐電阻以避免信號干擾。2.5.1 VS1003 概述VS1003是一個單片MP3/WMA/MID
20、I音頻解碼器和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ī)放大器和地線緩沖器。18位過采樣VS1003通過一個串行接口來接收輸入的比特流,它可以作為一個系統(tǒng)的從 機(jī)。輸入的比特流被解碼,然后通過一個數(shù)字音量控制器到達(dá)一個多位DAC。通過串行總線控制解碼器。除了基本的解碼,在用戶RAM中它還可以作其他特殊應(yīng)用,例如 DSP音效處理。VS1003的內(nèi)部
21、結(jié)構(gòu)及引腳如圖2.4所示。圖2.4 VS1003內(nèi)部結(jié)構(gòu)及引腳圖-aji5ulSOcvmstCVIBSELKWISTXiHraTooHaf(REQAvmJTS/BSlrTCLEFTffn/KLKflOTT旳忙DKPKM(JWCPlDlLHMGUZ/DCLXWOa/SDAl*RCtfTESTAM3金軌4Th:VSKW3 4;* 辛 * * F* 卜 卜 刃 J % 7 s具體特性如下:能解碼 MPEG 1 和 MPEG2 音頻層 III ( CBR+VBR+ABR); WMA4.0/4.1/7/8/9 5-384kbps 所有流文件; WAV(PCM+IMAAD-PCM); 產(chǎn)生MIDI/S P
22、-MIDI 文件。寸話筒輸入或線路輸入的音頻信號進(jìn)行 IMAADPCM編碼支持MP3和WAV流(低音控制單時鐘操作12.13MHZ部PLL鎖相環(huán)時鐘倍頻器氐功耗含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無相位差含能驅(qū)動30歐負(fù)載的耳機(jī)驅(qū)動器莫擬,數(shù)字,I/O單獨(dú)供電為用戶代碼和數(shù)據(jù)準(zhǔn)備的5.5KB片上RAM串行的控制,數(shù)據(jù)接口可被用作微處理器的從機(jī)特殊應(yīng)用的SPI Flash引導(dǎo)供調(diào)試用途的UART接口新功能可以通過軟件和4 GPIO添加引腳功能說明如圖2.4所列。引卸號管腳喜稱iiGNn吐理器橋三T/cmIOTDDr旳電廉ton型值:2. SV最大值:宜関)33,4TARfR嗪擬電誨f典塑信:2
23、用最大值:Z 3V>5, 4 21. 51CVTD處理器內(nèi)檳電瀬t典型信! 2.3V最大乜:3. 6V)J 化 40.4?AGND嘆型地1和2HTCP 和 MTCN司相相反相差呂®壓3XRESHT抵電平有蝕,界步憑位湍8DEEQ數(shù)據(jù)請求,卡金入恿線gGPIO2/DCLK誦1/02,色行勉謠總線時訓(xùn)10GPIOVmATA誦用T/CI3,自行豺弭記蘇針抓135rcs/nsYHc豈丈呢片遺端/室竹同歩15VCCi時神壓控振落器叱口輸出1丁和 leXTALO 和 KTALI昴版輸出和昴揀織入S3斗選宥入,個屯平右效2fiEXTJAET接收口,不膚時?e TOVDD27IXTJAST境違
24、±8SULK串行總線的閉忡狛和30SI 和 30串ir摘入和半行鋼匕RZTP肝嘩國做測試,迄攝奎rwrn33CPIOC/SFIEOCT通卬 10/0 , /SFIEOOT > 楝ffl lOCK T進(jìn)電阻34GFIOL:1I/OL39 和 46EIGHT 和 LEFT右聲道揄出和左聲道揃出42GBUF仝集地緩沖舒4 +ECAP13LTIfE IM強(qiáng)踣諭入2.5.2 VS1003解碼電路設(shè)計在設(shè)計VS1003解碼電路時,數(shù)字地與模擬地必須相互連接并盡量靠近VS1003以避免鎖存上拉,為了能播放48KHZ采樣率的音頻文件,輸入時鐘使用 12.288MHz。具體設(shè)計電路如圖 2-12
25、 所示。VS1003 通過 MISO、MOSI、SCK(SPI接口)來接收輸入的MP3數(shù)據(jù),經(jīng)過VS1003內(nèi)置的采樣DAC轉(zhuǎn)換為音頻模擬 量,最后通過Left、Right輸出。II/I !&m:.l 而:iChitiEKJ 5屮lira* 仁VJ lf| W:N TTirn IHPtCJC :vnrK KAM nt :VDni IIEJI :TflTlH i.c. :i'wnixvi- I#乳IJhIkIIlli .31:'11咅頻解碼驅(qū)動屯路II' 礎(chǔ)IM!Ml HIJHZi廟IEIP.IIIIKCiLl耳機(jī)駆動電路id 1hil »1岀J巴一ii
26、K出中 二P 1Inl眉n錄持電路圖2.7 SD卡內(nèi)部結(jié)構(gòu)及引腳7圖2.6音頻解碼電路2.4 SD 卡2.4.1SD卡概述SD卡(Secure Digital Memory Card)是一種為滿足安全性、容量、性能和使用環(huán)境等各方面的需求而設(shè)計的一種新型存儲器件,SD卡允許在兩種模式下工作,即SD模式和SPI模式,本系統(tǒng)采用SPI模式。本小節(jié)僅簡要介紹在 SPI模式下,STM32處理器如何讀寫SD卡,如果讀者如希望詳細(xì)了解 SD卡,可以參考相關(guān)資料。SD卡內(nèi)部結(jié)構(gòu)及引腳如圖2.7所示,1 I I I I I II=I U: * dbnrllf血 LM_1*一I 苗!.* >i r 匚
27、39;(>= H h L-j i L r I2*''I J <-bSD 卡主要引腳和功能為:CLK :時鐘信號,每個時鐘周期傳輸一個命令或數(shù)據(jù)位,頻率可在025MHz 之間變化,SD卡的總線管理器可以不受任何限制的自由產(chǎn)生 025MHz的頻率;CMD :雙向命令和回復(fù)線,命令是一次主機(jī)到從卡操作的開始,命令可以 是從主機(jī)到單卡尋址, 也可以是到所有卡; 回復(fù)是對之前命令的回答, 回復(fù)可以 來自單卡或所有卡;DAT03:數(shù)據(jù)線,數(shù)據(jù)可以從卡傳向主機(jī)也可以從主機(jī)傳向卡。SD卡以命令形式來控制SD卡的讀寫等操作??筛鶕?jù)命令對多塊或單塊進(jìn)行讀寫操作。在SPI模式下其命令由6
28、個字節(jié)構(gòu)成,其中高位在前。2.4.2 FAT16 文件系統(tǒng)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ū)BPB(Bios MBR 將系統(tǒng) 如果有則將其讀 BPB 參數(shù)塊記錄著本分區(qū)的起始扇區(qū)、結(jié)束 FAT個數(shù),分配單元大小等重要參數(shù)。內(nèi)容為系統(tǒng)引導(dǎo)記錄,它包括一個引導(dǎo)程序和一個被稱為Parameter Block)的本分區(qū)參數(shù)記錄表。弓I導(dǎo)程序的主要任務(wù)是當(dāng) 控制權(quán)交給它時, 判斷本分
29、區(qū)根目錄是否有操作系統(tǒng)引導(dǎo)文件, 入內(nèi)存,并把控制權(quán)交給該文件。扇區(qū)、文件存儲格式、根目錄大小、FAT 區(qū)該區(qū)內(nèi)容為文件分配表,F(xiàn)AT16文件系統(tǒng)進(jìn)行空間分配的最基本單位是簇。 文件分配表反映了 SD 卡所有簇的使用情況, 通過查文件分配表可以得知任一簇 的使用情況。對于 FAT16 來說, FAT 表每項(xiàng)占用兩個字節(jié)。 FAT 表的第一項(xiàng)通 常為FFF8H。對于其它項(xiàng),若其值為 0000H表示可用;FFF7H表示為壞簇; FFF8H-FFFFH 之間表示該簇為某文件或目錄的最后一個簇, FFF0H-FFF6H 之間 為保留值;其它值則指示下一個簇的簇號。FDT 區(qū)該區(qū)的內(nèi)容為文件目錄表,F(xiàn)A
30、T文件系統(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)行目錄文件所占簇 的分配。DATA 區(qū)該數(shù)據(jù)區(qū)存放文件的內(nèi)容,SD卡所占用的空間絕大部分為此部分。如果文 件長度大于一個簇的大小,需要多個簇存放該文件,這些放通過FAT鏈表串連起來。2.4.3 SD卡驅(qū)動
31、電路使用SPI總線與STM32處理器連接,如圖2.8所示DGND圖2.8 SD連接器與STM32處理器SPI連接圖2.5液晶顯示器2.5.1液晶顯示原理1602液晶模塊內(nèi)部的字符發(fā)生存儲器(CGROM)已經(jīng)存儲了 160個不同的圖2.9 LCD1602字符表2.5.2液晶顯示模塊LCD液晶顯示模塊主要完成數(shù)據(jù)顯示、 輸出數(shù)據(jù)與顯示數(shù)據(jù)的同步等功能, 可為使用者提供曲目信息。,前期為了簡化電路的設(shè)計,以及充分利用開發(fā)板資 源,此次系統(tǒng)顯示模塊設(shè)計采用 STM32V100開發(fā)板有自帶的LCD液晶屏,如 果時間允許,我將對支持漢字液晶屏進(jìn)行研究以用于顯示歌詞,音量等。LCD液晶屏硬件電路如圖圖2.1
32、0 LCD1602硬件電路圖2.10所示I-5V DGND第三章系統(tǒng)軟件設(shè)計3.1軟件設(shè)計總流程本系統(tǒng)在軟件設(shè)計上主要包括 2部分:底層驅(qū)動的設(shè)計和各功能模塊的設(shè) 計。軟件設(shè)計平臺使用 RealView MDK13。圖3.1系統(tǒng)軟件總流程各個功能的選擇菜單仿照手機(jī)九空格的操作界面,實(shí)現(xiàn)多各個功能之間的選 擇與切換,系統(tǒng)軟件設(shè)計的總體流程圖 3.1所示。3.2 底層驅(qū)動程序設(shè)計3.2.1 VS1003 驅(qū)動設(shè)計要讓VS1003實(shí)現(xiàn)音樂播放功能,首先要實(shí)現(xiàn)寫命令功能,然后通過寫命令 操作初始化VS1003。完成以上步驟之后,就可以送入音頻數(shù)據(jù),播放音樂了。1. VS1003 寫命令要控制 VS10
33、03 首先要實(shí)現(xiàn)的就是寫命令,這是控制是否成功的前提。VS1003 通信方式是一種同步串行接口方式( SPI 從機(jī)模式 ),它要求 SCLK 信 號必須由外部電路產(chǎn)生,數(shù)據(jù)(SDATA)在SCLK的上升沿或下降沿時被寫入。 寫命令的過程如下:(1)(2)(3)(4)等待 DREQ 為高(當(dāng) DREQ 為低時,說明芯片還沒有就緒) ; 將 XCS (命令片選)拉低;寫入 0x02;寫入寄存器地址;(5) 分別寫入數(shù)據(jù)的高字節(jié)與低字節(jié);(6) 將 XCS 置高。2. VS1003 初始化如其它芯片一樣,初始化對于 VS1003 來說同樣是極其重要的。初始化的過程大致是這樣的:(1)(2)(3)(4
34、)(5)(6)(7)硬件復(fù)位:接 XRESET 拉低;延時,將 XDCS、XCS、XRESET 置高;向 MODE 中寫入 0X0804; 等待 DREQ 為高;設(shè)置 VS1003 的時鐘:SCI_CLOCKF=0x9800,3 倍頻;設(shè)置VS1003的采樣率:SPl_AUDATA=0xbb81,采樣率48kHz,立體聲; 設(shè)置重音: SPI_BASS=0x0055;(8)(9)3. VS1003 對音頻文件的處理設(shè)置音量: SCI_VOL=0x2020;向VS1003發(fā)送4個字節(jié)的無效數(shù)據(jù),用以啟動 SPI發(fā)送。在完成 VS1003 初始化之后就可以對其寫入 MP3 文件數(shù)據(jù)了。主要就是看D
35、REQ信號,在VS1003的FIFO能夠接受數(shù)據(jù)的時候輸出高電平。每次可以寫入 32個字節(jié)的數(shù)據(jù)。而 DREQ 變低時,單片機(jī)就要停止數(shù)據(jù)的發(fā)送。寫數(shù)據(jù)的具體的方法如下:將XDCS拉低;等待DREQ為高;通過SPI寫入數(shù)據(jù);緩沖區(qū);在文件沒有結(jié)束前不斷重復(fù)2與3操作;在所有的數(shù)據(jù)都發(fā)送完后,再發(fā)送2048無效字節(jié)以清除VS1003的數(shù)據(jù)將XDCS置高。3.2.2 SD卡讀取驅(qū)動SD卡12 ( Secure Digital Memory Card )是一種為滿足安全性、容量、性能和使用環(huán)境等各方面的需求而設(shè)計的一種新型存儲器件, SD卡允許在兩種模式 下工作,即SD模式和SPI模式,本系統(tǒng)采用S
36、PI模式。SD卡引腳功能如表3-1 所列,各引腳的具體含義如下。CLK :時鐘信號,每個時鐘周期傳輸一個命令或數(shù)據(jù)位,頻率可在025MHz 之間變化,SD卡的總線管理器可以不受任何限制的自由產(chǎn)生025MHz的頻率。表3-1 SD卡引腳功能表針腳123456789SPI模式CSMOSIVSSVCCCLKVSSMISONCNCCMD :雙向命令和回復(fù)線,命令是一次主機(jī)到從卡操作的開始,命令可以 是從主機(jī)到單卡尋址,也可以是到所有卡;回復(fù)是對之前命令的回答,回復(fù)可以 來自單卡或所有卡。DATO3:數(shù)據(jù)線,數(shù)據(jù)可以從卡傳向主機(jī)也可以從主機(jī)傳向卡。VCC和VSS :電源和地。SPI模式下,SD卡的幾個重
37、要操作命令如表 3-2所列。其中,R1回應(yīng)的數(shù) 據(jù)格式如表3-3所列。表3-2 SPI模式下SD卡部分操作指令命令參數(shù)回應(yīng)描述CMD0(0X00)NONER1復(fù)位SD卡CMD9(0X09)NONER1讀取卡特定數(shù)據(jù)寄存器CMD10(0X0A)NONER1讀取卡標(biāo)志數(shù)據(jù)奇存器CMD16(0X10)塊大小R1設(shè)置塊大小(字節(jié)數(shù))CMD17(0X11)地址R1讀取一個塊的數(shù)據(jù)CMD24(0X18)地址R1寫入一個塊的數(shù)據(jù)CMD41(0X29)NONER1引用命令的前命令CMD55(0X37)NONER1開始卡的初始化CMD59(0X3B)僅最后以為有效R1設(shè)置CRC開啟(1)或關(guān) 閉(0)表3-3
38、SD卡R1回應(yīng)格式SD卡R1回應(yīng)格式BIT7BIT6BIT5BIT4BIT3BIT2BIT1BIT00參數(shù) 錯誤地址錯誤連續(xù)擦 除錯誤命令CRC錯 誤非法 命令擦除 復(fù)位IDLE 狀態(tài)SD卡典型的初始化過程如下:(1)初始化與SD卡連接的硬件條件(MCU的SPI配置,10 口配置);上電延時(>74個CLK);復(fù)位卡(CMD0);(4) 激活卡,內(nèi)部初始化并獲取卡類型(CMD1 (用于MMC卡)、CMD55、CMD41);(5) 查詢OCR,獲取供電狀況(CMD58);(6) 是否使用 CRC(CMD59);(7) 設(shè)置讀寫塊數(shù)據(jù)長度(CMD16);(8) 讀取CSD,獲取存儲卡的其他信
39、息(CMD9);(9) 發(fā)送8CLK后,禁止片選.在SD卡初始化完成后,就可以讀 SD卡讀寫數(shù)據(jù)。SD卡讀取數(shù)據(jù)通過CMD17完成,具體步驟如下:發(fā)送CMD17 ;接收卡響應(yīng)R1;接收數(shù)據(jù)起始令牌0XFE ;丟掉;(6) 8CLK之后禁止片選;SD卡寫數(shù)據(jù)通過CMD24完成,具體步驟如下:(1)發(fā)送 CMD24 ;接收卡響應(yīng)R1 ;接收數(shù)據(jù);接收2個字節(jié)的CRC,如果沒有開啟CRC,這兩個字節(jié)在讀取后可以發(fā)送寫數(shù)據(jù)起始令牌0XFE ;(4)發(fā)送數(shù)據(jù);發(fā)送2字節(jié)的偽CRC;(6) 8CLK之后禁止片選。323 RTC時鐘驅(qū)動STM32F103RBT6內(nèi)帶RTC模塊,它擁有一組連續(xù)運(yùn)行的計數(shù)器,可
40、以通 過適當(dāng)?shù)能浖O(shè)置提供日歷時鐘功能和鬧鈴功能。RTC的驅(qū)動時鐘可以是一個使用外部晶體的32.768kHz的振蕩器,RTC具有一個32位的可編程計數(shù)器,使 用比較寄存器可以進(jìn)行長時間的測量。有一個20位的預(yù)分頻器用于時基時鐘,默認(rèn)情況下時鐘為32.768kHz時,它將產(chǎn)生一個1秒長的時間基準(zhǔn)。通過設(shè)置RTC的相關(guān)寄存器,就可以實(shí)現(xiàn)時鐘和鬧鈴功能了。RTC工作的一般步驟如下:? 使能電源時鐘和備份區(qū)域時鐘, RCC->A PB1ENR|=3vv27。? 取消備份區(qū)寫保護(hù),P WR->CR|=1<< 8。? 復(fù)位備份區(qū)域,開啟外部低速振蕩器,RCC->BDCR|=1
41、<<16。? 選擇 RTC 時鐘,并使能,RCC->BDCR|=1<<0,RCC->BDCR|=1<<15。? 設(shè)置 RTC的分頻,以及配置 RTC時鐘,RTC->PRLH與RTC->PRLL。 ? 更新配置,設(shè)置 RTC中斷,RTC->CRH|=0X01。? 進(jìn)入中斷服務(wù)程序。3.2.4液晶顯示設(shè)計液晶顯示模塊是一個慢顯示器件,所以在執(zhí)行每條指令之前一定要確認(rèn)模塊 的忙標(biāo)志為低電平,表示不忙,否則此指令失效。要顯示字符時要先輸入顯示字 符地址,也就是告訴模塊在哪里顯示字符,表 3-4是DM-1602的內(nèi)部顯示地址。SR行第二行
42、表3-4 DM-1602的內(nèi)部顯示地址比如第二行第一個字符的地址是 40H,那么是否直接寫入40H就可以將光 標(biāo)定位在第二行第一個字符的位置呢?這樣不行,因?yàn)閷懭腼@示地址時要求最高位D7恒定為高電平1所以實(shí)際寫入的數(shù)據(jù)應(yīng)該是01000000B( 40H)+10000000B(80H)=11000000B(C0H)具體流程圖如圖3.2所示開始TI液品勿始化.宇*I取號赫號I収顯小7符站束圖3.2液晶顯示流程圖3.3功能模塊的設(shè)計3.3.1音樂播放功能的設(shè)計要實(shí)現(xiàn)音樂播放功能,需要獲得相應(yīng)的音樂文件數(shù)據(jù),根據(jù)FAT文件的存儲格式并結(jié)合SD卡讀取驅(qū)動,得到相應(yīng)的文件數(shù)據(jù),每次讀取 512個字節(jié)。當(dāng)V
43、S1003已經(jīng)初始化完成并等待接收數(shù)據(jù)(DREQ引腳為高電平)時,將讀到的 數(shù)據(jù)以每次32字節(jié)的速度送入VS1003的RAM中,VS1003會自動去處理這些 數(shù)據(jù)并得到模擬音頻信號。在每次讀取新的音頻文件時,采用文件名比較(只比較前3個字節(jié))的方法 查找存在SD卡中的歌詞文件,如果存在歌詞文件,就將文件數(shù)據(jù)全部復(fù)制到RAM中(超過6144個字節(jié)的部分將丟棄),同時初始化30ms中斷的定時器用 于歌詞顯示的刷新操作。音樂播放功能實(shí)現(xiàn)的具體流程如圖 3.3所示。23圖3.3音樂播放功能的實(shí)現(xiàn)流程可以實(shí)現(xiàn)USB讀卡器的功SD卡讀寫部分。根據(jù)ST官M(fèi)SD_WriteBuffer 函數(shù),用3.3.2 U
44、SB讀卡器STM32F103RBT6 內(nèi)置 1 個 USB 2.0 全速接口,能。該功能的實(shí)現(xiàn)需要2個部分:USB傳輸部分和網(wǎng)提供的例程,USB讀卡器用到2個函數(shù):一個是 于向SD卡寫入數(shù)據(jù),當(dāng)你要 COPY文件到SD卡的時候,就是由這個函數(shù)完 成的;另一個是 MSD_ReadBuffer函數(shù),該函數(shù)用于讀取 SD卡上面的數(shù)據(jù)。下載 ST 官網(wǎng)的例程,移植到本設(shè)計中即可實(shí)現(xiàn)USB 讀卡器功能。第四章 結(jié)論還可以進(jìn)一步利用英蓓特Player 的功能,例如利用 ADC 來調(diào)節(jié)音量、利用幾本系統(tǒng)實(shí)現(xiàn)了簡易 MP3 Player 的基本原型設(shè)計,STM103V100-II 評估板資源來完善和豐富該 M
45、P3Joystick 來選擇歌曲、利用 LCD 來顯示歌曲名、利用個 LED 燈來表示音量大小。如果能完成以上所有相關(guān)設(shè)計,則可以基本熟悉 STM32 處理器的各種應(yīng)用開發(fā)。結(jié)束語本文提出了一種基于 STM32 的 MP3 播放器設(shè)計方案, 并使用 ARM 開發(fā)工 具 RealView MDK 實(shí)現(xiàn)了該方案的原型。盡管該方案無法作為一個通用 MP3 的 方案,但是對于某些音頻需要的工業(yè)控制、 汽車電子、 醫(yī)療電子等方案具有一定 的參考性。本系統(tǒng)也可以嘗試采用更有效的中斷方式,在內(nèi)存中設(shè)置一個環(huán)形的緩沖 區(qū),SPI1從SD卡讀取的MP3文件數(shù)據(jù)存放在其中,當(dāng) VS1003需要數(shù)據(jù)時其 DREQ
46、引腳將產(chǎn)生低電平, 利用其產(chǎn)生中斷, 在中斷服務(wù)程序中從緩沖區(qū)讀取數(shù) 據(jù)送VS1003,直至DREQ引腳恢復(fù)為高電平時退出中斷。限于時間與篇幅的問 題,我將不對上述情況予以實(shí)現(xiàn)。參考文獻(xiàn)1百度百科.MP3 播放器EB/OL . 2010-11-262 薛小鈴,劉志群,賈俊榮單片機(jī)接口模塊應(yīng)用與開發(fā)詳例 M 北京:北京 航空航天大學(xué)出版社, 20103 AMS1117 技術(shù)手冊EB/OL 1 17 , 2010-7-21.4 STM32F103 增強(qiáng)型系列數(shù)據(jù)手冊EB/OL 2009/0513/1405.htm,l 2009-05-13/2011-03-015 王永紅,徐煒,郝立平 STM32
47、系列 ARM Cortex-M3 微控制器原理與實(shí)踐M 北京:北京航天航空大學(xué)出版社,20086 DS18B20 技術(shù)文檔EB/OL http:/www.maxim- 2011-2-15.7 24C02 中文資料EB/OL 2011-3-22.8 ILI9320 手冊EB/OL . 2011-2-15.9 ADS7846 EB/OL 2010-6-10.10 VS1003-MP3/WMA 音頻解碼器 EB/OL df, 2008-08-04.11 張濤,左謹(jǐn)平,馬華玲.FatFs在32位微控制器STM32上的移植J.電子技 術(shù), 2010,(03).12 SD 卡規(guī)范EB/OL 2010-05
48、-05.13 李寧 ARM 開發(fā)工具 RealViewMDK 使用入門 M 北京:北京航空航天大 學(xué)出版社,2008原理圖:附件-亠二.-亠 車 Hrrurt'iADT卜一rix-._J:.”0 : f'Fyy;y:i 訃I刃O LI" m-=PCB:rk.&戲©p "" -n 1 k Qis空0o_de® 審喬淨(jìng)&爲(wèi) 0 咎。一。不 一0。 ,-上4-N1-Jwi飽a;0産-魚2 0 O 0 曲。倉srM<丄一HL幫0 Q60 <0 宜g 0 一 0 mg6里.<3m.oxiZS枸 d亙劭TJ
49、 B112 RiH-z 卩霸ipO型¥r4li協(xié)&*0 L 1 一 - Dhi_ ?m草3,71一亠卜©卜. < 1 ht 1;T外圍電路PCB電路圖29代碼:/* Includes*/#include "stm32f10x_lib.h"#include "hw_config.h"#include "config.h"#include "fat16.h"#include "msd.h"#include "vs1003.h"/* Global define*/u8 Stream_Buffbuffsize;u8 readNextBytes;u32 mp3data_pointer;/* Extern declare*/extern void SetupUART1(void);extern void SetupClock(void);extern void Speake
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025-2030全球光學(xué)透明粘合帶行業(yè)調(diào)研及趨勢分析報告
- 2025合同范本勞務(wù)派遣合同模板書人力資源和企業(yè)新
- 2025用戶服務(wù)合同
- 2025委托律師代理合同范本范文
- 土地轉(zhuǎn)讓居間合同
- 美容師勞動合同書
- 消殺服務(wù)合同范文
- 2025公司用工合同范本
- 戰(zhàn)略合作協(xié)議書合同
- 第1課+古代亞非(教學(xué)設(shè)計)【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 新教科版六年級下冊科學(xué)全冊教案
- 物業(yè)客服管家的培訓(xùn)課件
- 2024年房地產(chǎn)行業(yè)的樓市調(diào)控政策解讀培訓(xùn)
- 《統(tǒng)計學(xué)-基于Python》 課件全套 第1-11章 數(shù)據(jù)與Python語言-時間序列分析和預(yù)測
- 《GMP實(shí)務(wù)教程》 完整全套教學(xué)課件 項(xiàng)目1-14 GMP基礎(chǔ)知識-藥品生產(chǎn)行政檢查
- 裝飾定額子目(河南省)
- 【高速鐵路乘務(wù)工作存在的問題及對策研究9800字】
- 北師大版英語課文同步字帖三年級下冊課文對話原文及翻譯衡水體英語字帖三年級起點(diǎn)
- GB/T 2550-2016氣體焊接設(shè)備焊接、切割和類似作業(yè)用橡膠軟管
- GB/T 21295-2014服裝理化性能的技術(shù)要求
評論
0/150
提交評論