ISP1362的U盤MP3播放器設(shè)計_第1頁
ISP1362的U盤MP3播放器設(shè)計_第2頁
ISP1362的U盤MP3播放器設(shè)計_第3頁
ISP1362的U盤MP3播放器設(shè)計_第4頁
ISP1362的U盤MP3播放器設(shè)計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、【W(wǎng)ord版本下載可任意編輯】 ISP1362的U盤MP3播放器設(shè)計本文使用AT89C51SND1作為主控制器和MP3解碼器,ISP1362作為USB主機,將U盤中的MP3文件讀取出來并開展播放,實現(xiàn)了MP3播放器中解碼單元與存儲單元的分離。 主要芯片簡介 AT89C51SND1是ATMEL推出的基于8位C51MCU內(nèi)核的MP3解碼器芯片。它內(nèi)置MP3硬件解碼器,支持48kHz、44.1kHz、32kHz、24kHz、22.05kHz及16kHz采樣頻率,具有重低音、中音、高音均衡控制和重低環(huán)繞聲效果。它可以適應(yīng)市場上不同DAC的可編程音頻輸出接口,兼容PCM和I2S格式。內(nèi)置2304BRAM

2、和64KBFlash程序空間,方便用戶增加復雜的功能。并通過內(nèi)置鎖相環(huán)提供MP3和音頻時鐘以及USB時鐘。 要想讀取U盤,USB主機控制器必不可少。為了將來進一步升級系統(tǒng),本文選用了功能強大的USBOTG芯片ISP1362。ISP1362在單芯片上集成了OTG控制器、主機控制器和外設(shè)控制器。ISP1362的OTG控制器完全兼容USB2.0以及On-The-GoSupplement1.0協(xié)議,主機和設(shè)備控制器兼容USB2.0協(xié)議,并支持12Mbps的全速傳輸和1.5Mbps的低速傳輸。 530)this.width=530 border=0 圖1系統(tǒng)框架圖 系統(tǒng)硬件構(gòu)造 整個系統(tǒng)的搭建圍繞AT8

3、9C51SND1開展,如圖1所示。由于其內(nèi)部具有硬件解碼器,因此電路構(gòu)成并不復雜。首先由單片機控制ISP1362,將U盤中的MP3文件讀取出來,送到硬件解碼器開展解碼。解碼之后由數(shù)字音頻接口將數(shù)字信號傳送至音頻DACCS4330,轉(zhuǎn)換之后產(chǎn)生音頻信號。由于DAC輸出的信號功率有限,在后端又參加了運算放大器,經(jīng)過放大之后的信號就可以直接輸出給音箱或耳機等設(shè)備了。 AT89C51SND1是基于51內(nèi)核的單片機,因此,系統(tǒng)構(gòu)造非常簡單。除了傳統(tǒng)單片機的晶振和復位電路之外,還有PLL濾波電路和USB接口電路,如圖2所示。 530)this.width=530 border=0 圖2PLL濾波電路及US

4、B接口電路 ISP1362是16位總線構(gòu)造,不能直接和8位單片機接口。因此,將單片機的P0和P2口一同作為數(shù)據(jù)總線接至ISP1362的16位總線上,將、分別接到單片機的P3.4、P3.7和P3.6,通過仿真讀寫時序控制它的數(shù)據(jù)讀取等操作。 除了這些基本的總線連接,ISP1362還需要連接一些特殊的控制引腳: A0:用于決定控制器處于命令狀態(tài)還是數(shù)據(jù)狀態(tài):0表示數(shù)據(jù)狀態(tài),1表示命令狀態(tài); A1:用于決定控制器工作于主機還是設(shè)備控制模式:0表示處于主機控制(HC)模式;1表示處于設(shè)備控制(DC)模式。 接至MCU的P1.5。P1.50時表示處于OTG工作狀態(tài),P1.51則表示處于非OTG狀態(tài)。 I

5、NT1_USB、INT2_USB分別接至MCU的INT0和INT1引腳,用以產(chǎn)生中斷。 ISP1362有兩個USB端口,分別是OTG端口和主機端口。因為OTG端口包含了主機功能,所以系統(tǒng)中使用OTG端口來連接U盤。根據(jù)USB2.0協(xié)議,USB主機需要2個15k降TG端口同時又可作為設(shè)備端口使用,而設(shè)備是沒有下拉電阻的。因此ISP1362提供了“軟連接”機制,通過內(nèi)部的存放器來控制電阻的連接與否。所以在硬件設(shè)計時并不需要在外部加下拉電阻。而為開漏輸出,因此參加了一個10kW的上拉電阻R14_USB。如圖3所示。 530)this.width=530 border=0 圖3OTG端口電路圖 AT8

