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

2016-09-27来源: 21ic关键字:AT89C51SND1C  单片机  MP3播放器
引言

MP3作为高质量音乐压缩标准,正在进入越来越多人的生活,给数字音频工业带来了强劲的冲击。MP3使用此技术可以获得较大的音乐压缩比,还可以得到较高的音乐回放质量,比如将CD格式的音乐数据压缩成MP3格式,音效相差无几,文件大小至少可以压缩12倍。

正是由于MP3音乐的较小数据量和近似完美的播放效果,使得以MP3为后缀的音乐文件在网络上的传输得以实现。当前MP3播放器正朝着功能强大、外观丰富、价格便宜的方向发展,这里提出一种基于AT89C51SND1C单片机的MP3播放器设计方案。

1 MP3编码简介

MP3是MPEG Layer III(第3层音频编码标准)的缩写,图1为MP3编码器内部原理框图。它是一种超级声音文件的压缩方法,其数字压缩速率为每通道128 Kb/s。MPEG由音频和视频两部分组成,可以分别进行压缩。MPEG在音频上压缩分为MPEG Layerl、MPEG Layer2和MPEG Layer3,其中MP3具有最高的压缩比12:1。在一般没有压缩数据的情况下,音频被数字化时,采样频率必须为实际声音最高频率的2倍以上。

a.jpg

目前最好的CD音质中,声音最高频率是20 kHz,采样频率定为44.1 kHz,16位量化,要获得CD音质立体声,每秒钟的数据量将超过1.4 Mb;而采用MP3压缩,数据量可以缩小到1/12,音质却没有损失。如果再进一步压缩数据量到1/24或者更多,依然可以维持相当好的音质,比起通过降低采样频率、缩短采样深度的方法要好得多。

2 MP3播放器设计

对于便携式MP3系统,主要考虑的是其体积小巧、低功耗、高容量、低价格。当前流行的MP3播放器主要包括:单片机控制系统、大容量移动存储设备、MP3 解码器、D/A转换芯片、音频放大电路、USB接口、LCD显示和键盘电路等,其基本工作原理如图2所示。通过USB接口把Flash存储器上的MP3、 WMA等格式的数字音乐文件送到单片机内部集成的解码芯片进行解码,这些音乐文件经解码后成为数字信号,然后音频DAC通过D/A转换将数字音频信号转换为模拟音频信号,再通过功率放大器进行音频放大,最后通过耳机输出音乐。

b.jpg

本系统主要实现一个MP3播放器功能,由于涉及文件传输和存储问题,所以附带需要实现USB存储器功能。整个系统由AT89C51SND1C(MCU)、K9F2808U0A(Flash芯片)、电源部分、音频部分、串行通信部分和人机接口部分组成。

MCU部分:控制整个系统,提供USB控制和MP3解码功能。FLASH芯片:存放整个系统文件。电源部分:提供系统工作需要的电源,包括一个升压和一个降压部分。音频部分:把数据流转换为声音信号。人机接口部分:包括按键和LED指示等。USB接口部分:通过PC的USB接口进行MP3文件的下载。

2.1 硬件设计

2.1.1 控制器部分

AT89C51SND1C是Atmel公司专门针对MP3设计需求研发的一款多媒体8位微处理器,使用通用的C51内核,集成了CPU和硬件解码器,为 MP3设计提供了一套方便的解决方案。该芯片的高度集成大大降低了系统的耗电和发热,提高了系统的稳定性和速度,抗干扰能力也显著增强。需要注意的是,由于在系统中有MP3和USB传输等高频信号,为了避免噪声对系统的影响,尤其是对音频输出信号的影响,所以在AT89C51SND1C的正负电源间需要加上一个RC滤波电路以消除电路中的噪声。对于AVDD和UVDD的两个模拟电压和数字电源而言,两者需要在数字地和模拟地处单点通过一个磁珠相连,以免数字电源和模拟电源之间相互影响。

2.1. 2 音频部分

音频是整个系统中最为重要的一个部分,在把数字信号转换为模拟信号的过程中容易产生噪声,这个关系到MP3播放器声音效果的好坏,本系统选择的是CS4330芯片,CS43 30能兼容48 KHz、44.1 KHz和32 KHz的音频流。声音数据通过串行输入引脚SDATA输入,左右输入时钟LRCK决定了左右声道,而在串行输入时钟SCLK的驱动下数据被送入CS4330的数据缓存中,而主时钟决定了数据滤波器的使用。

2.1.3 存储部分

