打印
[DSP]

Mathsworks的RTWCE与DSP的开发过程研究

[复制链接]
1178|52
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
沙发
東南博士|  楼主 | 2020-6-14 19:24 | 只看该作者
    传统的DSP项目开发方式主要是按照项目需求与设计规范,通过手写C代码
或DSP汇编代码在DSP板卡上进行编程设计实现。这要求开发者不但需要掌握
DSP的硬件特性和原理体系,还需要具备信号处理的理论算法设计经验和DSP开
发应用的编程能力。这无疑分散了设计人员的研究精力,相对阻滞了研发速度。
    Mathsworks公司开发的Simulink和Real-Time Workshop Embedded Coder(RTW
EC)工具提供了一种集信号处理算法和DSP驱动源代码于一体的开发和测试平
台。该平台以硬件支持库作为开发载体,使完全地基于MATLAB和Simulink平台
的开发成为可能。
    然而,MATLAB无法集成所有型号处理器以及对应的板级支持库模块。对于
自定义的硬件板卡,需要根据不同型号DSP处理器的特性和板卡的开发应用情
况,设计出与DSP处理器对应的板级支持库模块,以完成算法模型搭建和自动生
成代码过程。

使用特权

评论回复
板凳
東南博士|  楼主 | 2020-6-14 19:25 | 只看该作者

使用特权

评论回复
地板
東南博士|  楼主 | 2020-6-14 19:27 | 只看该作者

使用特权

评论回复
5
東南博士|  楼主 | 2020-6-14 19:27 | 只看该作者

使用特权

评论回复
6
東南博士|  楼主 | 2020-6-14 19:28 | 只看该作者

使用特权

评论回复
7
東南博士|  楼主 | 2020-6-14 19:29 | 只看该作者
    随着MATLAB和Simulink功能的扩展和强大,实现数字信号处理理论算法到
硬件系统平台的实时信号处理己经成为可能,MATLAB/Simulink平台己经普遍成
为复杂算法的开发工具。本文基于TMS320C6455 DSP芯片和Xilinx Virtex-5
FPGA的硬件平台,提出在MATLAB/Simulink平台上,搭建算法模型并自动生成
C代码,同时下载至DSP目标板的算法快速开发方案。实现该方案的核心元素就
是集成在MATLAB内部的Real-Time Workshop实时工作环境,本章将具体介绍通
过RTW EC功能实现自动生成实时目标板卡运行程序的原理和过程。

使用特权

评论回复
8
東南博士|  楼主 | 2020-6-14 19:32 | 只看该作者
    Real-Time Workshop是Mathworks公司开发的MATLAB工具箱之一,是建立
在Simulink算法模型和模型仿真机制基础上的一个拓展机制,简单地说,RTW为
MATLAB添加了自动生成代码的功能。

使用特权

评论回复
9
東南博士|  楼主 | 2020-6-14 19:35 | 只看该作者
    Real-Time Workshop是Mathworks公司开发的MATLAB工具箱之一,是建立
在Simulink算法模型和模型仿真机制基础上的一个拓展机制,简单地说,RTW为
MATLAB添加了自动生成代码的功能。

使用特权

评论回复
10
東南博士|  楼主 | 2020-6-14 19:41 | 只看该作者
    通过在Simulink平台中创建可改进和优化的算法模型,然后执行RTW功能,
可以产生规范但不缺手写个性化的程序代码,而且针对不同的目标板卡可以灵活
地修改系统目标文件,生成不同硬件系统环境下的可执行代码。此外,RTW可以
自动将生成的目标程序加载到硬件板卡上,并且可以通过外部模式功能监测板卡
运行状态,能动态地对模型系统进行实时调试。

使用特权

评论回复
11
東南博士|  楼主 | 2020-6-14 19:42 | 只看该作者

使用特权

评论回复
12
東南博士|  楼主 | 2020-6-14 19:43 | 只看该作者

使用特权

评论回复
13
東南博士|  楼主 | 2020-6-14 19:47 | 只看该作者

使用特权

评论回复
14
東南博士|  楼主 | 2020-6-14 19:51 | 只看该作者

使用特权

评论回复
15
東南博士|  楼主 | 2020-6-14 19:51 | 只看该作者
    RTW从Simulink框图、Stateflow图和MATLAB函数生成并执行C和C++代
码。生成的代码可运行在PC处理器、DSP器件、裸版的微控制器和多种包括专用
的实时操作系统之上,用于实时和非实时应用。包括仿真加速、快速原型建立和
硬件在回路测试。我们可以用Simulink对生成的代码进行调优和监测,也可以在
MATLAB和Simulink之外运行代码并与其交互[1gU22}0
    现在越来越多的算法设计师通过在Simulink环境下搭建算法链路,再使用
MATLAB对模型进行分析和执行,采用RTW快速仿真的功能以大幅提高仿真速
率。通过对仿真数据的分析,不断优化算法,最后完成符合要求的模型,再将模
型生成一个快速原型化目标,快速原型化目标是目的硬件平台的样机模型,
Simulink模型可以当作目标硬件的接口,实时监测快速原型化样机。生成模型后
再用RTW将模型转换成C语言,然后通过模板联编文件控制目标代码编译器生成
可执行程序,装载到DSP板卡上。在MATLAB与底层通路连接之后,启用
Simulink外部模式,在参数对话框中,实时动态地对目标参数进行监控和调试。
    RTW EC是实现基于MATLAB平台实时开发硬件系统的中枢环节。根据设计
