基于A(yíng)Tmega128L的大容量MP3播放機
摘要:介紹Atmel公司生產(chǎn)的ATmega128L單片機的特點(diǎn);提出一種以硬盤(pán)為存儲介質(zhì)的MP3播放機的設計方案;給出硬件設計結構和軟件設計思路。
關(guān)鍵詞:ATmega128L MP3播放機 解碼器LCD
引言
以Flash為存儲介質(zhì)的MP34播放器,由于其體積小、攜帶方便、價(jià)位合理及其時(shí)尚的外圍觀(guān)設計,受到很多人的青睞。但Flash的價(jià)位由于受其制造工藝的制約一直居高不下,從而使MP3播放器的容量?jì)H限于32M、64M、128M等幾個(gè)檔次。本文旨在提出一種以筆記本硬盤(pán)為存儲介質(zhì)的MP3播放機的設計方案。該款播放機既具有移動(dòng)硬盤(pán)的功能,又可作為MP3播放機使用。
1 系統結構
在該系統的設計中,采用Atmel公司生產(chǎn)的ATmega128L作為主控MCU。整個(gè)系統的結構框圖如1所示。PC機通過(guò)USB接口實(shí)現對硬盤(pán)的管理和對MP3歌曲、文檔等數據信息的存儲。系統啟動(dòng)后,首先將硬盤(pán)上的一部分MP3歌曲送入Flash中存儲,由MCU控制將儲存于Flash中歌曲的碼流信息送入MP3解碼芯片中解碼,并產(chǎn)生解碼輸出。在系統的DAC模塊把解碼輸出轉換為模擬音頻聲音后,經(jīng)一級音頻放大并驅動(dòng)耳機,實(shí)現MP3歌曲的播放功能。在按鍵的控制下,通過(guò)LCD中菜單選項的選擇,實(shí)現對歌曲播放模式、聲音音效、液晶對比度的調度以及歌曲選擇等功能;在播放的同時(shí),LCD上顯示的信息除滾動(dòng)的歌曲名稱(chēng)、演唱者、碼流率等ID3信息外,還包括系統供電電池的電量及歌曲播放模式等圖標。
系統包括主控MCU、硬盤(pán)、Flash緩存、按鍵、LCD、解碼器和D/A轉換器等幾部分。
2 ATmega128L的主要特點(diǎn)
ATmega128L內核為AVR,具有以下特點(diǎn):
*先進(jìn)的RISC架構,內部具有133條功能強大的指令系統,而且大部分指令是單周期;32個(gè)8位通用工作寄存器+外圍接口控制寄存器。
*內部有128KB在線(xiàn)可重復編程Flash、4KBEEPROM和4KB SRAM。
*有53個(gè)I/O引腳,每個(gè)I/O口分別對應輸入、輸出、功能選擇、中斷等多個(gè)寄存器,使功能口和I/O口可以復用,大大增強了端口功能和靈活性,提高了對外圍的開(kāi)發(fā)能力。
*內部有2個(gè)8位定時(shí)器/計數器和2個(gè)具有比較/捕捉寄存器的16位定時(shí)器/計數器;1個(gè)具有獨立振蕩器的實(shí)時(shí)計數器;1個(gè)可編程看門(mén)狗定時(shí)器;2通道8位PWM通道;8路10位A/D轉換器;雙向I2C串行總線(xiàn)接口;主/從SPI串行接口;可編程串行通信接口;片內精確的模擬比較器等。
*功耗低。CPU可工作在IDLE、POWERSAVE、POWERDOWN、STANDYBY等幾種省電模式下;可軟件編程選擇時(shí)鐘頻率。ATmega128L的軟件結構也是針對低功耗而設計的,具有內外多種中斷模式。豐富的中斷能力減少了系統設計中查詢(xún)的需要,可以方便地設計出中斷程序結構的控制程序、上電復位和可編程的低電壓檢測。
*帶JTAG接口。通過(guò)該口利用JTAG仿真器,可以很方便地實(shí)現程序的在線(xiàn)調試和仿真,編譯調試正確的代碼,通過(guò)JTAG口直接寫(xiě)入ATmega128的Flash代碼區中。另外,支持Bootloader功能,即MCU上電后,首先通過(guò)駐留在Flash中的BootLoader程序,將存儲在外部媒介中的應用程序搬移到ATmega128L的Flash代碼區。搬移成功后自動(dòng)去執行代碼,完成自啟動(dòng)。這對于產(chǎn)品化后程序的升級和維護提供了極大的方便。
*電源電壓為2.7~5.5V
3 系統硬件設計中的各個(gè)接口模塊
3.1 MCU與硬盤(pán)的接口設計
系統設計中選擇2.5英寸的筆記本硬盤(pán)作為存儲介質(zhì)。筆記本硬盤(pán)接口是標準并行IDE接口。MCU與硬盤(pán)的接口電路如圖2所示。ATmega128L的PA、PC口與硬盤(pán)的16根數據線(xiàn)相連。IDE接口是基于寄存器結構的,所有對硬盤(pán)的控制操作均通過(guò)對相應寄存器操作來(lái)實(shí)現。IDE接口的硬盤(pán)驅動(dòng)器有16個(gè)寄存器,分為2段,每段有8個(gè)寄存器,兩段寄存器的選擇由CS0、CS1來(lái)確定,通過(guò)DA0、DA1、DA2來(lái)選通每個(gè)段的8個(gè)寄存器。寄存器如表1所列。IDE接口有兩種傳輸模式:PIO模式和DMA模式。在本系統的設計中,采用PIO傳輸模式。PIO傳輸模式由處理器負責信息的傳輸,硬盤(pán)以扇區為單位與處理器進(jìn)行數據交換;在進(jìn)行扇區讀寫(xiě)時(shí),一次通過(guò)端口的數據為16位。8G以上的硬盤(pán)支持CHS、LBA兩種尋址方式,尋址方式的選擇通過(guò)驅動(dòng)器/磁頭寄存器的第6位控制。通過(guò)LBA尋址方可以實(shí)現對硬盤(pán)的每一個(gè)物理地址的訪(fǎng)問(wèn)。
表1
DA0 | DA1 | DA2 | 扇區讀操作 | 扇區寫(xiě)操作 | 位 數 |
0 | 0 | 0 | 數據寄存器 | 數據寄存器 | 16 |
0 | 0 | 1 | 出錯狀態(tài)寄存器 | 寫(xiě)預補償寄存器 | 8 |
0 | 1 | 0 | 扇計數器 | 扇區計數器 | 8 |
0 | 1 | 1 | 扇區號寄存器或LBA的A7~A0 | 扇區號寄存器或LBA的AD7~AD0 | 8 |
1 | 0 | 0 | 柱面號寄存器(高字節)或LBA的A15~A8 | 柱面號寄存器(高字節)或LBA的A15~A8 | 8 |
1 | 0 | 1 | 柱面號寄存器(高字節)或LBA的A23~A16 | 柱面號寄存器(高字節)或LBA的A23~A16 | 8 |
1 | 1 | 0 | 驅動(dòng)器或磁頭寄存器 | 驅動(dòng)器或磁頭寄存器 | 8 |
1 | 1 | 1 | (LBA的A27~A24)狀態(tài)寄存器 | (LBA的A27~A24)命令寄存器 | 8 |
3.2 Flash接口
作為便攜式產(chǎn)品的設計,功耗問(wèn)題是一個(gè)要重點(diǎn)解決的問(wèn)題。作業(yè)存儲介質(zhì)的硬盤(pán),其工作電壓為5V,最大功耗可達20W,硬盤(pán)工作時(shí)間的長(cháng)短對系統功耗將產(chǎn)生直接的影響。由于硬盤(pán)提供了STANDBY、IDLE、SLEEP等幾種低功耗運行模式,因此在系統設計過(guò)程中,考慮使用一片Flash存儲器作業(yè)緩存,即首先將存儲硬盤(pán)中的一部分音頻壓縮文件送入Flash中存儲(文件數目由Flash的容量決定),然后控制硬盤(pán)進(jìn)入SLEEP低功耗模式。存儲在Flash中的數據進(jìn)入解碼芯片中進(jìn)行解碼。待Flash中所有音頻文件播放完,則喚醒硬盤(pán)重新進(jìn)入正常的工作模式,啟動(dòng)下一次的數據緩存任務(wù)。
系統中采用Sumsung公司生產(chǎn)的KM29U128T Flash存儲器作為緩存。KM29U128T是16M
評論