积分规则 网站地图 帮助中心    
嵌入式软件 单 片 机 DSP 存储器 传感控制 光电显示
嵌入式硬件 CPLD/FPGA SOPC AD/DA 接口电路 模拟设计
I C设计 通信产品 汽车电子 电源产品 消费电子 数控系统
工业控制 军工/航天 安防产品 医疗电子 计算机外设 测试测量
供应 I C
求购 公司库

  IC 求购 销售 公司 论文 DATASHEET 参考设计 论坛
当前位置: 电子技术 >> 嵌入式硬件 >> 相关文章
  相关分类: 相关文章 | ARM | 新产品 | 下载 | MIPS | X86 |
用CS43L42音频解码器和EP7212嵌入式处理器设计的MP3文件播放系统
 
作者:未知   来源:电子产品世界    点击数:72   更新时间:2008-5-13
您可以添加到网摘 让更多人关注此文章:

    摘要:介绍了CIRRUS LOGIC公司生产的音频解码芯片CS43L42与嵌入式处理器EP7212的接口实现方法,分析了基于嵌入式处理器EP7212/7312和CS43L42芯片的MP3文件播放系统,给出了由其组成的完整硬件连接图和有效的软件实现方法。

关键词:嵌入式处理器;数字音频接口DAI;CS43L42;MP3;EP7212


1 引言


目前存储声音信息的音频数据格式主要有PCM文件、VOC文件、MIDI文件、MP3文件等。对导航系统来说,要实现音频文件的播放,存储器容量是一个需要考虑的问题。由于导航系统的存储空间有限,所以要求存储的文件压缩率高。与其它文件格式相比,MP3音频文件具有较高的压缩率和不逊色于CD的音质,所以在导航系统中音频文件的存储选用MP3格式。


MP3的全称为MPEG1 Layer-3音频文件,MPEGMoving Picture Experts Group在汉语中译为活动图像专家组,特指活动影音压缩标准。MPEG音频文件是MPEG1标准中的声音部分,也叫MPEG音频层,它根据压缩质量和编码复杂程度划分为三层,即Layer1、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文件,从而使压缩后的文件在回放时能够达到比较接近原音源的声音效果。

    虽然MP3是一种有损压缩方式,但它以极小的声音失真换来较高的压缩比,因此在较多的场合得以应用。尤其是随着数字技术的发展,MP3压缩方式在便携式电子产品中得到了越来越广泛的应用,深受追求时尚、新潮的青年朋友的喜爱。

2 CS43L42播放芯片


CS43L42是CIRRUS LOGIC公司生产的音频解码芯片,它可工作在1.8~3.3V,关掉线性放大器时功耗仅16mW非常适合于MP3、MD播放器等低功耗场合的应用。该芯片是一款完全意义上的数模转换器,它包括1bit D/A转换、模拟滤波、音量控制、线性电压输出以及耳机放大器。通过改变主频率,其允许的输入采样频率可从2k~100kHz变化。该器件具有数字重音、峰值限制和去加重等特性。此外,由于采用了POPGUARD技术,CS43L42还可有效防止加电、断电时产生的瞬间冲击。


CS43L42具有DAI接口,能够与嵌入式处理器EP7212/7312较好的配合。它具有三种模式:双线模式、SPI模式、STAND ALONE模式。通过引脚CP/SA和AD0/CS/DEM0置相应状态可以设置这三种模式。当CP/SA引脚为低电平时,芯片为STAND ALONE模式,当CP/SA为高电平时,只要检测到引脚AD0/CS/DEM0电平从低到高变化,则进入SPI模式,否则为双线模式。在STAND ALONE模式下,可用SCL/CCLK/DIF1和SDA/CDIN/DIF0引脚来设置数据、左/右时钟以及主时钟之间的关系。在双线模式和SPI模式下,则可以通过对寄存器进行操作来实现静音、声道衰减和音量控制等功能。图1是CS43L42的内部原理图,图2是该芯片的引脚排列示意图,各引脚的功能如下:


1脚(RST):复位信号,低有效。


2脚(LRCK):左/右帧同步。


3脚(SDATA):串行音频数据,数据随串行时钟引入。


4脚(AD0/CS/DEM0):在SPI模式下,用于使能控制端口。


5脚(SCLK/DEM1):位时钟,等于MCLK的1/2,每帧有128位。


6脚(VL):数字电源电压,典型值为1.8V~3.3V。


7脚(MCLK):2x过采样时钟,仅在从模式下输入。

图3

    8脚(SCL/CCLK/DIF1):串行控制接口时钟。


9脚(SDA/CDIN/DIF0):串行控制数据输入输出。


10脚(N.C.):无连接,悬空。


11脚(CP/SA):控制模式和等待模式控制。


12脚(VQ_HP):耳机静态电压接口。


13脚(REF_GND):连接到模拟地。


