基于LabVIEW的ARM Cortex-M4嵌入式软件开发研究※

2015-07-02 08:42刘渊黄若张天宏田彦云
单片机与嵌入式系统应用 2015年10期
关键词:嵌入式软件图形化台架

刘渊,黄若,张天宏,田彦云

(南京航空航天大学 江苏省航空动力系统重点实验室,南京210016)

引 言

近年来,图形化的编程方式已成为嵌入式系统开发领域的焦点之一。图形化编程平台对底层语言进行了高度集成,大大降低了嵌入式编程的复杂度,使软件开发更为简单高效[1]。但是,一些图形化嵌入式软件开发环境(如SCADE、Ardublock等),存在软件授权使用费用过高或开发对象单一等问题,不能满足普遍的嵌入式软件开发需求。

Lab VIEW是美国NI(National Instruments)公司开发的一种软件开发平台,图形化的软件开发方式是其最大特点。在嵌入式系统开发方面,NI公司与ARM公司联合开发了一种针对ARM微控制器的图形化嵌入式开发组件[2],其在Lab VIEW的图形化开发环境与ARM微处理器之间搭建了一座桥梁,通过它来对ARM对象进行软件开发,可以缩短开发时间、提高编程效率。但是该组件同样存在开发对象较为单一的问题,目前其仅支持ARM Cortex-M3 的 LM3S8962[3]、ARM7 的 MCB2300 以 及ARM9的MCB2400三款芯片,硬件平台选择有限,而国内外鲜有针对此问题的研究报道。

本文基于Lab VIEW的嵌入式软件开发环境,研究其开发机理与流程,探究代码复用技术,并针对Cortex-M4内核的ARM处理器对Lab VIEW嵌入式组件进行拓展,解决了Lab VIEW嵌入式软件开发模块在开发对象上的限制问题。在此基础上,利用Lab VIEW开发基于Cortex-M4内核的TM4C123芯片的微型涡喷发动机电子控制器,并通过台架试验对其进行验证。

1 基于LabVIEW的嵌入式软件开发机理分析

Lab VIEW嵌入式软件开发的本质是代码复用,而在Lab VIEW环境下实现对ARM的嵌入式开发,主要依托于Keil MDK工具链。Lab VIEW嵌入式软件开发机理如图1所示,基于Lab VIEW编写的图形化嵌入式软件程序通过Lab VIEW C Generator生成对应的C代码,并按照一定规则添加到RTX操作系统的框架中,此时Lab VIEW通过调用Keil MDK的RVCT编译工具将程序代码编译并下载到ARM芯片中。当这一流程完成之后,便可在Lab VIEW环境中对ARM芯片中的程序进行调试。

图1 LabVIEW嵌入式软件开发机理图

Lab VIEW代码自动生成流程图如图2所示。首先通过Lab VIEW编写嵌入式程序,程序中主要包含两个部分:一个是外设驱动部分;另一个是常规的Lab VIEW程序部分,一般用于完成算法、参数配置等功能。这两部分组成的嵌入式程序通过C Generator模块,按照一定的规则,生成对应的C代码,与嵌入式程序中的模块对应。所生成的C代码会被载入到已经准备好的RTX嵌入式操作系统的模板中,形成RTX操作系统工程,其中工程项目的设置环境在操作系统移植时确定。完成上述工作后,获得可使用的目标嵌入式程序工程。

图2 LabVIEW代码自动生成流程图

2 LabVIEW环境下的嵌入式开发平台建立

本文针对Cortex-M4内核的TM4C123芯片,建立基于Lab VIEW的图形化嵌入式软件开发平台。为了图形化嵌入式开发平台的搭建,结合Lab VIEW嵌入式开发机理的研究,从开发环境、操作系统、复用模版以及驱动代码这几个方面搭建Lab VIEW环境下的嵌入式开发平台。

2.1 整合开发工具链

Lab VIEW的嵌入式软件开发模块采用ARM公司的Keil MDK嵌入式软件工具链。要实现Lab VIEW的嵌入式软件开发,首先需要解决的就是开发工具链问题。由于现有的Lab VIEW嵌入式软件开发模块只能调用旧版本Keil MDK(V4.01),不具备开发Cortex-M4的能力,需要对开发环境进行整合。首先需要将新版本Keil MDK中针对Cortex-M4的DLL文件进行整合,其中包括lmidkagdi.dll、SARMCM3.dll、DCM.dll 等,然 后 添 加TM4C123芯片对应的芯片信息与相关文件。整合后的开发环境可以被Lab VIEW嵌入式软件开发模块正确调用,用于TM4C123芯片的相关开发。

2.2 移植操作系统

Lab VIEW是利用RTX操作系统实现嵌入式软件开发的。由于旧版本的Keil MDK中的RTX并不支持ARM Cortex-M4系列处理器,需要将新版本中的RTX操作系统相关文件整合到旧版本中。完成相关移植工作后,针对TM4C123的Lab VIEW嵌入式软件开发可以在此RTX操作系统上展开。

2.3 创建复用模板

Lab VIEW嵌入式软件开发复用模板是Lab VIEW嵌入式开发的基础,它给嵌入式程序提供了框架,所有的程序代码都会根据一定的规范嵌套于模板中。在创建复用模板时,需要完成两部分内容:首先要创建模板的原型,其中包括RTX操作系统文件和Lab VIEW生成代码所涉及的相关文件,其次需要对模板进行适用TM4C123的相关修改。针对实际情况,可以以Lab VIEW自带的LM3S8962芯片代码复用模板为基础,对TargetConfig.ini等文件进行相应的修改,以创建适用于TM4C123的代码复用模板。

