DIY编程器网

 找回密码
 注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 124|回复: 0
打印 上一主题 下一主题

基于C51单片机的MP3硬件播放器的实现

[复制链接]
跳转到指定楼层
楼主
发表于 2012-1-16 19:33:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

                    ?
  随着人们对便携式音乐播放器要求的提高,MP3播放器以其较小的体积和较好的音质赢得了广大音乐爱好者的青睐。MP3播放器是一种新兴的数字音乐播放器,播放MP3、WMA等格式的文件。通过用MPEG-1 Layer 3编码技术,可以得到大约12:1压缩的有损音乐信号。尽管MP3音乐是有损的,它在压缩过程中对功率谱较弱的信号有所丢失,但它同CD原声区别不大,不影响一般音乐爱好者对音乐的欣赏。MP3大大缩小了声音文件的长度,使音乐的存储和传输更方便。起初,MP3文件只能由电脑来播放,随着互联网的发展,促进了MP3播放器的产生,随着人们对MP3产品进一步的认识和更高层次的需求,MP3发生了一系列的变化,其更加小巧精致,更人机化和情趣化,个性区分也越来越强。还出现了功能的融人和产品的整合,总之,MP3播放器正朝着功能强大、外观丰富、价格便宜的方向发展。本设计以C51内核单片机为核心,设计了MP3播放器。
  1 MP3硬件设计
  在该硬件系统的设计中,采用Atme 1公司生产的AT89C51SNDlC作为主控MCU。AT89C5lSNDlC是ATMEL公司专门针对MP3的需求而设计的一款多媒体8位微处理器,使用通用的C51内核,片上集成了多种外设,为MP3产品提供了一套方便的解决方案。该芯片对电路的高度集成大大降低了系统的耗电和发热,提高了系统的稳定性和速度,抗干扰能力也显着增强。AT89C51SNDlC具有如下外设的集成,大大简化了电路的设计:a.MP3硬件解码器;b.可编程音频输出接口DAC;c.8位MCU C51:d.USBl.1控制器;e.内建锁相环PLL;f.多媒体卡接口适配器;g.SPI接口适配器;h.IDE/ATAPI接口;i.两路10位ADC,8kHz;j.44个通用I/0;k.两个16位定时器/计数器;1.硬件看门狗定时器;m.标准全工UART;n.两线主被动模式控制器;o.SPI主被动模式控制器;p.电源管理模块。
  整个播放器的结构框图如图l所示。PC机通过USB接口实现对U盘的MP3歌曲、文档等数据信息的存储。系统启动后,由MCU控制将储存于Flasht辛歌曲的码流信息送入MP3解码芯片中解码,并产生解码输出。在系统的DAC模块通过CS4340芯片把解码输出转换为模拟音频声音后, 经功放电路一级音频放大并驱动耳机,实现MP3歌曲的播放。系统硬件包括主控MCU、解码器、FLASH存储系统、供电系统、按键和D/A转换器等几部分。
?



?
  1.1 解码部分
  这是MP3播放器的核心部件, 本设计采用硬件解码技术。在本系统中笔者采用AT89C51SNDlC芯片。该芯片是一块自带MPEG I/II—Layer硬件解码器和Human Interface的51内核单片机。它可支持对8~320kbps基本数据流的解码,支持的取样频率范围为16~48kHz,非常适合于MPEG的音频解码, 并带有数字语音录音的MPEG播放模块, 具有很高的性价比。解码后的信号是可以直接输出到DAC的立体声、单声道或双声道的数字信号,SP—CA751A与DAC的接口是可编程的。只要通过通用的串行I/0口和控制接口就能对MPEG比特流进行I/0和回放控制,系统控制器能很轻易地对MPEG音频信号进行解码。通过一个通用的可编程I2S接口,就能把一解码的音频PCM数据输出到外部的DAC中,因此,大多数常用的音频DAC都能和本芯片兼容,本设计采用的是CS4340芯片。
  1.2 存储部分
  现采用1GB的flash存储器,该存储器能够存储19小时128kbps(达到CD音质)的音乐,该系统采用了SAMSUNG公司的1GB FLASH存储芯片K9F5608UOB。
  1.3 接口部分
  一般通过PC的USB接口进行MP3文件的下载,传输速率为12Mbps。由于Atmel公司生产的AT89C5lSNDlC芯片仅支持USBl.1技术规范,因此接口速度稍慢。但对于MP3播放来说,可以满足需要。
  1.4 电源管理
  便携式MP3的体积小,可以使用两节7号电池(3VDC)供电,同时也可以通过USB接口取电,因此采用低电压以及进行有效的功率管理是非常必要的。
  2 MP3软件设计
  硬件是设计的基础,软件是设计的灵魂。MP3程序由两大部分组成:MP3播放功能模块和USB通讯功能模块。此外,为了调试方便,还有调试功能模块。此模块在系统软件调试中使用,当MP3系统正常工作时去除。
