0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

采用STC89C58RD+单片机和VS1011E解码芯片实现MP3播放器的设计

电子设计 来源:郭婷 作者:电子设计 2018-12-30 08:10 次阅读

随着人们对便携式音乐播放器要求的提高,MP3播放器以其较小的体积和较好的音质受到广大音乐爱好者的青睐。起初,MP3文件由电脑来播放,后来互联网的发展促进了MP3播放器的产生,同时MP3播放器也发生了一系列的变化,其更加小巧精致,更人机化和情趣化。现在市场上MP3的款式越来越多,功能越来越丰富,但现有MP3播放器大多是将解码器与存储器一体化的。这种设计使MP3播放器方便携带,但也带来了问题:一是存储容量不易扩展;二是不利于MP3播放器在其他领域的应用。将播放器与存储器分离是MP3播放器目前发展的一个方向[1-3].本系统采用STC89C58RD+单片机,结合USB接口芯片CH375、解码芯片VS1011E、Nokia5110液晶等外围设备设计并实现MP3播放器,该系统以USB-HOST方式读取U盘的MP3文件并将其解码播放,同时具备读取音乐标签,U盘电子书和贪吃蛇游戏等功能。

系统总体设计

MP3播放器是一种新兴的数字音乐播放器,播放MP3、WMA等格式的文件。通过用MPEG-1 Layer 3编码技术,可以得到大约12:1压缩的有损音乐信号。尽管MP3文件是有损的,它在压缩过程中对功率谱较弱的信号有所丢失,但它同CD原声区别不大,不影响一般音乐爱好者对音乐的欣赏。MP3大大缩小了声音文件的长度,使音乐的传输和存储更方便。MP3播放器系统结构如图1所示。系统启动后,STC89C58RD+单片机 通过USB接口芯片CH375,从U盘中获取MP3格式文件的数据,并存入片内RAM进行缓冲,然后单片机定时将数据从缓冲区送到MP3音频解码芯片VS1011E,实现解码并输出音频信号到耳机或有源音响。用户可以通过键盘实现“启动”、“停止”、“上一曲”、“下一曲”和“音量控制”等功能,并通过Nokia5110液晶显示播放状态信息。系统在硬件上主要包括数据读取模块、音频解码模块和液晶显示模块等。

采用STC89C58RD+单片机和VS1011E解码芯片实现MP3播放器的设计

系统硬件模块的实现

数据读取模块

单片机读取MP3数据模块包括STC89C58RD+单片机、USB接口芯片CH375和MP3格式数据存储U盘三部分。

STC89C58RD+单片机

系统采用STC89C58RD+单片机,该单片机是美国STC公司设计,国内宏晶公司生产的新一代51增强型单片机,引脚和指令系统均与51单片机兼容。它具有加密性强、超强抗干扰、超低功耗、在系统可编程、内含MAX810专用复位电路等特点[4].

该单片机采用MCS51内核,其内含32KB的FLASH和16KB的EEPROM,同时内含1KB的内部SRAM存储空间。因而可用于音频数据处理和显示数据处理需要进行较大数据缓冲的情况下。该单片机最高可工作于33MHz时钟,本系统中,它工作在30MHz时钟下,能满足系统对数据带宽的要求。

CH375接口芯片

CH375是一种通用USB总线接口芯片,其内部集成PLL倍频器、数据缓冲区、主从USB接口SIE、被动并行接口、异步串行接口、命令解释器、控制传输的协议处理器和通用的固件程序等[5].它有USB-HOST和USB-SLAVE两种方式,其中USB-HOST方式支持各种常用的USB全速设备,外部单片机、MCUDSP可以通过CH375按照相应的USB协议与USB设备通信,这是由于在本地端,CH375具有读、写、片选控制线以及中断输出四条控制总线和八位数据总线,可以方便地挂接到单片机等控制器的系统总线上。CH375芯片内部各部分的功用如下:①PLL倍频器用于将外部输入的12MHz时钟倍频到48MHz,作为USB接口SIE时钟。②数据缓冲区用于缓冲USB接口SIE收发的数据。③主从USB接口SIE用于完成物理的USB数据接收和发送。④被动并行接口与异步串行接口用于与外部单片机交换数据。⑤URT串行接口用于代替并行接口与外部单片机交换数据。⑥命令解释器用于分析并执行外部单片机提交的各种命令。⑦控制传输的协议处理器用于自动处理常用的控制传输的多个阶段,简化外部固件的编程,降低了开发难度。⑧通用的固件程序实现USB传输的相关协议。

