搜档网
当前位置:搜档网 › 基于MATLAB平台的DSP嵌入式应用程序设计的研究

基于MATLAB平台的DSP嵌入式应用程序设计的研究

基于MATLAB平台的DSP嵌入式应用程序设计的研究

测071 邢广金07235

[摘要]随着DSP的广泛应用及DSP产品复杂度的提高,传统的DSP嵌入式应用系统设计方案面临许多困难。文章介绍了新的设计方案,以TI的DSP为例,研究了基于MA TLAB R2009B 版本的DSP嵌入式应用程序综合开发平台、设计流程以及相关技术。研究表明,新的设计方案具有难度更小、开发周期更短、开发成本低、可移植性好等优点,且便于多人协作完成任务,完全能够满足当前DSP系统的性能要求,是解决传统设计方案困境的重要途径。

高效、低风险地进行产品设计及科学研究是每个科技工作者的愿望。近年来, DSP的性能飞速提高,应用范围不断扩大。同时,激烈的市场竞争要求更低的产品开发成本;急剧变化的产品需求,多样、复杂的新产品结构及功能,使产品研发难度激增。相应地,硬件平台的更新换代较以往更快,产品的生命周期越来越短,对嵌入式DSP软件可移植性提出了更高的要求。总之,巨大的市场风险要求产品的方案设计、系统实现以及测试等工作并行运作,给传统的DSP 系统设计方案带来严重挑战[1]。

在MA TLAB软件平台上开发嵌入式DSP应用程序可以解决传统设计方案面临的困难。MathWorks公司推出的MATLAB软件,主要包含MA TLAB和Simu-link两大部分,其中有多个工具箱(Toolbox)和模块集(Blocksets)广泛应用于技术计算、控制系统设计、信号处理和通信、图像处理、测试和测量等领域。从概念到实现,从理论科学研究到产品研发,MA TLAB的应用不仅极大地提高了工作效率,也给传统的工作方式带来了变革。结合MA TLAB软件中的嵌入式MA TLAB ( Embedded MA TLAB )、Simulink、RTW (RTW EmbeddedCoder)、Embedded IDE Link和TargetSupportPackage以及开发DSP应用程序的集成开发环境(如用于TI的Code Composer Studio集成开发环境)构建的DSP软件系统综合开发平台,采用基于模型的嵌入式应用软件设计理念,包括算法设计及仿真、代码及项目生成、代码验证以及在线调试等在内的系统研发任务可以一气呵成,极其便于DSP嵌入式软件开发[2][3]。

本文以TI的DSP为例,结合MATLAB R2009B版本以及CCS3·3版本,详细介绍基于MATLAB和Simulink产品嵌入式DSP应用程序开发的流程以及主要产品的功能特点。

1 相关产品及其功能

1·1Real-timeW orkshop(RTW ) /RTW EmbeddeCoder

RTW是Simulink的重要组成部分,是Simulink代码生成的基础。程序员开发算法的Simulink模型,或以嵌入式MATLAB语言开发的算法,应用RTW技术整个算法模型或单个子系统可以生成符合ASNI/IS标准的C代码,根据系统目标文件(System TargFile)选项指定的目标系统,生成的代码能够运行在相应的微处理器或实时操作系统上。RTW还能将生成独立的C代码编译成可执行的程序,用于算法的开发和测试。生成的代码还可用于许多实时的和非实时的应用程序中,包括加速仿真、快速原型以及硬件在环测试(hardware- in-the-loop testing)。用Simulink模块及内置的分析工具可调节或检测生成的代码,或者,在MA TLAB及Simulink环境之外运行代码并与之交互。

Real-Time Workshop Embedded Coder扩展了RTW代码生成的功能,扩展的这些功能对嵌入式软件开发尤为重要。使用RTW Embedded Coder附加产品,不仅可以使用RTW技术的各个方面,还可以生成清晰、高效的专业技术水平级代码。

1·2Embedded IDE Lin

Embedded IDE Link的功能是将MATLAB、Simu-link和DSP嵌入式软件的集成开发环境联接起来。通过Embedded IDE Link,可以生成、编译、测试以及优化将部署到用于原型研制或实际产品中的嵌入式代码。Embedded IDE Link自动完成调试、项目生成以及运行在嵌入式处理器或集成开发环境(IDE)提供的指令集模拟器上的目标代码验证等任务。此外,可以在MA TLAB和Simulink中创建测试工作台( tesbench),用于处理器在环测试方式(Processor-in-the-Loop testing)验证手写代码及生成的代码。

Simulink中有四个处理器支持库,分别对应于Embedded IDE Link支持的四个集成开发

环境: Altium的TASKING, AnologDevices的VisualDSP++, GreenHills的MULTIple,以及Texas Instruments的CodComposerStudio。在MA TLAB平台上可以开发以上四个制造商相关DSP 系列产品的应用程序。

