基于Matlab/Simulink的DSP代码生成
C Source Files C Source Files C Compiler Archiver Assembler Source Macro Library Assembler COFF Object Runtime Support Library Computer Archiver Library of Object Files Linker EVM With Debugger XDS Emulator With Debugger Simulator Hex Conversion Utility EPROM ProgrammAbsolute Lister Executable COFF File TMS320 DSP 图1 TI TMS320 系列DSP软件开发过程
3 系统级开发设计
3.1 原理介绍
系统级设计的核心是将算法设计和系统设计仿真在统一的开发环境中进行,从而有效地将开发流程的两个部分结合在一起。
4
基于Matlab/Simulink的DSP代码生成
进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统机构、算法进行描述,还能够对系统不同的层次,不同组件和不同数据类型进行建模;同时要有良好的移植性能。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所示。
Developer’s 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 代码。Developer’s Kit for Ti DSP可以利用TI的编译工具将生成的代码编译成面向C6701EVM的机器码,并可将该机器码直接下载到C6701EVM上执行。为了支持面向C6701EVM的代码生成,Developer’s Kit for Ti DSP提供了一个基于Real-Time Workshop的目标Target for C6701 EVM。使用这个目标,用户可以从Simulink模型生成C6701EVM的可执行文件或者生成一个针对C6701EVM的CCS IDE工程文件。用户可以在CCS IDE环境中修改该工程文件,
5
测试并调整设计 编译链接模型到目标板 使用Simulink或其他模块库中的模块建立模型 添加TI 对象模块完成模型与目标板的通信 完成系统设计 设置仿真对象参数(包括simulink与Real-Time ) 图2 基于Simulink与C6000的设计流程图
基于Matlab/Simulink的DSP代码生成
然后再编译下载。
TI(Texas Instruments)公司可向用户提供C6701EVM,帮助用户开发针对TMS320C6701的数字信号处理程序。一方面,C6701EVM上为TMS320C6701 DSP提供了输入端口、输出端口、时钟电路、内存单元和电源;另一方面,MathWorks公司和TI公司为Windows用户提供了集成的开发环境,方便用户开发、编译、下载和调试在C6701EVM上运行的算法程序。
除了能够产生面向C6701EVM的代码,Developer’s Kit for Ti DSP还提供了使用CCS IDE和TI Real-Time Date Exchange(RTDX)的两个接口。 3.1.1 Developer’s Kit for TI DSP 三种接口
Developer’s Kit for TI DSP向用户提供的三种接口,如图3所示:
3.1.1.1 Target for CCS IDE/C6701 EVM
Target for CCS IDE/6701 EVM可让用户从数字信号处理的Simulink模型自动生成面向C6701 EVM的CCS IDE工程文件,并可进一步自动编译下载到C6701 EVM上执行。设计人员可以快速地将数字信号的算法模型下载到实时硬件平台上执行,用以评估算法的性能,或
6
MATLAB Product-Family SIMULINK Product-Family Developer’s Kit for Texas Instruments DSP Link for RTDX Link for CCS IDE Target for CCSIDE/C6701EVM/C6711DSK Real-time Program control Data Data CCS project/C code Code Composer Studio RTDX
Any C5000/C6000 target CCS project file C6701EVM/C6711DSK 图3 集成开发工具的三种接口
基于Matlab/Simulink的DSP代码生成
者转换成一个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上运行的程序之间实时交换数据的一种方式。通过Developer’s kit for TI DSP 提供的MATLAB ActiveX对象CCSDSP,可以建立MATLAB和DSP之间的通信通道,在MATLAB命令窗口和DSP处理程序之间实时地发送和接收数据,而不必中断目标程序的运行。Link for RTDX对用户的价值在于:
? 可以实现对实时数据的自动的高级分析和可视化; ? 实现对复杂DSP程序的有效验证; ? 支持TI的C5000/6000系列DSP。
7
基于Matlab/Simulink的DSP代码生成
3.2 开发工具
3.2.1 TMS320C6701 EVM介绍
C6701 EVM是TI公司推出的TMS320C6701 DSP芯片的评估板,它可用于有线/无线宽带
网络、语音识别、图象处理、雷达等对运算能力和存储量有较高要求的场合。它包含的硬件有:(1)32位浮点DSP芯片TMS320C6701/167MHz,1GPS;(2)64K×32bit SRAM,2M×32bit SDRAM;(3)标准JTAG接口,与XDS510/560连接方便调试;(4)CPLD,实现板上逻辑、时序控制;另外有PCI接口,电源模块,音频接口等。
3.2.2 Matlab/Simulink中的C6701 EVM
安装了Developer’s Kit for TI DSP模块之后,在Simulink Library Brower中会出现一个支持C6701 EVM的模块库.
在搭建面向C6701EVM的工程文件的Simulink模型时,可选用该模块库中的模块。下面分别介绍这几个模块:
C6701 EVM ADC模块
这个模块用于采样和量化,给C6701 EVM板提供外部信源,如信号发生器、频率发生器和音频设备。将C6701 EVM ADC模块放在Simulink模块中可以让用户使用C6701 EVM上的多媒体语音编码和解码模块(codec),用以将从Line In或者Mic In端口输入的模拟信号转换为数字信号,供C6701 EVM上的DSP TMS320C6701处理。
C6701 EVM DAC模块
将C6701 EVM DAC模块放在Simulink模块中后,C6701 EVM上的codec模块会将接收到的处理后的数字信号转换成模拟信号向LINE OUT端口输出。
C6701 EVM LED模块
Simulink模型中的C6701 EVM LED模块可用于触发C6701 EVM的外部状态指示灯(User Status LED1)。
Reset C6701 EVM模块
双击Simulink模块中的Reset C6701 EVM模块,可将正在运行从该模型自动生成的可
8