基于DSPMP3播放器设计Word下载.docx
《基于DSPMP3播放器设计Word下载.docx》由会员分享,可在线阅读,更多相关《基于DSPMP3播放器设计Word下载.docx(22页珍藏版)》请在冰豆网上搜索。
工作内容
1
2011.6.27~2011.6.28
在预设计的基础上,进一步查阅资料,完成硬件电路设计。
2
2011.6.28~2011.6.29
编写软件代码,调试与完善。
3
2011.6.29~2011.6.30
测试程序,优化代码,增强功能,撰写课程设计报告。
4
2011.6.30~2011.7.1
提交软件代码、硬件电路成果和设计报告,参加答辩。
指导教师(签章):
年月日
摘要:
在当今这个信息、科技高速发展的数字化时代,数字信号处理技术逐步体现出它的优势与拓展空间。
越来越多的电子产品将数字信号处理作为技术核心,并广泛应用于控制、通信、图像处理等各个领域。
为了适应这一发展趋势,基于DSP的MP3播放器设计的这一课题也就如期而至,在这次接近实践的实习中我们将针对DSP的硬件实现原理和其结构特点,利用汇编语言设计相应的代码来实现预期目的中所要达到的MP3播放器各项功能。
与此同时,针对DSP的MP3解码问题的理解和解决也成为了我们这次设计中需要克服的最大难题。
相比专用芯片的MP3解码,采用DSP芯片进行软解码的灵活性、可移植性、通用性等都具有很大优势。
实习中需要用PROTEL软件对外围电路进行设计和绘制,利用CCS软件进行汇编程序的编译和调试,在软硬件设计完成后将其结合进行仿真完成设计要求。
关键词:
数字信号处理;
MP3;
解码;
PROTEL
目录
1课题综述1
1.1课题来源1
1.2课题意义1
1.3预期目标1
1.4面对问题1
2系统分析1
2.1涉及到的基础知识1
2.2解决问题的基本思路4
2.3软件分析4
2.4硬件分析4
2.5总体方案4
3系统设计5
3.1软件设计5
3.2硬件设计6
3.3程序代码7
4电路设计10
4.1电源电路10
4.2FLASH存储器电路11
4.3USB接口电路12
4.4PCB图13
5系统仿真与调试13
总结15
致谢16
参考文献17
1课题综述
1.1课题来源
DSP应用的快速发展为数字信息产品带来广阔的发展空间,并将支持通信、计算机和消费类电子产品的数字化融合。
与此同时,数字编解码及压缩技术也不断进步,在对于音视频处理领域也成了当前的热点之一。
MP3在这时也应运而生,成为了当今科技时尚潮流的代名词,各种手持娱乐终端、消费类电子产品中对于MP3播放器的功能,也是风靡一时。
而对于MP3的压缩解码器技术理所应当的成为了我们实习的最好课题。
1.2课题意义
随着各种MP3的不断更新换代,对于MP3的压缩编码解码的要求也就越来越高,本课题采用基于DSP技术下的MP3播放器,采用慢速大容量外存加高速小容量外存的组合方式,音乐文件先从慢速外存下载至高速外存再载入DSP的高速RAM,下载一部分处理一部分的工作方式,充分体现了当今时代对MP3功能的需求。
而研究如何将DSP技术和MP3有机的结合就成为了我们这次实习的重要意义所在。
1.3预期目标
通过对软硬件的设计,使基于DSP的MP3播放器实现播放、搜索、音量控制、暂停、删除、锁定、浏览、停止、关机、播放模式控制、音场选择等功能模块。
并针对其不同的功能设定不同的快捷键来方便使用。
1.4面对问题
在这次设计过程中,我们需要解决基于DSP芯片上的MP3软件设计和硬件设计两大部分。
对于软件部分,要利用汇编语言来实现其解码功能,并最终和其各项功能结合在一起。
硬件部分的难点是合理的将各模块的DSP芯片有机的连接起来。
2系统分析
2.1涉及到的基础知识
2.1.1MP3
MP3全称是动态影像专家压缩标准音频层面3(MovingPictureExpertsGroupAudioLayerIII)。
是当今较流行的一种数字音频编码和有损压缩格式,它设计用来大幅度地降低音频数据量,而对于大多数用户来说重放的音质与最初的不压缩音频相比没有明显的下降。
它是在1991年由位于德国埃尔朗根的研究组织Fraunhofer-Gesellschaft的一组工程师发明和标准化的。
MP3也是一个数据压缩格式。
它丢弃掉脉冲编码调制(PCM)音频数据中对人类听觉不重要的数据(类似于JPEG是一个有损图像压缩),从而达到了小得多的文件大小。
在MP3中使用了许多技术其中包括心理声学以确定音频的哪一部分可以丢弃。
MP3音频可以按照不同的位速进行压缩,提供了在数据大小和声音质量之间进行权衡的一个范围。
2.1.2DSP
数字信号处理(DigitalSignalProcessing,简称DSP)是一门涉及许多学科而又广泛应用于许多领域的新兴学科。
20世纪60年代以来,随着计算机和信息技术的飞速发展,数字信号处理技术应运而生并得到迅速的发展。
数字信号处理是一种通过使用数学技巧执行转换或提取信息,来处理现实信号的方法,这些信号由数字序列表示。
在过去的二十多年时间里,数字信号处理已经在通信等领域得到极为广泛的应用。
DSP的优点:
对元件值的容限不敏感,受温度、环境等外部因素影响小;
容易实现集成;
VLSI可以分时复用,共享处理器;
方便调整处理器的系数实现自适应滤波;
可实现模拟处理不能实现的功能:
线性相位、多抽样率处理、级联、易于存储等;
可用于频率非常低的信号。
DSP的缺点:
需要模数转换;
受采样频率的限制,处理频率范围有限;
数字系统由耗电的有源器件构成,没有无源设备可靠。
但是其优点远远超过缺点。
2.1.3PDIUSBD12
PDIUSBD12是一款性价比很高的USB器件。
它通常用作微控制器系统中实现与微控制器进行通信的高速通用并行接口,它还支持本地的DMA传输;
这种实现USB接口的标准组件使得设计者可以在各种不同类型微控制器中选择出最合适的微控制器;
这种灵活性减小了开发的时间、风险以及费用(通过使用已有的结构和减少固件上的投资)从而用最快捷的方法实现最经济的USB外设的解决方案;
PDIUSBD12完全符合USB1.1版的规范,它还符合大多数器件的分类规格:
成像类、海量存储器件、通信器件、打印设备以及人机接口设备。
同样,地PDIUSBD12理想地适用于许多外设,例如:
打印机、扫描仪、外部的存储设备(Zip驱动器)和数码相机等等。
它使得当前使用SCSI的系统可以立即降低成本;
PDIUSBD12所具有的低挂起功耗连同LazyClock输出可以满足使用ACPI、OnNOW和USB电源管理的要求。
低的操作功耗可以应用于使用总线供电的外设;
此外它还集成了许多特性,包括SoftConnetTM、GoodLinkTM、可编程时钟输出、低频晶振和终止寄存器集合。
所有这些特性都为系统显著节约了成本,同时使USB功能在外设上的应用变得容易。
PDIUSBD12引脚图如图2-1所示。
图2-1PDIUSBD12芯片引脚图
D0~D7:
双向8位数据线;
ALE:
地址锁存使能信号;
CLKOUT:
可编程时钟输出;
/INT:
PDIUSBD12中断输出;
D-:
USBD-数据线;
D+:
USBD+数据线。
2.1.4SDRAM
SDRAM(SynchronousDynamicRandomAccessMemory),同步动态随机存储器,同步是指Memory工作需要同步时钟,内部的命令的发送与数据的传输都以它为基准;
动态是指存储阵列需要不断的刷新来保证数据不丢失;
随机是指数据不是线性依次存储,而是自由指定地址进行数据读写。
SDRAM从发展到现在已经经历了四代,分别是:
第一代SDRSDRAM,第二代DDRSDRAM,第三代DDR2SDRAM,第四代DDR3SDRAM。
2.2解决问题的基本思路
从基础出发,不难看出对于本次课程设计我们需要从两方面考虑,一方面是对于软件的设计,另一方面是其硬件问题的解决。
对于软、硬件的问题我们需要先分析其设计的要求,并根据其设计要求具体设计方案,分派任务,将一项工程分而治之,各个击破。
即化整为零,整理妥当后在合二为一的综合设计思路。
因为MP3的编码系统和各实现模块电路在本次设计中是重点,也是难点,所以对于这部分的工作还是要做到细致入微的才行。
2.3软件分析
通过系统的软件要实现数据存储介质中读取MP3码流数据,并保证数据读取的速度满足系统的需要;
能够正确定位MP3文件数据的地址和文件长度,为后期进行歌曲选择打下基础;
与此同时,对MP3码流进行解码,并且以所需要的格式和方式输出。
解码算法要在目标系统中实现,因此,不但要保证算法的正确性,也要保证算法的适应性,充分利用目标系统性能特性,并满足系统的运算速度要求;
最后,要能正确协调硬件各个模块的工作,提供正确的芯片控制信号。
2.4硬件分析
对于MP3播放器的系统分析除了软件分析,当然还有对其硬件的分析。
首先,做出的硬件要能够对MP3码流进行解码,从MP3格式恢复成PCM码流。
系统应该能够保证解码过程的正确性,并能够满足解码算法在实现过程中所需要的存储空间、计算速度等需求;
而且可以存储一定量的MP3码流文件,供解码系统使用。
在系统初步实现时,存储的码流长度至少要保证能够从主观上感受到音频信号解码的效果;
在解码后输出的PCM码流通过扬声设备,如耳机、音箱等播放出来,这样才能够从直观上判断解码的效果,并且方便后期在使用该系统方案时进行直观性能评价和直接应用;
最后,能够满足系统的功率要求。
一般情况下,对于电子类便携式系统,或者嵌入式应用方案来说,系统的功耗要比较低,用电池供电能够满足系统的工作需要。
2.5总体方案
对于本次课程设计,我们将设计的工作分为两个部分:
即硬件系统部分和软件系统部分。
其中硬件系统主要包括主译码模块、控制模块、模拟音频模块、电源模块等。
软件系统主要实现MP3解码算法,存储器访问控制,MP3文件播放控制等功能。
系统总体设计如图2-2所示。
图2-2总体设计图
3系统设计
3.1软件设计
考虑到MP3解码软件的复杂度和可读性,整个解码软件采用DSPC语言编写。
DSPC语言具有与标准ANSIC语言相同的语法特点,同时还和DSP硬件相结合,能够直接控制DSP的在片或外围设备资源。
随着信号处理技术的不断发展,DSP的C语言编译器编译效率也越来越高,54X系列的C语言编译器效率能达到60%~70%,6000系列的编译器效率高达80%。
所以用C语言来对DSP进行编程是必然的趋势。
MP3解码算法虽然复杂,但是整个解码过程分为各个模块进行,各个模块之间相对比较独立。
在整个解码软件的设计过程中,对各个模块采用子函数的方式,各个模块间的联系表现为函数的参数传递。
整个解码软件由一个主函数控制,调度各个模块的有序运行。
软件系统设计方案是用DSP软件实现MP3解码算法功能,并完成相应的接口访问功能,包括控制子系统和MP3子系统两部分。
控制子系统包括通用驱动、FLASH文件系统、HPI驱动等部分;
MP3子系统包括HPI驱动、MP3解码、输出均衡、D/A转换等部分。
软件功能设计原理如图3-1所示。
图3-1MP3软件系统设计图
3.2硬件设计
对于硬件平台设计的结构框图如图3-2所示。
图3-2硬件平台结构图
从结构图可以看出,整个硬件平台分为以下几个部分:
核心处理器TMS320VC5416,用来执行MP3解码程序以及一些控制功能。
可编程逻辑芯片CPLD,作为各个模块间的接口,包括地址译码、时序控制及格式转换等功能。
存储器模块,包括程序存储器、大容量与非数据存储器,程序存储器为FLASH器件,用来存储DSP的可执行程序,上电后加载到DSP内部程序空间运行解码程序,数据存储器用来存储MP3数据。
音频CODEC,用来对DSP输入/输出地音频流进行数模转换,播放MP3音乐。
与PC机的接口,即USB接口,用来传送大容量MP3数据。
电源,用来给整个电路板供电。
整个硬件平台的工作流程如下:
首先通过串口或USB接口从PC机中下载MP3数据,存储在大容量数据存储器中。
DSP读取存储器中的数据进行解码,还原出PCM信号,再通过DSP的缓冲串口送到音频CODEC,最终播放出MP3音乐。
3.3程序代码
.title"
CVSDcoder.asm"
.mmregs
STACK.usect"
STACK"
10h
.globalInit,Begin
DeltaMax.set1280h
DeltaMin.set65h
Beta.set99h
Delta0CVSD.set10h
.data
TBL:
.word0,1,0
.bssThreeJudge,3
.bssInData,1
.bssOutData,1
.bssDeltaCVSD,1
.bssValPreCVSD,1
.text
Init:
STM#ThreeJudge,AR5;
将ThreeJudge的地址赋给AR5
RPT#3;
重复执行以下指令3次
MVPDTBL,*AR5+;
将TBL的数据赋给AR5指定的地址空间
ST#20,*(DeltaCVSD);
将立即数20赋给DeltaCVSD
ST#0,*(ValPreCVSD);
将立即数0赋给ValPreCVSD
ST#100,*(InData);
将立即数100赋给InData
Begin:
LD*(InData),A;
将InData的内容赋给A
STLMA,AR1;
将InData的内容赋给AR1
LD*(ValPreCVSD),A;
将ValPreCVSD的地址赋给A
STLMA,AR0;
将ValPreCVSD的内容赋给AR0
CMPRLT,AR1;
AR1-AR0,小于零置TC位为1
BCDiffNeg,TC;
TC=1跳转到DiffNeg
STM#1,*AR5+;
ThreeJudgeCVSD[0]=1
ST#1,*(OutData);
OutData=1;
判断三连码
LD#1,A
AND*AR5+,A
BCL1,ANEQ;
A不等于零,A=1(三连码)跳转到L1
STM#DeltaCVSD,AR6;
将DeltaCVSD赋给A
STM#Beta,T;
将Beta赋给T
MPYAR6,A;
DeltaCVSD*=Beta;
BL2
L1:
LD#DeltaCVSD,A;
STM#Delta0CVSD,AR3;
将Delta0CVSD赋给AR3
ADDAR3,A;
DeltaCVSD+=Delta0CVSD;
;
判断Delta是否超出最大值
L2:
STM#DeltaMax,AR0;
将DeltaMax赋给AR0
STLA,AR4;
A的低16位赋给AR4
CMPRLT,AR4;
AR4小于AR0,没有超出最大值,置TC为
BCL3,TC;
没有超出最大值,跳转
LDAR0,A;
如果超出最大值,置A为AR0,即最大值
判断Delta是否超出最小值
L3:
STM#DeltaMin,AR0;
将DeltaMin赋给AR0
STLA,AR4;
CMPRGT,AR4;
AR4大于AR0,没有超出最小值,置TC为
BCL4,TC;
没有超出最小值,跳转
如果超出最小值,置A为AR0,即最小值
L4:
STLA,*(DeltaCVSD);
将A的低16位值赋给DeltaCVSD
STM#ValPreCVSD,AR4;
将ValPreCVSD的地址赋给AR4
ADD*AR4,A;
AR4所指向的内容与A相加
STLA,*(ValPreCVSD);
将A低16位值赋给ValPreCVSD
Bending
DiffNeg:
STM#0,*AR5+;
ThreeJudgeCVSD[0]=0;
ST#0,*(OutData);
OutData=0
LD#0,A
ADD*AR5+,A
BCL5,ANEQ;
A不为零(非三连码)跳转到L5
LD#DeltaCVSD,A
STM#Delta0CVSD,AR3;
BL6
L5:
STM#DeltaCVSD,AR6
STM#Beta,T
L6:
STM#DeltaMax,AR0
STLA,AR4
AR4小于AR0,置TC为1
BCL7,TC;
没有超出最大值
LDAR0,A
L7:
STM#DeltaMin,AR0
AR4大于AR0,置TC为1
BCL8,TC;
没有超出最小值
L8:
STLA,*(DeltaCVSD)
STM#ValPreCVSD,AR6
LD*(AR6),A
SUBAR4,A
STLA,*(ValPreCVSD)
ending:
STLA,*(ValPreCVSD)
.END
4电路设计
4.1电源电路
TMS320VC5416的内核电压典型值为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由系统内部线性电压调节器提供。
采用TPS70348线性调压电路芯片,能满足系统设计要求。
TPS70348为双输出低漏电压调整器,具有快速瞬态响应功能;
3.3V/1.26V可调电压输出;
输出电流范围为0~1A;
200ms延迟的双通道上电复位;
热关断保护;
超低静态电流,典型值为80uA;
关断电流为1uA。
采用TPS70348构成的电源电路如图4-1所示。
从外部稳压电源引入5V电压。
+5V电压一方面输入给TPS70348,经TPS70348后输出电压1.26V和3.3V,另一方面又直接供给内核电源。
图4-1电源电路图
4.2FLASH存储器电路
DSP与FLASH是主从关系,由DSP的相关输出管脚控制FLASH的擦除和读写。
其中,A0一A18为地址线,DO—D7为数据线。
FLASH用于存放引导程序段和用户代码,由DSP软件编程来写入。
当系统脱机加电时,DSP首先从外部FLASH指定的引导程序段的起始位置处开始执行引导装载。
所谓引导装载,就是将原先存储在FLASH中的用户代码移植到DSP内部的高速执行单元,然后将程序指针设置为用户代码的起始地址。
这样,接下来就可以利用DSP资源高速执行用户代码了。
对于MP3解码器而言,存储容量是非常关键的问题,一首4分钟的MP3约占4M字节,因此需要大容量存储器来存储这些数据。
由于本系统DSP采用ROM加载方式,在上电复位之后首先将CE1空间的程序代码搬到片内地址O处开始运行,因此FLASH主要分配到DSP的外部CE1空间。
为使DSP能够正确地从FLASH引导并加载程序,还需配置相应的引脚。
由于DSP提供了与FLASH的无缝接口,因此设计FLASH的接口电路就变得相对较简单。
其模块电路图如下图所示。
图4-2FLASH存储器模块电路图
4.3USB接口电路
为了实现从PC端高速地下载数据,我们采用Philips公司的PDIUSBDl2芯片做为桥接芯片,它完全符合USBl.1标准,同时内部集成320字节多结构FIFO存储器,主要通过RD读信号,WR写信号,/CS片选,AO地址标志位,ALE地址锁存,DO.D7数据线来实现与DSP的接口。
为了能和不同类型微处理器接口,PDIUSBDl2的AO和ALE可有两种不同设置方式:
当ALE=0,表示数据线和地址线分开,此时AO=0,传送数据;
A0=I,传送指令。
当AO=1,表示数据线和地址线复用,此时ALE的下降沿就用来锁存地址信息。
USB芯片和DSP的接口采用第一种方式,如图4-3所示,通过AO的设置来确定I/O总线上传输的是数据或者指令内容。
对USBDl2的操作也是通过模拟它的读写时序来完成的。
USB芯片与DSP及PC的连接如图4-3所示,其中DO.D7、A0、INTUSB连接到DSP的相应管脚。
图4-3USB接口电路图
4.4PCB图
图4-4PCB图
5系统仿真与调试
整个硬件平台经过原理图设计、PCB设计及硬件制版后,就要进行系统的调试。
调试的目的是保证平台各部分模块的正常运作,为MP3播放器功能的实现提供基础。
硬件的调试主要是把电路各种参数调整到符合设计要求。
先排除硬件故障,包括设计性错误和工艺性障碍。
一般原则是先静态后动态。
利用万用表或逻辑测试仪器,检查电路中的各器件以及引脚是否连接正确,是否有短路障碍。
若这些都没问题,则可上电调试。
在串口调试过程中,采用串口与闪存联合调试的方法,对串口接收到的数据直接存入闪存中。
对串口的调试主要是对寄存器的编程配置。
对寄存器的编程主要包括两部分:
初始化和数据收发。
初始化编程主要完成对其工作模式的设定及内部寄存器的设置;
对于数据的收发,一般采用中断方式,并且在每次收发数据时,都要通过握手信号来判断通信链路的当前状态,以确保通信的可靠性。
寄存器初始化完毕后,便可从PC机接收数据。
PC端的软件采用串口调试,可以发送或接收任意字节的数据。
调试开始时,首先对串口芯片进行初始化,然后再对闪存进行块擦除;
擦除成功后,PC端开始发送MP3数据,寄存器接收串行数据并转换成并行数据后,以中断的形式通知DSP,DSP以字节为单位从寄存器读取数据存在片内RAM中,存满一页(512字节)便启动闪存卡编程操作,将数据写入闪存中。
最后检验写入闪存中的数据,如不成功将重新执行以上操作。
在对这一模块调试成功后,可以实现PC机与硬件平台间的数据交换。