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