内容发布更新时间 : 2024/11/10 3:44:33星期一 下面是文章的全部内容请认真阅读。
基于单片机的MP3播放器设计1
音频信号数字化后所面临的一个不容忽视的问题是:巨大的数据量给存储和传输带来的压力。因此音频压缩技术在广播专业领域、网络传输及多媒体使用中受到广泛关注,成为音频信号处理的关键技术之一。MPEG(Moving Picture Experts Group)运动图像专家组,在1992年底制定了第一个世界范围的Hi-Fi(High-Fidelity)质量的音频编码标准MPEG-1。MPEG-1分为三种不同的方式,称为Layer1、Layer2和Layer3。序号越高,复杂性越大,但是可提供更好的编码效率,特别是在低比特率时。MP3就是MPEG-1 Layer3,是基于感知编码的算法,目前在CD音质的声音压缩方面,是一种通用的方法。使用MP3标准对于音频数据编码既可以获得较大的音频数据压缩比,又可以得到较好的音乐回放质量。MP3的解码器结构复杂,涉及到大量的数学计算,对处理器和内存的要求相当高。目前,AT89C51处理器以其高性价比,丰富的外设资源,越来越受到各种嵌入式研发人员的青睐[5-7]。基于以上背景,我在此次设计中提出了AT89C51SND1C微处理器的软件解码方案,在降低硬件成本的基础上保证高质量的播放效果。
1.2.2 课题研究的意义
MP3音频播放器的最合理工作速度为30Mips,而一个典型的视频媒体播放器的理想速度则为175Mips,所以提高MP3的工作速度,以及改善MP3的音质是最关键的,也是亟待解决的问题。
MP3是一种典型的嵌入式设备,而现在市场上比较常见的是闪存式MP3。由于闪存式MP3的容量限制,使它存储歌曲数目较少,在功能上也很难实现多样化。而硬盘式MP3的多功能及大容量,也必将受到不少消费者的喜爱。
另外一个原因是近年来,嵌入式系统和单片机开发的有机结合,已广泛被使用于网络通信、工业控制、机顶盒、PDA等诸多领域[8]。本文提出了一种基于单片机的MP3播放器的设计方案,这就进一步的体现了该设计的灵活性。目前该设计方案已经实现,实践证明,此播放器拥有市面MP3所有的全部功能并能够很好的运行。
MP3播放器一般分成3个部分:CPU、MP3硬件解码器存储器。其中可以将前两部分集成在一起,即带MP3硬件解码器的CPU;或将后两部分集成在一起,即集成硬件解码、D/A转换及音频输入。存储器可以是Flash存储器或硬盘。通过用MP3编码技术,可以得到大约12:1压缩的有损音乐信号。尽管MP3音乐是有损的,它在压缩过程中对功率谱较弱的信号有所丢失,但它同CD原声区别不大,不影响一般音乐爱好者对音乐的欣赏。MP3大大缩小了声音文件的长度,使音乐的存储和传输更方便。
2 MP3的编解码过程
2.1 MP3的工作原理
一个完整MP3播放器要分几个部分:中央处理器、解码器、存储设备、主机通讯端口、音频D/A和功放、显示界面和控制键、其中中央处理器和解码器是整个系统地核心。这里的中央处理器我们通常成为MCU(单片微处理器),简称单片机。它运行MP3的整个控制程序,也称为fireware(或者固件程序)。控制MP3的各个部件的工作:从存储设备读取数据送到解码器解码;和主机连接时完成和主机的数据交换;接收控制按键的操作;显示系统运行状态等任务。解码器是芯片中的一个硬件模块,或者说是硬件解码(有的MP3播放机是软件解码,由高速中央处理器完成)。它可以直接完成各种格式MP3数据流的解码操作,并输出PCM或I2S格式的数字音频信号[10]。
本课题来源于生产实践
存储设备是MP3播放机的重要部分,通常的MP3随身听都是采用半导体存储器(FLASH MEMORY)或者硬盘(HDD)作为储存设备的[11]。它通过接收储存主机通讯端口传来的数据(通常以文件形式),回放的时候MCU读取存储器中的数据并送到解码器。数据的存储是要有一定格式的,众所周知,PC管理磁盘数据是以文件形式,MP3亦不例外,最常用的办法就是直接利用PC的文件系统来管理存储器,微软操作系统采用的是FAT文件系统,这也是最广泛使用的一种[12]。播放机其中一个任务就是要实现FAT文件系统,即可以从FAT文件系统支持的磁盘中按文件名访问并读出其中的数据。
主机通讯端口是MP3播放机和PC机交换数据的途径,PC通过该端口操作MP3播放机存储设备中的数据,拷贝、删除、复制文件等操作。目前最广泛使用的是USB总线,并且遵循微软定义的大容量移动存储协议规范,将MP3播放机作为主机的一个移动存储设备。这里需要遵循几个规范:USB通信协议、大容量移动存储器规范和SCSI协议[13-15]。
音频DAC是将数字音频信号转换成模拟音频信号,以推动耳机、功放等模拟音响设备。这里要介绍一下数字音频信号。数字音频信号是相对模拟音频信号来说的。我们知道声音的本质是波,人们能听到的声音频率在20Hz到20kHz之间,称为声波。模拟信号对波的表示是连续的函数特性,基本的原理是不同频率和振幅的波叠加在一起。数字音频信号是对模拟信号的一种量化,典型方法是对时间坐标按相等的时间间隔做采样,对振幅做量化。单位时间内的采样次数称为采样频率。这样一段声波就可以被数字化后变成一串数值,每个数值对应相应抽样点的振幅值,按顺序将这些数字排列起来就是数字音频信号了。这是ADC(模拟—数字转换)过程,DAC(数字—模拟转换)过程相反,将连续的数字按采样时候的频率转换成对应的电压。MP3解码器解码后的信息属于数字音频信号(数字音频信号有不同的格式,最常用的是PCM和I2S两种),需要通过DAC转换器变成模拟信号才能推动功放,被人耳所识别。
2.2 MP3播放器编码过程
2.2.1 编码分析
一、音频信号数字化
信号的数字化就是将连续的模拟信号转换成离散的数字信号,一般需要完成采样、量化和编码三个步骤,如图2-1所示。采样是指用每隔一定时间间隔的信号样本值序列来代替原来的时间上连续的信号;量化是用有限个幅度近似表示原来的时间上连续变化的幅度值,把模拟信号的连续幅度变为有限数量、有一定时间间隔的离散值;编码则是按照一定的规律,把量化后的离散值用二进制数码表示。上述数字化的过程又称为脉冲编码调制,通常由A/D转换器来实现。
模拟音频信号 低通滤波器 采样 数字流 编码 量化 图2-1音频信号数字化
数字音频信号经过处理、记录或传输后,当需要重现声音时,还必须还原为连续变化的模拟信号。将数字信号转换成模拟信号为D/A转换。
数字音频的质量取决于采样频率和量化位数。采样频率越高,量化位数越多,数字化
后的音频质量越高。 二、音频采样
采样就是从一个时间上连续变化的模拟信号取出若干个有代表性的样本值,来代表这个连续变化的模拟信号。一个在时间和幅值上都连续的模拟音频信号的函数表示为x?t?,采样的过程就是在时间上将函数x?t?离散化的过程。一般的采样是按照均匀的时间间隔进行的。设这一时间间隔为T,则取样后的信号为x?nT?,n为自然数。
根据奈奎斯特采样定理:要从采样值序列完全恢复原始的波形,采样频率必须大于或等于原始信号最高频率的2倍。设连续信号x?t?的频谱为x?f?,以采样间隔时间T抽样得到离散信号x?nT?,如果满足f?fc时,其中fc是截止频率,即T?1fc时,可以由
2x?nT?完全确定连续信号x?f?,如公式(2-1)所示。
x?f??T (2-1) ?t?2?fnT??x?n因此,可由离散信号x?nT?完全确定频谱x?t?,如公式(2-2)所示。
x?t??n????x?nt?sin?Tn?t?nT?T (2-2)
?t?nT?当采样频率为1/2T时,即fn?1T时,称fn为奈奎斯特采样频率。
2三、音频量化
采样把模拟信号变成了时间上离散的样值序列,但每个样值的幅度仍然是一个连续的模拟量,因此还必须对其进行离散化处理,将其转换为有限个离散值,才能最终和数码来表示其幅值。量化过程是将采样值在幅度上再进行离散化处理的过程。所有的采样值可能出现的范围被划分成有限多个量化阶的集合,把凡是落入某个量化阶内的采样值都赋予相同的值,即量化值。通常这个量化值用二进制来表示,用N位二进制码字可以表示2N个不同的量化电平。存储数字音频信号的比特率为:I?N?fs,其中的fs是采样率,N是每个采样值的比特数。
表示采样值的二进制的位数为量化位数,它反映出各采样值的精度,如3位能表示采样值的8个等级,8位能反映256个等级,其精度为音频信号最大振幅的1/256。量化位数越多,量化值越接近于采样值,其净度越高,但要求的信息存储量就越大。
根据以上公式可知,要减小比特率I,在2s已经确定的情况下,只能去减少N的值。N的值降低会导致量化的精度降低,N的值增加又会导致信息存储量的增加。因此在编码时就需要合理地选择N的值[16]。
均匀量化就是采用相等的量化间隔进行采样,也称为线性量化。用均匀量化来量化输入信号时,无论对大的输入信号还是小的输入信号都一律采用相同的量化间隔。因此,要想既适应幅度大的输入信号,同时又要满足精度高的要求,就需要增加采样样本的位数。
非均匀量化的基本思想是对输入信号进行量化时,大的输入信号采用大的量化间隔,小的输入信号采用小的量化间隔,这样就可以在满足精度要求的情况下使用较少的位数来表示。其中采样输入信号幅度和量化输出数据之间一般定义了两种关系,一种成为u律压缩算法,另一种成为A律压缩算法。
采用不同量化方法,量化后的数据量也就不同。因此说量化也是一种压缩数据的方法。 四、音频编码