14脚(FILT+):正向基准电压,用于内部采样电路。


15脚(VQ_LINE):线输出静态电压接口。


1621脚(HP_A,HP_B):耳机输出。


17脚(GND):连接到模拟地。


18脚(VA):模拟电源电压,典型值为1.8V~3.3V。


19脚(VA_LINE):线性扩音器电源端,典型值在1.8V~3.3V。


20脚(VA_HP):耳机放大电源端,典型值为0.9V~3.3V。


22,23脚(AOUTB AOUTA):模拟输出端。


24脚(MUTEC):静音控制。

3 CS43L42的硬件连接电路


如系统中芯片工作在STAND_ALONE模式,则将DIF1、DIF0分别设置为低、高电平表示接收左起有效的24位数据。图3是CS43L42的典型外围连接电路。图中的电容C由下式给出:


C=(RL+560)/[4π Fs(RL·560)]


4 MP3播放软件设计


MP3文件播放的软件设计任务如下:


(1)初始化EP7212 的DAI接口。


(2)将MP3文件解码成PCM文件并存放于开辟的两个缓冲区(左、右两个声道)。


(3)在FIQ(快速中断请求)中将PCM格式的数据写到DAI接口,同时播放声音(未有数据时播放静音)。


4.1 EP7212的DAI接口介绍和初始化


a. DAI接口


EP7212/7312的数字音频接口(DAI)主要用于支持高质量立体声的音频处理。图4是CS43L42与嵌入式微处理器EP7212的DAI接口电路。该接口主要由以下五个信号组成:


(1)LRCK,左/右帧同步。


(2)SCLK,位时钟,等于MCLK的1/2,每帧有128位。


(3)MCLK,2x过采样时钟,仅在从模式下输入。


(4)SDOUT,数字音频数据输出。


(5)SDIN,数字音频数据输入。


用MSB/Left数据调整格式意味着数据在帧同步信号(LRCK)电位改变后立即被计时。MSB在第一位时是左调整,这与I2S格式相比有些不同,I2S格式的数据在改变电位后要延迟一个时钟。数据帧每帧是128位长,这样每个声道64位长。帧的大小和LRCK的运行周期在EP7212/7312中不能被设置。SCLK可从MCLK中得到,频率等于1/2 MCLK。缺省模式中,DAI处于主模式。该模式下自己产生的MCLK时钟等于9.216MHz。这样,SCLK等于4.608MHz。对于需要SCLK有不同速率的应用,DAI可以被设置成从模式。在从模式下,外部源通过MCLK引脚给MCLK提供主时钟,然后分成两半生成SCLK。不管DAI模式如何设置,SCLK和LRCK通常都设置成输出。数据一般在SCLK的上升沿锁入,在下降沿释放。


DAI接口是一种高质量的数字音频接口,可以连接与DAI接口兼容的音频设备。EP7212 的DAI接口通过位时钟和帧同步时钟产生128bit帧数据。数字音频数据的接收和发送均采用全双工方式,对应于12采样深度的接收FIFO和8采样深度的发送FIFO。在DAI 接口信号中,MCLK是主时钟,它是音频采样频率的256倍,SCLK为音频采样频率的128倍,LRCK固定为采样频率。由于本系统中的MCLK连接外部时钟发生器,频率为11.2896MHz所以采样频率为44.1KHz。其DAI接口时序图如图5所示。

图5

    DAI的帧长128bit其中包括一个音频采样数据,在这128bit中,仅有32bit为实际的音频数据,其余输出均为零。左/右时钟作为帧同步信号,左/右时钟从高到低表示右声道的16bit数据,从低到高表示左声道的16bit数据。


b. DAI接口初始化


DAI初始化程序中首先应设置控制寄存器, 接着选择外部时钟有效以及在左发送FIFO数据少于一半时产生中断。然后清除状态寄存器上溢、下溢位,之后使DAI接口、发送FIFO和接收FIFO有效。最后打开DAI中断。


4.2 MP3文件的解码


ARM公司提供有基于ARM处理器音频文件解码库,它能够有效地解码MP3格式的歌曲,而输出16bit立体声PCM数据。


a. 解码库所定义的结构


·tSampleRate定义了解码数据PCM的采样率


typedef enum tagSampleRate


{


SR 11 025kHz


SR 12kHz


SR 44 1kHz


SR 48kHz


SR 32kHz


SR Reserved


} tSampleRate 


·tMPEGStatus 给出了MP3函数返回状态值。


typedef enum tagMPEGStatus


{


eNoErr


eNoSyncword


eCRCError


eBrokenFrame


eEndOfBitstream


eDataOverflow


} tMPEGStatus 


·tMPEGBitstream给出MPEG比特流的指针,bufptr定义为比特流的字指针,bitidx定义为字中的索引(0-31)。


typedef struct tagMPEGBitstream


{


unsigned int * bufptr


unsigned int bitidx


} tMPEGBitstream