需求中可执行技术规范,使用自定义硬件支持库建立并确认要设计的算法模型
后,便到了设计开发过程的实现部分,用RTW EC实现自动生成代码。从设计效
率、设计纵向延展性和所需工作量看,相比传统系统开发流程存在很大的优势,
尤其对于复杂算法的研究,避免了手写大量算法代码的低效工作。

使用特权

评论回复
16
東南博士|  楼主 | 2020-6-14 19:52 | 只看该作者
    由于RTW可以面向多种操作系统和处理器类型进行扩展应用,因此在实际的
产品开发过程中有着广泛的兼容性,可以面向多种微处理器和硬件系统平台进行
开发应用,有英飞凌单片机、Motorola公司的MPC555单片机、TI公司的DSP芯
片及其DSP/BIOS系统、ADI公司的DSP芯片以及Wind River公司的Tornado实
时硬件系统平台及其VxWorks系统。
    DSP包括快速仿真、实时仿真、嵌入式实时应用以及生成完整的实时解决方
案等[23} o RTW的应用包括嵌入式实时开发和生成完整的实时解决方案两种。其中
本文使用RTW的自动生成代码功能,通过对RTW进行扩展应用,设计并结合DSP
硬件支持模块,将数字信号处理算法模型通过RTW自动生成DSP可执行的文件,
并自动下载到DSP板卡中开始运行。其次,通过集成自定义的硬件系统平台和
RTW EC的产品解决方案,可以实现总线设备启动控制、数据发送控制及数据传
输控制等各种应用控制功能。

使用特权

评论回复
17
東南博士|  楼主 | 2020-6-14 19:52 | 只看该作者

使用特权

评论回复
18
東南博士|  楼主 | 2020-6-14 19:53 | 只看该作者

使用特权

评论回复
19
東南博士|  楼主 | 2020-6-14 19:58 | 只看该作者
    S函数是系统函数(System Function的简称,是Simulink环境下的功能扩展
机制,可以有效提高和丰富Simulink的功能。S函数可以定义模块基本属性、模
块执行情况,还可以实现算法模块及板卡设备驱动模块。
    RTW代码生成过程的第一个阶段是对搭建好的DSP模型进行编译,该阶段与
C程序的编译过程类似,C程序的编译过程包括类型检测和预处理。同样地,对于
S函数模块,Simulink引擎在执行算法模型仿真时将由S函数定义的特定信息从一
个模块传递到下一个模块,传递的信息包括数据类型、信号线宽度和采样时间。
Simulink首先需要确认模块端口的输入和输出数据类型一致与否,模块之间的信
号线宽度必须要相等以及互相连接的采样时间需要保持一致性等。上述模块属性
都可以根据模型中的具体情况,在S函数的mdlInitializeSizes回调函数中进行扩展
编写。
    此外,Simulink引擎通过执行各模块的S函数,调用回调函数来完成对模型
的仿真。一个S函数的代码包括一系列的S函数回调函数,用于在每个仿真阶段
执行指定的任务。在仿真模型中的每个仿真阶段,Simulink对S函数模块调用适
当的方法,通过S函数的回调来进行模块的初始化过程、计算采样点时间、计算
输出过程、进行模型状态更新这四个过程。这四个过程都可以通过在S函数中分
别编写对应的回调函数mdlInitializeSizes,  mdlInitializeSampleTimes,  mdlOutputs
和mdlUpdate来实现。
    在RTW执行创建过程的初始化阶段需要对己组建好的模型进行分析,RTW
读取Matlab内建的模型文件model.mdl,将目标板卡预置模块、DSP Core支持库
模块、板级支持库模块、算法子系统以及它们之间的联系,生成具有多层次结构
的model.rtw文件。该文件中包含模型和子系统的结构及连接关系,是一种AS CII
码文件。model.rtw文件仅是模型转化为目标代码流程中的一个中间文件。
    S函数API包含一个特定的回调函数md1RTW }  md1RTW回调函数将Simulink
模块对话框中的参数从Simulink模块传递到model.rtw文件中,这样便可以在
Simulink环境中修改所生成自定义代码中的参数。

使用特权

评论回复
20
東南博士|  楼主 | 2020-6-14 19:59 | 只看该作者
    Target Language Compiler(目标语言编译器)是RTW代码生成工具的一个组
成部分。TLC文件包含系统目标文件和模块目标文件两组文件[[25]。对于不同的
DSP或者嵌入式处理器需使用或者定义不同的系统目标文件,比如一般实时目标
使用grt.tlc文件模板,嵌入式实时目标使用ert.tlc文件模板。
    随着DSP集成开发环境CCS所集成DSP处理器类型和所配对的芯片支持库
越来越丰富,再加上Mathworks公司和TI公司在MATLAB与CCS软件产品上的
深化合作,RTW可执行文件创建过程得到不断优化。例如C6455所用的原有系统
目标文件“ti_ c6000_ ert.tlc”被“ccslink ert.tlc”文件取代。系统目标文件的主要
作用体现在两个阶段,RTW将Simulink模型生成到CCS实时C程序代码阶段以
及RTW将C程序代码生成DSP可执行文件阶段。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

367

主题

6048

帖子

34

粉丝