您好,欢迎来到华佗小知识。
搜索
您的当前位置:首页基于单片机的MP3设计

基于单片机的MP3设计

来源:华佗小知识


基于单片机的MP3设计

摘要:随着科学技术的发展,带数字语音功能的数码终端类产品在日常生活中得到了广泛的使用,这也促进了与该功能相关的数字音频压缩技术的发展,在数字音频压缩技术中,MP3的设计与实现以其优异的性能得到了广泛的使用。随着数字编解码及压缩技术的发展,语音文件也朝着高压缩比、高保真度的方向发展,从MP1、MP2到目前的MP3格式。

本课题介绍的是一款基于MP3格式的单片机音乐播放系统。通过现有的基于ARM、DSP和专用的解码芯片等几种方案的比较,最终选择使用专用解码芯片ATC51SND1的设计方案。它是ATMEL公司专门针对MP3设计需求出品的一款微处理器。文章详细论述了播放器的软件和硬件结构设计,此播放器具有一定的实用价值。

关键字:单片机、MP3,MCU

A MP3 Player Design Based on MCU

Abstract: with the development of digital codes and compression technology,voice paper towards a high compression ratio,high-fidelity direction,from MP1 and MP2 to the MP3 format currently。

This subject describes the single-chip music player system is based on the MP3 format。Contrast of basing on the existing ARM、DSP chips and special decoder of several programs,and finally chose the specialized decoder chip of ATC51SND1 design Program。The ATC51SND1 is a microprocessor designed

specially for MP3 by ATMEL Company。In this paper the hardware and software design of player is described in detail。The player has certain practical value。

Key words: MCU,MP3

第一章 引言

1.1 应用背景与意义

从1998年,韩国世韩(SEAHAN)公司推出了世界上第一台MP3播放器到现在,MP3播放器逐步成为电子市场上的热销产品,受到广大音乐爱好者的欢迎。

MP3(MPEG Audio Layer 3)是采用国际标准MPEG(Moving Pictures Experts Group,动态图象专家组)中的第三层音频压缩模式,对声音信号进行压缩的一种格式。MPEG声音压缩算法是一种通用的声音编码技术,它对音源的性质没有作任何假设,而是利用人耳的听觉特性对声音进行压缩。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功能已成为此类产品的发展趋势之一。如我们常见的智能手机、电子词典、PDA一般都具有MP3的功能实现。网络数字音乐的风潮是由MP3所引起的,它是MPEGLayer3

的缩写,狭隘的讲就是以MPEG Layer 3标准压缩编码的一种音频文件格式。MP3本身是一种压缩与解压缩的计算方式,用来处理高压缩比的声音信息。而且在低码率条件下基本能达到CD的音效效果,使人耳听起来,感受到的音乐效果却没有什么不同,而文件大小却只有其十二分之一。因此原本一张光盘只能存储约12-20首的CD格式音乐,若存成MP3格式,则约克储存将近100首。自韩国世韩(Seahan)公司1998年推出世界上第一台MP3随身听以来,MP3播放器以其小巧的外形、不错的近乎于CD的音质、前卫的功能,越来越受到消费者的青睐,也成为业界甚至大众媒体关注的一个热门话题。由于MP3是数字化的音乐,MP3随身的听不仅可以上传下载MP3格式的文件,也可以是其他任何格式的电脑文件。这样的MP3随身听还可以当作一个小的移动存储设备来使用。另外MP3的内部没有机械运动部件,这既节省了空间和能源,同时在欣赏音乐时不会产生杂音,行动移动过程中声音也不会跳动震颤。在市场消费刺激下,各大公司纷纷推出了自己的MP3产品,IC供应商提供了众多MP3解码芯片及其解决方案。除了MIC方案(MAS3507+DAC3550)、ST方案(ST92163+STA13/015)、Crystal解软压单芯片方案(EP7209,EP7212)、TI软解压单芯片方案(TMS320C5409),还有创品方案(T33510,T33520)、美国SigmaTel 方案(STMP3400)和TI的DA-250解决方案。这使得MP3播放器的研制与生产变得更加容易,成本也大大降低,市场更加广阔。总之,低数据量和高播放品质,支持多种功能,体积小、重量轻、连续播放时间长、音质好是MP3播放器的发展趋势。

基于MP3播放器诸多优点和广泛的使用,是我们大家日常生活中较为熟悉的一种电子产品。为培养我们大学生的思考、理解身边电子产品的习惯和提高自己的实际动手能力,我选择了设计一款以C51内核单片机为核心的MP3播放器作为自己的毕业设计。

