使用圖形化的開發(fā)環(huán)境――LabView開發(fā)嵌入式系統(tǒng)
傳統(tǒng)設(shè)計(jì)模式所應(yīng)對(duì)的挑戰(zhàn)
本文引用地址:http://butianyuan.cn/article/149071.htm嵌入式系統(tǒng)正在滲入現(xiàn)代社會(huì)的各個(gè)方面,廣泛地應(yīng)用于航空航天、通信設(shè)備、消費(fèi)電子、工業(yè)控制、汽車、船舶等領(lǐng)域,據(jù)統(tǒng)計(jì),在美國(guó)平均每個(gè)中產(chǎn)階級(jí)家庭要使用40~50個(gè)嵌入式系統(tǒng)。巨大的市場(chǎng)需求推動(dòng)了嵌入式系統(tǒng)向更高的技術(shù)水平發(fā)展。設(shè)計(jì)師們一方面采用性能更強(qiáng)大的嵌入式處理器如32位、64位RISC芯片取代傳統(tǒng)的8位、16位微處理器;另一方面嵌入式系統(tǒng)也由單處理器單操作系統(tǒng)的傳統(tǒng)結(jié)構(gòu)向混合型Multi-core系統(tǒng)發(fā)展,通過采用多個(gè)處理器和OS提高系統(tǒng)并行度來提高系統(tǒng)運(yùn)行效能,并且設(shè)計(jì)師們往往同時(shí)采用MPU、DSP和FPGA等多種可編程器件來增強(qiáng)處理能力,滿足應(yīng)用功能的升級(jí)。
嵌入式系統(tǒng)復(fù)雜性的不斷增加給設(shè)計(jì)師們帶來了很大的挑戰(zhàn),代碼長(zhǎng)度呈指數(shù)級(jí)增加,根據(jù)十年前的估計(jì),嵌入式系統(tǒng)的平均代碼量為10萬行,到2001年實(shí)際已經(jīng)超過了100萬,而現(xiàn)在估計(jì)為500萬。第三方獨(dú)立市場(chǎng)預(yù)測(cè)機(jī)構(gòu)EMF在對(duì)900多名嵌入式系統(tǒng)開發(fā)人員進(jìn)行調(diào)研后指出,超過50%的嵌入式設(shè)計(jì)比預(yù)期時(shí)間晚上市,而平均延遲高達(dá)4個(gè)月;在已發(fā)布的產(chǎn)品中,有近30%的設(shè)計(jì)未達(dá)到預(yù)期的功能和指標(biāo)。由此可見,隨著嵌入式系統(tǒng)復(fù)雜性的不斷增加,軟件工程的重要性毋庸置疑,而大部分的嵌入式系統(tǒng)開發(fā)人員都缺乏這方面的專業(yè)訓(xùn)練。與此同時(shí),隨著嵌入式系統(tǒng)的廣泛應(yīng)用,越來越多領(lǐng)域的專家比如機(jī)器人設(shè)計(jì)師、控制工程師、測(cè)試工程師需要使用嵌入式技術(shù)來構(gòu)建他們的系統(tǒng),他們既缺乏嵌入式系統(tǒng)的專業(yè)知識(shí),也不一定經(jīng)過軟件工程的專業(yè)訓(xùn)練。因此,無論是嵌入式系統(tǒng)本身的發(fā)展,還是開發(fā)人員的專業(yè)限制,都需要一種新的設(shè)計(jì)模式和解決問題的途徑來應(yīng)對(duì)目前的挑戰(zhàn)。
嵌入式系統(tǒng)開發(fā)工具的發(fā)展趨勢(shì)
隨著嵌入式系統(tǒng)的快速發(fā)展和復(fù)雜性的不斷增加,基于文本的編程方式所面臨的挑戰(zhàn)愈發(fā)嚴(yán)峻,這種編程模式在將來不可能徹底解決問題。加州大學(xué)伯克利分校嵌入式研究專家EdwardLee博士指出,現(xiàn)有的嵌入式系統(tǒng)的開發(fā)手段如基于文本編程和面向?qū)ο蟮墓ぞ叨茧y以用來構(gòu)建嵌入式實(shí)時(shí)系統(tǒng),因?yàn)槊嫦驅(qū)ο蠛茈y直觀地表達(dá)時(shí)間和平行性(parallelism),而時(shí)間和平行性或并行(concurrency)在現(xiàn)在的嵌入式系統(tǒng)中是必不可少的。面向角色(actor-oriented)的圖形化方法是更適合嵌入式軟件設(shè)計(jì)的工具。
應(yīng)對(duì)嵌入式系統(tǒng)所面臨的挑戰(zhàn),工程師們已經(jīng)有了一些解決的方向,比如采用實(shí)時(shí)多任務(wù)編程技術(shù)和交叉開發(fā)工具技術(shù)來控制功能復(fù)雜性、簡(jiǎn)化應(yīng)用程序設(shè)計(jì)、保障軟件質(zhì)量和縮短開發(fā)周期。但是現(xiàn)有的嵌入式系統(tǒng)開發(fā)工具非常多,全世界嵌入式處理器的品種總量已經(jīng)超過1000種,流行體系結(jié)構(gòu)有30多個(gè)系列,在其上運(yùn)行的操作系統(tǒng)環(huán)境也非常多樣化,包括VxWorks、QNX、Linux、Nuclears、WinCE等等。不僅各種操作系統(tǒng)有各自的開發(fā)工具,在同一系統(tǒng)下開發(fā)的不同階段也有不同的開發(fā)工具。如在用戶的目標(biāo)板開發(fā)初期,需要硬件仿真器來調(diào)試硬件系統(tǒng)和基本的驅(qū)動(dòng)程序,在調(diào)試應(yīng)用程序階段可以使用交互式的開發(fā)環(huán)境進(jìn)行軟件調(diào)試,在測(cè)試階段需要一些專門的測(cè)試工具軟件進(jìn)行功能和性能的測(cè)試等等。最合理的解決方案是向基于平臺(tái)的工具轉(zhuǎn)移,它能夠更好地表達(dá)整個(gè)系統(tǒng),減少與特定硬件以及操作系統(tǒng)的相關(guān)性,使更多的軟件設(shè)計(jì)和算法容易理解并被重復(fù)使用;而從基于文本的工具向圖形化工具的轉(zhuǎn)移則可以直觀地表達(dá)系統(tǒng),圖形化系統(tǒng)設(shè)計(jì)(GraphicalSystemDesign)的理念就是源于這兩大趨勢(shì)。通過簡(jiǎn)化嵌入式編程的復(fù)雜性,降低了對(duì)工程師在嵌入式設(shè)計(jì)流程中各個(gè)步驟的要求;同時(shí)提供了從設(shè)計(jì)、原型到部署,從軟件調(diào)試、功能測(cè)試到生產(chǎn)檢測(cè)的統(tǒng)一環(huán)境,使得工程師們可以更快速地進(jìn)行重復(fù)設(shè)計(jì)。
在嵌入式系統(tǒng)中實(shí)現(xiàn)圖形化已經(jīng)成為大勢(shì)所趨,現(xiàn)在市場(chǎng)上的工具都在向圖形化的方向轉(zhuǎn)變,但往往僅限于基于嵌入式操作系統(tǒng)的圖形界面開發(fā);而且由于它們是針對(duì)特定硬件或操作系統(tǒng)的工具,與硬件和操作系統(tǒng)平臺(tái)有很大的相關(guān)性,這不足以徹底解決行業(yè)將要面臨的挑戰(zhàn)的?,F(xiàn)在市場(chǎng)需要的是一種完全的圖形化編程語言,提供足夠的靈活性和功能,以滿足更廣泛應(yīng)用的需求。因此,圖形化系統(tǒng)設(shè)計(jì)的關(guān)鍵因素是圖形化編程。
對(duì)于時(shí)間和平行性的支持
20年來,科學(xué)家和工程師一直在使用LabVIEW為他們的設(shè)計(jì)實(shí)驗(yàn)室、驗(yàn)證實(shí)驗(yàn)室和生產(chǎn)現(xiàn)場(chǎng)構(gòu)建自動(dòng)化數(shù)據(jù)采集和儀器控制解決方案,并在這些應(yīng)用領(lǐng)域成為業(yè)界的事實(shí)標(biāo)準(zhǔn)。其核心在于,LabVIEW圖形化編程語言使沒有太多軟件背景的技術(shù)專家能夠快速搭建高級(jí)自動(dòng)化測(cè)量和控制系統(tǒng)。和傳統(tǒng)的文本編程相比,LabVIEW天生是一種并行結(jié)構(gòu)的編程語言,而時(shí)間和并行性在現(xiàn)在的嵌入式系統(tǒng)中是必不可少的。比如,LabVIEW在已有的定時(shí)循環(huán)結(jié)構(gòu)上新加了硬件定時(shí)功能,它是一種表示時(shí)間和并行的語義,可以設(shè)置操作系統(tǒng)優(yōu)先級(jí)、延時(shí)、循環(huán)速率等等,如圖1所示。如果我們將圖1所示的兩個(gè)并行任務(wù)的執(zhí)行目標(biāo)擴(kuò)展到嵌入式對(duì)象,比如FPGA或微處理器,就可以發(fā)現(xiàn)通過編程環(huán)境的一致性和可升級(jí)性,LabVIEW能夠容易地實(shí)現(xiàn)和管理嵌入式系統(tǒng)的并行性。回想在文章前面所提到的向多處理器轉(zhuǎn)移的趨勢(shì),現(xiàn)在我們可以憧憬使用可擴(kuò)展的直觀圖形化編程來開發(fā)應(yīng)用,并將處理過程分配到不同的處理器上。
圖1LabView對(duì)兩個(gè)并行任務(wù)的編程
支持多種算法設(shè)計(jì)
談到嵌入式系統(tǒng)設(shè)計(jì),人們所指的其實(shí)包括兩部分工作:算法設(shè)計(jì)和固件設(shè)計(jì)。對(duì)于嵌入式系統(tǒng)設(shè)計(jì)來說,另一個(gè)關(guān)鍵要求是軟件平臺(tái)必須能夠兼顧實(shí)時(shí)嵌入式設(shè)計(jì)中常見的多種算法設(shè)計(jì),即計(jì)算模型。這些計(jì)算模型符合系統(tǒng)設(shè)計(jì)師們籌劃系統(tǒng)時(shí)的方式,從而降低從“系統(tǒng)要求”轉(zhuǎn)換到“軟件設(shè)計(jì)”的復(fù)雜性。近年來LabVIEW已經(jīng)包含了多種計(jì)算模型以更好地滿足不同專業(yè)背景的嵌入式系統(tǒng)開發(fā)者的需求。LabVIEW現(xiàn)在可以通過連續(xù)時(shí)間仿真、狀態(tài)圖、圖形化數(shù)據(jù)流模型和基于文本的數(shù)學(xué)語言mathscript等多種方式來表達(dá)各種算法,同時(shí)它提供了很多交互式的工具用來幫助數(shù)字濾波器、控制模型、通信系統(tǒng)的設(shè)計(jì)以及數(shù)字信號(hào)處理算法的開發(fā),從而在這些頂層應(yīng)用中進(jìn)一步簡(jiǎn)化設(shè)計(jì)師的工作。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論