




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 畢業設計(論文)題目:基于Atmega16的mp3設計與實現 2014 年 11 月 20 日子信息工程系 時間:2014年3月1日學 生 姓 名指 導 教 師設計(論文)題目基于Atmega16的MP3設計與實現主要研究內容本論文主要研究設計了一種基于Atmega16的MP3音樂播放器系統。主控芯片為Atmega16,解碼芯片為VS1003,顯示屏為LCD12864可顯示中文,紅外遙控控制。研究方法首先了解嵌入式開發平臺的工作原理,實現在硬件平臺上燒寫嵌入式系統;通過模塊化的編程思想逐步編寫實現MP3的各個功能的C語言程序,通過將每個功能的實現、驗證、測試,然后再將每個功能模塊添加進去,整
2、體實現MP3的每個功能。主要技術指標(或研究目標)MP3功能目標:1. 實現歌曲播放,暫停,重播,上一首,下一首等功能。2. 顯示播放列表。3. 選擇相應歌曲播放。4. 實現音量大小調節以及靜音模式5. 顯示當前播放歌曲名字主要參考文獻1吳迅.用單片機設計音樂播放器J.山東:電子世界,2009.62李廣弟 朱月秀.單片機基礎M.北京:北京航空航天大學出版社,2007.6:1681993周立功.ARM微控制器基礎與實踐M.北京航空航天大學出版社,2003.1:24274周立功.ARM嵌入式系統基礎教程M.北京航空航天大學出版社,2008.9:1031245電子學報 李文明.AVR單片機讀寫SD卡
3、技術.電子測量與儀器學報R.中國科學院,2007.6.6馬馳 崔向 唐建.MP3播放器解碼功能的實現.沈陽:沈陽工業學院,2003.4:41-69.說明:一式兩份,一份裝訂入學生畢業設計(論文)內,一份交學院(直屬系)。基于Atmega16的MP3設計與實現摘要嵌入式技術近些年來得到的飛速的發展和廣泛的應用,已然成為最新最熱門的行業之一。由此本文提出一種嵌入式技術基于Atmega16的音樂播放器的設計與實現方案。主要包括顯示播放列表,顯示當前播放歌曲名字,通過點擊歌曲名字播放相應歌曲,以及暫停,上一首,下一首,快進,靜音和音量大小的調節功能的設計與實現。MP3實際就是一個功能特定的小型電腦。M
4、P3需要包括存儲器,顯示器,中央處理器以及解碼器等。本文中介紹的MP3設計與實現,存儲器采用SD存儲卡,顯示器為LCD12864顯示屏,中央處理器為Atmega16單片機微處理器,解碼器為VS1003解碼芯片,并且對MP3播放器進行了硬件和軟件的設計和實現,基本實現MP3播放器的功能。關鍵字:嵌入式,Atmega16,MP3,VS1003解碼芯片The design and implementation of MP3 based on Atmega16AbstractRapid development and wide application of embedded technology in
5、 recent years, resulting, has become one of the hottest new industries. This paper presents a technique whereby an embedded music player based Atmega16 design and implementation. Including display playlist, displays the name of the currently playing song, playing songs by clicking on the name of the
6、 corresponding song, and pause, previous track, next track, fast forward, mute and volume design and implementation of the regulatory function of the size. MP3 is actually a small computer-specific features. MP3 need to include a memory, a display, a central processor and a decoder and the like. MP3
7、 design and implementation described in this article, the memory using SD memory card, the display is LCD12864 display, central processor single-chip microprocessor Atmega16 decoder to decode chip VS1003, and MP3 players were on the hardware and software design and implementation, the basic realizat
8、ion of the MP3 player functionKeywords : Embedded , Atmega16 microcontroller , MP3,VS1003 decoder chip目 錄第1章 緒論- 1 -1.1嵌入式系統- 1 -1.2嵌入式的發展- 1 -1.3嵌入式的特點- 2 -1.4嵌入式發展現狀和發展趨勢- 3 -第2章 概述- 4 -2.1課題研究的目的- 4 -2.2 課題研究的意義- 4 -2.3 國內外概況- 5 -2.4 課題研究的內容- 5 -第3章 MP3播放器硬件設計與實現- 6 -3.1 MP3播放器系統總結構設計- 6 -3.2 ATm
9、ega16微控制器- 6 -3.2.1 Atmega16簡介- 6 -3.2.2 Atmega16引腳功能說明- 7 -3.2.3 ATmega16引腳圖- 8 -3.2.4 ATmega16內核介紹- 9 -3.3 VS1003解碼芯片- 10 -3.3.1 VS1003簡介- 10 -3.3.2 VS1003結構圖- 10 -3.3.3 VS1003特點- 11 -3.3.4 VS1003性能- 11 -3.3.5 VS1003工作原理- 11 -3.4 SD卡- 12 -3.4.1 SD卡簡介- 12 -3.4.2 SD卡內部結構圖- 12 -3.4.3 SD卡引腳和功能- 13 -3.
10、4.4 SD卡引腳圖- 13 -3.4.5 SD卡引腳功能說明- 14 -3.4.6 SD卡工作原理- 14 -3.5 LCD YX12864顯示屏- 15 -3.5.1 YX12864簡介- 15 -3.5.2 YX12864顯示屏主要硬件接口- 15 -3.5.3 YX12864顯示屏引腳說明- 16 -3.6 紅外控制器- 16 -3.6.1 紅外控制簡介- 16 -3.6.2 紅外控制發送原理- 17 -3.6.3 紅外控制接收原理- 17 -3.6.4 紅外控制電路- 17 -3.7 MP3系統硬件總結- 17 -第4章MP3播放器軟件系統設計與實現- 18 -4.1 MP3播放器軟
11、件總體設計流程- 18 -4.2 VS1003音頻解碼芯片驅動程序設計- 19 -4.3 SD卡存儲模塊驅動程序設計- 19 -4.4 紅外遙控解碼模塊程序設計- 20 -4.5 LCD顯示屏模塊程序設計- 21 -第5章 硬件調試和軟件調試- 22 -5.1 硬件調試- 22 -5.2 軟件調試- 22 -第6章 總結- 23 -致謝- 24 -參考文獻- 25 -附錄 硬件接線圖- 26 -附錄 源程序- 30 -第1章 緒論1.1嵌入式系統嵌入式系統是一種“完全嵌入受控器件內部,為特定應用而設計的專用計算機系統”,根據英國電氣工程師協會( U.K. Institution of Elec
12、trical Engineer)的定義,嵌入式系統為控制、監視或輔助設備、機器或用于工廠運作的設備。國內普遍認同的嵌入式系統定義為:以應用為中心,以計算機技術為基礎,軟硬件可裁剪,適應應用系統對功能、可靠性、成本、體積、功耗等嚴格要求的專用計算機系統。1.2嵌入式的發展從20世紀七十年代單片機的出現到各式各樣的嵌入式微處理器,微控制器的大規模應用,嵌入式系統已經有了近30年的發展歷史。嵌入式系統的出現最初是基于單片機的。70年代單片機的出現,使得汽車、家電、工業機器、通信裝置以及成千上萬種產品可以通過內嵌電子裝置來獲得更佳的使用性能:更容易使用、更快、更便宜。這些裝置已經初步具備了嵌入式的應用
13、特點,但是這時的應用只是使用8位的芯片,執行一些單線程的程序,還談不上“系統”的概念。最早的單片機是Intel公司的8048,它出現在1976年。Motorola同時推出了68HC05,Zilog公司推出了Z80系列,這些早期的單片機均含有256字節的RAM、4K的ROM、4 個8位并口、1個全雙工串行口、兩個16位定 時 器。之后在80年代初,Intel又進一步完善了8048,在它的基礎上研制成功了8051,這在單片機的歷史上是值得紀念的一頁,迄今為止,51系列的單片機仍然是最為成功的單片機芯片,在各種產品中有著非常廣泛的應用。從80年代早期開始,嵌入式系統的程序員開始用商業級的“操作系統”
14、編寫嵌入式應用軟件,這使得可以獲取更短的開發周期,更低的開發資金和更高的開發效率,“嵌入式系統”真正出現了。確切點說,這個時候的操作系統是一個實時核,這個實時核包含了許多傳統操作系統的特征,包括任務管理、任務間通訊、同步與相互排斥、中斷支持、內存管理等功能。90年代以后,隨著對實時性要求的提高,軟件規模不斷上升,實時核逐漸發展為實時多任務操作系統(RTOS),并作為一種軟件平臺逐步成為目前國際嵌入式系統的主流。這時候更多的公司看到了嵌入式系統的廣闊發展前景,開始大力發展自己的嵌入式操作系統。除了上面的幾家老牌公司以外,還出現了Palm OS,WinCE,嵌入式Linux,Lynx,Nucleu
15、x,以及國內的Hopen,Delta Os等嵌入式操作系統。隨著嵌入式技術的發展前景日益廣闊,相信會有更多的嵌入式操作系統軟件出現。1.3嵌入式的特點這些年來掀起了嵌入式系統應用熱潮的原因主要有幾個方面:一是芯片技術的發展,使得單個芯片具有更強的處理能力,而且使集成多種接口已經成為可能,眾多芯片生產廠商已經將注意力集中在這方面。另一方面的原因就是應用的需要,由于對產品可靠性、成本、更新換代要求的提高,使得嵌入式系統逐漸從純硬件實現和使用通用計算機實現的應用中脫穎而出,成為近年來令人關注的焦點。從上面的定義,我們可以看出嵌入式系統的幾個重要特征:1系統內核小。由于嵌入式系統一般是應用于小型電子裝
16、置的,系統資源相對有限,所以內核較之傳統的操作系統要小得多。比如Enea公司的OSE分布式系統,內核只有5K,而Windows的內核?簡直沒有可比性。2專用性強。嵌入式系統的個性化很強,其中的軟件系統和硬件的結合非常緊密,一般要針對硬件進行系統的移植,即使在同一品牌、同一系列的產品中也需要根據系統硬件的變化和增減不斷進行修改。同時針對不同的任務,往往需要對系統進行較大更改,程序的編譯下載要和系統相結合,這種修改和通用軟件的“升級”是完全兩個概念。3系統精簡。嵌入式系統一般沒有系統軟件和應用軟件的明顯區分,不要求其功能設計及實現上過于復雜,這樣一方面利于控制系統成本,同時也利于實現系統安全。4高
17、實時性的系統軟件(OS)是嵌入式軟件的基本要求。而且軟件要求固態存儲,以提高速度;軟件代碼要求高質量和高可靠性。5嵌入式軟件開發要想走向標準化,就必須使用多任務的操作系統。嵌入式系統的應用程序可以沒有操作系統直接在芯片上運行;但是為了合理地調度多任務、利用系統資源、系統函數以及和專家庫函數接口,用戶必須自行選配RTOS(RealTime Operating System)開發平臺,這樣才能保證程序執行的實時性、可靠性,并減少開發時間,保障軟件質量。6嵌入式系統開發需要開發工具和環境。由于其本身不具備自舉開發能力,即使設計完成以后用戶通常也是不能對其中的程序功能進行修改的,必須有一套開發工具和環
18、境才能進行開發,這些工具和環境一般是基于通用計算機上的軟硬件設備以及各種邏輯分析儀、混合信號示波器等。開發時往往有主機和目標機的概念,主機用于程序的開發,目標機作為最后的執行機,開發時需要交替結合進行。7.嵌入式系統與具體應用有機結合在一起,升級換代也是同步進行。因此,嵌入式系統產品一旦進入市場,具有較長的生命周期。8.為了提高運行速度和系統可靠性,嵌入式系統中的軟件一般都固化在存儲器芯片中。1.4嵌入式發展現狀和發展趨勢進入20世紀90年代,嵌入式技術全面展開,目前已成為通信和消費類產品的共同發展方向。在通信領域,數字技術正在全面取代模擬技術。在廣播電視領域,美國已開始由模擬電視向數字電視轉
19、變,歐洲的DVB(數字電視廣播)技術已在全球大多數國家推廣。數字音頻廣播(DAB)也已進入商品化試播階段。而軟件、集成電路和新型元器件在產業發展中的作用日益重要。所有上述產品中,都離不開嵌入式系統技術。象前途無可計量的維納斯計劃生產機頂盒,核心技術就是采用32位以上芯片級的嵌入式技術。在個人領域中,嵌入式產品將主要是個人商用,作為個人移動的數據處理和通訊軟件。由于嵌入式設備具有自然的人機交互界面,GUI屏幕為中心的多媒體界面給人很大的親和力。手寫文字輸入、語音撥號上網、收發電子郵件以及彩色圖形、圖像已取得初步成效。硬件方面,不僅有各大公司的微處理器芯片,還有用于學習和研發的各種配套開發包。目前
20、低層系統和硬件平臺經過若干年的研究,已經相對比較成熟,實現各種功能的芯片應有盡有。而且巨大的市場需求給我們提供了學習研發的資金和技術力量。從軟件方面講,也有相當部分的成熟軟件系統。國外商品化的嵌入式實時操作系統,已進入我國市場的有WindRiver、Microsoft、QNX和Nuclear等產品。我國自主開發的嵌入式系統軟件產品如科銀(CoreTek)公司的嵌入式軟件開發平臺DeltaSystem,中科院推出的Hopen嵌入式操作系統(雖然還不夠完善)。同時由于是研究熱點,所以我們可以在網上找到各種各樣的免費資源,從各大廠商的開發文檔,到各種驅動,程序源代碼,甚至很多廠商還提供微處理器的樣片
21、。這對于我們從事這方面的研發,無疑是個資源寶庫。對于軟件設計來說,不管是上手還是進一步開發,都相對來說比較容易。這就使得很多生手能夠比較快的進入研究狀態,利于發揮大家的積極創造性。第2章 概述2.1課題研究的目的MP3從問世以來,以其小巧的外形,近乎不差CD的音質,較小的數據目以及前衛的功能迅速的得到了大眾的青睞,很快的得到了推廣和普及,打敗了傳統的隨身聽CD和MD。故此在市場的推動下,各大公司紛紛推出自己的MP3音樂播放器。這樣使得MP3的研制和生產變得更加容易,成本也在逐步降低,市場更加廣闊。同時為了能夠更好地打動消費者,MP3的功能也在與日俱增,我們可以發現每隔一段時間就會有新的元素加入
22、到MP3中,其中2.5寸的硬盤MP3,支持WMA編碼的MP3,微硬盤的MP3,閃存彩屏MP3,可拍照MP3,可視頻MP3,乃至MP3手表,MP3眼鏡。MP3迅速的發展遠遠超出了人們的預想。直到今天MP3依舊是主流產品,雖然單純的MP3越來越少,但是MP3確實當下任何電子產品不可或缺的一部分。如今的MP3技術已經非常成熟了,各大制造商已經不再單純關心的如何實現MP3,而更多的是如何能在低成本低功耗的實現MP3,并且賦予MP3更多的功能使其變得更加實用。這就意味著對于傳統的MP3在實現過程中如何優化如何提高MP3的市場競爭力是當下的熱點。這就是本課題研究的目的所在。基于以上背景,我在此次設計中提出
23、采用Atmega16微處理器的方案實現MP3,在降低硬件成本的基礎上保證高質量的播放效果。2.2 課題研究的意義MP3是一種典型的嵌入式設備,詳細的研究MP3播放器的開發過程,可以為嵌入式開發提供一種合適的開發方法和框架。MP3使用MPEG-1中的第3層音頻壓縮模式,可以將音樂文件以1:10甚至1:12的壓縮率,壓縮成容量較小的文件。而MP3播放器則用以對MP3進行實時的解壓縮(解碼),這樣,高品質的MP3音樂就播放出來了。體積小,音質高,本件格式小是MP3逐步取代其他類型的音樂格式,并成為網上音樂的代名詞。對于本文研究還有另一個原因,近些年來,嵌入式系統和單片機開發的有機結合別廣泛應用于網絡
24、通信,工業控制等諸多領域,本文提出基于Atmega16單片機的MP3設計與實現,更加體現出該設計的靈活性和實時性。2.3 國內外概況從韓國在1998年推出第一款MP3之后,經過16年的發展,MP3占據了電子產品很大的一份市場份額。在MP3市場上,國內品牌廠商具有絕對優勢。愛國者、聯想、朝華等廠商都占據市場銷售的前列。但國外品牌,如三星、iRIVER、iPOD、并沒有放棄對市場的爭奪。一方面他們繼續鞏固在高端市場的優勢,同時也在不斷想中低端市場滲透。松下、三洋和創新等加大投入,連索尼、HP和DELL等IT巨頭也進軍中國MP3市場。國內的品牌也不再滿足低端定位,紛紛推出自己的高端產品。現在已經是百
25、花爭鳴的MP3時代。2.4 課題研究的內容本論文主要研究設計了一種基于Atmega16的MP3音樂播放器系統。本設計實現了一種簡單的MP3播放器,其核心主控芯片為Atmega16,解碼芯片為VS1003,顯示屏為LCD12864可顯示中文,采用紅外遙控控制。本播放器硬件電路簡單,成本低廉,功能強大,易于拓展,系統主要是依靠c語言和匯編語言。本文主要研究實現MP3播放器的一下基本功能:1.實現歌曲播放,暫停,重播,上一首,下一首等功能。2.顯示播放列表,播放列表顯示歌曲名稱,播放時間。3.選擇相應歌曲播放,歌曲播放過程中顯示歌曲播放進度。4.實現音量大小調節以及靜音模式。第3章 MP3播放器硬件
26、設計與實現3.1 MP3播放器系統總結構設計本文MP3播放器硬件設計總體結構如下,本系統的具體硬件設計主要包括:主芯片Atmega16和USB接口的連接設計,此部分主要用于MP3文件的傳輸和固件下載;主芯片Atmega16和按鍵以及LCD之間的設計連接,用戶通過顯示屏幕獲取播放器的進程息,通過按鍵來對音樂進行選擇和控制;主芯片Atmega16和VS1003解碼芯片之間,將該系統解碼后的數字信號轉換為人耳能識別的模擬信號,這一部分主要包括時鐘信號、數據信號以及反饋信號的連接;電源轉換部分,而USB接口以及電池的電源都需要DC-DC部分來進行轉換,從而為系統提供所需的電源;播放系統和存儲系統的切換
27、電路設計。如圖3.1。圖3.1系統總體結構3.2 ATmega16微控制器3.2.1 Atmega16簡介ATmega16是基于增強的AVR RISC結構的低功耗8 位CMOS微控制器。由于其先進的指令集以及單時鐘周期指令執行時間,ATmega16 的數據吞吐率高達1 MIPS/MHz,從而可以減緩系統在功耗和處理速度之間的矛盾。Atmega16 有如下特點:16K字節的系統內可編程Flash(具有同時讀寫的能力,即RWW),512 字節EEPROM,1K字節SRAM,32個通用I/O口線,32個通用工作寄存器,用于邊界掃描的JTAG接口,支持片內調試與編程,三個具有比較模式的靈活的定時器/計
28、數器(T/C),片內/外中斷,可編程串行USART,有起始條件檢測器的通用串行接口,8路10位具有可選差分輸入級可編程增益(TQFP 封裝)的ADC,具有片內振蕩器的可編程看門狗定時器,一個SPI 串行端口,以及六個可以通過軟件進行選擇的省電模式。3.2.2 Atmega16引腳功能說明VCC引腳是電源正極,GND引腳是電源接地。端口A(PA7.PA0):端口A做為A/D 轉換器的模擬輸入端。端口A 為8 位雙向I/O 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統時
29、鐘還未起振,端口A 處于高阻狀態。端口B(PB7.PB0):端口B 為8 位雙向I/O 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,端口B 處于高阻狀態。端口B 也可以用做其他不同的特殊功能.端口C(PC7.PC0):端口C 為8 位雙向I/O 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,端口被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,端口C 處于高阻狀態。
30、如果JTAG接口使能,即使復位出現引腳 PC5(TDI)、 PC3(TMS)與 PC2(TCK)的上拉電阻被激活。端口C 也可以用做其他不同的特殊功能.端口D(PD7.PD0):端口D 為8 位雙向I/O 口,具有可編程的內部上拉電阻。其輸出緩沖器具有對稱的驅動特性,可以輸出和吸收大電流。作為輸入使用時,若內部上拉電阻使能,則端口被外部電路拉低時將輸出電流。在復位過程中,即使系統時鐘還未起振,端口D 處于高阻狀態。端口D 也可以用做其他不同的特殊功能.RESET為復位輸入引腳。持續時間超過最小門限時間的低電平將引起系統復位。持續時間小于門限間的脈沖不能保證可靠復位。XTAL1引腳為反向振蕩放大
31、器與片內時鐘操作電路的輸入端。XTAL2引腳為反向振蕩放大器的輸出端。AVCC是端口A與A/D轉換器的電源。不使用ADC時,該引腳應直接與VCC連接。使用ADC時應通過一個低通濾波器與VCC 連接。AREF是A/D 的模擬基準輸入引腳。3.2.3 ATmega16引腳圖圖3.2 Atmega16引腳圖3.2.4 ATmega16內核介紹為了獲得最高的性能以及并行性,AVR 采用了Harvard 結構,具有獨立的數據和程序總線。程序存儲器里的指令通過一級流水線運行。CPU 在執行一條指令的同時讀取下一條指令( 在本文稱為預取)。這個概念實現了指令的單時鐘周期運行。程序存儲器是可以在線編程的FLA
32、SH。快速訪問寄存器文件包括32 個8 位通用工作寄存器,訪問時間為一個時鐘周期。從而實現了單時鐘周期的ALU 操作。在典型的ALU 操作中,兩個位于寄存器文件中的操作數同時被訪問,然后執行運算,結果再被送回到寄存器文件。整個過程僅需一個時鐘周期。寄存器文件里有6個寄存器可以用作3個16位的間接尋址寄存器指針以尋址數據空間,實現高效的地址運算。其中一個指針還可以作為程序存儲器查詢表的地址指針。這些附加的功能寄存器即為16位的X、Y、Z 寄存器。ALU支持寄存器之間以及寄存器和常數之間的算術和邏輯運算。ALU也可以執行單寄存器操作。運算完成之后狀態寄存器的內容得到更新以反映操作結果。程序流程通過
33、有/無條件的跳轉指令和調用指令來控制,從而直接尋址整個地址空間。大多數指令長度為16 位,亦即每個程序存儲器地址都包含一條16 位或32 位的指令。程序存儲器空間分為兩個區:引導程序區(Boot 區) 和應用程序區。這兩個區都有專門的鎖定位以實現讀和讀/ 寫保護。用于寫應用程序區的SPM 指令必須位于引導程序區。在中斷和調用子程序時返回地址的程序計數器(PC) 保存于堆棧之中。堆棧位于通用數據SRAM,因此其深度僅受限于SRAM 的大小。在復位例程里用戶首先要初始化堆棧指針SP。這個指針位于I/O 空間,可以進行讀寫訪問。數據SRAM 可以通過5 種不同的尋址模式進行訪問。AVR 存儲器空間為
34、線性的平面結構。AVR有一個靈活的中斷模塊。控制寄存器位于I/O空間。狀態寄存器里有全局中斷使能位。每個中斷在中斷向量表里都有獨立的中斷向量。各個中斷的優先級與其在中斷向量表的位置有關,中斷向量地址越低,優先級越高。I/O 存儲器空間包含64 個可以直接尋址的地址,作為CPU 外設的控制寄存器、SPI,以及其他I/O 功能。映射到數據空間即為寄存器文件之后的地址0x20 - 0x5F。3.3 VS1003解碼芯片3.3.1 VS1003簡介VS1003是由芬蘭VLSI公司出品的一款單芯片的MP3/WMA/MIDI音頻解碼和ADPCM編碼芯片,其擁有一個高性能低功耗的DSP處理器核VS_DSP,
35、5K的指令RAM0.5K的數據RAM串行的控制和數據輸入接口,4個通用IO口,一個UART口;同時片內帶有一個可變采樣率的ADC、一個立體聲DAC以及音頻耳機放大器。VS1003支持解碼格式:MP3(mpeg1 和 mpeg2,層 3),MP3+V,WMA,WAV,MIDI,SP-MIDI。VS1003支持編碼格式:IMA ADPCM(單聲道),麥克風和線入(Line input)兩種輸入方式。VS1003共有16個16位的寄存器,地址分別為0x00xF;除了模式寄存器(MODE,0x0)和狀態寄存器(STATUS,0x1)在復位后的初始值分別為0x800 和0x3C外,其余的寄存器在VS10
36、03初始化后的值均為0。3.3.2 VS1003結構圖圖3.3 VS1003結構圖3.3.3 VS1003特點解碼MP3(MPEG 1&2音頻層III)(CBR + VBR + ABR),WMA 4.0/4.1/7/8/9的所有配置文件(5-384kbit / s的),WAV(PCM + IMA ADPCM); MIDI / SP-MIDI文件,對話筒輸入或線路輸入的音頻信號進行IMA ADPCM編碼,從麥克風或線路輸入編碼IMA ADPCM,流媒體支持,低音和高音控制,使用一個12 - 13 MHz的時鐘,內部PLL時鐘倍頻器,低功耗運行,內含高性能片上立體聲數模轉換器,兩聲道間無相位差。3
37、.3.4 VS1003性能高品質的片上立體聲DAC,沒有通道之間的相位誤差,立體聲耳機驅動器能夠驅動30歐姆負載,獨立的工作電壓為模擬,數字和I / O,5.5 KiB加入用戶代碼/數據的片上RAM,串行控制和數據接口,可以用來作為一個從屬協處理器,針對特殊應用的SPI閃存啟動,特殊應用的SPI Flash引導,UART用于調試目的,新的功能可被添加與軟件和4的GPIO引腳。3.3.5 VS1003工作原理音頻解碼模塊完成MCU從SD卡里讀取的數字MP3音頻數據流進行解析、并轉化成模擬信號進行輸出。在這里,系統使用VS1003音頻解碼芯片來實現音樂數據流的解析。VS1003是由芬蘭VLSI公司
38、出品的一款單芯片的MP3/WMA音頻解碼芯片,其擁有一個高性能低功耗的DSP處理器核VS_DSP, 5K的指令ROM, 0.5K的數據RAM,串行的控制和數據輸入接口, 4個通用I/O口,一個UART口,同時片內帶有一個可變采樣速率的ADC、一個立體聲DAC以及音頻耳機放大器接口。VS1003與核心控制器Atmega16的數據通信是通過SPI總線方式進行的。VS1003主要通過串行命令接口(SCI)和串行數據接口(SDI)來接收MSP430F149控制器的控制命令和MP3的數據。通過XCS、XDCS引腳的置高、置低來確認是哪一個接口處于傳送狀態。對于VS1003芯片的功能控制,如初始化、軟復位
39、、暫停、音量控制、播放時間的讀取等,均是通過SCI寫入到特定寄存器的內容來實現的。兩條SCI指令之間要通過DREQ引腳信號判斷上次處理是否完成。該系統使用Atmega16 內部接口與VS1003 進行通信,下面介紹其引腳連接情況。PA3 是VS1003 的中斷請求引腳。當VS1003 內部數據已處理完畢,需要新的數據時,將DREQ 拉高。Atmega16根據這個信號來給VS1003 發送新的數據流。PB13引腳連接到Atmega16內部接口的時鐘(SCLK) 信號線。PB14引腳連接到Atmega16內部接口的主輸入從輸出(MISO) 信號線。這里Atmega16 是主設備,VS1003 是從
40、設備。數據流的傳輸方向是從VS1003 傳輸給Atmega16 。主要用于讀取VS1003的一些狀態和內部寄存器值,比如寄存器測試返回的內部寄存器的值。PB15引腳連接到Atmega16 內部接口的主輸出從輸入(MOSI) 信號線。這里Atmega16 是主設備,VS1003是從設備。數據流方向是從Atmega16傳輸給VS1003 ,主要傳輸給VS1003 一些控制命令、MP3/ WMA 數據流等。PA1引腳低電平有效,如果拉低該引腳,那么通過SPI傳輸的是控制信號。控制信號包括讀寫VS1003 的內部寄存器、對VS1003 進行初始化、設置左右聲道音量等。PA2引腳低電平有效,如果拉低該引
41、腳,那么通過SPI 傳輸的是數據信號。比如在向VS1003 傳輸MP3/ WMA 的數據流時需要拉低該引腳。PA0引腳低電平有效,拉低該引腳則硬件復位VS1003芯片 。3.4 SD卡3.4.1 SD卡簡介SD卡(Secure Digital Memory Card)是一種為滿足安全性、容量、性能和使用環境等各方面的需求而設計的一種新型存儲器件,SD卡允許在兩種模式下工作,即SD模式和SPI模式。3.4.2 SD卡內部結構圖圖3.4 SD卡結構圖3.4.3 SD卡引腳和功能CLK為時鐘信號引腳,每個時鐘周期傳輸一個命令或數據位,頻率可在025MHz之間變化,SD卡的總線管理器可以不受任何限制的
42、自由產生025MHz 的頻率;CMD為雙向命令和回復線,命令是一次主機到從卡操作的開始,命令可以是從主機到單卡尋址,也可以是到所有卡;回復是對之前命令的回答,回復可以來自單 卡或所有卡;DAT03引腳為數據線,數據可以從卡傳向主機也可以從主機傳向卡。SD卡以命令形式來控制SD卡的讀寫等操作。可根據命令對多塊或單塊進行讀寫操作。在SPI模式下其命令由6個字節構成,其中高位在前。3.4.4 SD卡引腳圖圖3.5 SD卡引腳圖3.4.5 SD卡引腳功能說明圖3.5 SD卡引腳功能說明3.4.6 SD卡工作原理SD卡是目前使用非常廣泛,比如在MP3,數碼相機,智能手機等都采用SD卡作為存儲設備。因此S
43、D卡已經成為時下最為通用的數據存儲卡。并且SD卡它價格低廉、存儲容量大、使用方便、通用性與安全性強等優點。SD卡支持兩種總線方式: SD方式與SPI方式。其中SD方式采用6線制,而SPI方式采用4線制,采用單片機對SD卡進行讀寫時一般都采用SPI模式。可用不同的初始化方式使SD卡工作于SD方式或SPI方式。在本設計中,音頻數據MP3文件是以SD卡為載體。所以在電路設計中必須含有讀取SD卡模塊。該系統使用Atmega16內部接口SPI1與SD卡進行通信,下面介紹其引腳連接情況。PE3引腳為低電平有效,連接到SD卡的片選引腳CD/DAT3。SPI在和SD卡進行通信時,需要將PE3拉低才能對SD卡進
44、行操作。PA7引腳映射為Atmega16內部接口的主輸出從輸入(MOSI)信號線。這里Atmega16是主設備,SD卡是設備。數據流的傳輸方向是從Atmega16傳輸給SD卡。該信號線用于傳輸一些控制命令來完成SD卡的操作,如讀、寫等。PA5引腳連接到Atmega16內部接口時鐘(SCL K)信號線。可設置SPI的時鐘頻率來調整讀取SD卡數據的快慢。PA6引腳已連接到Atmega16內部接口的主輸入從輸出(MISO)信號線。數據的傳輸方向是從SD卡傳輸給Atmega16 ,主要返回SD卡的一些狀態、內部寄存器值等。PC12引腳用于檢測SD卡是否完全插入。當SD卡完全插入時,PC12為低電平,否
45、則為高電平。3.5 LCD YX12864顯示屏3.5.1 YX12864簡介YX12864B是12864點陣的漢字圖形型液晶顯示模塊,控制器ST7920。可顯示漢字及圖形,內置8192個中文漢字(16X16 點陣)、128 個字符(8X16點陣)及64X256點陣顯示RAM(GDRAM )。可與CPU 直接接口,提供兩種界面來連接微處理機:8位并行及串行兩種連接方式。具有多種功能:光標顯示、畫面移位、睡眠模式等。3.5.2 YX12864顯示屏主要硬件接口圖3.6 LCD顯示屏硬件接口3.5.3 YX12864顯示屏引腳說明表3.1 LCD引腳說明引腳 名稱 方向 說明 引腳 名稱 方向 說
46、明 1 VSS - GND 11 DB4 I 數據4 2 VDD - +5V 12 DB5 I 數據5 3 VO - 懸空 13 DB6 I 數據6 4RS(CS) OH:Data L:Code 14 DB7 I 數據7 5 R/W OH:Read L:Write 15 PSB 0 6E(SCLK) OEnable Signal 16 NC - 空腳 7 DB0 I 數據017 /RST 0 低電平 8 DB1 I 數據118 VEE -Negative 9 DB2 I 數據219 LEDA -背光正極 10 DB3 I 數據320 LEDK -背光負極3.6 紅外控制器3.6.1 紅外控制簡
47、介紅外遙控是一種無線、非接觸控制技術,具有抗干擾能力強,信息傳輸可靠,功耗低,成本低,易實現等顯著優點,被諸多電子設備特別是家用電器廣泛采用,并越來越多的應用到計算機系統中。紅外遙控的發射電路是采用紅外發光二極管來發出經過調制的紅外光波;紅外接收電路由紅外接收二極管、三極管或硅光電池組成,它們將紅外發射器發射的紅外光轉換為相應的電信號,再送后置放大器。發射機一般由指令鍵(或操作桿)、指令編碼系統、調制電路、驅動電路、發射電路等幾部分組成。當按下指令鍵或推動操作桿時,指令編碼電路產生所需的指令編碼信號,指令編碼信號對載波進行調制,再由驅動電路進行功率放大后由發射電路向外發射經調制定的指令編碼信號
48、。接收電路一般由接收電路、放大電路、調制電路、指令譯碼電路、驅動電路、執行電路(機構)等幾部分組成。接收電路將發射器發出的已調制的編碼指令信號接收下來,并進行放大后送解調電路,解調電路將已調制的指令編碼信號解調出來,即還原為編碼信號。指令譯碼器將編碼指令信號進行譯碼,最后由驅動電路來驅動執行電路實現各種指令的操作控制(機構)。紅外遙控的特點是不影響周邊環境、不干擾其它電器設備。由于其無法穿透墻壁,故不同房間的家用電器可使用通用的遙控器而不會產生相互干擾;電路調試簡單,只要按給定電路連接無誤,一般不需任何調試即可投入工作;編解碼容易,可進行多路遙控。3.6.2 紅外控制發送原理紅外發射端發送數據
49、時,是將待發送的二進制數據調制成一系列的脈沖串信號后發射出去。紅外載的PWM功能產生頻率為38K的載波信號。而PTD0為普通I/O,產生一定脈寬的方波信號,用來代表二進制數字“1”或“0”。PTD4和PTD0通過或門輸出調制后的載波信號。在PTD0為低時,或門允許38K載波信號通過,而PTD0為高時,或門不允許38K載波信號通過,從而產生了時斷時續的紅外載波信號。3.6.3 紅外控制接收原理紅外接收采用HS0038B紅外接收器,紅外接收電路的原理是:當接收到38K的載波信號,HS0038B接收器會輸出低電平,否則輸出高電平,從而可以將“時斷時續”的紅外光信號解調成一定周期的連續方波信號,經單片
50、機處理,便可以恢復出原數據信號。HS0038B是能夠接收紅外信號的小型化接收器件,它的環氧包裝可以作為紅外過濾器,因此不需要再加紅外過濾裝置。HS0038B最主要的優點是,即使在干擾很強的環境中,它的輸出還是很穩定的。3.6.4 紅外控制電路圖3.7 紅外控制電路3.7 MP3系統硬件總結本系統在硬件上分為6個模塊:微控制器Atmega16,解碼模塊VS1003,存儲模塊SD卡,紅外模塊,顯示屏模塊LCD,USB接口模塊。硬件元件連接圖見附錄。第4章MP3播放器軟件系統設計與實現4.1 MP3播放器軟件總體設計流程MP3播放器的軟件結構跟硬件是相對應的,即每一個硬件部分都有相應的軟件代碼,這是
51、因為大多數的硬件部分都是數字可編程控制的。音樂播放器首先讀取存儲器上的音樂信號,再通過解碼器對信號進行解碼分析,經解碼的信號通過D/A轉換器將解碼出的數字信號轉換成模擬信號,然后把轉換后的模擬音頻放大,通過低通濾波后到音頻輸出。本系統的軟件設計包括VS1003驅動程序設計,SD卡驅動以及讀寫設計,FAT文件系統驅動設計,紅外遙控設計。MP3播放器總體設計流程圖見圖4.1。圖4.1 軟件設計流程圖4.2 VS1003音頻解碼芯片驅動程序設計在播放音樂前首先要對VS1003進行一系列初始化,完成對VS1003的基本設置,才能正確的播放音頻文件。VS1003解碼芯片是通過SPI實現數據通信。第一步首
52、先初始化與VS1003相連接的I/O接口,接著對VS1003進行硬件復位和軟件復位,之后初始化VS1003內部寄存器,最后向VS1003寫數據,進行音樂播放功能。如圖4.2所示。圖4.2 VS1003解碼設計流程圖4.3 SD卡存儲模塊驅動程序設計SD存儲了系統文件非常重要的信息,如果SD卡驅動出現問題,將直接導致系統崩潰。因此,SD卡驅動對系統來說至關重要。只要SD卡初始化成功,后面的處理就相對簡單了。SD卡有兩個可選的通信協議:SD模式和SPI模式。SD模式是SD卡標準的讀/寫方式,本系統選擇SPI模式讀取SD卡,因為SD卡在上電初期自動進入SD總線模式在此模式下向SD卡發送復位命令,SD
53、卡在接收復位命令過程中CS低電平有效,進入SPI模式否則工作在SD模式。SD卡驅動流程圖見圖4.3。圖4.3 SD卡驅動設計流程圖在SD卡初始化的時候注意SPI時鐘頻率一定不要超過400Khz,SIP在低速模式下,方便初始化的兼容性。4.4 紅外遙控解碼模塊程序設計在同一個遙控電路中通常要使用實現不同的遙控功能或區分不同的機器類型,這樣就要求信號按一定的編碼傳送,編碼則會由編碼芯片或電路完成。對應于編碼芯片通常會有相配對的解碼芯片或包含解碼模塊的應用芯片。編碼中并沒有輸出反碼,無法通過正反碼相對比的方法來糾錯。在抗干擾方面除了做硬件上的抗干擾,解碼時軟件可以對引導碼和間隔碼做一定的檢查來更大程
54、度的減少誤碼產生。本文的方法是當有紅外信號觸發CPU中斷時,延時7ms(這個時間不能超過8.44ms)后判斷是否輸入引腳仍然是低電平,是則繼續,否則退出中斷。接著用同樣的方法判斷引導碼的后半部分。這個電路連接PC串口后,可以用串口調試軟件,使用4800比特率來查看遙控的自定義碼(系統碼)和鍵碼。程序中只定義了1 號和2 號鍵來控制D2,D3 的亮滅。該遙控的自定碼是02H 。4.5 LCD顯示屏模塊程序設計LCD顯示屏模塊有并行和串行兩種連接方式。LCD模塊控制芯片提供兩套控制命令。當IC1 在接受指令前, 微處理器必須先確認其內部處于非忙碌狀態, 即讀取 BF標志時,BF 需為零, 方可接受
55、新的指令; 如果在送出一個指令前并不檢查 BF標志,那么在前一個指令和這個指令中間必須延長一段較長的時間,即是等待前一個指令確實執行完成。LCD顯示屏流程見圖4.4。圖4.4 LCD顯示屏程序設計流程圖第5章 硬件調試和軟件調試5.1 硬件調試硬件調試流程:第一步檢查電源指示燈是否能正常點亮,第二步檢查蜂鳴器是否能正常相應,第三步檢查顯示屏是否能正常顯示,第四步檢查VS1003解碼模塊是否正常,第五步檢查SD卡模塊是否正常,第六步檢查紅外模塊是否正常,第七步檢查將所有模塊連在一起檢查,是否可以正常工作。在硬件調試過程中主要注意一下幾個問題:(1)排除邏輯故障。這類故障出現的頻率比較高,其中包括搭錯線,短路,開路。排除這類問題首先將電路板對照原理圖檢查連著是否一致。我特別注意檢查了是否有短路和電源極性錯誤,重點檢查系統總線是否存在互相之間的短路或與其他信號線的短路。(2)排除元器件故。造成這類問題這要有兩個原因:一個是元器件買回來就是壞的了另一個是由于安裝錯誤,造成元器件燒壞。在確保安裝過程無誤的情況下檢查與元器件相連的元件是否可以正常工作。(3)排除電源故障。每次在上電之前一定一要檢查電源電壓的幅值和極性,否則很容易造成集成模塊的損壞,加電后一定檢查各器件引腳的電位,一般先檢查V
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
評論
0/150
提交評論