6、9C51SND1C及ISP1362的初始化 在開始播放MP3文件之前,需要一系列初始化操作。這些操作是通過設(shè)置AT89C51SND1C及ISP1362內(nèi)部的相關(guān)存放器來完成的。 AT89C51SND1C的初始化 為了正常播放MP3文件,首先要對主控制器AT89C51SND1C開展以下幾方面的設(shè)置。 鎖相環(huán)初始化 MP3解碼器和音頻輸出接口使用的都是內(nèi)部鎖相環(huán)提供的時鐘。鎖相環(huán)的初始化是通過設(shè)置PLLCON、PLLNDIV和PLLNDIV來完成的。其輸出頻率的計算公式為:PLLclk=OSCclk(R+1)/(N+1)。 MP3解碼器初始化 MP3解碼器的初始化需要對MP3CON和MP3CLK開

7、展設(shè)置。MP3解碼器分缺少數(shù)據(jù)中斷和校驗中斷兩類中斷,在MP3CON中可以對其開展設(shè)置。簡單處理可以采用查詢標志位方式,防止使用中斷。MP3解碼器對時鐘有一定的要求,MPEGI格式的MP3數(shù)據(jù)要求時鐘為21MHz,MPEGII格式為10.5MHz。該時鐘計算公式為:MP3clkPLLclk/(MPSD4:01)。 音頻輸出接口初始化 得到兩個聲道串行數(shù)據(jù)前需先對音頻輸出接口的AUDCON0和AUDCON1中的相關(guān)部分開展正確的設(shè)置。配合DAC芯片CS4330,其設(shè)置如下:輸出32位數(shù)據(jù)格式(DSIZ1),聲道選擇信號中的高電平為左聲道(POL1),選擇256Fs的數(shù)據(jù)速率(HLR0),選擇MP

8、3解碼器的輸出為數(shù)據(jù)源(SRC0),18位數(shù)據(jù)右對齊(JUST4:014)。為了聽到正常的聲音,還需根據(jù)MP3的采樣率設(shè)置MP3CLK來得到正確的音頻輸出接口的時鐘,該時鐘的計算公式為:AUDclkPLLclk/(AUCD4:01)。 按鍵初始化 要實現(xiàn)播放MP3的人機交互功能,就需要鍵盤的支持,AT89C51SND1C專門提供了4個中斷的按鍵接口,當這些中斷被使能后就可以簡單地通過讀取KBSTA得到按鍵的狀態(tài)。按鍵初始化的時候只需要在KBCON開啟相應(yīng)接口的中斷,再開啟總中斷的EA即可。 ISP1362的設(shè)置 為了能正確地從U盤中讀取MP3文件,首先要對USB控制芯片ISP1362開展以下幾

9、方面的設(shè)置。 數(shù)據(jù)緩沖區(qū)的劃分 ISP1362內(nèi)部有4KB的數(shù)據(jù)緩沖區(qū),可劃分為4部分以供USB的四種傳輸方式使用。其中同步傳輸為雙緩沖,占用ISTL0和ISTL1,一般二者大小是一樣的。中斷傳輸占用INTL??刂苽鬏敽蛪K傳輸共用ATL。分別通過HcISTLBufferSize、HcINTLBufferSize和HcATLBufferSize來設(shè)置ISTL、INTL和ATL的大小。 中斷的設(shè)定 這里的中斷并不是指USB中的中斷傳輸,而是傳統(tǒng)意義上的硬件中斷。如果不使用中斷,則應(yīng)該將其關(guān)閉,具體操作為將HcuPInterruptEnable置0,而HcInterruptDisable中所有位都置

10、1。 ATL緩沖的設(shè)定 控制傳輸是任何USB設(shè)備都有的數(shù)據(jù)傳輸類型,而在ISP1362中,它占用的是ATL緩沖區(qū),因此對ATL緩沖的設(shè)定是必不可少的。具體的操作是設(shè)置以下幾個存放器:HcATLPTDSkipMap、HcATLLastPTD、HcATLBlkSize、HcATLPTDDoneThresholdCount和HcATLPTDDoneThresholdTimeOut。 其它相關(guān)存放器 ISP1362還有一些關(guān)于硬件的設(shè)置,比方端口設(shè)定以及過流保護等。除此之外,還需要確定一個幀所發(fā)送的數(shù)據(jù)量等信息,這些操作通過設(shè)定HcHardwareConfiguration和HcFmInterval兩

