MatlabSimulink的DSP代码生成.docx

上传人:b****5 文档编号:7447354 上传时间:2023-01-24 格式:DOCX 页数:14 大小:139.46KB
下载 相关 举报
MatlabSimulink的DSP代码生成.docx_第1页
第1页 / 共14页
MatlabSimulink的DSP代码生成.docx_第2页
第2页 / 共14页
MatlabSimulink的DSP代码生成.docx_第3页
第3页 / 共14页
MatlabSimulink的DSP代码生成.docx_第4页
第4页 / 共14页
MatlabSimulink的DSP代码生成.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

MatlabSimulink的DSP代码生成.docx

《MatlabSimulink的DSP代码生成.docx》由会员分享,可在线阅读,更多相关《MatlabSimulink的DSP代码生成.docx(14页珍藏版)》请在冰豆网上搜索。

MatlabSimulink的DSP代码生成.docx

MatlabSimulink的DSP代码生成

 

 

短线自考毕业论文

 

题目:

基于Matlab/Simulink的

DSP代码生成

学生姓名:

龙文韬

学号:

2201004

指导教师:

郭杰荣

专业班级:

电信00101班

 

完成时间:

2004年5月20日

 

基于Matlab/Simulink的DSP代码生成

电子信息科学与技术专业学生:

龙文韬

指导教师:

郭杰荣

摘要:

本文研究了基于Matlab/Simulink的DSP代码生成的方法。

介绍了基于Matlab/Simulink的DSP系统级设计方法、Matlab与CCS系统对于DSP的各自特点及相互连接,论述了面向TIDSP芯片的系统设计。

传统的DSP设计开发流程分为开发设计和产品实现两个环节。

这样的开发流程存在许多问题,基于Matlab/Simulink的系统级设计方法,完成了从概念设计、软件仿真、硬件测试全过程。

在软件算法仿真测试后直接生成面向数字信号处理(DSP)芯片的代码,有利发现系统设计的错误。

关键词:

MatlabSimulink数字信号处理C6701评估板代码编译系统

TheGeneration

ofDSPCodeBuiltonMatlab/Simulink

ElectronicInformationScienceandTechnology

LongWen-tao

Advisor:

GuoJie-rong

ABSTRACT:

ThispaperdiscussestheDigitalSignalProcessor(DSP)codegenerationbuiltonMatlab/Simulinksystem。

ThesystemdesignmethodwithMatlab/Simulink,characteristicandcontactofDSPaboutMatlabandCCSsystemaredescribed。

ThesystemdesignisbasedonTIDSPchip。

TraditionalDSPdesignhastwoparts:

developingdesignandproductachievement。

Therehasmanyproblemsinthisprocess。

ThesystemdesignmethodbuiltonMatlba/Simulinkcanaccomplishthefullcoursefromconceptdesign,softwareemulatetohardwareachieve,themethodisinfavoroffindingoutmistakesinthesystemdesignbydirectDSPchip’scodegenerationaftersoftwarearithmeticemulatetest。

KEYWORD:

MatlabSimulinkDSPC6701EVMCCS

引言

近年来,伴随着高科技日新月异的发展,对数字信号处理(DSP)芯片的研发也潜移默化地发生了深刻的变革。

但现在研发公司或实验室的硬件多采用美国TI公司的系列芯片,开发软件多采用CCS系统等,设计语言为汇编或C,不同层次的科研成员完成一项验证或设计需使用多种语言和开发平台,这就增大了产品开发的风险,延长了产品的上市时间。

基于MATLAB/Simulink自带的DSP工具箱可以完成概念设计、软件仿真、硬件测试全过程,Matlab语言易学易用,不要求使用者具备高深的数学知识和编程技巧,现已成为大学教学和科研中最常见的工具。

如果能够将DSP开发过程在同一平台上完成将能方便的建立系统模型、实现从系统设计到实现的完美过渡,对DSP的应用开发也能提供一条便利的途径。

1Matlab/Simulink介绍

Matlab是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。