数据读取原理

数据读取电路如图2所示。系统利用单片机实现将U盘中的音频数据经CH375的USB串行接口传送至单片机内部RAM缓冲,以等待解码。硬件上只需在单片机系统中增加一个CH375芯片,综合成本较低,这是由于CH375内置了USB通信协议,省去了对USB通信协议的了解,单片机可以直接调用API库读写U盘中的文件数据。CH375芯片工作时,需外部为它提供12MHz的时钟信号,它支持全速的USB-HOST主机接口,外围元器件只需要少量晶体和电容,便可支持5V和3.3V电源电压。

VS1011E解码芯片

系统采用VS1011E芯片对MP3音频进行解码。VS1011E音频解码芯片为VS10XX系列的第三代产品,是芬兰VLSI Solution Oy公司生产的单片MP3/WMA/MIDI音频解码芯片,其内部结构如图3所示。它包含一个高性能、低功耗的DSP处理核(VSDSP),5KB的指令RAM,0.5KB的数据RAM,串行的控制和数据输入接口,四个通用I/O口,一个UART口,一个可变采样率的ADC,一个立体声DAC以及音频耳机放大器。芯片可工作于12.288~14MHz或24.576~28MHz时钟下。可用于解码MPEG1&2Layer1,2,3以及MPEG2.5Layer3格式、和WAV等格式文件[6].

VS1011E芯片工作流程

VS1011E芯片工作时,首先将MP3或WAV格式音频文件通过SDI总线送入芯片内部并解码。解码后,如果SCL_AIADDR!=0,则执行应用区代码(代码地址由相应的地址寄存器提供),然后再按照SCL_BASS寄存器(SB_AMPLITUDE位和ST_AMPLITUDE位)的设置,将数据送到低音和高音优化器进行音效处理,之后再将数据通过音量控制单元备份到音频FIFO中。音频FIFO用于保持数据,并将数据作为采样率转换器和DAC的输入。采样率转换器可将所有不同采样率转换成CLKI/512信号送给DAC,再由DAC按位依次产生立体声模拟信号,然后由系统将这些信号送到耳机功放。VS1011E的工作流程如图4所示。

采用STC89C58RD+单片机和VS1011E解码芯片实现MP3播放器的设计

实现VS1011E芯片控制协议

VS1011E芯片与主机进行数据和控制信息的通信需要利用工作于从模式的SPI串行总线,通过串行数据接口(SDI)传送音频数据,通过串行控制接口(SCI)传送控制数据。VS1011E的SPI接口具有VS1002新模式(SM_SDINEW=1)和VS1001兼容模式(SM_SDINEW=0)两种工作模式。当SM_SDISHARED=1时,数据信号和控制信号的传送共用xCS作同步信号;SM_SDISHARED=0时,则分别采用xDCS和xCS为同步信号。作为从机工作模式,VS1011E可通过一个信号线DREQ指示是否允许主机传送数据。当DREQ为高时,VS1011E至少可以接收32KB的SDI数据或SCI控制命令。下面以VS1002模式简单分析SPI协议:

(1)SDI数据协议线

xDCS为同步控制线,低电平时激活,可输入数据,高电平时结束当前操作,以使串行接口处于等待状态,当SM_SDISHARED=1时,由xCS替换该引脚。SCK为时钟线,由主控芯片提供时钟。SI为数据输入线,可在SCK上升沿采样输入SI数据。

(2)SCI控制命令线

