31544|23

1282

帖子

10

TA的资源

五彩晶圆(初级)

楼主
 

【聊聊DSP】利用MATLAB调试及直接生成DSP目标代码 [复制链接]

 
利用MATLAB调试及直接生成DSP目标代码

    传统的DSP设计开发流程分为两个部分:开发设计和产品实现。在开发设计部分完成算法开发和方案设计,产品的实现用来验证开发设计的正确性,通常是在不同的部门相互独立地完成。这样的开发流程存在许多问题,如相互之间的协作,系统范围内的算法测试,系统设计的错误不能被及时发现等。
利用Matlab和Simulink系统级的设计方法和快速原型的自动化工具可以解决这些问题。
     系统级设计方法的核心是将算法设计和系统级设计仿真在统一的开发环境中进行,从而有效地将开发流程的将两个部分结合在一起。进行系统级设计需要一个统一的开发环境,且在该开发环境中可以对系统结构、算法进行描述,还能够对系统不同层次,不同组件和不同数据类型进行建模;同时要有良好的移植性能。Simulink提供了这样一个很好的开发环境,它是基于图块的系统级仿真环境。分级系统的描述方式,提供了真正的自顶向下的设计方法,并且通过图块的方式实现移植。
利用RTW-EC(real-time workshop embedded coder)等工具为用户算法自动生成嵌入式代码,这是一种高效、实用的方法,目前国内外各大公司在进行新产品开发时已广泛采用。他的核心思想是让工程师把主要精力集中于算法的研究上,把枯燥、困难的代码编写工作留给计算机去自动完成,这样可以大大缩短产品的开发周期,降低市场风险。其中DSP的开发流程为下图:



   

利用RTW-EC生成DSP代码,可以利用Embedded IDE Link可将matlab ccs进行无缝链接,用户可以利用MATLAB脚本和simulink模型在TI系列DSP上调试、验证自动生成的嵌入式代码。利用RTW-EC等工具,从模型生成实时C代码,通过For Use with TI’s CCS自动调用CCS开发工具来编译链接生成的C代码,并自动下载到TI的目标板上执行生成的代码。流程如图:




利用RTW-EC生成DSP代码的步骤:
1、             用户建立matlab/simulink/stateflow 模型model.mdl。RTW读取模型文件并对其进行编译,形成描述模型的model.rtw文件,该文件以ASCLL码的形式进行存储。
2、             TLC目标语言编译器读取model.rtw文件中的信息,将模型转化成源代码。TLC文件有两种形式,系统TLC文件和模块TLC文件,前者控制整个模型的代码生成,不同的目标使用不同的系统目标文件。比如一般实时目标使用grt.tlc,嵌入式实时目标使用ert.tlc,而后者仅针对某一模块,决定某一模块对应生成什么样的代码。
3、             生成指定目标代码。RTW代码生成器需要makefile模板,该文件指定合适的C或C++编译器及编译过程中的编译器选项,通过代码生成器将makefile模板文件生成目标makefile文件(model.mk),指导程序编译和链接模型中生成的源代码,主程序等。
4、             链接开发目标程序所需的环境。建立运行时的接口支持库,将模型生成的代码编译成在目标系统上直接运行的可执行文件。
通过TLC生成s-function代码,可以将用户手写代码嵌入到生成代码中。通过TLC生成的代码是高度优化的,注释完整;并且能够从任何包含线性的、非线性的、连续的、离散的或混合模块的模型生成代码,除了调用M文件编写的不符合embedded matlab子集的函数模块和s-function模块外,其他的模块都能自动转化成代码/。
       而利用RTW-EC代码生成工具,从matlab/simulink/stateflow用户模型中产生的代码,是针对嵌入式器件生成的实时代码,其代码长度短,执行效率高等特点。
下面就详细的解释下TI DSP实时代码生成:

下面的例子主要功能是应用ad转换模块采集的信号来控制输出的pwm波形:
原理图形如下:




上述模块可以在simulink下的target for c2000的c2000 target preferences和c281x chip support 里找到。其中F2812 eZdsp可以配置使用的dsp芯片以及相关的存储器映射和外围设备。其双击打开为:



ADC模块的初试化配置为:





PWM模块的配置为:








最新回复

好东西  详情 回复 发表于 2017-8-8 19:30

赞赏

1

查看全部赞赏

点赞 关注(10)
 

回复
举报

1282

帖子

10

TA的资源

五彩晶圆(初级)

推荐
 
本例仅仅对采集进来的信号做了放大的作用,故只用了一个放大器。
在此基础上,打开窗口菜单的simlation里的configuration parameter,对其里的各个参数进行配置如图:
首先对solver进行配置:



其次是硬件配置(hardware implemenlation):




这里最重要是对real-time workshop的配置:
里面的配置如图:








在以上配置好之后,确定并按ctrl+b,计算机将会在ccs环境下自动生成c语言代码。如图:




以上是基本的操作流程:
整个过程是matlab里的embeddedtarget for the ti tms320c2000 dsp platform模块,简称为ETTIc2000.此模块利用real-time workshop通过ccslink模块直接将simulink模型生成c语言代码。
通过学习发现我们可以单独的将几个模块放在一起,中间不做任何连接,也可以运行生成代码,这样在模型用simulink很难搭建情况下,我们可以省去编程里复杂的初始化,应用此系统进行初始化,之后再进行算法编程。
在学习过程中的问题:
(1)       在对configuration parameter里的solver设置时,为何要用固定步长和离散的,起初以为是采样的原因,之后发现没有ADC转换时也为相同设置,其他均会出错。
(2)       在学习中其说可以看到输出波形,但是在此模块中如何看?示波器应当接在那块?个人认为是在ccs里看吗?但其说在simulink里就可以看到,如何理解。
(3)       目前还有就是S函数的问题,S函数是否也可以直接转换为c代码,需要验证。
(4)       最后就是个人的一些尝试,在此基础上,通过搭建一些简单的实验电路,结果不是很好,原因最大是dsp还不能熟练掌握。
参考文献:
1.       利用Matlab和Simulink对DSP进行系统级的设计方法  来自网络
2.       基于模型的设计及其嵌入式实现,刘杰编著 北京航天航空出版社
3.       在simulink下开发DSP     来自网络
4.       matlab help   来自matlab软件
6.       DSP程序开发:MATLAB调试及直接目标代码生成 李真芳 西安电子科技大学出版社
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

板凳
 
麻烦问一下 这种设备多少钱啊

点评

其实设备没多少钱,就买个仿真器,400-500之间的就可以了,设备就是DSP2000, 5000,6000,看你想学哪种。2000用于运动控制中,比如现在的私服控制,数字电源等,5000就是通信方面的,6000是图像处理的了。 关键  详情 回复 发表于 2012-8-26 19:21
 
 
 

回复

3404

帖子

6

TA的资源

裸片初长成(初级)

4
 
好复杂哦。好强大哦

点评

呵呵,其实我也不是很会,也是班门弄斧,咱们坛子里应该有高手,希望给解答下。共同学习!  详情 回复 发表于 2012-8-26 19:48
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

5
 

回复 板凳 sjl2001 的帖子

其实设备没多少钱,就买个仿真器,400-500之间的就可以了,设备就是DSP2000, 5000,6000,看你想学哪种。2000用于运动控制中,比如现在的私服控制,数字电源等,5000就是通信方面的,6000是图像处理的了。

关键的是matlab的学习,里面的东西还是很多的,硬件知识需要掌握的到是不是很多。、

算法仿真方面matlab还是比较有优势的,像每年的数学建模,大部分都是用他仿真实现的。

当然matalb软件用到2007以上的,ccs3.3以上的,这些都有破解的。

我感觉这方面要是真弄明白了,年薪应该还是很高的。

点评

我以前也听说过这种东西 但是价格不菲的 一般都是总控制用的 尤其是给车厂这种地方烧写程序,成百上千的车,通过matlab自动生成直接就下进去了 很方便。你这么一说 我开始感兴趣了 :)  详情 回复 发表于 2012-8-26 23:55
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

6
 

回复 4楼 jishuaihu 的帖子

呵呵,其实我也不是很会,也是班门弄斧,咱们坛子里应该有高手,希望给解答下。共同学习!
 
 
 

回复

19

帖子

0

TA的资源

一粒金砂(中级)

7
 
看上去是挺先进的,不过要求有点高哦,首先DSP要非常熟,然后MATLAB要非常熟,还要会算法。。。。

点评

其实用matlab是核心,硬件知识到不是很重要。所以大家如果还是学生的话,注重理论的学习,特别是实践性课程,一定要明白理论与实际怎么结合的!!?  详情 回复 发表于 2012-8-27 08:55
 
 
 

回复

1908

帖子

7

TA的资源

五彩晶圆(高级)

8
 

回复 5楼 fxw451 的帖子

我以前也听说过这种东西  但是价格不菲的  一般都是总控制用的 尤其是给车厂这种地方烧写程序,成百上千的车,通过matlab自动生成直接就下进去了  很方便。你这么一说 我开始感兴趣了

点评

这个应用还是很强的,一般大企业都是用这个的。特别是技术含量高,对系统设计要求严格的。  详情 回复 发表于 2012-8-27 08:53
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

9
 

回复 8楼 sjl2001 的帖子

这个应用还是很强的,一般大企业都是用这个的。特别是技术含量高,对系统设计要求严格的。
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

10
 

回复 7楼 jiefeng 的帖子

其实用matlab是核心,硬件知识到不是很重要。所以大家如果还是学生的话,注重理论的学习,特别是实践性课程,一定要明白理论与实际怎么结合的!!?
 
 
 

回复

7172

帖子

195

TA的资源

五彩晶圆(高级)

11
 
这个很厉害 好像DSP都要和MATLAB联吧

点评

近期出现的新的芯片,没有多少关注,不好意思,是不是430也可以??  详情 回复 发表于 2012-8-27 09:50
 
 
 

回复

1282

帖子

10

TA的资源

五彩晶圆(初级)

12
 

回复 11楼 常见泽1 的帖子

近期出现的新的芯片,没有多少关注,不好意思,是不是430也可以??
 
 
 

回复

2453

帖子

19

TA的资源

五彩晶圆(中级)

13
 
mark。mark
 
 
 

回复

5

帖子

0

TA的资源

一粒金砂(初级)

14
 

正在学习

正在学习相关的知识,但是我的是MATLAB2012B,好像有改变
 
 
 

回复

63

帖子

0

TA的资源

一粒金砂(中级)

15
 
这个好像真的很难呀,
 
 
 

回复

51

帖子

0

TA的资源

一粒金砂(初级)

16
 
非常感谢楼主啊...
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

17
 
请问你的ccs用的哪个版本,win7行不
 
 
 

回复

47

帖子

0

TA的资源

一粒金砂(中级)

18
 
有一本书讲得不错,大家可以全看看《基于模型的设计DSP篇》
 
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

19
 
Mark,有用!
 
 
 

回复

7

帖子

0

TA的资源

一粒金砂(初级)

20
 
MARK一下,在做自动代码,好多配置啊~
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表