Matlab是一个高度集中的系统,Matlab提供的Simulink是一个用来对动态系统进行建模、仿真和分析的软件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进行建模,它同样支持具有多种采样速率的系统。

整体上而言,Simulink是一个系统级的设计和仿真工具,它可以为各种各样的系统建立模型。

使用Simulink很容易创建系统的模型,设置仿真参数,然后对模型进行仿真。

Simulink和Matlab是高度集成的,用户可以借助Matlab强大的数据分析和可视化功能来分析系统仿真结果。

目前Matlab的最新版本是6.5,对应的Simulink版本是5.0。

2DSP芯片介绍

2.1什么是DSP芯片

DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。

DSP芯片的内部采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特殊的

DSP指令,可以用来快速地实现各种数字信号处理算法。

根据数字信号处理的要求,DSP芯片一般具有如下的一些主要特点:

(1)在一个指令周期内可完成一次乘法和一次加法。

(2)程序和数据空间分开,可以同时访问指令和数据。

(3)片内具有快速RAM,通常可通过独立的数据总线在两块中同时访问。

(4)具有低开销或无开销循环及跳转的硬件支持。

(5)快速的中断处理和硬件I/O支持。

(6)具有在单周期内操作的多个硬件地址产生器。

(7)可以并行执行多个操作。

(8)支持流水线操作,使取指、译码和执行等操作可以重叠执行。

与通用微处理器相比,DSP芯片的其他通用功能相对较弱些。

2.2DSP芯片的开发

目前,对于DSP工程师来说,除了必须了解和熟悉DSP本身的结构(包括软件指令系统和硬件结构)和技术指标外,还必须熟悉和掌握其开发工具和环境。

TIDSP的开发工具和环境主要包括以下三个部分:

●代码生成工具(编译器、连接器、优化C编译器、转换工具等)

●系统集成及调试环境与工具

●实时操作系统

图1为TI的TMS320系列DSP软件开发流程图:

图1TITMS320系列DSP软件开发过程

3系统级开发设计

3.1原理介绍

系统级设计的核心是将算法设计和系统设计仿真在统一的开发环境中进行,从而有效地将开发流程的两个部分结合在一起。

进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统机构、算法进行描述,还能够对系统不同的层次,不同组件和不同数据类型进行建模;同时要有良好的移植性能。

Simulink提供了这样一个很好的开发环境,他是基于图块的系统级仿真环境。

分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。

由美国TI与Math公司联合开发的面向TITMS320C6000DSP开发平台的嵌入式对象,使MATLAB\Simulink与TI高速DSP工具结合成为一体。

这套软件使设计者能够利用Matlab平台在C6701或C6711评估板上,经概念设计到代码及自动高速模型生成,对所设计的数字信号处理系统进行开发、验证。

开发过程利用Matlab实时工作平台(Real-TimeWorkshop)以自动生成一个C语言的CCS工程。

CCS平台的所有特性,包括编辑工具、编译链接、调试工具、代码压缩以及工程管理等等,都可以调用,帮助设计者随意地使用MATLB、Simulink、Real-TimeWorkshop以及硬件,利用CCS工程自动地编译、链接,将生成的可执行文件下载到C67XX芯片。

一般设计流程如图2所示。

 

Developer’sKitforTiDSP是MathWorks公司和TexasInstruments(TI)公司合作开发的一个基于Simulink和Real-TimeWorkshop的开发工具箱,有了这个开发工具箱,用户可以在Simulink的环境中搭建数字信号处理的算法,然后通过Real-TimeWorkshop生成面向TMS320C6701EvaluationModule(C6701EVM)或者TexasInstrumentsCodeComposerStudioIntegratedDevelopmentEnviroment(CCSIDE)的ANSIC代码。

Developer’sKitforTiDSP可以利用TI的编译工具将生成的代码编译成面向C6701EVM的机器码,并可将该机器码直接下载到C6701EVM上执行。

为了支持面向C6701EVM的代码生成,Developer’sKitforTiDSP提供了一个基于Real-TimeWorkshop的目标TargetforC6701EVM。

