<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 嵌入式系統 > 設計應用 > 基于CH375的U盤(pán)MP3播放器設計

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

作者: 時(shí)間:2008-02-20 來(lái)源: 收藏

  隨著(zhù)電子技術(shù)的發(fā)展,MP3播放器向大容量、高音質(zhì)、小巧便攜不斷發(fā)展。雖然播放器與存儲器的一體化設計使MP3播放器便于攜帶,但與此同時(shí)他也帶來(lái)了很多新的問(wèn)題,比如存儲容量固定,如果想裝下更多的歌曲只能去購買(mǎi)新的產(chǎn)品,造成了巨大的浪費;另一方面,一體化又限制了MP3播放器在其他領(lǐng)域的應用,比如車(chē)載MP3等不方便移動(dòng)的播放器。于是將存儲器與播放器分離成為MP3的另一發(fā)展方向,同時(shí)HOSTUSB的開(kāi)發(fā)也為實(shí)時(shí)數據采集的移動(dòng)存儲提供了價(jià)格低廉的解決方案。本文將從軟硬件方面詳細介紹如何用AVR控制HOSTUSB讀取U盤(pán)中的文件并將其解碼播放。

本文引用地址:http://dyxdggzs.com/article/79034.htm

  l 方案設計

  1.1 系統功能簡(jiǎn)介

  本設計主要完成U盤(pán)的識別和數據的讀取,并將U盤(pán)中讀取的MP3文件解碼播放出流暢的音樂(lè ),完成.MP3播放器的存儲與解碼的分離。系統功能主要包括讀取U盤(pán)數據和MP3解碼播放2部分。實(shí)現設計功能需要USB接口芯片、MP3解碼芯片、主控制器和其他外圍電路。

  1.2主要芯片的選擇

  通過(guò)比較本文選擇南京沁恒電子生產(chǎn)的一款USB通用接口芯片。芯片支持HOST主機方式和DEVICE設備方式,內部集成了PLL倍頻器、主從USB接口、數據緩沖區、被動(dòng)并行接口、異步串行接口、命令解釋器、控制傳輸的協(xié)議處理器、通用的固件程序等。

  音頻解碼芯片選擇芬蘭VLSI公司生產(chǎn)的VSl003。VSl003具有MP3/wMA/MIDI解碼和ADPCM編碼功能,他內部包含一個(gè)高性能、低功耗的DSP處理核(VSD一SP),一個(gè)工作內存,一片可供用戶(hù)程序使用的5.5 kBRAM,一個(gè)串行SPI總線(xiàn)接口,一個(gè)高質(zhì)量的采樣頻率可調的過(guò)采樣DAC以及一個(gè)16位的采樣ADC。

  采用高性能低功耗的8位AVR閃存微處理器作為系統主控制器,ATmega64內部具有豐富的資源,64 kB的系統內可編程FLASH,2 kB E2PROM,4 kB SRAM,53個(gè)通用I/O口線(xiàn),32個(gè)通用工作寄存器,RSIC設計的單指令周期使單片機具有高速處理能力,能保證MP3文件的順暢播放。

  2硬件接口

  2.1 USB接口芯片與MCU的連接

  CH375可以方便地掛接到MCU系統總線(xiàn)上,MCU通過(guò)CH375按照相應的USB協(xié)議可以很方便地與其他USB設備進(jìn)行通信。本設計中CH375工作在USBHOST模式下,將CH375的TXD端接地,RXD端懸空采取并行傳輸的方式,將8位并行數據線(xiàn)D0~D7與AT-mega64L的PD口相連實(shí)現數據與命令的并行傳輸,RD,WR,CS,INT和A0五根控制線(xiàn)分別連接至ATmega64L的PC3~.PC7引腳,接口的系統框圖如圖1所示。RD,WR和CS分別為讀選通、寫(xiě)選通和片選,低電平有效;INT中斷請求為低電平有效;地址輸入線(xiàn)AO為高電平時(shí)選擇命令端口,可以向CH375寫(xiě)人命令;當AO引腳為低電平時(shí)選擇數據端口,可以向CH375讀寫(xiě)數據。

  

 

  當CH375工作在主機方式時(shí)MCU通過(guò)RD,wR,片選CS、中斷INT和地址線(xiàn)AO的綜合控制,完成與CFl375的通訊,通過(guò)USB接口實(shí)現從U盤(pán)讀寫(xiě)數據的功能。INT引腳和MCU的外部中斷輸入引腳相連,當有U盤(pán)插入時(shí)1NT變?yōu)榈碗娖接|發(fā)外部中斷,當CS,RD和AO都為低電平時(shí),CH375中的數據可以通過(guò)D7~DO輸出;當CS,wR和AO都為低電平時(shí),D7~DO上的數據被寫(xiě)入CH375芯片中;當CS和wR都為低電平AO為高電平時(shí),D7一DO中的數據可作為命令碼寫(xiě)入CH375芯片中。

  2.2 MP3解碼芯片與MCU的連接

  VSl003通過(guò)同步串行總線(xiàn)SPI與ATmega64L進(jìn)行命令和數據的傳輸。由于A(yíng)Tmega64L內部集成有SPI總線(xiàn)模塊,只要正確寫(xiě)SPI相關(guān)寄存器就能輕松控制SPL這種硬件SPI總線(xiàn)減小了軟件設計的困難。VSl003的SPI接口具有2種工作模式:新模式和兼容模式。設置寄存器SM_SDI。NEW為1使'VSl003處于新模式,此時(shí)設置SMSDISFIARED為O,控制信號和數據信號的傳送將分別采用xCS和xDCS作為同步信號。

  系統啟動(dòng)后,由MCU控制將存儲于U盤(pán)中歌曲的碼流信息送入到VSl003芯片中,通過(guò)VSl003芯片解碼以及其內含的高質(zhì)量的立體聲DAC和耳機驅動(dòng)電路,實(shí)現MP3歌曲的播放功能,在按鍵的控制下,實(shí)現對歌曲播放模式以及歌曲選擇等功能。

  VSl003的所有數據和控制命令均通過(guò)SPI總線(xiàn)接口實(shí)現,因此與MCU接口實(shí)現比較簡(jiǎn)單,包括3條SPI數據線(xiàn)和4條與PB4~PB7引腳相連的控制線(xiàn),接口框圖如圖2所示。

  3軟件編程

  3.1 U盤(pán)文件管理系統

  U盤(pán)采用的文件系統一般都為FAT文件系統他將存儲空間分為5部分:主引導扇區(MBR)、DOS引導區(DBR)、文件分配表(FAT)、文件目錄表(FDT)和數據。Ctt375提供了U盤(pán)文件級子程序庫,單片機可以直接調用子程序讀寫(xiě)U盤(pán)中的文件數據。

  

 

  3.2讀取U盤(pán)數據

  應用中的單片機讀寫(xiě)U盤(pán)的程序可分成2大部分:應用程序和固件程序。應用程序完成系統的數據處理任務(wù)、外圍控制等功能;固件程序處理底層的USB通訊協(xié)議、文件系統,數據在USB總線(xiàn)上的可靠傳輸和在U盤(pán)上的存取操作。CH375內置了處理海量存儲設備的專(zhuān)用通信協(xié)議的固件,所以嵌入式系統的單片機可以通過(guò)CH375將U盤(pán)作為可移動(dòng)的大容量存儲器。數據讀寫(xiě)只需要幾條指令,而不需要詳細了解USB通信協(xié)議。

  U盤(pán)文件的讀寫(xiě)方式采取扇區模式以扇區(每個(gè)扇區通常是512字節)為基本單位進(jìn)行讀寫(xiě)操作,從而將USB存儲設備簡(jiǎn)化為一種外部數據存儲器,單片機可以自由讀寫(xiě)USB存儲設備中的數據,也可以自由定義其數據結構。本文中單片機與U盤(pán)的通訊采用查詢(xún)中斷響應的方式進(jìn)行,具體流程圖如圖3所示。

  

 

  使用AVR編程工具軟件ICCAVR編寫(xiě)系統C程序,CH375提供了已封裝好的庫函數CH375HF6.LIB,包含大量宏定義方便了編程。

  下面列舉一些CH375關(guān)鍵操作函數:CH375的初始化函數CH375Liblnit();查詢(xún)U盤(pán)是否準備就緒函數CH375DiskReady();查詢(xún)磁盤(pán)信息函數CH375DiskQuery();打開(kāi)指定名稱(chēng)的文件或者目錄CH375FileOpen();CH375FileCreate()為新建文件并打開(kāi),如果文件已經(jīng)存在則先刪除后再新建;CH375FileClose()為關(guān)閉當前文件;CH375FileReadX()以扇區為單位從當前文件讀取數據,CH375FileWriteX()以扇區為單位向當前文件寫(xiě)入數據。

  3.3 VSl003控制協(xié)議

  VSl003通過(guò)一個(gè)工作于從模式的SPI串行總線(xiàn)與主機進(jìn)行數據和控制信息的交流,控制信號和數據信號的傳送分別采用xCS和xDCS作為同步信號。數據信號xDCS為低時(shí)通過(guò)串行接口傳送音頻數據,當控制信號xCS為低時(shí)通過(guò)串行接口傳送控制命令,控制命令總是為16位,通過(guò)讀/寫(xiě)不同的寄存器來(lái)實(shí)現對VSl003的控制。作為從機工作模式,VSl003通過(guò)一個(gè)信號線(xiàn)DREQ指示是否允許主機傳送數據,當DREQ為高時(shí),VSl003至少可以接受32 kB的數據或者控制命令。

  下面介紹新模式下且SM-SDISHARE設置為O時(shí)VSl003通信協(xié)議的實(shí)現。圖4描述了傳送數據的工作時(shí)序,他以xDCS為同步信號,隨著(zhù)時(shí)鐘信號的變化,數據根據控制命令的設置依次從高位或低位送出??刂泼顓f(xié)議包括1個(gè)控制指令字節、1個(gè)地址字節和1個(gè)16位數據字,每次讀寫(xiě)控制可以操作1個(gè)寄存器。讀命令和寫(xiě)命令分別為Ox03和Ox02,這2種控制命令的工作時(shí)序分別如圖5,圖6所示。

  

 

  

 

  

 

  3.4播放MP3文件

  首先完成對VSl003和SPI總線(xiàn)的初始化,然后等待系統從U盤(pán)存儲介質(zhì)中打開(kāi)MP3文件,從中讀取的一個(gè)扇區的數據放入Atmeag64L的512 B緩沖區中,然后將數據發(fā)往VSl003,解碼芯片就會(huì )自動(dòng)播放出流暢的音樂(lè )。由于VSl003有32 B的數據緩存區,一次可向其發(fā)32 B數據然后檢查DREQ引腳,當DREQ為高時(shí)送下一個(gè)32 B數據,發(fā)完一個(gè)扇區的內容后再繼續從U盤(pán)中讀取下一個(gè)扇區內容,重復操作直到文件播放完為止。

  4 結 語(yǔ)

  將系統C程序通過(guò)ICCAVR編譯成功后生成HEX可執行文件,再在A(yíng)VRStudio編譯器中用JTAG接口將編譯好的可執行文件下載到目標板中,將U盤(pán)插入系統就會(huì )播放U盤(pán)中的MP3音樂(lè ),音質(zhì)效果和播放的連貫性都很不錯。此方案很好地實(shí)現了對U盤(pán)的識別和讀取,突破了MP3播放器中解碼器與存儲器一體化的限制,只需使用更大容量的U盤(pán)就可以在原有硬件基礎上增加存儲容量,在音響和汽車(chē)電子及數據采集存儲方面具有良好的應用前景。

存儲器相關(guān)文章:存儲器原理




關(guān)鍵詞: CH375

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>