U盘MP3播放的设计.docx

上传人:b****3 文档编号:3838527 上传时间:2022-11-25 格式:DOCX 页数:15 大小:640.68KB
下载 相关 举报
U盘MP3播放的设计.docx_第1页
第1页 / 共15页
U盘MP3播放的设计.docx_第2页
第2页 / 共15页
U盘MP3播放的设计.docx_第3页
第3页 / 共15页
U盘MP3播放的设计.docx_第4页
第4页 / 共15页
U盘MP3播放的设计.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

U盘MP3播放的设计.docx

《U盘MP3播放的设计.docx》由会员分享,可在线阅读,更多相关《U盘MP3播放的设计.docx(15页珍藏版)》请在冰豆网上搜索。

U盘MP3播放的设计.docx

U盘MP3播放的设计

 

 

简易U盘MP3播放器

 

2011年3月

摘要

MP3是一种高质量音乐压缩标准,采用MP3压缩的数据量可以缩小到1/12,音质却没有多少损失。

MP3技术已经渗透到生活的各个方面如手机、数码相机等。

然而传统MP3一体化的设计限制了其在其他领域的应用同时也限制了其存储量。

本文介绍了一种存储器与播放器分离U盘MP3播放器就解决了上述问题。

U盘MP3系统可广泛应用于星级宾馆的客房音乐系统、长途巴士、旅客列车以及音响等领域。

而且增强了MP3内存的灵活性。

目录

1作品简介1

2创新点与实用性1

2.1创新点1

2.2实用点1

3主要芯片介绍2

3.1控制芯片STC12C5A60S2简介2

3.2解码芯片VS1003简介3

3.3读取U盘芯片CH375简介3

4MP3系统原理4

4.1数据读取模块4

4.2解码模块5

5硬件电路设计5

5.1CH375U盘读取模块5

5.2VS1003实现MP3解码6

5.3电源转换7

6软件实现部分7

6.1读取U盘部分7

6.2VS1003解码8

6.3MP3播放9

7各项参数及指标10

7.1VS1003各项参数10

7.1.1参数容许最大范围10

7.1.2模拟参数的各项指标10

7.1.3数字指标11

7.2CH375的各项指标11

7.2.1绝对最大值11

7.2.2电器参数11

参考文献12

附录13

1初始化U盘13

2初始化VS100314

3向VS1003写入和读取音频数据15

1作品简介

本设计介绍了一个能实现U盘播放MP3文件的系统。

分三个模块组成,控制模块、数据读取模块、解码模块。

其中控制模块由STC12C5A60S2芯片实现;数据读取模块由CH375芯片实现;解码模块由VS1003芯片实现。

实验证明整个系统工作稳定,播放流畅,效果良好,解决了当前MP3内存固定的问题同时也突破了其播放和存储设备一体化得限制。

2创新点与实用性

2.1创新点

随着电子技术的发展MP3向着大容量、高音质、小巧便携等方向不断发展虽然播放器与存储器的一体化设计便于携带但此时也带来了新的问题比如内存固定;另一方面,一体化设计也限制了MP3在其他领域的应运。

而本文所设计的MP3将存储器与播放器分离突破了传统的MP3内存固定,不易扩展的问题,采用U盘播放MP3可以使内存灵活可变,改变U盘容量的大小即改变了MP3的内存,大大增强MP3内存容量的灵活性;另一方面,也突破了传统MP3一体化设计的限制,采用U盘播放MP3的方式便于MP3技术在其他领域的应用。

2.2实用点

本设计简易易U盘播放器实性较强,分两个方面。

1、相比与当前市面上的MP3本文所设计的MP3内存更加灵活,可以下载更多的歌曲,方便了那些为了下载更多的歌曲而去购买新的MP3的人群,同时也节省了资源。

2、由于存储器与播放器的分离,方便了MP3技术在其他领域的应运如音响、广播、车载MP3等。

同时也为数据采集、存储移动提供了价格低廉的解决方案。

3主要芯片介绍

主要用了三个芯片完成设计。

控制芯片STC12C5A60S2,解码芯片VS1003,读取U盘芯片CH375.

3.1控制芯片STC12C5A60S2简介

STC12C5A60S2/AD/PWM系列单片机是宏晶科技生产的单时钟/机器周期(1T)的单片机,是高速/低.功耗/超强抗干扰的新一代8051单片机,指令代码完全兼容传统8051,但速度快8-12倍。

内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换(250K/S),针对电机控制,强干扰场合。

封装图如图3.1

图3.1

3.2解码芯片VS1003简介