使用这个目标,用户可以从Simulink模型生成C6701EVM的可执行文件或者生成一个针对

C6701EVM的CCSIDE工程文件。

用户可以在CCSIDE环境中修改该工程文件,然后再编译下载。

TI(TexasInstruments)公司可向用户提供C6701EVM,帮助用户开发针对TMS320C6701的数字信号处理程序。

一方面,C6701EVM上为TMS320C6701DSP提供了输入端口、输出端口、时钟电路、内存单元和电源;另一方面,MathWorks公司和TI公司为Windows用户提供了集成的开发环境,方便用户开发、编译、下载和调试在C6701EVM上运行的算法程序。

除了能够产生面向C6701EVM的代码,Developer’sKitforTiDSP还提供了使用CCSIDE和TIReal-TimeDateExchange(RTDX)的两个接口。

3.1.1Developer’sKitforTIDSP三种接口

Developer’sKitforTIDSP向用户提供的三种接口,如图3所示:

 

图3集成开发工具的三种接口

3.1.1.1TargetforCCSIDE/C6701EVM

TargetforCCSIDE/6701EVM可让用户从数字信号处理的Simulink模型自动生成面向

C6701EVM的CCSIDE工程文件,并可进一步自动编译下载到C6701EVM上执行。

设计人员可以快速地将数字信号的算法模型下载到实时硬件平台上执行,用以评估算法的性能,或者转换成一个CCSIDE工程文件,实现从Simulink环境到CCSIDE环境的无缝连接。

通过TargetforCCSIDE/6701EVM,用户可以方便地利用MathWorks公司提供的DSP、通信和数学算法库,将主要的精力放在设计而不是在DSP编程上,进行反复的迭代设计,直到算法满足系统性能要求。

TargetforCCSIDE/6701EVM对用户的价值在于:

●有助于实现DSP算法原型;

●系统级的算法验证;

●从Simulink模型到CCSIDE工程的无缝转换;

●降低编写DSP代码的难度和工作量。

3.1.1.2LinkforCCSIDE

LinkforCCSIDE接口实现了CCSIDE和Matlab之间的连接,允许用户在Matlab命令窗口下载运行CCSIDE中的程序,与目标内存之间(非实时地)交换数据,检测处理器的状态,停止或者启动程序在DSP中的运行。

LinkforCCSIDE对用户的价值在于:

●用户可以利用MATLAB强大的数据分析和可视话功能,节省设计和调试程序的时间;

●可以编写用于调试数字信号处理程序的m语言批处理脚本,实现调试和分析的自动化;

●支持TI的C5000/6000系列DSP。

3.1.1.3LinkforRTDX

LinkforRTDX接口提供了MATLAB和支持RTDX的TIDSP上运行的程序之间实时交换数据的一种方式。

通过Developer’skitforTIDSP提供的MATLABActiveX对象CCSDSP,可以建立MATLAB和DSP之间的通信通道,在MATLAB命令窗口和DSP处理程序之间实时地发送和接收数据,而不必中断目标程序的运行。

LinkforRTDX对用户的价值在于:

●可以实现对实时数据的自动的高级分析和可视化;

●实现对复杂DSP程序的有效验证;

●支持TI的C5000/6000系列DSP。

3.2开发工具

3.2.1TMS320C6701EVM介绍

C6701EVM是TI公司推出的TMS320C6701DSP芯片的评估板,它可用于有线/无线宽带网络、语音识别、图象处理、雷达等对运算能力和存储量有较高要求的场合。

它包含的硬件有:

(1)32位浮点DSP芯片TMS320C6701/167MHz,1GPS;

(2)64K×32bitSRAM,2M×32bitSDRAM;(3)标准JTAG接口,与XDS510/560连接方便调试;(4)CPLD,实现板上逻辑、时序控制;另外有PCI接口,电源模块,音频接口等。

3.2.2Matlab/Simulink中的C6701EVM