2.4 编写驱动代码

代码复用模板创建完毕之后,还需要对芯片各个接口的驱动代码进行编写。驱动代码可以通过Lab VIEW自带的Elemental I/O Device Wizard进行编写,这种方式在实际编程中,接口资源调用较为方便,但是存在很多弊端,如所能编写的接口种类较少、编写驱动过程复杂。本文提出一种脚本式的驱动代码编写办法,以嵌入式C脚本为核心,免去了Lab VIEW中繁琐的设置过程,并且可以实现各种接口驱动代码需求。以PWM驱动为例,驱动程序示意图略——编者注。在嵌入式C脚本中主要为PWM驱动代码,其中 GPIO_PIN、PWM_OUT_BIT、PWM_GEN、GPIO_PWM、PWM_OUT与PWM_BASE作为输入变量,供外部的条件循环根据端口进行不同的赋值。通过这样函数接口设置,驱动程序中的参数可以根据所选的端口自行配置,不需要每次都进行修改,显著提高了开发效率。

3 微型涡喷发动机电子控制器软件设计与验证

3.1 电子控制器软件设计

为了验证上述平台的可行性,利用Lab VIEW开发了基于TM4C123芯片的微型涡喷发动机控制器软件,其功能需求主要包括信号采集、串口通信、转速控制等[3]。

以电子控制器信号采集与输出程序为例说明程序的开发方法。微型涡喷发动机信号采集与输出程序的Lab-VIEW程序框图如图3所示。程序主要功能:将实际温度、油门杆位置等参数通过串口发送至监控计算机,采集当前发动机转速,并根据控制需求改变输出PWM的占空比来控制气阀、油阀、油泵等执行机构。其中串口驱动、ECAP驱动、PWM驱动功能均基于脚本式驱动开发方法,在封装后可以在程序中直接进行调用。

图3 信号采集与输出程序框图

控制器软件编写完毕后,点击LabVIEW中的运行按钮,LabVIEW将自动生成相关程序代码并编译,最后将目标代码下载到嵌入式芯片中。LabVIEW为嵌入式调试提供了一个交互性极强的人机界面,可以将想要调试的功能设置成相应的输入控件,在设计初期,即使没有上位机程序,也可以通过LabVIEW实现在线调试,极大地提高了开发效率。

3.2 台架试验验证

在微型涡喷发动机电子控制器软件设计完成后,需通过相关试验对其功能进行验证。本文通过台架试车试验检验所开发的电子控制器的实际控制效果。台架试验中,主要进行了开环控制与闭环控制试验。台架试验转速开环控制过程曲线图如图4所示,转速及温度值响应正常。

图4 台架试验转速开环控制过程曲线图

图5为台架试验转速闭环控制曲线图,可以看到,实际转速响应速度快,并且没有明显超调,达到了微型涡喷发动机的控制要求。台架试车试验结果表明,通过Lab-VIEW嵌入式软件开发平台设计的基于ARM Cortex-M4内核的电子控制器,能够实现微型涡喷发动机开环转速和闭环转速控制功能,有效性得到了实际工程验证。

图5 台架试验转速闭环控制曲线图

结 语

本文以搭建基于Lab VIEW的ARM Cortex-M4嵌入式软件开发平台为目标,对Lab VIEW图形化嵌入式软件开发技术展开研究。首先对Lab VIEW嵌入式软件开发机理进行了研究,并分别从开发工具链、操作系统、复用模板以及驱动代码几个方面简要阐述了相关移植工作,然后在此基础上为微型涡喷发动机设计了以TM4C123为目标处理器的控制器软硬件,并通过台架试验验证其代码的有效性。综上所述,在Lab VIEW嵌入式软件开发平台上进行嵌入式软件开发,不仅能够实现传统代码开发方式的功能,而且缩短了开发周期,提供了直观便利的人机交互平台,从而显著提高嵌入式软件的开发效率,具有较高的工程应用价值。

编者注:本文为期刊缩略版,全文见本刊网站www.mesnet.com.cn。

[1]Jha H R,Priyadarshi A,Kumari A.Electronic Module of Hydraulic Damper Test Bench using ARM Microcontroller Interfacing in Lab VIEW[J].International Journal of Scientific&Engineering Research,2013,4(1),22-29.

[2]宫厚良,陈曾汉.基于RTX和Lab VIEW的多任务实时测控系统[J].计算机应用,2007,27(6):1551-1552,1555.

[3]孙环宇,苏三买.微型涡轮发动机电动供油流量控制系统设计[J].测控技术,2008,27(8):53-55,58.

[4]高瑾,黄洋,宋石阳,等.车用电机硬件在环实时仿真与测试平台[J].电工技术学报,2014(11):99-106.

猜你喜欢
嵌入式软件图形化台架
某电动车铝转向节台架失效分析及优化
发动机台架排放测试影响因素
可变进气歧管(VIS)切换点的台架标定方法研究
基于人工智能的模块化嵌入式软件开发研究
LKJ自动化测试系统图形化技术研究
全景相机遥控器嵌入式软件V1.0 相关操作分析
锥形齿PDC钻头台架试验研究
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
图形化地区电网无功优化软件开发与应用