第二章 系统实现功能、设计方案论证以及主芯片的介绍

2.1 市场上常见的MP3播放器一般具有播放歌曲、音量大小控制、通过USB口下载歌曲,并可以作为一个移动的存储设备进行文件的存储等功能,所以在系统设计时,考虑到上述因素,我设计的MP3播放器以实现以下功能为目标。

(1) 实现音乐的录音、播放、停止、选歌

(2) 播放歌曲音量(重低音、中音、高音)大小的控制

(3) 播放歌曲的切换,如前一首、后一首、循环播放等

(4) 通过USB口下载歌曲

(5) 上电复位、电池低电压检测

2.2 设计方案分析

(1)MP3 文件格式

MP3文件是由帧(frame)构成的,帧是MP3文件最小的组成单位。MP3的全称应为MPEG1 Layer-3音频文件,MPEG(Moving Picture Experts Group)在汉语中译为活动图像专家组,特指活动影音压缩标准,MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer-1、Layer-2、Layer-3,且分别对应MP1、MP2、MP3这三种声音文件,并根据不同的用途,使用不同层次的编码 。MPEG音频编码的层次越高,编码器越复杂,压缩率也越高,MP1和MP2的压缩率分别为4:1和6:1-8:1,而MP3的压缩率则高达10:1-12:1,也就是说,一分钟CD音质的音乐,未经压缩需要10MB的存储空间,而经过MP3压缩编码后只有

1MB左右。不过MP3对音频信号采用的是有损压缩方式,为了降低声音失真度,MP3采取了“感官编码技术”,即编码时先对音频文件进行频谱分析,然后用过滤器滤掉噪音电平,接着通过量化的方式将剩下的每一位打散排列,最后形成具有较高压缩比的MP3文件,并使压缩后的文件在回放时能够达到比较接近原音源的声音效果

MP3文件大体分为三部分:TVG_V2(ID3V2),Frame,TAG_(ID3VI)。ID3是一个标记MPEG的标准,具体的讲,这些标记是用来指明歌曲的作者、演唱者、年月、所属专辑等信息,这样,播放器在播放时可以读出并显示这些信息。

每个Frame都有一个帧头Frame header,长度是4Byte(32bit),帧头后面可能有两个字节的CRC校验,这两个字节的是否存在决定于Frame header信息的第16bit,为0则帧头后面无校验,为1则有校验,校验值长度为2个字节,紧跟在Frame header后面,接着就是帧的尸体数据,格式如下:

表1 Frame 格式

(1) MP3 编码系统原理与结构

MP3为获取很高的数据压缩比,根据音频位流语法,采用了较为复杂的位流结构。MP3码流是由很多帧组成。帧头是一个32 byte长的数据,它包含输入输出采样率、输出比特率以及单双声道等信息。对每一帧的576(单声道,1152或立体声)个输入音频采样压缩而等到的音频数据,具体的压缩后的比特数可以根据公式等到。

图 1 是MP3 音频编码器的一个流程图。数字音频采样通过由两个滤波器组成的滤波器组输入到心理声学模型中,由心理声学模型的输出控制音频屏蔽等参数,最终通过量化和霍夫曼(Huffman)编码得到输出比特流。

图1 MP3 编码器流程

1.1 滤波器组 (Filer bank)

MP3的滤波器组是一个混合滤波器,有一个线性相位滤波器组和一个改进的离散余弦滤波器(Modified Discrete Cosine Transform, MDCT)组成。该滤波器与MPEG Layer-I 和Layer-II兼容。

1.2 心理模型 (Perceptual Model, or Psychoacoustic model)

心理模型是编码器中最重要的部分,主要由它决定该编码器的压缩质量。它主要计算每一个谱线的能量,用于进行屏蔽计算,它的输出为每一个谱线的屏蔽门限或所允许的最大噪声。如果量化后的噪声在所计算的屏蔽门限之下,其结果是压缩首的音频信号与原始音频信号无法区别。心理声学主要利用下面的2个原理。第一是人耳的带宽是有的,只能感受到一定带宽范围内的声信号,因此带宽范围外的信号就被抛弃。人耳的第二个感知特性是信号的屏蔽作用。一个很强的信号将掩蔽与其频率相差很多的同样强度的信号。

(2) MP3解码系统硬件结构