·tMPEGHeader包括MPEG音频报头信息,sam-ple_rate为PCM采样频率,samplesperchannel为每个声道的采样数,numchans为声道数,packed info为报头信息,bits required为下一次调用函数需要bit数,free format是指比特流的格式。


typedef struct tagMPEGHeader


{


tSampleRate sample rate


unsigned int samplesperchannel


unsigned int numchans


unsigned int packed info


unsigned int bits required


unsigned int free format


} tMPEGHeader

    b. MP3解码库所提供的函数


·InitMP3AudiotMPEGInstance *inst


功能:初始化解码器解码指针。


·MP3SearchForSyncwordtMPEGInstance *insttM-PEGBitstream *bslength


功能:查找MPEG数据中的同步字。


·MP3DecodeInfotMPEGInstance * insttMPEGBit-stream * bstMPEGHeader * pmpeg hdr


功能:从MPEG帧中获得报头的信息。


·MP3DecodeDatatMPEGInstance *inst short *leftshort * right tMPEGBitstream * bs


功能:从MP3数据解码成PCM数据,并将其存到left、right指向的缓冲区中。


c. MP3程序解码流程及在FIQ中断中的实现


图6所示是该系统中MP3文件的解码流程。该文件可在FIQ中断中实现播放。由于DAI FIFO对应于FIQ中断,因此,它可以通过控制寄存器来设置FIFO的中断方式,并可在程序中将产生中断的位置设置在左发送FIFO中少于四个采样数据时。由于在FIQ中断中保存有MP3解码缓冲区的地址,因此,若在进入FIQ后各写四个采样数据到左右FIFO中,那么,对于44.1kHz文件来说,FIQ发生的速率将为11kHz。为了保证左右FIFO的正确填充,一般需要交替写两个FIFO。此时如果MP3缓冲区无数据,则可写0(静音)到两个FIFO中,这样,程序就可以跳出FIFO中断接着处理数据。需要说明的是:无论程序是否需要录音,都要从接收缓冲区读四个数据,这样可确保DAI FIFO处于同步状态而不会产生失真。另外,在FIQ处理程序的最后,还要清除溢出状态位,这样可以防止FIQ始终中断。



[1]



相关文章
· 基于ARM S3C2410的PDA人机接口电路[92]
· 基于ARM S3C2410的PDA人机接口电路[99]
· 32位嵌入式处理器技术与应用[155]
· 利用SOPC Builder解决嵌入式处理器外设设计挑战[70]
· 面向交互式终端类和控制类应用的SEP4020嵌入式处理器[98]
热门评论排行
·江苏嵌入式Linux教育培训
·锐极LINUX驱动培训班定于
·VHDL设计中电路简化问题的
·基于实时操作系统μC/OS-
·ARM处理器应用开发4步骤

文章评论
    没有任何评论
*只显示最新10条评论。评论内容只代表网友观点,与本站立场无关。更多评论
发表评论
  * 请先[登陆]再进行评论,谢谢。
评分: 1分 2分 3分 4分 5分
内容: *
发帖须知:
一.所发文章必须遵守《互联网电子公告服务管理规定》;
二.严禁发布供求代理信息,公司介绍,产品信息等广告宣传信息;
三.严禁恶意重复发帖;
四.严禁对个人,实体,民族,国家等进行漫骂,污蔑,诽谤。
 
热点新闻 [更多]
 
HIPROS电梯视听系统----专业
PROLM12KM在光伏行业的应用
世界上最小巧的串口服务器联网,串口转
cheap prada sneake
中国女足!---赢球就是硬道理!
阿娇内地再度亮相 为篮球赛开球
钟欣桐杭州担任宣传大使 遭千名观众起
刘德华抵京充当志愿者 愿为运动员捡球
台湾佳营TWLA500 功
CSA Internati
 
热门下载 [更多]
 
[ ] 手把手学单片机20个例
[ ] 单片机做的智能台灯
[ ] 单片机入门书
[ ] linux系统移植开发文档
[ ] IC卡的读写程序
[ ] 8051单片机C语言彻底应用
[ 常用软件] 555定时器电路设计软件V1.2
[ 常用软件] 51定时器计算软件
[ ] ARM处理器应用开发4步骤
[ ] 实用电源电路集锦
 
论坛新帖 [更多]
 
铁电FM24C256读取几千次...
美图欣赏...
请教2410驱动ADS7864...
电子工程师了解最新IC设计及制...
防雷产品大全...
嵌入式系统软件工程师—就业班(...
嵌入式系统驱动工程师-高级班(...
FPGA/CPLD工程师—高级...
Symbian手机应用开发工程...
Symbian手机应用开发工程...

 
赞助商 [更多]
 


ICP许可证号:[粤 05056597]
联系电话:010-82517432 82517615 传真: 010-82517615

版权所有 Copyright © 2006 嵌入式技术网