网站首页 | 技术文章 | 解决方案 | 电子书籍 | 下载中心 | 电子商城 | 技术论坛 | 电子博客 | 商务信息  
联系站长
加入收藏
会员登陆
交易首页 最新信息 - 推荐信息 - 热门信息 - 免费发布 - 行业新闻 - 行业资讯 - 行业知识 - 积分说明 - 信息分类 - 企业展示 - 帮助
 您的位置: 中国电子设计 >> 技术文章 >> 微控制器 >> 正文 商务信息栏目开通公告  [2008-05-19 11:47:00]
   □  MP3在FD216定点DSP上实现实时解码开发流程   
MP3在FD216定点DSP上实现实时解码开发流程
[作者:梅军    转贴自:电子技术应用    点击数:    更新时间:2008-5-13
【字体:
摘要: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)仿真调试接口。

图2

    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存储器分页/重叠的。

图3

    FD216的内存结构图如图3所示。

FD216系统说明文件FD216.SYS说明了FD216 DSP的内存分配方式,是支持DSP程序正确运行的系统文件。

数据、代码分布/重叠应首先在HOST(PC)上对数据、代码分别进行内存分页,接着使用FD2XX开发工具包进行编译、汇编、链接,生成目标代码,然后下载到目标板上运行。

(4)中断服务子程序。FD216中断控制器允许处理器响应十二个中断之一。在MP3解码应用中使用了如下三个中断服务子程序:

①eset中断服务子程序:程序运行时,首先进入reset中断服务子程序,即从start程序开始运行,其优先级量高。

Jump start; rti;rti;rti; /*Reset */

②ir2_get_data外部中断服务子程序:通过IDMA接口经过PCI总线从HOST(PC)硬盘读取数据的控制程序。

③intsp0中断服务子程序:向串口0发送数据的子程序。为了实现MP3文件在系统中的实时播放,设计了双Buffer通过串口0向Audio Codec传送解码后的声音样本数据。Intsp0中断服务子程序流程图如图4所示。

(5)代码移植:将MP3解码算法C程序序植为可在FD216 DSP系统中运行的嵌入式C程序。在此需要注意以下几点:

①由于DSP系统中没有文件I/O函数,应将C程序中的文件I/O函数方式改成嵌入式系统中的内存直接读、写方式。

②应注意数据类型的处理:将C程序中的int类型改成short或long类型,将unsigned int类型改成unsigned short或unsigned long类型,并且为了提高程序运行效率,应注意尽量少用(unsigned)long型,算法验证无误后再移植到DSP中。

③在保证程序正确性、稳定性的前提下,应通过修改C算法和数据结构,尽量缩减C程序中表数据的尺寸,使表在DSP内存中占据的空间尽量小。



6 MP3解码器实验结论

6.1 算法复杂度(COmplexity)评测

通过仿真调试工具debugger对MP3解码器在一定条件下进行性能评估(Profile),并计算出系统所需要的MIPS(Million Instruction Per Second)。

MP3解码算法复杂度为60.01MIPS,只占了系统最大运行能力(190MIPS)的31.58%。

6.2 实验结果

实验结论:系统功能、解码速度、精度均符合设计要求,并且实现了实时解码、回放。

本文简要介绍了MP3解码原理,并详细说明了MP3在FD216定点DSP上实现实时解码的设计、开发流程。在此基础上亦可开发、实现其它格式的压缩编码数字音频解码器,如Dolby AC-3[5]、MPEG-1 Advanced Audio Coding(AAC)、Microsoft (r ) Windows Media(tm) tudio(WMA)等。利用DSP可编程特性。可以开发出多格式音频解码器,而不需要增加其它硬件。


  • 上一篇文章:嵌入式通用汉字文本语音播放系统
  • 下一篇文章:半自主远程控制移动机器人系统的软硬件设计方案
  • Google
     
    Web www.cediy.com
    发表评论 □告诉好友 □打印此文 □关闭窗口
     最新热点文章
     基于单片机和串行总线技术的热量表...
     数字温度传感器详解
     用AD8302实现RF/IF幅度和相位测量系...
     一种简单的10MHz频率源兼分配放大器...
     维氏电桥振荡器
     检验液晶显示器的简易测试仪
     
     最新推荐文章
     基于TMS320C6713与PC机的PCI总线高...
     基于TMS320VC5409和Cygnal单片机构...
     基于ARM控制器S3C44B0x的给煤机控制...
     基于USB 2.0的高速数据采集卡在虚拟...
     大功率谐振过渡软开关技术变频器研...
     大功率谐振过渡软开关技术变频器研...
     
     相 关 文 章
      ◇  网友评论:(只显示最新5条。评论内容只代表网友观点,与本站立场无关!)
     设为首页  加入收藏  关于本站  版权申明   联系站长   宣传赚点   友情链接
    如果我在线,不用加为好友,立刻与我交谈。 业务咨询QQ:342488946
    Copyright© 2004-2010 CEDIY.COM .All Rights Reserved
    粤ICP备05119258号