一个完整MP3播放机要分几个部分:处理器、解码器、存储设备、主机通讯端口、音频DAC和功放、显示界面和控制键。如上图。其中处理器和解码器是整个系统

的核心,两个部分集成在一个芯片中。这里的处理器我们通常称为MCU(单片微处理器),简称单片机。它运行MP3的整个控制程序,也称为fire ware。控制MP3的各个部件的工作:从存储设备读取数据送到解码器解码;与主机连接时完成与主机的数据交换;接收控制按键的操作,显示系统运行状态等任务。解码器是芯片中的一个硬件模块,或者说是硬件解码(有的MP3播放机是软件解码,由高速处理器完成)。它可以直接完成各

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

ATC51SND1的主要特点是其内部嵌入一个MP3硬件解码器,它支持48,44.1,32,24,22.05,16KHz采样频率,并且具有左右声道的音量控制和重低音、中音、高音均衡控制功能。另外,ATC51SND1内部有一个USB Rev1.1控制器,可以完成USB接口的数据通信。 存储设备是MP3播放机的重要部分,通常的MP3随身听都是采用半导体存储器(FLASH MEMORY),在我的作品中是用硬盘存作为存储器。它通过主机通讯端口传来的数据(通常以文件形式),回放的时候MCU读取存储器中的数据并送到解码器。数据的存储是要有一定格式的,众所周知,PC管理磁盘数据是以文件形式,MP3也不例外,最常用的办法就是直接利用PC的文件系统来管理存储器,微软操作系统采用的是FAT文件系统,这也是最广泛使用的一种。播放机其中一个任务就是要实现FAT文件系统,即可以从FAT文件系统的磁盘中文件名访并读出其中的数据。

主机通讯端口是MP3播放机与PC机交换数据的途径,PC通过该端口操作MP3播放机存储设备中的数据,拷贝、删除、复制文件等操作。目前最广泛使用的是USB总线,并且遵循微软定义的大容量移动存储协议规范,将MP3播放机作为主机的一个移动存储设备。这里需要遵循几个规范:USB通信协议、大容量移动存储器规范和SCSI协议。

频部分是整个系统中最为重要的一部分,可将其划分成两个部分,包括数模转换部分和音频信号放大部分。音频DAC是将数字音频信号转换成模拟音频信号,以推动耳机、功放等模拟音响设备。这里要介绍一下数字音频信号。数字音频信号是相对模拟音频信号来说的。我们知道声音的本质是波,人说能听到的声音的频率在20Hz到20kHz之间,称为声波。模拟信号对波的表示是连续的函数特性,基本的原理是不同频率和振幅的波叠加在一起。数字音频信号是对模拟信号的一种量化(如下图),典型方法是对时间坐标按相等的时间间隔做采样,对振幅做量化。单位时间内的采样次数称为采样频率。这样一段声波就可以被数字化后变成一串数值,每个数值对应相应抽样点的振幅值,按顺序将这些数字排列起来就是数字音频信号了。这是ADC(模拟-数字转换)过程,DAC(数字-模拟转换)过程相反,将连续的数字按采样时候的频率顺序转换成对应的电压。MP3解码器解码后的信息属于数字音频信号(数字音频信号有不同的格式,最常用的是PCM和I2S两种),需要通过DAC转换器变成模拟信号才能推动功放,被人耳所识别。 USB及串口部分 USB接口电路中,除了根据USB协议的要求,要求在D+、D-上串连20欧的电阻,并在D+上接一个1.5K的上拉电阻。还增加了一个USB插入的检测以及USB工作指示灯。串口是MCU中基本的接口之一,而目前PC机上串口也是基本的配置。可以将MCU中运行过程中的数据或状态通过串口发送到PC机的串口上,然后借助一些软件在PC显示器中显示出来。这样的软件有串口调试助手、串口精灵等。还可以使用Windows中自带的超级终端来显示。为了使用MCU上的串口,需要对MCU的串口编程。又因为MCU上的TTL电平,而计算上的串口对这一电平并不兼容,所以在硬件上还需要有专门的电平转换芯片,本

使

MAX3232

电源部分 ATC51SND1C的标准电压是+3V,±10%,工作电流是25mA,故在整个系

统中采用3.3V供电。系统电源在完成U盘功能时通过USB接口取电,在便携式使用时可以来自干电池,所以系统电源由两个部分组成:一个部分提供从USB接口的5V到3.3V

的DC-DC的降压转化;另外一个部分提供从1.5V干电池到3.3V的DC-DC的升压转化。

