亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        多功能MP3的設(shè)計

        2014-12-31 00:00:00趙健薛成成南永兵
        電子世界 2014年20期

        【摘要】隨著科學(xué)技術(shù)的不斷發(fā)展,電子產(chǎn)品價格日益下降,功能差異化不斷突出。當(dāng)前MP3也面臨這一問題。本文介紹了一種基于STC15F單片機的低成本多功能MP3的設(shè)計及制作。與當(dāng)前市面上MP3相比,該MP3在低成本的基礎(chǔ)上融入了圖片播放和電子書播放的功能,功能新穎實用并且強大,可播放320kbs高質(zhì)音頻及SDHC卡容量限制內(nèi)的任意大txt文件??身槕?yīng)電子產(chǎn)品功能差異化需求趨勢。

        【關(guān)鍵詞】FAT32文件系統(tǒng);MP3;VS1003;電子書;電子相框;SDHC卡

        1.引言

        MP3是生活中常見的電子產(chǎn)品。受手機、paid的沖擊,當(dāng)前人們對MP3功能的要求更加差異化和苛刻。傳統(tǒng)MP3功能單一,芯片處理能力較差,大多無法播放高音質(zhì)音樂文件?;谶@一問題本文提出一種基于51增強型單片機的低成本多功能大容量MP3解決方案,在可播放高音質(zhì)MP3歌曲的基礎(chǔ)上加入圖片播放和電子書播放,以應(yīng)對MP3功能的差異化需求。詳細設(shè)計如下。

        2.硬件設(shè)計

        本多功能MP3由數(shù)據(jù)存儲、音頻解碼、液晶顯示、中心控制、電源、鍵盤等功能模塊構(gòu)成。

        2.1 數(shù)據(jù)存儲模塊

        選用Kingston SDHC卡作為存儲介質(zhì)。SDHC卡是一種高容量SD存儲卡,容量在2GB~32G,符合SD2.0規(guī)范,可采用FAT32文件系統(tǒng)管理。單片機通過通信讀寫SDHC卡命令和狀態(tài)寄存器完成相關(guān)操作工作。SD卡內(nèi)部有7個寄存器。其中OCR,CID,CSD和SCR寄存器保存卡的配置信息:RCA寄存器保存SD模式下通信過程SDHC卡當(dāng)前暫時地址;卡狀態(tài)(Card Status)和SD狀態(tài)(SD Status)寄存器保存卡當(dāng)前狀態(tài),如:是否寫成功,通信的CRC校驗是否正確等,這兩個寄存器的內(nèi)容與通信模式有關(guān)。

        須注意SD卡的工作電壓為3.3V,不能與5V單片機直接相連,可在SD模塊集成5-3.3V轉(zhuǎn)換電路,方便單片機與SDHC卡的耦合。

        2.2 音頻解碼模塊

        MP3文件其實是一種經(jīng)過MP3(即動態(tài)影像專家壓縮標(biāo)準(zhǔn)音頻層面)編碼算法壓縮的數(shù)據(jù),不能直接送給功放,必須先通過解碼還原出原始音頻數(shù)據(jù)再進行播放。本文所選解碼芯片為VLSI公司的VS1003,它支持MP3/WAV/WMA/MIDI音頻解碼和ADPCM編碼。VS1003的工作是通過對功能、狀態(tài)寄存器的讀寫完成的。其中控制信息通過SCI寫入功能寄存器,音頻數(shù)據(jù)通過SDI寫入VS1003數(shù)據(jù)緩沖區(qū)。寫音頻數(shù)據(jù)時,拉低XDCS,SDI有效;寫命令數(shù)據(jù)時,拉低XCS,SCI有效。須注意,VS1003在DREQ管腳為高電平時才可以接收數(shù)據(jù)。當(dāng)工作在解碼狀態(tài)時它通過一個串行接口接收比特流,比特流被解碼后通過數(shù)字音量控制器被送到18位DAC,得到的音頻模擬信號經(jīng)過功放被送到耳機接口,接上耳機即可聽到音樂聲。

        2.3 單片機控制模塊

        本文采用宏晶公司STC15F2K60S2單片機作為控制器,其2K字節(jié)片內(nèi)RAM可滿足系統(tǒng)運行RAM要求;該單片機采用增強型8051內(nèi)核,速度快,可滿足MP3播放數(shù)據(jù)交換要求;內(nèi)置SPI串行通信接口,易于與SD模塊、VS1003模塊耦合操作。該單片機的工作電壓5.5V~3.8V的寬電壓,推薦5V,須做好與SD卡管腳3.3V工作電壓的耦合,以防SD卡損壞或工作失常。

        2.4 TFT液晶顯示模塊

        TFT液晶即彩色晶體管液晶顯示器,它的像素點由集成在其后的薄膜晶體管來驅(qū)動,通過一定電路控制每一像素三基色光強的配比即可顯示各種彩色。8位單片機系統(tǒng)下的TFT液晶的顯示需要TFT液晶控制器來驅(qū)動,單片機可通過與TFT液晶控制器的交互間接控制TFT液晶的顯示。

        本文顯示模塊采用的是一款3.5寸320*480分辨率的16位真彩色TFT液晶屏。模塊采用8位并口方式與單片機連接,可通過8位的標(biāo)準(zhǔn)Intel8080總線進行指令和數(shù)據(jù)的傳輸,便于操作。

        TFT液晶的顯示是將圖形中每個像素點的位置和顏色信息在屏上對應(yīng)顯示,16位真彩色屏每一個像素點的位置信息(即坐標(biāo))和顏色信息按照一定格式存儲在兩個字節(jié)中。單片機操作時在對應(yīng)模式下將圖案所有像素點的信息送給控制器,在顯示器上通過像素點的點陣組合便可完成顯示。

        3.軟件設(shè)計

        本多功能MP3具備三大功能:歌曲播放、圖片播放、電子書播放。目標(biāo)數(shù)據(jù)的獲取是實現(xiàn)每個功能的首要問題。由于歌曲、圖片、電子書文件大,在SDHC卡以簇鏈形式存儲,需由文件系統(tǒng)進行數(shù)據(jù)管理,故嵌入FAT32文件系統(tǒng)(znFAT)解決上述問題。在此基礎(chǔ)上完成每個子功能與之相關(guān)的數(shù)據(jù)處理及系統(tǒng)整體運行框架即可實現(xiàn)全部功能。

        3.1 數(shù)據(jù)獲取

        數(shù)據(jù)獲取需保證SDHC卡的正確驅(qū)動和FAT32文件系統(tǒng)的正常運行。

        3.2 SDHC卡的驅(qū)動

        (1)初始化操作

        ①延時至少74clock,等待SD卡內(nèi)部操作完成。

        ②拉低CS選中SD卡。

        ③發(fā)送CMD0,若返回0x01,進入Idle狀態(tài)。

        ④發(fā)送CMD8命令,若返回0x01,初步判斷為2.0卡,循環(huán)發(fā)送CMD55+ACMD41,直至返回0x00,確定SD2.0卡初始化成功。

        ⑤拉高CS。

        (2)讀數(shù)據(jù)操作

        ①發(fā)送CMD17(讀取單個扇區(qū))或CMD18(連續(xù)讀取多個扇區(qū))讀命令,返回0x00表示操作成功。

        ②接收數(shù)據(jù):格式為開始令牌(0xfe)+512B正式數(shù)據(jù)+2B CRC校驗碼。

        (3)寫數(shù)據(jù)操作

        ①發(fā)送CMD24(寫單個扇區(qū))或CMD25(連續(xù)寫多個扇區(qū))寫命令,返回0x00表示操作成功。

        ②發(fā)送數(shù)據(jù):格式為開始令牌(0xfe)+512B正式數(shù)據(jù)+2B CRC校驗碼。

        (4)擦除操作

        ①發(fā)送CMD32擦除開始地址。

        ②發(fā)送CMD33和擦除結(jié)束地址。

        ③發(fā)送CMD38,擦除指定的多扇區(qū)內(nèi)容。

        SDHC驅(qū)動常用函數(shù)如下:

        函數(shù)定義 " 功能與參數(shù)描述

        SD_Init() SD卡初始化

        SD_Write_Sector(addr,buffer) 將buffer中的數(shù)據(jù)寫入到addr扇區(qū)中

        SD_Read_Sector(addr,buffer) 讀取addr扇區(qū)中數(shù)據(jù)到buffer中

        SD_Write_nSector(nsec,addr,buffer) 將buffer中的數(shù)據(jù)寫入到addr開始的nsec個扇區(qū)中

        SD_Read_nSector(nsec,addr,buffer) 讀取addr開始的nsec個扇區(qū)數(shù)據(jù)到buffer中

        SD_Erase_nSector(addr_sta,addr_end) 擦除addr_sta開始addr_end結(jié)束的多個扇區(qū)

        SD_GetTotalSec() 獲取SD卡的物理總扇區(qū)數(shù)

        4.FAT32文件系統(tǒng)

        本文文件系統(tǒng)選擇免費開源系統(tǒng)znFAT。znFAT的整體結(jié)構(gòu)分為應(yīng)用層層、實現(xiàn)層、物理驅(qū)動層,用戶只需編寫物理驅(qū)動層扇區(qū)讀寫等函數(shù)。可供用戶操作的功能包括打開文件、讀取數(shù)據(jù)、創(chuàng)建文件等;

        本文中涉及最多的是數(shù)據(jù)的讀取,讀取數(shù)據(jù)可通過“打開文件函數(shù)UINT8 znFAT_Open_File(struct FileInfo *pfi,INT8 *filepath,UINT32 n,UINT8 is_file)”和“讀取數(shù)據(jù)函數(shù)UINT32 znFAT_Read_File(struct FileInfoStruct *pfi,UINT32 offset,UINT32 len,UINT8 *pbuf)”來完成。

        4.1 歌曲播放

        歌曲播放是STC15F單片機通過文件系統(tǒng)讀取SDHC卡中的MP3文件,將MP3數(shù)據(jù)送給VS1003模塊解碼得到模擬音頻信號流的過程。同時通過MP3文件文件目錄項信息解析出文件名(歌曲名);用文件已讀取字節(jié)數(shù)量除以文件總大小得到播放進度;在VS1003打入頻譜補丁的前提下從地址0x6 0x7 0xa三個寄存器中讀出頻譜相關(guān)信息;并逐一顯示。播放過程中,按鍵可以切換歌曲,調(diào)節(jié)音量。歌曲的切換是通過改變系統(tǒng)內(nèi)部為不同歌曲分配的不同序列號而完成的。由于一方面單片機RAM有限,無法單次讀取太多MP3數(shù)據(jù)且一次讀取過多會因耗時過多而引起播放的卡頓;另一方面,兩次數(shù)據(jù)讀取中間有按鍵檢測,若一次讀取數(shù)據(jù)過多會降低按鍵的靈敏性。要實現(xiàn)邊播放邊檢側(cè)按鍵需找到一個單次讀取數(shù)據(jù)量的平衡點,建議選擇300B。

        播放過程需解決VS1003驅(qū)動問題和相關(guān)數(shù)據(jù)處理。VS1003驅(qū)動方法如下:

        單片機對VS1003驅(qū)動是通過SPI通信方式對VS1003的命令狀態(tài)寄存器進行讀取和刷寫而完成的。使用時須首先對VS1003硬件復(fù)位,將XRESET拉低并延時;其次向模式寄存器(地址0x0)寫入0X0804;再次設(shè)置時鐘寄存器(地址0x3)和采樣率寄存器(地址0x5);最后設(shè)置音量且發(fā)送4個無效數(shù)據(jù)啟動數(shù)據(jù)傳輸,4個無效數(shù)據(jù)的傳輸不能忽略。其中VS1003采用大端模式;音量寄存器的設(shè)置值為0~255,對應(yīng)音量的最大和最小,編程時需注意。

        數(shù)據(jù)處理偽代碼如下:

        void Mp3play()

        {

        //相關(guān)變量定義

        //文件系統(tǒng)及相關(guān)物理設(shè)備初始化

        //刷寫播放背景

        while(!znFAT_Open_File(amp;FileInfo,”\\歌曲\\*.mp3”,Sang_Num,1))//打開歌曲目錄下序號為1的歌曲文件

        {

        while( len = znFAT_Read_File(amp;FileInfo,F(xiàn)ileInfo.FileCurOffset,400,mp3_buf))//讀出部分MP3數(shù)據(jù)

        {

        //MP3數(shù)據(jù)發(fā)送給VS1003

        VS_XDCS = 0;

        for( i=0; ilt;len; i++)

        {

        VS_Send_Dat(mp3_buf[i]);

        }

        VS_XDCS = 1;

        //播放進度顯示

        //頻譜顯示

        }

        //歌曲名顯示

        //按鍵檢測及處理

        }

        }

        4.2 圖片播放

        圖片播放類似于歌曲播放,不同在于讀出的圖片文件數(shù)據(jù)發(fā)送給TFT顯示屏模塊進行顯示。由于所選顯示屏分辨率為320*480,單次數(shù)據(jù)讀取大小建議為320,則兩次讀數(shù)據(jù)寫屏過程便可寫滿顯示屏的一行,重復(fù)書寫320行即可完成圖片顯示。

        4.3 電子書播放

        電子書播放的首要問題是漢字顯示。漢字的顯示就是以字模信息為底本在顯示屏上畫圖,以某漢字字模信息為底本畫出的圖即是該漢字。本文選擇的字模庫是UCDOS操作系統(tǒng)下的漢字字模庫HZK16.dat。

        txt文件存儲信息實質(zhì)為漢字在字模庫中的區(qū)碼和位碼。首先從SDHC卡分多次讀出txt文件數(shù)據(jù),其中每個漢字信息由兩個字節(jié)儲存,每個英文字母及英文標(biāo)點由一個字節(jié)儲存。字節(jié)內(nèi)容為字符在字模庫中的位置,漢字字模位置可由公式“字模在HZK16中的偏移量=[(區(qū)碼-1)*94+(位碼-1)]*32”算出;接著用“UINT8 znFAT_seek(struct FileInfo *pfi,UINT32 offset)函數(shù)(znfat功能層函數(shù))”讀出16*16漢字的32字節(jié)字模信息并將對應(yīng)漢字刷寫在顯示屏上。重復(fù)以上漢字的顯示過程便可實現(xiàn)電子書的播放。建議每次讀取的txt文件大小為200B,需特別注意的是,須檢測每次讀取最后一個字節(jié)是不是英文字母或英文標(biāo)點,是則讀,若不是或是下個漢字的區(qū)碼,則不讀,以免造成漢字顯示紊亂。同時,在每次txt文件讀取的間隙進行按鍵處理,包括上下頁、上下篇、返回等。

        4.4 系統(tǒng)整體框架

        系統(tǒng)整體框架解決的問題是各功能之間的協(xié)調(diào)和切換.代碼中每個功能具不同序號,并設(shè)有一個功能切換標(biāo)志字,通過按鍵改變功能切換標(biāo)志字的值即可實現(xiàn)各個功能的切換。其具體實現(xiàn)軟件流程圖如圖1所示。

        圖1

        5.實物調(diào)試及結(jié)果

        經(jīng)過制板和元件焊接,完成實物制作。將SDHC卡格式化為FAT32格式,裝入歌曲、圖片、電子書文件。將內(nèi)存卡裝入卡座進行測試。各方面功能正常,可正常播放320kbs音樂文件、300K 320*480的二進制圖片文件、txt電子書文件。MP3文件的播放可以暫停,切換上下去,快進;圖片的播放可切換上下張;txt的播放可上下翻頁,可切換篇,查看進度。但圖片刷寫和電子書刷寫稍稍顯慢,這是受單片機處理速度所限,但也在可承受范圍。

        6.結(jié)語

        雖然當(dāng)前電子產(chǎn)品日益豐富,但由于MP3的便攜性和專業(yè)性,相信MP3不會走出人們的視角,并會將以功能個性化作為主打,在不遠的將來,MP3的功能及設(shè)計有望實現(xiàn)個人定制。本文即是針對當(dāng)前MP3功能差異化需求現(xiàn)象做出的一次嘗試,設(shè)計了一款多功能MP3,旨在滿足當(dāng)下人們對電子產(chǎn)品功能的差異化需求.該設(shè)計功能強大,成本低,宜于批量化生產(chǎn)。

        參考文獻

        [1]微軟FAT32文件系統(tǒng)白皮書.

        [2]于振南.嵌入式FAT32文件系統(tǒng)設(shè)計與實現(xiàn):基于振南znFAT[M].北京航空航天大學(xué)出版社.2014.

        [3]汪勇,熊前興.MP3文件格式解析[J].計算機應(yīng)用與軟件,2004(12).

        [4]羅鈞,桂杰出.一種基于通用單片機的MP3播放器解決方案[J].重慶大學(xué)學(xué)報(自然科學(xué)版),2003(12).

        作者簡介:

        趙健(1992—),男,寧夏固原人,成都理工大學(xué)核技術(shù)及其自動化學(xué)院在讀本科生,研究方向:嵌入式系統(tǒng)。

        薛成成(1988—),女,吉林長春人,成都理工大學(xué)核技術(shù)及其自動化學(xué)院在讀本科生,研究方向:嵌入式系統(tǒng)。

        南永兵(1991—),男,新疆昌吉人,成都理工大學(xué)核技術(shù)及其自動化學(xué)院在讀本科生,研究方向:嵌入式系統(tǒng)。

        本道天堂成在人线av无码免费 | 亚洲一区二区高清在线| 在线观看视频国产一区二区三区| 91精品亚洲成人一区二区三区| 日韩精品乱码中文字幕| 伊人大杳焦在线| а√天堂资源8在线官网在线| 东北无码熟妇人妻AV在线| 国产成人丝袜在线无码| 日韩中文字幕久久久老色批| 国产午夜精品av一区二区麻豆 | 亚洲国产精品无码久久九九大片健| 亚洲免费精品一区二区| 日韩视频在线观看| 藏春阁福利视频| 狠狠久久精品中文字幕无码| 色婷婷亚洲十月十月色天| 亚洲中文字幕久久在线| 久久成人国产精品免费软件| 亚洲欧美日韩中文天堂| 精品国产97av一区二区三区| 日本高清一区二区三区在线观看| 久久人妻av一区二区软件| 国产suv精品一区二区| 亚洲黄片久久| 日韩中文字幕素人水野一区| 久久99精品国产麻豆不卡| 亚洲综合欧美在线| 亚洲中文字幕乱码在线视频| 97丨九色丨国产人妻熟女| 欧美gv在线观看| 丰满人妻AV无码一区二区三区| 国产一区二区三区最新地址| 粗大猛烈进出白浆视频| 久久这里只有精品9| 亚洲av色香蕉一区二区三区软件 | 国产70老熟女重口小伙子| 国产精品不卡无码AV在线播放| 国产成人美涵人妖视频在线观看| 国产成人亚洲精品无码青| 丰满人妻熟妇乱又伦精品视|