安装了Developer’sKitforTIDSP模块之后,在SimulinkLibraryBrower中会出现一个支持C6701EVM的模块库.

在搭建面向C6701EVM的工程文件的Simulink模型时,可选用该模块库中的模块。

下面分别介绍这几个模块:

C6701EVMADC模块

这个模块用于采样和量化,给C6701EVM板提供外部信源,如信号发生器、频率发生器和音频设备。

将C6701EVMADC模块放在Simulink模块中可以让用户使用C6701EVM上的多媒体语音编码和解码模块(codec),用以将从LineIn或者MicIn端口输入的模拟信号转换为数字信号,供C6701EVM上的DSPTMS320C6701处理。

C6701EVMDAC模块

将C6701EVMDAC模块放在Simulink模块中后,C6701EVM上的codec模块会将接收到的处理后的数字信号转换成模拟信号向LINEOUT端口输出。

C6701EVMLED模块

Simulink模型中的C6701EVMLED模块可用于触发C6701EVM的外部状态指示灯(UserStatusLED1)。

ResetC6701EVM模块

双击Simulink模块中的ResetC6701EVM模块,可将正在运行从该模型自动生成的可执行文件的

C6701EVM复位。

只要用户双击这个模块,它就运行一个MS-DOS函数来复位C6701EVM上的处理器。

程序停止运行,DSPTMS320C6701返回初始状态。

4应用举例

4.1应用步骤

Developer'sKitforTIDSP的中心点在于系统级开发C6701EVM/C6711DSK的数字信号处理的应用系统,下面举例介绍其用法。

Developer'sKitforTIDSP开发C6701EVM应用系统的步骤:

(1)安装C6701EVM板,将TI提供的相关软件CCSIDE也安装在同一台PC机上。

(2)运行MATLAB,在命令栏键入:

C6701EVMLIB,打开C6701EVMLIB的Simulink模块库。

该库包含四个模块C6701EVMADC(模数转换模块)、C6701EVMDAC(数模转换模块)、C6701EVMLED(指示用户状态的LED)、ResetC6701EVM(复位模块)。

(3)建立Simulink仿真模型,如果需要,可以为Simulink仿真模型添加上述的EVMI/O设备。

设置其属性,在属性对话框中单击Real-TimeWorkshop选项卡,Category栏里选中Targetconfiguration,修改Systemtargetfile和Templatemakefile文件名。

(4)在Real-TimeWorkshop选项卡中选中TIC6701EVMruntime其它位默认值,单击MakeProject按钮,就可将Simulink模型自动生成CCSIDE的工程文件,并自动调入CCSIDE中,那么该工程文件就可以在CCSIDE中编译下载运行了。

若现在生成工程文件后,自动地编译下载到C6701EVM上执行,要改Buildaction选项为Build_and_execute。

这时单击Build&Run按钮,可实现自动的编译下载并运行。

4.2实例说明

下面以建立数字音频回放系统模型为例详细说明:

(1)打开Matlab,在命令行内输入Simulink回车进入Simulink界面。

(2)通过File->Newmodel新建一个模型。

(3)用Simulink模块建立下图所示模型:

图4Simulink下建立的简单系统模型

在DSP模块的信号运行库内查找IntegerDelay模块。

此时,不需要加入输入、输出信号线。

在以后的步骤中当加入C6701EVM模块时,再给SUM模块加入输入输出。

(4)用一个恰当的名字保存模型。

(5)为模型加入C6701EVM模块

在Matlab命令提示行内键入c6701evmlib调出C6701EVM库模块。

图5c6701evmlib

(6)在Simulink库浏览器内双击Developer’sKitforTIDSP,打开c6000lib模块。

(7)点击EVM模块库为C6701EVM找到可利用的模块。

(8)拖拽C6701EVMADC与C6701EVMDAC模块到所建模型中。

(9)在下图所示模型中连接好新的信号线

 

配制与设定Developer’sKit模块

(1)点击选中C6701EVMADC模块。

(2)从Simulink编辑目录中选择“模块参数”(BlockParameters)

