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

圖1LabView對兩個(gè)并行任務(wù)的編程
支持多種算法設計
談到嵌入式系統設計,人們所指的其實(shí)包括兩部分工作:算法設計和固件設計。對于嵌入式系統設計來(lái)說(shuō),另一個(gè)關(guān)鍵要求是軟件平臺必須能夠兼顧實(shí)時(shí)嵌入式設計中常見(jiàn)的多種算法設計,即計算模型。這些計算模型符合系統設計師們籌劃系統時(shí)的方式,從而降低從“系統要求”轉換到“軟件設計”的復雜性。近年來(lái)LabVIEW已經(jīng)包含了多種計算模型以更好地滿(mǎn)足不同專(zhuān)業(yè)背景的嵌入式系統開(kāi)發(fā)者的需求。LabVIEW現在可以通過(guò)連續時(shí)間仿真、狀態(tài)圖、圖形化數據流模型和基于文本的數學(xué)語(yǔ)言mathscript等多種方式來(lái)表達各種算法,同時(shí)它提供了很多交互式的工具用來(lái)幫助數字濾波器、控制模型、通信系統的設計以及數字信號處理算法的開(kāi)發(fā),從而在這些頂層應用中進(jìn)一步簡(jiǎn)化設計師的工作。
linux操作系統文章專(zhuān)題:linux操作系統詳解(linux不再難懂)
評論