MP3播放机的显示设备通常采用LCD或者LED发光二极管。显示系统的工作状态。 控制键盘通常是按钮开关。键盘和现实设备合起来构成了MP3播放机的人机交互界面。

图2 MP3解码系统结构框图

在该硬件系统的设计中,采用Atmel公司生产的ATC51SND1C作为主控MCU。

整个系统的结构框图如图2所示。PC机通过USB接口实现对U盘的MP3歌曲、文档等数据信息的存储。系统启动后,由MCU控制将储存于Flash中歌曲的码流信息送入MP3解码芯片中解码,并产生解码输出。在系统的DAC模块把解码输出转换为模拟音频声音后,经一级音频放大并驱动耳机,实现MP3歌曲的播放功能。在按键的控制下,实现对歌曲播放模式、声音音效以及歌曲选择等功能。

系统包括主控MCU、解码器、Flash存储系统、供电系统、按键和D/A转换器等几部分。

2.1 解码部分

这是MP3播放器的核心部件,采用硬件解码技术。在本系统中采用ATC51SND1C芯片,该芯片是一块自带MPEG I/II –Layer硬件解码器和Human Interface的51内核单片机。它可支持对8---320Kbps基本数据流的解码,支持的取样频率范围为16KHz---48KHz,非常适合于MPEG的音频解码,并带有数字语音录音的MPEG播放模块,具有很高的性能/ 价格比。解码后的信息时可以直接输出到DAC的立体声、单声道或双声道的数字信号,SPCA751A与DAC的接口是可编程的。只要通过通用的串行I/O口和控制接口接能对MPEG比特流进行输入/输出和回放控制,系统控制器能很轻易的对MPEG音频信号进行解码。通过一个通用的课编程I²S接口,就能把一解码的音频PCM数据输出到外部的DAC中,因此,大多数常用的音频DAC都能和本芯片兼容。

2.2 存储部分

目前一般采用32MB的Flash存储器,32MB的存储器能够存储36分钟128Kbps(达到CD音质)的音乐,如果是播放16Kbps的压缩话音,可以存储4个小时的内容。在该

系统中采用了SAM-SUNG生产的32M Flash存储芯片K9F5608UOB。

2.3 接口部分

一般通过PC的USB接口进行MP3文件的下载,传输速率可以高达12Mbps。在主控芯片ATC51SND1C中支持USB1.0规范。

2.4

电源管理

便携式MP3的体积小,可以使用3V电池供电,同时也可以通过USB接口取电,因此采用低电压以及进行有效的功率管理是非常必要的。

(3) MP3解码系统软件结构

Layer III采用了比较复杂的比特流结构,其编码方法前已述及,解码软件流程如图3所示。首先获得每一帧的同步字,取得头信息获得各相位参数,根据对头信息的解析进而获得实际的一帧音频数据。读取主数据获得缩放因子数据和霍夫曼码字,接着根据边信息中霍夫曼码本的选择信息进行霍夫曼解码,然后进行反量化,根据帧头的立体声信息(单、双声道,联合立体声、强度立体声),对反量化结果进行立体声处理。最后通过混叠处理、IMDCT和合成滤波器重建数字音频信号。

图3 MP3解码流程

3.1 信息的读取及相应处理

由于MP3为了获得更高的数据压缩比采用比较复杂的比特流结构,当处理帧的主数据(包括缩放因子和霍夫曼码字)起始位置一般不在帧边信息后,而是根据边信息中参数main—data—begin的值决定主数据起始位置的前移字节数。由于main—data—begin

为9 bit,

帧的大小×位率

其最大值可达511,由于帧内比特数=————————,而对于Layer III每帧有1152个采

采样率

样。采样率有44.1KH、48KH、32KH三种,码率可从32kbps到320kbps不等,故而一帧内最大字节数达到1152×320k/(32k×8)=1140B。根据main—data—begin和当前字节数可确定数据缓冲区的内容和大小。在读取帧数据时,只需要将比例因子和霍夫曼码字送入缓冲区即可,而边信息中的参数则可直接作为全局变量。

3.2 读取比例因子、霍夫曼码字并进行霍夫曼解码

