0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于AVR單片機的U盤MP3設(shè)計方案

科技觀察員 ? 來源:羅姆半導(dǎo)體社區(qū) ? 作者:羅姆半導(dǎo)體社區(qū) ? 2022-04-01 16:39 ? 次閱讀

隨著電子技術(shù)的發(fā)展,MP3播放器正朝著大容量和小型化方向發(fā)展。然而,播放器和存儲器的集成設(shè)計使得MP3難以擴展其容量以容納更多歌曲。將播放器與內(nèi)存分離是MP3發(fā)展的另一個方向。介紹了一種利用AVR控制以HOSTUSB對U盤音樂文件進行讀取和解碼的解決方案。該方案還具有讀取音樂標簽、U盤電子書,貪吃蛇游戲等功能,具有商業(yè)價值。

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

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

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

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

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

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

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

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

3.2CH375與ATmega64的硬件連接

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

3.3彩屏與ATmega64的硬件連接

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

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

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

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

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

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

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

4.2U盤的讀取

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

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

4.3VS1003的讀寫控制

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

pYYBAGJGujmASbWVAAChQRa9tz0716.png

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

4.4MP3的播放

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

pYYBAGJGujKAV9TxAACaYePg19U912.png

4.5其他軟件設(shè)計

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

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

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

5結(jié)束語

經(jīng)測試,該設(shè)計可以讀取和播放U盤中的MP3文件,音質(zhì)清晰,無延遲和跳幀。能夠讀取U盤中的TXT文件,實現(xiàn)電子書功能。內(nèi)置的貪吃蛇游戲也可以順利實現(xiàn)。由于播放器和存儲器的分離,存儲空間不受限制,自由度大,比普通MP3播放器更具優(yōu)勢。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • AVR單片機
    +關(guān)注

    關(guān)注

    22

    文章

    607

    瀏覽量

    55417
  • MP3
    MP3
    +關(guān)注

    關(guān)注

    7

    文章

    489

    瀏覽量

    73399
  • U盤
    +關(guān)注

    關(guān)注

    7

    文章

    488

    瀏覽量

    63133
收藏 人收藏

    評論

    相關(guān)推薦

    基于ATmega64的UMP3設(shè)計方案

    隨著電子技術(shù)的發(fā)展,MP3播放器向著大容量,小型化發(fā)展。但播放器與存儲器一體化的設(shè)計使得MP3難以擴充容量以容納更多的歌曲。將播放器與存儲器分離是MP3目前發(fā)展的另一方向。本文介紹了一種利用A
    發(fā)表于 07-10 11:20 ?2612次閱讀
    基于ATmega64的<b class='flag-5'>U</b><b class='flag-5'>盤</b><b class='flag-5'>MP3</b><b class='flag-5'>設(shè)計方案</b>

    [原創(chuàng)]共享10套不同功能的 u+mp3電路圖(全套資料)

    u+mp3電路圖 全套資料 IC1115組成的MP3播放器電路圖 炬力方案mp3資料UP18原
    發(fā)表于 11-18 17:21

    Mp3防盜器,防盜控制方案及ic

    Mp3防盜器,防盜控制方案及ic張小姐:***QQ:416455590 (技術(shù)交流) 現(xiàn)有成熟mp3摩托車防盜器方案:主控芯片可采用山景或是建榮的
    發(fā)表于 12-09 11:01

    51單片機做的SD卡MP3、UMP3。。。。

    文件系統(tǒng)做的SD卡MP3可以流暢播放320kbps的MP3文件。同時這個板子也實現(xiàn)了對SD卡tf卡和U的讀寫操作有需要的朋友可以登錄http://shop34402594.taoba
    發(fā)表于 06-23 00:56

    基于單片機AT89C51的MP3播放系統(tǒng)的設(shè)計方案

    本帖最后由 eehome 于 2013-1-5 09:45 編輯 基于單片機AT89C51的MP3播放系統(tǒng)的設(shè)計方案
    發(fā)表于 08-14 19:33

    AT89C51SND1C單片機之應(yīng)用MP3技術(shù)方案

    基于AT89C51SND1C單片機UMP3播放器學(xué)習板,配置64M Nand Flash 芯片K9F1208U,利用軟件可實現(xiàn)
    發(fā)表于 09-23 11:10

    AVR+VS1001K方案mp3資料

    AVR+VS1001K方案mp3資料
    發(fā)表于 04-08 03:34 ?76次下載

    博創(chuàng)u+mp3電路圖

    博創(chuàng)u+mp3電路圖
    發(fā)表于 04-08 03:41 ?15次下載

    UMP3容量識別工具

    mp3容量工具:買U時帶上這個,就不會被JS欺騙了.....一個完全免費的綠色軟件,使用C/C++計算機語言編寫的一個能真正識別USB存儲設(shè)備(U
    發(fā)表于 05-07 23:15 ?19次下載
    <b class='flag-5'>U</b><b class='flag-5'>盤</b><b class='flag-5'>MP3</b>容量識別工具

    基于單片機AT89C51的MP3播放系統(tǒng)的設(shè)計方案

    提出一種基于單片機AT89C51SND1C的MP3播放系統(tǒng)的設(shè)計方案單片機集成了專用的解碼器,使用K9F1208閃存作為外存儲器,放音電路采用CS4330,存儲文件通過播放器上的US
    發(fā)表于 11-23 11:44 ?489次下載

    什么是U MP3學(xué)習板

    什么是U MP3學(xué)習板   U MP3 學(xué)習板是一款
    發(fā)表于 03-10 11:23 ?1002次閱讀

    AVR單片機的智能信息記錄儀設(shè)計方案

    AVR單片機的智能信息記錄儀設(shè)計方案 摘要:給出了基于AVR單片機ATMEGA64來設(shè)計智能信息記錄系統(tǒng)的軟硬件設(shè)計方法,該方法通過外加液
    發(fā)表于 04-24 10:21 ?1060次閱讀
    <b class='flag-5'>AVR</b><b class='flag-5'>單片機</b>的智能信息記錄儀<b class='flag-5'>設(shè)計方案</b>

    U功能的MP3播放器設(shè)計方案

    本文提出基于AT89C51SND1C單片機MP3播放器的設(shè)計方法,此MP3播放器系統(tǒng)既有播放歌曲的功能又有U功能。兩種功能的轉(zhuǎn)換用USB
    發(fā)表于 08-29 11:12 ?1.1w次閱讀
    帶<b class='flag-5'>U</b><b class='flag-5'>盤</b>功能的<b class='flag-5'>MP3</b>播放器<b class='flag-5'>設(shè)計方案</b>

    基于AT89C51SND1C單片機MP3播放器的設(shè)計方案

    本文首先分析了便攜式MP3播放器的工作原理及其系統(tǒng)構(gòu)成,接著介紹了一種基于51單片機MP3播放器設(shè)計方案。采用 AT89C51SND1C單片機
    的頭像 發(fā)表于 05-26 09:02 ?6555次閱讀
    基于AT89C51SND1C<b class='flag-5'>單片機</b>的<b class='flag-5'>MP3</b>播放器的<b class='flag-5'>設(shè)計方案</b>

    基于51單片機的多功能MP3設(shè)計實現(xiàn)

    增強型單片機的低成本多功能大容量MP3解決方案,在可播放高音質(zhì)MP3歌曲的基礎(chǔ)上加入圖片播放和電子書播放,以應(yīng)對MP3功能的差異化需求。詳細
    發(fā)表于 04-28 10:33 ?1.3w次閱讀