xCS为同步控制线,低电平时激活,高电平结束当前操作,以使串口处于等待状态,同时使SO输出线为高阻态。SCK(复用)为时钟线。SI(复用)为控制命令输入,可在SCK上升沿采样输入SI数据,若xCS被拉低,则在SCK的第一个上升沿写入数据线的第一个数据位。SO为数据输出线,当主控制器读VS1011E内部控制寄存器状态时,可在SCK下降沿输出数据,如果当前为写操作,MJH SO为高阻态。

VS1011E芯片与单片机的接口电路

VS1011E芯片与STC89C58RD+单片机的接口电路如图5所示。系统启动后,由单片机控制,通过CH375USB接口芯片将存储于U盘中文件的MP3数据格式流信息送入到VS1011E芯片中,再通过VS1011E芯片解码及其内含高质量的立体声DAC和耳机驱动电路,实现MP3文件的播放。VS1011E的所有控制命令和数据均通过SPI总线接口实现,而STC89C58RD+单片机没有SPI接口,因此,为了达到实现SPI通信功能,采用该单片机的3个I/O口模拟SPI时序。

液晶显示模块

系统采用Nokia5110液晶显示播放状态,该液晶为84×48点阵的LCD,可显示四行汉字,并支持串行通信协议,如图6所示为其串行通信模式下的控制时序。其传输速率高达4Mb/s,可全速写入显示数据,方便与单片机进行通信。该液晶外部只有九条信号线,节约了I/O口。

采用STC89C58RD+单片机和VS1011E解码芯片实现MP3播放器的设计

系统软件设计

图7为MP3播放器的软件流程。采用C51语言对本系统单片机的软件设计进行编写,源程序共分单片机驱动CH375程序、单片机控制VS1011E实现音频解码程序及按键与显示驱动程序三个部分。为了简化程序设计,采用从官方网站下载CH375的API函数库“CH375HF4.LIB”文件对CH375模块部分程序进行编写。由于单片机的硬件资源比较有限,在硬件调试过程中,当出现传送频率较高的MP3文件时可能会造成声音失真,因此为了保证MP3文件播放流畅,在系统开发过程中应优化程序。

系统启动后,先进行初始化,然后等待U盘插入,再通过CH375芯片将U盘中的MP3文件传送至单片机内部RAM缓冲。单片机是通过SPI总线方式读出音频信息的,并将MP3的码流信息送入到VS1011E芯片中,通过VS1011E芯片及其内含的高质量立体声DAC和耳机驱动电路,实现MP3文件的播放功能。在按键的控制下,通过Nokia5110中菜单选项的选择,实现对MP3文件选择及音量控制等功能;播放时,显示在Nokia5110上的信息包括MP3文件名称、播放进度和音量等。经过运行测试,该系统可正常流畅地播放出320kb/s的高音质MP3文件,而且其功耗比较低,使用500mA锂电池可连续正常播放十小时。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 芯片
    +关注

    关注

    447

    文章

    47788

    浏览量

    409134
  • 单片机
    +关注

    关注

    6001

    文章

    43973

    浏览量

    620840
  • 播放器
    +关注

    关注

    5

    文章

    382

    浏览量

    36826
