當(dāng)前位置:首頁(yè) > 消費(fèi)電子 > 消費(fèi)電子
[導(dǎo)讀]  隨著電子技術(shù)的發(fā)展,MP3播放器向著大容量,小型化發(fā)展。但播放器與存儲(chǔ)器一體化的設(shè)計(jì)使得MP3難以擴(kuò)充容量以容納更多的歌曲。將播放器與存儲(chǔ)器分離是MP3目前發(fā)展的另一

  隨著電子技術(shù)的發(fā)展,MP3播放器向著大容量,小型化發(fā)展。但播放器與存儲(chǔ)器一體化的設(shè)計(jì)使得MP3難以擴(kuò)充容量以容納更多的歌曲。將播放器與存儲(chǔ)器分離是MP3目前發(fā)展的另一方向。本文介紹了一種利用AVR控制以HOST USB方式讀取U盤(pán)的音樂(lè)文件并將其解碼的播放的解決方案。本方案同時(shí)具備讀取音樂(lè)標(biāo)簽,U盤(pán)電子書(shū),貪吃蛇游戲等功能,具有商業(yè)價(jià)值。

  1 系統(tǒng)功能簡(jiǎn)介

  本設(shè)計(jì)主要完成對(duì)存儲(chǔ)在U盤(pán)中的音樂(lè)及文本等信息的讀取操作,能夠完成U盤(pán)內(nèi)MP3音樂(lè)數(shù)據(jù)的播放及標(biāo)簽信息的顯示,實(shí)現(xiàn)播放器與存儲(chǔ)器分離,并在此基礎(chǔ)上完成電子書(shū),貪吃蛇游戲等功能。

  2 系統(tǒng)芯片選擇

  本設(shè)計(jì)MCU選擇ATMEL公司的ATmega64作為主控芯片。ATmega64是高性能、低功耗的8位AVR微處理器,具有先進(jìn)的RISC結(jié)構(gòu)。64K字節(jié)系統(tǒng)內(nèi)可編程Flash,2K字節(jié)EEPROM,4K字節(jié)片內(nèi)SRAM,64個(gè)引腳,53個(gè)可編程I/O口,具有可工作于主機(jī)/從機(jī)模式的SPI串行接口音頻解碼芯片選擇芬蘭VLSI公司生產(chǎn)的VS1003。VS1003是一款具有MP3/WMA/MIDI音頻解碼及ADPCM編碼功能的芯片,它包含一個(gè)高性能,低功耗的DSP內(nèi)核VS_DSP,工作數(shù)據(jù)存儲(chǔ)器,為用戶應(yīng)用提供5KB的指令RAM和0.5KB的數(shù)據(jù)RAM。一個(gè)串行的控制和數(shù)據(jù)接口,4個(gè)通用I/O口,一個(gè)UART,一個(gè)高質(zhì)量可變采樣率的ADC和立體聲DAC,一個(gè)耳機(jī)放大器和地線緩沖器。

  USB通信芯片選擇CH375,CH375是一個(gè)USB總線的通用接口芯片,支持USB-host主機(jī)方式和USB-DEVICE/SLAVE設(shè)備方式。在本地端,CH375具有8位數(shù)據(jù)總線和讀、寫(xiě)、片選控制線以及終端輸出,可以方便地掛接到單片機(jī)等控制其的系統(tǒng)總線上。內(nèi)置控制傳輸?shù)膮f(xié)議處理器,簡(jiǎn)化常用的控制傳輸。支持低功耗模式。

  3 系統(tǒng)硬件電路設(shè)計(jì)

  3.1 MP3解碼芯片與ATmega64的硬件連接

  VS1003使用同步串行總線SPI通信,ATmega64內(nèi)部集成有SPI總線控制器,故將SCLK,MOSO,MOSI直接與MCU的SPI控制引腳相連接即可。另外將XCS,XRES,DREQ,XDCS分別于PB4~PB7相連接,即可完成對(duì)解碼芯片的控制。

  3.2 CH375與ATmega64的硬件連接

  本設(shè)計(jì)中,CH375工作在HOST模式下,八位雙向數(shù)據(jù)總線D0~D7分別于MCU的PD0~PD7相連接,實(shí)現(xiàn)數(shù)據(jù)與命令的并行傳輸。A0,RD,WR,INT,CS分別于PC3~PC7相連接。這種連接可以很方便的將CH375掛接到各種MCU系統(tǒng)總線上。

  3.3 彩屏與ATmega64的硬件連接

  彩屏與MCU實(shí)現(xiàn)并口數(shù)據(jù)命令傳輸,將其16位數(shù)據(jù)命令口與MCU的PA0~PA7以及PE0~PE7相連接,另外將彩屏的片選CS,數(shù)據(jù)命令選通RS,寫(xiě)選通WR,讀選通RD,及復(fù)位RST分別于MCU的PG0~PG4相連接。

    系統(tǒng)啟動(dòng)后,在ATmega64的控制下,首先將數(shù)據(jù)從U盤(pán)中取出,如果是音頻數(shù)據(jù),則直接送入VS1003進(jìn)行解碼,VS1003將接收到的數(shù)據(jù)解碼后轉(zhuǎn)換為模擬音頻后,通過(guò)功率放大器輸出。若收到的是文本數(shù)據(jù),則進(jìn)行字符格式轉(zhuǎn)換,并在液晶屏上顯示出來(lái)。

  4 系統(tǒng)軟件設(shè)計(jì)

  系統(tǒng)軟件的設(shè)計(jì)主要分為VS1003的驅(qū)動(dòng)程序,CH375的驅(qū)動(dòng)程序,彩屏的驅(qū)動(dòng)程序以及整體的整合。(分別為:vs1003.cch375.c TFT_ili9320.c mp3_play.c )

  4.1 FAT文件系統(tǒng)管理

  一個(gè)FAT文件系統(tǒng)包括四個(gè)不同的部分。保留扇區(qū),F(xiàn)AT區(qū),根目錄區(qū),數(shù)據(jù)區(qū)。其中保留區(qū)中的第一個(gè)分區(qū)必須是BPB,也稱(chēng)作“引導(dǎo)扇區(qū)”,因?yàn)樗袑?duì)文件系統(tǒng)進(jìn)行識(shí)別的關(guān)鍵信息,計(jì)算機(jī)將以此信息識(shí)別存儲(chǔ)器文件格式,因此十分重要。

  FAT區(qū)包含有兩份文件分配表,這是出于系統(tǒng)冗余考慮,盡管它很少使用,即使是磁盤(pán)修復(fù)工具也很少使用它。它是分區(qū)信息的映射表,指示簇是如何存儲(chǔ)的。根目錄區(qū)是在根目錄中存儲(chǔ)文件和目錄信息的目錄表。在FAT32下它可以存在分區(qū)中的任何位置,但是在早期的版本中它永遠(yuǎn)緊隨FAT區(qū)域之后。數(shù)據(jù)區(qū)是實(shí)際的文件和目錄數(shù)據(jù)存儲(chǔ)的區(qū)域,它占據(jù)了分區(qū)的絕大部分。

  4.2 U盤(pán)的讀取

  由于CH375內(nèi)置控制傳輸?shù)膮f(xié)議處理器,因此讀取U盤(pán)可以通過(guò)控制CH375的寄存器來(lái)進(jìn)行U盤(pán)的讀取。CH375以C語(yǔ)言子程序庫(kù)提供了USB存儲(chǔ)設(shè)備的文件級(jí)接口,這些應(yīng)用層接口API包含了常用的文件級(jí)操作,可以移植并嵌入到常用的單片機(jī)程序中。CH375的U盤(pán)文件級(jí)子程序庫(kù)具有以下特性:支持常用文件系統(tǒng),支持多級(jí)子目錄,可以支持小寫(xiě)字母或者長(zhǎng)文件名,支持文件打開(kāi)、新建、刪除、讀寫(xiě)以及搜索等。CH375的文件級(jí)子程序庫(kù)需要大約600Byte的隨機(jī)存儲(chǔ)器RAM作為緩沖區(qū)。文件級(jí)子程序庫(kù)的所有API在調(diào)用后都有操作狀態(tài)返回,但不一定有應(yīng)答數(shù)據(jù)。主要子程序如下:

  (1)初始化CH375芯片: CH375Init; ( 2 )打開(kāi)文件:CH375Fileopen;(3)枚舉或者搜索文件:CH375FileEnumer;(4)關(guān)閉文件: CH375FileClose; (5)以扇區(qū)為單位從文件讀數(shù)據(jù):CH375FileReadX; ( 6 )以扇區(qū)為單位向文件寫(xiě)數(shù)據(jù):CH375FilewriteX。[!--empirenews.page--]

  4.3 VS1003的讀寫(xiě)控制

  VS1003的寄存器用下列順序讀出,如圖二。首先將XCS片選拉低以選擇芯片,再通過(guò)SI線發(fā)送8位的讀操作碼(0x03)和8位的地址。在地址被VS1003芯片讀入后,SI上的數(shù)據(jù)將被忽略。相應(yīng)地址的16位數(shù)據(jù)將從SO線移出。當(dāng)數(shù)據(jù)全被移出后XCS需拉高。

  

 

  VS1003的寄存器須按以下的順序?qū)懭?,如圖三。首先將XCS片選拉低,再通過(guò)SI線發(fā)送8位的讀操作碼(0x02)和8位的地址。隨即發(fā)送16位的數(shù)據(jù)字。當(dāng)最后一位被移入且最后的時(shí)鐘已發(fā)送,必須將XCS拉高以完成寫(xiě)操作。

  4.4 MP3的播放

  當(dāng)執(zhí)行音樂(lè)播放程序時(shí),ATmega64芯片首先從U盤(pán)中預(yù)取標(biāo)簽信息,經(jīng)過(guò)分析,由Unicode到GBK編碼的轉(zhuǎn)換,再取字模,最終在LCD上顯示;之后開(kāi)始取音樂(lè)文件的數(shù)據(jù),送到VS1003芯片,VS1003開(kāi)始解碼并在音頻接口發(fā)出音頻信號(hào)。當(dāng)按下暫停鍵時(shí),暫停取數(shù)據(jù),上一曲、下一曲時(shí)跳出取數(shù)據(jù)循環(huán)。

  

 

  4.5 其他軟件設(shè)計(jì)

  1.音樂(lè)標(biāo)簽的軟件設(shè)計(jì)。本系統(tǒng)可以讀取的音樂(lè)的標(biāo)簽有ID3V1、ID3V2,當(dāng)要區(qū)分這兩個(gè)標(biāo)簽時(shí)可以用程序讀取音樂(lè)文件的開(kāi)頭和結(jié)尾,利用其標(biāo)志符“ID3”、“TAG”來(lái)區(qū)分其具有哪一個(gè)標(biāo)簽。但是標(biāo)簽中的文字編碼也包括UNICODE、GBK,具體的區(qū)分也要查找相關(guān)的標(biāo)志符。

  2.文檔閱讀的軟件設(shè)計(jì)。GBK的編碼中會(huì)帶有ASC碼,而GBK碼占兩個(gè)字節(jié),ASC碼占一個(gè)字節(jié),如果在取文件過(guò)程中恰好取到GBK碼的每二個(gè)字節(jié),那么以后的內(nèi)容在LCD上的顯示將全部為亂碼,特別是在向上翻頁(yè)的時(shí)候(文檔內(nèi)容在LCD上的顯示還要判斷回車(chē)以及其它字符,這樣就會(huì)造成每一頁(yè)具體讀了多少字節(jié),顯示了多少字節(jié)都不一樣)。最終解決辦法是用一個(gè)數(shù)組記錄每一次翻頁(yè)共顯示了多少字節(jié)(不是讀取了多少字節(jié))。

  3.在TFT上顯示字符和漢字。對(duì)于TFT液晶,沒(méi)有具體的字模存儲(chǔ)在控制芯片中,只能是整體系統(tǒng)的存儲(chǔ)。而且漢字的Unicode和GBK編碼并不相同。筆者把具體的字庫(kù)存儲(chǔ)在了要讀取的優(yōu)盤(pán)根目錄下(對(duì)應(yīng)的字模文件是ST16.BIN KT16.BIN)。對(duì)于Unicode到GBK的轉(zhuǎn)換,筆者把轉(zhuǎn)換文件也存儲(chǔ)在了優(yōu)盤(pán)的根目錄下面(對(duì)應(yīng)文件是UNITOGBK.SYS)。

  5 結(jié)束語(yǔ)

  經(jīng)測(cè)試,本設(shè)計(jì)能夠讀取并播放U盤(pán)中MP3文件,音質(zhì)清晰悅耳,無(wú)延時(shí)和跳幀現(xiàn)象。能夠讀取U盤(pán)中txt文檔以實(shí)現(xiàn)電子書(shū)功能。內(nèi)置的貪吃蛇游戲也可以順利實(shí)現(xiàn)。由于本設(shè)計(jì)采用播放器與存儲(chǔ)器分離的方式,因此存儲(chǔ)空間不受限制,自由度較大,這比一般MP3播放器更具有優(yōu)勢(shì)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