Matlab-Simulink的DSP代码生成.doc_第1页
Matlab-Simulink的DSP代码生成.doc_第2页
Matlab-Simulink的DSP代码生成.doc_第3页
Matlab-Simulink的DSP代码生成.doc_第4页
Matlab-Simulink的DSP代码生成.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

短线自考毕业论文短线自考毕业论文 题 目: 基于 Matlab/Simulink 的 DSP 代码生成 学生姓名: 龙文韬 学 号: 2201004 指导教师: 郭杰荣 专业班级: 电信 00101 班 完成时间: 2004 年 5 月 20 日 目 录 引引 言言 2 2 1 1 MATLAB/SIMULINKMATLAB/SIMULINK 介绍介绍 2 2 2 2 DSPDSP 芯片芯片介绍介绍 2 2 2.12.1 什么是什么是 DSPDSP 芯片芯片2 2 2.22.2 DSPDSP 芯片的开发芯片的开发 3 3 3 3 系统级开发设计系统级开发设计4 4 3.13.1 原理介绍原理介绍4 4 3.23.2 开发工开发工具具8 8 3.2.13.2.1 TMS320C6701TMS320C6701 EVMEVM 介绍介绍 8 8 3.2.23.2.2 MATLAB/SIMULINKMATLAB/SIMULINK 中的中的 C6701C6701 EVMEVM 8 8 4 4 应用举例应用举例9 9 4.14.1 应用步骤应用步骤9 9 4.24.2 实例说明实例说明9 9 结束语结束语 1313 参考文献参考文献 1313 基于 Matlab/Simulink 的 DSP 代码生成 1 基于 Matlab/ /Simulink 的 DSP 代码生成 电子信息科学与技术专业学生:龙文韬 指导教师:郭杰荣 摘要摘要: : 本文研究了基于 Matlab/Simulink 的 DSP 代码生成的方法。介绍了基于 Matlab/Simulink 的 DSP 系统级设计方法、Matlab 与 CCS 系统对于 DSP 的各自特点及相互 连接,论述了面向 TI DSP 芯片的系统设计。传统的 DSP 设计开发流程分为开发设计和产品 实现两个环节。这样的开发流程存在许多问题,基于 Matlab/Simulink 的系统级设计方法,完 成了从概念设计、软件仿真、硬件测试全过程。在软件算法仿真测试后直接生成面向数字信 号处理(DSP)芯片的代码,有利发现系统设计的错误。 关键词关键词: : Matlab Simulink 数字信号处理 C6701 评估板 代码编译系统 The Generation of DSP Code Built on Matlab/Simulink Electronic Information Science and Technology Long Wen-tao Advisor: Guo Jie-rong ABSTRACT: This paper discusses the Digital Signal Processor(DSP)code generation built on Matlab/Simulink system。The system design method with Matlab/Simulink , characteristic and contact of DSP about Matlab and CCS system are described。The system design is based on TI DSP chip。Traditional DSP design has two parts:developing design and product achievement。There has many problems in this process。The system design method built on Matlba/Simulink can accomplish the full course from concept design, software emulate to hardware achieve, the method is in favor of finding out mistakes in the system design by direct DSP chips code generation after software arithmetic emulate test。 KEYWORD:Matlab Simulink DSP C6701EVM CCS 基于 Matlab/Simulink 的 DSP 代码生成 2 引 言 近年来,伴随着高科技日新月异的发展,对数字信号处理(DSP)芯片的研发也潜移默化 地发生了深刻的变革。但现在研发公司或实验室的硬件多采用美国TI公司的系列芯片,开 发软件多采用CCS系统等,设计语言为汇编或C,不同层次的科研成员完成一项验证或设计 需使用多种语言和开发平台,这就增大了产品开发的风险,延长了产品的上市时间。基于 MATLAB/Simulink自带的DSP工具箱可以完成概念设计、软件仿真、硬件测试全过程, Matlab语言易学易用,不要求使用者具备高深的数学知识和编程技巧,现已成为大学教学 和科研中最常见的工具。如果能够将DSP开发过程在同一平台上完成将能方便的建立系统模 型、实现从系统设计到实现的完美过渡,对DSP的应用开发也能提供一条便利的途径。 1 Matlab/Simulink 介绍 Matlab 是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、 神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。Matlab 是一个高度 集中的系统,Matlab 提供的 Simulink 是一个用来对动态系统进行建模、仿真和分析的软 件包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域 里进行建模,它同样支持具有多种采样速率的系统。 整体上而言,Simulink 是一个系统级的设计和仿真工具,它可以为各种各样的系统建 立模型。使用 Simulink 很容易创建系统的模型,设置仿真参数,然后对模型进行仿真。 Simulink 和 Matlab 是高度集成的,用户可以借助 Matlab 强大的数据分析和可视化功能来 分析系统仿真结果。 目前 Matlab 的最新版本是 6.5,对应的 Simulink 版本是 5.0。 2 DSP 芯片介绍 2.1 什么是 DSP 芯片 DSP 芯片,也称数字信号处理器,是一种具有特殊结构的微处理器。DSP 芯片的内部 基于 Matlab/Simulink 的 DSP 代码生成 3 采用程序和数据分开的哈佛结构,具有专门的硬件乘法器,广泛采用流水线操作,提供特 殊的 DSP 指令,可以用来快速地实现各种数字信号处理算法。根据数字信号处理的要求, DSP 芯片一般具有如下的一些主要特点: (1) 在一个指令周期内可完成一次乘法和一次加法。 (2) 程序和数据空间分开,可以同时访问指令和数据。 (3) 片内具有快速 RAM,通常可通过独立的数据总线在两块中同时访问。 (4) 具有低开销或无开销循环及跳转的硬件支持。 (5) 快速的中断处理和硬件 I/O 支持。 (6) 具有在单周期内操作的多个硬件地址产生器。 (7) 可以并行执行多个操作。 (8) 支持流水线操作,使取指、译码和执行等操作可以重叠执行。 与通用微处理器相比,DSP 芯片的其他通用功能相对较弱些。 2.2 DSP 芯片的开发 目前,对于 DSP 工程师来说,除了必须了解和熟悉 DSP 本身的结构(包括软件指令系 统和硬件结构)和技术指标外,还必须熟悉和掌握其开发工具和环境。 TI DSP 的开发工具和环境主要包括以下三个部分: 代码生成工具(编译器、连接器、优化 C 编译器、转换工具等) 系统集成及调试环境与工具 实时操作系统 图 1 为 TI 的 TMS320 系列 DSP 软件开发流程图: 图 1 TI TMS320 系列 DSP 软件开发过程 基于 Matlab/Simulink 的 DSP 代码生成 4 3 系统级开发设计 3.1 原理介绍 系统级设计的核心是将算法设计和系统设计仿真在统一的开发环境中进行,从而有效 地将开发流程的两个部分结合在一起。 C Source Files C Compiler Assembler Source Assembler COFF Object Files Linker Executable COFF File TMS320 DSP C Source Files Archiver Macro Library Archiver Library of Object Files Hex Conversion Utility EPROM Programme r Absolute Lister Runtime Support Library Computer EVM With Debugger XDS Emulator With Debugger Simulator 图 1 TI TMS320 系列 DSP 软件开发过程 基于 Matlab/Simulink 的 DSP 代码生成 5 进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统机构、算法 进行描述,还能够对系统不同的层次,不同组件和不同数据类型进行建模;同时要有良好 的移植性能。Simulink 提供了这样一个很好的开发环境,他是基于图块的系统级仿真环境。 分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。 由美国 TI 与 Math 公司联合开发的面向 TI TMS320C6000 DSP 开发平台的嵌入式对象, 使 MATLAB Simulink 与 TI 高速 DSP 工具结合成为一体。这套软件使设计者能够利用 Matlab 平台在 C6701 或 C6711 评估板上,经概念设计到代码及自动高速模型生成,对所设 计的数字信号处理系统进行开发、验证。开发过程利用 Matlab 实时工作平台(Real-Time Workshop)以自动生成一个 C 语言的 CCS 工程。CCS 平台的所有特性,包括编辑工具、 编译链接、调试工具、代码压缩以及工程管理等等,都可以调用,帮助设计者随意地使用 MATLB、Simulink、Real-Time Workshop 以及硬件,利用 CCS 工程自动地编译、链接,将 生成的可执行文件下载到 C67XX 芯片。一般设计流程如图 2 所示。 Developers Kit for Ti DSP 是 MathWorks 公司和 Texas Instruments(TI)公司合 作开发的一个基于 Simulink 和 Real-Time Workshop 的开发工具箱,有了这个开发工具箱, 用户可以在 Simulink 的环境中搭建数字信号处理的算法,然后通过 Real-Time Workshop 生成面向 TMS320C6701 Evaluation Module(C6701EVM)或者 Texas Instruments Code Composer Studio Integrated Development Enviroment(CCS IDE)的 ANSI C 代码。 Developers Kit for Ti DSP 可以利用 TI 的编译工具将生成的代码编译成面向 C6701EVM 的机器码,并可将该机器码直接下载到 C6701EVM 上执行。为了支持面向 C6701EVM 的代码 生成,Developers Kit for Ti DSP 提供了一个基于 Real-Time Workshop 的目标 Target for C6701 EVM。使用这个目标,用户可以从 Simulink 模型生成 C6701EVM 的可执行文件或 添加 TI 对象模块完成 模型与目标板的通信 完成系统设计 测试并调整设计 使用 Simulink 或其他模 块库中的模块建立模型 设置仿真对象参数(包括 simulink 与 Real-Time ) 编译链接模型到目标板 图 2 基于 Simulink 与 C6000 的设计流程图 基于 Matlab/Simulink 的 DSP 代码生成 6 者生成一个针对 C6701EVM 的 CCS IDE 工程文件。用户可以在 CCS IDE 环境中修改该工程文 件,然后再编译下载。 TI(Texas Instruments)公司可向用户提供 C6701EVM,帮助用户开发针对 TMS320C6701 的数字信号处理程序。一方面,C6701EVM 上为 TMS320C6701 DSP 提供了输入 端口、输出端口、时钟电路、内存单元和电源;另一方面,MathWorks 公司和 TI 公司为 Windows 用户提供了集成的开发环境,方便用户开发、编译、下载和调试在 C6701EVM 上运 行的算法程序。 除了能够产生面向 C6701EVM 的代码,Developers Kit for Ti DSP 还提供了使用 CCS IDE 和 TI Real-Time Date Exchange(RTDX)的两个接口。 3.1.1 Developers Kit for TI DSP 三种接口 Developers Kit for TI DSP 向用户提供的三种接口,如图 3 所示: 3.1.1.1 Target for CCS IDE/C6701 EVM Target for CCS IDE/6701 EVM 可让用户从数字信号处理的 Simulink 模型自动生成面 MATLAB Product-Family SIMULINK Product-Family Developers Kit for Texas Instruments DSP Link for RTDX Link for CCS IDE Target for CCSIDE/C6701EVM/C6711DSK Real-time Data Program control Data CCS project/C code Code Composer Studio RTDX Any C5000/C6000 target CCS project file C6701EVM/C6711 DSK 图 3 集成开发工具的三种接口 基于 Matlab/Simulink 的 DSP 代码生成 7 向 C6701 EVM 的 CCS IDE 工程文件,并可进一步自动编译下载到 C6701 EVM 上执行。设计 人员可以快速地将数字信号的算法模型下载到实时硬件平台上执行,用以评估算法的性能, 或者转换成一个 CCS IDE 工程文件,实现从 Simulink 环境到 CCS IDE 环境的无缝连接。通 过 Target for CCS IDE/6701 EVM,用户可以方便地利用 MathWorks 公司提供的 DSP、通信 和数学算法库,将主要的精力放在设计而不是在 DSP 编程上,进行反复的迭代设计,直到 算法满足系统性能要求。Target for CCS IDE/6701 EVM 对用户的价值在于: 有助于实现 DSP 算法原型; 系统级的算法验证; 从 Simulink 模型到 CCS IDE 工程的无缝转换; 降低编写 DSP 代码的难度和工作量。 3.1.1.2 Link for CCS IDE Link for CCS IDE 接口实现了 CCS IDE 和 Matlab 之间的连接,允许用户在 Matlab 命 令窗口下载运行 CCS IDE 中的程序,与目标内存之间(非实时地)交换数据,检测处理器 的状态,停止或者启动程序在 DSP 中的运行。Link for CCS IDE 对用户的价值在于: 用户可以利用 MATLAB 强大的数据分析和可视话功能,节省设计和调试程序的时间; 可以编写用于调试数字信号处理程序的 m 语言批处理脚本,实现调试和分析的自动化; 支持 TI 的 C5000/6000 系列 DSP。 3.1.1.3 Link for RTDX Link for RTDX 接口提供了 MATLAB 和支持 RTDX 的 TI DSP 上运行的程序之间实时交换 数据的一种方式。通过 Developers kit for TI DSP 提供的 MATLAB ActiveX 对象 CCSDSP,可以建立 MATLAB 和 DSP 之间的通信通道,在 MATLAB 命令窗口和 DSP 处理程序之 间实时地发送和接收数据,而不必中断目标程序的运行。Link for RTDX 对用户的价值在 于: 可以实现对实时数据的自动的高级分析和可视化; 实现对复杂 DSP 程序的有效验证; 支持 TI 的 C5000/6000 系列 DSP。 基于 Matlab/Simulink 的 DSP 代码生成 8 3.2 开发工具 3.2.1 TMS320C6701 EVM 介绍 C6701 EVM 是 TI 公司推出的 TMS320C6701 DSP 芯片的评估板,它可用于有线/无线宽带 网络、语音识别、图象处理、雷达等对运算能力和存储量有较高要求的场合。它包含的硬 件有:(1)32 位浮点 DSP 芯片 TMS320C6701/167MHz,1GPS;(2)64K32bit SRAM,2M32bit SDRAM;(3)标准 JTAG 接口,与 XDS510/560 连接方便调试;(4)CPLD,实 现板上逻辑、时序控制;另外有 PCI 接口,电源模块,音频接口等。 3.2.2 Matlab/Simulink 中的 C6701 EVM 安装了 Developers Kit for TI DSP 模块之后,在 Simulink Library Brower 中会出现 一个支持 C6701 EVM 的模块库. 在搭建面向 C6701EVM 的工程文件的 Simulink 模型时,可选用该模块库中的模块。下面 分别介绍这几个模块: C6701C6701 EVMEVM ADCADC 模块模块 这个模块用于采样和量化,给 C6701 EVM 板提供外部信源,如信号发生器、频率发生 器和音频设备。将 C6701 EVM ADC 模块放在 Simulink 模块中可以让用户使用 C6701 EVM 上 的多媒体语音编码和解码模块(codec) ,用以将从 Line In 或者 Mic In 端口输入的模拟信 号转换为数字信号,供 C6701 EVM 上的 DSP TMS320C6701 处理。 C6701C6701 EVMEVM DACDAC 模块模块 将 C6701 EVM DAC 模块放在 Simulink 模块中后,C6701 EVM 上的 codec 模块会将接收 到的处理后的数字信号转换成模拟信号向 LINE OUT 端口输出。 C6701C6701 EVMEVM LEDLED 模块模块 Simulink 模型中的 C6701 EVM LED 模块可用于触发 C6701 EVM 的外部状态指示灯 (User Status LED1) 。 ResetReset C6701C6701 EVMEVM 模块模块 双击 Simulink 模块中的 Reset C6701 EVM 模块,可将正在运行从该模型自动生成的可 基于 Matlab/Simulink 的 DSP 代码生成 9 执行文件的 C6701 EVM 复位。只要用户双击这个模块,它就运行一个 MS-DOS 函数来复位 C6701 EVM 上的处理器。程序停止运行,DSP TMS320C6701 返回初始状态。 4 应用举例 4.1 应用步骤 Developers Kit for TI DSP 的中心点在于系统级开发 C6701 EVM/C6711 DSK 的数字 信号处理的应用系统,下面举例介绍其用法。 Developers Kit for TI DSP 开发 C6701 EVM 应用系统的步骤: (1) 安装 C6701 EVM 板,将 TI 提供的相关软件 CCS IDE 也安装在同一台 PC 机上。 (2) 运行 MATLAB,在命令栏键入:C6701EVMLIB,打开 C6701EVMLIB 的 Simulink 模块库。 该库包含四个模块 C6701 EVM ADC(模数转换模块)、C6701 EVM DAC(数模转换模块)、 C6701 EVM LED(指示用户状态的 LED)、Reset C6701 EVM(复位模块)。 (3) 建立 Simulink 仿真模型,如果需要,可以为 Simulink 仿真模型添加上述的 EVM I/O 设备。设置其属性,在属性对话框中单击 Real-Time Workshop 选项卡,Category 栏里 选中 Target configuration,修改 System target file 和 Template make file 文件名。 (4) 在 Real-Time Workshop 选项卡中选中 TI C6701 EVM runtime 其它位默认值,单击 Make Project 按钮,就可将 Simulink 模型自动生成 CCS IDE 的工程文件,并自动调入 CCS IDE 中,那么该工程文件就可以在 CCS IDE 中编译下载运行了。若现在生成工程文 件后,自动地编译下载到 C6701 EVM 上执行,要改 Build action 选项为 Build_and_execute。这时单击 BuildRun 按钮,可实现自动的编译下载并运行。 4.2 实例说明 下面以建立数字音频回放系统模型为例详细说明: (1)打开 Matlab,在命令行内输入 Simulink 回车进入 Simulink 界面。 (2)通过 File-New model 新建一个模型。 (3)用 Simulink 模块建立下图所示模型: 基于 Matlab/Simulink 的 DSP 代码生成 10 在 DSP 模块的信号运行库内查找 Integer Delay 模块。此时,不需要加入输入、输 出信号线。在以后的步骤中当加入 C6701 EVM 模块时,再给 SUM 模块加入输入输出。 (4)用一个恰当的名字保存模型。 (5)为模型加入 C6701 EVM 模块 在 Matlab 命令提示行内键入 c6701evmlib 调出 C6701 EVM 库模块。 (6)在 Simulink 库浏览器内双击 Developers Kit for TI DSP,打开 c6000lib 模块。 (7)点击 EVM 模块库为 C6701 EVM 找到可利用的模块。 (8)拖拽 C6701 EVM ADC 与 C6701 EVM DAC 模块到所建模型中。 (9)在下图所示模型中连接好新的信号线 图 4 Simulink 下建立的简单系统模型 图 5 c6701evmlib 基于 Matlab/Simulink 的 DSP 代码生成 11 配制与设定 Developers Kit 模块 (1)点击选中 C6701 EVM ADC 模块。 (2)从 Simulink 编辑目录中选择“模块参数” (Block Parameters) 为选中模块设置以下参数: 清除”立体声”(Stereo)复选框 选择+20 dB mic gain boost 复选框 从下拉列表中设置”取样率”(Sample rate)为 8000 设置多媒体数字信号编解码器(codec)数据格式为 16-bit 将输出数据类型设置为”Double” 设置”Scaling”为规格化(Normalize) 设置源激励为 0.0 将采样设为 64 每帧 (3)将 C6701 EVM ADC 设置为”Mic In”,点击”OK”关闭 C6701 EVM 对话框 (4)设置 C6701 EVM DAC block 设置多媒体数字信号编解码器(codec)数据格式为 16-bit 设置”Scaling”为规格化(Normalize) 在 DAC 衰减一栏填入 0.0 图 6 可在 C6701 EVM 上执行的数字语音回放系统模型 延迟混和 整数延迟 数模转换 模数转换 反馈放大 基于 Matlab/Simulink 的 DSP 代码生成 12 设置溢出模式(Overflow mode)为饱和(Saturate) (5)点击”OK”退出对话框 接下来设置 Simulink 仿真参数(Simulation Parameters) (1) 打开仿真参数对话框,在 Solver 窗格内为模型和 Developers Kit 设置适 当的功能 设置开始时间为 0.0 结束时间为 inf(模型不停的运行) 在 Solver 选项下,从列表中选择固定的步幅和不连续的设置 设置固定步幅大小为自动、模式为信号作业 (2) 在仿真参数对话框中取消 Workspace I/O,Diagnostics(诊断)与高级窗 格。此模型可以采用默认的设置。 设置 Real-Time Workshop Target Build 选项 (1)点击 Real-Time Workshop 标签,为 Category 选择目标配制 (2)在配制下,点击 Browse(浏览)为 C6000 targets 选择系统目标文件 (3)在系统

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论