当前位置:首页 > 单片机 > 单片机
[导读]摘要:基于模型设计是国外流行的一种先进的嵌入式系统开发方式,该方式主要利用开发工具Simulink以及Matlab的 RTW(Real—TimeWorkshop)工具箱的代码生成功能,采用IAR作为中间工具,将RTW生成的C语言代码转为为

摘要:基于模型设计是国外流行的一种先进的嵌入式系统开发方式,该方式主要利用开发工具Simulink以及Matlab的 RTW(Real—TimeWorkshop)工具箱的代码生成功能,采用IAR作为中间工具,将RTW生成的C语言代码转为为在单片机 MSP430F2252中可以运行的HEX文件,最后通过Protues软件来验证代码的正确性。该方法无需设计者精通各种编程语言,只需了解设计规范与实现原理,极大地降低了嵌入式系统开发难度,缩短了开发周期,并且能够保证代码的高效性、可靠性。

关键词:基于模型的设计;快速代码生成;Real—Time Workshop;MSP430F2252;Protues

随着软硬件技术的不断发展,系统的开发周期显得越来越重要,但开发的时间与系统安全性之间又有一定的冲突。假如依旧采用传统的编写代码的方式,显然企业将会失去很多的机会。文中介绍一种基于模型的快速代码生成的方法,可以满足这种高性能和快节奏研发的需求。MATLAB集成了各类应用领域的专用库函数和模块,用于数值计算、系统建模的软件包。

Simulink工具可以对分系统或单个仿真模型进行设计。RTW(Real—Time Workshop)是MATLAB提供的自动化代码生成工具,将Simulink模型框图转化为标准的C语言代码。学会利用 MATLAB/Simulink创建仿真模型,利用MATLABRTW工具,通过这种方式在IAR环境中对Simulink模型进行集成和调用,从而辅助在科研及工程实践中准确、通用快速的建立分布交互仿真体系结构下的嵌入式系统仿真模型。该方式主要利用Matlab的RTW(Real- TimeWorkshop)工具箱的代码生成功能。本文介绍一种基于MATLAB/RTW实现实时仿真与嵌入式系统开发的方法,方法涉及以下的开发环境:

Microsoft Windows 7;

MATLAB VersionR2010b;

IAR430V5.3;

Proteus7.8。

1 嵌入式开发技术的基本流程

该方式主要利用Matlab的RTW(Real—TimeWorkshop)工具箱的代码生成功能。采用IAR作为中间工具,将RTW生成的C语言代码转为为在单片机中可以运行的HEX文件,最后通过Proteus软件来验证代码的正确性,基本流程如图1所示。

2 建立了Simulink模型并生成了RTW代码

到此模型代码生成的前期工作已经准备完毕,保存好模型,取名为Key_test。下一步就是打开Real—Time Work—shop选项中的Build按钮,之后Matlab将自动生成模型代码。在Matlab的命令窗口中显示如下内容:

### Connecting to IAR Embedded Workhench…

### Writing source file key_led_430_data.e

### Writing source file key_led_430_main.c

到此,模型的代码也成功生成。

3 RTW生成代码

3.1 RTW生成代码的原理

RTW可以直接从Simulink模型生成代码并且自动建立可以在不同环境下运行的程序,这些环境包括实时系统和单机仿真。RTW为用户系统设计到简单实现提供了简易的接口,它的代码生成器完全结构化,可开放可扩展。此外,RTW还为用户提供了TLC(目标语言编译器)以扩充自身的功能,使得生成的实时代码能够在不同的环境下运行,这主要是通过生成目标板硬件的硬件驱动程序实现的。

RTW提供了两种实现方式:一般模式和外部模式。一般模式下,RTW生成模型的实时源程序和可执行程序,直接在目标机的实时操作系统上运行,但是不提供实时监控和实时参数修改的功能。

RTW允许自定义构造,它既可以在自定义环境下工作,也可以在已经存在的环境下工作。构造(Build)过程有make_rtw文件控制。首先,make_rtw文件编译simulink的模块框图,生成exmodel.rtw文件,然后make_rtw启动TLC产生代码,接着,make_rtw文件调用模块make文件grt_default.tmf生成exmodel.mk文件。最后,如果目标主机与Hos宏定义相匹配,就调用make文件从源程序生成可执行程序。

此外,make是一个功能函数,它可以编辑和连接生成码,并且生成可执行程序。RTW调用make建立实时可执行程序,make文件由模板make文件生成,生成的make文件的名字是exmodel.mk,通过修改make文件可以对构造过程进行定制。RTW将exmodel. mk传递给make功能函数,make直接负责编译模型源程序和链接。

MATLAB本身会为用户提供一些适用于各类目标硬件的目标文件,但是在实际应用的过程中往往会受到用户需求的限制,因此,建议选择grt_tlc作为系统目标文件,但是grt_tlc生成的代码是运行于DOS下的,缺少一些与目标硬件相匹配的中断向量表和存储器配置等文件。