VS1003是由荷兰VLSI公司出品的一款单芯片的MP3/WMA/MIDI音频解码和ADPCM编码芯片,其拥有一个高性能低功耗的DSP处理器核VS_DSP,5K的指令RAM,0.5K的数据RAM,串行的控制和数据输入接口,4个通用IO口,一个UART口;同时片内带有一个可变采样率的ADC、一个立体声DAC以及音频耳机放大器VS1003通过一个串行接口来接收输入的比特流,它可以作为一个系统的从机,输入的比特流被解码。

图3.2.1芯片实物图

图3.2.2芯片引脚封装图

3.3读取U盘芯片CH375简介

Ch375是一个USB总线的通用接口芯片,支持USB—HOST主机方式和USB—DEVICE的设备方式Ch375具有8位数据总线和读、写、片选控制线以及中断输出,可以方便的挂接到单片机等控制器的系统总线上。

在USB主机方式下还提供了串口通信方式通过串行输入、串行输出和中断输出与单片机等设备相连。

图3.3.1

4MP3系统原理

图4

如图4所示由MCU控制将存储于U盘中歌曲的码流信息送入到VSl003芯片中,通过VSl003芯片解码以及其内含的高质量的立体声DAC和耳机驱动电路,实现MP3歌曲的播放功能。

4.1数据读取模块

图4.1

如图4.1所示,在主机方式时MCU通过RD,WR,IT和地址线AO的综合控制,完成与CFl375的通讯,通过USB接口实现从U盘读写数据的功能。

INT引脚和MCU的外部中断输入引脚相连,当有U盘插入时1NT变为低电平触发外部中断,当CS,RD和AO都为低电平时,CH375中的数据可以通过D7~DO输出;当CS,WR和AO都为低电平时,D7~DO上的数据被写入CH375芯片中;当CS和WR都为低电平AO为高电平时,D7~DO中的数据可作为命令码写入CH375芯片中。

4.2解码模块

图4.2

系统启动后,由MCU控制将存于U盘中的歌曲码流信息送到VS1003芯片中通过VS1003芯片解码以及其内含的高质量的立体DAC和耳机驱动电路,实现MP3的歌曲播放功能。

VS1003的所有数据和控制命令均通过SPI总线接口实现。

如图4.2所示。

5硬件电路设计

5.1CH375U盘读取模块

图5.1

如图5.1所示CH375通过接口与MCU相连实现命令与信息的传输,D0到D7为数据总线实现U盘数据的读取。

CS、A0、RD、WR为命令控制端。

5V供电。

5.2 VS1003实现MP3解码

图5.2

MCU从U盘采集的数据通过SPI通信传输给VS1003进行解码.采用12.288MHZ的晶振.当采用其他晶振时需要设定相应的时钟。

如图5.2

5.3电源转换

图5.3

电压转换部分采用AME1117实现各部分电压转化完成各部分的电源需求。

如图5.3

6软件实现部分

6.1读取U盘部分

单片机读写U盘的程序可分为两大块:

应运程序和固定程序。

应运程序完成系统的数据处理任务、外围控制等功能;固定程序处理底层的通信协议、文件系统。

U盘文件的读写方式采取扇区模式,扇区为基本单位进行读写操作从而将USB存储设备简化为一种外部数据,存储器单片机可以自由的读写其中的数据,具体流程如图6.1所示。

图6.1

6.2VS1003解码

VS1003以XDCS为同步信号,随着始终的变化,数据根据控制命令的设置依次从高位或低位送出.控制命令协议包括一个控制指令字节、一个地址字节、和一个16位数据字每次读写控制可以操作一个寄存器工作时序如图同时VS1003通过一个工作于从模式的SPI串行总线与主机进行数据和控制信息的交流控制信号和数据信号的传送分别采用XCS和XDCS作为同步信号。

数据信号XDCS为低时通过串行接口传送音频数据,当控制信号XCS为低时串行接口传送音频控制命令作为从机工作模式VS1003通过一个信号线DREQ指示是否允许主机传送数据当DREQ为高时VS1003接受32K的命令或数据信息。

图6.2.1数据传送工作时序

图6.2.2读命令工作时序

图6.2.3写命令工作时序

6.3MP3播放

首先完成对VS1003和SPI总线的初始化,然后等待系统从U盘中打开MP3文件,从中读取一个扇区的数据放入STC12C5A60S2的缓存中,然后将数据发往VS1003,解码器就会自动播放出流畅的音乐

7各项参数及指标

7.1VS1003各项参数

7.1.1参数容许最大范围

图7.1.1

7.1.2模拟参数的各项指标

图7.1.2

AVDD=2.5-3.6V,CVDD=2.4-2.7V,XTALI=12-13HZ,内部时钟倍频为3.5X,模拟输出负载:

左声道到地30欧,右声道到地30欧.麦克风测试幅度50MVPP,频率1KHZ.

7.1.3数字指标

图7.1.3

(1)必须不能超过3.6V。

(2)是在SCI读操作时,在SCI和SDI写操作时允许至CLKI/4。

7.2CH375的各项指标

7.2.1绝对最大值

图7.2.1

7.2.2电器参数

图7.2.2

参考文献

夏继强.单片机实验与实践教程.北京:

北京航空航天大学出版社,2001

何立民.单片机高级教程.第1版.北京:

北京航空航天大学出版社,2001

赵晓安.MCS-51单片机原理及应用.天津:

天津大学出版社,2001.3

陈志强胡辉.单片机应用系统设计实践指南.自编教材

李华.MCS-51系列单片机应用接口技术.北京航空航天大学出版,1993

黄平平吉荣廷沈大鹏.基于CH375实现单片机读写U盘[J].现代电子技术.2006年18期

刘滨赵艳华周鹏.U盘在数据采集系统中的应用[J].电测与仪表.2005年11期

苏公雨.MP3技术及系统构成[J].电子产品世界.1999年09期

毛汉领吴振勇.方便随时学习的MP3课件教学设计[J].现代远程教育研究.2009年01期

附录

1初始化U盘

unsignedcharCH375_InitDisk()

{unsignedcharstatus,i,j=0;

status=CH375_Wait_Int();

if(status==USB_INT_DISCONNECT)

return1;/*USB设备断开*/

while

(1)

{

CH375_Write_Cmd(CMD_DISK_INIT);/*初始化USB存储器*/

status=CH375_Wait_Int();/*等待中断并获取状态*/

if(status==USB_INT_SUCCESS)

break;

}

while

(1)

{

j++;

CH375_Write_Cmd(CMD_DISK_SIZE);/*获取USB存储器的容量*/

status=CH375_Wait_Int();/*等待中断并获取状态*/

if(status==USB_INT_SUCCESS)

break;

else

{

delay(1000);

CH375_Write_Cmd(CMD_DISK_R_SENSE);/*获取USB存储器的容量*/

status=CH375_Wait_Int();/*等待中断并获取状态*/

if(status==USB_INT_SUCCESS)/*出现错误*/

continue;

else

return1;

}

if(j==5)

return1;

}

for(i=0;i!

=5;i++)

{

CH375_Write_Cmd(CMD_DISK_READY);/*获取USB存储器的容量*/

status=CH375_Wait_Int();/*等待中断并获取状态*/

if(status==USB_INT_SUCCESS)

return0;/*U盘已经成功初始化*/

}

return1;

}

2初始化VS1003

voidVS_Reset()

{

VS_XRESET=1;

delay(100);

VS_XRESET=0;

delay(100);

VS_XRESET=1;/*硬件复位,XRESET低电平有效*/

delay(100);

VS_Write_Reg(0x00,0x08,0x04);/*软件复位*/

VS_Write_Reg(0x03,0x98,0x00);/*时钟设置*/

VS_Write_Reg(0x0b,0x00,0x00);/*音量设置,左右声道均最大音量*/

VS_XDCS=0;/*打开数据片选,注意此时XCS(片选)为高电平*/

SPI_WriteByte(0);/*写入数据,这里写入4个0,是无关数据,用来启动数据传输*/

SPI_WriteByte(0);

SPI_WriteByte(0);

SPI_WriteByte(0);

VS_XDCS=1;/*关闭数据片选,SDI无效*/

}

3向VS1003写入和读取音频数据

voidVS_Send_Dat(unsignedchardat)

{

VS_XDCS=0;/*打开SDI,此时可以向VS1003写入音频数据*/

VS_DREQ=1;

while(!

VS_DREQ);/*VS1003的DREQ为高才能写入数据*/

SPI_WriteByte(dat);/*通过SPI向VS1003写入一个字节的音频数据*/

VS_XDCS=1;

}

unsignedintVS_Read_Reg(unsignedcharaddr)

{

unsignedinttemp=0;

VS_DREQ=1;

while(!

VS_DREQ);/*VS1003的DREQ为高电平时才接收数据*/

VS_XCS=0;/*打开片选,SCI有效*/

SPI_WriteByte(0x03);/*读出操作码0x03*/

SPI_WriteByte(addr);/*写入寄存器地址*/

temp=SPI_ReadByte();/*读高字节*/

temp<<=8;

temp|=SPI_ReadByte();/*低字节,与高字节拼成一个字*/

VS_XCS=1;/*关闭片选,SCI无效*/

returntemp;/*返回读到的值*/

}

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 商务科技

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1