Matlab/Simulink代码生成到dsp系列(一)基础配置

本文详细介绍了如何利用MATLAB/Simulink结合TI的C2000 DSP进行代码自动生成,包括环境搭建、模型搭建、Simulink基础配置、自动代码生成配置等步骤。通过设置硬件实施、代码生成选项,实现代码快速生成并部署到C2000 DSP芯片上,以LED闪烁控制为例展示了整个流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0 引言

        TI 公司 C2000 系列的 DSP 芯片主要面向数字控制、运动控制领域。在电机控制领域占有主导的地位。但是传统的代码开发方法周期较长,效率不高,有时可读性较差,难以修改、维护。随着工业技术的发展,控制系统的开发流程要求更低的成本和更短的周期,而 MATLAB/Simulink 配合 TI 公司的 DSP 正好为此提供一个很好的代码自动生成开发平台。缩短开发周期,提高可靠性,简化在调试过程中对参数的修改。用户可以在 Simulink 环境中将代码直接下载 到目标板并运行代码,简化代码开发过程,提高开发效率。
        

1 环境搭建

1.1 安装Matlab/simulink 2018b以上版本

5938ca1f248b4761b84477deeffb8173.png

 

1.2 安装CCS9

87fb98be2cf346dcabb5e854b366af93.png

 

1.3 安装C2000 Simulink工具箱

        打开 MATLAB 2018b,在“”下,选择 Get Hardware Support Packages,打开会出现下图所示
界面,点击 Embedded Coder Support Package For Texa instruments C2000。

9353a636eacd4806a3a888c995c15100.png

 

9a85d610c52e48f1a2c39dc7e5e4e4c9.png

打开硬件支持包后,点击“安装”

9145df78701f47689c6c6b4e69172323.png

等待一会,出现如下图所示界面,点击“我接受”,然后点击“下一步”。

 

c6805142eb6743d6b581f78eb8060cc8.png

 

859ef7ea1de04982ae83be28f532ef7c.png

 等待支持包下载安装

008e6d8583af492a8aadc8c97ebee07d.png

 安装完毕后,点击“立即设置”

f8e09d12696248dea7bdf2fbf27ba6bc.png

 进入到下图的页面后,选择对应的芯片,点击“Next”。

147c5f8cd9fe4069b345f64cc845d297.png

 

a0b7d2a43b4041b28ff7f53a16d27607.png

 进入到下图的页面,会自动绑定 controlSUITE 的安装路径,点击“Ne'x't”。

c3f1bcbd3ac943c5b58ccb4a95fc77a4.png

        进入到下图所示的页面后,指定 CCS 的安装路径,点击“Browse”,按照如图所示的文件
夹路径,点击“选择文件夹”,最后点击“Validate”校验即可进入到下一页面。

739d30eef9524b958025cdbbb3f1b3d6.png

7f9fe1b1670e413c87051d1c65986740.png

 

        在这个界面下需要注意的是 Code Generation Tools 工具的选择,点击“Browse”,安装的
CGT 工具可以在 C:\ti\ccs901\ccs\tools\compiler\ti-cgt-c2000_18.12.1.LTS 目录下寻找,配置完成
之后,点击“Validate”进行工具链的验证。

 

9fce916fa5a04c9cbb0b358797798ad8.png

 

4e0a89e4044d4aa5a74aa3f36239fd7a.png

 

点击“Validate”验证 controlSUITE,会自动跳转到下一个界面,最后点击“Next”安装成
功。

5630e6e207164adfa4a3a95d52095979.png

b5182727f2284a498d64cc87e6551ac8.png

 1.4 安装 MinGW-w64 C/C++

 

        MATLAB 固然强大,其中的 Simulink 更是理工科仿真、建模研究中不可缺少的工具,一
般而言 MATLAB/Simulink 能满足多数使用要求,但是往往在研究中会使用 User-difinition
S-Function 或者调用 C,C++的库函数,这时候就需要 MATLAB 能进行 C,C++以及 Fortran
语言的编译。 但是 MATLAB 本身是没有包含上述语言的编译器,因此通常需要安装 MinGW,要求 Windows 系统为 64 位。
        第一步:单击工具栏上的“附加功能”图标,在弹出的下拉菜单中选择“获取附加功能”
选项,如图所示。

d32f69faea3040bd952cf8dde981d635.png

        第二步:单击“获取附加功能”选项,在弹出的下拉菜单中单击“安装”按钮,如图所示。

35bf0f6e0b474eccb3a50585d4700340.png

        第三步:在弹出的安装页面单击“我接受”按钮,然后在安装结束后,在 MATLAB 命令
窗口中键入:mex-setup。

44ba42d6dbcd4f53b7b9450647e51980.png

 第四步:点击如上所示安装 C++语言编译,会得到如下图的提示。

57a8d7c61b154d2b887cb1e1183f539a.png

  1.5 安装 Control SUIT

        安装 ControlSuite 是为了后期生成代码时,MATLAB 能够直接从中找到需要的库文件、头
文件和支持代码。进行解压,下图所示,打开“controlSUITE3.4.5setup”.
8cc2b35743a14d639b8dd5e2a2b04c9e.png

 选择和 CCS 同样的安装路径

af1455a2de1c4ad1968d27a9d55ca9b0.png

 2 simulink基础配置

2.1模型搭建步骤

还是拿LED点灯为例,一个简单的GPIO控制

 