Embedded IDE Link/For use with TI’s CCS专门针对TI的DSP系列产品,它与RTW及RTW Embedded Coder联用,能在Simulink中以图形化方式创建的算法模型顺利地转换为CCS中完整的项目(projects文件,并能进一步编译成在嵌入式处理器上可执行的实时独立程序。所生成项目不仅包含生成的应用程序的C代码,还有嵌入式软件架构需要的初始化、调度以及处理器实时执行的应用程序代码的管理。硬件平台改变时,只需要改变目标选择模块中处理器及开发板的相应参数,即可重新生成适合新硬件平台的嵌入式C代码,几乎不需手动改写代码,具有极强的可移植性。Embedded IDE Link主要功能有:

(1)用MA TLAB调试CCS环境中的项目

MATLAB与CCS集成开发环境的自动接口(Atomation Interface),仅与MATLAB单独使用(不用Simulink),即应用MATLAB语言编写脚本文件,自动调试和分析CCS中的项目,在MATLAB环境中察看运行时的数据并通过MATLAB改变目标板上运行程序的参数。Embedded IDE Link支持所有CCS支持的TI处理器,接口包含两种方式:调试模式(DebMode)和RTDX模式。

(2)与Simulink联合仿真

应用Embedded IDE Link和RTW Embedded Cder,可以将MATLAB和Simulink的算法运行在目标处理器或集成开发环境提供的指令集仿真器上、仿真模型作为测试工作台进行联合仿真。算法部署到目标平台, PIL仿真功能可以让开发者验证算法代码,而不必手工搭建一个嵌入式测试平台。

(3)用RTW进行项目生成和代码优化

项目生成(Project Generator)使用RTW以及RTW EmbeddedCoder将Simulink模型生成完整的CCS项目。这些产品生成应用程序的C源代码,并根据需要包含汇编代码以及链接描述文件。应用RTW Em-bedded Coder,可以在MA TLAB支持的C2000/C55x/C6000系列的DSP 上生成代码并进行PIL测试。RTW从MA TLAB和Simulink模型生成与目标无关的算法ANSIC代码,与RTW联用时, Embedded IDE Link为算法代码添加上实时的嵌入式框架代码,包括在目标处理器上实时运行的必备调度程序和中断处理机制。Embedded IDE Link还添加处理器专用的优化表,自动将ANSIC代码尽可能地替换为优化的内部对象,减少手工修改代码,提高代码执行效率。

对于MA TLAB及Simulink不能生成应用程序的项目及代码的处理器, RTW仍然支持,但必须手工完成外设软件集成及项目创建的工作。

1·3Target SupportPackage

Target Support Package用于将MathWorks产品生成的实时程序代码部署到嵌入式微处理器、微控制器以及DSP上。它使外围设备和实时操作系统与用Simulink模型、Stateflow 流程图以及嵌入式MATLAB语言子集结合起来,不必手写底层驱动程序和运行时代码。合成的可执行程序可以被部署到嵌入式硬件上,用于目标板上快速原型、实时性能分析以及现场生产。

Target Support Package/For Use with TI s C2000、C5000、C6000模块集分别支持TIC2000系列, C500系列以及C6000系列的DSP。MATLAB对TI的DS支持主要有以下几个方面: 一是开发板级的支持。如Avnet S3ADSP、DM6437、C5510 DSK和C6713 DSK,不仅支持DSP芯片及片上资源,还支持板上外设,能直接生成专用的驱动程序,将模型生成的代码直接运行在目标板上。

二是对DSP芯片级的支持。除了上面列出的特定硬件开发板,也支持使用C2000、C55xx

以及C600处理器的定制开发板(custom boards)。对定制开发板的支持需要使用Embedded IDE Link和Texas Instruments(Code Composer Studio adaptor。只要采用CC支持的DSP芯片, MATLAB均能支持。内核支持库(Core Support library)提供输入/输出、通信以及访问DSP外设或板上外设的模块,比如CPU Timer和Hardware Interrupt模块。但板上外设的驱动程序需要用户自己开发,集成到模型中,在编译时一同转化为项目的代码。

三是提供TI某些DSP专用的优化算法库,如C28x的优化模块C28x IQmath库等, IQMath 库可以通过Simulink的对话框修改这些模块的参数,生成高效优化的代码。

再者就是用于MA TLAB平台和CCS集成开发环境之间的联系,如C2000系列的RTDX 以及HostSCBlocks。对选定的处理器系列支持片上外设和板上的外设以及实时操作系统。

1·4Code Composer Studio (CCS) IDE

CCS IDE是用于TIDSP、微处理器和应用处理的集成开发环境,包含了一整套用于开发和调试嵌式应用程序的工具。CCS IDE包含适用于每个TI器系列的编译器、源代码编辑器、项目开发环境、调器、优化器、仿真器以及许多其它的功能。CCS提供的单用户界面能使用户完成应用程序开发流程每一步。CCS主要部分为:

(1) CCS代码生成工具;

(2) CCS集成开发环境;

(3) DSP/BIOS插件程序和API;

(4) RTDX插件、主机接口和API。

2实现思路

在MA TLAB平台上设计嵌入式DSP实时应用序的步骤,以算法模型开始,添加并配置目标选择块(TargetReferences block),设置仿真参数,编译型,在处理器上运行生成的代码。从算法设计到证、从概念到代码实现的整个环节,所有的重点落方案的验证及算法开发上,代码开发的工作变得相简单。

2·1设置代码生成的工作环境

首先必须配置好代码生成的软件环境。EmbedIDE Link要求特定版本的第三方工具和相关软件。函数checkEnvSetup为开发板或处理器检查并配Embedded IDE Link和TargetSupportPackage环境。如,要列出C6713DSP需要的第三方工具和相关软件在MATLAB 命令窗口中运行:

checkEnvSetup (‘ccs’,‘C6713’,‘list’)

回显信息如下(视工作需要,某些列出的必要具和软件在具体的任务中未必需要):

(1) CCS (Code ComposerStudio)

Required version: 3·3·80·11

Required by: Embedded IDE Link 4·0

Required for: Automation and Code Gen-

eration

(2) CGT (CodeGeneration Tools)

Required version: 6·1·4

Required by: Embedded IDE Link 4·0

Required for: Code generation

(3) DSP/BIOS (RealTimeOperating System)

Required version: 5·32·04

Required by: Embedded IDE Link 4·0

Required for: Code generation

配置系统需求的软件环境,将checkEnvSetup函数中的“list”选项,换成“setup”,重新运行。该选项列出开发板或处理器的系统要求并将其和当前软件环境进行对比,帮助配置软件环境以满足系统要求。

2·2设计算法并进行仿真

在Simulink平台下开发算法模型,通过仿真验证算法模型是否能实现设计目标。在这种开发方案中,该部分工作是所有工作的重点。

2·3添加目标选择模块(TargetPreferences Block

所创建模型需要添加目标选择模块以生成针对特定TI处理器的嵌入式实时代码。通过目标选择模块,选择TI的DSP型号,定义存储器分配表,分配代码段和数据段。每个模型有且只有一个目标选择模块。为模型添加目标选择模块之后,在参数配置选项中,会出现Embedded IDE Link选项,用以配置运行时选项、项目选项、代码生成选项以及诊断选项等。同时,在RTW 选项中,系统目标文件被设定为用于TCCS的ccslink_ ert·tlc。

2·4配置目标选择模块

通过目标选择模块设置开发板和处理器的参数,如开发板参数、存储器配置参数、段参数以及片上外设参数等:

(1)开发板(Board):设置处理器的类型、CPU时钟频率以及开发板等相关参数;

(2)存储器(Memory):设置器映像及配置参数;

(3)段(Section):用于分配不同的代码段,如编译程序、DSP/BIOS,以及自定义的段;

(4)外设(Peripherals):设置C280x和C281x处理器外设的运行参数。

具体配置参数根据不同的开发板及CPU型号而有所差别。设置的参数在代码生成及项目生成时被转换为相应的代码。

2·5设置Simulink的配置参数

Embedded IDE Link提供某些配置参数是模型仿真配置参数的一部分,根据具体任务需要进行必要的修改和调整。

2·6编译模型

Embedded IDE Link创建项目并编译该项目,装载可执行程序到目标处理器,然后运行。在CCS中打开源文件,或者通过生成的HTML格式报告,可以查看生成的代码。

2·7其他工作

根据需要进行必要的代码验证及代码优化等工作,确保生成代码能正确执行并给出预期结果,并进一步优化代码,提高代码执行效率。

3结论

研究表明,基于MATLAB软件平台的DSP嵌入式程序设计技术,充分利用MA TLAB科学计算软件的强大功能,以图形化、基于模型的组态式建模,结合软件仿真及软硬件相结合的仿真方式对算法的正确性进行验证,快速高效地生成直接运行在目标开发板上的嵌入式实时C代码独立程序,并可在MATLAB环境下通过DSP开发环境实时地调试目标板上运行的程序以及改变相关参数。这种开发方案的意义还在于代码生成的快捷高效,有利于软件系统的升级和针对硬件平台的移植,系统易于维护。采用这种设计方案,能够很好地解决目前产品研发中面临的很多困难。

参考文献

[1]苏奎峰,吕强,常天庆,等·TMS320X281X DSP原理及C程序开发[M]·北京:北京航空航天大学出版社,2008·

[2]卢小锦,曾岳南·基于Matlab/Simulink的TMS320F2812代码开发[ J]·单片机与嵌入式系统应用, 2009, 2:79-81·

[3]段国强,陈月云·MA TALB辅助DSP设计的研究与实现[J]·微计算机信息, 2007, 23, 7-2: 130-132·

相关主题