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

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

3天内不再提示

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

电子设计 来源:郭婷 作者:电子设计 2018-12-24 09:03 次阅读

引 言

随着电子技术的发展, MP3 播放器是目前市场上流行的消费类数码产品之一, 具有大容量、高音质、小巧便携等特点而倍受广大消费者的青睐 。本文采用ETC 公司微控制器ST C89C58RD+ , 结合解码芯片VS1003、USB 接口芯片CH375、LCD 等外围设备设计并实现了MP3 播放器。主要功能有: 播放VS1003 支持的所有音频文件, 包括MP3, WMA, WAV 文件[ 2] ,且音质非常好, 具有按键控制播放上一首/ 下一首、音量增减等, 可通过LCD 显示歌曲名字和播放状态信息等功能。

1 硬件系统设计

系统工作原理框图如图1 所示。系统启动后, 单片机通过USB 接口芯片CH375, 从U 盘中获取MP3 格式文件的数据, 并存入片内RAM 进行缓冲, 然后单片机定时将数据从缓冲区送到MP3 音频解码芯片VS1003, 实现解码并输出音频信号到耳机或者有源音响输出。用户可以通过键盘实现 “启动”、 “上一曲”、 “下一曲”、“音量控制”及 停止!等功能, 并将播放状态信息通过LCD 显示。系统框图如图1 所示。

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

1. 1 单片机读取MP3 数据模块

数据读取模块包括单片机控制器, U SB 串行数据转换成8 位并行数据CH375 芯片和MP3 格式数据存储U 盘3 部分。

1. 1. 1 单片机控制器

采用宏晶公司的ST C89C58RD+ 单片机, 该单片机最高可工作于33 MHz 时钟, 具有32 KB 的FLASH, 1 KB 的内部RAM, 引脚与指令系统均与51 单片机兼容 。本设计中, 单片机工作在30 MHz的系统时钟下, 能满足系统对数据带宽的要求。

1. 1. 2 USB 接口芯片CH375

CH375 是一个USB 总线通用接口电路, 支持HOST 主机方式和SLAVE 设备方式。CH375 内部集成了PLL 倍频器、主从U SB 接口SIE、数据缓冲区、被动并行接口、异步串型接口、命令解释器、控制传输的协议处理器、通用的固件程序等 。在本地端, CH375 具有8 位数据总线和读、写、片选控制线及中断输出, 可以方便地挂接到单片机、DSP控制器的系统总线上, 并内置海量存储固件 。CH375 的USB 主机方式支持各种常用的USB 全速设备, 外部单片机、DSP、MCU 可以通过CH375 按照相应的USB 协议与USB 设备通信, 支持常用的12 Mb/ s 全速U SB 设备。

1. 1. 3 工作原理

利用单片机实现将U 盘中的音频数据经CH375的USB 转串行接口传送至单片机内部RAM 缓冲, 以等待解码。其中CH375 是一款USB 总线的通用接口芯片, 可以方便地挂接到单片机的控制总线上, 同时CH375 的U SB 主机方式支持常用的USB 全速设备,外部单片机可以通过CH375 按照相应的U SB 通信协议与U SB 设备通信。

由于CH375 内置了USB 通信协议, 省去了对USB 通信协议的了解, 单片机可以直接调用A PI 库读写U 盘中的文件数据, 硬件上只需在51 单片机系统中增加一个CH375 芯片, 综合成本较低。CH375 支持全速的U SB??HOST 主机接口, 外围元器件只需要少量晶体和电容, 便可支持5 V 电源电压和3. 3 V 电源电压,CH375 芯片还支持低功耗模式, 正常工作时, 需要外部为它提供12 MHz 的时钟信号。电路原理如图2 所示。

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

1. 2 音频解码模块

音频解码模块包括2 大部分单片机控制器和专用MP3 音频解码芯片VS1003。

1. 2. 1 音频解码芯片VS1003

VS1003 是一个单片MP3/ WMA/ MIDI 音频解码器和ADPCM 编程器。它包含一个高性能、自主产权的低功耗DSP 处理器核VS_DSP, 并提供5KB 的指令RAM 和0. 5 KB 的数据RAM。产生MIDI/ SP??MIDI文件, 内含高性能片上立体声数/ 模转换器, 两声道, 无相位差, 在播放音频文件时不需要外加驱动电路,VS1003 内部自带耳机功放 , 只要调试好电路系统,接入耳机就可以听到美妙的音乐。同时, VS1003 为用户提供5. 5 KB 的片上RAM, 并支持SPI 串行通信的控制数据接口。

1. 2. 2 工作原理

系统上电启动后, 由单片机控制将存储于U 盘中歌曲的MP3 数据格式流信息通过CH375USB 接口芯片送入到V S1003 芯片中, 通过VS1003 芯片解码及其内含高质量的立体声DAC 和耳机驱动电路, 实现MP3歌曲的播放, 在按键的控制下, 可实现对歌曲的选择、音量增减等功能。VS1003 的所有数据和控制命令均通过SPI 总线接口实现, 由于设计中所采用的单片机没有SPI 接口, 因此, 在设计中采用单片机的3 个I/ O 口来模拟SPI 时序, 以达到实现SPI 通信功能。电路如图3所示。

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

1. 3 键盘及显示模块

键盘采用的是独立按键, 与单片机P30~ P34 相连接, 实现 开始!、 下一曲!、 上一曲!、 音量+ ! 和音量- !等5 个功能。播放的状态由Nokia5110 液晶显示, 该液晶为84 x 48 点阵的LCD, 可以显示4 行汉字, 并支持串行通信协议, 传输速率高达4 Mb/ s, 可全速写入显示数据, 方便地与单片机进行通信。该液晶外部信号线仅有9 条, 节约本来就紧张的I/ O 口, 其串行通信模式下的控制时序如图4 所示。

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

1. 4 电源模块

系统采用的是5 V 直流电源供电, 并通过5 V 转3. 3 V的SPX1117??3. 3 V 芯片给单片机, VS1003 解码器和U SB 专用芯片CH375 模块供电, 其电源电路原理如图5 所示。

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

2 软件系统设计

本系统单片机的软件设计采用C51 语言编写, 源程序共分3 个部分, 即: 单片机驱动CH375 程序, 单片机控制VS1003 实现音频解码程序, 按键和显示驱动程序。在编写CH375 模块部分的程序时, 用到了从南京沁恒公司官方网站下载的CH375 的API 函数库 “CH375HF4.LIB”文件, 简化了程序设计。因为单片机的硬件资源十分有限, 在硬件调试过程中, 出现在传送频率较高的歌曲时, 由于采样频率低, 带宽不够, 而造成声音失真。所以在系统的开发过程中, 应优化程序, 提高运行速度, 保证播放歌曲的流畅, 其软件流程如图6 所示。

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

3 结 语

设计的MP3 播放器采用51 单片机加VS1003 解码, 并通过CH375USB 专用芯片进行数据读取, 这种组合方式相比于采用AVR 或者MSP430 系列的高端单片机, 达到的播放效果也毫不逊色。系统的整个设计难点在于单片机如何高效的从U 盘中读取数据, 并以一定的时序将缓冲的数据传输给VS1003, 实现解码。在此采用的方法一是提高系统的时钟; 二是通过修改软件, 精简程序, 来加快了系统的传输速率, 使播放音乐更加流畅。

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

    关注

    48

    文章

    6789

    浏览量

    147564
  • 单片机
    +关注

    关注

    5997

    文章

    43948

    浏览量

    620553
  • 播放器
    +关注

    关注

    5

    文章

    382

    浏览量

    36789
收藏 人收藏

    评论

    相关推荐

    基于VS1003解码MP3播放器设计

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

    求高手讨论讨论CH375+VS1003单片机MP3播放器

    觉得做出来CH375+VS1003单片机MP3播放器的高手都不愿意交流,给的资料很不完善,发消息也不会理睬,所以想哪位人才可以交流交流呢?
    发表于 12-20 17:47

    DSP 触摸式 MP3播放器VS1003

    介绍了利用数字信号处理芯片TMS320LF2407A实现触摸式MP3播放器设计的方案。采用芯片VS1003B进行MP3的解码,减轻了系统的负
    发表于 12-28 15:37

    【分享】音频编解码芯片VS1003播放器调试)

    最初的想法是通过winhex软件打开查看MP3代码然后拷贝出来作为一个数组发给vs1003。这个数据要储存在我的单片机的程序储存区里,还好我的单片机程序储存区够大有64K。这样多的
    发表于 03-22 11:44

    音频编解码芯片VS1003MP3语音方案)

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

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

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

    VS1003制作的音乐播放器

    。硬件解码的种类很多,像在市面上卖的MP3里面使用的芯片(ES9018K2M)都是专门用来制作MP3播放器的。他们的价格相对较低。接下来我要介绍V
    发表于 02-26 10:33

    【振南ZN-X开发板(51版)】读取FlashROM中的MP3文件,送入VS1003解码播放 [简易FlashROM MP3播放器]

    ,使得我们没有真正领略到VS1003音质的魅力。(只是一个完全单纯的硬件和电路测试而已!)“为什么不找一段MP3数据写进去,真正解码播放一下呢?”答:“单片机没有那么多的存储空间去存储
    发表于 06-17 14:27

    有关STC89+VS1003来制作MP3播放器

    我用了STC89C52+VS1003+CH376S来搭建,CH376与单片机通信是没问题的,VS1003的正弦音测试也是没问题的,但是在最后进入播放模式的时候,出来的声音跟卡带了一样,
    发表于 12-28 16:19

    【疑问】利用VS1003B、CH375B模块制作基于51单片机MP3

    最近在用51单片机制作一个MP3,功能是从U盘读取文件数据,将数据送给VS1003模块进行音频解码,最后DA转化由耳机播放。目前我的进展是:1.利用CH375B芯片的开源文件操作子函数
    发表于 11-07 23:09

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

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

    怎样去设计一个基于VS1003语音解码芯片和CH375优盘模块的mp3播放器

    怎样去设计一个基于VS1003语音解码芯片和CH375优盘模块的mp3播放器呢?
    发表于 12-14 07:29

    VS1003/VS1003B MP3原理图 应用电路图

    VS1003/VS1003B MP3原理图 应用电路图 VS1003/VS1003B pdf datasheet
    发表于 02-11 08:34 5994次阅读
    <b class='flag-5'>VS1003</b>/<b class='flag-5'>VS1003</b>B <b class='flag-5'>MP3</b>原理图 应用电路图

    基于芯片VS1003MP3电路原理图

    基于芯片VS1003MP3电路原理图
    发表于 09-19 08:48 31次下载
    基于芯片<b class='flag-5'>VS1003</b>的<b class='flag-5'>MP3</b>电路原理图

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

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