模块说明:
(1)For Iterator Subsystem 模块是一个预先配置的 Subsystem 模块,可以作为一个起点,用于创建在仿真 时间步期间重复执行指定的迭代次数的子系统。
(2)Terminator,使用 Terminator 模块终止输出端口
未连接其他模块的模块。
(3)Constant 模块生成实数或复数常量值。
(4)Logical Operator 模块对其输入执行指定的逻辑运算。
(5)Unit Delay 模块按指定的采样期间保持和延迟输入。
(6)Lamp 模块显示指示输入信号值的颜色。
(7)Scope 模块显示信号波形。
 
        首 先 ,新 建 一 个 空 的 Simulink 模 型 ,命 名 为 28335_led 并保存,在模块浏览器中找到 Constant、Logi⁃ cal Operator、Unit Delay、For Iterator Subsystem、Out1 模 块。其中,Constant 模块中的参数可以设置为任意整 数,在这里取 50;将 Logical Operator 中的 AND 改为
XOR;双 击 进 入 For Iterator Subsystem 中 ,将 In1 和 Out1 删除,在加入一个 Terminator 并与 For Iterator 连 接,如图 1 所示。For Iterator 中的 Iteration limit 参数控 制 LED 闪烁的频率,这里取 3000000。

a6cf3b9df8eb413d8593bed7acf7ddbe.png

将所有模块连接,如图 2 所示。至此,LED 闪烁的控制模块搭建完成。

85a29a9b74b34ee4b55dd3969e44a3c8.png

 

 2.2 LED闪烁测试

        在搭建完闪烁模型之后,现在 Simulink 中仿真一 下模型是否可以正常工作。加入 Lamp 和 Scope 模块。双击进入 Lamp 模块,设置如图 3 所示。

0588c5e73f554ce6b0d924a43da632d0.png

 

连接各模块如图 4 所示。运行之后,Lamp 模块会进行红绿色的交替闪烁。

4bc21e00970d47eb8dd0d993fffc70ce.png

        验证完模型功能之后,将 Lamp 和 Scope 模块删 掉,加入 Digital Output(C2833x)模块,与 Logical Opera⁃ tor 模块连接,如图 5 所示。

146a8d8d19a048cdb96333815e182a04.png

 3 自动代码生成配置

        打 开 Model Configuration Parameters,选 择 Hard⁃ ware Implementation,在 Hardware board 中选择 TI Del⁃ fino F28335。(我的是28377,原理都一样) 

f8b46e126e8542019b3377c3e5288c8f.png

d97ff5155dcd4a9e9c3dab0948445df3.png

37c309eb9d2a4e0b8aa7a548353f88ed.png

 采样时间也设置一下,以led反转为0.5s吧

 c654800691914f63b920f90f9ad2e86c.png

后面要设置和芯片匹配的文件了

作者:文采大力立诚00
链接:https://wenku.baidu.com/view/6265af4dac1ffc4ffe4733687e21af45b307fed5.html

Groups⾥⾯是⼀些资源的声明,类似ccs⼯程中的寄存器地址分配的⽂件。⾸先Build options设置为Build、load、run。

88d8c2b34de24843852964821b0c0509.png


use custom linker command file勾选上,然后在Linker command file中可以点击Browse选择FLASH还是RAM。(这⾥说⼀下既然ccxml可以写修改,那么cmd⽂件应该也是能够修改的)
CCS hardware configuration file:选择默认路径的⽂件,但是需要⾃⼰去ccs中修改你的烧写器版本(100v1、100v2、100v3等等)。点击Browse复制下当前的地址,然后在CCS中File……Open File:然后输⼊相关路径点击转到,然后找到那个f28377/f28335.ccxml⽂件,修改对⽤的烧写器的版本(100v1、100v2、100v3等等)。然后保存,可以连接上板⼦进⾏测试⼀下(点击Test Connection),成功是弹出的对话框最后⾯会有success。

 

823330763cc84ec5b424cd7d80d371a8.png

 CCS内的配置,不熟悉可以看一下CCS的教程

348e95c1795c435c88e40da9739eee44.png

 1bc209621fdd4e2fa336369080cea791.png

 ed885bde9b9d400c9c5dd859d264af48.png

 设置好了之后再把文件选上

249681c336d74c16a69727bb8463b0fe.png

在Code Generation中选择执⾏优先、ROM优先、RAM优先。
 

27db7eab0f7946b69539faeec9458840.png

 Report中勾选如下:

453d4f8f032f45b995275f9771bf296d.png

 然后点击Apply以及OK完成设置直接点击进⾏模型构建。这是可能会报错,当前⽬录在Matlab根⽬录的错误,直接在命令窗⼝进⾏相应的修改就可(最好定位到本Simulink⽂件存储的位置)。

 

按照上述步骤设置完成之后,将开发板连接到主 机上,然后点击编译按钮,生成代码的报告如图 6
所示。 代码生成完成之后,再用 CCS 对其建立工程并编 译,如图所示。
 
334a3ae9fe8648f28baad231184a6590.png

 

d2760825af614a4c9312e1a4a5b1ff14.png
805ccd0ecc7249deb84be6481ef610a4.png
另外强调的一点是,所有目录下只能是英文字母,不然会报错,包括Simulink下的目录,
报错如下
b2c08e2281a84159baf66f016aab2d2d.png

 

 

然后开发板上的LED就bulinbulin的闪了

还有什么要补充的呢。。。

 

 

 

 

评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值