基于DSP的MP3播放器设计.docx
- 文档编号:5082776
- 上传时间:2022-12-13
- 格式:DOCX
- 页数:36
- 大小:775.78KB
基于DSP的MP3播放器设计.docx
《基于DSP的MP3播放器设计.docx》由会员分享,可在线阅读,更多相关《基于DSP的MP3播放器设计.docx(36页珍藏版)》请在冰豆网上搜索。
基于DSP的MP3播放器设计
题目基于DSP的MP3播放器设计
一技术指标
表一技术指标
序号
技术指标
参数
1
内存
2GB
2
数据流速度
64kb/s—320kb/s
3
谐波失真
0.01%
4
信噪比
≥90dB
5
动态范围
85dB
6
通道分离度
80dB
7
录音格式
ADPCM
8
录音数据流速率
16kb/s-32kb/s
9
解码功能
16、32kb/s等(WAV格式)
16、32、48、64、128kb/s等(MP3格式)
10
USB接口
3—4Mb/s(下载)
5—6Mb/s(上传)
11
音频输出功率
(5-7.5)mW×2
12
电池
AAA型1节
13
静态电流
≤2uA
14
待机电流
≤30mA
15
工作电流
≤70mA
16
录音取样频率
8kHz
二功能描述
表二功能描述
序号
功能
当前状态
操作
结果
1
播放
待机、停止
按PLAY键
顺序播放内存中的MP3歌曲
2
随机播放
播放
按随机键
MP3中的歌曲随机播放
3
重复播放
播放
重复按REPEAT键
普通播放→单曲重复→所有歌曲重复→普通播放
4
循环播放
播放
按MODE键
按一次设起点,再按一次设终点,两点间循环播放
循环播放
按MODE键
返回原播放
5
音场选择
待机、播放
重复按EQ键
普通(NORMAL)→古典(CLASSIC)→摇滚(ROCK)→重低音(BASS)→迪斯科(DISCO)→爵士(JAZZ)→流行(POP)→普通(NORMAL)
6
音量控制
播放
按VOL+键
声音增大
按VOL-键
声音减小
7
搜索
播放
按REW或FF键
向前或向后搜索歌曲并播放
待机、停止
按REW或FF键
向前或向后搜索歌曲文件名
8
暂停
播放
按PLAY键
暂停播放
暂停播放
按PLAY键
恢复播放
9
删除
待机:
选定文件
按DEL键二次
删除选定文件
10
锁定
待机、播放
按HOLD键
其他键失去作用
锁定
按HOLD键
取消锁定
11
浏览
停止
按REW或FF键
顺序显示存储器中的歌曲文件名
12
停止
播放
按STOP键
停止
13
关机
停止
按“开关”键
关机
待机n分钟
无
三方案论证
1硬件要求
预期的MP3播放器的目标系统硬件要求实现以下功能:
·能够存储一定量的MP3码流文件,供解码系统使用。
在系统初步实现时,存储的码流长度至少要保证能够从主观上感受到音频信号解码的效果;
·能够对MP3码流进行解码,从MP3格式恢复成PCM码流。
系统应该能够保证解码过程的正确性,并能够满足解码算法在实现过程中所需要的存储空间、计算速度等需求;
·能够把解码后输出的PCM码流通过扬声设备,如耳机、音箱等播放出来,这样才能够从直观上判断解码的效果,并且方便后期在使用该系统方案时进行直观性能评价和直接应用;
·能够满足系统的功率要求。
一般情况下,对于电子类便携式系统,或者嵌入式应用方案来说,系统的功耗要比较低,用电池供电能够满足系统的工作需要。
2软件要求
系统的软件应该能够实现以下功能:
·能够从数据存储介质中读取MP3码流数据,要能保证数据读取的速度满足系统的需要;能够正确定位MP3文件数据的地址和文件长度,为后期进行歌曲选择打下基础;
·能够正确对MP3码流进行解码,并且以所需要的格式和方式输出。
解码算
法要在目标系统中实现,因此,不但要保证算法的正确性,也要保证算法的适应
性,充分利用目标系统性能特性,并满足系统的运算速度要求;
·能够正确协调硬件各个模块的工作,提供正确的芯片控制信号,这项软件
功能是专门针对硬件的,需要根据目标系统的硬件需求来设计实现;
3两种设计方案
为了能够设计和实现出较高性能的系统,需要了解当前的MP3解码器系统的实现方案。
市场调查和技术咨询的结果显示,目前MP3播放器系统MP3解码模块一般有两种实现方案。
第一、使用专业的MP3解码芯片,辅以简单的外围电路实现。
这种方案的优点是系统个体集成度高,电路结构紧凑,实现相对比较简单,能够很快设计实现出目标系统并投入使用,但是由于使用的是专业芯片,芯片中的功能模块即使能扩充,幅度和范围都相对较小,系统很难进行算法升级或功能扩充,在嵌入式应用中与原系统的集成度不高。
第二、以通用数字信号处理器(DSP,DigitalSignalProcessor)为核心,搭建相应的外部电路形成一个系统,解码功能通过对数字信号处理芯片编程来实现。
这种方案中,使用一定开发环境进行软件的设计实现和调试测试。
为了满足解码系统的需求,需要根据性能和技术要求,对通用的数字信号处理芯片进行外围电路扩充。
这种方案的优点是系统实现的灵活性高,功能的可扩展性强,系统成本可以通过对芯片的选择控制到相对较低的水平,而且对于同样使用数字信号处理芯片实现的系统来说,能最大程度地进行系统集成。
但是由于整个系统从硬件到软件都需要自行设计和搭建,系统实现的难度和复杂度比较高。
对于本系统设计采用方案二,即采用以DSP实现编解码的系统。
四设计方案
基于DSP的系统设计方案
MP3解码器的解码算法完全由DSP芯片实现,其控制部分用单片机实现,作为硬件电路设计的一个部分。
电路的整体设计与开发需要综合考虑前面两部分程序算法接口内容,可以在进行详细的程序设计的基础上进行。
这样,可以把MP3解码器的开发工作分为两大模块,即MP3解码程序DSP实现,即软件设计,以单片机控制程序和电路板设计部分,即硬件设计。
MP3系统开发从模块上可以划分为硬件开发和软件开发两个部分,软件主要实现MP3解码算法,单片机实现存储器访问控制,MP3文件播放控制等功能。
系统总体的功能结构如图一所示。
图5.1系统结构框图
软件系统设计方案是用DSP软件实现MP3解码算法功能,并完成相应的接口访问功能,软件功能图如图二所示。
图5.2MP3解码器软件系统功能原理图
五系统整体框图
MP3解码算法要被用来实现数码MP3实时解码适配器,所以必须通过硬件实现其算法。
本系统以DSP(TMS320VC5416)作为解码的主要部分,还包括音频D/A转换,单片机的控制模块,电源系统,存储器模块等组成,图三给出了系统框图。
图5.3系统整体框图
六硬件电路设计
1主译码模块
(1)TMS320C6711接口与时钟电路
veloci结构使C6000DSP成为高性能的DSP芯片。
典型的VLIW结构由多个并行运行的执行单元组成,这些单元在单个时钟周期内可执行多条指令。
并行是突破传统设计而获得高性能的关键。
C6711处理器由三个主要部分组成:
CPU内核、外设和存储器。
CPU中8个功
能单元可以并行操作,这些功能单元被分成类似的两套,每套由4个基本功能单元组成。
CPU有两组寄存器,每组寄存器由16个32位寄存器组成。
由于在运行期间个做硬件数据相关性的检查,所以程序的并行性在编译时就被确定。
片内程序存储器的总线宽度为256的,使每个周期可取8条32位指令。
C6711腆芯片包括片内程序存储器和数据存储器,有些芯片将这些存储器作为高速缓冲存储器。
外设包括直接存储器访问(DMA)、低功耗逻辑、外部存储器接口、串口、扩展总线或主机口和定时器等。
具有以下特点:
1运行速度快。
指令周期为6ns,峰值运算能力为1336MIPS,对于单精度运算可达1GFLOPS,对于算精度运算可达250MFLOPS.
2硬件支持IEEE格式的32位单精度与64为双精度浮点操作。
3继承了32*32bit的乘法器,其结果可为32或64bit.
4C6711的指令集在C62的指令集基础上增加了浮点执行能力,可以看作是C62指令集的超集。
与C62系列芯片一样,由于其出色的运算能力、高效的指令集、智能外设、大容量的片内存储器和大范围的寻址能力,这个系列的芯片适合用于基站数字波束形成、图像处理、语音识别等对运算能力和存储量有高要求的应用场合。
图6.1时钟,JTAG和DSP接口电路
时钟电路有25MHZ晶振,两片ICS504和SN74LVTH125PW组成,如图所示
图6.2时钟电路
(2)JTAG仿真口电路
连接测试组(JTAG)接口用于连接最小系统和仿真器,实现仿真器对DSP的访问,JTAG接口的连接需要和仿真器上的接口一致。
一般情况下,最小系统板需要引出双排的14脚插针,图中引脚间隔为0.1英寸,引脚宽度为0.025英寸,引脚长度为0.235英寸。
在大多数情况下,如果开发板和仿真器之间的连接电缆不超过6英寸,可采用上述接法,在EMU0和EMU1接上拉电阻4.7K。
图6.3JTAG电路
2模拟音频模块
声音采集电路以TI公司的音频编解码器TLV320AIC23为核心来完成,AIC23把麦克风输出的模拟音频信号转换成数字音频信号,形成PCM码流,送给DSP芯片。
DSP则以DMA方式,通过多通道缓冲串口读取PCM样值,并在片内RAM建立帧缓冲区,每帧的大小为12,DSP通过I2C接口对芯片的内部寄存器进行控制设置,使其工作在合适的的工作模式下。
(1)A1C23与6711的连接方式
AIC23与DSP的接口有两个:
一个是控制口,用于设置AIC23的工作参数;另一个是数据口,用于传输AIC23的A/D、D/A数据。
将6711的McASP配置成脉冲帧同步模式,2通路TDM格式的数据流,与4片AIC23的数据接口相连;使用I2C总线与AIC23的控制口接口。
AIC23的数据口
AIC23的数据口有4种工作方式,分别为Rightiustitled、Leftjustified、xlsMode、DSPMode。
其中后两种可以很方便的与DSP的McASP串口相连接。
采用DSPMode工作方式。
AIC23的数据口可以和6711的McASP接口无缝连接,方便地实现主模式与从模式两种工作方式。
当McASP为从模式时,McASP的接收时钟与帧同步信号都由AIC23来提供;当McASP为主模式时,McASP产生所有的信号。
McASP串口相连接。
采用DSPMode工作方式。
AIC23的数据口可以和6711的McASP接口无缝连接,方便地实现主模式与从模式两种工作方式。
当McAS为从模式时,McASP的接收时钟与帧同步信号都由AIC23来提供;当McAS为主模式时,McASP产生所有的信号。
AIC23的控制口
AIC23的控制口有两种工作方式:
两线制的I2C方式(MODE为低);三线制的SPI方式(MODE为高),文中采用I2C方式,时序图如图4.6所示。
图6.4I2C总线配置AIC23的时序图
使用I2C总线对AIC23进行配置时,I2C总线选择7位地址的寻址方式,由于AIC23的寄存器只有写操作无读操作,因而其通讯协议规定每个WORD的前7Bit为寄存器的地址,后1Bit为寄存器内容。
在两线制的I2C方式下SDI为串行数据线,SCLK为串行时钟线,开始条件是当SCLK为高而SDI为下降沿,1到7个位时钟传输寄存器地址,R/W位决定数据传输方向,第9个位时钟识别地址并接受数据传输,后2个8位时钟传输控制数据位(9位)。
单片AIC23接口电路。
图6.5音频转换电路
3电源模块
TMS320C6711的内核电压典型值为1.26V,电压范围为1.1~1.8V;外部接口电压典型值为3.3V,电压范围为3.0~3.6V。
另外单片机需+5V供电;电平转换电路需3.3V供电;故电源系统有5V、3.3V和1.26V四种电压。
电系统的5V电压由外部稳压电源供给;3.3V和1.26V由系统内部线性电压调节器提供。
采用TI公司的TPS767D3011线性调压电路芯片,能满足系统设计要求。
TPS767D3011为双输出低漏电压调整器。
其特点如下:
具有快速瞬态响应功能;
3.3V/1.26V可调电压输出;
输出电流范围为0~1A;
200MS延迟的双通道上电复位;
热关断保护;
超低静态电流,典型值为80uA;关断电流为1uA。
采用TPS767D3011构成的电源电路如图6.2所示。
从外部稳压电源引入5V电压。
+5V电压一方面输入给TPS767D3011,经TPS767D3011后输出电压1.26V和3.3V,另一方面又直接供给单片机电源。
图6.6电源电路
4存储扩展
(1)SDRAM扩展
本系统采用MICron公司生产的MT48LC4M16AZ作为SDRAM存储芯片,并可与DSP完全兼容,能够与6711实现无缝连接。
MT48LC4M16AZ连线图如图4.12所示。
通过对6711的EMIF与SDRAM相关寄存器的设置之后,DSP对SDRAM的访问操作将变的非常透明,可像访问片外SRAM一样访问它,因此非常方便。
系统中采用一片Mieron公司的MT48LC4M16AZ,数据宽度16bit,工作电压为3.3V。
该芯片可以满足系统对内存容量和读写速度的要求。
板上通过6711的EMIF总线扩展了一片64M位(IM*4Blank*16)的SDRAM,它将占用oM642的石而和瓦1二个片外存储空间可寻址范围oXo40000一oX7FFFFF:
最大配置时,板上可安装一片128M为的SDRAM,它将占用6711的CEO一CE3。
全部四个片外存储空间,可寻址范围0x040000一OxFEFFFF(6711状态寄存器ST3中的MPNMC=O),或oxO40000一OxFFFFFF(MPNMC=0),上电复位时,MPNMC被清0。
由于EMIF每个片选的最大空间为64M比特,所以一片64M比特的SDRAM就要占用1个片选空间,然而仅有1个对应映射范围开始的CE引脚作为SDRAM的片选信号。
所以同时选用CEO和CEI空间,用EMIF的CEO与SDRAM片选CS相联,CEI引脚悬空。
图6.7SDRAM扩展电路
(2)FLASH存储器模块
本系统采用SST公司推出的多用途、高性能、低电压、基于CMOS的FLASH存储器SST39VF80OA,其容量为SMbit(512kx16bit),只需2.7V的电压就可完成读、写和擦除操作,写入一个字节(sbit)仅需20,s,整个存储器的擦除只需8s。
FLASH存储器电路的连接图如图4.13所示。
图6.8FLASH扩展电路
由于本系统DSP采用ROM加载方式,在上电复位之后首先将CE1空间的程序代码搬到片内地址O处开始运行,因此FLASH主要分配到DSP的外部CE1空间。
为使DSP能够正确地从FLASH引导并加载程序,还需配置相应的引脚。
由于C6000系列DSP提供了与FLASH的无缝接口,因此设计6711与FLASH的接口电路就变得相对较简单。
(3)ROM模块
采用EPROM芯片AT29LV010A-15JC存储程序,接线图如下;
图6.9ROM电路
5单片机控制模块
(1)USB接口电路与控制
下面介绍以下PDIUSBD12芯片。
图6.10PDIUSBD12芯片引脚
D0~D7:
双向8位数据线。
ALE:
地址锁存使能信号。
CLKOUT:
可编程时钟输出。
/INT:
PDIUSBD12中断输出。
D-:
USBD-数据线。
D+:
USBD+数据线。
PDIUSBD12适应于不同类型的设备,有四种不同的模式:
非同步传输,同步输出传输,同步输入传输,同步输出/输入传输。
共有3各端点,分别为端点0,端点1和端点2。
端点是一个USB设备唯一可以确认的部分,它是主机和设备之间的通信流终点。
每一个USB逻辑设备都包括一个端点集合,PC机应用软件只能通过一个或多个端点与一个USB设备通信。
在设备接入时,每个逻辑设备都有一个由系统分配的唯一地址,而一个设备上的任一个端点都有一个有设备确定的唯一的标识和端点号,利用设备的地址和端点号就可以唯一指定任一个端点。
所有的USB设备都要拥有端点0,它总是在设备一经接入和上电时就进行配置。
该端点用于对一个逻辑设备进行初始化和一般的操作。
端点0支持控制传输,通过它访问一般的USB状态和控制操作。
除了端点0外,功能设备还具有其他端点,如PDIUSBD12的端点1和端点2.低速功能设备有两个端点可供选择,而一个全速设备最多可以有16个输入端点和16个输出端点。
(2)单片机与键盘控制
单片机采用80C52芯片,实现按键管理,及USB控制。
图6.11USB,键盘和单片机接口电路
6LCD扩展
LCD模块选择VPG240128TA-SC-HT-LED04,LCD工作电压与DSP的电压不匹配,需要做电平匹配,LCD电平转换芯片SN74LVC4245A;LCD模块通过排线与单板连接。
图6.12LCD显示接口电路
七PCB板设计
在MP3播放机PCB板设计中,经过合理布局,全面满足了外观和结构方面的需求。
同时在数字信号部分精心考虑信号线走向,尽可能多地增加铺地面积,减少分布参数的影响,使干扰减少到合理范围。
兼顾信号质量和成本后,最终PCB板采用了六层板设计。
八系统软件设计
1CVSD编码
语音信号采用比较容易实现的CSVD编码,也即线性增量调制算法编码方法,实现对语音信号的编码以及相应的解码算法。
CVSD是一种量阶
随着输入语音信号平均斜率大小而连续变化的增量调制方法。
他的工作原理是使用多个连续可变斜率的线段来逼近语音信号,当斜率为正时,对应的数字编码为1;当斜率为负时,对应的数字编码为0。
当CVSD工作于编码方式时,其系统框图如7.1,语音输入信号
经采样得到数字信号
,数字信号
与积分器输出信号
¥比较后输出偏差信号
,偏差信号经判决后输出数字编码
,该信号同时作为积分器输出斜率的机型控制信号和积分器输出斜率逻辑的输入信号。
在每个时钟周期内,若语音信号大于积分器输出信号,则判决输出为1,积分器输出上升一个量阶
;若语音信号小于积分器输出信号,则判决输出为0,积分器下降一个量阶
。
图8.1CSVD编码系统框图
当CSVD工作于解码方式时,其系统框图如图7.2。
在每个时钟周期内,数字编码
被送到连码检测器,然后送到斜率幅度控制电路一控制积分器输出斜率的大小。
若数字编码
输入为1,则积分器的输出上升一个量阶
,这相当于编码过程的逆过程。
积分器的输出通过低通滤波器平滑滤波后将重现输入语音信号
。
图7.2CSVD解码系统框图
可见输入信号的波形上升越快,输出的连1码就越多,同样下降越快连0码越多,CVSD编码能够很好地反应输入信号的斜率大小。
为使积分器的输出能够更好地逼近输入语音信号,量阶
随着信号斜率大小而变化,当信号斜率绝对值很大,编码出现3个连1或连0码时,则量阶
加一个增量,当不出现上述码型时,量阶
则相应地减小。
为了减小编码及译码的偏差,要求编码和译码过程使用相同的时钟频率,而且采样频率应符合耐酸斯特采样定律。
CSVD通过不断改变量阶
大小来跟踪信号的变化以减小颗粒噪声与斜率过程失真,量阶
调整是基于过去的3个或4个样值输出。
具体编码程序如图7.3,具体解码程序如图7.4.
图7.3语音编码流程图图7.4语音解码流程图
2CVSD编码的C语言程序代码
#include
#include
//#include
#defineBUFFERSIZEOUT254
#defineBUFFERSIZEIN4064
#defineDeltaMax1280
#defineDeltaMin6.5
#defineBeta0.99
#defineORD6
#defineMAX_BITS16
doubleValPreCVSD=0;
doubleDeltaCVSD=20;
doubleDelta0CVSD=10;
charThreeJudgeCVSD[3]={0,1,0};
doubleValPreCVSDDE=0;
doubleDeltaCVSDDE=20;
doubleDelta0CVSDDE=10;
charThreeJudgeCVSDDE[3]={0,1,0};
staticdoubleCoefA[ORD]={1.00000000,-3.88893329,6.64074495,-6.08600100,2.98673653,-0.62768820};
staticdoubleCoefB[ORD]={0.03285030,-0.05723916,0.03681835,0.03681835,-0.05723916,0.03285030};
staticshortfilterY[ORD-1];
staticshortfilterX[ORD];
charCVSDCoder(shortInData);
shortCVSDDecoder(charInData);
charCVSDCoder(shortInData)
{
doubleDiff=0;
intj=0;
charOutData;
Diff=InData-ValPreCVSD;
if(Diff>0)
{
ThreeJudgeCVSD[j]=1;
OutData=1;
}
else
{
ThreeJudgeCVSD[j]=0;
OutData=0;
}//判断三连码
if(((ThreeJudgeCVSD[0]==1)&(ThreeJudgeCVSD[1]==1)&(ThreeJudgeCVSD[2]==1))|((ThreeJudgeCVSD[0]==0)&(ThreeJudgeCVSD[1]==0)&(ThreeJudgeCVSD[2]==0)))
DeltaCVSD=DeltaCVSD+Delta0CVSD;
elseDeltaCVSD=Beta*DeltaCVSD;
if(DeltaCVSD>DeltaMax)DeltaCVSD=DeltaMax;
if(DeltaCVSD if(ThreeJudgeCVSD[j]==1) { ValPreCVSD=ValPreCVSD+DeltaCVSD; } if(ThreeJudgeCVSD[j]==0) { ValPreCVSD=ValPreCVSD-DeltaCVSD; } j++; j%=3; returnOutData; } shortCVSDDecoder(charInData) { doubleMax; intj=0; intm=0; shortOutData; shortDataDecode; if(InData==0)ThreeJudgeCVSDDE[m]=0;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 DSP MP3 播放 设计