基于AT89C51SND1C的mp3播放器的设计

2009-03-14 06:59
关键词:串口音频电源

马 喆

摘要:本设计采用了以AT89C51SND1C为主控芯片,同时利用其MP3解码模块和USB控制模块,加上外接的Flash存储器,在实现U盘的基础上完成MP3播放器的功能。本论文研究了基于Atmel公司的AT89C51SND1C的MP3播放器的实现方法,给出了相应的电路原理图,以及AT89C51SND1C中提供的MP3解码模块和音频输出接口的控制。同时对Flash存储的相关内容也做了相应的介绍。

关键词:AT89C51SND1C MP3解码 音频接口 FAT文件系统 SD卡存储

1 播放器系统总体设计

1.1 任务要求 利用AT89C51SND1C单片机提供的MP3解码模块对读取的MP3文件进行解码并实现音频播放。

1.2 硬件组成 整个硬件系统根据功能将其分为几个部分:电源部分、控制器部分、存储器部分、音频数模转换部分、音频放大部分、ISP及串口调试部分、人机接口部分。

其中电源模块实现给整个硬件系统提供电压值为3.3V的功能,它的供电情况有两种,一种是PC机供电方式,需要将PC机的5V电压转化成需要电压值,另一种是电池供电,以实现便携式要求。控制器模块是整个系统的核心部分,其主要功能是通过USB接口完成与PC机的数据通信,并存储的MP3格式文件。存储器选用了32M的FLASH芯片用来存储数据。这部分电路完成数据的保存。音频数模转换部分的核心器件是CS4330,它的功能是将解码器输出的数字信号转换成模拟信号。音频放大部分电路用到了双通道运算放大器LMV358芯片,它配合一些外围电路可以实现对模拟的音频信号放大功能。ISP及串口调试部分电路的核心器件是MAX3232,它为RS-232收发器,简单易用,单+5V电源供电,仅需外接几个电容即可完成从TTL电平到RS-232电平的转换。在系统编程是通过USB接口实现的。

1.3 总体设计流程图 MP3播放系统中的软件设计按照模块可以划分为以下三个部分。

U盘部分:当USB插入PC机上的USB接口时,USB-insert信号会输出高电平到P3.4口,此引脚检测到此信号后,便会执行U 盘部分程序,完成MP3与PC机之间的数据传输。该部分程序执行的过程分为单片机硬件寄存器的配置、Bulk-only传输模式的建立以及对FLASH存储器的读写。MP3部分:当无USB插入检测信号发生时,单片机将执行MP3部分程序。其过程可以分为:首先按照FAT16协议读取FLASH数据,并将MP3格式的文件记录。然后解析MP3桢头信息,根据相应参数设置相关硬件寄存器的配置,并将相应数据送单片机硬件解码模块。串口调试程序:将MCU中运行过程中的数据或状态通过串口发送到PC机的串口上,然后借助一些软件在PC显示器中显示出来。该部分程序只需设置串口通信的波特率参数,利用串口通信中断很容易实现数据的发送和接收。串口调试程序作为子程序供程序运行过程中调用,以判断程序运行的状态和获取一些重要数据。其他部分:包括提供人机接口的键盘扫描驱动、LED显示驱动以及其它部分。

右面是整个软件系统的流程图。

2 系统设计中的相关技术

2.1 MP3文件格式概述 MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。MP3的全称应为MPEG1 Layer-3 音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer2、Layer3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1,也就是说,一分钟CD音质音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有1MB左右。不过MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果

3 系统硬件组成及电路设计

3.1 电源部分 AT89C51SND1C的标准电压是+3V,±10%,工作电流是25mA,故在整个系统中采用3.3V供电。系统电源在完成U盘功能时通过USB接口取电,在便携式使用时可以来自干电池,所以系统电源由两个部分组成:一个部分提供从USB接口的5V到3.3V的DC-DC的降压转化;另外一个部分提供从1.5V干电池到3.3V的DC-DC的升压转化。

降压部分:本设计选择了普遍使用的AS1117的电源方案。其中图3.1是利用AS1117进行电压转换的电路图。如图所示,从USB接口的5V电源通过AS1117芯片转化为3.3V电压,给整个系统供电。周围的电容的作用时滤除干扰,保持系统电源稳定可靠。

升压部分:本设计采用 MAX1677电源电路方案,它具备双路输出:一路升压电路作为系统电源,另一路提供LCD电压。最低可在0.7V的输入电压下工作,适用于1—3节碱性电池Nicd/NiMH 电池或一节Li+电池供电的应用。MAX1677典型电路无需外部场效应管,自身耗电仅为20μA ,主升压电路采用同步整流技术,电源转换效率高达95%。MAX1677允许输入的电压范围为0.7~5.5V; 主输出2.5~5.5V(可调电压输出),或工厂预设值3.3V输出,最大输出电流可达350mA; 第二输出可为LCD对比度调节提供+28~-28V范围内的电压;电源效率可达95%;16脚QSOP封装,体积很小,不需要外部场效应管。由于MAX1677输入电压范围(0.7~5.5V)较大,可以依据不同系统提供的安装电池空间和所需的不同电池电压与容量,灵活地选择电池的种类,比如1~3节普通干电池、碱性电池、镍镉充电电池或1节锂电池均可以使系统正常工作。MAX1677电源电路的典型连线如图3.2,在输入端加上1.5V电压,第一路输出电压为3.3v,提供系统电源。第二路输出作为LCD显示器的电源,当MAX1677第六根引脚(LCD选通端,接在CPU的28脚,受控于单片机)置位时,LCD电源有输出,并且输出电压可以通过10K电位器调节。图3-2 是MAX1677外围典型接线电路。

