0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

在Matlab环境下实现DSP的实时调试和代码生成方法研究

电子设计 来源:郭婷 作者:电子设计 2019-01-08 09:24 次阅读

Matlab作为一种有效的信号处理工具,已经渗透到DSP的设计当中。开发者在将一个新的数字信号处理算法应用于实际前,一般是先用Matlab进行模拟验证,当模拟结果满意时再把算法修改成C或DSP汇编语言通过CCS在目标DSP上实现,并比较实际应用与模拟的结果以发现误差,如此反复进行。在较新版本的Matlab(6.0以上)中提供了Matlab与DSP的统一集成环境后,众多学者对Matlab环境下的DSP调试进行了研究。从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所示。

在Matlab环境下实现DSP的实时调试和代码生成方法研究

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环境下实现DSP的实时调试和代码生成方法研究
在Matlab环境下实现DSP的实时调试和代码生成方法研究

从上述程序可知,在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代码并且插入ADCDAC模块指定的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所示。

在Matlab环境下实现DSP的实时调试和代码生成方法研究
在Matlab环境下实现DSP的实时调试和代码生成方法研究

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命令窗口返回信息如下:

在Matlab环境下实现DSP的实时调试和代码生成方法研究

至此,代码生成并在CCS IDE中编译完毕。

4 结 语

本文基于Matlab环境对DSP的实时调试及直接代码生成过程做了详细的阐述,并结合实例给予演示。实验证明,应用Matlab对DSP进行实时调试和代码生成,有效地改变了传统的设计方法。Matlab的易于操作性有助于在设计早期发现错误并进行实时更改。而CCSLINK与ETTIC2000的结合,使得在集成、统一的Matlab环境下完成DSP开发的整个过程。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • dsp
    dsp
    +关注

    关注

    554

    文章

    8059

    浏览量

    350224
  • matlab
    +关注

    关注

    185

    文章

    2980

    浏览量

    230936
  • 调试
    +关注

    关注

    7

    文章

    589

    浏览量

    34049
  • 代码
    +关注

    关注

    30

    文章

    4823

    浏览量

    68990
收藏 人收藏

    评论

    相关推荐

    自动驾驶测试场景库的构建及评价方法之场景生成方法研究

      自动驾驶测试场景库的构建及评价方法(二) 场景生成方法研究 一、研究背景   智能网联汽车面临多维度安全挑战,其中预期功能安全是重要组成部分。在当前阶段,智能网联汽车产业正处于前所
    的头像 发表于 01-22 10:51 440次阅读
    自动驾驶测试场景库的构建及评价<b class='flag-5'>方法</b>之场景<b class='flag-5'>生成方法</b><b class='flag-5'>研究</b>

    Simulink与 MATLAB 的结合使用 Simulink中的信号处理方法

    工程和科学研究中,信号处理是一个重要的领域,涉及到信号的采集、分析、处理和生成MATLAB 提供了丰富的信号处理工具箱,而 Simulink 提供了一个直观的图形界面,使得复杂的信
    的头像 发表于 12-12 09:25 481次阅读

    PWM信号生成方法 PWM调制原理讲解

    信号生成方法 PWM信号的生成方法多种多样,主要包括以下几种: 波形发生器 : 波形发生器是产生PWM信号的一种简单直接的方式。 通过波形发生器上设置相应的参数(如频率、占空比等),即可生成
    的头像 发表于 11-28 16:34 1993次阅读

    Wilink WLAN IP实时调优工具(RTTT)

    电子发烧友网站提供《Wilink WLAN IP实时调优工具(RTTT).pdf》资料免费下载
    发表于 11-28 14:23 0次下载
    Wilink WLAN IP<b class='flag-5'>实时调</b>优工具(RTTT)

    如何自动生成verilog代码

    介绍几种自动生成verilog代码方法
    的头像 发表于 11-05 11:45 436次阅读
    如何自动<b class='flag-5'>生成</b>verilog<b class='flag-5'>代码</b>

    altium designer原理图生成方法

    以下是关于Altium Designer原理图生成方法的步骤: 准备工作 开始绘制原理图之前,需要进行一些准备工作,包括: 1.1 安装Altium Designer软件:首先,确保您的计算机
    的头像 发表于 09-02 16:25 968次阅读

    微液滴生成方法及发展趋势

    微液滴 的生成方法 早期使用的生成液滴方法主要有高速搅拌法、逐层组装技术、膜乳化法和界面聚合法等, 均可生成微纳米尺寸的液滴。 高速搅拌法工序少、操作简单、成本低; 逐层组装技术通用性
    的头像 发表于 07-26 13:27 402次阅读

    如何使用MATLAB创建预测模型

    MATLAB 简介 MATLAB 是由 MathWorks 公司开发的,它提供了一个集成的计算环境,包括一个命令行界面、一个图形用户界面、一个编程语言和一个调试器。
    的头像 发表于 07-11 14:29 745次阅读

    FPGA verilog HDL实现中值滤波

    ; 3、对各个模块进行语法检查、波形仿真、时序设计、调试验证; 4、与matlab的中值滤波结果进行比较。 二、实现过程: 1、查看了中值滤波实现相关的网站和paper; 在网上看
    发表于 06-18 18:50

    任意波形发生器中波形生成方法

    中,任意波形发生器都发挥着不可或缺的作用。本文将详细探讨任意波形发生器中波形生成方法,以期为相关领域的研究和应用提供参考。
    的头像 发表于 05-29 17:13 1046次阅读

    芯海通用 MCU 应用笔记: MDK 开发环境代码重定向到 RAM 执行的几种方法

    空间并写入新的代码。此外还具备执行效率高,寿命长优点。 本文档介绍和说明 MDK 开发环境代码重定向到 RAM 中执行的
    发表于 05-16 11:58

    stm8stvd+cosmic环境怎么生成库操作?

    请教一各位, stm8stvd+cosmic环境怎么生成库操作?目的是将源代码隐藏,提供库
    发表于 05-10 08:15

    ELF 1开发环境中使用Qt Creator进行远程调试

    QtCreator是一款跨平台集成开发环境(IDE),主要适用于支持Qt框架的各类应用程序开发。其内置的远程调试机制使得开发者能够本地开发环境中对部署
    的头像 发表于 04-20 11:03 999次阅读
    <b class='flag-5'>在</b>ELF 1开发<b class='flag-5'>环境</b>中使用Qt Creator进行远程<b class='flag-5'>调试</b>

    请问STM32CubeIDE能否生成MDK代码

    虽然我知道CubeIDE是集成开发环境代码生成、编辑、编译下载调试都OK,但是想问一,能否像STM32CubeMX那样,
    发表于 03-13 08:02

    【鸿蒙】NAPI 框架生成工具实现流程

    NAPI 框架生成工具 可以根据用户指定路径的 ts(typescript)接口文件一键生成 NAPI 框架代码、业务代码框架、GN 文件
    的头像 发表于 02-28 17:00 731次阅读
    【鸿蒙】NAPI 框架<b class='flag-5'>生成</b>工具<b class='flag-5'>实现</b>流程