一種以優(yōu)盤為存儲介質(zhì)的MP3播放器設(shè)計
2.
該部分程序是根據(jù)FAT16/FAT32文件系統(tǒng)的結(jié)構(gòu),實現(xiàn)對文件的讀、寫、創(chuàng)建、刪除等操作。優(yōu)盤上的數(shù)據(jù)按照其不同的特點(diǎn)和作用大致可分為5部分:MBR區(qū)(主引導(dǎo)記錄區(qū))、DBR區(qū)(系統(tǒng)引導(dǎo)記錄區(qū))、FAT區(qū)(文件分配表區(qū))、FDT區(qū)(文件目錄表區(qū))和DATA區(qū)(數(shù)據(jù)區(qū))。
在實現(xiàn)對文件的讀/寫時,首先根據(jù)MBR區(qū)和DBR區(qū)的大小,找到FAT表的位置,然后根據(jù)FAT表找出相應(yīng)文件的數(shù)據(jù)位置,即可對此文件進(jìn)行相應(yīng)的處理。其具體實現(xiàn)涉及FAT文件系統(tǒng)的結(jié)構(gòu),此處不再詳述。
2.2 VS1011B的控制與音樂文件數(shù)據(jù)輸入
本方案mp3播放器的實現(xiàn)原理就是控制器 從優(yōu)盤讀取MP3文件數(shù)據(jù),當(dāng)VS1011B的數(shù)據(jù)緩沖區(qū)需要數(shù)據(jù)時,將數(shù)據(jù)送入VS1011B進(jìn)行解碼。VS1011B采用串行接口,有兩種接口模式:
Native Modes(新模式)和Compatibility;
Mode(兼容模式)。當(dāng)?shù)刂窞?x0的MODE寄存器的SM_SDINEW位為1時為新模式;反之為兼容模式。上電時默認(rèn)為新模式。
在播放音樂之前,首先需要對VS1011B進(jìn)行初始化,然后輸入音樂文件即可播放歌曲。其控制步驟如下:[3]
?、?拉低nRST1。
?、?等待DREQ引腳信號變高。
③ 寫寄存器MODE的參數(shù),包括正確設(shè)置SM_SDINEW和SM_SDISHARED位。
?、?若時鐘數(shù)率非24.576 MHz,應(yīng)設(shè)置SCI_CLOCKF。
?、?若使用倍頻時鐘,試圖通過改變SCI_CLOCKF直接操作,應(yīng)將適當(dāng)?shù)牟蓸铀俾蕦懭隨CI_AUDATA寄存器,等待至少11 000個時鐘后才可以操作高速的SPI通信。
⑥ 設(shè)置音量寄存器SCI_VOL。
?、?若希望加強(qiáng)低音,可設(shè)置寄存器SCI_BASS。
?、?從優(yōu)盤讀取一首MP3歌曲文件,并開始傳送音樂數(shù)據(jù)。應(yīng)注意數(shù)據(jù)傳送的規(guī)則,DREQ信號是用來表示VS1011B的MP3數(shù)據(jù)緩沖區(qū)是否需要數(shù)據(jù)。當(dāng)VS1011B的數(shù)據(jù)緩沖區(qū)可再接收32字節(jié)數(shù)據(jù)時,DREQ引腳電平變高。當(dāng)軟件查詢到此引腳電平變高時,就再送入32個字節(jié)的MP3音樂數(shù)據(jù)。
?、?本首歌曲完成播放,讀取下一首MP3歌曲,并轉(zhuǎn)到步驟⑧。
結(jié)語
本文介紹了使用優(yōu)盤存儲MP3歌曲文件的一種MP3播放器的設(shè)計,其中軟件設(shè)計的難度較大。此外VS1011B除支持MP3格式音樂文件外,還支持WAV格式等,改變一下軟件即可播放WAV文件格式的音樂。如果MP3播放器設(shè)計帶有液晶屏,則可以通過把相應(yīng)的歌曲歌詞存儲在優(yōu)盤上,實現(xiàn)實時歌詞顯示等功能。
雖然這里給出的只是優(yōu)盤在嵌入式系統(tǒng)中的一個應(yīng)用示例,但在此基礎(chǔ)上很容易演變出別的功能。例如對本系統(tǒng)稍加改變,即可把優(yōu)盤換成USB移動硬盤,這樣可以有更大的存儲容量。在這種大存儲容量的基礎(chǔ)上,才能設(shè)計對存儲容量要求較大的MP4播放器、硬盤攝像機(jī)等。另外,本文的設(shè)計思路還可以應(yīng)用在以嵌入式為核心的許多其他工業(yè)或消費(fèi)類電子產(chǎn)品中,如數(shù)據(jù)采集保存器、數(shù)碼相機(jī)等,方便地實現(xiàn)與PC的數(shù)據(jù)交換。
評論