梁棟?rùn)?quán)+魏紅+韋必忠
摘要:嵌入式技術(shù)的發(fā)展不但開(kāi)闊了嵌入式系統(tǒng)的應(yīng)用平臺(tái),更推動(dòng)了現(xiàn)代社會(huì)、智能社會(huì)的進(jìn)步。隨著當(dāng)下許多高校將嵌入式系統(tǒng)應(yīng)用于教學(xué)中,傳統(tǒng)的實(shí)驗(yàn)方法已滿(mǎn)足不了教學(xué)要求,順應(yīng)時(shí)代科技潮流的發(fā)展,將嵌入式系統(tǒng)實(shí)驗(yàn)平臺(tái)與作為編程語(yǔ)言的LabVIEW結(jié)合起來(lái),開(kāi)拓實(shí)驗(yàn)領(lǐng)域的寬度和深度,降低教學(xué)的難度系數(shù)。論文簡(jiǎn)單介紹嵌入式系統(tǒng)和軟件開(kāi)發(fā)系統(tǒng)LabVIEW的特點(diǎn),詳細(xì)地分析了在LabVIEW的基礎(chǔ)上嵌入式實(shí)驗(yàn)平臺(tái)的設(shè)開(kāi)發(fā)機(jī)理,簡(jiǎn)要地闡述了整合工具鏈、操作系統(tǒng)的移植、復(fù)用樣板的創(chuàng)建及驅(qū)動(dòng)代碼的編寫(xiě)等方面。
關(guān)鍵詞:嵌入式系統(tǒng);LabVIEW;開(kāi)發(fā);實(shí)驗(yàn)平臺(tái)
中圖分類(lèi)號(hào):TP311 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2016)10-0253-02
1概述
互聯(lián)網(wǎng)的迅猛發(fā)展,計(jì)算機(jī)信息技術(shù)的不斷進(jìn)步,不僅給人們的日常學(xué)習(xí)生活提供了方便,也對(duì)社會(huì)生產(chǎn)和科學(xué)技術(shù)的發(fā)展帶來(lái)了深遠(yuǎn)的影響。由于國(guó)內(nèi)外在科技上的競(jìng)爭(zhēng)隨著時(shí)代的進(jìn)步也變得激烈起來(lái),加上我國(guó)在教育上教師資源、實(shí)驗(yàn)設(shè)備等資源的匱乏,導(dǎo)致我國(guó)的科技教育事業(yè)得不到飛快的發(fā)展。發(fā)展科技教育,就應(yīng)該將計(jì)算機(jī)信息技術(shù)和虛擬儀器技術(shù)有效地結(jié)合并應(yīng)用于實(shí)驗(yàn)教學(xué)中,嵌入式系統(tǒng)實(shí)驗(yàn)平臺(tái)能夠有效地解決教學(xué)實(shí)驗(yàn)設(shè)備落后、實(shí)驗(yàn)場(chǎng)地不足等問(wèn)題,也避免了實(shí)驗(yàn)儀器的投入資金的浪費(fèi),教師和學(xué)生能夠隨時(shí)隨地不受任何外在因素的限制開(kāi)展實(shí)驗(yàn),從而增強(qiáng)了實(shí)驗(yàn)教學(xué)的靈活性和適應(yīng)性。
2嵌入式系統(tǒng)與LabVIEW的有關(guān)介紹
2.1嵌入式系統(tǒng)
一般而言,嵌入式系統(tǒng)是以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積、功耗等嚴(yán)格要求的專(zhuān)用計(jì)算機(jī)系統(tǒng)。嵌入式系統(tǒng)具有體積小、運(yùn)行速度快、耗能低等特點(diǎn),系統(tǒng)所涉及的學(xué)科范圍比較廣泛,包含深厚的理論知識(shí),集中了當(dāng)前時(shí)代先進(jìn)的技術(shù)。系統(tǒng)由硬件和軟件這兩個(gè)部分組成,嵌入式系統(tǒng)的硬件包含了最主要的嵌入式處理器與由存儲(chǔ)器、接口及人機(jī)交互構(gòu)成的外圍設(shè)備,系統(tǒng)的軟件包含嵌入式操作系統(tǒng)與應(yīng)用程序。無(wú)論是硬件,抑或是軟件,兩者都是根據(jù)特定情況下的應(yīng)用系統(tǒng)來(lái)設(shè)計(jì)的,在產(chǎn)品生產(chǎn)與產(chǎn)品性能等方面都具備非常強(qiáng)的競(jìng)爭(zhēng)能力。
2.2 LabVIEW的概念
LabVIEW(Laboratory Virtual instrument Engineering Workbench)是一種用圖標(biāo)代替文本行創(chuàng)建應(yīng)用程序的圖形化編程語(yǔ)言,也是一種圖形化編程語(yǔ)言的開(kāi)發(fā)環(huán)境,它被廣泛地應(yīng)用于研究學(xué)術(shù)界、科學(xué)實(shí)驗(yàn)室和工業(yè)界中,它被視為一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)采集和儀器控制軟件。LabVIEW不僅具有滿(mǎn)足GPIB、VXI、RS-232和 RS-485 協(xié)議的硬件及數(shù)據(jù)采集卡通訊的全部功能,還內(nèi)置了方便運(yùn)用軟件標(biāo)準(zhǔn)的庫(kù)函數(shù)。它不僅具有強(qiáng)大的功能和靈活性高的特點(diǎn),還可以建立自身的虛擬儀器和創(chuàng)建圖形化界面,為編程和使用的過(guò)程增添了樂(lè)趣。
2.3 系統(tǒng)開(kāi)發(fā)環(huán)境
如圖1所示,LabVIEW 的編程環(huán)境由三個(gè)主要部分——前面板、程序框圖和圖標(biāo)連線板組成。前面板是VI的用戶(hù)界面,用于建立前面板的輸入控件是VI的交互式輸入,同樣用于創(chuàng)建前面板的顯示控件是VI的輸出接線端。程序框圖是圖形化源代碼。前面板對(duì)象在程序框圖中表現(xiàn)為接線端。每個(gè)VI的前面板窗口和程序框圖窗口的右上角都會(huì)顯示一個(gè)圖標(biāo)。圖標(biāo)連線板是一組與VI中的輸入控件和顯示控件相對(duì)應(yīng)的接線端,它與文本編程語(yǔ)言中的函數(shù)調(diào)用參數(shù)列表相類(lèi)似。
2.4 LabVIEW在嵌入式系統(tǒng)中的優(yōu)點(diǎn)
第一,具有直觀性較強(qiáng)、親和力較高的用戶(hù)界面。在由美國(guó)國(guó)家儀器公司提出的虛擬儀器設(shè)計(jì)的基礎(chǔ)上,LabVIEW編程軟件在考慮前面板的用戶(hù)界面設(shè)計(jì)時(shí),使用的控件外觀設(shè)計(jì)都偏向于實(shí)際中的儀器設(shè)備,使界面形象變得非常直觀,用戶(hù)在使用起來(lái)也有了親切感。第二,程序設(shè)計(jì)具有較強(qiáng)的靈活性和較高的效率。與工業(yè)的組態(tài)軟件相比,LabVIEW能夠徹底進(jìn)入源程序?qū)Υa進(jìn)行改寫(xiě),靈活地設(shè)計(jì)系統(tǒng)的功能特點(diǎn),同時(shí),由于LabVIEW的編程模式圖形化,使得編寫(xiě)效率得到提高。第三,硬件平臺(tái)在各個(gè)領(lǐng)域具有一定的廣度和深度。美國(guó)國(guó)家儀器公司推出了設(shè)計(jì)各個(gè)領(lǐng)域的硬件平臺(tái),這些硬件平臺(tái)在任何程度上都能與LabVIEW有共同的連結(jié)點(diǎn),能夠在各個(gè)領(lǐng)域滿(mǎn)足不同的設(shè)計(jì)需求。
3分析基于LabVIEW下嵌入式系統(tǒng)的開(kāi)發(fā)機(jī)理
本質(zhì)上,嵌入式系統(tǒng)軟件開(kāi)發(fā)在LabVIEW的基礎(chǔ)上就是代碼復(fù)用,使用接口和同類(lèi)型的組件通訊,即對(duì)于所有完成相同功能的組件,應(yīng)該抽象出一個(gè)接口,它們都實(shí)現(xiàn)該接口。在LabVIEW開(kāi)發(fā)環(huán)境下,ARM的嵌入式開(kāi)發(fā)主要依靠Keil MDK工具鏈。如圖2所示,基于LabVIEW下嵌入式系統(tǒng)軟件的開(kāi)發(fā)機(jī)理是在LabVIEW環(huán)境下,圖形化的嵌入式系統(tǒng)軟件程序利用LabVIEW C Generator生成相應(yīng)的C代碼,并遵循一定的編寫(xiě)程序代碼規(guī)則加到RTX的整體框架中,與此同時(shí),LabVIEW利用Keil MDK的RVCT編譯工具來(lái)編譯程序代碼,同時(shí)把編譯好的代碼下載到芯片中。當(dāng)這一過(guò)程結(jié)束后,就開(kāi)始在LabVIEW環(huán)境中調(diào)試芯片中的程序。
如圖3所示,在自動(dòng)生成LabVIEW代碼的過(guò)程中,利用LabVIEW編寫(xiě)嵌入式軟件程序,程序主要由一般用于算法的完成、參數(shù)的配置等功能的外設(shè)驅(qū)動(dòng)和常規(guī)LabVIEW程序這兩個(gè)部分組成,由這兩部分組成的嵌入式程序利用LabVIEW C Generator模塊,通過(guò)一定的程序規(guī)則生成相應(yīng)的C代碼,對(duì)應(yīng)嵌入式程序中的模塊。把所生成的C代碼載入到早已準(zhǔn)備充分的RTX操作系統(tǒng)的模板中,形成RTX操作系統(tǒng)工程,其中在移動(dòng)操作系統(tǒng)時(shí)就要確定項(xiàng)目的設(shè)置環(huán)境。這個(gè)過(guò)程結(jié)束后,便可得到可使用的目標(biāo)嵌入式程序。
4創(chuàng)建LabVIEW 環(huán)境下的嵌入式系統(tǒng)實(shí)驗(yàn)平臺(tái)
4.1對(duì)開(kāi)發(fā)工具鏈進(jìn)行整合
基于LabVIEW下的嵌入式程序開(kāi)發(fā)部分采用的是ARM公司的Keil MDK嵌入式程序工具鏈。要完成LabVIEW嵌入式程序開(kāi)發(fā)的首要是解決開(kāi)發(fā)工具鏈的問(wèn)題。由于現(xiàn)有的條件不足,LabVIEW 的嵌入式程序開(kāi)發(fā)部分只能使用版本過(guò)于陳舊的Keil MDK嵌入式程序工具鏈,而且也沒(méi)有開(kāi)發(fā)ARM Cortex-M4的能力,因此這就需要整合開(kāi)發(fā)環(huán)境。第一,把新版本的首先需要將新版本Keil MDK中對(duì)應(yīng)的Cortex-M4的DLL文件整理集合起來(lái),其次載入與TM4C123芯片相對(duì)應(yīng)的芯片信息和有關(guān)文件。LabVIEW環(huán)境下的嵌入式程序開(kāi)發(fā)部分可以在整合后的開(kāi)發(fā)環(huán)境中被準(zhǔn)確地調(diào)用,用于芯片有關(guān)的開(kāi)發(fā)應(yīng)用上。
4.2操作系統(tǒng)的移植
LabVIEW是通過(guò)RTX操作系統(tǒng)來(lái)完成嵌入式程序開(kāi)發(fā)的。Keil MDK中的RTX由于版本過(guò)舊不能夠支持ARM Cortex-M4系列處理器,這就要求將新版本中的RTX操作系統(tǒng)的有關(guān)文件整理集合起來(lái)載入到舊的版本中。在這一相關(guān)的移植過(guò)程結(jié)束后,在這移植后的RTX操作系統(tǒng)可以開(kāi)展LabVIEW嵌入式程序的開(kāi)發(fā)。
4.3復(fù)用樣板的創(chuàng)建
作為L(zhǎng)abVIEW嵌入式開(kāi)發(fā)的基礎(chǔ)——LabVIEW嵌入式程序開(kāi)發(fā)復(fù)用樣板,它給嵌入式程序擬定了一個(gè)整體框架,全部的程序代碼都會(huì)遵循一定的編寫(xiě)規(guī)范套入樣板中。為了實(shí)現(xiàn)復(fù)用樣板的創(chuàng)建,第一需要建立樣板的原型,里面包括了LabVIEW生成程序代碼所包含的有關(guān)文件和RTX操作系統(tǒng)文件;第二,要對(duì)樣板進(jìn)行相應(yīng)的修改,使其能夠適用于TM4C123。根據(jù)實(shí)際情況來(lái)考慮,可以將LabVIEW自身帶有的芯片代碼作為復(fù)用樣板,并在此基礎(chǔ)上,對(duì)相關(guān)的文件進(jìn)行修改,從而創(chuàng)建出適用于TM4C123的復(fù)用樣板。
4.4驅(qū)動(dòng)代碼的編寫(xiě)
在創(chuàng)建代碼復(fù)用模板這一過(guò)程結(jié)束后,接下來(lái)還需要編寫(xiě)芯的片各個(gè)接口的驅(qū)動(dòng)代碼。利用LabVIEW自身帶有的Elemental I/O Device Wizard編寫(xiě)接口的驅(qū)動(dòng)代碼,在實(shí)際操作中,這種編程方式在調(diào)用接口資源的時(shí)候是挺方便的,但同時(shí)也有許多不足之處,例如編寫(xiě)驅(qū)動(dòng)代碼的過(guò)程比較復(fù)雜,存在一定的困難,而且所能編寫(xiě)的接口代碼種類(lèi)比較少。論文針對(duì)這一問(wèn)題,提出批處理式的驅(qū)動(dòng)代碼的編寫(xiě)方法,將嵌入式C腳本作為編寫(xiě)軸心,避免在LabVIEW中設(shè)置過(guò)程的繁瑣,并能滿(mǎn)足各個(gè)種類(lèi)的接口驅(qū)動(dòng)代碼的需求。
5結(jié)束語(yǔ)
近年來(lái),圖形化的編程語(yǔ)言逐漸引起嵌入式系統(tǒng)開(kāi)發(fā)有關(guān)領(lǐng)域的關(guān)注。由于圖形化的系統(tǒng)實(shí)驗(yàn)平臺(tái)對(duì)編程語(yǔ)言進(jìn)行了極大的整合,降低了嵌入式編程的難度,使得軟件開(kāi)發(fā)具備較高的靈活性和效率。在LabVIEW基礎(chǔ)上創(chuàng)建嵌入式系統(tǒng)實(shí)驗(yàn)平臺(tái),開(kāi)發(fā)嵌入式軟件,不但可以解決傳統(tǒng)代碼在開(kāi)發(fā)時(shí)存在的問(wèn)題,還能大大縮減了開(kāi)發(fā)所需要的時(shí)間,給人機(jī)交互平臺(tái)提供給了便利,大大增強(qiáng)了嵌入式軟件的開(kāi)發(fā)能力,具有較為深遠(yuǎn)的工程意義。
參考文獻(xiàn):
[1]韓萍,康健.基于LabVIEW的信號(hào)處理技術(shù)應(yīng)用演示及實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)[J].實(shí)驗(yàn)技術(shù)與管理,2010,27(7):99-103.
[2] 楊發(fā)田,葛紅宇,張建華,熊超.基于STM32 處理器的嵌入式實(shí)驗(yàn)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].機(jī)械設(shè)計(jì)與制造工程,2013,3:10-13.
[3] 趙潔,張璐,李桃.論虛擬儀器LabVIEW的發(fā)展及應(yīng)用[J].山西電子技術(shù),2011(4):87-89.