3.2 控制部分 本设计选用的控制器是美国ATMLE公司针对MP3解决方案新生产的一款芯片AT89C51SND1C,它具有C51内核,64K字节的闪存程序空间和4K字节引导闪存以及2304字节的ROM存储器,利用微处理器核对数据流和MP3解码器进行控制,并允许通过嵌入的4K字节闪存引导区进行在系统编程。AT89C51SND1C在原有的89C51的基础上增加了MP3解码模块,I2C/PCM音频输出模块,串并行接口模块(USB,2线,SPI,IDE),以及其他的外存储器接口模块。适用于MP3播放器,PDA,摄像机,带MP3手记,汽车音响,家庭影院等嵌入式系统。以下参照该芯片的技术文档,对其主要功能作简单介绍。

AT89C51SND1的主要特点是其内部嵌入一个MP3硬件解码器,它支持48,44.1,32,24,22.05,16KHz采样频率,并且具有左右声道独立的音量控制和重低音、中音、高音均衡控制功能。另外,AT89C51SND1内部有一个USB Rev1.1控制器,可以完成USB接口的数据通信。

3.3 存储器部分 在存储器选用上,根据AT89C51SND1C的技术手册所提供的可以选用Flash芯片、ATA接口的硬盘或CDROM和MMC卡(MultiMedia Card)作为海量存储器使用。本设计选择了三星公司的NAND型Flash芯片。

Samsung公司的K9F5608U芯片的外围电路图见3-4所示。

3.4 音频输出部分 音频部分是整个系统中最为重要的一部分,可将其划分成两个部分,包括数模转换部分和音频信号放大部分。在把数字信号转化为模拟信号的过程中,容易产生噪声,这个关系到MP3播放器的声音效果的好坏。通过对市面上的支持I2S 接口的DAC的查询,本系统选择的是CS4330芯片。CS4330能够兼容48KHz、44.1KHz和32KHz的音频流。声音数据通过串行输入引脚SDATA输入。左右输入时钟LRCK决定了左右声道,而在串行输入时钟SCLK的驱动下,数据被送入CS4330的数据缓存中,而主时钟决定了数据滤波器的使用。音频放大电路主要由低功耗双通道运算放大器LMV358芯片及其外围电路组成。图3-6是CS4330外围连接电路和双通道功率发大LMV358的外围电路。

3.5 USB及串口部分 USB接口电路中,除了根据USB协议的要求,要求在D+、D-上串连20欧的电阻,并在D+上接一个1.5K的上拉电阻。还增加了一个USB插入的检测电路以及USB工作指示灯。如图3-7所示。

串口是MCU中基本的接口之一,而目前PC机上串口也是基本的配置。可以将MCU中运行过程中的数据或状态通过串口发送到PC机的串口上,然后借助一些软件在PC显示器中显示出来。这样的软件有串口调试助手、串口精灵等。还可以使用Windows中自带的超级终端来显示。为了使用MCU上的串口,需要对MCU的串口编程。又因为MCU上的TTL电平,而计算上的串口对这一电平并不兼容,所以在硬件上还需要有专门的电平转换芯片,本设计使用MAX3232。

4 结论

本设计是基于AT89C51SND1C单片机实现媒体播放器(MP3)的硬件实现和软件编程。在硬件设计中,要用到软件Protel来绘制电路图和生成PCB电路图。主要通过C语言编写源程序。该系统较完整的体现了MP3便携的特点,从硬件方面较全面地实现了MP3的功能包括芯片的部分外围扩展功能。

参考文献:

[1]余崇智.运动图像及其半音的压缩与编码——MPEG1.南京:南京大学出版社.1995年10月.216~250页.

[2]李军.51系列单片机高级实例开发指南.北京:北京航空航天大学出版社.2004年.

[3]博创科技.MP3播放器与U盘设计.北京:清华大学出版社.2004年6月

[4]系统设计所需技术手册.来源:www.pudn.com.

[5]MP3文件格式.SD卡规范协议.来源:www.ednchina.com.

[6]4.5万字透视FAT32文件系统.来源:www.sjhf.net.

[7]余家春.Protel 99se电路设计实用教程.北京:中国铁道出版社.2004年

[8]马忠梅.单片机的C语言应用程序设计.北京:北京航空航天大学出版社.1998年.

[9]徐爱钧.单片机高级语言C51应用程序设计.北京:电子工业出版社.1998年.

猜你喜欢
串口音频电源
Cool Invention炫酷发明
车载电子系统中多路音频控制的研究与实现
MCS—51单片机中的多串口通讯技术的应用
等效电源法的应用
“摇一摇”你摇对了吗?
全国计算机等级考试机房准备工作探讨
微机串口的测试诊断
新电源
运用等效电源巧解题
使用EDIUS 5 iZotope VST插件去除录音噪音