采用三星公司的NAND Flash K9F1208作为系统的数据存储器,用来存储本系统所需播放的音乐文件。主芯片AT89C51SND1C和Flash存储器间的通信与读取一般的存储器 RAM、EEPROM等基本一致,不同的就是多了CLE和ALE这2个引脚,这是由Flash本身特点所决定的。主芯片通过读取R/B这个引脚来判断 Flash读写是否完成,如果正在读写,那么这个引脚为低电平,表示正忙;如果读写完成,该引脚电平变高,处于READY(准备)状态,等待下次操作。 ALE和CLE这两个信号均为上升沿有效,WP引脚为写保护,用来在电源由于切换等造成不稳定的情况下防止数据丢失。

2.1.4 人机接口部分

人机接口部分主要提供一个人和系统进行信息交换的接口,包括键盘输入、LED显示以及串行口3个部分。键盘输入提供给用户选择功能的能力、LED显示系统现在的工作状态,串行口可以方便开发过程中的调试,通过串口调试助手等工具,把系统运行的情况反馈到PC机的屏幕。

2. 1.5 USB接口部分

一般通过PC的USB接口进行MP3文件的下载,传输速率为12 Mbps。由于Atmel公司生产的AT89C51SND1C芯片仅支持USB1.1技术规范,因此接口速度稍慢。但对于MP3播放来说,可以满足需要。

2. 2 软件设计

MP3播放系统的软件设计,按照模块可以划分为以下几个部分:

◆Flash存储部分:这是系统中的文件存储系统,按照FAT文件格式对Flash芯片进行划分,对芯片的操作必须按照FAT格式进行。

◆USB通信驱动:USB驱动通信主要包括如何按照Windows 7中对USB移动硬盘的描述编写设备的固件程序,以便操作系统对MP3系统的操作。

◆MP3解码控制:控制系统中间的MP3解码器把从Flash中取出来的MP3压缩数据流解码成音频数据流,提供给音频解码接口。

◆音频解码接口:和外围的音频驱动芯片接口,对音频驱动芯片进行配置以及控制,把解码后的数字信号转化为模拟声音并且驱动耳机。

◆其他部分:由提供人机接口的键盘扫描驱动、LED显示驱动、数码管驱动部分组成。

系统软件结构框图如图3所示。

c.jpg

2.3 MP3播放程序结构

在主程序时,如果处于播放状态,则调用PlayMP3函数播放歌曲,直至播放到最后一首,在PlayMP3里面,MP3解码器一旦开始工作以后,就会一直向CPU请求数据,直至歌曲结束。程序进入此函数以后,只有改变当前歌曲的键盘操作才能使此函数提前结束,进入下一首歌曲的播放。

MP3播放函数的工作分两部分进行:第一部分是播放一首新的MP3歌曲时,要做一些初始化工作;第二部分则一直在等待中断发生。第二部分与键盘结合,以实现MP3播放过程中的用户操作。MP3播放程序结构框图如图4所示。

d.jpg

2.4 人机接口程序结构

当执行MP3程序的时候,需要通过按键操作来控制MP3歌曲的播放,每个键对应一个键盘响应函数:

①Func:功能切换。

②Next:向后。

③Previous:向前。

④PlayPause:播放/暂停。

人机接口流程图如图5所示。

e.jpg

结语

本文提出基于AT89C51SND1C单片机的MP3播放器的设计方案,MP3为取得较好的压缩效果而采用相对复杂的技术,宽带音频信号的取样率也较高 (一般为44.1 KHz以上),所以MP3编解码的运算量和数据量都相当庞大。MPEG LayerIII解码算法在AT89C51SND1C上验证通过并获得较好的效果,通过优化后可流畅播放音乐。此MP3播放器系统既有播放歌曲的功能又有 U盘功能。两种功能的转换用USB接口检测电路来控制:当MP3播放器上的USB设备插入PC机上的USB接口进行文件下载时,执行U盘功能;否则程序执行MP3功能。

关键字:AT89C51SND1C  单片机  MP3播放器

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/article_2016092729884.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:51单片机外部中断编程实例2
下一篇:51串口 单片机上接收数据程序

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

基于AT89C51SND1C的MP3技术方案

 随着人们对便携式音乐播放器要求的提高,MP3播放器以其较小的体积和较好的音质赢得了广大音乐爱好者的青睐。起初,MP3文件只能由电脑来播放,随着互联网的发展,促进了MP3播放器的产生,随着人们对MP3产品进一步的认识和更高层次的需求,MP3发生了一系列的变化,其更加小巧精致,更人机化和情趣化,个性区分也越来越强。还出现了功能的融人和产品的整合,总之,MP3播放器正朝着功能强大、外观丰富、价格便宜的方向发展。这里提出一种基于AT89C51SND1C的MP3播放器设计方案。 1 MP3播放器简介 MP3播放器是一种新兴的数字音乐播放器,播放MP3、WMA等格式的文件。通过用MPEG-1 Layer 3编码技术,可以得到
