摘 要:TMS320F2812DSP是控制系统开发中很好的硬件设计平台,但传统的TIDSP代码开发方法周期较长,效率不高.为了在实际控制系统开发中缩短控制算法的设计周期,提高控制器的可靠性,并简化在调试过程中对控制算法的修改,设计与开发了基于DSP的快速原型控制系统.该系统包括基于TIF2812DSP的硬件控制器和基于Matlab/Simulink的软件开发环境.用户可以在Simulink环境中利用RTW功能直接从Simulink模型自动生成可执行代码并下载到目标板,直接运行程序,从而简化DSP系统开发过程,提高开发效率.通过闪烁灯实验实时控制实验,验证了系统的有效性.
关 键 词:TMS320F2812,TIDSP,Matlab/Simulink,自动代码生成
中图分类号:TN71034,TP311文献标识码:A文章编号:1004373X(2015)06014203
FastcodegenerationbasedonDSPmodel
DENGPan,HOUZhimin
(ChengduUniversityofInformationTechnology,Chengdu610225,China)
Abstract:TMS320F2812DSPiserygoodhardwaredesignplatformincontrolsystemdevelopment,butthetraditionalmethodofTIDSPcodedevelopmenthaslongcycle,anditsefficiencyisnothigh.Inordertoshortenthecontrolalgorithmdesigncycleinactualcontrolsystemdevelopment,improvethereliabilityofthecontrollerandsimplifythecontrolalgorithmmodificationsduringmissioning,acontrolsystemofrapidprototypebasedonDSPwasdesignedanddeveloped.ThesystemincludesTIF2812DSPbasedhardwarecontrollersandMatlab/Simulinkbasedsoftwaredevelopmentenvironment.UserscantakeadvantageofRTWfunctionsintheSimulinkenvironmenttoautomaticallygenerateexecutablecodedirectlyfromSimulinkmodelsanddownloadittothetargetboardforrunningtheprogramdirectly.Therefore,thedevelopmentprocessofDSPsystemwassimplified,andthedevelopmentefficiencywasimproved.Theeffectivenessofthesystemwasverifiedbyrealtimecontrolexperimentsofflashinglights.
Keywords:TMS320F2812,TIDSP,Matlab/Simulink,automaticcodegeneration
0引言
随着现代电力电子技术的迅猛发展,兼有高运算速度和强控制能力的DSP(DigitalSignalProcessor)在逆变器、电机等电力电子设备的控制领域得到了广泛应用[1].传统的通用DSP源代码开发一般可采用两个方法:一种是直接利用其提供的汇编指令编写源代码,然后经汇编器和链接器进行汇编链接后生成目标可执行代码,另一种方法是利用标准C++语言编写源代码,经C/C++编译器、汇编器和链接器进行编译链接,最后生成目标可执行代码[2].这两种代码开发方法都使得开发人员不得不花费大量的时间用于代码的编写,从而增大开发产品难度,延长产品开发周期,影响开发效率.可以直接由Matlab的Simulink模型生成DSP的可执行代码,即在集成的、统一的Matlab环境下可完成DSP开发的整个过程[3].
DSP芯片,也称数字信号处理器,是一种具有特殊结构的微处理器,主要由处理器、存储器和片内外设三部分组成,具有强大的数据处理能力和高运行速度,加上具有可编程性,所以被广泛应用于控制系统[4].但是随着DSP的不断更新换代,硬件结构和代码的编写也越来越复杂,利用DSP的不断更新换代,硬件结构和代码的编写也越来越复杂,利用DSP进行开发时要求对DSP硬件性能和各种端口有足够的了解,开发门槛高,这样很不利于系统的快速开发[5].用户可以在Matlab中调用这些图形化的功能模块及Simulink中的其他模块建立数字信号处理的模型,并可以对模型进行仿真验证,然后生成TMS320C2000的C语言代码及CCS的工程项目文件,在CCS中经修改、编译后就可以下载到DSP目标板中运行[6].1搭建闪烁灯功能模型
可以利用模型输出一个高/低交替变换的电平来实现闪烁.在Matlab菜单栏中选择FILENEWModel,建立一个新模型,命名为led_28207,并保存,在模块浏览器中找到SimulinkSourcesConstant模块、SimulinkLogicandBitOperationsLogicalOperator模块、SimulinkDiscreteUnitDelay模块,并添加到模型中,双击打开LogicalOperator模块,将Operator项选择为XOR,选中UnitDelay模块并按下“Ctrl+I”键翻转该模块,在模块浏览器中找到SimulinkSinksScope模块,然后按图所示连接这些模块,按下仿真按钮后,添加OnOffGauges模块,可以更清晰直观地看到仿真结果,现将模型做如下修改.在模块浏览器中找到SimulinkPortSubsystemsForIteratorSubsystem,添加到模型中,双击打开ForIteratorSubsystem模块,双击打开ForIterator模块的设置对话框,将Iterationvariabledatatype项设置为int32型,在Iterationlimit项中写入3000000,作为循环次数,用以延长每个状态的持续时间.在模块浏览器中找到SimulinkSinksTerminator,添加到子系统中,并与ForIterator连接,删除In1、Out1模块,可以看到,子系统的输入/输出端口已经删去,将其命名为delay,删去原模型中的Scope模块,在模块浏览器中找到GaugesBlocksetGlobalMajicActiveXLibraryOnOffGaugesOnOffReadout模块,并将输出数据类型设置为double,修改完毕后单击“仿真”按钮,可见OnOffReadout模块不停地闪烁(见图1).
有关论文范文主题研究: | 关于现代电子技术的论文范文资料 | 大学生适用: | 大学毕业论文、学术论文 |
---|---|---|---|
相关参考文献下载数量: | 19 | 写作解决问题: | 学术论文怎么写 |
毕业论文开题报告: | 标准论文格式、论文小结 | 职称论文适用: | 期刊发表、职称评中级 |
所属大学生专业类别: | 学术论文怎么写 | 论文题目推荐度: | 优质选题 |
<,E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\47T1.tif>,
图1功能模型仿真
2代码模型
验证模型的功能后,将进一步把功能模型转化为代码模型,以便后期的自动代码生成工作.打开led_28027模型,在模型库中找到EmbeddedIDELinkCommonTargetPreferences模块和TargetSupportPackageSupportedProcessorsTexasInstrumentsC2000C281xDigitalOutput模块并添加到模型中,删除Add、Scope、delay子系统和SIL模块,双击打开TargetPreferences模块,在IDE/ToolChain项中选择TexasInstrumentsCodeComposerStudio,在Board项中选择TIC281x,双击打开DigitalOutput模块,在GPIOGroup项中选择GPIOA~GPIOC,然后选中GPIOB复选框,如图2所示.<,E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\47T2.tif>,
图2配置DigitalOutput模块
3自动代码生成
按上述步骤设置完毕后将目标板连接到主机上,然后单击模型工具栏的编译按钮,生成代码的报告如图3所示.
<,E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\47T3.tif>,
图3代码生成报告
代码生成完毕后将自动启动CCS软件,建立工程并对代码进行编译,如图4所示.
4硬件测试
编译完成后会自动下载.out文件并执行,led灯不停闪烁(见图5),与功能模型中的仿真结果一致,这说明自动生成的代码完全实现了在模型中设计的各项功能.
5结语
用Matlab快速建立DSP模型及直接生成C语言程序的方法,简化了DSP软件的开发.本文所提出的快速控制原型系统由于其控制性能优越且成本低,在控制实验系统中有着非常广泛的应用前景.
<,E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\47T4.tif>,
图4编译信息
<,E:\王芳\现代电子技术201506\现代电子技术15年38卷第6期\Image\47T5.tif>,
图5硬件仿真结果
采用这种开发方法,开发人员不需写一行代码就可实现DSP系统的代码开发,极大地减轻了开发人员的工作负担,提高工作效率.学习使用该开发方法对广大DSP应用开发人员具有较大的实用意义.
转载于:www.tjhyzyxy.com/benkelunwen/0608181.html[5]卢小锦,曾岳南.基于Matlab/Simulink的TMS320F2812代码开发[J].广东工业大学学报,2009(6):7981.
[6]杜磊,薛重德,任志国.基于DSP的自动代码生成及应用[J].南京航空航天大学学报:自然科学版,2010(4):9396.
[7]赵秀玲,张利,武玉强.Matlab辅助DSP实现FIR数字滤波器[J].现代电子技术,2007,30(9):3840.
[8]王康佳,刘诗伟,孙番典.基于Matlab/DSPBuilder任意波形信号发生器的两种设计[J].现代电子技术,2011,34(3):179181.