劉淵,黃若,張?zhí)旌?,田彥?/p>
(南京航空航天大學(xué) 江蘇省航空動力系統(tǒng)重點實驗室,南京210016)
近年來,圖形化的編程方式已成為嵌入式系統(tǒng)開發(fā)領(lǐng)域的焦點之一。圖形化編程平臺對底層語言進行了高度集成,大大降低了嵌入式編程的復(fù)雜度,使軟件開發(fā)更為簡單高效[1]。但是,一些圖形化嵌入式軟件開發(fā)環(huán)境(如SCADE、Ardublock等),存在軟件授權(quán)使用費用過高或開發(fā)對象單一等問題,不能滿足普遍的嵌入式軟件開發(fā)需求。
Lab VIEW是美國NI(National Instruments)公司開發(fā)的一種軟件開發(fā)平臺,圖形化的軟件開發(fā)方式是其最大特點。在嵌入式系統(tǒng)開發(fā)方面,NI公司與ARM公司聯(lián)合開發(fā)了一種針對ARM微控制器的圖形化嵌入式開發(fā)組件[2],其在Lab VIEW的圖形化開發(fā)環(huán)境與ARM微處理器之間搭建了一座橋梁,通過它來對ARM對象進行軟件開發(fā),可以縮短開發(fā)時間、提高編程效率。但是該組件同樣存在開發(fā)對象較為單一的問題,目前其僅支持ARM Cortex-M3 的 LM3S8962[3]、ARM7 的 MCB2300 以 及ARM9的MCB2400三款芯片,硬件平臺選擇有限,而國內(nèi)外鮮有針對此問題的研究報道。
本文基于Lab VIEW的嵌入式軟件開發(fā)環(huán)境,研究其開發(fā)機理與流程,探究代碼復(fù)用技術(shù),并針對Cortex-M4內(nèi)核的ARM處理器對Lab VIEW嵌入式組件進行拓展,解決了Lab VIEW嵌入式軟件開發(fā)模塊在開發(fā)對象上的限制問題。在此基礎(chǔ)上,利用Lab VIEW開發(fā)基于Cortex-M4內(nèi)核的TM4C123芯片的微型渦噴發(fā)動機電子控制器,并通過臺架試驗對其進行驗證。
Lab VIEW嵌入式軟件開發(fā)的本質(zhì)是代碼復(fù)用,而在Lab VIEW環(huán)境下實現(xiàn)對ARM的嵌入式開發(fā),主要依托于Keil MDK工具鏈。Lab VIEW嵌入式軟件開發(fā)機理如圖1所示,基于Lab VIEW編寫的圖形化嵌入式軟件程序通過Lab VIEW C Generator生成對應(yīng)的C代碼,并按照一定規(guī)則添加到RTX操作系統(tǒng)的框架中,此時Lab VIEW通過調(diào)用Keil MDK的RVCT編譯工具將程序代碼編譯并下載到ARM芯片中。當這一流程完成之后,便可在Lab VIEW環(huán)境中對ARM芯片中的程序進行調(diào)試。
圖1 LabVIEW嵌入式軟件開發(fā)機理圖
Lab VIEW代碼自動生成流程圖如圖2所示。首先通過Lab VIEW編寫嵌入式程序,程序中主要包含兩個部分:一個是外設(shè)驅(qū)動部分;另一個是常規(guī)的Lab VIEW程序部分,一般用于完成算法、參數(shù)配置等功能。這兩部分組成的嵌入式程序通過C Generator模塊,按照一定的規(guī)則,生成對應(yīng)的C代碼,與嵌入式程序中的模塊對應(yīng)。所生成的C代碼會被載入到已經(jīng)準備好的RTX嵌入式操作系統(tǒng)的模板中,形成RTX操作系統(tǒng)工程,其中工程項目的設(shè)置環(huán)境在操作系統(tǒng)移植時確定。完成上述工作后,獲得可使用的目標嵌入式程序工程。
圖2 LabVIEW代碼自動生成流程圖
本文針對Cortex-M4內(nèi)核的TM4C123芯片,建立基于Lab VIEW的圖形化嵌入式軟件開發(fā)平臺。為了圖形化嵌入式開發(fā)平臺的搭建,結(jié)合Lab VIEW嵌入式開發(fā)機理的研究,從開發(fā)環(huán)境、操作系統(tǒng)、復(fù)用模版以及驅(qū)動代碼這幾個方面搭建Lab VIEW環(huán)境下的嵌入式開發(fā)平臺。
Lab VIEW的嵌入式軟件開發(fā)模塊采用ARM公司的Keil MDK嵌入式軟件工具鏈。要實現(xiàn)Lab VIEW的嵌入式軟件開發(fā),首先需要解決的就是開發(fā)工具鏈問題。由于現(xiàn)有的Lab VIEW嵌入式軟件開發(fā)模塊只能調(diào)用舊版本Keil MDK(V4.01),不具備開發(fā)Cortex-M4的能力,需要對開發(fā)環(huán)境進行整合。首先需要將新版本Keil MDK中針對Cortex-M4的DLL文件進行整合,其中包括lmidkagdi.dll、SARMCM3.dll、DCM.dll 等,然 后 添 加TM4C123芯片對應(yīng)的芯片信息與相關(guān)文件。整合后的開發(fā)環(huán)境可以被Lab VIEW嵌入式軟件開發(fā)模塊正確調(diào)用,用于TM4C123芯片的相關(guān)開發(fā)。
Lab VIEW是利用RTX操作系統(tǒng)實現(xiàn)嵌入式軟件開發(fā)的。由于舊版本的Keil MDK中的RTX并不支持ARM Cortex-M4系列處理器,需要將新版本中的RTX操作系統(tǒng)相關(guān)文件整合到舊版本中。完成相關(guān)移植工作后,針對TM4C123的Lab VIEW嵌入式軟件開發(fā)可以在此RTX操作系統(tǒng)上展開。
Lab VIEW嵌入式軟件開發(fā)復(fù)用模板是Lab VIEW嵌入式開發(fā)的基礎(chǔ),它給嵌入式程序提供了框架,所有的程序代碼都會根據(jù)一定的規(guī)范嵌套于模板中。在創(chuàng)建復(fù)用模板時,需要完成兩部分內(nèi)容:首先要創(chuàng)建模板的原型,其中包括RTX操作系統(tǒng)文件和Lab VIEW生成代碼所涉及的相關(guān)文件,其次需要對模板進行適用TM4C123的相關(guān)修改。針對實際情況,可以以Lab VIEW自帶的LM3S8962芯片代碼復(fù)用模板為基礎(chǔ),對TargetConfig.ini等文件進行相應(yīng)的修改,以創(chuàng)建適用于TM4C123的代碼復(fù)用模板。
代碼復(fù)用模板創(chuàng)建完畢之后,還需要對芯片各個接口的驅(qū)動代碼進行編寫。驅(qū)動代碼可以通過Lab VIEW自帶的Elemental I/O Device Wizard進行編寫,這種方式在實際編程中,接口資源調(diào)用較為方便,但是存在很多弊端,如所能編寫的接口種類較少、編寫驅(qū)動過程復(fù)雜。本文提出一種腳本式的驅(qū)動代碼編寫辦法,以嵌入式C腳本為核心,免去了Lab VIEW中繁瑣的設(shè)置過程,并且可以實現(xiàn)各種接口驅(qū)動代碼需求。以PWM驅(qū)動為例,驅(qū)動程序示意圖略——編者注。在嵌入式C腳本中主要為PWM驅(qū)動代碼,其中 GPIO_PIN、PWM_OUT_BIT、PWM_GEN、GPIO_PWM、PWM_OUT與PWM_BASE作為輸入變量,供外部的條件循環(huán)根據(jù)端口進行不同的賦值。通過這樣函數(shù)接口設(shè)置,驅(qū)動程序中的參數(shù)可以根據(jù)所選的端口自行配置,不需要每次都進行修改,顯著提高了開發(fā)效率。
為了驗證上述平臺的可行性,利用Lab VIEW開發(fā)了基于TM4C123芯片的微型渦噴發(fā)動機控制器軟件,其功能需求主要包括信號采集、串口通信、轉(zhuǎn)速控制等[3]。
以電子控制器信號采集與輸出程序為例說明程序的開發(fā)方法。微型渦噴發(fā)動機信號采集與輸出程序的Lab-VIEW程序框圖如圖3所示。程序主要功能:將實際溫度、油門桿位置等參數(shù)通過串口發(fā)送至監(jiān)控計算機,采集當前發(fā)動機轉(zhuǎn)速,并根據(jù)控制需求改變輸出PWM的占空比來控制氣閥、油閥、油泵等執(zhí)行機構(gòu)。其中串口驅(qū)動、ECAP驅(qū)動、PWM驅(qū)動功能均基于腳本式驅(qū)動開發(fā)方法,在封裝后可以在程序中直接進行調(diào)用。
圖3 信號采集與輸出程序框圖
控制器軟件編寫完畢后,點擊LabVIEW中的運行按鈕,LabVIEW將自動生成相關(guān)程序代碼并編譯,最后將目標代碼下載到嵌入式芯片中。LabVIEW為嵌入式調(diào)試提供了一個交互性極強的人機界面,可以將想要調(diào)試的功能設(shè)置成相應(yīng)的輸入控件,在設(shè)計初期,即使沒有上位機程序,也可以通過LabVIEW實現(xiàn)在線調(diào)試,極大地提高了開發(fā)效率。
在微型渦噴發(fā)動機電子控制器軟件設(shè)計完成后,需通過相關(guān)試驗對其功能進行驗證。本文通過臺架試車試驗檢驗所開發(fā)的電子控制器的實際控制效果。臺架試驗中,主要進行了開環(huán)控制與閉環(huán)控制試驗。臺架試驗轉(zhuǎn)速開環(huán)控制過程曲線圖如圖4所示,轉(zhuǎn)速及溫度值響應(yīng)正常。
圖4 臺架試驗轉(zhuǎn)速開環(huán)控制過程曲線圖
圖5為臺架試驗轉(zhuǎn)速閉環(huán)控制曲線圖,可以看到,實際轉(zhuǎn)速響應(yīng)速度快,并且沒有明顯超調(diào),達到了微型渦噴發(fā)動機的控制要求。臺架試車試驗結(jié)果表明,通過Lab-VIEW嵌入式軟件開發(fā)平臺設(shè)計的基于ARM Cortex-M4內(nèi)核的電子控制器,能夠?qū)崿F(xiàn)微型渦噴發(fā)動機開環(huán)轉(zhuǎn)速和閉環(huán)轉(zhuǎn)速控制功能,有效性得到了實際工程驗證。
圖5 臺架試驗轉(zhuǎn)速閉環(huán)控制曲線圖
本文以搭建基于Lab VIEW的ARM Cortex-M4嵌入式軟件開發(fā)平臺為目標,對Lab VIEW圖形化嵌入式軟件開發(fā)技術(shù)展開研究。首先對Lab VIEW嵌入式軟件開發(fā)機理進行了研究,并分別從開發(fā)工具鏈、操作系統(tǒng)、復(fù)用模板以及驅(qū)動代碼幾個方面簡要闡述了相關(guān)移植工作,然后在此基礎(chǔ)上為微型渦噴發(fā)動機設(shè)計了以TM4C123為目標處理器的控制器軟硬件,并通過臺架試驗驗證其代碼的有效性。綜上所述,在Lab VIEW嵌入式軟件開發(fā)平臺上進行嵌入式軟件開發(fā),不僅能夠?qū)崿F(xiàn)傳統(tǒng)代碼開發(fā)方式的功能,而且縮短了開發(fā)周期,提供了直觀便利的人機交互平臺,從而顯著提高嵌入式軟件的開發(fā)效率,具有較高的工程應(yīng)用價值。
編者注:本文為期刊縮略版,全文見本刊網(wǎng)站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的多任務(wù)實時測控系統(tǒng)[J].計算機應(yīng)用,2007,27(6):1551-1552,1555.
[3]孫環(huán)宇,蘇三買.微型渦輪發(fā)動機電動供油流量控制系統(tǒng)設(shè)計[J].測控技術(shù),2008,27(8):53-55,58.
[4]高瑾,黃洋,宋石陽,等.車用電機硬件在環(huán)實時仿真與測試平臺[J].電工技術(shù)學(xué)報,2014(11):99-106.