1、matlab生成DSP可执行算法研究 作者: 日期:13 个人收集整理 勿做商业用途matlab生成DSP可执行算法的研究编写:徐鹏利用RTW-EC(RealTime Workshop Embedded Code)等工具为用户算法自动生成嵌入式代码,这是一种高效、实用的方法,他的核心思想是让工程师把主要精力集中于算法的研究上,把枯燥、困难的代码编写工作留给计算机自动完成,这样可以大大缩短产品的开发周期,降低市场风险。 目前matlab主要支持的处理器有:TI几乎全系列的DSP、X86架构等处理器,提供几乎全部的驱动,使得开发DSP不需要在CCS中编代码,非常方便做算法。下面我以2阶倒立摆的LQ
2、R(最优化控制)为例子,介绍一下matlab自动生成dsp全部代码、工程的过程: 第一步:安装CCS v3。3,usb100仿真器驱动,配置CCS等,见附件视频. 第二步:安装matlab,最好安装2008b及以上版本,这里我用的是matlab2010b。 第三步:建立simulink模型,我们知道,倒立摆有两个角度,分别为主动臂和从动臂,这两个角度用位置式编码器来采集,而主动臂由一个直流电机驱动,直流电机驱动器输入需要-10伏到+10伏,以控制电机的正转、反转.点击,打开simulink.新建一个model。在simulink库中找到,选中其中的,然后看右边的框,选择,添加到model中.配
3、置,双击此图标,出现配置如上,因为我们使用的是Tms320F2812这款DSP。这是配置模块生成代码的目标dsp的型号,以便生成相应的DSP代码,它本身无连接线,放在model中即可。下面我们使用DSP的QEP及通用IO来获取我们想要的通道及数据,QEP是DSP中可以计算电机转子转的脉冲数,只要将它取到,除以转一周的总脉冲数,再乘以,就转换成角度了.下面我们把SIMULINK中打包好的dsp外设模块拿进来,在simulink库中刚才位置找到,看到有c2812,双击可以看到很多2812的外设,这些都可以直接使用。我们需要用QEP和数字输出,选择QEP模块和Digit Output模块,添加到mo
4、del中。这些模块需要进行配置一下,具体可以看matlab的help文件,我只介绍所需模块如何配置,如QEP模块,EVA和EVB各有一个,我们使用了两路QEP,设置如下:这样配置两个QEP和12个IO输出,因为外接的DA是12位的,中间的算法不再赘述,本文主要介绍一种DSP做算法的比较省力的步骤,但首先必须对DSP相关东西熟悉。最后做出的整体模块如下所示,这时候我们就可以生成代码了。首先要打开ccs,确定ccs能够连上dsp。点击model中simulation的Configuration Parameters,配置Solver再配置Real-time workshop,看是否如图所示,一般配置好目标期间,这里也相应配置好了.现在可以生成代码了,点击model中的,开始生成C代码及DSP工程,这个过程完全是自动的。生成过程一定要保持dsp与ccs上位机连接,一旦断开或异常就会终止生成。可以重新进行生成过程。可以看到matlab主界面生成过程可以看到生成的project文件夹目录路径.这时候看到ccs里已经有一个工程文件了,编译一下没有错误.这样这个工程就可以用了,非常简便,不需要写任何DSP代码,只要编好算法即可,省去了大量麻烦.