根据最大的量化值和信号的局部统计特性选用不同的霍夫曼码表,由于对领域量化值进行编码,故把从零到奎思特频率整个频率范围上的量化值分为大值区、小值区和零值区三部分,对大值区和小值区采用不同的编码策略,大值区每两个量化值转换为一个霍夫曼码字,而小值区每四个量化值转化为一个霍夫曼码字。考虑到可能有少量极大值的出现,为设计一个提供额外量化值的方法,当解码出来的值等于某一数时(标准规定为15),根据当前选用霍夫曼码表的额外比特数读入几个额外比特的数据。对于某些较大的表,采用一种快速搜索的方法,当前搜索节点的增加值为某一定数(MAXOFF=250)时,当前节点下移MXOFF,并加上该节点的移动值,使用该策略能够快速到达表的下半区,缩短了霍夫曼查表的过程及霍夫曼码字的长度。

3.3 非均匀量化

对于不同的快类型采用不同的反量化方式。每帧有两个粒度组组成,根据帧首边信息,粒度组有纯长块组、纯短块组、混合组三种类型。对于长块和短块作用了不同的反量化方式。

3.4 混叠信号的消除

对于长块和特殊短块,合成滤波器组的输入在做IMDCT处理之前要进行混叠信号的消除。Layer III的混叠信号的消除采用与FFT类似的蝶形结构。

3.5 IMDCT

经过混叠消除后的信号要进行IMDCT变换。长块进行18点到36点的IMDCT变换,短块进行3个6点到12点的IMDCT变换,再将这3个长为12的输出矢量进行叠加,生成一个长为36的最终变换结果。

3.6 子带合成滤波器

子带合成滤波器将32个等频带宽内的频域信号反变换成时域信号,是由初始化、IMDCT、采样值加窗和32个样值叠加输出等部分组成。子带合成滤波器接收到的是经过Huffman解码、反量化、混叠消除和IMDCT变换后的一个通道中32个子带的样值,经过IMDCT变换后,32个样值将会生成个中间值。将这个中间值输入到一个长为1024的FIFO缓存中,再在这1024个值中抽取一半,构成一个512的矢量,进行加窗运算、窗函数的系数由ISO/IEC MPEG标准中的合成窗系数表格提供。最后将加窗结果进行

叠加生成32个时域输出。

在子带合成滤波器中,通过IMDCT将32个等频带宽内的频域信号反变换成个样值。该变化的运算量很大,在实际中采用的以Lee的FCT为基础的改进型快速算法,将运算量减至原来的1/3左右,存储空间的需要也大为减少。

3.7 结束语

MP3为取得较好的压缩效果而采用相对复杂的技术,宽带音频信号的采样也较高(一般为44.1KHz以上),所以MP3编解码的运算量和数据量都相当庞大。MPEG Layer III解码算法在ATC51SND1C上验证通过并获得较好的效果,在通过优化后可流畅播放。由于51内核单片机的性能,在缓冲时可能会有停顿。

(4) 主芯片ATC51CSND1C的介绍

4.1 ATC51SND1C是美国ATMLE公司针对MP3解决方案新产生的一款芯片,具有C51内核,K字节的闪存程序空间和4K字节引导闪存以及2304字节的ROM存储器,利用微处理器核对数据流和MP3解码器进行控制,并允许通过嵌入的4K字节闪存引导区进行再系统编程。ATC51SND1C在原有的C51的基础上增加了MP3解码模块,I²C/PCM音频输出模块,串并行接口模块(USB,2线,PSI,IDE),以及其他的外存储器接口模块。适合于MP3播放器,PDA,摄像机,带MP3手机,汽车音响,家庭影院等嵌入式系统。

ATC51SND1C芯片包括8个功能块,如下图1所示。(1)MP3音频解码器:ATC51SND1C可实时解码MP3数据为PCM音频数据,同时也支持MP3其他频率。

解码器也支持其他特性如声音控制、低音放大、辅助数据提取等。(2)音频输出接口:允许音频解码位流以不同的格式输出,并可兼容PCM和I’C格式。(3)通用串行总线(USB)接口:支持USB存储类的MP3音频解码文件下载;支持USB固件类升级的再系统编程。(4)外插闪存卡接口:

参考文献:

【1】 马小虎,张明敏,严华明,多媒体数据压缩标准及实现[m].北京:清华大学出版社,1996.

【2】 Atmel .AT83C51SND1C Userˊs Guide[Z]. 2002.

【3】 何立民.单片机高级教程[M].北京:北京航空航天大学出版社,1999.

【4】 马喆.基于ATC51SND1C的mp3播放器的设计.中国期刊网,2009.

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- huatuo0.cn 版权所有 湘ICP备2023017654号-2

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务