一种基于Matlab的DSP调试及直接代码生成方法
- 格式:doc
- 大小:460.50 KB
- 文档页数:7
在此以fft工程为例说明在MATLAB中调试CCS工程的步骤:1,在MATLAB中运行[boardNum,procNum] = boardprocsel命令,此命令会自动检测CCS目标板的配置,如果有多个配置选择我们需要的配置,在这里注意返回的板卡的编号和处理器的编号,其中板卡编号是从0开始的。
运行之后,出现如下图所示的对话框:2,运行命令cc = ccsdsp('boardnum',boardNum,'procnum',procNum)利用ccsdsp函数确立一个DSP对象,ccsdsp以板卡的编号和处理器的编号为参数,并在建立链接对象后返回其属性,建立之后就可以在MATLAB下实现对CCS的操作并控制DSP芯片;运行出现如下图所示的信息3,依次运行如下命令:projfile = fullfile('ccs','fft','fft.pjt')projpath = fileparts(projfile)open(cc,projfile)visible(cc,0)cd(cc,projpath)至此已经打开了ccs中索要调试的工程具体的调试过程中可以将索要调试的CCS的工程目录放到MATLAB的工作的目录之下,在此放在了的目录位置MATLAB 的工作空间为:4,运行build(cc,'all',60)命令程序返回结果如下:说明程序编译正确5,运行load(cc,'fft.out',30)将生成的.out文件下载到目标板6,运行如下命令:open(cc,'main.c','text')open(cc,'zzt.cmd','text')activate(cc,'main.c','text')打开工程里面包含的源文件,并将主函数作为当前的活动文件7,运行insert(cc,'main.c',30)命令在程序的第30行插入断点,调试程序结果如下:8,运行如下命令:>> halt(cc)>> restart(cc)>> run(cc,'runtohalt',20)将程序执行到断点处,结果如下图所示:9,运行output = read(cc,address(cc,'output'),'single',32)命令,读取c代码中的初始化数据output结果如下:至此已经完成将CCS中的数据传给MATLAB了,在MATLAB中我们就可以对这些数据进行处理了。
【matlab】MATLAB程序调试⽅法和过程3.8 MATLAB程序的调试和优化在MATLAB的程序调试过程中,不仅要求程序能够满⾜设计者的设计需求,⽽且还要求程序调试能够优化程序的性能,这样使得程序调试有时⽐程序设计更为复杂。
MATLAB提供了强⼤的程序调试功能,合理的运⽤MATLAB提供的程序调试⼯具尤其重要。
本节从MATLAB程序调试的⽅法和过程开始介绍,先让⽤户懂得合理运⽤MATLAB的程序调试功能,再总结MATLAB程序优化的⽅法,从⽽达到实现提⾼程序性能的⽬的。
3.8.1 MATLAB程序调试⽅法和过程(1)MATLAB是⼀种解释和执⾏同时进⾏的语⾔,这使得程序的调试变得相对便利,尤其是MATLAB具有良好的所见即所得特性。
在MATLAB程序调试过程中,可运⽤的除了⼀系列调试函数外,MATLAB还提供了专门的调试器,即M⽂件编译器,通过该M⽂件编译器和调试函数的共同使⽤,⽤户能够完成⼤部分的程序调试⼯作。
1.调试的基本任务程序调试(Debug)的基本任务就是要找到并去除程序中的错误。
程序的错误⼤致可以分为如下三类。
语法错误:由于程序员疏忽、输⼊不正确等原因⽽造成的代码违背程序语⾔规则的错误。
运⾏错误:由于对所求解问题的理解差异,导致程序流程出错或对程序本⾝的特性认识有误⽽造成的程序执⾏结果错误的情况。
异常:程序执⾏过程中由于不满⾜条件⽽造成的程序执⾏错误。
语法错误是初学者最常犯的错误,例如,变量或函数名拼写错误、缺少引号或括号等。
这类错误对于熟练掌握MATLAB的⽤户来说很容易避免,并且当MATLAB运⾏发现这些错误时会⽴即标识出这些错误,并向⽤户说明错误的类型以及在M⽂件中的位置,下⾯⽤⼀个例⼦来说明,在debug.m⽂件中输⼊如下内容:11 A=[123,456,789]; %定义矩阵A22 B=[1234,5678,9101112,13141516]; %定义矩阵B33 C=A*B %C为矩阵A和B相乘运⾏时则会出现如下错误:1. Error using ==> mtimes2. Inner matrix dimensions must agree.在上述矩阵四则运算的例⼦中,矩阵A和矩阵B的维数不满⾜运算前置条件,即两个矩阵的维数不同不能进⾏运算。
毕业设计(论文)摘要传统的DSP设计开发流程分为开发设计和产品实现两个环节,这样的开发流程存在许多问题,针对DSP编程难度大,耗时长的问题,给出了一种综合运用Matlab软件、Code Compose Studio(CCS)软件及其内嵌工具和连接软件进行自动代码生成的方法。
本文重点研究TMS320F2812 DSP的自动代码生成方法,基于Matlab/Simulink模型的构建,完成了从概念设计、软件仿真、硬件测试全过程在软件算法仿真测试后直接生成面向数字信号处理(DSP)芯片的代码,有利发现系统设计的错误。
DSP代码自动生成首先根据系统的设计思路在Matlab平台下搭建模型(.mdl);其次在Simulink中对于算法进行仿真,在仿真中遇到问题后可反复修改参数;仿真满意后通过Matlab提供的Real Time Workshop生成面向CCS的工程文件代码(.prj),并进一步完成代码的编译,链接生成DSP可执行机器码(.out),最后下载到目标DSP板上运行,完成系统的开发。
在Matlab平台下代码的自动生成可以代替人工编写程序,这不仅工作者们从枯燥的编程中解放出来,而且还大大简化了开发复杂程度,节约了时间,提高了准确率。
这将在以后的生活中得到广泛的应用。
关键词:DSP;Matlab/Simulink;代码自动生成;CCSAbstractTraditional DSP development, design and product design and development process is divided into two links, so many problems in the development process, in view of the DSP programming is difficult and time-consuming long problem, presents an integrated use of Matlab software, the Code composer Studio (CCS) and embedded software tools and the connection method for automatic Code generation software. This article focuses on automatic code generation method of TMS320F2812 DSP, based on the Matlab/Simulink model building, completed the whole process from concept design, software simulation and hardware test after the software algorithm simulation test directly generate code for digital signal processing (DSP) chip, in favor of the error of discovery system design.DSP code automatically generated based on the system the design train of thought in the Matlab platform to build model (.mdl); Secondly in the Simulink simulation for the algorithm, after the problems encountered in the simulation can be repeatedly modified parameters; Satisfaction after through Matlab simulation to provide the Real Time Workshop generating code for CCS project file (. prj), and further complete the code to compile, link generation DSP executable machine code (.out), finally downloaded to the target run on DSP board, the implementation of the system.Code automatically generated in the Matlab platform can replace artificial program, it not only liberate workers from boring programming, but also greatly simplifies the development complexity, saves time, improves the accuracy. This will be widely used in later life.Keywords:DSP; Matlab/Simulink; Code automatically generated; CCS目录引言 ....................................................................................................................................... - 1 -第1章绪论 ....................................................................................................................... - 2 -1.1课题研究的意义 ............................................................................................................. - 2 -1.2 课题研究的内容 ............................................................................................................ - 2 -1.3课题研究的现状和发展趋势 ......................................................................................... - 2 -第2章工具及开发环境的介绍......................................................................................... - 4 -2.1 MATLAB的介绍............................................................................................................ - 4 -2.2 DSP芯片介绍................................................................................................................. - 4 -2.2.1 什么是DSP芯片........................................................................................................ - 4 -2.2.2 DSP的选择.................................................................................................................. - 5 -2.2.3 TMS320F2812的介绍................................................................................................. - 6 -2.3 DSP的软件开发............................................................................................................. - 9 -2.3.1 集成开发环境CCS .................................................................................................. - 11 -2.3.2 代码生成工具 ........................................................................................................... - 11 -第3章DSP硬件电路的设计 .......................................................................................... - 13 -3.1 基于TMS320F2812的最小系统................................................................................ - 13 -3.2 基于F2812外围电路设计.......................................................................................... - 13 -3.2.1 电源电路设计 ........................................................................................................... - 13 -3.2.2 复位部分设计 ........................................................................................................... - 14 -3.2.3 时钟电路部分设计 ................................................................................................... - 15 -3.2.4 JATG部分设计.......................................................................................................... - 15 -第4章MATLAB平台下DSP代码自动生成的方法 ................................................... - 17 -4.1 设计流程 ...................................................................................................................... - 17 -4.2 具体步骤 ...................................................................................................................... - 19 -第5章举例说明 ............................................................................................................... - 24 -5.1 Matlab平台下DSP代码自动生成的实例 ................................................................. - 24 -5.1.1 Simulink中PID控制的设计 .................................................................................... - 24 -5.1.2 正弦波的产生 ........................................................................................................... - 28 -5.2 DSP平台下通过人工编写程序生成正弦波............................................................... - 29 -5.2.1 DSP的正弦波信号发生器的实现............................................................................ - 29 -5.2.2 DSP的正弦波程序调试............................................................................................ - 33 -结论与展望 ......................................................................................................................... - 36 -结论 ..................................................................................................................................... - 36 -展望 ..................................................................................................................................... - 36 -致谢 ..................................................................................................................................... - 37 -参考文献 ............................................................................................................................. - 38 -附录A TMS320F2812 原理图 ................................................................. 错误!未定义书签。
LEARNING GARDEN 学习园地基于Matlab /Simulink 的TMS320F2812代码开发广东工业大学卢小锦曾岳南摘 要T M S320F2812DSP 是运动控制系统很好的硬件支撑平台,但传统的DSP 代码开发周期较长,效率不高。
M at lab 公司的Embedded T arget for T I C2000DSP 可解决上述问题,用户通过使用该模块,不仅可以进行电路的系统级仿真,还可编译生成相应的C 语言代码,进行算法的探索与设计思路的验证。
文章以三相异步电动机的VV VF 结合SVPWM 控制算法的开环控制系统为例,给出了M atlab/Simulink 平台上DSP 代码开发的设计流程。
关键词自动代码生成 T M S320F2812 M at lab/Simulink RT W 代码生成引 言随着现代电力电子技术的迅猛发展,兼有高运算速度和强控制能力的DSP 在逆变器、电机等电力电子设备的控制领域得到了广泛应用。
通用DSP 的源代码开发都可以采用两种方法:一种是直接利用其提供的汇编指令编写源代码,然后经汇编器和链接器进行汇编链接后生成目标可执行代码;另一种方法是利用标准C/C ++语言编写源代码,然后经C/C ++编译器、汇编器和链接器进行编译链接,最后生成目标可执行代码。
这两种代码开发方法都使得开发人员不得不花费大量的时间在代码的编写上面,增大产品开发难度,延长产品开发周期,从而影响开发效率[1]。
M at h Works 公司和T I 公司联合开发的工具包 M at lab L ink for CCS Development T ools,已经能把M at lab 和T I 公司的DSP 集成开发环境CCS(Code Composer St adiu)及目标DSP 连接起来。
利用此工具可以像操作M at lab 变量一样来操作T I DSP 的存储器或寄存器,即整个目标DSP 对于M at lab 像透明的一样,开发人员在M at lab 环境下,就可以完成对CCS 的操作。
MATLAB与DSP使用RTDX的实时数据交换覃远年;孙丽真;田柯【摘要】采用MATLAB辅助DSP程序的开发和调试,能加快DSP应用程序的开发.实时数据交换(RTDX)为设计、验证DSP算法提供了一个快速、方便的解决方案.本文对RTDX的工作原理进行了分析,讨论了MATLAB与DSP使用RTDX插件实现双向数据传输的实现方式,并通过一个简单的实例说明RTDX的具体实现过程.【期刊名称】《单片机与嵌入式系统应用》【年(卷),期】2015(015)009【总页数】4页(P35-37,41)【关键词】MATLAB;DSP;实时数据交换【作者】覃远年;孙丽真;田柯【作者单位】桂林电子科技大学通信实验中心,桂林541000;桂林电子科技大学通信实验中心,桂林541000;桂林电子科技大学通信实验中心,桂林541000【正文语种】中文【中图分类】TN914在传统的DSP(Digital Signal Processor)应用程序开发过程中,涉及的算法一般先用MATLAB语言进行仿真,仿真结果满意后,再进入产品的实现阶段。
仿真实现后的算法用C/C++或汇编语言实现,首先在硬件DSP目标板上调试,将中间结果通过DSP开发工具保存到PC机的硬盘上,然后调用到MATLAB工作空间,与MATLAB仿真算法的中间结果进行比较,以发现DSP程序中由于设计或精度导致的结果偏差[1]。
如此反复进行,应用程序开发十分不便。
鉴于DSP应用开发的传统设计方法十分不便,MathWorks公司和TI公司联合开发了MATLAB Link for CCS Development Tools(简称CCSLink)。
CCSLink将MATLAB、CCS(TI DSP集成开发环境)和目标DSP三者连接起来,开发人员可以在MATLAB环境中像操作MATLAB变量一样操作TI公司DSP的存储器和寄存器,实现对CCS的控制,极大地方便了TI DSP应用程序的开发。
基于MATLAB和CCS实现代码生成及下载
代码生成:
在MATLAB中,可以使用Embedded Coder或Simulink Coder来生成C语言源代码。
这些工具可以通过模型(使用Simulink进行建模)或MATLAB脚本来生成C代码。
使用Embedded Coder生成的C代码主要针对嵌入式系统开发,例如将MATLAB算法部署到嵌入式控制器。
在MATLAB中,可以通过设置代码生成器参数来定制生成的代码,包括优化选项、代码大小限制和目标处理器选项。
使用Simulink Coder生成的C代码主要用于自动生成嵌入式软件的源代码。
在使用Simulink建模系统时,可以通过使用嵌入式代码自动生成器配置模型来生成C代码。
这个过程包括将模型转换为C代码,执行目标机器的代码生成和生成可执行文件。
CCS是德州仪器(Texas Instruments)开发的一个集成开发环境(IDE),用于嵌入式系统的软件开发和调试。
它支持多种DSP和微控制器,包括德州仪器的TMS320 DSP和Stellaris Cortex-M微控制器等。
总结:。
基于MATLAB⾃动⽣成贝加莱X20控制代码基于MATLAB⽣成贝加莱程序代码操作说明(版本3.1.1)⽂件编号:CECloud-A6000-GH002-030101北京华晟云联科技有限公司编制⽬录⼀、安装贝加莱⼯具箱 (1)1.1. 需要软件版本: (1)1.2安装步骤: (1)1.2.1、选择安装路径 (1)1.2.2 运⾏安装⽂件 (1)1.2.3 完成安装 (2)1.2.4 打开Simulink (2)1.2.5 查看贝加莱⼯具箱 (2)1.3⼯具箱含义 (3)⼆、使⽤Simulink⾃动⽣成程序代码 (4)2.1创建simulink模型 (4)2.2. ⽣成代码 (5)2.2.1 Config配置 (5)2.2.2 ⾃动⽣成代码参数配置 (6)2.2.3 ⾃动⽣成代码 (8)2.3. 其它 (11)2.3.1 任务等级 (11)2.3.2 全局变量 (12)2.3.3 将⽣成的代码配置给其它硬件配置 (13)2.4. 完成。
(15)北京华晟云联科技有限公司编制第I 页共I 页⼀、安装贝加莱⼯具箱1.1. 需要软件版本:AS:3.0.81MATLAB:R2010aAS Target for SIMULINK:V3.01.2安装步骤:1.2.1、选择安装路径打开MATLAB,将路径选为AS的安装路径下的Simulink Target Setup1.2.2 运⾏安装⽂件在MATLAB中运⾏上述路径下的install.p⽂件,开始安装B&R⼯具箱。
选择安装路径时不能选择MATLAB的安装路径。
安装进度条:1.2.3 完成安装安装完成后,将弹出以下对话框:1.2.4 打开Simulink1.2.5 查看贝加莱⼯具箱可看到B&R⼯具箱。
安装完成。
1.3⼯具箱含义⼯具箱的详细含义参见《B&R Automation Studio Target for Simulink》。
⼆、使⽤Simulink⾃动⽣成程序代码2.1创建simulink模型在Simulink模型中,加⼊B&R⼯具箱中的Config模块,并将输⼊输出及中间参数分别替换为BR模块,并修改其属性。
MATLAB DSP实验报告介绍本实验报告将详细介绍在MATLAB环境下进行数字信号处理(DSP)的实验步骤和相关方法。
我们将通过逐步思考的方式,帮助读者理解和学习DSP的基本概念和技术。
实验环境和工具在进行DSP实验之前,我们需要准备以下环境和工具:1.MATLAB软件:确保已安装并配置好MATLAB软件,可以在MATLAB Command窗口中输入命令。
2.信号处理工具包:在MATLAB中,我们可以使用信号处理工具箱(Signal Processing Toolbox)来进行DSP实验和分析。
确保该工具箱已被安装并加载。
实验步骤下面是进行DSP实验的一般步骤:步骤一:加载信号首先,我们需要加载待处理的信号。
这可以通过在MATLAB中使用load命令加载一个音频文件或生成一个模拟信号实现。
例如,我们可以加载一个名为signal.wav的音频文件:load signal.wav步骤二:信号预处理在进行DSP之前,通常需要对信号进行预处理。
这可能包括去噪、滤波、均衡等操作。
例如,我们可以使用滤波器对信号进行降噪:filtered_signal = filter(filter_coefficients, signal);步骤三:信号分析一旦信号经过预处理,我们可以开始进行信号分析。
这可能涉及频域分析、时域分析、谱分析等。
例如,我们可以通过计算信号的快速傅里叶变换(FFT)获得其频谱:spectrum = fft(filtered_signal);步骤四:特征提取在信号分析之后,我们可以根据需要提取信号的特征。
这些特征可能包括幅度、频率、相位等。
例如,我们可以计算信号的能量:energy = sum(abs(filtered_signal).^2);步骤五:信号重构在完成信号分析和特征提取后,我们可以根据需要对信号进行重构。
这可能包括滤波、修复损坏的信号等。
例如,我们可以使用滤波器对信号进行重构:reconstructed_signal = filter(filter_coefficients, filtered_signal);步骤六:结果评估最后,我们需要评估重构后的信号和原始信号之间的差异。
摘要:本文介绍了利用Matlab和Simulink中Developer's Kit for TI DSP工具对DSP进行系统级设计的方法。
关键词:DSP;Matlab;TI;CCS;IDE引言传统的DSP设计开发流程分为两个部分:开发设计和产品实现。
在开发设计部分完成算法开发和方案设计,产品的实现用来验证开发设计的正确性,通常是在不同的部门相互独立地完成。
这样的开发流程存在许多问题,如相互之间的协作,系统范围内的算法测试,系统设计的错误不能被及时发现等。
利用Matlab和Simulink系统级的设计方法和快速原型的自动化工具可以解决这些问题。
系统级设计方法与快速原型系统级设计方法的核心是将算法设计和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的将两个部分结合在一起。
进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次,不同组件和不同数据类型进行建模;同时要有良好的移植性能。
Simulink提供了这样一个很好的开发环境,它是基于图块的系统级仿真环境。
分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。
快速原型就是系统工程师在硬件平台上快速验证他们的方案。
这里快速是指无需进行漫长的针对硬件的软硬开发过程,就可以方便的使用相关硬件平台。
快速原型不需要工程师进行大量的C或汇编编写代码的过程,同时还降低系统工程师对硬件知识的要求,并提供了硬件在回路仿真的能力。
图1 集成开发工具的三种接口面向TI DSP的系统级设计MathWorks 公司为我们提供了功能强大的DSP系统和算法设计工具:Matlab和Simulink,Texas Instruments 提供了高性能的DSP设备和集成开发环境。
两公司合作推出了集成开发工具Developer's Kit for TI DSP,向用户提供了三种接口,如图1所示。
利用MATLAB实现DPSK调制及解调
DPSK(Differential Phase Shift Keying)调制是一种数字信息传输调制方式。
它采用相位差的改变来表示数字信息,具有抗噪声和波动的能力,因此在数字通信领域得到了广泛的应用。
MATLAB是一种适合数字信号处理的工具,可以有效地实现DPSK调制及解调。
以下是具体的实现步骤:
DPSK调制
1. 生成数字信息比特流,转换为1和-1形式。
2. 将比特流进行差分编码得到差分比特流。
3. 将差分比特流分组,每组2个比特。
4. 根据相邻两个比特的差异,确定相位差。
差分比特流为00或11时,相位差为0;差分比特流为01或10时,相位差为π。
5. 根据相位差,生成相位进行调制得到调制信号。
可以使用sinc函数或高斯函数对信号进行脉冲整形。
DPSK解调
1. 将DPSK调制后的信号送入相干解调器。
2. 使用带通滤波器去除高频噪声。
3. 再次进行相干解调,得到调制信号。
4. 对调制信号进行差分解码还原差分比特流。
5. 对差分比特流进行译码得到数字信息比特流。
利用MATLAB实现DPSK调制及解调的代码可在Matlab官网上找到并学习使用。
/p-21683359.html
一种基于Matlab的DSP调试及直接代码生成方法
Matlab作为一种有效的信号处理工具,已经渗透到DSP的设计当中。
开发者在将一个新的数字信号处理算法应用于实际前,一般是先用Matlab进行模拟验证,当模拟结果满意时再把算法修改成C或DSP汇编语言通过CCS在目标DSP上实现,并比较实际应用与模拟的结果以发现误差,如此反复进行。
在较新版本的Matlab(6.0以上)中提供了Matlab与DSP的统一集成环境后,众多学者对Matlab环境下的DSP调试进行了研究。
文献[2-4]从CCSLink的角度出发,对Matlab环境下的DSP调试进行了原理及思路上的阐述,但均未涉及到直接代码生成。
本文在介绍CCSLink的连接对象、嵌入式对象和RTDX对象的基础上,详细阐述Simulink环境下的直接代码生成。
1 CCSLink及ETTIC2000概述
Matlab具有强大的分析、计算和可视化功能,但处理速度慢;DSP具有快速的信号处理能力,但是其CCS的编译环境中数据可编辑和分析能力不如Matlab;而MathWorks公司和TI公司联合开发的Matlab Linkfor CCS Development Tools(CCSLink)和EmbeddedTarget for the TI TMS320C2000 DSP Platform(ETTIC2000),CCSLink提供了Matlab和CCS的接口,能把Matlab和TI CCS及目标DSP连接起来。
利用此工具可以像操作Matlab变量一样来操作TI DSP的存储器或寄存器。
CCSLink支持CCS能够识别的任何目标板(C200,C5000,C600),此工具用于DSP程序的调试过程。
而CCSLink与ETTIC2000的配合使用,可直接由Matlab的Simulink模型生成TIC2000DSP 的可执行代码,能在集成、统一的Matlab环境下完成DSP的整个开发过程。
2 CCSLink环境下的DSP调试
CCSLink向用户提供了3个组件内容,如图1所示。
2.1 CCSLink的接口对象
2.1.1 CCS IDE的连接对象
该对象支持TI的C2000/5000/6000系列DSP,利用此对象可创建CCS IDE和Matlab的连接。
用户可以编写用于DSP程序的Matlab语言批处理脚本,从Matlab的命令窗中直接运行CCS IDE中的应用程序,向硬件DSP的存储器或寄存器发送或取出数据,检查DSP的状态,停止或启动程序在DSP中的运行。
2.1.2 与RTDX的连接对象
该对象提供Matlab和硬件DSP之间的实时通信通道。
它允许用户在主机和目标板之间进行实时的数据交换而不用考虑目标程序的运行。
RTDX连接对象实际上是CCS连接对象的一个子类,在创建CCS连接对象的同时创建RTDX连接对象,它们不能分别创建。
2.1.3 嵌入式对象
在Matlab环境中创建一个可以代表嵌入在目标C程序中的变量的对象。
利用嵌入式对象可直接访问嵌入在目标DSP的存储器和寄存器中的变量,即把目标C程序中的变量作为Matlab的一个变量来对待,并把编辑后的信息反返回到DSP程序中。
所有这些操作均在Matlab环境下完成。
2.2 CCS IDE连接对象应用
CCS IDE连接对象提供Matlab与CCS IDE和目标DSP的连接,利用此连接可以在Matlab环境中控制和操作DSP中的应用程序;利用Matlab中强大的计算、分析和可视化工具来分析和对比目标程序运行过程中的结果;而嵌入式对象则提供Matlab对DSP内存中的变量进行实时访问和控制,这样大大缩短嵌入
式应用程序的开发调试周期。
本文以运行具体程序说明调试过程。
源程序PWM.pjt保存在Matlab根目录下的project文件下。
从上述程序可知,在Matlab环境下可以完成对CCS工程文件的调入、编译,生成可执行文件并将其加载到DSP目标板。
并且可以通过相应的连接对象和嵌入式对象操作函数,实现在DSP硬件不停止执行程序的情况下对DSP的C 语言程序中数据结构变量的读写修改。
3 ETTIC2000环境下的直接代码生成
由第2节中可知,CCSLink为TI DSP实时应用开发的调试和测试阶段提供了强大的支持,而ETTIC2000则为TI C2000 DSP实时应用开发的整个过程(概念设计、算法仿真、源代码编写、目标代码生成、调试和测试)都提供了支持。
利用ETTIC2000能够从Sireulink模型自动生成TI(22000 DSP的可执行代码,并且为TI LF2407 EVM目标板上的I/O设备提供驱动代码,使得MINULINK 模型可以直接在LF2407EVM板上进行实时测试,从而在Simulink统一环境下就可以实现整个硬件在线仿真。
3.1 ETTIC2000应用开发过程
应用ETTIC2000开发实时DSP处理的过翟如下:
(1)概念构思和DSP处理算法设计;
(2)在Simulink环境下,利用DSP BLOCKSET,FIXED-POINT BLOCKSET,C2000 DSPLIB和Simulink等库中的模块构建算法模型,并在Simulink环境下进行仿真;
(3)如果Simulink仿真效果满意,就可以在模型中加入需要的LF2407 EVM目标板上的I/O模块;
(4)设置REAL-TIME WORKSHOP中的编译链接(BUILD)选项;
(5)利用CCS中的调试工具、CCSLink或RTDX来调试目标DSP中的程序;
REAL-TIME WORKSHOP能够从Simulink模型中自动产生C代码并且插入ADC和DAC模块指定的I/O设备驱动程序。
再通过REAL-TIME WORKSHOP面板上的BUILD按钮,REAL-TIME WORKSHOP会自动产生实时可执行代码。
3.2 建立Simulink模型
由前述连接对象可知,系统已经正确安装了TIC2000系列DSP目标板。
在Matlab命令窗口输入:C2000LIB,打开TIC2000的Simulink模块库,其模型库组成如图2所示。
本系统采用2407目标板,因此只用到C2000 Target Preferences和C2400 DSP ChipSupport等模块。
本文以脉宽调制中A/D采样控制为例,其建立的Simulink模型如图3所示。
3.3 REAL-TIME WORKSHOP选项设置
建立好Simulink模型后,设置其属性,生成CCS可执行的工程文件。
在Simulink模型窗口选择Simulation下拉菜单中选择Configuration Parameters,弹出如图4所示对话框。
在属性对话框中单击Real-Time Workshop 选项卡,在Category栏中选中Target configuration修改System target file和Template make file文件名。
其他选择默认值,单击Generate Code,就可以将Simulink模型自动生成CCS IDE的工程文件,并自动调入CCSIDE中,则该工程文件就可以在CCS IDE中编译下载运行。
其生成的工程文件在CCS IDE环境下的载人情况如图5所示。
在直接代码生成时,Matlab命令窗口返回信息如下:
至此,代码生成并在CCS IDE中编译完毕。
4 结语
本文基于Matlab环境对DSP的实时调试及直接代码生成过程做了详细的阐述,并结合实例给予演示。
实验证明,应用Matlab对DSP进行实时调试和代码生成,有效地改变了传统的设计方法。
Matlab的易于操作性有助于在设计早期发现错误并进行实时更改。
而CCSLINK与ETTIC2000的结合,使得在集成、统一的Matlab环境下完成DSP开发的整个过程。