3.2 RTW生成代码

RTW生成的代码都源于模板,下面这个例子中所选择的模板是War.tlc。下面介绍该算法所涉及的函数与数据结构。

用RTW自动生成的代码包含如下函数:

1)Main,包含在war_main.c文件中,是算法的主要函数,由它调用其他的函数。

2)rt_OneStep,包含于war_main.c文件中,是算法的最主要结构,由Main调用,同时也调用Matlab_Test_step函数用以完成了模型的具体操作要求。

3)Matlab_Test_initialize,包含在Matlab. Test.c文件中,由Main函数来调用,用来初始化模型。

4)Matlab_Test_step,包含在Matlab_Test.c中,由rt_OneStep调用,在该函数中描述具体模型的输入与输出的关系。

用RTW自动生成的代码包含如下数据的结构:

①Matlab_Test_Y,用以存储输出信号的量值。

②用Matlab_Test_U,用以存储输入信号的量值。

4 采用IAR将RTW生成的C语言转为HEX文件

打开IAR,建立一个空工程,并加入生成的代码,生成IAR工程,单击右键,在菜单中选择Options,在对话框中的General Options目录下的Target子页面中选择芯片类型MS P430F2252,在Linnker目录下的Output子页面中,将输出文件名定义为Key_board.hex,并在Output项中选择 intel-extended,再单击工具栏按钮,编译工程(图3),窗口下部的信息显示编译成功。

5 实验仿真结果

打开Proteus软件,新建一个工程文件,选择MSP430F2252,正确地连接基本电路;连接好的电路图如图4所示。

点击Debug菜单后,选择Use Remote Debug Monitor的选项。然后,双击MSP430F2252器件,之后弹出来器件编辑对话框,最后在Program File选项中选择IAR所生成的HEX文件,进行仿真实验。

6 结论

实验结果证明,基于Matlab环境下生成的代码的可靠性很高。通过Proteus的仿真结果可以看出来,由Matlab生成的代码同样具有正确性。节省了很多繁重的工作和时间,具有很大的实际指导意义。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: 驱动电源

在工业自动化蓬勃发展的当下,工业电机作为核心动力设备,其驱动电源的性能直接关系到整个系统的稳定性和可靠性。其中,反电动势抑制与过流保护是驱动电源设计中至关重要的两个环节,集成化方案的设计成为提升电机驱动性能的关键。

关键字: 工业电机 驱动电源

LED 驱动电源作为 LED 照明系统的 “心脏”,其稳定性直接决定了整个照明设备的使用寿命。然而,在实际应用中,LED 驱动电源易损坏的问题却十分常见,不仅增加了维护成本,还影响了用户体验。要解决这一问题,需从设计、生...

关键字: 驱动电源 照明系统 散热

根据LED驱动电源的公式,电感内电流波动大小和电感值成反比,输出纹波和输出电容值成反比。所以加大电感值和输出电容值可以减小纹波。

关键字: LED 设计 驱动电源

电动汽车(EV)作为新能源汽车的重要代表,正逐渐成为全球汽车产业的重要发展方向。电动汽车的核心技术之一是电机驱动控制系统,而绝缘栅双极型晶体管(IGBT)作为电机驱动系统中的关键元件,其性能直接影响到电动汽车的动力性能和...

关键字: 电动汽车 新能源 驱动电源

在现代城市建设中,街道及停车场照明作为基础设施的重要组成部分,其质量和效率直接关系到城市的公共安全、居民生活质量和能源利用效率。随着科技的进步,高亮度白光发光二极管(LED)因其独特的优势逐渐取代传统光源,成为大功率区域...

关键字: 发光二极管 驱动电源 LED

LED通用照明设计工程师会遇到许多挑战,如功率密度、功率因数校正(PFC)、空间受限和可靠性等。

关键字: LED 驱动电源 功率因数校正

在LED照明技术日益普及的今天,LED驱动电源的电磁干扰(EMI)问题成为了一个不可忽视的挑战。电磁干扰不仅会影响LED灯具的正常工作,还可能对周围电子设备造成不利影响,甚至引发系统故障。因此,采取有效的硬件措施来解决L...

关键字: LED照明技术 电磁干扰 驱动电源

开关电源具有效率高的特性,而且开关电源的变压器体积比串联稳压型电源的要小得多,电源电路比较整洁,整机重量也有所下降,所以,现在的LED驱动电源

关键字: LED 驱动电源 开关电源

LED驱动电源是把电源供应转换为特定的电压电流以驱动LED发光的电压转换器,通常情况下:LED驱动电源的输入包括高压工频交流(即市电)、低压直流、高压直流、低压高频交流(如电子变压器的输出)等。

关键字: LED 隧道灯 驱动电源
关闭