发表于 2015-07-31
基于AT89C51SND1C的MP3技术方案

STM32F1系列单片机USB外设相关寄存器的定义

Keil MDK网站上下载的Keil.STM32F1xx_DFP.2.2.0.pack包中的stm32f10x.h头文件里面没有USB_TypeDef的定义,只有寄存器位的定义,是不完整的头文件。没有USB的数据结构就会给访问USB寄存器带来一定的困难。虽然可以参照STM32参考手册中的USB register map自己编写出USB_TypeDef结构体,但是这样比较麻烦。不过,STM32CubeMX工具生成的STM32F103工程中的头文件stm32f103xe.h中就有完整的USB数据结构,该头文件的版本是V4.2.0,日期为31-March-2017,作者仍然是Keil里面的MCD Application Team,这比Ke
发表于 2019-07-19

STM32开发笔记38: 单片机内部Flash的读写

单片机型号:STM32F070F6P6本文介绍应用C语言进行单片机内部Flash的读写技巧,将从查看文档开始,到最终完成完整的程序。单片机型号:STM32F070F6P6步骤如下:1、查看文档《STM32F030x4/x6/x8/xC and STM32F070x6/xB advanced ARM®-based 32-bit MCUs》确认其Flash的内部结构。2、查看文档确认STM32F070F6P6内部存储器地址分配。从下表中得到的主要信息是Main Flash memory的起始地址是0x08000000,长度是32KB,到0x08017FFF结束(结束值可不关心)。3、继续查看Main Flash memory的内部结构
发表于 2019-07-16
STM32开发笔记38: 单片机内部Flash的读写

模拟量数据的采集过程解析

单片机的ADC接口属于模数转换接口,将外部的模拟量信号转化为数字信号,单片机属于数字器件,需将模拟信号转化为数字信号才能够为单片机处理。目前市场的很多单片机都自带ADC转换接口,若无ADC转换接口,可以使用ADC数模转换芯片外扩。ADC模块是将模拟信号转化位数字信号,数字信号用0和1表示,ADC模块有参考电压,假设给的参考电压是5V,ADC是12位的(几位表示用二进制几位数存储模拟量转化后的数字量,12位的ADC则可储存数字量范围为:(二进制)000000000000~111111111111,转换为十进制数字范围为0~2^12即0~4095。也就是说把参考电压分为2^12份即4096份,最小分辨率为VREF/4096。也就是说
发表于 2019-07-13
模拟量数据的采集过程解析

单片机入门学习八 STM32单片机学习五 时钟系统

单片机学习除了了解该篇 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础 中的基础外,我们还需要有时钟的概念,本篇将记录 stm32的时钟系统。1、STM32时钟介绍 下面这幅图时stm32的时钟系统框图 1)蓝底框表示 时钟源,即: ①HSI是高速内部时钟,RC振荡器,频率为8MHz。 ②HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。 ③LSI是低速内部时钟,RC振荡器,频率为40kHz。(WDG看门狗 使用该时钟源) ④LSE是低速外部时钟,接频率为32.768kHz的石英晶体。(RTC
发表于 2019-07-12
单片机入门学习八 STM32单片机学习五 时钟系统

单片机入门学习十三 STM32单片机学习十 通用定时器

本篇重点记录的是STM32F1的通用定时器。 STM32F103ZE有8个定时器,其中2个高级定时器(TIM1、TIM8),4个通用定时器(TIM2、TIM3、TIM4、TIM5),2个基本定时器(TIM6、TIM7)。下表是对这8个定时器的详细描述。定时器种类 位数 计数器模式 产生DMA请求 捕获/比较通道 互补输出 特殊应用场景高级定时器(TIM1,TIM8) 16 向上、向下、向上/下 可以 4 有 带死区控制盒紧急刹车,可应用于PWM电机控制通用定时器(TIM2~TIM5) 16 向上、向下、向上/下 可以 4 无 通用。定时计数,PWM输出,输入捕获,输出比较基本定时器(TIM6,TIM7) 16 向上、向下
发表于 2019-07-12
单片机入门学习十三 STM32单片机学习十 通用定时器

小广播

何立民专栏

单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved