基于ISP1362的U盤(pán)MP3播放器設計

發(fā)布時(shí)間:2010-6-8 10:44    發(fā)布者:zealot
關(guān)鍵詞: ISP1362 , MP3 , U盤(pán) , 播放器
播放器與存儲器的一體化設計對MP3播放器的便攜性起了關(guān)鍵性的作用,但與此同時(shí),它又帶來(lái)了很多新的問(wèn)題。比如存儲容量固定,如果想裝下更多的歌曲只能去購買(mǎi)新的產(chǎn)品,造成了巨大的浪費。另一方面,一體化又限制了MP3播放器在其它領(lǐng)域的應用,比如汽車(chē)電子等。于是,將存儲器與播放器分離,成為MP3的另一發(fā)展方向,也是開(kāi)發(fā)這款U盤(pán)MP3播放器的意義所在。

主要芯片簡(jiǎn)介

AT89C51SND1是ATMEL推出的基于8位C51 MCU內核的MP3解碼器芯片。它內置MP3硬件解碼器,支持48kHz、44.1kHz、32kHz、24kHz、22.05kHz及16kHz采樣頻率,具有重低音、中音、高音均衡控制和重低環(huán)繞聲效果。它可以適應市場(chǎng)上不同DAC的可編程音頻輸出接口,兼容PCM和I2S格式。內置2304B RAM和64KB Flash程序空間,方便用戶(hù)增加復雜的功能。并通過(guò)內置鎖相環(huán)提供MP3和音頻時(shí)鐘以及USB時(shí)鐘。

要想讀取U盤(pán),USB主機控制器必不可少。為了將來(lái)進(jìn)一步升級系統,本文選用了功能強大的USB-OTG芯片ISP1362。ISP1362在單芯片上集成了OTG控制器、高級主機控制器和外設控制器。ISP1362的OTG控制器完全兼容USB2.0以及On-The-Go Supplement 1. 0協(xié)議,主機和設備控制器兼容USB 2. 0協(xié)議,并支持12Mbps的全速傳輸和1.5Mbps的低速傳輸。



圖1  系統框架圖

系統硬件結構

整個(gè)系統的搭建圍繞AT89C51SND1進(jìn)行,如圖1所示。由于其內部具有硬件解碼器,因此電路構成并不復雜。首先由單片機控制ISP1362,將U盤(pán)中的MP3文件讀取出來(lái),送到硬件解碼器進(jìn)行解碼。解碼之后由數字音頻接口將數字信號傳送至音頻DAC CS4330,轉換之后產(chǎn)生音頻信號。由于DAC輸出的信號功率有限,在后端又加入了運算放大器,經(jīng)過(guò)放大之后的信號就可以直接輸出給音箱或耳機等設備了。

AT89C51SND1是基于51內核的單片機,因此,最小系統結構非常簡(jiǎn)單。除了傳統單片機的晶振和復位電路之外,還有PLL濾波電路和USB接口電路,如圖2所示。


圖2  PLL濾波電路及USB接口電路

ISP1362是16位總線(xiàn)結構,不能直接和8位單片機接口。因此,將單片機的P0和P2口一同作為數據總線(xiàn)接至ISP1362的16位總線(xiàn)上,將   、、分別接到單片機的P3.4、P3.7和P3.6,通過(guò)仿真讀寫(xiě)時(shí)序控制它的數據讀取等操作。

除了這些基本的總線(xiàn)連接,ISP1362還需要連接一些特殊的控制引腳:

A0:用于決定控制器處于命令狀態(tài)還是數據狀態(tài):0表示數據狀態(tài),1表示命令狀態(tài);

A1:用于決定控制器工作于主機還是設備控制模式:0表示處于主機控制(HC) 模式;1表示處于設備控制(DC) 模式。

接至MCU的P1.5。P1.5=0時(shí)表示處于OTG工作狀態(tài),P1.5=1則表示處于非OTG狀態(tài)。

INT1_USB、INT2_USB分別接至MCU的INT0和INT1引腳,用以產(chǎn)生中斷。

ISP1362有兩個(gè)USB端口,分別是OTG端口和主機端口。因為OTG端口包含了主機功能,所以系統中使用OTG端口來(lái)連接U盤(pán)。根據USB2.0協(xié)議,USB主機需要2個(gè)15k降TG端口同時(shí)又可作為設備端口使用,而設備是沒(méi)有下拉電阻的。因此ISP1362提供了“軟連接”機制,通過(guò)內部的寄存器來(lái)控制電阻的連接與否。所以在硬件設計時(shí)并不需要在外部加下拉電阻。而 為開(kāi)漏輸出,因此加入了一個(gè)10kW的上拉電阻R14_USB。如圖3所示。


圖3  OTG端口電路圖

AT89C51SND1C及ISP1362的初始化

在開(kāi)始播放MP3文件之前,需要一系列初始化操作。這些操作是通過(guò)設置AT89C51SND1C及ISP1362內部的相關(guān)寄存器來(lái)完成的。

AT89C51SND1C的初始化

為了正常播放MP3文件,首先要對主控制器AT89C51SND1C進(jìn)行以下幾方面的設置。

鎖相環(huán)初始化

MP3解碼器和音頻輸出接口使用的都是內部鎖相環(huán)提供的時(shí)鐘。鎖相環(huán)的初始化是通過(guò)設置PLLCON、PLLNDIV和PLLNDIV來(lái)完成的。其輸出頻率的計算公式為:PLLclk=OSCclk×(R+1)/(N+1)。

MP3解碼器初始化

MP3解碼器的初始化需要對MP3CON和MP3CLK進(jìn)行設置。MP3解碼器分缺少數據中斷和校驗中斷兩類(lèi)中斷,在MP3CON中可以對其進(jìn)行設置。簡(jiǎn)單處理可以采用查詢(xún)標志位方式,避免使用中斷。MP3解碼器對時(shí)鐘有一定的要求,MPEG I格式的MP3數據要求最低時(shí)鐘為21MHz,MPEG II格式為10.5MHz。該時(shí)鐘計算公式為:MP3clk=PLLclk/(MPSD4:0+1)。

音頻輸出接口初始化

得到兩個(gè)聲道串行數據前需先對音頻輸出接口的AUDCON0和AUDCON1中的相關(guān)部分進(jìn)行正確的設置。配合DAC芯片CS4330,其設置如下:輸出32位數據格式(DSIZ=1),聲道選擇信號中的高電平為左聲道(POL=1),選擇256·Fs的數據速率(HLR=0),選擇MP3解碼器的輸出為數據源(SRC=0),18位數據右對齊(JUST4:0=14)。為了聽(tīng)到正常的聲音,還需根據MP3的采樣率設置MP3CLK來(lái)得到正確的音頻輸出接口的時(shí)鐘,該時(shí)鐘的計算公式為:AUDclk=PLLclk/(AUCD4:0+1)。

按鍵初始化

要實(shí)現播放MP3的人機交互功能,就需要鍵盤(pán)的支持,AT89C51SND1C專(zhuān)門(mén)提供了4個(gè)中斷的按鍵接口,當這些中斷被使能后就可以簡(jiǎn)單地通過(guò)讀取KBSTA得到按鍵的狀態(tài)。按鍵初始化的時(shí)候只需要在KBCON開(kāi)啟相應接口的中斷,再開(kāi)啟總中斷的EA即可。

ISP1362的設置

為了能正確地從U盤(pán)中讀取MP3文件,首先要對USB控制芯片ISP1362進(jìn)行以下幾方面的設置。

數據緩沖區的劃分

ISP1362內部有4KB的數據緩沖區,可劃分為4部分以供USB的四種傳輸方式使用。其中同步傳輸為雙緩沖,占用ISTL0和ISTL1,一般二者大小是一樣的。中斷傳輸占用INTL?刂苽鬏敽蛪K傳輸共用ATL。分別通過(guò)HcISTLBufferSize 、HcINTLBufferSize和HcATLBufferSize 來(lái)設置ISTL、INTL和ATL的大小。

中斷的設定

這里的中斷并不是指USB中的中斷傳輸,而是傳統意義上的硬件中斷。如果不使用中斷,則應該將其關(guān)閉,具體操作為將HcuPInterruptEnable置0,而 HcInterruptDisable中所有位都置1。

ATL 緩沖的設定

控制傳輸是任何USB設備都有的數據傳輸類(lèi)型,而在ISP1362中,它占用的是ATL緩沖區,因此對ATL 緩沖的設定是必不可少的。具體的操作是設置以下幾個(gè)寄存器:HcATLPTDSkipMap、HcATLLastPTD、HcATLBlkSize、HcATLPTDDoneThresholdCount和HcATLPTDDoneThresholdTimeOut。

其它相關(guān)寄存器

ISP1362還有一些關(guān)于硬件的設置,比如端口設定以及過(guò)流保護等。除此之外,還需要確定一個(gè)幀所發(fā)送的最大數據量等信息,這些操作通過(guò)設定HcHardwareConfiguration和HcFmInterval兩個(gè)寄存器完成。

讀取U盤(pán)

U盤(pán)在使用USB傳輸時(shí)使用的是塊傳輸方式,操作相對比較復雜。除了最基本的USB協(xié)議之外,還需要實(shí)現許多其它相關(guān)協(xié)議,比如Mass Storage、Bulk-Only、SCSI-2、UFI等。但對USB接口芯片ISP1362而言,需要完成的僅是按照協(xié)議規定進(jìn)行數據的傳送。

相關(guān)描述符和設置

U盤(pán)一般使用Mass Storage協(xié)議進(jìn)行通信。然而在使用Mass Storage協(xié)議通信之前,應首先關(guān)注傳輸協(xié)議和U盤(pán)的端點(diǎn)描述符。

Mass Storage中的傳輸協(xié)議常用Bulk_Only,然而在這種傳輸方式下又可分多種指令集,而U盤(pán)常用SCSI指令集。 Bulk_Only的傳輸方式在通信時(shí)應首先讀取端點(diǎn)描述符來(lái)獲取Bulk_In和Bulk_Out這兩個(gè)端點(diǎn)號,之后才能進(jìn)行USB的正常通信。

FAT文件系統

由于現在U盤(pán)的容量普遍較大,對U盤(pán)的操作往往都是按塊來(lái)進(jìn)行的,其大小一般均為512B。但實(shí)際U盤(pán)上的數據是以文件系統的方式來(lái)存儲的,目前U盤(pán)常用的文件系統有FAT16和FAT32。而這兩種文件系統在很多內容方面都是相同的,因此,在實(shí)際訪(fǎng)問(wèn)中可以對其簡(jiǎn)單的區分,然后分別進(jìn)行不同的操作,就能實(shí)現對不同文件系統的U盤(pán)進(jìn)行訪(fǎng)問(wèn),提高通用性。

播放MP3文件

播放一個(gè)MP3文件需要經(jīng)過(guò)以下幾個(gè)環(huán)節:解析U盤(pán)的文件系統,獲取MP3文件的信息,從U盤(pán)中讀取指定的MP3文件,將文件中的數據送至AT89C51SND1C內嵌的MP3解碼器,解碼后的數據經(jīng)音頻輸出接口調整格式后輸出兩個(gè)聲道的串行數據,再經(jīng)過(guò)DAC芯片CS4330將數字信號轉換為模擬信號,最后經(jīng)集成運放MC33202將信號放大輸出。

初始化相關(guān)芯片

對主控器AT89C51SND1C和USB接口芯片ISP1362的初始化是至關(guān)重要的,除了上述一些需要初始化設置的地方,還應注意單片機和ISP1362復位要同步。另外還應對MP3解碼器音量控制的相關(guān)寄存器進(jìn)行初始化,默認情況下它們都是0,即處于靜音狀態(tài)。

獲取MP3文件中的數據

從U盤(pán)中獲取MP3文件是一個(gè)相對煩瑣的過(guò)程,首先應能按照USB的相關(guān)協(xié)議讀取U盤(pán)上指定塊的數據,之后還要根據得到的數據解析文件系統,從而得到指定MP3文件的起始塊地址,然后通過(guò)查FAT表的方法得到后繼的數據。并且還應將得到的數據存儲在A(yíng)T89C51SND1C內部開(kāi)設的數據緩存中,等待MP3解碼器缺少數據時(shí)使用。由于MP3解碼器內部的數據緩存較小,因而就要求獲取MP3文件數據的時(shí)間要盡可能的少,這就需要該部分的代碼要盡量精簡(jiǎn)。

MP3解碼器解碼

啟動(dòng)MP3解碼器之前應先對讀取來(lái)的MP3數據的幀頭進(jìn)行解析,根據解析得到的采樣率設置音頻輸出接口的時(shí)鐘。從U盤(pán)中讀取的數據也應先暫存在A(yíng)T89C51SND1C內部開(kāi)設的數據緩存中,開(kāi)始播放之前需要先通過(guò)MP3DAT向MP3解碼器的數據緩存中送滿(mǎn)1KB的數據,之后待MP3解碼器出現缺少數據的狀態(tài)(MP3STA1寄存器中的MPFREQ=1),再將AT89C51SND1C內部數據緩存中的數據寫(xiě)入MP3解碼器中。當數據緩存中的數據全部用完后,就應立即再次讀取U盤(pán),如此往復直到整個(gè)MP3文件都播放完畢為止。
  
結語(yǔ)

本系統很好地實(shí)現了對U盤(pán)的識別和讀取,突破了傳統MP3播放器中解碼器與存儲器一體化的限制,只需使用更大容量的U盤(pán)就可以在原有硬件基礎上增加存儲容量,在音響和汽車(chē)電子方面具有良好的應用前景。
本文地址:http://selenalain.com/thread-12286-1-1.html     【打印本頁(yè)】

本站部分文章為轉載或網(wǎng)友發(fā)布,目的在于傳遞和分享信息,并不代表本網(wǎng)贊同其觀(guān)點(diǎn)和對其真實(shí)性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問(wèn)題,我們將根據著(zhù)作權人的要求,第一時(shí)間更正或刪除。
您需要登錄后才可以發(fā)表評論 登錄 | 立即注冊

相關(guān)視頻

關(guān)于我們  -  服務(wù)條款  -  使用指南  -  站點(diǎn)地圖  -  友情鏈接  -  聯(lián)系我們
電子工程網(wǎng) © 版權所有   京ICP備16069177號 | 京公網(wǎng)安備11010502021702
快速回復 返回頂部 返回列表
午夜高清国产拍精品福利|亚洲色精品88色婷婷七月丁香|91久久精品无码一区|99久久国语露脸精品|动漫卡通亚洲综合专区48页