收藏 人收藏

    评论

    相关推荐

    基于C89C58RD+单片机VS1003实现MP3播放器设计

    系统工作原理框图如图1 所示。系统启动后, 单片机通过USB 接口芯片CH375, 从U 盘中获取MP3 格式文件的数据, 并存入片内RAM 进行缓冲, 然后单片机定时将数据从缓冲区送
    的头像 发表于 12-24 09:03 4375次阅读
    基于C<b class='flag-5'>89C58RD</b>+<b class='flag-5'>单片机</b>与<b class='flag-5'>VS</b>1003<b class='flag-5'>实现</b><b class='flag-5'>MP3</b><b class='flag-5'>播放器</b>设计

    基于VS1003解码器MP3播放器设计

    单片机从SD卡里读取的数字MP3音频数据流进行解析,并转换成模拟信号进行输出。图4是该MP3播放器的音频解码模块电路原理图
    发表于 05-08 13:20

    音频编解码芯片VS1003 (MP3语音方案)

    较高的。所以商业或工业领域所需要的MP3播放器,需要支持自动从U盘或SD卡等移动存储设备中转移数据的能力。为了满足这样的需求,我们提出了一种嵌入式语音播放的解决方案----单片机 +
    发表于 03-27 09:28

    教你如何用stm32 软件解码mp3

    目前,网络上绝大都数关于MP3播放器的例子,大都采用vs1003这颗硬件解码芯片或者使用AT
    发表于 08-14 14:06

    AT89C51SND1C单片机之应用MP3技术方案

    基于AT89C51SND1C单片机的U盘MP3播放器学习板,配置64M Nand Flash 芯片K9F1208U,利用软件可
    发表于 09-23 11:10

    基于SLH89F5162单片机MP3音乐播放器设计

    之前用51单片机做过硬件MP3解码,看到SLH89F5162很强大,资源比较丰富,想用SLH89F5162做一个
    发表于 09-27 09:33

    基于ARM多通道专业MP3播放器设计

    播放器驱动能力非常有限,只适合个人使用,不能满足大型公共场所在不同区域播放不同背景音乐的多通道播放需要。基于以上分析,本文设计了一种基于S3C44B0X
    发表于 09-22 15:12

    使用STM32F103RB芯片制作一个MP3播放器

    本文主要介绍了使用STM32F103RB芯片的32位闪存微控制为内核制作一个MP3播放器,此芯片是基于ARMCortex-M
    发表于 09-03 14:45

    【uFun试用申请】基于ufun与FATFS的MP3播放器设计

    项目名称:基于ufun与FATFS的MP3播放器设计试用计划:申请理由: 本人自大一下半年后一直在实验室中学习51、stm32单片机的学习,参加过2017年电赛获得省二、参加过第十三届恩智浦杯智能车
    发表于 03-22 18:23

    基于单片机mp3音乐播放器设计资料分享

    一.硬件方案本设计以单片机为核心控制,设计一个音乐播放器,主要完成TF卡存储的音频文件数据提取及播放任务。该播放器类似于个人计算机的音乐
    发表于 02-07 06:34

    一种基于单片机STC89C58RD+的称重显示控制器

    一种基于单片机STC89C58RD+的称重显示控制器
    发表于 07-14 14:42 127次下载

    基于CPLD和VS1011E解码器的电梯语音系统设计

     目前,大多数电梯楼层语音系统都采用专门语音器件,但缺陷多。针对这种情况,设计了一种基于CPLD和VS1011E解码器的电梯语音系统,该系统主要采用
    发表于 12-13 17:12 32次下载

    基于STC12C5A60S2单片MP3设计

    本设计采用STC12C5A60S2单片机作为MP3播放器的核心,将U盘作为数据存储介质,通过编写程序代码将U盘中的
    发表于 11-09 11:40 66次下载
    基于<b class='flag-5'>STC</b>12C5A60S2<b class='flag-5'>单片</b>的<b class='flag-5'>MP3</b>设计

    基于AT89C51SND1C单片机MP3播放器的设计方案

    本文首先分析了便携式MP3播放器的工作原理及其系统构成,接着介绍了一种基于51单片机MP3播放器设计方案。
    的头像 发表于 05-26 09:02 6208次阅读
    基于AT<b class='flag-5'>89</b>C51SND1C<b class='flag-5'>单片机</b>的<b class='flag-5'>MP3</b><b class='flag-5'>播放器</b>的设计方案

    基于STC89C58单片机MP3播放器设计

    电子发烧友网站提供《基于STC89C58单片机MP3播放器设计.pdf》资料免费下载
    发表于 10-10 10:56 3次下载
    基于<b class='flag-5'>STC89C58</b><b class='flag-5'>单片机</b>的<b class='flag-5'>MP3</b><b class='flag-5'>播放器</b>设计