基于多开发工具的嵌入式软件开发方法

2011-08-15 00:48辽宁金融职业学院梁立哲
河南科技 2011年8期
关键词:开发方法编译器代码

辽宁金融职业学院 梁立哲 刘 颖

辽宁公安司法管理干部学院 周祥国

基于多开发工具的嵌入式软件开发方法

辽宁金融职业学院 梁立哲 刘 颖

辽宁公安司法管理干部学院 周祥国

自从数字信号处理器(Digital Signal Processor)问世以来,由于其具有先进的体系结构和强大的信号处理能力而得到蓬勃发展。DSP具有的优势允许它可面向更加复杂的应用。对于这类系统,采用嵌入式实时操作系统极大地改善了系统的设计与运行,不仅提高了开发效率,而且提高了程序运行的稳定性和扩展性。如今,DSP的硬件处理能力已经非常强大,开发出高效的DSP程序便成了DSP应用的关键技术。目前主要采用汇编语言开发DSP程序,虽然此种方式代码效率高、程序执行速度快,但是汇编语言复杂繁琐,而且不同公司的芯片指令不同,所以采用汇编语言开发DSP程序的周期较长,软件维护及升级困难,且可移植性差。

针对上述问题,本文,笔者采用在MATLAB/Simulink中搭建系统模型并分析其预期的结果,然后通过MATLAB提供的Real Time Workshop(RTW)自动生成面向TI编译器(CCS IDE)的可执行代码,最后在DMC Developer Pro平台上对实际系统进行硬件在线调试。

一、开发工具简介

DSP软件开发平台包括Mathworks公司的MATLAB7.0、TI公司的 Code Composer Studio(CCS)IDE、瑞士Technosoft公司的DMC Developer Pro、第3方模块库文件DMCode-MS(IM)Library和Embedded Target for TI C2000 DSP Library。

1. MATLAB。MATLAB是由Mathworks公司开发的功能强大的科学计算软件。Simulink是MATLAB最重要的组件之一,它提供了一个动态系统建模、仿真和综合分析的集成环境。在该环境中,无需大量书写程序,只需要通过简单直观的鼠标操作,就可构造出复杂的系统。

2. Code Composer Studio(CCS)。Tl公司的 Code Composer Studio(CCS)IDE是一个集成的开发环境,为MATLAB的DSP代码生成提供编译器。MATLAB作为一种有效的信号处理工具,已经渗透到DSP的设计当中,通过CCS在目标DSP上运行,实现了MATLAB与DSP开发的统一集成。

3. DMCode-MS(IM)Library和 Embedded Target for TIC2000 DSP Library。DMCode-MS(IM)Library和 Embedded Target for TI C2000 DSP Library为DSP软件建模提供了强大的支持。该库提供了实际系统建模所需要的大多数模块,包括各种DSP功能模块及相关I/O驱动、坐标转换模块、PI和PID控制器模块、A/D转换模块、功率模块、电机模型模块和传感器模块等模块。

4. DMC Developer Pro。瑞士Technosoft公司DMC Developer Pro的DSP运行开发调试环境,支持调用CCS开发环境中的编译器、汇编器及链接器。DMC Developer Pro特有的数据存储和显示模块方便DSP软件开发。结合TI公司的CCS开发工具,该软件系统提供了一个理想的、高性能的调试环境。

二、DSP代码的快速开发方法

这套DSP软件开发平台极大地方便了开发者。不仅大大缩短了开发时间,同时使开发者可以更多地关注系统的性能和应用价值,使其把工作重点从编程转移到对系统的设计上来,缩短了从实验室设计阶段转化为工业应用阶段的时间。

1. 组建开发平台。DSP软件开发平台有Mathworks公司MATLAB7.0、Tl公司的Code Composer Studio(CCS)IDE、DMCode-MS(IM)MATLAB Library V1.0和瑞士Technosoft公司的 DMC Developer Pro。其中,DMCode-MS(IM)MATLAB Library以库文件的方式加入MATLAB的Simulink环境下,Tl公司的 Code Composer Studio(CCS)IDE 为DSP程序的编译器,以MATLAB Link for CCS Development Tools(CCSLink)接口的方式与MATLAB连接,瑞士Technosoft公司的 DMC Developer Pro作为硬件在线调试平台和仿真硬件环境,实现DSP应用。

2. Simulink模型。在Simulink环境下,利用DSP Blockset、Embedded Target for TI C2000 DSP、DMCode-MS(IM)MATLAB Library和Simulink等库中的模块构建算法模型, 上述模块库中提供的各种电机、传感器、功率转换器、数字控制器、A/D和D/A转换器等模块,可以方便地构建数字控制系统的仿真模型。在构建好仿真模型之后,我们可以按照预期的目标选择控制的方式,调节控制器的参数,以获得满意的控制效果。

3. 自动代码产生。在Simulink中设计调试好之后,系统即具有了我们所期望的控制效果。为了在DSP控制器上进行实际测试和应用,需要将控制系统的各模块用C/C++代码表示。为此,我们利用MATLAB系统中的实时工具箱RTW。在控制系统模型中选择某一模块,利用RTW中 Build Subsystem功能,即把该模块生成为相应的C/C++代码,以供运动控制系统调用。

4. 硬件在环调试。在MATLAB/Simulink中生成的C/C++代码被保存在一个实时中断应用程序中,可以直接在 TMS320F2812DSP控制器中调用。应用DMC Developer Pro IDE平台,可以将控制代码下载到实际的数字控制板中进行在线调试运行,可以方便地得到各种观测变量的测量值曲线。

三、结论

本文,笔者提供了一种DSP软件的快速开发方法。首先利用MATLAB/Simulink中设计控制模块并分析其预期的结果,然后通过MATLAB实时工具箱RTW自动生成目标控制系统可执行的代码,最后在DMC Developer Pro平台上对实际系统进行调试。该方法不仅极大地缩短了开发时间,同时使得开发者更多地关注系统的性能和应用价值,使其把工作重点从编程转移到对系统的设计上来,从而缩短了实验室设计阶段转化为工业应用阶段的时间。

猜你喜欢
开发方法编译器代码
高中英语校本教材的开发方法
基于相异编译器的安全计算机平台交叉编译环境设计
创世代码
创世代码
创世代码
创世代码
基于FANUC PICTURE的虚拟轴坐标显示界面开发方法研究
初中信息技术中的生活因素开发
基于模型开发方法(MBD)的ABS控制器开发
通用NC代码编译器的设计与实现