?



?
?
  MP3播放功能模块的工作分为两个部分:
  第一部分是循环播放MP3歌曲,该功能需要首先做一些初始化工作,MP3解码器一旦开始工作,就会一直向CPU请求数据,直至歌曲结束,只有通过键盘操作才会使该功能提前结束。因为MP3文件的数据量较大,在flash存储器内是以页为单位进行存储的,所以MP3的播放程序初始化就是要把该文件的首地址和页数先读出到CPU中,然后CPU可以根据如上数据进行取数据工作。
  第二部分则一直在等待中断发生,该程序是与键盘结合起来的,主要用于使用者对播放过程的控制。键盘操作对MP3播放过程的控制还包括后退、跃进、跳到下一首、音量控制等。因为整个播放过程的键盘控制功能比较单一,没有键的复合操作,所以程序都很容易实现。当MP3播放器插入到USB接口时,系统执行USB通讯功能模块,该模块主要用于对flash存储器内的文件数据进行管理。固件程序是该模块开发的主要工作,由于AT89C5lSNDlC没有外部中断引脚,USB中断没有中断向量地址入口,因此该固件程序的框架采用查询工作方式。
  3 FAT文件格式
  因为该系统还要具有U盘的功能,所以存储器中的文件还要能够让计算机读写和识别,也就是所有的文件还要严格满足计算机文件系统格式的要求。在所有计算机文件系统中,FAT是比较常用的一种。
  一个FAT文件系统卷由4个部分组成:保留区、FAT区、根目录区、文件和目录数据区。其中保留区中的第一个分区必须是BPB,也称作“引导扇区”,因为它含有对文件系统进行识别的关键信息,计算机将以此信息识别存储器文件格式,因此十分重要。
  FAT区存放的是文件分配表。操作系统的存储空间是按簇来分配的,簇是操作系统分配的最小存储单元,每个簇在FAT表中占据一个16位的位置,称为一个表项。同一个文件的数据并不一定存放在存储区的一个连续的区域内,往往会分成若干段,像一条链子一样的存放,这种存储方式称为文件的链式存储。为了实现文件的链式存储,必须准确地记录哪些簇已经被占用,还必须为每一个已经占用的簇指明后继内容的下一个簇的簇号,对于一个文件的最后一个簇,则要指明本簇没有后继簇,这些就是由FAT表来存储的。
  根目录区存放的是目录项,每个目录项为32个字节,记录一个文件或目录的信息。目录项所占的空间与目录项的个数有关。
  文件和目录数据区是真正存放文件数据的位置,所有数据都是按照以上信息分配存储的。
  4 结束语
  本文提出基于C51内核单片机的MP3播放器的设计方法,此MP3播放器系统既有播放歌曲的功能又有U盘功能。两种功能的转换用USB接口检测电路来控制。当MP3播放器上的USB设备插入PC机上的USB接口进行文件下载时执行U盘功能,否则程序运行执行MP3功能。此设计低功耗,易扩展,性价比高,与同类产品相比,有很强的市场竞争能力和实用价值。
?
            
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友 微信微信
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|文字版|手机版|DIY编程器网 ( 桂ICP备14005565号-1 )

GMT+8, 2024-9-29 15:33 , 耗时 0.091941 秒, 18 个查询请求 , Gzip 开启.

各位嘉宾言论仅代表个人观点,非属DIY编程器网立场。

桂公网安备 45031202000115号

DIY编程器群(超员):41210778 DIY编程器

DIY编程器群1(满员):3044634 DIY编程器1

diy编程器群2:551025008 diy编程器群2

QQ:28000622;Email:libyoufer@sina.com

本站由桂林市临桂区技兴电子商务经营部独家赞助。旨在技术交流,请自觉遵守国家法律法规,一旦发现将做封号删号处理。

快速回复 返回顶部 返回列表