




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、沈陽理工大學學士學位論文摘 要在我們的日常生活中,人們會面對許多來自周圍環(huán)境的壓力,而聽音樂已經(jīng)成為普通大眾放松自己的方式,MP3播放器則是聽音樂必不可少的工具。以前的音樂播放器有功能單一、系統(tǒng)流暢度低、輸出音質(zhì)差、無法擴展容量、與電腦交換數(shù)據(jù)時傳輸緩慢等缺點。為了提高MP3播放器的質(zhì)量,滿足各類人群需求,特此設計了一個基于單片機的MP3播放器。本課題主要研究基于單片機的MP3設計,設計以STC12C5A60S2單片機作為主控芯片,同時結合音頻解碼芯片VS1003、功率放大器、存儲電路、SD卡讀寫模塊等外部電路組成音樂播放系統(tǒng)。能夠完成對存儲器識別和數(shù)據(jù)讀取,將在存儲器中讀取的MP3文件或其他
2、音頻文件解碼并播放流暢的音樂。關鍵詞:MP3播放器;STC12C5A60S2單片機;VS1003解碼器AbstractIn our daily life, people face a lot of pressure from the surrounding environment, and listening to music has become a way of the general public to relax,the MP3 player is the tool to listening music. Once upon a time the music player has a
3、single function, low system fluency, output quality is poor, cannot expand capacity, exchange data transmission shortcomings such as slow with computers. In order to improve the quality of the MP3 player, meet the needs of all kinds of people, we designed a MP3 player based on single chip microcompu
4、ter.This topic finishes the software design of the music player based on the 51 microcontroller,In combination with audio decoding chip VS1003, power amplifier, storage circuit and the SD card reader module composition a music playback system. The system is able to complete the recognition and data
5、memory read, read the files in the memory and play music fluently.Keywords: MP3 player; STC12C5A60S2 MCU; VS1003 decoder目錄1 緒論11.1 課題背景11.2 課題意義21.3 課題研究內(nèi)容22 主要元器件介紹32.1 STC12C5A60S2單片機簡介32.2 VS1003(MP3/WMA音頻編解碼器)32.2.1 VS1003概述32.2.2 VS1003特性42.2.3 VS1003芯片LQFP-48和BGA-49Ball封裝的引腳分配42.3 SD卡讀寫模塊62.3.
6、1 SD卡讀寫模塊概述62.3.2 技術規(guī)格62.3.3 引腳分配73 系統(tǒng)硬件設計93.1 系統(tǒng)硬件設計綜述93.2 按鍵控制電路93.3 SD卡電路103.4 VS1003電路104 系統(tǒng)軟件設計124.1 編程軟件介紹124.1.1 Keil軟件介紹124.1.2 Keil使用方法124.2 程序語言介紹154.2.1 C語言154.2.2 語言特點154.2.3 C語言與匯編語言對比164.3 系統(tǒng)軟件設計綜述174.4 VS1003模塊的MP3文件播放程序設計204.5 系統(tǒng)性能分析215 硬件測試22結論23致謝24參考文獻25附錄A 英文原文26附錄B 漢語翻譯28附錄C 源程序
7、29附錄D 元件清單45附錄E 電路圖46附錄F 實物圖47IV1 緒論1.1 課題背景德國人Brandenburg在20世紀80年代進入頂尖的研究機構Fraunhofer Institute for Integrated Circuit,組成了MP3研發(fā)小組,并開始著手研發(fā)MP3。科技的發(fā)展加快了計算機的運行速度,MP3的標準終于在1995年被研究小組的成員們制定出來了,他們接著提供了免費的MP3軟件供人們下載。MP3的發(fā)展經(jīng)歷了以下過程:(1)困難階段:在MP3播放器剛剛出現(xiàn)的時候,因為閃存技術才問世不久,所以閃存的存儲容量太小,價格太高,MP3播放器仍遠離普通消費者。到了上個世紀90年代
8、,為了允許更多的用戶在個人電腦上連接MP3播放器來使用,當時的MP3播放器制造者選擇了并行接口當做數(shù)據(jù)傳輸?shù)膶S媒涌凇?998年,MPMAN公司推出了世界上第一臺MP3隨身聽F-10。當時這臺MP3的主要缺點:信噪比只有70dB,無法避免地會有一些雜音;并口數(shù)據(jù)傳輸速度太慢。如果一首MP3歌曲文件為5MB,在并行接口上進行傳輸需要6分鐘,并口的龜速對于早期的MP3播放器用戶來說恐怕是一場煎熬。 (2)高速階段:2000年是科學技術突飛猛進的一年,MP3播放器開始使用USB接口進行數(shù)據(jù)傳輸。在這個時候,創(chuàng)新公司推出了世界上第一臺2.5寸硬盤MP3播放器NOMAD Jukebox,它可以存儲相當于
9、100多張CD的MP3音樂,容量遠超過當時的閃存類MP3。這款MP3音樂播放器的外觀就像一個標準的CD播放器,播放器使用5號電池進行供電。新型的接口讓傳輸速度提高了10多倍,達到了12Mbps,在這個速度下歌曲文件的傳輸時間大大縮減,傳輸64MB文件的時間也不過1分鐘。(3)方便階段:雖然直接帶USB接口的MP3操作方便,但是外觀往往都很難看,不夠美觀的MP3是吸引不到消費者的購買欲望的。集成式USB接口的另外一個問題就是廠商都會在USB接口上帶一個蓋帽,然而這個帽很容易弄丟,蓋帽丟掉之后,光禿禿接口露出來會非常難看。 (4)美觀階段:新設計的伸縮式USB接口能即插即用,同時也不損失原本的傳輸
10、速度。在微軟公司的Windows操作系統(tǒng)上無需另外安裝管理軟件,并且電腦的USB接口可以給MP3播放器進行充電。對于未來的MP3發(fā)展,應該是向著無線傳輸?shù)姆较蜻~進。今后新型的MP3應該能夠通過近年來發(fā)展起來的無線網(wǎng)絡(Wi-Fi)和電腦之間傳輸數(shù)據(jù),而無需傳統(tǒng)的數(shù)據(jù)線,這樣不僅大大方便了使用者,而且也擺脫了數(shù)據(jù)線的束縛,使傳輸更加方便快捷,同時也給MP3播放器的發(fā)展帶來更多的機會。1.2 課題意義伴隨著電子科學技術的發(fā)展,數(shù)字語音功能的數(shù)碼終端產(chǎn)品已廣泛應用于我們的日常生活,它也使數(shù)字音頻壓縮技術得到發(fā)展,在數(shù)字音頻壓縮技術中,MP3技術以其優(yōu)越的性能得到了廣泛的應用?;趩纹瑱C的MP3播放器
11、可以實現(xiàn)播放音頻文件,并且具有實時性、準確性以及高效性。同時,該課題能提升我們的綜合創(chuàng)新能力,對科學技術的創(chuàng)新具非常很重要的意義。通過學習制作基于單片機的MP3播放器,也能提升我自己動手和動腦的能力,為我以后的發(fā)展鋪好道路。1.3 課題研究內(nèi)容進入21世紀之后,電子技術飛速發(fā)展,MP3播放器也越來越受到人們的喜愛。目前對于單片機的應用已經(jīng)滲透到了我們生活的各個領域,很多新東西的開發(fā)都離不開單片機,同時單片機在音樂MP3播放器上也有很大的應用。本課題主要研究基于單片機的MP3設計,設計以STC12C5A60S2單片機作為主控芯片,同時結合音頻解碼芯片VS1003、功率放大器、存儲電路、SD卡讀寫
12、模塊等外部電路組成音樂播放系統(tǒng)。能夠完成對存儲器識別和數(shù)據(jù)讀取,將在存儲器中讀取的MP3文件或其他音頻文件解碼并播放流暢的音樂。本論文主要圍繞以下幾個部分對基于單片機的MP3音樂播放器進行設計: (1)分析MP3播放器的整體構造。(2)解析MP3播放器的解碼器原理。 (3)研究MP3播放器的壓縮算法以及編程。(4)以單片機為核心的MP3硬件設計電路圖。 (4)對MP3播放器的軟件進行設計與調(diào)試。2 主要元器件介紹2.1 STC12C5A60S2單片機簡介STC12C5A60系列單片機是宏晶科技生產(chǎn)的單時鐘/機器周期(1T)的單片機,是高速/低功耗/超強抗干擾的新一代8051單片機,指令代碼完全
13、兼容傳統(tǒng)8051,但速度快8-12倍。STC12C5A60S2單片機的引腳圖如圖2.1所示。圖2.1 單片機STC12C5A60S2引腳圖2.2 VS1003(MP3/WMA音頻編解碼器)2.2.1 VS1003概述VS1003是一個多功能的音頻解碼器和編碼器。它里面包含了1個高性能的低功耗DSP處理器核VS_DSP,而且為用戶提供5KB的指令RAM和0.5KB的數(shù)據(jù)RAM。VS1003的結構包括串行控制的數(shù)據(jù)接口,1個UART, 4個常規(guī)用途的I/O接口,同時還有1個高品質(zhì)可變采樣率的A/C轉(zhuǎn)換器和立體聲D/A轉(zhuǎn)換器,以及1個耳機放大器和地線緩沖器。2.2.2 VS1003特性(1) 能解碼
14、MPEG1和MPEG2音頻層III,WMA4.0/4.1/7/8/95384 Kb/s全部的流文件,WAV(PCM+IMA AD-PCM),產(chǎn)生MIDI/SP-MIDI文件;(2) 將輸入信號實行IMAADPCM編碼;(3) 支持MP3和WAV流;(4) 對高音和低音的控制;(5) 12.288 MHz的單時鐘操作(6) 對于內(nèi)部PLL的時鐘倍頻器;(7) 功率消耗低;(8) 解碼器含有立體聲D/A轉(zhuǎn)換器和雙聲道間無相位差;(9) 帶有一個耳機驅(qū)動器;(10) 模擬、數(shù)字、I/O單獨供電;(11) 含有一個5.5KB大小的RAM;(12) 串行控制數(shù)據(jù)接口;(13) 帶有能夠進行微處理的從機;
15、(14) SPI Flash引導;(15) 供調(diào)試用的UART接口;(16) 軟件和4GPIO可以將最新的功能添加進來。2.2.3 VS1003芯片LQFP-48和BGA-49Ball封裝的引腳分配VS1003芯片LQFP-48和BGA-49封裝的引腳分配如表2.1所示。表2.1 VS1003芯片LQFP-48和BGA-49Ball封裝的引腳分配表引腳名稱LQFP-48BGA-49Ball引腳類型引腳功能MICP1C3AI同相差輸入,自偏壓MICN2C2AI反相差輸入,自偏壓XRESET3B1DI低電平有效,異步復位端DGND04D2DGNDI/O地與處理器核CVDD05C1CPWR處理器核電
16、源IOVDD06D3IOPWRI/O電源CVDD17D1CPEW處理器的核電源DREQ8E2DO輸入總線,數(shù)據(jù)請求GPIO2/DCLK9E1DIO通用I/O2/串行數(shù)據(jù)的總線時鐘GPIO3/SDATA10F2DIO通用I/O3/串行數(shù)據(jù)的總線時鐘XDCS/BSYNC13E3DI字節(jié)同步/數(shù)據(jù)片選端IOVDD114F3IOPWRI/O電源VCO15G2DO壓控振蕩器VCO的輸出DGND116F4DGNDI/O地與處理器核XTAL017G3AO晶振輸出XTAL118E4AI晶振輸入IOVDD219G4IOPWRI/O電源IOVDD3F5IOPWRI/O電源DGND220DGNDI/O地與處理器核D
17、GND321G5DGNDI/O地與處理器核DGND422F6DGNDI/O地與處理器核XCS23G6DI片選的輸入,低電平才有效CVDD224G7CPWR處理器核電源RX26E6DIUART接收端口,接IOVDD當不用時TX27F7DOUART發(fā)送端口SCLK28D6DI串行總線時鐘SISO29E7DI串行輸入SO30D5DO3串行輸出CVDD331D7CPWR處理器的核電源TEST32C6DI測試用端口,連接IOVDDGPIO033C7DIO通用I/O0,使用100k下拉電阻GPIO134B6DIO通用I/OIAGND037C5APWR模擬地端,低噪聲時參考地AVDD038B5APWR模擬電
18、源RIGHT39A6AO右聲道輸出AGND140B4APWR模擬地AGND241A5APWR模擬地GBUF42C4AO公共地的緩沖器AVDD143A4APWR模擬電源RCAP44B3AIO基準濾波的電容AVDD245A3APWR模擬電源LEFT46B2AO輸出為左聲道AGND347A2APWR模擬地LINEIN48A1AI線路輸入2.3 SD卡讀寫模塊2.3.1 SD卡讀寫模塊概述SD卡是一種低電壓的flash閃存產(chǎn)品,有兩種操作模塊。對于MMC操作模式,讀寫速度快,控制信號線多,操作復雜。對于SPI操作模塊,速度慢,線少,操作相對簡單。SD卡讀寫模塊是一種內(nèi)置文件系統(tǒng)、可直接進行文件讀寫的S
19、D卡模塊,適用于電子系統(tǒng)實現(xiàn)大容量存儲方案。單片機使用SD卡讀寫模塊,能夠直接進行目錄遍歷、目錄修改、文件修改、格式化SD卡等標準文件系統(tǒng)操作,而無需了解SD卡內(nèi)部存儲結構及文件系統(tǒng)實現(xiàn)細節(jié)。隨著技術的發(fā)展,設備使用SD卡作為存儲設備已成為一種普遍的要求。傳統(tǒng)的單片機由于資源限制,一般不能提供文件系統(tǒng),因此無法做到對SD卡中的文件進行讀寫。使用本模塊,單片機不必實現(xiàn)文件系統(tǒng),而能夠直接操作SD卡中文件,可以在最短的時間內(nèi)推出穩(wěn)定的產(chǎn)品,最大程度規(guī)避研發(fā)風險、節(jié)省研發(fā)費用。2.3.2 技術規(guī)格1:支持標準FAT文件系統(tǒng),模塊操作的SD卡可直接插入電腦讀寫。2:模塊內(nèi)置Micro SD卡插槽,用戶
20、也可以自己擴展其它存儲卡插槽,支持各有類SD、MMC卡。3:模塊作為SPI從機與單片機通訊,SPI總線的最高速率可達4M bps。讀SD卡文件的速度最高達128K字節(jié)/秒,寫SD卡文件的速度最高達64K字節(jié)/秒。4:模塊支持的SD卡容量為2G Bytes,超過2G的SD卡,則作為2G使用。5:尺寸50mm*20mm,2.54mm間距通用排針,方便集成。2.3.3 引腳分配引腳分配表如表2.2所示表2.2 引腳分配表管腳編號管腳名稱方向功能描述1RST#輸入模塊復位2SD_DO輸出外擴存儲卡的數(shù)據(jù)輸出3SD_DET輸入外擴存儲卡的數(shù)據(jù)輸入4SD_CLK輸出外擴存儲卡的時鐘信號5SD_DI輸入外擴
21、存儲卡的數(shù)據(jù)輸入6SD_CS輸出外擴存儲卡的片選信號7V33輸入3.3V電源8BZ輸出模塊忙指示9SCS輸入SPI接口片選信號10RXD輸入調(diào)試串口數(shù)據(jù)輸入11SCK輸入SPI接口時鐘信號12TXD輸出調(diào)試串口數(shù)據(jù)輸出13SDI輸入SPI接口數(shù)據(jù)輸入14INT#輸出數(shù)據(jù)準備好指示15SDO輸出SPI接口數(shù)據(jù)輸出16NC保留17WAKE_UP輸入喚醒18NC保留19GND輸入電源地20STA輸出低功耗指示3 系統(tǒng)硬件設計3.1 系統(tǒng)硬件設計綜述根據(jù)MP3播放器的功能要求,擬定系統(tǒng)硬件由51單片機、電源電路、時鐘電路、復位電路、SD卡數(shù)據(jù)讀取電路和VS1003解碼播放電路6個部分組成。本MP3播放
22、器具有以下功能:切換上一曲目、切換下一曲目、音量增加、音量減小、播放暫停。播放器正面一共有5個按鍵分別進行控制,只需要按相應的按鍵就可以控制播放器播放曲目。硬件系統(tǒng)總體方框圖如圖3.1所示。按鍵液晶顯示SD卡模塊STC12C5A60S2VS1003解碼器圖3.1 硬件系統(tǒng)方框圖3.2 按鍵控制電路當按下是按鍵節(jié)低電平,對歌曲進行選擇和控制。第一個按鍵的功能是換到下一首,第二個按鍵的功能是換到上一首,第三個按鍵的功能是播放和暫停,第四個按鍵可以增大音量,第五個按鍵減小音量。按鍵接線如圖3.2所示。圖3.2 按鍵接線圖3.3 SD卡電路本MP3播放器選用SD卡作為存儲歌曲的介質(zhì)。SD卡有兩種模式來
23、傳輸數(shù)據(jù),本MP3設計只采用其中的SPI模式。在SPI模式下SD卡只需要接CS、MOSI、MOSI、SCK等7個引腳,而ATmega32為其提供了相應的接口,SD卡的標準電壓為3.3V低于單片機的標準電壓,所以需要設計一個電壓轉(zhuǎn)換電路轉(zhuǎn)換單片機與SD卡之間的電壓,其接線圖見圖3.3圖3.3 SD卡接線圖3.4 VS1003電路VS1003數(shù)據(jù)流程如圖3.4所示數(shù)據(jù)流FIFOMP3/PlusV/WAV/ADPCM/WMA編碼MIDI編碼用戶應用低音增強高音增強音量控制音頻FIFO采樣率變換器和D/A轉(zhuǎn)換器SCI_AIADDR=0 SB_AMPLITUDE=0SDISM_ADPCM=0 SCI_A
24、IADDR!=0 SB_AMPLITUDE!=0ST_AMPLITUDE=0 L RST_AMPLITUDE!=0 SCI_VOL 2048立體聲采樣圖3.4 VS1003數(shù)據(jù)流程圖首先,VSl003數(shù)據(jù)流依賴于音頻數(shù)據(jù),且設置為ADPCM編碼模式, MP3、PlusV、 WAV、ADPCM、WMA編碼、MIDI編碼的數(shù)據(jù)流從SDI總線接收并解碼。當解碼完成以后,應用代碼便以寄存器指向的地址開始執(zhí)行。SCI_BASS寄存器決定了數(shù)據(jù)流是否會經(jīng)過高低音增強器。數(shù)據(jù)被送到D/A轉(zhuǎn)換器和采樣率變換器之前,F(xiàn)IFO會鎖住數(shù)據(jù),然后用音頻中斷進行傳送。音頻FIFO是一個8KB的立體聲采樣。不一樣的采樣率
25、會被采樣率變頻器變換為最高的可用采樣率,經(jīng)過復雜的 PLL時鐘配置之后,變換就能夠允許接近無限采樣率的精度。對于12.288 MHz的時鐘,D/A轉(zhuǎn)換器工作在6.144 MHz上,然后有一個同相位的立體聲模擬信號會被建立出來。模擬濾波器再對通過了采樣的信號完成低通濾波。信號通過濾波后被送到耳機放大器。4 系統(tǒng)軟件設計4.1 編程軟件介紹編程是編寫程序的中文簡稱,就是讓計算機為解決某個問題而使用某種編寫程序代碼,并最終得到相應結果的過程。為了使計算機能夠理解人的意圖,人類就必須要將需解決的問題的思路、方法、和手段通過計算機能夠理解的形式告訴計算機,使得計算機能夠根據(jù)人的指令一步一步去工作,完成某
26、種特定的任務。這種人和計算機之間交流的過程就是編程。4.1.1 Keil軟件介紹Keil C51是德國Keil Software公司出品的51系列兼容單片機C語言軟件開發(fā)系統(tǒng),為用戶提供了功能強大的集成開發(fā)調(diào)試工具uVision3和豐富的庫函數(shù)。Keil C51標準C編譯器為8051微控制器的軟件開發(fā)提供了C語言環(huán)境,同時也保留了匯編語言代碼快速高效的特點。與匯編相比,C語言在結構性、可維護性、功能性、可讀性上有明顯的優(yōu)勢,所以軟件易學易用。Keil提供了包括C編譯器、宏匯編、鏈接器、庫管理和一個功能強大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案,通過一個集成開發(fā)環(huán)境(Vision)將這些部分組合在一起
27、。4.1.2 Keil使用方法先用C編寫一個簡單的程序來演示如何使用keil4建立一個工程。打開keil4軟件,將出現(xiàn)如下界面。圖4.1 keil 軟件主界面建立一個工程。單擊Project菜單選項中New Project,選擇建工程文件的路徑,輸入功能的名字(最好一個功能單獨建立一個文件夾)。我們?nèi)∶麨?LED,點擊保存。圖 4.2 保存工程選擇單片機型號。當點擊保存后會出現(xiàn)選擇單片機型號界面。我們用的單片機是STC89C52RC,里面找不到單片機型號。51內(nèi)核的單片機有通用性,所以此處我們選擇Atmel下面的AT89C52即可。對話框右邊是對此型號單片機的說明。我們點擊 OK。圖 4.3
28、選擇單片機型號接下來要建立一個文檔,在該文檔下寫代碼。點擊:File->New ,新建一個頁面,輸入 main.c ,然后點保存,目的是把該文件保存為C文件。點一下Source Group1前面的加號,出現(xiàn)main.c,雙擊,就可以在右側頁面輸入代碼了。點擊單擊 Output 選項,選擇.HEX文件,如圖4.4所示。圖 4.4 輸入代碼頁面圖4.5 生成.HEX文件4.2 程序語言介紹4.2.1 C語言C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。盡管C語言提供了許多低
29、級處理的功能,但仍然保持著良好跨平臺的特性,以一個標準規(guī)格寫出的C語言程序可在許多電腦平臺上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業(yè)平臺。二十世紀八十年代,為了避免各開發(fā)廠商用的C語言語法產(chǎn)生差異,由美國國家標準局為C語言訂定了一套完整的國際標準語法,稱為ANSI C,作為C語言最初的標準。4.2.2 語言特點高級語言:它是結合了高級語言基本結構語句與低級語言的實用性的工作單元。結構式語言:結構式語言的顯著特點是代碼及數(shù)據(jù)的分隔化,這種結構化方式可使程序?qū)哟吻逦?,便于使用、維護以及調(diào)試。C 語言是以函數(shù)形式提供給用戶的,這些函數(shù)可方便的調(diào)用,并具有多種循環(huán)、條件
30、語句控制程序流向,從而使程序完全結構化。使用指針:可以直接進行靠近硬件的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C+在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了普通用戶的支持,但是,這些改進卻增加了語言的復雜度。Java語言則吸取了C+的教訓,取消了指針操作,同時取消了C+里面一些飽受爭議的地方,在適合性與安全性方面均取得良好的效果,但其本身在虛擬機中運行,運行效率低于C+/C。普遍來說,C,C+,java被視為同一系的語言,它們長期占據(jù)著程序使用榜的前三名。優(yōu)點: 簡潔緊湊、表達力強、表達方式靈活實用、運算符和數(shù)據(jù)類型豐富、允許直接訪問物理地址,對硬件
31、進行操作、生成目標代碼質(zhì)量高,可移植性好、程序執(zhí)行效率高。缺點:C語言的缺點主要表現(xiàn)在數(shù)據(jù)的封裝性上,這一點使得C在數(shù)據(jù)的安全性上有很大缺陷,這也是C和C+的一大區(qū)別。語法限制不太嚴格,對變量的類型約束不嚴格,影響程序的安全性,對數(shù)組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設計更熟練一些。4.2.3 C語言與匯編語言對比在單片機應用系統(tǒng)設計中,過去主要采用匯編語言開發(fā)程序。匯編語言編寫的程序?qū)纹瑱C硬件操作很方便,編寫的程序代碼短、效率高,但存在系統(tǒng)設計的周期長,可讀性和可移植性差的特點:C與匯編語言相比,具有以下特點:1、有利于結構
32、化編程,代碼維護性好。2、模塊化編程思想,程序員可以直接調(diào)用,節(jié)省開發(fā)時間。3、程序員不需要考慮寄存器的分配和尋址方式等細節(jié),這些由編譯器自行管理,提高了開發(fā)效率。4、程序員不需要掌握單片機復雜的指令集,只需要掌握單片機內(nèi)部特殊功能寄存器的用途。5、使用函數(shù)可以提高程序結構規(guī)范化。6、程序具有模塊化,且具有豐富的庫函數(shù)可以使用。7、程序員不需要過多的掌控指令結構,提高效率。4.3 系統(tǒng)軟件設計綜述本單片機系統(tǒng)使用了模塊化的編程思路,把整個軟件系統(tǒng)化為多個部分,系統(tǒng)主程序通過調(diào)用各個子程序來完成各自功能的實現(xiàn)。系統(tǒng)啟動后,先初始化硬件模塊。由單片機通過FAT32文件系統(tǒng)接口讀取SD卡的一些基本信
33、息,如容量、扇區(qū)大小、FAT 表以及根目錄所在的起始扇區(qū)等。通過這些信息就可以找出SD卡是否有可以播放的音樂文件。若有,單片機通過SPI總線方式讀出音頻信息,并將歌曲的碼流信息送入到 VS1003 芯片中,通過VS1003解碼芯片及其內(nèi)含的高質(zhì)量立體聲DAC和耳機驅(qū)動電路,實現(xiàn)MP3歌曲的播放功能。在按鍵的控制下實現(xiàn)對歌曲選擇及音量控制等功能。采用VS1003音頻解碼芯片來實現(xiàn)音樂數(shù)據(jù)流的解析。VS1003與單片機的數(shù)據(jù)通信是通過SPI總線方式進行的。 VS1003通過串行命令接口(SCI)和串行數(shù)據(jù)接口(SDI)來接收單片機的控制命令和MP3的數(shù)據(jù);通過xCS、xDCS引腳的置高低來確認是哪
34、一個接口處于傳送狀態(tài)。VS1003的功能控制,如初始化、軟復位、暫停、音量控制、播放時間的讀取等,均是通過SCI口寫入特定寄存器實現(xiàn)的。兩條SCI指令之間要通過DREQ引腳信號判斷上一次處理是否完成。VS1003的SPI接口有兩種工作模式。設置寄存器SMSDINEW為1,使 VS1003處于新模式,此時設置 SMSDISHARED為0, XCS作為控制信號的同步信號, 而XDCS則作為數(shù)據(jù)信號的同步信號。當通電啟動之后,VS1003芯片接收由單片機讀取的歌曲的碼流信息, MP3上的歌曲通過VS1003芯片解碼之后被播放出來。SPI接口可以讓VS1003上的所有控制命令與數(shù)據(jù)實現(xiàn),所以與STC1
35、2C5A60S2單片機接口實現(xiàn)起來比較簡單。VS1003具體操作如下。(1)時鐘VS1003操作時鐘, 12.288MHz作為主時鐘。此時鐘可以由外部電路產(chǎn)生(連接至XTAL1)或使用內(nèi)部品體振蕩器接口(XTAL1和XTAL0)。(2)硬件復位 復位模式是一種全掉電模式,解碼器VS1003的數(shù)字和模擬部分僅消耗很小的功率,當時鐘停止,XTAL0接地。在硬件復位或上電之后,DREQ仍然保持低電平至少16600時鐘周期,意味著12.288MHz的時鐘下,有大約1. 35 ms的延時。在此之后解碼之前,用戶可以設置基本的使件寄存器。內(nèi)部時鐘能被PLL倍頻,支持1. 0,4. 5倍頻(SCI_CLOC
36、KF寄存器)。復位值為1.0倍頻。若想設置為典型值,復位之后,內(nèi)部時鐘倍頻數(shù)須設置為3.0倍。等待DREQ變?yōu)楦唠娖胶螅瑢?x9800寫入SCl_CLOCKF(寄存器3)。(3)軟件復位 在一些情況下解碼器軟件被復位,就是 SCI_MODE的位2引起(參見8.6.1節(jié))的。然后等待至少2µs。在 DREQ變?yōu)楦唠娖街螅梢赃M行回放。如果不想VS1003截掉低比特率數(shù)據(jù)流的尾部,而又想進行軟件復位。建議在文件之后復位之前遵照DREQ的協(xié)定,向SDI送入2048個0。如果打算中斷. wav、. wma、. Midi這幾種格式文件的播放,置位模式寄存器中的SM_0UTOFWAV,等待SC
37、l_HDAT1被清空再繼續(xù)操作之前需要軟件復位。MP3通常不允許SM_0UTOFWAV,因為它是一種流格式,所以需要超時處理。(4) SPI引導當上拉電阻把GPIO0拉到高電平時,VS1003 解碼器就會在外部的SPI存儲器中引導數(shù)據(jù),存儲器引腳見表4.1。表4.1 SPI引導重定義引腳正常模式SPI引導模式GPIO0XCSGPIO0CLKDREQMOSIGPIO0MOSOSPI時鐘速度在VS1003工作時為245 kHz。此存儲器中的前3個字節(jié)必須是0x50、0x26、0x48。(5)播放/解碼這是VS1003的一個常規(guī)操作模式。SDl數(shù)據(jù)被解碼,解碼的采樣率變換到內(nèi)部模擬 D/A轉(zhuǎn)換器允許
38、的范圍。如果找不到能被解碼的數(shù)據(jù), SCI_HDAT0和SCI_HDAT1被設置為0并且模擬輸出靜音。(6)傳送PCM數(shù)據(jù)VS1003可以通過發(fā)送一個WAV文件頭,用作PCM解碼器。同時也支持單聲道或立體聲8位和16位的線性音頻。(7)SDl測試 VS1003有幾個測試模式,如用戶存儲器測試、SCI總線測試和幾個不同的正弦波測試。所有的測試都有一個相似的啟動途徑: VS1003被硬件:復位,SM_TEST置位,然后發(fā)送一個測試命令到SDI總線。每個測試的開始都發(fā)送一個4B的特殊命令順序和緊接著的4個0。系統(tǒng)流程圖如圖4.6所示初始化VS1003初始化文件系統(tǒng)執(zhí)行相應功能查找音樂文件初始化SD卡
39、數(shù)據(jù)送至VS1003按目錄循環(huán)播放音樂是否有鍵按下開始結束是 否圖4.6 系統(tǒng)流程圖4.4 VS1003模塊的MP3文件播放程序設計MP3播放器通電之后,VS1003解碼器解碼單片機從SD卡中讀取的數(shù)據(jù)流信息,通過解碼芯片及其包含的高質(zhì)量立體聲DAC和耳機驅(qū)動電路,對歌曲文件進行播放,同時也可以通過按鍵進行歌曲切換和音量加減。VSl003模塊的所有數(shù)據(jù)和控制命令均通過SPI總線接口來實現(xiàn)。為了控制VS1003,第一步需要做的就是為其寫命令。寫命令的過程如下:(1)等待DREQ為高(當DREQ為低時,說明VS1003芯片還沒有就緒)(2)將XCS(命令片選)拉低(3)寫入0x02(寫操作命令)(
40、4)寫入寄存器地址(5)分別寫入數(shù)據(jù)的高字節(jié)與低字節(jié)(6)將XCS置高初始化的過程如下:(1)硬件復位:接XRESET拉低(2)延時,將XDCS、XCS、XRESET置高(3)向MODE中寫入0X0804(軟件復位)(4)等待DREQ為高(5)設置VS1003的時鐘(6)設置VS1003的采樣率(7)設置重音(8)設置音量:SCI_VOL=0x2020(左右聲道相同)(9)為了啟動SPI發(fā)送,需要向VS1003發(fā)送4無效的字節(jié)對VS1003的初始化和測試都通過之后,就可以給它發(fā)送MP3文件了。數(shù)據(jù)的寫入方法主要是看DREQ信號,在VS1003的FIFO可以接收數(shù)據(jù)時輸出高電平,每次對其寫入32
41、個字節(jié)的數(shù)據(jù),而當DREQ降低時,MCU就要停止發(fā)送數(shù)據(jù)。寫數(shù)據(jù)的具體步驟如下所示:(1)將XDCS拉低(2)等待DREQ為高(3)通過SPI寫入數(shù)據(jù)(4)重復2和3操作直到文件結束(5)為了清除VS1003的緩沖區(qū),當數(shù)據(jù)都發(fā)送完畢以后,還需要再發(fā)送2048個無效字節(jié) (6)將XDCS置高一般一次讀一個扇區(qū),然后將數(shù)據(jù)發(fā)往VS1003,由于VS1003有32Byte的數(shù)據(jù)緩沖區(qū),一次可以發(fā)32Byte的數(shù)據(jù),然后檢測DREQ電平,當DREQ為高時送下一個32Byte的數(shù)據(jù),直到發(fā)完為止。如果不考慮DREQ的狀態(tài),不斷地向VS1003發(fā)送文件數(shù)據(jù)的話,播放音樂的時候歌曲就會不連貫。4.5 系統(tǒng)
42、性能分析本系統(tǒng)以STC12C5A60S2単片機為核心控制器,充分利用STC12C5A60S2單片機豐富資源,選用單片機工作的晶振頻率為24MHz可獲得采樣頻率更高的音頻文件,SD卡讀寫模塊對SD卡讀/寫,MP3播放接口芯片VS1003解碼所支持的音頻文件,實現(xiàn)了實時播出一曲流暢樂曲的功能。本設計只實現(xiàn)了一首樂曲的播放,為了接近日常使用的 MP3播放器,可以適當設計一些按鍵,實現(xiàn)前進/后退、快進/快退、播放幾首歌之間跳變等功能。本系統(tǒng)是一種可靠性高、成本低廉、實時的MP3播放器控制方案。5 硬件測試(1)驅(qū)動安裝調(diào)試因為Windows 7系統(tǒng)出現(xiàn)系統(tǒng)不兼容軟件,本設計調(diào)試的系統(tǒng)是64位,所以驅(qū)動
43、很難找到,大部分驅(qū)動支持Windows XP系統(tǒng),所以出現(xiàn)驅(qū)動安裝不成功或者安裝出現(xiàn)錯誤的提示或者在設備管理器出現(xiàn)黃色的嘆號,都表明驅(qū)動沒安裝成功。驅(qū)動安裝調(diào)試如圖5.1所示。解決方法是要考慮兼容性問題,下載的驅(qū)動應當手動安裝,使用系統(tǒng)自動配置會出現(xiàn)黃色嘆號。且安裝完畢,一定要重啟才能生效。 圖5.1 驅(qū)動安裝調(diào)試(2)程序下載調(diào)試按照PL2303驅(qū)動手冊下載程序不能成功,認為是最小系統(tǒng)模塊燒了,進入串口數(shù)據(jù)測試沒有發(fā)現(xiàn)問題,重新連線搭建系統(tǒng),將STC-ISP單片機下載編程燒錄軟件下載按鈕下面的兩個方框打上對號,終于把程序下載進了單片機。解釋一下打?qū)μ柕淖饔谩C看蜗螺d前重新調(diào)入已打開在緩沖區(qū)的
44、文件,方便調(diào)試使用。就是在點擊下載時,程序自動把已打開在緩沖區(qū)的文件重新調(diào)入,這樣方便下載程序不用總要點打開文件來重新調(diào)入文件。 當目標代碼發(fā)生變化后自動調(diào)入文件,并立刻發(fā)送下載命令。跟每次下載前重新調(diào)入已打開在緩沖區(qū)的文件,方便調(diào)試使用性質(zhì)一樣,但是不用點擊下載來調(diào)入文件,自動調(diào)入并下載。結論本次設計主要是研究了基于單片機的MP3播放器設計。在這一課題的研究中,主要完成了以下幾個方面的工作:(1)首先對課題的背景,課題研究的現(xiàn)實意義進行深入的研究和可行性的分析。(2) 學習了MP3文件播放和SD卡數(shù)據(jù)的讀寫原理,對系統(tǒng)總體方案進行了確定。(3)對STC12C5A60S2單片機和VS1003解
45、碼芯片等元器件進行了了解。(4)分析了系統(tǒng)的軟硬件設計,在這些設計的基礎上完成了對MP3播放器設計。(5) 對系統(tǒng)的調(diào)試進行了剖析,一步步優(yōu)化軟件的設計,最終完成對軟件的編寫。在過去的幾個月中,我從一開始的查找資料、閱讀文獻、理解文章到最后構建整篇論文的框架,然后再根據(jù)框架中所需要的內(nèi)容逐個突破和解決,最終完成了對MP3的設計。本MP3播放器可以通過單片機對SD卡中數(shù)據(jù)的讀取,再通過VS1003解碼芯片輸出音頻信號,能實現(xiàn)音樂播放的功能,還可以通過按鍵的控制來實現(xiàn)對歌曲的切換、開始與暫停和音量加減等功能致謝轉(zhuǎn)眼間,四年的大學生活就要結束了,持續(xù)半年時間的畢業(yè)設計也快接近尾聲。因為得到了指導老師
46、和同學們的幫助,本次設計才得以圓滿完成。首先要感謝學校對我的教育和栽培,在本次畢業(yè)設計中要特別感謝指導老師余囯衛(wèi)老師至始至終對我的耐心指導與督促。畢業(yè)設計中遇到過問題,出現(xiàn)過懈怠情緒,余老師一直耐心指導,老師淵博的學識、執(zhí)著的敬業(yè)精神以及嚴謹?shù)闹螌W態(tài)度,使我受益匪淺。當然在整個過程中,身邊同學也給予了很大的幫助,我從他們身上學到了很多東西,在此向他們表示衷心的感謝,祝他們在以后的工作和生活中一帆風順,心想事成這次畢業(yè)設計不僅鍛煉了我獨立完成工程設計的能力,而且增強了與人交流、合作的能力。同時使我對計算機自動控制系統(tǒng)有了更深刻的認識,這對以后的工作生活提供了重要的幫助。本文參考了大量的文獻資料,
47、在此,向各學術界的前輩們致敬最后向百忙之中抽出時間參加我畢業(yè)設計答辯的老師們致以誠摯的謝意!參考文獻1 范海紹,李方園. 零起點學Proteus單片機仿真技術M.北京:機械工業(yè)出版社,2012.01 2 智兆華,張鵬. USB接口芯片CH375的原理及應用J.今日電子,2005.8:74-753 DM12868MEB/OL.Shenzhen Jinchang Electronics Co. Ltd. 2006.11. 4 袁衛(wèi),黨紀源. 基于單片機的MP3播放器設計J.2011, 34(4): 123-125 5 李群芳,黃建.單片機微型計算機與接口技術M.北京:電子工業(yè)出版社,2001. 6
48、 Dreamtech研究組5嵌入式系統(tǒng)編程源代碼解析M.北京:電子工業(yè)出版社2002. 7 陳衛(wèi)衛(wèi).C/C+程序設計教程M.北京,北京希望電子出版社,2002.8 黃勇堅,王亞麗.智能MP3播放控制系統(tǒng)的設計.電子技術應用雜志,2006:58-62.9 嚴蕓.基于C51單片機的MP3播放器的設計與實現(xiàn).長沙航空職業(yè)技術學院學報,2006:59-83.10 MP3文件格式.SD卡規(guī)范協(xié)議.來源:.11 余錫存,曹國華.單片機原理及接口技術.西安:西安電子科技大學出版社,2000:122-136.附錄A 英文原文The General Situation of
49、0;AT89C51 The 8-bit AT89C51 CHMOS microcontrollers are designed to handle high-speed calculations and fast input/output operations. MCS 51 microcontrollers are typically used for high-s
50、peed event control systems. Commercial applications include modems, motor-control systems, printers, photocopiers, air conditioner control systems, disk drives, and medical instruments. The
51、automotive industry use MCS 51 microcontrollers in engine-control systems, airbags, suspension systems, and antilock braking systems (ABS). The AT89C51 is especially well suited to
52、;applications that benefit from its processing speed and enhanced on-chip peripheral functions set, such as automotive power-train control, vehicle dynamic suspension, antilock braking,
53、;and stability control applications. Because of these critical applications, the market requires a reliable cost-effective controller with a low interrupt latency response, ability to s
54、ervice the high number of time and event driven integrated peripherals needed in real time applications, and a CPU with above average processing power in a single pa
55、ckage. The financial and legal risk of having devices that operate unpredictably is very high. Once in the market, particularly in mission critical applications such as a
56、n autopilot or anti-lock braking system, mistakes are financially prohibitive. Redesign costs can run as high as a $500K, much more if the fix means 2 back annotatin
57、g it across a product family that share the same core and/or peripheral design flaw. In addition, field replacements of components is extremely expensive, as the devices&
58、#160;are typically sealed in modules with a total value several times that of the component. To mitigate these problems, it is essential that comprehensive testing of the
59、 controllers be carried out at both the component level and system level under worst case environmental and voltage conditions. This complete and thorough validation necessitates not
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 臨時工合同 兼職合同范例
- 修繕危房工程合同范例
- 公司合同范例樣板
- 出售車牌合同范例
- 臨時房子出租合同范例
- 減肥店合伙合同范例
- 臨時經(jīng)紀合同范例
- 農(nóng)行 貸款合同范例
- 數(shù)據(jù)-物理融合驅(qū)動的船舶波浪增阻預報方法研究
- 公司股合同合同范例
- (二模)長春市2025屆高三質(zhì)量監(jiān)測(二)地理試卷(含答案)
- 2025天津市建筑安全員-C證考試題庫
- 2025年河南省高職單招計算機類職業(yè)技能測試題(附答案)
- GB/T 18936-2025禽流感診斷技術
- 《主題四 雞蛋撞地球》教學設計-2023-2024學年六年級下冊綜合實踐活動遼師大版
- 2025年北京控股集團招聘筆試參考題庫含答案
- 2025年國航機務系統(tǒng)AMECO工程師崗位校園招聘筆試參考題庫附帶答案詳解
- 巨量千川中級營銷師認證考試題(附答案)
- 2025中智集團招聘高頻重點提升(共500題)附帶答案詳解
- 《公路工程造價標準高海拔高寒地區(qū)補充規(guī)定》
- 金融公司早會內(nèi)容
評論
0/150
提交評論