Matlab-Simulink的DSP代码生成
在simulink下开发dsp
在simulink下开发dsp首先以matlab下的help里的一个例子来说明在simulink里仿真的电路转换为ccs里的c语言程序。
下面的例子主要功能是应用ad转换模块采集的信号来控制输出的pwm波形:原理图形如下:上述模块可以在simulink下的target for c2000的c2000 target preferences和c281x chip support 里找到。
其中F2812 eZdsp可以配置使用的dsp芯片以及相关的存储器映射和外围设备。
其双击打开为:ADC模块的初试化配置为:PWM模块的配置为:本例仅仅对采集进来的信号做了放大的作用,故只用了一个放大器。
在此基础上,打开窗口菜单的simlation里的configuration parameter,对其里的各个参数进行配置如图:首先对solver进行配置:其次是硬件配置(hardware implemenlation):这里最重要是对real-time workshop的配置:里面的配置如图:在以上配置好之后,确定并按ctrl+b,计算机将会在ccs环境下自动生成c语言代码。
如图:以上是基本的操作流程.。
个人的理解、体会及问题:整个过程是matlab里的embedded target for the ti tms320c2000 dsp platform模块,简称为ETTIc2000.此模块利用real-time workshop通过ccslink模块直接将simulink模型生成c语言代码。
通过学习发现我们可以单独的将几个模块放在一起,中间不做任何连接,也可以运行生成代码,这样在模型用simulink很难搭建情况下,我们可以省去编程里复杂的初始化,应用此系统进行初始化,之后再进行算法编程。
在学习过程中的问题:(1)在对configuration parameter里的solver设置时,为何要用固定步长和离散的,起初以为是采样的原因,之后发现没有ADC 转换时也为相同设置,其他均会出错。
Simulink代码自动生成(二)
Simulink代码⾃动⽣成(⼆)前⾯⼀篇介绍了Simulink代码⾃动⽣成的基本步骤,虽然⽣成了符合模型逻辑的代码,但有些部分还需要进⾏进⼀步优化才能更便于我们使⽤和代码的集成编译。
这⼀篇将从实⽤的⽬的作为出发点,将模型⽣成代码植到51单⽚机上,周期的点亮板⼦上的LED发光⼆极管。
在移植的过程中,我们在根据需求对之前模型进⾏优化Matlab版本:R2018B⼀、软件的设计思路上⼀篇中实现的计数器的模型,当计数使能时模型每运⾏⼀次计数器的值加1,当计数器达到设定⽬标值时,计数到达标志位置位。
如果我们将该计数模块放在10ms周期任务中运⾏,设置计数⽬标值为100,当计数到达标志位置位时刚好1s时间到。
我们可以以此为基础,使得LED发光⼆极管的状态每隔1s时间进⾏翻转⼀次。
计数模块输⼊使⽤了TarVal、InitVal、B_Init、B_Calc等变量,我们将这些变量在bsp_led.c模块中定义,bsp_led.c与⽣成代码TimerCnt.c之前的变量关系如下图所⽰:bsp_led.c是与底层有关,通过⼿写实现的。
其中实现了有两个函数,⼀个是bsp_led_initialize⽤于初始化时相关变量,另⼀个是bsp_led_10msTrg每10ms周期调⽤⼀次。
两个函数中的内容如下:void bsp_led_initialize(void){TarVal = 100;InitVal = 0;B_Init = 0;B_Calc = 1;}void bsp_led_10msTrg(void){if(B_En == 1){led = ~led;B_Init = 1;B_Calc = 0;}else{B_Init = 0;B_Calc = 1;}}bsp_led_initialize:设置计数器⽬标值、计数初始化设定值、使能计数bsp_led_10msTrg:检测计时时间到让LED状态翻转,初始化计数模块。
matlab生成DSP可执行算法研究
matlab生成DSP可执行算法的研究编写:徐鹏利用RTW-EC(Real-Time Workshop Embedded Code)等工具为用户算法自动生成嵌入式代码,这是一种高效、实用的方法,他的核心思想是让工程师把主要精力集中于算法的研究上,把枯燥、困难的代码编写工作留给计算机自动完成,这样可以大大缩短产品的开发周期,降低市场风险。
目前matlab主要支持的处理器有:TI几乎全系列的DSP、X86架构等处理器,提供几乎全部的驱动,使得开发DSP不需要在CCS中编代码,非常方便做算法。
下面我以2阶倒立摆的LQR(最优化控制)为例子,介绍一下matlab 自动生成dsp全部代码、工程的过程:第一步:安装CCS v3.3,usb100仿真器驱动,配置CCS等,见附件视频。
第二步:安装matlab,最好安装2008b及以上版本,这里我用的是matlab2010b。
第三步:建立simulink模型,我们知道,倒立摆有两个角度,分别为主动臂和从动臂,这两个角度用位置式编码器来采集,而主动臂由一个直流电机驱动,直流电机驱动器输入需要-10伏到+10伏,以控制电机的正转、反转。
点击,打开simulink。
新建一个model。
在simulink库中找到,选中其中的,然后看右边的框,选择,添加到model中。
配置,双击此图标,出现配置如上,因为我们使用的是Tms320F2812这款DSP。
这是配置模块生成代码的目标dsp的型号,以便生成相应的DSP代码,它本身无连接线,放在model中即可。
下面我们使用DSP的QEP及通用IO来获取我们想要的通道及数据,QEP是DSP中可以计算电机转子转的脉冲数,只要将它取到,除以转一周的总脉冲数,再乘以π,就转换成角度了。
下面我们把SIMULINK中打包好的dsp外设模块拿进来,在simulink库中刚才位置找到,看到有c2812,双击可以看到很多2812的外设,这些都可以直接使用。
simulink 生成代码操作步骤
本操作步骤依据的是NXP-FRDM-K64F。
一、首先要安装对应板子的硬件支持包,具体步骤如下:
1.启动MATLAB
2.找到主页的“附加功能”,如图1
图1
3.在附加功能的下拉菜单中选择最后一个“获取硬件支持包”,如图2
图2
4.然后在搜索框内打字“FRDM-K64F”搜索,之后会出现对应的硬件支持包,如图3
图3
5.点开之后下载安装即可,如图4(安装完成后“安装”按钮会变为“管理”),如图4
图4
6.安装过程会出现一个对话框,每完成一项会有标志,等待一会即可。
二、代码生成
1.首先打开simulink,打开library browser,如图5
图5
2.在目录检索中会找到NXP FRDM-K64F 库,如图6
图6
3.进行编程,我这里举一个简单的例子,点亮一个灯。
只需简单拖动模块更改参数即可。
如图7
图7
4. 接下来可以参考网址
https:///help/supportpkg/freescalefrdmk64fboard/examples/gettin
g-started-with-simulink-coder-support-package-for-nxp-frdm-k64f-board.html 至此,一个简单的代码生成结束了。
MATLAB平台下DSP代码自动生成技术研究及实现
MATLAB平台下DSP代码⾃动⽣成技术研究及实现毕业设计(论⽂)摘要传统的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 原理图.............................................................. 错误!未定义书签。
MATLAB2012_13 生成DSP代码,CCSv4_5可使用
MATLAB中提供了多个例子,例如:F281x based board: c281x_adcpwmasynctestc281x_adcpwmasynctestF280x/F2823x/F2833x based board: c280x_2833x_adcpwmasynctestPiccolo F2802x/F2803x/F2806x based board: c280xx_adcpwmasynctes在不熟悉DSP生成代码使用方法的情况下,可以直接使用,或者在此基础上进行修改,本文利用的是F281x based board: c281x_adcpwmasynctestc281x_adcpwmasynctest。
本例几乎是全部适用Code Composer Studio™ 3.3 (CCSv3.3)的,可以直接按Ctrl+B快捷键生成代码。
但是对于Code Composer Studio™ 4 or 5 (CCSv4/5)则需要做适当的修改。
示例中的芯片配置模块(Target Preferences)在MATLAB的高版本中已经被移除。
取而代之,选择芯片型号的方法被添加到了Simulation >Model Configuration Parameters > Code Generation > Coder Target > Target Hardware Resources选项卡中。
在高版本的MATLAB中打开示例,如图所示。
按Ctrl+E可以打开Model Configuration Parameters窗口,选择Coder Target > Target Hardware Resources选项卡。
选择适合芯片的参数。
但是,仅选择Target Hardware Resources的参数还是不行的,MATLAB会在生成过程中报错,生成代码失败。
那就是还要对MakeFile进行配置。
Simulink自动代码生成_01
2.4.8 Code Generation-Code Placetnem子标签页面的设置
Code Placetnem子标签提供的选项将影响生成代码的文件组织方式和数据存储方式及 头文件包含的分隔符选择等,其页面如下图所示:
2.4.8 Code Generation-Code Placetnem子标签页面的设置
2.2 Optimization页面的设置
当模型中使用参数变量,如Gain模块的增益值,在生成代码时,如果希望使用该参数 的值直接展开到代码中,就需要设置参数内联选项,如下图所示框中选项:
2.2 Optimization页面的设置 当模型中使用参数变量,如Gain模块的增益值,在生成代码时,
如果希望使用该参数的值直接展开到代码中,就需要设置参数内联 选项,如下图所示框中选项:Inline parameters选项决定是否将参 数内联到代码中去。勾选此选项后,代码生成时模型的参数将以常 数方式直接生成到代码逻辑中,不再以一个参数变量的形式生成。 当模型中的参数需要作为实时可调的参数生成到代码中时,不勾选 Inline parameter,参数将作为变量生成;如果不需要实时调整参数, 可以选择节省存储空间的方式,勾选Inline parameter,将参数以数 值常数的形式生成到代码中。
另外一个关键的设置选项是控制整个代码生成过程的系统目标文件 System Target File,ert. tlc文件是Embedded Coder提供的能够生成专门 用于嵌入式系统C代码的系统目标文件。在Code Generation页面中,单 击下图图(2)所示右上角Browse按钮可以弹出对话框以选择系统目标 文件。
2.3 Hardware Implenmatation页面的设置
在simulink下开发dsp
在simulink下开发dsp首先以matlab下的help里的一个例子来说明在simulink里仿真的电路转换为ccs里的c语言程序。
下面的例子主要功能是应用ad转换模块采集的信号来控制输出的pwm波形:原理图形如下:上述模块可以在simulink下的target for c2000的c2000 target preferences和c281x chip support 里找到。
其中F2812 eZdsp可以配置使用的dsp芯片以及相关的存储器映射和外围设备。
其双击打开为:ADC模块的初试化配置为:PWM模块的配置为:本例仅仅对采集进来的信号做了放大的作用,故只用了一个放大器。
在此基础上,打开窗口菜单的simlation里的configuration parameter,对其里的各个参数进行配置如图:首先对solver进行配置:其次是硬件配置(hardware implemenlation):这里最重要是对real-time workshop的配置:里面的配置如图:在以上配置好之后,确定并按ctrl+b,计算机将会在ccs环境下自动生成c语言代码。
如图:以上是基本的操作流程.。
个人的理解、体会及问题:整个过程是matlab里的embedded target for the ti tms320c2000 dsp platform模块,简称为ETTIc2000.此模块利用real-time workshop通过ccslink模块直接将simulink模型生成c语言代码。
通过学习发现我们可以单独的将几个模块放在一起,中间不做任何连接,也可以运行生成代码,这样在模型用simulink很难搭建情况下,我们可以省去编程里复杂的初始化,应用此系统进行初始化,之后再进行算法编程。
在学习过程中的问题:(1)在对configuration parameter里的solver设置时,为何要用固定步长和离散的,起初以为是采样的原因,之后发现没有ADC 转换时也为相同设置,其他均会出错。
Simulink代码自动生成(一)
Simulink代码⾃动⽣成(⼀)前⾯介绍了MDB的设计思想并对⽐了它和传统的嵌⼊式软件开发之间的差异,现在开始使⽤Simulink⼯具演⽰模型的搭建和C代码的⾃动⽣成过程。
Matlab版本:R2018B⼀、算法模型的搭建搭建⼀个具有计数功能模型,当使能计数时,每运⾏⼀次该计数模块计数值加1,当计数值⼤于⽬标值时,相应的使能标志位置位,当初始化计数使能时,计数值被初始化为特定的输⼊值模型的输⼊量描述:InitVal:计数器初始化值B_Init:为1时,计时器模块被初始化成InitVal值B_Calc:为1时,计数器模块每运⾏⼀次⾃加1模型内部变量:CntTimer:存储当前计数值模型输出量描述:B_En: 使能标志位,计数值⼤于⽬标值时被置1CurTimer:当前计数值设置const、switch block的输出数据类型为Inherit:Inherit via back propagation(继承后项的数据类型)⼆、代码的⽣成1、使⽤数据管理,设置变量属性数据据管理主要是对Simulink/Stateflow模型中的两类数据进⾏管理,⼀是信号,⼀是参数。
对应于C代码,我们可以简单的把信号对应到变量上,⽽参数,则是不通过程序运⾏⽽发⽣变化的,参数的变化,⼀般是通过⼈⼯调节完成的,也就是参数调节,参数调节的⽬的是为了选择合适的参数以得到最佳的性能。
数据管理的⽅式,使⽤的是数据对象进⾏数据管理,这⾥的“对象”⼆字,和我们经常听到的“⾯向对象编程”⾥⾯的“对象”意义相同。
Simulink 为⽤户事先定义好两个包,⼀个是Simulink Package,⼀个是mpt Package。
以Simulink Package为例,包⾥⾯有类,分别为Simulink.Signal和Simulink.Parameter两个类。
⽤户可以通过这两个类定义相应的对象(Object),然后通过类提供的属性(Property)定义数据的属性。
SIMULINK--面向DSP的自动代码生成
启动一个显示声卡的 Line In 端口输入波形 的示波器
>> daqscope 示波器函数 Daqscope:可以显示声卡的Line In端口的输 入波形。单击启动按钮,可以看到一个正 弦波形,证明1000Hz的信号已被滤除。 C6711 DSK的Line Out端口也可直接连耳 机。500Hz与1000Hz均在人耳能听到的频 率范围内,直接听也可验证程序结果。
各模块参数设置如图:
结果
硬件仿真
现在要用 C6711 DSK 来实现该模型,硬 件平台如下图所示。Digital Filter Design 模块参数和软件仿真的一模一样,两个正 弦模块被一个C6711 DSK ADC 模块取 代,参数设置如下图所示,Scope 模块被 C6711 DSK DAC 模块取代,参数设置如 下图所示
用鼠标点击Generate code,可将 simulink模型自动生成CCS的工程 文件,并自动调入CCS中,CCS 的系统配置要与matlab中的DSP类 型相对应。
启动向声卡的Line Out端口输出波形的波形发生 器
daqfcngen可以通过声卡的Line Out端口向外输
出一个波形
如图设置波形发生器的参数,单击Start按钮,生成 y1=0.2sin(2*pi*500t)
自动代码生成过程
Model.mk:这是一个针对具体模型的 makefile文件(*.tmf)创建的。 Model.exe:已编译的目标程序。并不是所 有提供的目标最终都生成exe执行文件。 基于dsp的目标就不生成.exe文件
Simulink
对于TI DSP来说,Simulink能够完成: 自动生成C代码; 创建CCS Projects; 支持TI DSP C67x浮点,C64x定点,C62x 定点; 直接支持C6416DSK,C6701EVM, 6711DSK,6713DSK板。(可直接调用板 卡上的模块)。
MATLAB平台下DSP代码自动生成技术研究及实现
毕业设计(论文)摘要传统的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 原理图 ................................................................. 错误!未定义书签。
基于Matlab_Simulink的TMS320F2812代码开发
L EARNIN G GARDEN 学习园地基于Ma t la b/S i m uli n k的 TM S320F2812代码开发■广东工业大学 卢小锦曾岳南 摘 要TMS320F2812DSP是运动控制系统很好的硬件支撑平台,但传统的DSP代码开发周期较长,效率不高。
Matlab公司的Embedded Target for TI C2000DSP可解决上述问题,用户通过使用该模块,不仅可以进行电路的系统级仿真,还可编译生成相应的C语言代码,进行算法的探索与设计思路的验证。
文章以三相异步电动机的VVVF结合SVPWM控制算法的开环控制系统为例,给出了Matlab/Simulink平台上DSP代码开发的设计流程。
关键词自动代码生成 TMS320F2812 Matlab/Simulink R TW 代码生成引 言随着现代电力电子技术的迅猛发展,兼有高运算速度和强控制能力的DSP在逆变器、电机等电力电子设备的控制领域得到了广泛应用。
通用DSP的源代码开发都可以采用两种方法:一种是直接利用其提供的汇编指令编写源代码,然后经汇编器和链接器进行汇编链接后生成目标可执行代码;另一种方法是利用标准C/C++语言编写源代码,然后经C/C++编译器、汇编器和链接器进行编译链接,最后生成目标可执行代码。
这两种代码开发方法都使得开发人员不得不花费大量的时间在代码的编写上面,增大产品开发难度,延长产品开发周期,从而影响开发效率[1]。
Mat h Works公司和TI公司联合开发的工具包———Matlab Link for CCS Development Tools,已经能把Mat2 lab和TI公司的DSP集成开发环境CCS(Code Composer Stadiu)及目标DSP连接起来。
利用此工具可以像操作Matlab变量一样来操作TI DSP的存储器或寄存器,即整个目标DSP对于Matlab像透明的一样,开发人员在Mat2 lab环境下,就可以完成对CCS的操作。
matlab simulink 独立生成代码
matlab simulink 独立生成代码
MATLAB Simulink是一种图形化编程环境,常用于模拟、分析和设计动态系统。
通过Simulink,用户可以构建复杂的控制系统模型,并通过独立生成代码,将这些模型转化为可执行的程序。
独立生成代码指的是将Simulink模型转化为特定硬件或软件平
台的可执行代码,而不需要依赖MATLAB或Simulink环境。
这通常涉及使用MATLAB Coder或Embedded Coder等工具,这些工具可以将Simulink模型转换为C或C++代码,以便在没有MATLAB的环境中运行。
独立生成代码的主要优势在于提高了代码的可移植性和执行效率。
通过将模型转化为独立的代码,用户可以在不同的硬件平台上运行模型,而无需安装MATLAB或Simulink。
此外,独立生成的代码通常具有更高的执行效率,因为它可以针对特定硬件平台进行优化。
总之,MATLAB Simulink的独立生成代码功能为用户提供了将动态系统模型转化为可执行程序的能力,从而提高了代码的可移植性和执行效率。
在MATLABSimulink平台上DSP代码的自动生成
在MAT LAB ΠSimulink 平台上DSP 代码的自动生成齐星刚,赵 刚,李 原(四川大学电子信息学院,四川成都610064)摘 要:本文详细介绍了一种新颖、高效的DSP 代码开发流程。
利用M AT LAB 、S imulink 、Real 2T ime W orkshop 、DSPBlocksets 工具箱和TI 公司的开发工具CCS I DE ,实现DSP 代码的自动生成。
完全实现了DSP 设计到实施的无缝集成,使开发周期极大的缩短。
利用该方法所设计的数字低通滤波语音处理系统已在T MS320C6701E VM 评估板上顺利运行。
关键词:RT W;CCS I DE;自动代码生成;DSP中图分类号:TP368 文献标识码:A 文章编号:167224984(2005)0120087202Auto 2generation of DSP code on MAT LAB ΠSimulink benchQI X ing 2gang ,ZH AO G ang ,LI Y uan(C ollege of E lectron and In formation ,S ichuan University ,Chengdu 610064,Chian )Abstract :In the article ,A new and high 2efficiency DSP developing flow is introduced in detail 1The flow realizes the auto 2generation of DSP code with the use of M AT LAB 、S imulink 、Real 2T ime W orkshop 、DSP Blocksets and TI πs developmentenvironment 2CCS I DE 1I t realizes the integration from design to im plementing ,and shorten the developing period greatly 1The digit low -pass v oice system designed using this flow now have w orked well on the T MS320C6701E VM 1K ey w ords :RT W;CCS I DE;C ode auto 2generation ;DSP收稿日期:2004209208;收到修改稿日期:20042112221 引 言传统的DSP 开发流程存在着极大的弊端:(1)由于在系统设计阶段设计人员只考虑如何得到符合性能指标的“完美”的算法模型,而在实现阶段工程师则关心如何把产品尽快的投放市场,系统设计和实现缺乏有效的沟通,实现人员在得到设计算法后,往往不得不根据具体的硬件规范和可实现能力重新编写代码。
快速原型中Simulink模型的代码自动生成(1)
0引 言
Mat lab/ Simulink 是 Mathworks 公司推出的一种科学 计算仿真软件。在传统的控制理论研究中可以利用其方 便地进行控制规律的设计与仿真, 但是 Simulink 仿真大多 为非实时仿真, 模型中的硬件环节由数学模型所代替。对 于一些仿真实时性要求较高的场合, 如存在数据采集、串 口通信等实时仿真任务时, 往往达不到预期的理想控制效 果。而且离线仿真不能对内存, 接口和通信等实时参量进 行评价, 从而设计者必须不断对自身的设计做出调整, 开 发周期相对过长。
应用表明通过使用simulink模型的代码自动生成可以方便快捷地将simulink模型应用于半实物仿真系统缩短研制周期rtw的主要功能及特点rtw是和matlabsimulink一起使用的一个工具可以直接从simulink模型生成代码并且自动建立可以在不同环境下运行的程序这些环境包括实时系统和单机仿真
或 DSP 板, 可以只生成源代码。然后使用特定的开发环境 对代码进行交叉编译并将其下载到目标硬件中。
2 代码自动生成
图 1 代码自动生成简图
2. 1 RTW 程序自动创建过程 RT W 程序自动创建过程能在不同主机环境下生成用
Matlab-Simulink的DSP代码生成
目前,对于 DSP 工程师来说,除了必须了解和熟悉 DSP 本身的结构(包括软件指令系统 和硬件结构)和技术指标外,还必须熟悉和掌握其开发工具和环境。
TI DSP 的开发工具和环境主要包括以下三个部分: 代码生成工具(编译器、连接器、优化 C 编译器、Байду номын сангаас换工具等) 系统集成及调试环境与工具 实时操作系统
整体上而言,Simulink 是一个系统级的设计和仿真工具,它可以为各种各样的系统建立 模型。使用 Simulink 很容易创建系统的模型,设置仿真参数,然后对模型进行仿真。Simulink 和 Matlab 是高度集成的,用户可以借助 Matlab 强大的数据分析和可视化功能来分析系统仿 真结果。
1 Matlab/Simulink 介绍
Matlab 是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、 神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。Matlab 是一个高度 集中的系统,Matlab 提供的 Simulink 是一个用来对动态系统进行建模、仿真和分析的软件 包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进 行建模,它同样支持具有多种采样速率的系统。
图 1 为 TI 的 TMS320 系列 DSP 软件开发流程图:
3
基于 Matlab/Simulink 的 DSP 代码生成
C Source Files
Archiver
Macro Library
Archiver
C Source Files
C Compiler
Assembler Source
Assembl er
目前 Matlab 的最新版本是 6.5,对应的 Simulink 版本是 5.0。
搭建MatlabSimulink下针对TIDSP的代码自动生成环境
搭建Matlab/Simulink下针对TIDSP的代码自动生成环境本文介绍如何搭建Matlab/Simulink下针对TIDSP的代码自动生成环境。
安装Matlab自不必说,我安装的是Matlab R2014b。
建议大家不要装太旧的软件了,跟不上时代啊。
进入正题,请访问mathwork官网,进入产品目录下,链接,如果比较晚看到的朋友们由于网站改版进不去这个链接,就直接百度mathwork官网找顶部菜单栏的“产品”。
找到Simulink产品家族下的“代码生成板块”,我们要找的TIdsp支持就在其中的Embedded Coder里面。
找到其中的“硬件支持”,然后进入。
接下来就比较明朗了,选择左边的Texas Instruments,就会出现右边的搜索结果。
根据你自己的目标板型号去选择就好了。
我的板子是TMS320F28335的,所以我选择TI C2000 Delfino Support from Embedded Coder 。
如果不确定你是哪一种,那你只能点开仔细看看咯。
TI C2000 Delfino Support from Embedded Coder 打开后内容如下:你可以确认你的型号是不是在列。
最后,点击右边的get support package即可下载。
下载完成后双击,Matlab会将其打开安装。
你可以自行修改安装路径。
安装过程中需要登录mathwork的账户,没有的话就注册一个吧。
安装程序将自动下载安装,你可以去玩了。
安装完成后,提示需要额外的一些设置,你可以选择continue。
不关键的设置我就省掉了,需要注意的是ccs版本的选择。
接下来是提示你是否安装好ccs c2000编译器和controlSUITE(背后附带的是版本要求,需要满足),如果没有请下载安装,装好了就直接next,选择你的c2000编译器和controlSUITE 所安装的位置就好了。
最后还有一个确认步骤,确认你所安装的版本。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于 Matlab/Simulink 的 DSP 代码生成
引言
近年来,伴随着高科技日新月异的发展,对数字信号处理(DSP)芯片的研发也潜移默化 地发生了深刻的变革。但现在研发公司或实验室的硬件多采用美国TI公司的系列芯片,开发 软件多采用CCS系统等,设计语言为汇编或C,不同层次的科研成员完成一项验证或设计需使 用多种语言和开发平台,这就增大了产品开发的风险,延长了产品的上市时间。基于 MATLAB/Simulink自带的DSP工具箱可以完成概念设计、软件仿真、硬件测试全过程,Matlab 语言易学易用,不要求使用者具备高深的数学知识和编程技巧,现已成为大学教学和科研中 最常见的工具。如果能够将DSP开发过程在同一平台上完成将能方便的建立系统模型、实现 从系统设计到实现的完美过渡,对DSP的应用开发也能提供一条便利的途径。
由美国 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 所示。
整体上而言,Simulink 是一个系统级的设计和仿真工具,它可以为各种各样的系统建立 模型。使用 Simulink 很容易创建系统的模型,设置仿真参数,然后对模型进行仿真。Simulink 和 Matlab 是高度集成的,用户可以借助 Matlab 强大的数据分析和可视化功能来分析系统仿 真结果。
短线自考毕业论文
题 目: 基于 Matlab/Simulink 的
DSP 代码生成
学生姓名:
龙文韬
学 号:
2201004
指导教师:
郭杰荣
专业班级:
电信 00101 班
完成时间: 2004 年 5 月 20 日
目录
引 言················································································2 1 MATLAB/SIMULINK 介绍·······················································2 2 DSP 芯片介绍··································································· 2 2.1 什么是 DSP 芯片···························································· 2 2.2 DSP 芯片的开发·····························································3 3 系统级开发设计······························································· 4 3.1 原理介绍····································································· 4 3.2 开发工具····································································· 8 3.2.1 TMS320C6701 EVM 介绍·················································8 3.2.2 MATLAB/SIMULINK 中的 C6701 EVM·································· 8 4 应用举例········································································ 9 4.1 应用步骤····································································· 9 4.2 实例说明····································································· 9 结束语·············································································13 参考文献··········································································13
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 chip’s code generation after software arithmetic emulate test。 KEYWORD:Matlab Simulink DSP C6701EVM CCS
4
基于 Matlab/Simulink 的 DSP 代码生成
进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统机构、算法进 行描述,还能够对系统不同的层次,不同组件和不同数据类型进行建模;同时要有良好的移 植性能。Simulink 提供了这样一个很好的开发环境,他是基于图块的系统级仿真环境。分 级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。
COFF Object
Library of Object Files
Linker
Hex Conversion Utility
EPROM Programm
Absolute Lister
Executable COFF File
TMS320 DSP
Runtime Support Library
Computer
2.2 DSP 芯片的开发
目前,对于 DSP 工程师来说,除了必须了解和熟悉 DSP 本身的结构(包括软件指令系统 和硬件结构)和技术指标外,还必须熟悉和掌握其开发工具和环境。
TI DSP 的开发工具和环境主要包括以下三个部分: 代码生成工具(编译器、连接器、优化 C 编译器、转换工具等) 系统集成及调试环境与工具 实时操作系统
图 1 为 TI 的 TMS320 系列 DSP 软件开发流程图:
3
基于 Matlab/Simulink 的 DSP 代码生成
C Source Files
Archiver
Macro Library
Archiver
C Source Files
C Compiler
Assembler Source
Assembl er
1 Matlab/Simulink 介绍
Matlab 是一种面向科学与工程计算的高级语言,它集科学计算、自动控制、信号处理、 神经网络和图像处理等学科的处理功能于一体,具有极高的编程效率。Matlab 是一个高度 集中的系统,Matlab 提供的 Simulink 是一个用来对动态系统进行建模、仿真和分析的软件 包,它支持线性和非线性系统,能够在连续时间域、离散时间域或者两者的混合时间域里进 行建模,它同样支持具有多种采样速率的系统。
基于 Matlab/Simulink 的 DSP 代码生成
基于 Matlab/Simulink 的 DSP 代码生成
电子信息科学与技术专业学生:龙文韬 指导教师:郭杰荣
摘 要 : 本 文 研 究 了 基 于 Matlab/Simulink 的 DSP 代 码 生 成 的 方 法 。 介 绍 了 基 于 Matlab/Simulink 的 DSP 系统级设计方法、Matlab 与 CCS 系统对于 DSP 的各自特点及相互连 接,论述了面向 TI DSP 芯片的系统设计。传统的 DSP 设计开发流程分为开发设计和产品实 现两个环节。这样的开发流程存在许多问题,基于 Matlab/Simulink 的系统级设计方法,完 成了从概念设计、软件仿真、硬件测试全过程。在软件算法仿真测试后直接生成面向数字信 号处理(DSP)芯片的代码,有利发现系统设计的错误。 关键词: Matlab Simulink 数字信号处理 C6701 评估板 代码编译系统