11、個存放器完成。 讀取U盤 U盤在使用USB傳輸時使用的是塊傳輸方式,操作相比照較復雜。除了基本的USB協(xié)議之外,還需要實現(xiàn)許多其它相關(guān)協(xié)議,比方MassStorage、Bulk-Only、SCSI2、UFI等。但對USB接口芯片ISP1362而言,需要完成的僅是按照協(xié)議規(guī)定開展數(shù)據(jù)的傳送。 相關(guān)描述符和設(shè)置 U盤一般使用MassStorage協(xié)議開展通信。然而在使用MassStorage協(xié)議通信之前,應(yīng)首先關(guān)注傳輸協(xié)議和U盤的端點描述符。 MassStorage中的傳輸協(xié)議常用Bulk_Only,然而在這種傳輸方式下又可分多種指令集,而U盤常用SCSI指令集。Bulk_Only的傳輸方式在通信

12、時應(yīng)首先讀取端點描述符來獲取Bulk_In和Bulk_Out這兩個端點號,之后才能開展USB的正常通信。 FAT文件系統(tǒng) 由于現(xiàn)在U盤的容量普遍較大,對U盤的操作往往都是按塊來開展的,其大小一般均為512B。但實際U盤上的數(shù)據(jù)是以文件系統(tǒng)的方式來存儲的,目前U盤常用的文件系統(tǒng)有FAT16和FAT32。而這兩種文件系統(tǒng)在很多內(nèi)容方面都是相同的,因此,在實際訪問中可以對其簡單的區(qū)分,然后分別開展不同的操作,就能實現(xiàn)對不同文件系統(tǒng)的U盤開展訪問,提高通用性。 播放MP3文件 播放一個MP3文件需要經(jīng)過以下幾個環(huán)節(jié):解析U盤的文件系統(tǒng),獲取MP3文件的信息,從U盤中讀取指定的MP3文件,將文件中的數(shù)據(jù)

13、送至AT89C51SND1C內(nèi)嵌的MP3解碼器,解碼后的數(shù)據(jù)經(jīng)音頻輸出接口調(diào)整格式后輸出兩個聲道的串行數(shù)據(jù),再經(jīng)過DAC芯片CS4330將數(shù)字信號轉(zhuǎn)換為模擬信號,經(jīng)集成運放MC33202將信號放大輸出。 初始化相關(guān)芯片 對主控器AT89C51SND1C和USB接口芯片ISP1362的初始化是至關(guān)重要的,除了上述一些需要初始化設(shè)置的地方,還應(yīng)注意單片機和ISP1362復位要同步。另外還應(yīng)對MP3解碼器音量控制的相關(guān)存放器開展初始化,默認情況下它們都是0,即處于靜音狀態(tài)。 獲取MP3文件中的數(shù)據(jù) 從U盤中獲取MP3文件是一個相對煩瑣的過程,首先應(yīng)能按照USB的相關(guān)協(xié)議讀取U盤上指定塊的數(shù)據(jù),之后還

14、要根據(jù)得到的數(shù)據(jù)解析文件系統(tǒng),從而得到指定MP3文件的起始塊地址,然后通過查FAT表的方法得到后繼的數(shù)據(jù)。并且還應(yīng)將得到的數(shù)據(jù)存儲在AT89C51SND1C內(nèi)部開設(shè)的數(shù)據(jù)緩存中,等待MP3解碼器缺少數(shù)據(jù)時使用。由于MP3解碼器內(nèi)部的數(shù)據(jù)緩存較小,因而就要求獲取MP3文件數(shù)據(jù)的時間要盡可能的少,這就需要該部分的代碼要盡量精簡。 MP3解碼器解碼 啟動MP3解碼器之前應(yīng)先對讀取來的MP3數(shù)據(jù)的幀頭開展解析,根據(jù)解析得到的采樣率設(shè)置音頻輸出接口的時鐘。從U盤中讀取的數(shù)據(jù)也應(yīng)先暫存在AT89C51SND1C內(nèi)部開設(shè)的數(shù)據(jù)緩存中,開始播放之前需要先通過MP3DAT向MP3解碼器的數(shù)據(jù)緩存中送滿1KB的數(shù)

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論