基于單片機(jī)的MP3音樂(lè)播放器設(shè)計(jì)論文
《基于單片機(jī)的MP3音樂(lè)播放器設(shè)計(jì)論文》由會(huì)員分享,可在線(xiàn)閱讀,更多相關(guān)《基于單片機(jī)的MP3音樂(lè)播放器設(shè)計(jì)論文(58頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
畢業(yè)論文 基于單片機(jī)的 MP3播放器設(shè)計(jì) 指導(dǎo)老師 姓 名 學(xué) 號(hào) 系 別 專(zhuān) 業(yè) 申請(qǐng)學(xué)位 V 基于單片機(jī)的MP3音樂(lè)播放器設(shè)計(jì) 摘要:本文在具體分析了STC12C5A60S2單片機(jī)的技術(shù)特點(diǎn)與MP3音樂(lè)播放系統(tǒng)功能需求的基礎(chǔ)上,提出了一種利用單片機(jī)實(shí)現(xiàn)簡(jiǎn)易MP3播放器的方法,同時(shí)給出了具體軟硬件設(shè)計(jì)的方法。本系統(tǒng)利用STC12C5A60S2單片機(jī)作為CPU進(jìn)行總體控制,單片機(jī)通過(guò)FAT32文件系統(tǒng)讀取SD卡的數(shù)據(jù),并傳輸給MP3音頻解碼芯片VS1003進(jìn)行音頻數(shù)據(jù)解碼,實(shí)現(xiàn)歌曲播放功能。通過(guò)控制按鍵,實(shí)現(xiàn)對(duì)歌曲的選擇及音量調(diào)節(jié)。播放的同時(shí),液晶屏上顯示歌曲相關(guān)信息。相關(guān)的硬件脫機(jī)實(shí)驗(yàn)結(jié)果表明,本系統(tǒng)達(dá)到了既定的設(shè)計(jì)目標(biāo)。 關(guān)鍵詞:?jiǎn)纹瑱C(jī);音頻解碼;FAT32 DesignofMP3MusicPlayerBasedonVS1003 Abstract:Based on the detailed analysis of the technical characteristics of STC12C5A60S2 and the needs of MP3 music player system function,a control method of simple MP3 player controlled by single-chip is proposed in this paper, and the hardware and the software design are also given.The STC12C5A60S2 single-chip is used as the whole control core .The single-chip can read SD card data through the FAT32 file system. And then , the data is sent to VS1003 of special MP3 audio decoder to decode the data.Then the music playing function can be achieved ,you can choose songs and the volume by controlling the button, the relevant information will be displayed on the LCD screen while songs are being played.The relevant hardware offline experiment results indicate that this system has achieved the established design goal. Keywords :Single chip microcomputer ; Audio decoding ; FAT32 目 錄 序 言 1 第1章 系統(tǒng)方案 2 1.1 課題研究背景及意義 2 1.2 課題研究現(xiàn)狀 2 1.3 課題要求 3 1.4 方案選擇 3 1.4.1 硬件選擇 3 1.4.2 軟件選擇 5 第2章 硬件電路設(shè)計(jì) 6 2.1 硬件系統(tǒng)總體設(shè)計(jì) 6 2.2 各硬件模塊設(shè)計(jì) 6 2.2.1 微控制器設(shè)計(jì) 6 2.2.2 存儲(chǔ)模塊 10 2.2.3 音頻解碼模塊 11 2.2.4 顯示模塊 15 2.2.5 按鍵電路 17 第3章 系統(tǒng)軟件設(shè)計(jì) 18 3.1 軟件功能概述 18 3.2 主程序設(shè)計(jì) 18 3.3 各子程序模塊設(shè)計(jì) 19 3.3.1 12864液晶顯示程序設(shè)計(jì) 19 3.3.2 SD卡程序設(shè)計(jì) 21 3.3.3 FAT32文件系統(tǒng) 23 3.3.4 VS1003音頻解碼程序設(shè)計(jì) 24 第4章 系統(tǒng)軟硬件調(diào)試 28 4.1 硬件調(diào)試 28 4.1.1 上電前調(diào)試 28 4.1.2 上電后調(diào)試 28 4.2 軟硬件連調(diào) 28 結(jié) 束 語(yǔ) 30 致 謝 31 參 考 文 獻(xiàn) 32 附 錄 33 附錄一 硬件原理圖 33 附錄二 源程序清單 34 附錄三 實(shí)物圖 39 附錄四 元件清單 40 附錄五 中英文文獻(xiàn) 41 圖 表 清 單 圖2-1 系統(tǒng)硬件總體框圖 6 圖2-2 STC12C5A60S2芯片引腳圖 7 圖2-3 STC12C5A60S2單片機(jī)最小系統(tǒng) 10 圖2-4 SD卡接口電路 10 圖2-5 VS1003芯片引腳圖 12 圖2-6 VS1003芯片外圍連接圖 15 圖2-7 12864液晶顯示模塊 15 圖2-8 按鍵電路 17 圖3-1 主程序流程圖 19 圖3-2 12864液晶顯示器初始化程序 20 圖3-3 12864液晶顯示程序 20 圖3-4 SD卡初始化流程圖 21 圖3-5 讀SD卡流程圖 22 圖3-6 寫(xiě)SD卡流程圖 22 圖3-7 VS1003程序流程圖 25 表2-1 SD卡引腳定義 11 表2-2 VS1003引腳定義功能表 13 表2-3 12864模塊外部接口 16 序 言 隨著科技的日益發(fā)展,計(jì)算機(jī)、信息、電子、通信等技術(shù)得到迅速發(fā)展,促使了社會(huì)生產(chǎn)力的提高,也使人們對(duì)生產(chǎn)方式和生活方式產(chǎn)生了日新月異的變化。同時(shí)人們生活水平的提高及對(duì)音樂(lè)的喜愛(ài),對(duì)音樂(lè)播放器的品質(zhì)、功能、品種等提出了越來(lái)越多的要求,表現(xiàn)在對(duì)控制系統(tǒng)性能、可靠性等方面的要求越來(lái)越高。 MP3作為高質(zhì)量音樂(lè)壓縮標(biāo)準(zhǔn),給音頻產(chǎn)業(yè)帶來(lái)了具大的沖擊。MP3技術(shù)使音樂(lè)數(shù)據(jù)壓縮比率大,回放質(zhì)量高。如CD格式的音樂(lè)數(shù)據(jù)壓縮成MP3格式,音效相差無(wú)己,但大小至少可壓縮12倍。由于MP3音樂(lè)的較小數(shù)據(jù)量和近乎完美的播放效果使其在網(wǎng)絡(luò)上傳輸?shù)靡詫?shí)現(xiàn)。近幾年,隨著MP3播放器技術(shù)的發(fā)展,在其選型、設(shè)計(jì)、開(kāi)發(fā)、附加功能和適用領(lǐng)域等方面做了很大的努力,現(xiàn)在MP3播放器具有輕薄、小巧,同時(shí)具有大容量、超長(zhǎng)時(shí)間播放、功能多樣化等優(yōu)點(diǎn)。 在如今MP3播放器競(jìng)爭(zhēng)激烈的市場(chǎng),人們對(duì)MP3的需求也越來(lái)越大,在購(gòu)買(mǎi)時(shí)會(huì)考慮到價(jià)格、性能等方面。因此在本次設(shè)計(jì)中,根據(jù)市場(chǎng)需求進(jìn)行設(shè)計(jì),實(shí)現(xiàn)在聽(tīng)歌的過(guò)程中,需要暫停、切換歌曲,或者查看歌曲名等功能;內(nèi)存中的歌曲是固定的,客戶(hù)可以根據(jù)自己的需求去下載更新。該設(shè)計(jì)系統(tǒng)以單片機(jī)為控制單元,以最低的成本滿(mǎn)足MP3文件控制和顯示的功能。為了方便更換歌曲,以SD卡作為存儲(chǔ)器,最大支持2GB的SD卡,能儲(chǔ)存大約500首歌曲。供電采用5V直流電源供電,相當(dāng)?shù)谋憬?。另外在耳機(jī)模塊設(shè)有兩種孔狀的接口,可以根據(jù)耳機(jī)的粗細(xì)選擇。本設(shè)計(jì)方案采用STC12C5A60S2單片機(jī),芬蘭VLSI公司的VS1003音頻解碼芯片和12864液晶顯示屏制作一個(gè)簡(jiǎn)易的MP3音樂(lè)播放器系統(tǒng)。 第1章 系統(tǒng)方案 1.1 課題研究背景及意義 隨著社會(huì)經(jīng)濟(jì)的發(fā)展,MP3播放器以其小巧的外形、良好的接近CD的音質(zhì)、前衛(wèi)的功能,越來(lái)越受到大眾的喜愛(ài),也成為了業(yè)界的一個(gè)熱門(mén)話(huà)題。由于MP3是數(shù)字化的音樂(lè),而且不僅可以上傳下載MP3格式的文件,也可以是其他格式的電腦文件,這樣的MP3隨身聽(tīng)還可以當(dāng)作一個(gè)小的移動(dòng)存儲(chǔ)設(shè)備來(lái)使用。結(jié)合其特點(diǎn)及實(shí)際播放功能,本次設(shè)計(jì)出一個(gè)簡(jiǎn)單的MP3播放系統(tǒng)。 開(kāi)發(fā)MP3播放器不止是為了在電腦上播放,同時(shí)更多的是能讓MP3播放器能夠直接走入我們的生活,將用數(shù)字音樂(lè)產(chǎn)品來(lái)取代,這是一種技術(shù)革新的體現(xiàn)。更多的數(shù)字音樂(lè)產(chǎn)品將不斷推出,而產(chǎn)品的類(lèi)型也將更加豐富,從可以播放MP3的VCD機(jī),到手表式的MP3播放器,再到支持MP3播放器的手機(jī),數(shù)字音樂(lè)將深入我們的各個(gè)角落[1]。因此MP3播放器的意義不僅在于可以方便地聆聽(tīng)MP3數(shù)字音樂(lè),更在于它促使MP3走向網(wǎng)絡(luò)而直接進(jìn)入人們的生活,它或許將改變我們欣賞音樂(lè)的方式。 本設(shè)計(jì)的意義在于通過(guò)本次設(shè)計(jì)將所學(xué)到的單片機(jī)理論知識(shí)應(yīng)用于生產(chǎn)實(shí)踐,增強(qiáng)自己的實(shí)踐能力。本次設(shè)計(jì)控制簡(jiǎn)單,利用12864液晶顯示屏顯示歌曲,由按鍵控制歌曲播放及音量。在實(shí)現(xiàn)功能的過(guò)程中,對(duì)用到的各種硬件模塊和系統(tǒng)實(shí)現(xiàn)所需的軟件有了更深的了解和認(rèn)識(shí)。 1.2 課題研究現(xiàn)狀 隨著計(jì)算機(jī)技術(shù),微電子技術(shù)和數(shù)字信號(hào)處理技術(shù)的迅速發(fā)展,各種消費(fèi)類(lèi)電子產(chǎn)品朝著集成化和小型化發(fā)展。特別是隨著網(wǎng)絡(luò)多媒體技術(shù)的普及、數(shù)字音頻技術(shù)的快速發(fā)展,以MP3為代表的消費(fèi)類(lèi)電子產(chǎn)品廣泛的應(yīng)用在我們的生活中,數(shù)字音頻技術(shù)得到了長(zhǎng)久發(fā)展。 MP3全稱(chēng)是動(dòng)態(tài)影像專(zhuān)家壓縮標(biāo)準(zhǔn)音頻層面3,是當(dāng)今較流行的一種數(shù)字音頻編碼和有損壓縮格式,它設(shè)計(jì)用來(lái)大幅度降低音頻數(shù)據(jù)量,而對(duì)于大多數(shù)用戶(hù)來(lái)說(shuō)重放的音質(zhì)與最初的不壓縮音頻相比沒(méi)有明顯的下降。它是在1991年由位于德國(guó)埃爾郎根的研究組織Fraunhofer-Gesellschaft的一組工程師發(fā)明和標(biāo)準(zhǔn)化的。MP3就是一種音頻壓縮技術(shù),由于這種壓縮方式的全稱(chēng)叫MPEG Audio Layer3,所以人們把它簡(jiǎn)稱(chēng)為MP3。MP3是利用MPEG Audio Layer3的技術(shù),將音樂(lè)以1:10甚至1:12的壓縮率,壓縮成容量較小的file[1]。能夠在音質(zhì)丟失很小的情況把文件壓縮到更小的程度。而且還非常好的保持了原來(lái)的音質(zhì)。 1.3 課題要求 本系統(tǒng)是根據(jù)VS1003音頻解碼模塊所設(shè)計(jì)的MP3音樂(lè)播放器,音頻文件存儲(chǔ)在SD卡上,通過(guò)文件系統(tǒng)讀取SD扇區(qū),由STC12C5A60S2單片機(jī)讀取數(shù)據(jù)并送到VS1003音頻解碼器模塊輸出。根據(jù)設(shè)計(jì)目的,需達(dá)到以下要求: 1、播放指定目錄的MP3歌曲; 2、通過(guò)按鍵可以隨意切換上下曲、音量加減、暫停和播放; 3、液晶屏顯示SD卡的信息。 1.4 方案選擇 1.4.1 硬件選擇 1、單片機(jī)的選擇 方案一:MUC微處理器控制的種類(lèi)很多,有ATMEL公司生產(chǎn)的AT89XX系列單片機(jī),其中AT89S52為8位的單片機(jī),它是一種低損耗、高性能的CMOS微處理器,片內(nèi)有8K字節(jié)的存儲(chǔ)空間,128字節(jié)RAM、4個(gè)8位并口、1個(gè)全雙工串行口、2個(gè)16位定時(shí)/計(jì)數(shù)器,尋址范圍64K[2]。 方案二:ATMEL公司生產(chǎn)的AVR單片機(jī),它也有很多的特點(diǎn),比如:體積小、集成度高、可靠性好、易于擴(kuò)展、高速度、低功耗、功能強(qiáng);是一款RISC精簡(jiǎn)指令高速8位單片機(jī)。但是其市場(chǎng)價(jià)格較高,且已經(jīng)在MCU市場(chǎng)夾縫中生存,現(xiàn)在已有停產(chǎn)的趨勢(shì)。 方案三:宏晶科技公司生產(chǎn)的STC12C5A60S2單片機(jī),它是一款增強(qiáng)型單片機(jī)。是一款高性能的微處理器,片內(nèi)有60K字節(jié)的存儲(chǔ)空間、1280字節(jié)SRAM、2個(gè)16位定時(shí)/計(jì)數(shù)器,兼容普通51單片機(jī),沒(méi)有定時(shí)器2,單有獨(dú)立波特率發(fā)生器做串行通訊的波特率發(fā)生器,工作頻率是普通51單片機(jī)的10倍左右。 綜合所述,在本設(shè)計(jì)中,考慮到程序生成的HEX文件較大,并且需要較快的執(zhí)行速度,選擇宏晶科技公司生產(chǎn)的STC12C5A60S2單片機(jī)作為微處理控制器。 2、存儲(chǔ)設(shè)備方案的選擇 方案一:CF卡是目前市場(chǎng)上歷史悠久的存儲(chǔ)卡之一,存儲(chǔ)容量大,成本低,兼容性好,這些都是CF卡的優(yōu)點(diǎn),缺點(diǎn)則是體積比較大。 方案二:Infineon和SanDisk公司共同推出的一種全新的小巧的存儲(chǔ)卡產(chǎn)品MMC卡,但是它適用于對(duì)尺寸和電池續(xù)航能力要求很高的手機(jī)以及其他手持便攜設(shè)備。 方案三:SD開(kāi)中文翻譯為安全數(shù)碼卡,是一種基于半導(dǎo)體快閃記憶器的新一代記憶設(shè)備,它被廣泛的用于便攜式裝置上,例如數(shù)碼相機(jī)、個(gè)人數(shù)碼助理(PDA)和多媒體播放器等。SD卡大小猶如一張郵票,重量只有2克,但是卻有高記憶容量、快速數(shù)據(jù)傳輸、極大的靈活性以及很好的安全。 綜合上述,在本設(shè)計(jì)中,考慮到SD卡比較常用,而且有較成熟的讀取方法,所以選擇SD卡作為本系統(tǒng)的存儲(chǔ)設(shè)備。 3、音頻解碼器的選擇 方案一:使用STC12C2052AD單片機(jī)讀取WAV格式音樂(lè),利用PWM功能,把收到的數(shù)據(jù)合成聲波,傳輸給外部音響播放。 方案二:使用專(zhuān)門(mén)的數(shù)字音頻解碼芯片VS1003對(duì)MP3文件進(jìn)行硬件解碼,VS1003可以解碼多種音頻文件格式,而且支持較高比特率的音樂(lè),音質(zhì)好[3]。 綜合上述,方案一只能進(jìn)行軟件解碼,播放格式局限,而方案二支持硬件解碼,音質(zhì)好,集成度高,編程較為簡(jiǎn)單等優(yōu)點(diǎn),所以選擇VS1003作為解碼芯片。 1.4.2 軟件選擇 Keil uVision IDE是一個(gè)標(biāo)準(zhǔn)的Windows應(yīng)用程序,集成了C51編譯器、A51匯編器、L51連接器、實(shí)時(shí)操作系統(tǒng)、項(xiàng)目管理器及調(diào)試器等,可以完成編輯、編譯、鏈接、調(diào)試及仿真等整個(gè)開(kāi)發(fā)流程,可以用IDE編譯C或匯編源文件。 uVision采用dScope51作調(diào)試器,該調(diào)試器支持MON51及系統(tǒng)模擬兩種方式,高度功能強(qiáng)大。dScope51是一個(gè)源級(jí)調(diào)試器和模擬器,可以調(diào)試C51編譯器、A51匯編器、PL/M-51編譯器及ASM-51匯編器產(chǎn)生的程序。根據(jù)Keil uVision IDE優(yōu)點(diǎn),本次設(shè)計(jì)選擇Keil uVision4編輯。 第2章 硬件電路設(shè)計(jì) 2.1 硬件系統(tǒng)總體設(shè)計(jì) 硬件系統(tǒng)由微控制器、解碼模塊、液晶顯示模塊、按鍵控制模塊和存儲(chǔ)模塊組成。其系統(tǒng)硬件總框圖如圖2-1所示。在該硬件系統(tǒng)設(shè)計(jì)中,采用宏晶公司生產(chǎn)的STC12C5A60S2做為主控MCU。單片機(jī)通過(guò)SD卡存儲(chǔ)器實(shí)現(xiàn)對(duì)硬盤(pán)的管理和對(duì)MP3歌曲、文檔等數(shù)據(jù)信息的存儲(chǔ)。接通電源后,單片機(jī)讀取SD卡內(nèi)信息并送入VS1003芯片中,通過(guò)VS1003芯片解碼,實(shí)現(xiàn)歌曲播放;在按鍵的控制下,通過(guò)LCD12864中菜單選項(xiàng)的選擇,對(duì)歌曲及音量控制等功能。 圖2-1 系統(tǒng)硬件總體框圖 2.2 各硬件模塊設(shè)計(jì) 2.2.1 微控制器設(shè)計(jì) 單片機(jī)是微型計(jì)算機(jī)的一個(gè)重要分支。它使計(jì)算機(jī)從海量數(shù)值計(jì)算進(jìn)入智能控制領(lǐng)域,并由此開(kāi)創(chuàng)了工業(yè)控制的新局面。從此,計(jì)算機(jī)技術(shù)在兩個(gè)重要的領(lǐng)域——通用計(jì)算機(jī)領(lǐng)域和微控制器領(lǐng)域比翼齊飛,并逐漸融入人們的日常生活。 將運(yùn)算器、控制器、存儲(chǔ)器和各種輸入/輸出接口等計(jì)算機(jī)的主要部件集成在一塊芯片上,就能得到一個(gè)單芯片的微型計(jì)算機(jī)。它雖然只是一個(gè)芯片,但在組成和功能上已經(jīng)具有了計(jì)算機(jī)系統(tǒng)的特點(diǎn),因此稱(chēng)之為單片微型計(jì)算機(jī)(Single-Chip Microcomputer),簡(jiǎn)稱(chēng)單片機(jī)[3]。由于單片機(jī)的設(shè)計(jì)通常是面向控制、嵌入對(duì)象體系中的,有別于通陽(yáng)的微型計(jì)算機(jī),因此又稱(chēng)為微控制器(Micro-Controller)、嵌入式微控制器(Embedded-Micr-Controller)。 在本次設(shè)計(jì)中采用由宏晶公司生產(chǎn)的芯片STC12C5A60S2芯片作為主控的MCU,完成對(duì)整個(gè)MP3系統(tǒng)的控制。其芯片如圖2-2所示: 圖2-2 STC12C5A60S2 芯片引腳圖 1、選用STC12C5A60S2芯片的優(yōu)越性 采用STC12C5A60S2芯片有以下原因: (1) 1STC12C5A60S2單片機(jī)是AVR單片機(jī)家族中的高性能單片機(jī),其可靠性更高,速度更快,功耗更低等,有效地減緩了系統(tǒng)的功耗和處理速度之間的矛盾; (2) 由于解碼芯片VS1003采用SPI 接口,而STC12C5A60S2單片機(jī)是一款帶有串行外圍設(shè)備SPI 接口的單片機(jī),使用更加便捷; (3) STC12C5A60S2單片機(jī)有整套的開(kāi)發(fā)工具,包括C語(yǔ)言編譯器、宏匯編語(yǔ)言、程序調(diào)試器、仿真器和評(píng)估板。 2、STC12C5A60S2芯片的主要特點(diǎn) (1) 增強(qiáng)型8501CPU,1T,單時(shí)鐘/機(jī)器周期,指令代碼完全兼容傳統(tǒng)單片機(jī); (2) 工作電壓:3.3V-5V; (3) 工作頻率范圍:0-35MHZ,相當(dāng)于普通8051的0-420MHZ; (4) 用戶(hù)應(yīng)用程序空間:64K; (5) 片上集成1280字節(jié)RAM; (6) ISP(在系統(tǒng)課編程)/IAP(在應(yīng)用可編程),無(wú)需專(zhuān)用編程器,無(wú)需專(zhuān)用仿真器可 通過(guò)串口(P3.0/P3.1)直接下載用戶(hù)程序,數(shù)秒即可完成; (7) 有EEPROM功能; (8) 內(nèi)部集成MAX810專(zhuān)用復(fù)位電路; (9) 共4個(gè)16位定時(shí)器; (10)外部中斷I/O口6路; (11)A/D轉(zhuǎn)換,10位精度ADC,共8路,轉(zhuǎn)換速度可達(dá)250K/S; (12)新增支持上升中斷的PCA模塊; (13)通用雙全工異步串行口(UART)[4]。 3、STC12C5A60S2芯片的引腳說(shuō)明 (1) VCC:40腳,供電電壓,一般接+5V。 (2) GND:20腳,接工作地。 (3) P0口: 1-8腳,P0口是一個(gè)8位漏極開(kāi)路的雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫(xiě)“1”時(shí),引腳用作高電阻抗輸入。當(dāng)訪(fǎng)問(wèn)外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口也被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0具有內(nèi)部上拉電阻。在flash編程時(shí),P0口也用來(lái)接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需要外部加上拉電阻,一般上拉電阻選4.7K~10K為宜。 (4) P1口:32-39腳,P1口是一個(gè)內(nèi)部具有上拉電阻的8位雙向I/O口,P1口緩沖器能接收4個(gè)TTL門(mén)電流。P1端口寫(xiě)入“1”后,被內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流。 (5) P2口:20-27腳,P2口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O口,P2輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。P2端口寫(xiě)入“1”后,內(nèi)部上拉電阻把端口拉高,此時(shí)可以作為輸入口使用。在訪(fǎng)問(wèn)外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器(例如執(zhí)行MOVX@DPTR)時(shí),P2口送出高八位地址。在使用8位地址(MOVX@RI)訪(fǎng)問(wèn)外部程序存儲(chǔ)器時(shí),P2口輸出P2鎖存器的內(nèi)容。在flash編程和校驗(yàn)時(shí),P2口也接收高8位地址字節(jié)和一些控制信號(hào)。 (6) P3口:10-17腳,P3口是一個(gè)具有內(nèi)部上拉電阻的8位雙向I/O,P3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL邏輯電平。 (7) RESET:9腳,復(fù)位輸入端。當(dāng)振蕩器復(fù)位器件時(shí),要保持RST腳兩個(gè)機(jī)器周期的高電平時(shí)間。 (8) ALE/:30腳,當(dāng)訪(fǎng)問(wèn)外部程序存儲(chǔ)器時(shí),地址鎖存允許的輸出電平用于鎖存地址的低位字節(jié)。在flash編程期間,此引腳用于輸入編程脈沖。在平時(shí),ALE端以不變的頻率周期輸出正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此他可用作對(duì)外部暑促的脈沖或用于定時(shí)目的。 (9) PSEN:29腳,外部程序存儲(chǔ)器的選通信號(hào)。 (10) /VP:31腳,訪(fǎng)問(wèn)外部程序存儲(chǔ)器控制信號(hào)。當(dāng)為低電平時(shí),則讀取外部程序存儲(chǔ)器;端為高電平時(shí),則讀取內(nèi)部程序存儲(chǔ)器。 (11) XTAL1:19腳,振蕩器反相放大器和內(nèi)部時(shí)鐘發(fā)生電路的輸入端。如采用外部時(shí)鐘源時(shí),XTAL1為輸入端。 (12)XATL2:18腳,振蕩器反相放大器的輸出端。如采用外部時(shí)鐘源時(shí),XATL2應(yīng)懸空不接[4]。 4、單片機(jī)的最小系統(tǒng) 所謂單片機(jī)最小系統(tǒng)是指能維持單片機(jī)運(yùn)行的最簡(jiǎn)單配置系統(tǒng)。最小系統(tǒng)包括晶體振蕩電路 、復(fù)位開(kāi)關(guān)、接插口和電源部分,本系統(tǒng)單片機(jī)采用STC12C5A60S2或其兼容系列,如圖2-3采用40MHZ高精度的晶振,以獲得較穩(wěn)定的時(shí)鐘頻率,減小測(cè)量誤差。 圖2-3 STC12C5A60S2 單片機(jī)最小系統(tǒng) 2.2.2 存儲(chǔ)模塊 SD卡中文翻譯為安全數(shù)碼卡,其最大的特點(diǎn)就是通過(guò)加密功能,可以保證數(shù)據(jù)資料的安全保密。采用單片機(jī)對(duì)SD卡進(jìn)行讀寫(xiě)時(shí)一般采用SPI模式,可用不同的初始化使SD卡工作于SD或SPI模式[5]。 本設(shè)計(jì)中,音頻數(shù)據(jù)MP3以SD卡為載體,所以設(shè)計(jì)電路時(shí)含有讀取SD卡模塊,SD卡模塊的接口電路如2-4所示。 圖2-4 SD卡接口電路 SD卡的驅(qū)動(dòng)有兩種模式,即SD模式與SPI模式。在用單片機(jī)對(duì)SD卡進(jìn)行驅(qū)動(dòng)的時(shí)候,通常使用SPI模式,一方面是因?yàn)镾PI模式接口與操作方法比較簡(jiǎn)單,易于實(shí)現(xiàn);另一方面是因?yàn)楸驹O(shè)計(jì)操作的數(shù)據(jù)量不是很大,速度不需要很快。SD模式操作起來(lái)比較復(fù)雜。SD卡工作在SPI模式下時(shí),只需要4根信號(hào)線(xiàn),即CS片選、DIN數(shù)據(jù)輸入、CLK時(shí)鐘、DOUT數(shù)據(jù)輸出[5]。SD卡在兩種模式下引腳定義如表2-1所示。 表2-1 SD卡引腳定義 針 腳 SD模式 針 腳 SPI模式 名稱(chēng) 類(lèi)型 描述 名稱(chēng) 類(lèi)型 描述 1 CD DAT3 I/O/PP 卡監(jiān)測(cè)數(shù)據(jù)位 3 1 CS I 片選(負(fù)有效) 2 CMD PP 命令/回復(fù) 2 DI I 數(shù)據(jù)輸入 3 Vss S 地 3 Vss S 地 4 Vcc S 供電電壓 4 Vcc S 供電電壓 5 CLK I 時(shí)鐘 5 CLK I 時(shí)鐘 6 Css2 S 地 6 Vss2 S 地 7 DAT0 I/O/PP 數(shù)據(jù)位 0 7 DO O 數(shù)據(jù)輸出 8 DAT1 I/O/PP 數(shù)據(jù)位 1 8 RSV -- 9 DAT2 I/O/PP 數(shù)據(jù)位 2 9 RSV -- 2.2.3 音頻解碼模塊 在解碼模塊中,采用VS1003芯片進(jìn)行解碼,如下所示。 1、VS1003功能簡(jiǎn)介 (1) VS1003 是一個(gè)單片MP3/WMA/MIDI音頻解碼器和ADPCM編碼器。它包含一個(gè)高性能,自主產(chǎn)權(quán)的低功耗DSP 處理器核VS_DSP4,工作數(shù)據(jù)存儲(chǔ)器,為用戶(hù)應(yīng)用提供5KB 的指令RAM 和0.5KB 的數(shù)據(jù)RAM。串行的控制和數(shù)據(jù)接口,4 個(gè)常規(guī)用途的I/O 口,一個(gè)UART,也有一個(gè)高品質(zhì)可變采樣率的ADC和立體聲DAC,還有一個(gè)耳機(jī)放大器和地線(xiàn)緩沖器。 (2) VS1003 通過(guò)一個(gè)串行接口來(lái)接收輸入的比特流,它可以作為一個(gè)系統(tǒng)的從機(jī)。輸入的比特流被解碼,然后通過(guò)一個(gè)數(shù)字音量控制器到達(dá)一個(gè)18 位過(guò)采樣多位ε-Δ DAC,通過(guò)串行總線(xiàn)控制解碼器。除了基本的解碼,在用戶(hù)RAM 中它還可以做其他特殊應(yīng)用,例如DSP 音效處理。 2、VS1003芯片特性 (1)能解碼 MPEG 1 和MPEG2 音頻層 III(CBR+VBR+ABR)、WMA 4.0/4.1/7/8/9 5-384kbps 所有流文件、WAV(PCM+IMAAD-PCM)、產(chǎn)生MIDI/SP-MIDI 文件; (2) 對(duì)話(huà)筒輸入或線(xiàn)路輸入的音頻信號(hào)進(jìn)行IMAADPCMM 編碼; (3) 支持 MP3 和 WAVV 流; (4) 高低音控制; (5) 單時(shí)鐘 12-13MHz; (6) 內(nèi)部 PLLL 鎖相環(huán)時(shí)鐘倍頻器; (7) 低功耗; (8) 內(nèi)含高性能片上立體聲數(shù)模轉(zhuǎn)換器,兩聲道間無(wú)相位差; (9) 含能驅(qū)動(dòng) 30 歐負(fù)載的耳機(jī)驅(qū)動(dòng)器; (10)模擬,數(shù)字,I/O 單獨(dú)供電; (11)為用戶(hù)代碼和數(shù)據(jù)準(zhǔn)備的5.5KB 片上 RAM; (12)串行的控制/數(shù)據(jù)接口; (13)可被用作微處理器的從機(jī); (14)特殊應(yīng)用的 SPI Flash 引導(dǎo); (15)供調(diào)試用途的 UART 接口; (16)新功能可以通過(guò)軟件和4 GPIO 添加[6]。 3、VS1003芯片引腳圖 圖2-5 VS1003解碼芯片引腳圖 4、VS1003芯片引腳功能定義 表2-2 VS1003引腳定義功能表 管腳名稱(chēng) 管腳編號(hào) 管腳類(lèi)型 管腳功能 MICP 1 AI 同相差分話(huà)筒輸入,自偏壓 MICN 2 AI 反相差分話(huà)筒輸入,自偏壓 XRESET 3 DI 低電平有效,異步復(fù)位端 DGND0 4 DGND 處理器核與I/O地 CVDD0 5 CPWR 處理核 電源 IOVDD0 6 IOPWR I/O電源 CVDD1 7 CPEW 處理核 電源 DREQ 8 DO 數(shù)據(jù)請(qǐng)求,輸入總線(xiàn) GPIO2/DCLK1 9 DIO 通用I/O2/串行數(shù)據(jù)總線(xiàn)時(shí)鐘 GPIO3/SDATA1 10 DIO 通用I/O3/串行數(shù)據(jù)總線(xiàn)數(shù)據(jù) XDCS/BSYNC1 13 DI 數(shù)據(jù)片選端/字節(jié)同步 IOVDD1 14 IOPWR I/O電源 VCO 15 DO 時(shí)鐘壓控振蕩器VCO輸出 DGND1 16 DGND 處理核與I/O地 XTALO 17 AO 晶振輸出 XTALI 18 AI 晶振輸入 IOVDD2 19 IOPWR I/O 電源 DGND2 20 DGND 處理器核與I/O 地 DGND3 21 DGND 處理器核與I/O 地 DGND4 22 DGND 處理器核與I/O 地 XCS 23 DI 片選輸入,低電平有效 CVDD2 24 CPWR 處理器核電源 RX 26 DI UART接收口,不用時(shí)接IOVDD TX 27 DO UART發(fā)送口 管腳名稱(chēng) 管腳編號(hào) 管腳類(lèi)型 管腳功能 SCLK 28 DI 串行總線(xiàn)的時(shí)鐘 SI 29 DI 串行輸入 SO 30 DO3 串行輸出 CVDD3 31 CPWR 處理器核電源 TEST 32 DI 保留做測(cè)試,連接至IOVDD GPIO0/ SPIBOOT 33 DIO 通用I/O0 /SPIBOOT,使用100K 下拉電阻2 GPIO1 34 DIO 通用I/O1 AGND0 37 APWR 模擬地,低噪聲參考地 AVDD0 38 APWR 模擬電源 RIGHT 39 AO 右聲道輸出 AGND1 40 APWR 模擬地 AGND2 41 APWR 模擬地 GBUF 42 AO 公共地緩沖器 AVDD1 43 APWR 模擬電源 RCAP 44 AIO 基準(zhǔn)濾波電容 AVDD2 45 APWR 模擬電源 LEFT 46 AO 左聲道輸出 AGND3 47 APWR 模擬地 LINE IN 48 AI 線(xiàn)路輸入 5、解碼模塊連接圖 如圖2-6所示,解碼芯片VS1003與單片機(jī)連接的引腳有XRST、MISO、MOSI、SCLK、DREQ、XCS、XDCS, 振蕩電路由晶振XT2和電容C17、C18、電阻R12構(gòu)成,選出12.288Hz的振蕩頻率,為解碼芯片VS1003提供工作頻率,且VS1003可以直接驅(qū)動(dòng)32 歐姆的耳機(jī),如圖引腳38、41、46分別與雙聲道插孔連接,直接驅(qū)動(dòng)耳機(jī)。 圖2-6 VS1003解碼模塊連接圖 2.2.4 顯示模塊 系統(tǒng)顯示采用12864顯示模塊,顯示SD卡的信息。該設(shè)計(jì)需要顯示歌曲名字,則選擇帶中文的液晶顯示,如圖2-7所示。帶中文字庫(kù)的128X64 是一種具有4 位/ 8位并行、2 線(xiàn)或3線(xiàn)串行多種接口方式,內(nèi)部含有國(guó)標(biāo)一級(jí)、二級(jí)簡(jiǎn)體中文字庫(kù)的點(diǎn)陣圖形液晶顯示模塊;其顯示分辨率為12864 ,內(nèi)置8192個(gè)16 *16點(diǎn)漢字,和128個(gè)16*8點(diǎn)ASCII 字符集。利用該模塊靈活的接口方式和簡(jiǎn)單、方便的操作指令,可構(gòu)成全中文人機(jī)交互圖形界面。可以顯示84行1616點(diǎn)陣的漢字,也可完成圖形顯示[7]。低電壓低功耗是其又一顯著特點(diǎn)。由該模塊構(gòu)成的液晶顯示方案與同類(lèi)型的圖形點(diǎn)陣液晶顯示模塊相比,不論硬件電路結(jié)構(gòu)或顯示程序都要簡(jiǎn)潔得多,且該模塊的價(jià)格也略低于相同點(diǎn)陣的圖形液晶模塊。 圖2-7 12864液晶顯示模塊 LCD12864的管腳共有20個(gè),顯示電路由單片機(jī)P0及P2.5-2.7端控制。LCD的電源共有2組,一組是用于驅(qū)動(dòng)LCD顯示,另一組用于背光顯示??蓪⑦@兩組連再一起或者背光電源省略。另外有個(gè)輸入管腳V0需要接入LCD調(diào)整電壓來(lái)調(diào)節(jié)對(duì)比度。對(duì)比度過(guò)高于或過(guò)低均會(huì)使屏幕無(wú)法正常顯示。它可接至10K-20K電位器的調(diào)整端,電位器兩端分別接至VDD與VEE。目前市場(chǎng)上某些LCD12864的對(duì)比度可由單片機(jī)操作其寄存器調(diào)節(jié),可根據(jù)不同的條件進(jìn)行選擇。 1、12864模塊外部接口說(shuō)明 表2-3 12864模塊外部接口 管腳號(hào) 名稱(chēng) LEVE 管腳功能描述 1 VSS 0V 電源地 2 VDD 5.0V 電源電壓 3 V0 -5.0V-(-13V) 液晶顯示器驅(qū)動(dòng)電壓 4 D/I H/L D/I=“H”表示DB7-DB0為顯示數(shù)據(jù) D/I=“L”表示DB7-DB0為顯示指令數(shù)據(jù) 5 R/W H/L R/W=“H”,E=“H”數(shù)據(jù)被讀到DB7-DB0 R/W=“L”,E=“H→L”,DB7-DB0的數(shù)據(jù)寫(xiě)到IR或DR 6 E H 使能信號(hào): R/W=“L”,E信號(hào)下降沿鎖存DB7-DB0 R/W=“H”,E=“H”,DDRAM數(shù)據(jù)讀到DB7-DB0 7-14 DB0-DB7 H/L 數(shù)據(jù)總線(xiàn) 15 CS1 H 選擇IC1,即選擇前(左)64列 16 CS2 H 選擇IC2,即選擇后(右)64列 17 /RST H,H-L 復(fù)位控制信號(hào),RST=0有效 18 VOUT -9.0V 內(nèi)部負(fù)壓發(fā)生器輸出電壓端 19 LEDA 5.0V LED背光電源正極 20 LEDK 0V LED背光電源負(fù)極 2、基本特征: (1) 低電源電壓(VDD:+3.0-- +5.5V); (2) 顯示分辨率:12864點(diǎn); (3) 內(nèi)置漢字字庫(kù),提供8192個(gè)1616點(diǎn)陣漢字(簡(jiǎn)繁體可選); (4) 內(nèi)置128個(gè)168點(diǎn)陣字符; (5) 2MHZ時(shí)鐘頻率; (6) 顯示方式:STN、半透、正顯; (7) 驅(qū)動(dòng)方式:1/32DUTY,1/5BIAS; (8) 背光方式:側(cè)部高亮白色 LED,功耗僅為普通 LED的1/5—1/10; (9) 通訊方式:串行、并口可選; (10)內(nèi)置DC-DC轉(zhuǎn)換電路,無(wú)需外加負(fù)壓; (11)無(wú)需片選信號(hào),簡(jiǎn)化軟件設(shè)計(jì); (12) 工作溫度:0℃- +55℃ ,存儲(chǔ)溫度:- 20℃- +60℃[8] 。 2.2.5 按鍵電路 按鍵部分如圖2-8所示,主要有五個(gè)按鍵,分別與單片機(jī)的P2.0-P2.4相接,實(shí)現(xiàn)對(duì)液晶屏菜單的選擇。按鍵1是切換上一首歌曲,按鍵2是切換下一首歌曲,按鍵3是音量加,按鍵4是音量減,按鍵5是暫停。 圖2-8 按鍵電路 第3章 系統(tǒng)軟件設(shè)計(jì) 3.1 軟件功能概述 本系統(tǒng)是基于STC12C5A60S2單片機(jī)為核心模塊,音頻文件存儲(chǔ)在SD卡上,SD卡工作在SPI模式下的讀寫(xiě)驅(qū)動(dòng),通過(guò)FAT32文件系統(tǒng)的移植,讀取SD卡信息,由單片機(jī)通過(guò)SPI通信在SD卡和VS1003之間進(jìn)行數(shù)據(jù)傳輸,來(lái)達(dá)到歌曲的播放。 3.2 主程序設(shè)計(jì) 本系統(tǒng)是基于STC12C5A60S2單片機(jī)為核心模塊, 系統(tǒng)啟動(dòng)后,先初始化硬件模塊。由單片機(jī)通過(guò)FAT32文件系統(tǒng)接口讀取SD卡的一些基本信息,如容量、扇區(qū)大小、FAT 表以及根目錄所在的起始扇區(qū)等。通過(guò)這些信息就可以找出SD卡是否有可以播放的音樂(lè)文件。若有,單片機(jī)通過(guò)SPI總線(xiàn)方式讀出音頻信息,并將歌曲的碼流信息送入到VS1003芯片中,通過(guò)VS1003解碼芯片進(jìn)行音頻數(shù)據(jù)解碼,實(shí)現(xiàn)MP3歌曲的播放功能[9]。同時(shí)通過(guò)按鍵掃描,判斷按鍵是按下,從而進(jìn)行歌曲切換等功能。該系統(tǒng)主程序流程圖如圖3-1所示。 圖3-1 主程序流程圖 3.3 各子程序模塊設(shè)計(jì) 3.3.1 12864液晶顯示程序設(shè)計(jì) 本系統(tǒng)液晶模塊采用SPI協(xié)議與單片機(jī)進(jìn)行數(shù)據(jù)交換,程序設(shè)計(jì)時(shí),先進(jìn)行正確的初始化,如圖3-2所示。顯示RAM提供642字節(jié)的空間,最多可以控制4行16字的中文字型顯示。 圖3-2 12864液晶顯示器初始化程序 液晶初始化正確后,顯示器顯示中文字幕。主要包括兩部分,一部分是給液晶寫(xiě)指令,另一部分是給液晶寫(xiě)數(shù)據(jù),則可以構(gòu)造出顯示子程序,如圖3-3所示。由于液晶內(nèi)部自帶漢字模塊,只需發(fā)送漢字對(duì)應(yīng)的代碼就可以實(shí)現(xiàn)漢字的顯示,其代碼可以在ST7920模塊的資料中查找。 圖3-3 12864液晶顯示程序 使用LCD12864時(shí),需要對(duì)其寄存器以及功能器件有所了解。寄存器包括指令寄存器以及數(shù)據(jù)寄存器,通過(guò)對(duì)這兩個(gè)寄存器的操作可改變LCD的顯示方式和顯示內(nèi)容。 同樣重要的還有液晶的指令系統(tǒng)與時(shí)序,只有了解指令系統(tǒng)才能正確設(shè)置讀與寫(xiě)操作,才能正確的設(shè)置行地址、列地址。而時(shí)序設(shè)置直接決定了顯示能否成功。不同的晶振需要不同的延時(shí)來(lái)保證時(shí)序的正確[10]。相關(guān)的指令代碼與時(shí)序圖可參照使用說(shuō)明書(shū)。 3.3.2 SD卡程序設(shè)計(jì) SD卡程序用于MP3文件的讀取,SD卡與單片機(jī)采用SPI協(xié)議進(jìn)行數(shù)據(jù)交換,用軟件來(lái)模擬SPI總線(xiàn)的具體方法是:將SCK的初始狀態(tài)置0,允許接收后(即CS置0)將SCK置1,這樣單片機(jī)由DI線(xiàn)輸出1位數(shù)據(jù)到SD卡;接著再將SCK置0,單片機(jī)由DO線(xiàn)從SD卡讀1位數(shù)據(jù)[11]。至此,模擬1位數(shù)據(jù)輸入輸出完成。此后再將SCK置1,依次循環(huán)8次,完成SPI總線(xiàn)1字節(jié)數(shù)據(jù)的輸入輸出。 1、SD卡初始化 SD卡的初始化流程如圖3-4所示。SD卡上電延時(shí)74個(gè)時(shí)鐘周期后,單片機(jī)向SD卡發(fā)送復(fù)位命令CMD0,使SD卡進(jìn)入SPI模式。之后循環(huán)發(fā)送激活SD卡指令CMD1,直到接收到SD卡響應(yīng)的第0位為0。 圖3-4 SD卡初始化流程圖 2、SD卡數(shù)據(jù)塊讀寫(xiě) 完成SD卡的初始化后,就可以對(duì)SD卡進(jìn)行讀寫(xiě)操作。讀寫(xiě)操作都是通過(guò)指令來(lái)完成的:單塊寫(xiě)命令CMD24,多塊寫(xiě)命令CMD25,單塊讀命令CMD17,多塊讀命令CMD18。單塊讀寫(xiě)時(shí),數(shù)據(jù)塊的長(zhǎng)度為512字節(jié),多塊讀寫(xiě)時(shí)SD卡收到1個(gè)停止命令CMD12后停止讀寫(xiě)。單塊讀、寫(xiě)SD卡的軟件流程如圖3-5、3-6所示。 圖3-5 讀SD卡流程圖 圖3-6 寫(xiě)SD卡流程圖 SD卡擁有SD和SPI兩種工作模式,相對(duì)于SD模式,SPI(同步串行傳輸)模式可以簡(jiǎn)化主機(jī)設(shè)計(jì),降低成本。并且大部分微處理器都有SPI模式,即使沒(méi)有SPI模式的微處理器,也可以通過(guò)軟件來(lái)模擬SPI。 3、SPI通信協(xié)議概述 SPI的原意是串行外圍設(shè)備接口,是MOTOROLA首先在其MC68HCXX系列處理器上定義的。SPI接口主要應(yīng)用在EEPROM,F(xiàn)LASH,實(shí)時(shí)時(shí)鐘,AD轉(zhuǎn)換器,還有數(shù)字信號(hào)處理器和數(shù)字信號(hào)解碼器之間。SPI是一種高速的,全雙工,同步的通信總線(xiàn),并且在芯片的管腳上只占用四根線(xiàn),節(jié)約了芯片的管腳,同時(shí)為PCB的布局上節(jié)省空間,提供方便,正是出于這種簡(jiǎn)單易用的特性,現(xiàn)在越來(lái)越多的芯片集成了這種通信協(xié)議。 SPI總線(xiàn)系統(tǒng)是一種同步串行外設(shè)接口,它可以使MCU與各種外圍設(shè)備以串行方式進(jìn)行通信以交換信息。外圍設(shè)置FLASH RAM、網(wǎng)絡(luò)控制器、LCD顯示驅(qū)動(dòng)器、A/D轉(zhuǎn)換器和MUC等[11]。SPI總線(xiàn)系統(tǒng)可直接與各個(gè)廠(chǎng)家生產(chǎn)的多種標(biāo)準(zhǔn)外圍器件直接接口,該接口一般使用4條線(xiàn):串行時(shí)鐘線(xiàn)(SCK)、主機(jī)輸入/輸出數(shù)據(jù)線(xiàn)MISO、主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI和低電平有效的從機(jī)選擇線(xiàn)SS(有的SPI接口芯片帶有中斷信號(hào)線(xiàn)INT,有的SPI接口芯片沒(méi)有主機(jī)輸出/從機(jī)輸入數(shù)據(jù)線(xiàn)MOSI)。 3.3.3 FAT32文件系統(tǒng) 1、文件系統(tǒng) 文件系統(tǒng)為用戶(hù)與存儲(chǔ)設(shè)備的底層硬件交互抽象出來(lái)的一種操作借口,它是負(fù)責(zé)為用戶(hù)建立文件,存入、讀取、修改、轉(zhuǎn)儲(chǔ)文件,控制文件的讀取,給用戶(hù)提供了一種機(jī)制,方便用戶(hù)很簡(jiǎn)單的操作文件以及快速簡(jiǎn)潔的找到磁盤(pán)上的位置,而且不用理會(huì)底層實(shí)現(xiàn)的復(fù)雜機(jī)制。 如果有了文件系統(tǒng),就可以直接將數(shù)據(jù)組織為一個(gè)文件,給這些數(shù)據(jù)起一個(gè)名字,通過(guò)這個(gè)名字就可以訪(fǎng)問(wèn)這些數(shù)據(jù),文件系統(tǒng)會(huì)根據(jù)文件名為我們找到數(shù)據(jù)在磁盤(pán)中的位置。 2、FAT32文件 (1) MBR區(qū) MBR,即主引導(dǎo)記錄,有時(shí)也稱(chēng)主引導(dǎo)扇區(qū)。位于整個(gè)硬盤(pán)的0柱面0磁頭1扇區(qū)(可看作硬盤(pán)的第一個(gè)扇區(qū))。MBR不隨操作系統(tǒng)的不同而不同,意即不同的操作系統(tǒng)可能會(huì)存在相同的MBR,即使不同,MBR也會(huì)夾帶操作系統(tǒng)的性質(zhì)。具有公共引導(dǎo)的特性。 (2) DBR區(qū) DBR區(qū)即操作系統(tǒng)引導(dǎo)記錄區(qū)的意思,通常占用分區(qū)的第0扇區(qū)共512個(gè)字節(jié)(特殊情況也要占用其他保留扇區(qū))。在這512個(gè)字節(jié)中,其實(shí)又是由跳轉(zhuǎn)指令,廠(chǎng)商標(biāo)志和操作系統(tǒng)版本號(hào),BPB,擴(kuò)展BPB,OS引導(dǎo)程序,結(jié)束標(biāo)志幾部分組成。 (3) FAT Allocation Table(文件分配表) 它的作用是記錄硬盤(pán)中有關(guān)文件如何被分散存儲(chǔ)在不同扇區(qū)的信息。通FAT16相比,F(xiàn)AT32主要具有以下特點(diǎn): ①同F(xiàn)AT16相比FAT32最大的優(yōu)點(diǎn)是可以支持的磁盤(pán)大小2TB(2047GB);而基于FAT16的Win2000支持的分區(qū)最大為4GB。 ②由于采用了更小的簇,F(xiàn)AT32文件系統(tǒng)可以更有效地保存信息。如兩個(gè)分區(qū)大小都為2GB,一個(gè)分區(qū)采用了FAT16文件系統(tǒng),另一個(gè)分區(qū)采用了FAT32文件系統(tǒng)。采用FAT16的分區(qū)的簇大小為32KB,而FAT32分區(qū)的簇只有4KB的大小。這樣FAT32就比FAT16的存儲(chǔ)效率要高很多,通常情況下可以提高15%。 ③ FAT32文件系統(tǒng)可以重新定位根目錄和使用FAT的備份副本。另外FAT32分區(qū)的啟用記錄被包含在一個(gè)含有關(guān)鍵數(shù)據(jù)的結(jié)構(gòu)中,減少了計(jì)算機(jī)系統(tǒng)崩潰的可能性。 (4) 保留扇區(qū) FAT32中的保留扇區(qū)除了磁盤(pán)總第0扇區(qū)用作DBR,總第2扇區(qū)或總第0xC用作0S引導(dǎo)代碼擴(kuò)轉(zhuǎn)部分外,其余扇區(qū)都不參與操作系統(tǒng)管理與磁盤(pán)數(shù)據(jù)管理,通常情況下是沒(méi)用的。操作系統(tǒng)之所以在FAT32中設(shè)置保留扇區(qū),是為了對(duì)DBR作備份或留待以后升級(jí)時(shí)用。FAT32中,DBR偏移0x34占2字節(jié)的數(shù)據(jù)指明了DBR備份扇區(qū)所在,一般為0x06,即第6扇區(qū)。當(dāng)FAT32分區(qū)DBR扇區(qū)被破壞導(dǎo)致分區(qū)無(wú)法訪(fǎng)問(wèn)時(shí),可以用地6扇區(qū)的原備份替換第0扇區(qū)來(lái)找回?cái)?shù)據(jù)[12]。 (5) 簇 FAT32文件系統(tǒng)中簇是存取數(shù)據(jù)的最小單元,哪怕一個(gè)文件的數(shù)據(jù)量只有一個(gè)字節(jié),它也會(huì)占用一個(gè)簇,而這個(gè)簇的空閑空間不能再被其他文件的數(shù)據(jù)占用。 3.3.4 VS1003音頻解碼程序設(shè)計(jì) VS1003解碼芯片通過(guò)SPI協(xié)議與單片機(jī)交換數(shù)據(jù)。VS1003有兩種通信接口,其中通過(guò)SCI將控制信息寫(xiě)入功能寄存器中,而通過(guò)SDI將音頻數(shù)據(jù)送入VS1003進(jìn)行解碼。VS1003程序流程圖如圖3-7所示。 圖3-7 VS1003程序流程圖 1、VS1003的驅(qū)動(dòng)方法 VS1003 與單片機(jī)連接的引腳主要有 7 個(gè),分別為 SO、SI、SCLK、/XCS、/XRESET、DREQ、/XDCS。只有保證它們與單片機(jī)正確可靠的連接,才能對(duì) VS1003 進(jìn)行有效的操作與控制。 (1) 寫(xiě)命令操作 要控制 VS1003 首先要實(shí)現(xiàn)的就是寫(xiě)命令,這是控制是否成功的前提。關(guān)于通信接口部分,是一種同步串行接口方式(SPI 從機(jī)模式) ,它要求 SCLK 信號(hào)必須由外部電路產(chǎn)生,數(shù)據(jù)(SDATA)在 SCLK 的上升沿或下降沿時(shí)被寫(xiě)入。驅(qū)動(dòng)寫(xiě)命令的過(guò)程如下: ① 等待 DREQ 為高(當(dāng) DREQ 為低時(shí),說(shuō)明芯片還沒(méi)有就緒); ② 將 XCS(命令片選)拉低; ③ 寫(xiě)入 0x02; ④ 寫(xiě)入寄存器地址; ⑤ 分別寫(xiě)入數(shù)據(jù)的高字節(jié)與低字節(jié); ⑥ 將 XCS 置高。 如其它芯片一樣,初始化對(duì)于VS1003 來(lái)說(shuō)同樣是極其重要的。初始化的過(guò)程大致是這樣的: ① 硬件復(fù)位:接 XRESET 拉低; ② 延時(shí),將 XDCS、XCS、XRESET 置高; ③ 向 MODE 中寫(xiě)入 0X0804; ④ 等待 DREQ 為高; ⑤ 設(shè)置 VS1003 的時(shí)鐘:SCI_CLOCKF=0x9800,3 倍頻; ⑥ 設(shè)置 VS1003 的采樣率:SPI_AUDATA=0xbb81,采樣率 48k,立體聲; ⑦ 設(shè)置重音:SPI_BASS=0x0055; ⑧ 設(shè)置音量:SCI_VOL=0x2020; ⑨ 向VS1003 發(fā)送 4 個(gè)字節(jié)的無(wú)效數(shù)據(jù), 用以啟動(dòng)SPI發(fā)送。 在進(jìn)行了正確的初始化后,還要著重檢查一下VS1003 的模擬部分是否正常。將 VS1003 的所有 DVDD、AVDD 管腳以及 XRESET、TEST(第 32 個(gè)引腳)接+3.0V,然后測(cè)量 RCAP 引腳,它應(yīng)該是 1.3V 左右,否則芯片模擬部分未正常工作。 (2) 正弦測(cè)試 在上面的各種操作與檢測(cè)正確后,就可以讓VS1003 放出聲音??梢岳肰S1003 自帶的正弦測(cè)試對(duì)音頻輸出進(jìn)行測(cè)試。要啟動(dòng)VS1003 的正弦測(cè)試,需要向其寫(xiě)入正弦測(cè)試命令。這里提供啟動(dòng)正弦測(cè)試的流程,在真實(shí)的硬件運(yùn)行通過(guò),最終的效果是在耳機(jī)中聽(tīng)到單一頻率的正弦音(頻率可以通過(guò)程序來(lái)更改)[13]。 具體流程如下: ① 進(jìn)入 VS1003 的測(cè)試模式:SPI_MODE=0X0820; ② 等待 DREQ 為高; ③ 將 XDCS 接低,而 XCS 要置高,選擇 VS1003 的數(shù)據(jù)接口; ④ 向 VS1003 發(fā)送正弦測(cè)試命令: 0X53 0XEF 0X6E 0X30 0X00 0X00 0X00 0X00其中 0X30 為頻率,可以修改為其它值; ⑤ 延時(shí)一段時(shí)間; ⑥ 退出正弦測(cè)試,發(fā)送命令:0X45 0X78 0X69 0X74 0X00 0X00 0X00 0X00; ⑦ 延時(shí)一段時(shí)間; ⑧ 循環(huán)以上流程。 (3) MP3 文件數(shù)據(jù)寫(xiě)入 對(duì) VS1003 的初始化與測(cè)試都通過(guò)后,然后給它發(fā)送 MP3 文件。數(shù)據(jù)的寫(xiě)入方法,主要就是看 DREQ 信號(hào),在 VS1003 的 FIFO 能夠接受數(shù)據(jù)的時(shí)候輸出高電平。每次可以寫(xiě)入 32 個(gè)字節(jié)的數(shù)據(jù)。而 DREQ 變低時(shí),單片機(jī)就要停- 1.請(qǐng)仔細(xì)閱讀文檔,確保文檔完整性,對(duì)于不預(yù)覽、不比對(duì)內(nèi)容而直接下載帶來(lái)的問(wèn)題本站不予受理。
- 2.下載的文檔,不會(huì)出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請(qǐng)點(diǎn)此認(rèn)領(lǐng)!既往收益都?xì)w您。
下載文檔到電腦,查找使用更方便
0 積分
下載 |
- 配套講稿:
如PPT文件的首頁(yè)顯示word圖標(biāo),表示該P(yáng)PT已包含配套word講稿。雙擊word圖標(biāo)可打開(kāi)word文檔。
- 特殊限制:
部分文檔作品中含有的國(guó)旗、國(guó)徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計(jì)者僅對(duì)作品中獨(dú)創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- 基于 單片機(jī) MP3 音樂(lè) 播放 設(shè)計(jì) 論文
鏈接地址:http://m.appdesigncorp.com/p-6402943.html