- 1、本文档共5页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
摘要:FD216是智原科技公司出品的一款结构与ADI公司的ADSP-2181相类似且指令集相兼容的高性价比16位定点DSP芯片。利用智能科技公司 提供的开发工具包,可以方便地将C算法移植到FD216中。详细介绍了在FD216评估板上用嵌入式C语言和汇编语言混合编程的方法设计并实现基于定点 DSP的MP3实时解码器的整个流程。
??? 关键词:DSP MP3解码器 嵌入式C语言 汇编语言
??? 1 FD216 16位定点DSP特点简介
??? DSP(数字信号处理器)是一种特别适合于进行数字信号处理的微处理器,主要用于实时快速地实现各种数字信号处理算法。FD216是一个高效能而且易于使 用的16位定点DSP,包含DSP内核、芯片内建数据存储器、程序内存、两个串行接口、一个定时器、12组可编程I/O、内部直接内存存取(IDMA)接 口、外部内存接口和串行式在线仿真器(SICE)接口等,兼容ADSP-218X系列汇编代码,最高运行速度可达到190MIPS。FD216的CM (Code Memory)、PM(Program Memory)和DM(Data Memory)是严格区分的,在程序设计时要将放在PM区和DM区的数据分别说明。在移植ADSP2181汇编代码时,也要做相应修改。
2 MP3及其解码原理
??? MPEG-1 Audio Layer 3(MP3)是一个在低比特率下提供高保真音频的压缩标准。特别是在解码部分,它已经成功地应用于多种消费类电子产品中。
??? MP3解码原理:首选将MP3数据帧解包,解出帧头信息和边带信息;然后采用霍夫曼解码解出比特分配信息;接着在逆变换中利用频谱系数,在综合滤波器中将 32位子带合并成一个宽带信号。18个频谱值执行32位IMDCT(逆改进型离散余弦变换),将生成的576个频谱值变换成长度为32的18个连续的频 谱。通过18次运算,多相位综合滤波器将这些频谱转换到时域,完成波形重构,生成立体声PCM音频数据。MP3解码流程图如图1所示。
3 开发环境
??? 目标系统为智原科技公司提供的FD216 DSP评估板,系统环境为WIN2K,软件环境为FD2XX工具包(DSP C compiler,assembler,linker,debugger)。
??? 图2为FD216开发系统结构框图。
??? 4 MP3解码器系统设计
??? 4.1 设计要求
??? 设计要求包括以下内容:
??? (1) 功能要求:以智原科技公司提供的FD216 DSP评估板作为目标系统,进行MP3解码器设计,标系统能实时解码采样频率为32kHz/44.1kHz/48kHz、数据码率从32到320kbps的MP3比特流。
??? (2) 解码精度要求:定点MP3解码精度应符合ISO/IEC 11172-4所规定的限制精度。
??? 4. 2 硬件设计
??? 硬件设计包括以下内容:
??? (1) 在FD216评估板上进行正确的硬件配置。
??? (2) 串口0配置。FD216评估板所采用的Audio Codec是Philips公司的UDA1345TS,它与FD216的串口0相连,输出16位或8位PCM线性数据。
(3) 串行ICE(SICE)仿真调试接口。?
??? 4. 3 软件设计
??? 软件设计包括以下内容:
??? (1) C运行时间库。C语言运行时间库(C Run Time Library)是整个C开发工具的核心之一,提供了大量的可以直接调用的库函数。
??? (2) 设置内存映射寄存器访问方式。
??? 5 MP3解码器程序设计
??? MP3解码器程序设计包括以下内容:
??? (1) 定点算法设计。尽管定点DSP也支持浮点运算,但浮点运算会消耗大量的指令周期和内存,也会降低系统运行速度,不能应用于MP3实时解码。在程序设计中, 首先要将MP3浮点C解码算法转换为定点C解码算法。浮点算法转换成定点算法实现过程比较复杂,本文不再多述。
(2) 在程序的头部建立正确的运行头(RunTImeHeader)文件。
??? (3) 内存分页/重叠。与ADSP-218X类似,FD216也是通过设置重叠存储器选择寄存器(PMOVLAY/DMOVLAY)来实现PM(CM)/DM存储器分页/重叠的。?
??? FD216的内存结构图如图3所示。
??? FD216系统说明文件FD216.SYS说明了FD216 DSP的内存分配方式,是支持DSP程序正确运行的系统文件。
数据、代码分布/重叠应首先在HOST(PC)上对数据、代码分别进行内存分页,接着使用FD2XX开发工具包进行编译、汇编、链接,生成目标代码,然后下载到目标板上运行。
??? (4)中断服务子程序。FD216中断控制器允许处理器响应十二个中断之一。
文档评论(0)