一种以优盘为存储介质的MP3播放器设计
SL811Write(EP0Control,0x01);
SL811Write(IntEna,0x20);
//清中断
SL811Write(IntStatus,INT_CLEAR);
}
2.1.2 USB设备协议层的实现
该部分实现对优盘扇区的直接读写,其中两个很重要的函数为Bulkin和Bulkout。此处只列出Bulkin函数的实现:
/**********************************
函数名称:epB
ulkRcv
函数功能:实现bulkonly协议中的Bulkin函数
输入参数:pBuffer为数据的地址,len为数据的长度
返回值:TRUE为成功,FALSE为失败
**********************************/
unsigned char epBulkRcv(unsigned char *pBuffer,unsigned int len){
usbstack.usbaddr=0x1;
usbstack.endpoint=usbstack.epbulkin;
usbstack.pid=PID_IN;
//设置包长度为64
usbstack.wPayload=64;
usbstack.wLen=len;
usbstack.buffer=pBuffer;
if(usbstack.wLen){
if(!usbXfer())
return FALSE;
}
return TRUE;
}
2. 1.3 FAT16/FAT32文件格式的实现
该部分程序是根据FAT16/FAT32文件系统的结构,实现对文件的读、写、创建、删除等操作。优盘上的数据按照其不同的特点和作用大致可分为5部分:MBR区(主引导记录区)、DBR区(系统引导记录区)、FAT区(文件分配表区)、FDT区(文件目录表区)和DATA区(数据区)。
在实现对文件的读/写时,首先根据MBR区和DBR区的大小,找到FAT表的位置,然后根据FAT表找出相应文件的数据位置,即可对此文件进行相应的处理。其具体实现涉及FAT文件系统的结构,此处不再详述。
2.2 VS1011B的控制与音乐文件数据输入
本方案mp3播放器的实现原理就是控制器 从优盘读取MP3文件数据,当VS1011B的数据缓冲区需要数据时,将数据送入VS1011B进行解码。VS1011B采用串行接口,有两种接口模式:
Native Modes(新模式)和Compatibility;
Mode(兼容模式)。当地址为0x0的MODE寄存器的SM_SDINEW位为1时为新模式;反之为兼容模式。上电时默认为新模式。
在播放音乐之前,首先需要对VS1011B进行初始化,然后输入音乐文件即可播放歌曲。其控制步骤如下:[3]
① 拉低nRST1。
② 等待DREQ引脚信号变高。
③ 写寄存器MODE的参数,包括正确设置SM_SDINEW和SM_SDISHARED位。
④ 若时钟数率非24.576 MHz,应设置SCI_CLOCKF。
⑤ 若使用倍频时钟,试图通过改变SCI_CLOCKF直接操作,应将适当的采样速率写入SCI_AUDATA寄存器,等待至少11 000个时钟后才可以操作高速的SPI通信。
⑥ 设置音量寄存器SCI_VOL。
⑦ 若希望加强低音,可设置寄存器SCI_BASS。
⑧ 从优盘读取一首MP3歌曲文件,并开始传送音乐数据。应注意数据传送的规则,DREQ信号是用来表示VS1011B的MP3数据缓冲区是否需要数据。当VS1011B的数据缓冲区可再接收32字节数据时,DREQ引脚电平变高。当软件查询到此引脚电平变高时,就再送入32个字节的MP3音乐数据。
⑨ 本首歌曲完成播放,读取下一首MP3歌曲,并转到步骤⑧。
结语
本文介绍了使用优盘存储MP3歌曲文件的一种MP3播放器的设计,其中软件设计的难度较大。此外VS1011B除支持MP3格式音乐文件外,还支持WAV格式等,改变一下软件即可播放WAV文件格式的音乐。如果MP3播放器设计带有液晶屏,则可以通过把相应的歌曲歌词存储在优盘上,实现实时歌词显示等功能。
虽然这里给出的只是优盘在嵌入式系统中的一个应用示例,但在此基础上很容易演变出别的功能。例如对本系统稍加改变,即可把优盘换成USB移动硬盘,这样可以有更大的存储容量。在这种大存储容量的基础上,才能设计对存储容量要求较大的MP4播放器、硬盘摄像机等。另外,本文的设计思路还可以应用在以嵌入式为核心的许多其他工业或消费类电子产品中,如数据采集保存器、数码相机等,方便地实现与PC的数据交换。
发布者:小宇
- 选购数码摄像机四点技术常识(05-01)
- 视频MP3音/视频设计的新需求 (03-09)
- 手机TFT显示驱动的解决方法和应用方法 (04-21)
- 基于MCU和音频解码器设计磁带式MP3播放器 (06-20)
- 基于AT90S2313-4PC的MP3无线遥控自动点播机 (上)(07-24)
- 基于AT90S2313-4PC的MP3无线遥控自动点播机(下)(07-24)