为选中模块设置以下参数:

●清除”立体声”(Stereo)复选框

●选择+20dBmicgainboost复选框

●从下拉列表中设置”取样率”(Samplerate)为8000

●设置多媒体数字信号编解码器(codec)数据格式为16-bit

●将输出数据类型设置为”Double”

●设置”Scaling”为规格化(Normalize)

●设置源激励为0.0

●将采样设为64每帧

(3)将C6701EVMADC设置为”MicIn”,点击”OK”关闭C6701EVM对话框

(4)设置C6701EVMDACblock

●设置多媒体数字信号编解码器(codec)数据格式为16-bit

●设置”Scaling”为规格化(Normalize)

●在DAC衰减一栏填入0.0

●设置溢出模式(Overflowmode)为饱和(Saturate)

(5)点击”OK”退出对话框

接下来设置Simulink仿真参数(SimulationParameters)

(1)打开仿真参数对话框,在Solver窗格内为模型和Developer’sKit设置适当的功能

●设置开始时间为0.0结束时间为inf(模型不停的运行)

●在Solver选项下,从列表中选择固定的步幅和不连续的设置

●设置固定步幅大小为自动、模式为信号作业

(2)在仿真参数对话框中取消WorkspaceI/O,Diagnostics(诊断)与高级窗格。

此模型可以采用默认的设置。

设置Real-TimeWorkshopTargetBuild选项

(1)点击Real-TimeWorkshop标签,为Category选择目标配制

(2)在配制下,点击Browse(浏览)为C6000targets选择系统目标文件

(3)在系统目标文件浏览下,选择系统目标文件ti_c6000.tlc,点击OK关闭浏览窗口

(4)从代码发生目标类型列表中,选择C6701_EVM

(5)在Category中,选择TIC6000编译器

(6)在对话框中设置以下选项

●字节命令(Byteorder)应为Littleendian

●设置编译器冗长为Quiet

(7)为TIC6000连接器改变种类

●选择Retain.obj文件

●为连接器命令文件选择整个内存图(map)

(8)改变TIC6000类的运行时间

●CPUclock:

133MHz

●Overrunaction:

Halt

●Buildaction:

Build_and_execute

在C6701EVM上建立执行该系统模型

(1)点击Build为C6701EVM产生与建立可执行目标文件

(2)通过点击C6701EVMReset模块或用CCS内的Halt功能可以结束执行,也可以在Matlab命令行内键入halt。

最后,测试该数字音频回放系统模型。

在C6701EVM的MicIn插孔上插入麦克风,LineOut插孔上扬声器和示波器,测试时,对麦克风讲话,可以从扬声器中听到声音和从示波器中看到波形,证明回放系统工作正常。

结束语

本文系统而简略的介绍了用MATLAB/SIMULINK进行DSP代码生成,介绍了Developer’sKitforTIDSP工具箱,结合实例介绍了MATLAB/SIMULINK建模、DSP代码生成的过程,并对数字语音回放系统模型进行了有层次的仿真,这对DSP代码生成步骤作了十分详细的介绍。

利用MATLAB/SIMULINK生成DSP代码,模型直观,不用编程,易于使用,为以后验证设计思想、并进行高效成功的设计打下良好的基础。

答谢:

在撰写此论文的过程中,导师郭杰荣老师给予我很大的帮助,对我的论文提出了很多宝贵的意见与建议,在此表示由衷的感谢。

参考文献

[1]陈永春.从Matlab/Simulink模型到代码实现.北京:

清华大学出版社.2002(10)

[2]范影乐、杨胜天、李轶.Matlab仿真应用详解.北京:

人民邮电出版社.2001(7)

[3]Developer'sKitforTexasInstrumentsDSPUser'sGuide.MathWorksInc.February2001

[4]TMS320C6701EvaluationModuleUser'sGuide.TexasInstrumentsInc.,August2002

友情提示:

范文可能无法思考和涵盖全面,供参考!

最好找专业人士起草或审核后使用,感谢您的下载!

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 农学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1