第一篇:嵌入式主控軟件設(shè)計心得[精選]
嵌入式主控軟件設(shè)計模式初探
1.軟件框架簡述
根據(jù)本人近三年的嵌入式主控軟件經(jīng)驗,基于VxWorks的嵌入式的主控軟件大概有以下幾個模塊
圖2 大功率通信控制器主控軟件架構(gòu)
各模塊簡述如下:
1)初始化模塊
用于系統(tǒng)必備資源的初始化工作,設(shè)備通信前需要將各通信接口如CAN控制器、RS-232、RS-485控制器初始化至適當?shù)臓顟B(tài),申請發(fā)送/接收數(shù)據(jù)緩沖區(qū);顯示程序圖形庫一般采用VxWorks自帶的windML實現(xiàn),因此需要初始化windML相關(guān)參數(shù)以便能在屏幕上正確顯示。如果采用其他圖形庫,則需要考慮其它圖形庫的初始化工作。上述相關(guān)參數(shù)初始化完畢后系統(tǒng)進入按鍵檢測、按鍵處理、控制處理模塊。
2)按鍵檢測和按鍵響應模塊
對于用戶的按鍵輸入為什么需要設(shè)置兩個模塊來完成呢?只使用一個按鍵模塊實現(xiàn)能否可行呢?實踐表明,采用一個按鍵模塊有一定的風險。假設(shè)用戶在某時刻按鍵,系統(tǒng)立即對該按鍵進行處理(可能該處理需要較長時間),在按鍵處理進行的過程中用戶又按下一個鍵。由于系統(tǒng)正在進行按鍵處理工作,無法對再一次按鍵進行響應,該按鍵響應會被忽略,無法完成用戶的預期任務(wù)。因此,把按鍵處理劃分為按鍵檢測模塊和按鍵響應模塊的好處在于檢測模塊將按鍵檢測值緩存,等按鍵響應模塊完成響應后再從該緩存中讀取下一個鍵值,保證用戶的每一次按鍵都能被正確記錄。
—1—
研發(fā)中心設(shè)計案例集2007年9月
3)控制模塊
控制模塊和各應用層相關(guān),無法一概而論,只能視情況而定。
5)顯示模塊
顯示同控制分離是主控軟件設(shè)計的主要特點之一。顯示模塊作為系統(tǒng)軟件中的一個任務(wù)來實現(xiàn),與按鍵響應模塊、業(yè)務(wù)模塊、控制模塊采用自定義協(xié)議通信,根據(jù)這些模塊發(fā)送的遙控協(xié)議進行界面顯示。將顯示單獨作為一個模塊有以下兩點原因:
1)一旦用戶似于遙控盒的設(shè)備需求,該設(shè)備能實現(xiàn)對控制器的遙控顯示功能,在遙
控盒軟件設(shè)計時顯示模塊就可以直接移植到遙控盒的主控軟件設(shè)計中,減少工作量。
2)顯示模塊涉及到屏幕刷新操作時會占用一定的時間,顯示模塊如果直接在相關(guān)控
制模塊中實現(xiàn)則會影響到控制模塊的實時性能。
3.優(yōu)先級上的考慮
主控軟件設(shè)計中需要考慮多個任務(wù)之間的優(yōu)先級問題,從目前的設(shè)計經(jīng)驗上來看業(yè)務(wù)單元、信道機調(diào)度需要最高優(yōu)先級,因為中長波、短波通信系統(tǒng)過程中業(yè)務(wù)單元對信道機的實時性要求最高,按鍵檢測和按鍵響應優(yōu)先級次之,顯示模塊優(yōu)先級最低。顯示任務(wù)放在系統(tǒng)比較空閑的時候顯示不至于影響到整個系統(tǒng)的實時性能。對于同等優(yōu)先級的任務(wù)最好加上taskDelay(0)語句,因為同等優(yōu)先級的任務(wù)采用分時隙調(diào)度的方式,taskDelay(0)能該任務(wù)在運行時隙結(jié)束時被其它同等優(yōu)先級的任務(wù)搶占到CPU資源。
除端口查詢外,采用while(1)或者FOREVER類似結(jié)構(gòu)的無限循環(huán)的任務(wù)必須擁有信號量、消息等掛起本身的能力。否則,系統(tǒng)運行時從windView中觀察:該任務(wù)即使優(yōu)先級最低為255時,也會無休止的占用大量的系統(tǒng)資源,影響系統(tǒng)實時性。
4.總結(jié)
本文試圖根據(jù)經(jīng)歷的幾個嵌入式主控軟件項目中提取一些設(shè)計經(jīng)驗和心得體會,有些經(jīng)驗只是在項目實際開展過程中的觀察總結(jié),拋磚引玉,希望對各位有所幫助。
第二篇:初探一種構(gòu)件化嵌入式軟件設(shè)計模型驗證工具
1.引言
嵌入式計算系統(tǒng)已經(jīng)廣泛的應用于生活中的各個領(lǐng)域,如:交通、能源、醫(yī)療、控制、通信、軍事等。近年來隨著計算機硬件性能的不斷提高,嵌入式系統(tǒng)中軟件的規(guī)模和復雜性不斷增加,使軟件對整個系統(tǒng)的影響逐漸占據(jù)了統(tǒng)治地位。關(guān)鍵系統(tǒng)中的嵌入式軟件失效將會導致生命與財產(chǎn)的重大損失。因此,嵌入式軟件通常具有極高的功能可靠性、嚴格的實時性等要求,如何保證系統(tǒng)同時滿足給定的功能和非功能需求已成為當前高可信嵌入式計算領(lǐng)域中的研究熱點。目前,工業(yè)界已有一些比較有效的嵌入式軟件測試和調(diào)試方法(如:在處理器中嵌入ICE 功能,調(diào)試代理軟件,JTAG 模擬等)。但從軟件工程的角度來看,這些方法都是在系統(tǒng)的開發(fā)中后期階段所使用,而在嵌入式軟件設(shè)計與分析的前期階段還缺乏有效的方法和工具對系統(tǒng)設(shè)計進行分析與驗證。
本文基于接口自動機模型對構(gòu)件化嵌入式軟件設(shè)計(CBESD: Component-BasedEmbedded Software Designs)的分析與驗證方法展開進一步研究,在Eclipse 開放平臺上實現(xiàn)了一個CBESD的模型分析與驗證原型工具T-CBESD(a Tool for Component-based EmbeddedSoftware Designs)。該工具的目的是應用于構(gòu)件化嵌入式軟件開發(fā)的設(shè)計建模階段,對設(shè)計者所關(guān)心的系統(tǒng)重要功能性質(zhì)以及與時間相關(guān)的實時行為性質(zhì)進行嚴格形式化分析和驗證,提高系統(tǒng)可靠性的可信度。
本文內(nèi)容安排如下:第2 節(jié)中給出了非實時功能行為驗證以及實時功能行為驗證的理論基礎(chǔ),包括:描述系統(tǒng)動態(tài)行為的多種接口自動機模型,基于場景的系統(tǒng)規(guī)約描述模型,以及形式化分析與驗證的抽象算法等。在第3 節(jié)中給出了原型工具T-CBESD 的基本設(shè)計思想,非實時功能行為驗證模塊以及實時功能行為驗證模塊的設(shè)計與實現(xiàn),包括:工具輸入輸出接口設(shè)計、狀態(tài)空間數(shù)據(jù)結(jié)構(gòu)設(shè)計、基于場景的系統(tǒng)規(guī)約模型的輸入預處理、具體驗證算法的設(shè)計與實現(xiàn)等。第4 節(jié)中給出了應用實例研究;最后是相關(guān)工作比較和結(jié)束語,對本文中原型工具的特點、意義以及進一步的工作進行簡要討論。
2.工具的理論基礎(chǔ)
軟件工程中的構(gòu)件化設(shè)計方法學通過復用和組合軟件模塊來構(gòu)造系統(tǒng),從而提高系統(tǒng)開發(fā)效率和可靠性。通常,一個復雜的嵌入式系統(tǒng)由多個計算子系統(tǒng)構(gòu)成,其軟件系統(tǒng)也具有較高的構(gòu)件化特征,因此,構(gòu)件化的設(shè)計已成為解決嵌入式軟件設(shè)計復雜性問題的一種手段。與此同時,構(gòu)件接口之間的交互場景也成為體現(xiàn)系統(tǒng)行為復雜性的一個重要方面。
本文中所討論的原型工具就是使用形式化的接口自動機模型來對系統(tǒng)構(gòu)件接口動態(tài)行為進行設(shè)計建模,并使用UML 交互概觀圖模型來描述多種基于場景的構(gòu)件交互行為規(guī)約,然后應用形式化分析算法對設(shè)計模型是否滿足系統(tǒng)規(guī)約進行分析和驗證。
2.1 建模系統(tǒng)構(gòu)件以及組合行為
接口自動機(interface automata,簡稱IA)是用來刻畫軟件構(gòu)件接口交互行為時序特征的一種形式化語言。它描述了一個構(gòu)件被使用的時候其對外界環(huán)境的輸入假設(shè)和輸出保證,即構(gòu)件內(nèi)方法被調(diào)用的先后次序以及構(gòu)件對外環(huán)境輸出調(diào)用信息或結(jié)果的次序。
輸入動作可以用來建模:1)構(gòu)件內(nèi)可以被調(diào)用的方法或過程;2)通信信道的接收端;3)調(diào)用外部過程的返回等。輸出動作可以用來建模:1)對其他構(gòu)件中的方法或過程的調(diào)用;2)通信信道的發(fā)送消息端;3)構(gòu)件中方法或過程的調(diào)用結(jié)束時的返回;4)構(gòu)件中方法或過程執(zhí)行中出現(xiàn)的異常返回,等。內(nèi)部動作則表達了兩個構(gòu)件在組合過程中的同步交互行為。
考慮到嵌入式軟件的實時性建模需求,需要對IA 進行實時語義的擴展,以增強接口自動機對實時系統(tǒng)的描述能力。直觀上,對接口自動機每一個轉(zhuǎn)換添加時間區(qū)間約束,以表示此轉(zhuǎn)換發(fā)生的最小、最大時限;擴展后的模型稱為實時接口自動機。
我們使用接口自動機的組合狀態(tài)空間來表達多構(gòu)件系統(tǒng)的組合行為;自動機組合狀態(tài)空間中每一條可能的狀態(tài)轉(zhuǎn)換序列用來表達多構(gòu)件系統(tǒng)的一個組合行為軌跡?;綢A 和擴展的RTIA 組合狀態(tài)空間的定義略有不同,以下只給出了RTIA 組合空間(實時接口自動機網(wǎng)絡(luò))的定義;不帶時間語義的基本接口自動機的組合定義參見文獻。
2.2 基于場景的交互行為規(guī)約
在基于場景的系統(tǒng)規(guī)約中,通常將一個系統(tǒng)相對獨立的功能模塊建模為一個場景描述。這個場景表達了參與其中的各構(gòu)件之間如何進行交互。進一步的,在系統(tǒng)設(shè)計階段,還會關(guān)心有多個簡單場景組合起來的復雜場景需求,即需要考慮多個簡單場景之間的邏輯關(guān)系。
交互概觀圖(Interaction Overview Diagrams)是在UML2 規(guī)范中引入的一種用以描述系統(tǒng)中復雜交互場景的動態(tài)行為模型。交互概觀圖本質(zhì)上是將活動圖模型與順序圖模型結(jié)合在一起,圖中的每一個節(jié)點都可以視為一個用順序圖表達的簡單交互場景,然后利用活動圖所提供的順序、迭代、并發(fā)、選擇等操作將多個不同的順序圖場景聯(lián)系在一起;這樣就可以用來表達語義更為豐富的系統(tǒng)交互行為。在本文中所關(guān)心的以下幾種場景組合一致性問題都可以用交互概觀圖來有效的描述:
1.存在一致性: 某個特定的場景D 是否在系統(tǒng)所有行為中至少出現(xiàn)一次,或者某個指定的場景D 是否在系統(tǒng)的所有行為中一定不會出現(xiàn)。
2.前向強制一致性:當某個條件場景D1 出現(xiàn)時,則場景D2 一定會隨之在系統(tǒng)后續(xù)行為中發(fā)生。
3.逆向強制一致性: 當某個條件場景D1 出現(xiàn)時,則場景D2 一定在D1 之前就在系統(tǒng)的行為中發(fā)生。
4.雙向強制一致性: 當兩個條件場景D1、D2 在系統(tǒng)一個行為中先后出現(xiàn)時,則在這兩個場景之間一定有D3 發(fā)生。
2.3 模型分析與驗證算法
基于以上給出的接口自動機系統(tǒng)組合行為模型以及交互場景系統(tǒng)規(guī)約模型,可以對2.2節(jié)中提出的多個基于功能的一致性驗證問題進行分析與驗證;同時,考慮嵌入式軟件設(shè)計中的實時需求,以上每個基于功能的一致性驗證問題都存在一個相應的帶時間約束的版本;即在完成功能性驗證的同時,也必須同時滿足交互場景中給定的時間約束。在相關(guān)研究工作中,對上述幾類模型驗證問題進行了形式化定義和分析,并分別設(shè)計了相應的驗證算法。算法的基本思想是對帶有不同語義信息的系統(tǒng)組合行為的狀態(tài)空間進行搜索,將每一個可能的系統(tǒng)行為與基于場景的交互規(guī)約進行比較,來判斷設(shè)計模型是否滿足各種系統(tǒng)規(guī)約。例如:對于存在一致性驗證問題,如果在組合狀態(tài)空間中順序圖D 所描述場景中的消息事件序列至少出現(xiàn)一次,則判定系統(tǒng)行為滿足D,其相應的抽象算法框架參見文獻中的算法;其中所提到的投影路徑是為了處理狀態(tài)空間中環(huán)路的出現(xiàn)導致所檢驗的系統(tǒng)行為路徑可能是無窮長度的問題。對于系統(tǒng)實時行為的驗證算法,則需要進一步考慮由于時間的引入所帶來的如何將連續(xù)時間進行整型化處理,以及帶時間約束的投影路徑的建立;RTIA-Network 的一致性驗證抽象算法框架參見文獻。中國代寫論文網(wǎng)與您分享論文范文
3.T-CBESD 的設(shè)計與實現(xiàn)
基于以上的理論分析與驗證框架,本文設(shè)計了一個原型工具T-CBESD(a Tool forComponent-Based Embedded Software Designs)。T-CBESD 的目的是應用于構(gòu)件化嵌入式軟件開發(fā)的設(shè)計建模階段,對設(shè)計者所關(guān)心的一些系統(tǒng)重要功能性質(zhì)以及與時間相關(guān)的實時行為性質(zhì)進行嚴格形式化分析和驗證,以提高系統(tǒng)可靠性的可信度。工具的基本設(shè)計原則主要包括以下兩個方面:
T-CBESD 應當具備跨平臺運行、易擴展特征:即工具應該可以盡可能在多種不同運行平臺上運行,并且考慮到在未來工作中,我們將在目前的工作基礎(chǔ)上對接口自動機模型進行資源以及能耗等語義描述方面的進一步擴展;因此,選擇了面向?qū)ο蟪绦蛟O(shè)計語言Java作為工具的實現(xiàn)語言。Java 具有良好的跨平臺運行特征以及豐富的類庫資源,并可以使用面向?qū)ο蟪绦蛟O(shè)計思想中的類繼承等方法對工具進行方便可靠的擴展。
T-CBESD 應當具備易使用、易維護特征:用戶可以比較方便的使用工具,或進行調(diào)整;因此,選擇了工業(yè)界廣泛使用的開放集成開發(fā)環(huán)境Eclipse 作為工具的運行平臺,即使用Eclipse 的插件(plug-in)技術(shù)來設(shè)計和開發(fā)T-CBESD。用戶可以很容易在Eclipse 環(huán)境中通過插件技術(shù)來安裝、配置和使用工具;同時,在T-CBESD 的輸入輸出接口中所使用的XML語言在Java 和Eclipse 環(huán)境中也是得到完全的支持。
主要的邏輯處理框架包括:
輸入輸出接口; UML 順序圖模型的預處理;自動機組合模型的建立;非實時功能驗證算法的實現(xiàn);實時功能驗證算法的實現(xiàn)等。以下分別給出詳細說明。
3.1 輸入輸出接口設(shè)計
T-CBESD 的輸入輸出均是以XML 文件形式來描述的系統(tǒng)設(shè)計模型、系統(tǒng)需求規(guī)約以及驗證結(jié)果信息等。其中,工具的輸入包括:描述系統(tǒng)設(shè)計的接口自動機模型的XML 文件和描述系統(tǒng)規(guī)約的消息交互序列的XML 文件;輸出則包括:描述系統(tǒng)組合行為的接口自動機組合模型的XML 文件和包含驗證結(jié)果信息的XML 文件。這里,最核心部分是接口自動機模型的XML 文件格式的設(shè)計。在圖3 中給出了一個非實時構(gòu)件基本接口自動機模型的XML 文件示例說明;通過XML 的樹形標簽格式,分別定義了自動機名、自動機個數(shù)(如果這是一個組合自動機)、狀態(tài)個數(shù)、狀態(tài)名、后繼狀態(tài)名、轉(zhuǎn)換個數(shù)、轉(zhuǎn)換名、轉(zhuǎn)換的出發(fā)和到達狀態(tài)名、動作個數(shù)、動作名、動作類型等數(shù)據(jù)信息,用來完整準確的保存接口自動機模型的語義信息。此外,對于擴展的實時接口自動機模型,其相應的XML 文件格式定義中還包含與動作相關(guān)聯(lián)的時間區(qū)間約束標記。
在上述定義的XML 文件基礎(chǔ)上,就可以使用Java 類庫中的DOM(文檔對象模型)方法很方便的對自動機模型進行解析及生成。例如:在T-CBESD 中設(shè)計了parseXmlDocument()和parseRtXmlDocument()兩個類方法來分別對基本接口自動機模型XML 文件和實時接口自動機模型XML 文件進行解析,并根據(jù)Automata,Transition 以及State 等類定義在內(nèi)存空間創(chuàng)建相應的自動機對象。
3.2 UML 順序圖模型的輸入預處理
雖然 T-CBESD 的輸入輸出定義為標準XML 文檔格式,但在工具中加入了從UML 建模環(huán)境Rational Rose 的順序圖模型到T-CBESD 的XML 輸入文件(描述消息交互序列集)的自動化轉(zhuǎn)換處理。其原因有二:
其一,現(xiàn)在工業(yè)界已存在較為成熟的圖形化建模工具,可以快速方便的繪制UML 模型圖,可以利用這些工具作為T-CBESD 的前端,而不用在T-CBESD 中重新設(shè)計復雜的用戶接口來支持圖形化建模設(shè)計。
其二,在2.2 節(jié)中提到,一個順序圖場景可能會包含多個不同的消息事件序列;顯然,如果讓系統(tǒng)設(shè)計與分析人員從每一個順序圖中手動的生成所有可能的消息事件序列,這并不是件容易的事情。因此,需要提供一種從順序圖模型自動化生成所有可能的消息事件集合的方法。
在Rational Rose 中所生成的順序圖模型文件是MDL 格式,需要先轉(zhuǎn)換成XML 格式文件,然后進行相應消息序列的抽取。其處理過程如圖5 中所示,首先通過在Rational Rose中加載XMI 插件將MDL 格式的文件轉(zhuǎn)換為XML 格式;然后對XML 文件進行解析,建立文檔解析樹,提取消息事件節(jié)點,并根據(jù)順序圖中的事件發(fā)生先后順序構(gòu)造一個相應的有向無環(huán)圖(在此,定義了順序圖的參加者類(Element Class)、消息類(Message Class)以及結(jié)點類(Node Class)用于圖的構(gòu)造);最后設(shè)計了一個拓撲排序算法,對該有向圖中的消息事件節(jié)點進行拓撲排序,從而得到一個順序圖中所有可能的消息事件序列的集合。
3.3 自動機組合模型的建立
接口自動機的組合過程與一般自動機組合的語義存在不同之處。在兩個接口自動機組合的狀態(tài)空間中,有可能存在兩個構(gòu)件接口之間交互不同步的所謂“非法狀態(tài)”,在應用驗證算法之前必須將這些非法狀態(tài)找出來并從狀態(tài)空間中去除掉。文獻中給出了一個識別非法狀態(tài)集合的基于不動點(Fixpoint)的抽象算法框架,基本思想是先構(gòu)造出所有可能的組合狀態(tài)的空間圖,然后逆向搜索非法狀態(tài)集。在T-CBESD 的實現(xiàn)中我們則采用正向的合法狀態(tài)集合構(gòu)造方法,其好處是避免了需要首先生成所有的狀態(tài)空間。給出了工具中基本自動機模型的組合算法流程圖。此外,在實時接口自動機組合的過程中還需要進一步考慮時間約束;如在2.1 節(jié)中形式化定義表示一樣,所得到的每一個組合狀態(tài)都會有一個相應的時間標記值。
3.4 非實時功能性質(zhì)驗證算法的實現(xiàn)
在3.3 節(jié)中建立的自動機組合狀態(tài)空間的基礎(chǔ)上,就可以應用文獻中的一致性驗證算法等對3.2 節(jié)中所給出系統(tǒng)需求中的消息交互序列進行分析驗證。T-CBESD 中實現(xiàn)了包括存在一致性、前向一致性、逆向一致性以及雙向一致性在內(nèi)的多種形式的非實時功能行為驗證算法。給出了工具中非實時功能性質(zhì)驗證模塊的類圖框架。主要包括兩大部分:一部分是自動機模型核心類,包括Automata Class,Transition Class,State Class 以及組合模型的 Composition Class ; 另一部分則是與驗證算法相關(guān)的類,包括:ExistConsistencyChecking Class,ActionString Class,AdjacentMatrix Class 和輔助類TransitionNode Class。其中,存在一致性驗證類(ExistConsistencyChecking Class)作為功能驗證算法類的基類,其他形式的一致性驗證算法類(如:BackwardConsistencyCheckingClass,F(xiàn)orwardConsistencyChecking Class 和 BiConsistencyChecking Class 等)都依賴存在一致性驗證類,調(diào)用其方法實現(xiàn)所需的功能。
在基類ExistConsistencyChecking 的實現(xiàn)過程中,一個關(guān)鍵的問題是:當在系統(tǒng)組合狀態(tài)空間圖中搜索與UML 順序圖交互序列所對應的投影路徑時,有可能出現(xiàn)一個滿足條件的投影路徑一部分出現(xiàn)在某個環(huán)路內(nèi)部,而另一部分卻出現(xiàn)在此環(huán)路的外部路徑上的情形[11,12]。如果只是采用經(jīng)典的深度優(yōu)先遍歷或廣度優(yōu)先遍歷方法對組合狀態(tài)空間圖進行搜索判定,將會遺漏掉這種情況。為此,在T-CBESD 中設(shè)計了動作名表(ActionString Class)和鄰接矩陣(AdjacentMatrix Class)。其中,動作名表是以接口自動機的動作名作為表頭向量,并以執(zhí)行該動作名的轉(zhuǎn)換作為表結(jié)點的一張哈希表,其定義見圖8 所示(注:未包含類方法說明)。
基本思想為:對于所給出的一個消息交互序列,先根據(jù)消息名從動作名表中依次取出與消息名所對應的表頭結(jié)點以及表結(jié)點,構(gòu)成一張與消息序列中消息次序?qū)南⒚怼?/p>
然后遍歷這張消息名表來搜索投影路徑,搜索過程中需要根據(jù)鄰接矩陣來判斷兩個結(jié)點之間是否可達。
3.5 實時功能性質(zhì)驗證算法的實現(xiàn)
在實時功能性質(zhì)驗證算法的實現(xiàn)中,考慮到實時一致性驗證抽象算法框架實際上包含了兩次對組合系統(tǒng)狀態(tài)空間圖的搜索過程;也就是說在非實時功能一致性驗證中只需找到一條滿足條件的投影路徑,而在實時功能一致性驗證中,是需要先根據(jù)消息序列找出所有可能的投影路徑,然后進行檢驗。因此,T-CBESD 中依據(jù)動作名表以及鄰接矩陣對圖進行窮舉搜索,搜索到一條投影路徑之后并不立即結(jié)束,而是繼續(xù)找下一條投影路徑,找出所有與給定路徑相符合的投影路徑。在此基礎(chǔ)上根據(jù)所給出的時間布爾表達式對這些投影路徑進行篩選,如果找到符合時間布爾表達的投影路徑驗證則驗證成功,否則,驗證失敗。
4.實例應用
目前,T-CBESD 的設(shè)計開發(fā)和運行環(huán)境是:Windows Xp 操作系統(tǒng)平臺,Eclipse SDK3.4.0,Java SDK 1.6,所引用的MDL 文件是由Rational Rose 2003 生成。本節(jié)中分別給出T-CBESD 的非實時功能性質(zhì)驗證和實時功能驗證兩方面的實例應用說明。
在T-CBESD 中所構(gòu)造的構(gòu)件Communication 和User 的合法組合狀態(tài)空間(去除了非法狀態(tài)集)包括6 個組合狀態(tài):(s0|s0),(s1|s1),(s2|s1),(s3|s1),(s4|s1),(s5|s1)。對于存在一致性驗證,不妨設(shè)順序圖中抽取的一個消息交互序列send*nack*send*ack 作為驗證規(guī)約,顯然,直觀上就能判斷Communication 和User 的組合系統(tǒng)應該是滿足這個規(guī)約的。
運行T-CBESD 進行驗證的結(jié)果,顯示組合系統(tǒng)確實滿足存在一致性,其相應的系統(tǒng)執(zhí)行路徑為:s0|s0??s1|s1??s2|s1??s3|s1??s4|s1??s5|s1。對于前向一致性驗證,就本例而言,不妨設(shè)D1 消息序列為send*nack,D2 消息序列為send*ack,然后將其作為工具的系統(tǒng)規(guī)約來輸入,其驗證結(jié)果應該仍然是滿足。運行T-CBESD 的驗證結(jié)果,顯示的確存在一條系統(tǒng)執(zhí)行路徑滿足前向一致性。事實上,所找到這條路徑與存在一致性的路徑是相同的。
對于逆向存在一致性,若設(shè)D1 消息序列是send,D2 消息序列是ack,T-CBESD 給出的結(jié)果是不存在這樣的一條組合系統(tǒng)路徑滿足它。這也符合對本例的直觀判斷,即在接受到ack之后又執(zhí)行send 動作是不合法的,因此這個存在一致性是不滿足的。對于雙向一致性,若給出的D1 消息序列是send,D2 消息序列是send,D3 消息序列是nack,驗證的結(jié)果是搜索成功,得到的可滿足的組合系統(tǒng)執(zhí)行路徑為:s0|s0??s1|s1??s2|s1??s3|s1??s4|s1。圖13 所示為T-CBESD 的非實時功能驗證模塊插件的界面。界面左邊部分為操作區(qū),主要提供組合、查看、工具輸入、驗證類型等功能選擇,界面右邊部分為分析與驗證過程中工具所反饋的數(shù)據(jù)信息。
5.相關(guān)研究工作
SpIN是一個經(jīng)典的分布式系統(tǒng)模型檢驗工具。系統(tǒng)每一個構(gòu)件的自動機模型使用SpIN 中promela 語言所構(gòu)造的進程(process)來表達,組合系統(tǒng)的狀態(tài)空間通過計算所有自動機異步積來得到,系統(tǒng)規(guī)約使用LTL 時序公式描述;系統(tǒng)是否滿足規(guī)約性質(zhì)則通過組合系統(tǒng)和時序公式相對應的Buchi 自動機進行同步積,然后檢驗其結(jié)果是否為空。目前SpIN在工業(yè)界硬件設(shè)計以及通信協(xié)議規(guī)約的驗證領(lǐng)域得到了較廣泛的應用,但對同時具有功能和非功能需求的嵌入式軟件驗證領(lǐng)域,SpIN 并未提供相應的支持。UppAAL是一個基于時間自動機理論的實時系統(tǒng)仿真和驗證工具。其基本思想為將實時系統(tǒng)的行為建模為一個實時自動機網(wǎng)絡(luò),并進行了數(shù)據(jù)類型的擴展,采用時間μ-算子作為系統(tǒng)的規(guī)約語言,主要對系統(tǒng)進行安全性和活性等性質(zhì)的檢驗。UppAAL 具有良好的圖形化編輯和模擬功能。
目前,已有一些工具以UppAAL 為核心作進一步擴展,如:TIMES是以時間自動機模型驗證為基礎(chǔ)的一個工具集環(huán)境,可以進行建模、可調(diào)度分析、系統(tǒng)合成以及特定平臺上的代碼生成;Save-IDE則是基于構(gòu)件模型SaveCCM[20]所建立的一個支持構(gòu)件化嵌入式系統(tǒng)開發(fā)的工具集,等等。此外,與接口自動機相關(guān)的工具包括:Chic是第一個基于接口自動機理論的原型工具。它是作為Jbuilder 集成環(huán)境下的一個插件模塊來設(shè)計開發(fā)的,其目的只是用于對相關(guān)理論工作的一個初步驗證,現(xiàn)在已經(jīng)被另一個工具Ticc所替代。
Ticc 的理論基礎(chǔ)是接口自動機的一個擴展版本:Sociable Interface,其基本思想仍然是檢驗構(gòu)件接口組合中是否兼容。ptolemy II中也實現(xiàn)了基本接口自動機模型的組合兼容性分析工作,不過ptolemy II 是一個包含了多種不同工具集的混成系統(tǒng)建模、分析、合成和代碼生成的開發(fā)環(huán)境。此外,以法國INRIA 為中心的歐洲多個研究機構(gòu)正在構(gòu)建的OpenEmbeDD是一個以Eclipse 為開放平臺的模型驅(qū)動嵌入式系統(tǒng)開發(fā)工具集。這是一個龐大的開源工具組合環(huán)境,提供嵌入式系統(tǒng)設(shè)計(包括軟件和硬件)、模擬、驗證、合成以及測試等各個階段的開發(fā)支持。
與上述相關(guān)工具相比,T-CBESD 的特點在于:首先,可以直接使用UML 的順序圖模型作為系統(tǒng)規(guī)約輸入進行驗證,而不需要系統(tǒng)設(shè)計人員去重新學習時序邏輯語言來構(gòu)造規(guī)約說明;避免了在大多數(shù)相關(guān)工作中需要在不同的形式模型之間進行復雜轉(zhuǎn)換,通常這些轉(zhuǎn)換是需要相當?shù)目臻g和時間消耗。其次,相比較上述基于接口自動機模型的研究,本文的工作在接口自動機組合兼容性的基礎(chǔ)上對構(gòu)件式嵌入式軟件系統(tǒng)設(shè)計模型與場景式規(guī)約模型之間的一致性問題給出了一個更為完整的驗證框架;可以進一步進行各類一致性問題的分析和驗證;第三,通過擴展時間區(qū)間所得到的實時接口自動機的描述能力本質(zhì)上與時間自動機的描述能力是等價的,并且通過在順序圖模型中使用時間不等式約束,使得所定義的實時接口自動機網(wǎng)絡(luò)與帶時間約束的順序圖之間的一致性問題更具有一般性。最后,Eclipse 開放平臺給工具提供了良好的開發(fā)、維護和使用環(huán)境。
6.結(jié)束語及未來工作
本文在 Eclipse 開放平臺上設(shè)計并實現(xiàn)了一個基于接口自動機模型的構(gòu)件化嵌入式軟件設(shè)計分析與驗證的原型工具T-CBESD。該工具的目的是應用于構(gòu)件化嵌入式軟件開發(fā)的設(shè)計建模階段,對系統(tǒng)重要功能性質(zhì)以及與時間相關(guān)的實時行為性質(zhì)進行嚴格形式化分析和驗證,使得設(shè)計者可以盡早在系統(tǒng)開發(fā)前期發(fā)現(xiàn)錯誤并予以修改,以降低成本并提高系統(tǒng)可靠性的可信度。論文主要內(nèi)容包括:非實時功能驗證以及實時功能驗證的理論基礎(chǔ);T-CBESD 的基本設(shè)計思想;工具的輸入輸出接口、狀態(tài)空間數(shù)據(jù)結(jié)構(gòu)、驗證算法等的設(shè)計與實現(xiàn);以及應用實例分析。
進一步的工作包括以下幾個方面:
擴展工具的輸入和輸出接口形式。輸入方面,目前T-CBESD 中自動機模型的XML 文件是需要用戶手動生成,我們希望也可以使用Rational Rose 等圖形化建模環(huán)境作為前端工具來方便用戶進行系統(tǒng)接口自動機模型的設(shè)計。但是接口自動機與UML 狀態(tài)機的語法和語義都存在不同之處,需要重新設(shè)計一個中間轉(zhuǎn)換過程來處理。同時,考慮在順序圖形式化定義的基礎(chǔ)上進一步對UML 交互概觀圖進行形式化描述,并將其作為工具的另一種擴展形式的輸入模型。輸出方面,將設(shè)計更為完整的驗證結(jié)果信息XML 文件格式,并考慮與軟件測試技術(shù)相結(jié)合,利用驗證結(jié)果給出的系統(tǒng)出錯(驗證失?。┬袨檐壽E來指導生成相應的測試用例。
在工具的核心算法部分,將進一步設(shè)計并實現(xiàn)包括資源接口自動機和能耗接口自動機在內(nèi)的分析與驗證算法,以擴展T-CBESD 的功能。同時,考慮到在實時接口自動機組合過程中可能出現(xiàn)的狀態(tài)空間爆炸問題,將對實時驗證算法作進一步改進,設(shè)計新的On-the-Fly 驗證算法實現(xiàn),即:在構(gòu)造一個新狀態(tài)的時候就對當前路徑進行即時驗證。
應用復雜的多構(gòu)件系統(tǒng)設(shè)計實例,來對工具的性能進行檢驗和提高。目前所運行的實例相對比較簡單,主要目的是為了檢查實現(xiàn)算法的正確性,還需要在復雜多構(gòu)件系統(tǒng)模型情形下對算法性能作進一步檢驗和改進?,F(xiàn)在我們正在對某無人機飛行控制軟件系統(tǒng)進行模型分析和抽取工作,準備將其作為T-CBESD 的一個復雜實例驗證。
進一步完善原型工具的操作界面;目前本文的工作主要關(guān)注于基本的輸入輸出處理和核心算法的設(shè)計與實現(xiàn),還需要考慮工具用戶界面接口設(shè)計的實用性和有效性。
第三篇:嵌入式圖像處理系統(tǒng)的軟件設(shè)計論文
摘要:隨著我國智能化、信息化的不斷發(fā)展,嵌入式系統(tǒng)在多媒體通信、交通控制以及個人數(shù)據(jù)處理中得到了廣泛的應用,計算機視覺技術(shù)的應用范圍也逐漸增強。嵌入式圖像處理系統(tǒng)嵌入式系統(tǒng)和計算機視覺技術(shù)的有效融合,可用于網(wǎng)絡(luò)攝像機、視頻監(jiān)控等領(lǐng)域,采用的是網(wǎng)絡(luò)化嵌入式硬件系統(tǒng)對圖像進行處理,具有重大的運用價值。
關(guān)鍵詞:嵌入式;圖像處理系統(tǒng);軟件設(shè)計
中圖分類號:TP3文獻標識碼:A文章編號:1674-6708(2016)156-0080-02
DOI:10.16607/j.cnki.1674-6708.2016.03.049
在很多領(lǐng)域中,由于科學技術(shù)的不斷發(fā)展,不可避免的需要使用大量的數(shù)據(jù),面對這些算法復雜的數(shù)據(jù),傳統(tǒng)的圖像處理系統(tǒng)已經(jīng)不能滿足要求。嵌入式圖像處理系統(tǒng)在通訊、醫(yī)藥等方面都發(fā)揮著非常重要的作用,正是因為各個領(lǐng)域獲得的圖像數(shù)據(jù)越來越多,如何對圖像數(shù)據(jù)快速準確的進行處理顯得格外重要。所以需要設(shè)計出更優(yōu)化的圖像處理。
1嵌入式系統(tǒng)概述
1.1嵌入式系統(tǒng)的概念
嵌入式系統(tǒng)是建立在計算機技術(shù)基礎(chǔ)上的應用型專用計算機系統(tǒng),其軟件和硬件都可以剪裁,系統(tǒng)對成本、功耗、功能都提出了更高的要求,具有可靠性強、體積小等優(yōu)點,可以實現(xiàn)對其他設(shè)備的監(jiān)視、控制和管理。隨著嵌入式系統(tǒng)的不斷發(fā)展,嵌入式系統(tǒng)已經(jīng)滲透到人們的生活中,無論是在工業(yè)、服務(wù)業(yè)還是消費電子等領(lǐng)域都得到了廣泛的應用。
1.2嵌入式系統(tǒng)的特點
與普通的計算機系統(tǒng)相比,嵌入式系統(tǒng)的專用性更強,一般是面向特定運用的,嵌入式處理器一般應用在用戶設(shè)計的特定系統(tǒng)中,集成性高、體積小、功耗低,不僅具有方便攜帶的優(yōu)點,操作系統(tǒng)更是實時操作的,可以滿足實時性較強的場合要求。將嵌入式系統(tǒng)運用到應用程序中,在芯片上直接運行而不需要操作系統(tǒng),未來可以充分利用更多的系統(tǒng)資源,用戶需要選擇RTOS開發(fā)平臺,保障軟件的質(zhì)量。嵌入式系統(tǒng)主要包括硬件系統(tǒng)和軟件系統(tǒng),其中硬件系統(tǒng)是基礎(chǔ),軟件系統(tǒng)是靈魂,復雜程度非常高。
2系統(tǒng)軟件設(shè)計
基于RF5軟件系統(tǒng)總體設(shè)計:嵌入式圖像處理系統(tǒng)和傳統(tǒng)處理系統(tǒng)一樣,主要包括硬件和軟件兩個方面,硬件包括系統(tǒng)的硬件平臺,軟件包括嵌入式操作系統(tǒng)和圖像處理算法兩個方面。其中硬件平臺又包括圖像儲存模塊、通信模塊和顯示模塊等,主要是為系統(tǒng)的軟件系統(tǒng)提供支持。在圖像處理過程中,硬件系統(tǒng)可以為其提供計算、顯示、存儲等條件[1]。RF5是以DSP和XDAIS為基礎(chǔ)的代碼參考框架,在DSP軟件的設(shè)計和開發(fā)中具有重要的作用,參考框架在整個程序中具有非常重要的作用,是整個運用應用程序的藍本。RF5的數(shù)據(jù)處理元素包括通道、單元、任務(wù)和XDAIS算法,這4個元素之間具有緊密的聯(lián)系,獨立又聯(lián)系。嵌入式操作系統(tǒng)是整個系統(tǒng)的核心系統(tǒng),提供了包括圖形處理任務(wù)管理在內(nèi)的各項管理,經(jīng)過硬件的初始化、圖像信息存儲、圖像信息顯示等過程實現(xiàn)圖像處理和存儲。
3軟件模塊化程序?qū)崿F(xiàn)
3.1初始化模塊
軟件系統(tǒng)的初始化模塊主要包括處理器、RF5模塊化初始化、圖像處理算法、視頻捕獲、視頻顯示通道等。處理器和系統(tǒng)板初始化是指設(shè)備重啟之后,通過軟件配置的方式對外圍設(shè)備進行配置和選擇。系統(tǒng)在進行工作的時候,初始化模塊是其執(zhí)行的第一個任務(wù),執(zhí)行完初始化模塊之后,程序的控制權(quán)將會轉(zhuǎn)變到調(diào)度程序中,由調(diào)度程序來調(diào)度接下來的任務(wù)。
3.2視頻捕獲和顯示模塊
3.2.1視頻捕獲的實現(xiàn)
視頻捕獲主要負責將外部的視頻解碼器解碼生成的數(shù)字視頻信號采集收集起來,并且這個采集的過程非常方便,可以實現(xiàn)實時采集,最終形成的圖形處理也是可以實時處理的,可以隨時隨地對大數(shù)據(jù)的圖像進行處理,這也是其最大的優(yōu)點和特點。采集到的數(shù)字視頻信號進入到系統(tǒng)外擴的存儲器中,從而實現(xiàn)視頻的捕獲。視頻采集可以自動采集,當單元進入自動采集狀態(tài),完成了圖像的采集之后,視頻端口都會向系統(tǒng)自動發(fā)出中斷請求,中斷服務(wù)程序便開始發(fā)揮自身的功能,對圖像的存儲區(qū)進行連續(xù)更新,圖像存儲區(qū)一旦更新之后,圖像采集系統(tǒng)就會采集下一個圖像數(shù)據(jù),最終進入一個循環(huán)。當視頻端口的FIFO裝滿了采集的數(shù)據(jù)之后,會發(fā)生中斷信息,進入EDMAISR中斷服務(wù)程序?qū)⒁曨l數(shù)據(jù)送入到SDRAM中[2]。
3.2.2視頻顯示的實現(xiàn)
視頻顯示的實現(xiàn)是通過視頻圖像顯示模塊來實現(xiàn)的,視頻圖像處理模塊處理后的圖像經(jīng)過顯示模塊處理,處理之后將圖像編碼成數(shù)字視頻流,標準數(shù)字視頻流經(jīng)過系統(tǒng)編碼轉(zhuǎn)化為虛擬視頻信號,經(jīng)過解碼器之后視頻流就變成了標準的模擬視頻信號,分別經(jīng)過EDMA控制器和EDMAISR之后最終進入到視頻端口的緩沖區(qū)中,經(jīng)過緩沖器之后,信號會使EDMA中斷,送入新的圖像信號,并在顯示器上顯示出來,視頻顯示的流程。輸出作用在外部編輯器中。
3.3圖像處理模塊
圖像處理模塊比較靈活,是指在嵌入式的環(huán)境下實現(xiàn)對圖像的處理。在圖像處理系統(tǒng)中,又包括系統(tǒng)功能模塊和圖像增強模塊。系統(tǒng)功能中包含圖像增強功能,除了圖像功能之外,還包括圖像的幾何變換、形態(tài)運輸和圖像分析。在圖像增強模塊中又包括圖像的預處理和邊緣檢測、直方圖修正、中值濾波、灰度變換調(diào)整,而圖像預處理又包括圖像平滑和圖像銳化。圖像平滑就是消除噪聲對圖像造成的影響,圖像平滑的處理是通過高斯低通濾波法來實現(xiàn),這樣做雖然可以消除圖像受到噪聲的影響,但同時也存在著一定的弊端,圖像經(jīng)過處理之后會變得模糊。圖像銳化的目的就是讓模糊的圖像重新變得清晰。圖像模糊是由于圖像受到平均或積分運算而造成的,圖像銳化就是對其進行逆運算,重新使圖像變得清晰[3]。
4結(jié)論
嵌入式圖像處理系統(tǒng)的軟件系統(tǒng)主要包括初始化模塊、視頻捕獲模塊、視頻顯示模塊和圖像處理模塊,在確定了整個軟件系統(tǒng)的程序流程之后,就可以分別設(shè)計紛紛模塊的程序,最終完成整個軟件系統(tǒng)的設(shè)計。
參考文獻
[1]吳錫強.探析嵌入式圖像處理系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機光盤與軟件,2015,12(3):307-309.[2]蔣立豐.嵌入式圖像處理系統(tǒng)的設(shè)計與研究[D].東華大學,2013,22(21):11-13.[3]宋琦,牟曉光.嵌入式圖像處理系統(tǒng)設(shè)計[J].信息技術(shù)與信息化,2015,22(31):116-117
第四篇:嵌入式心得
11計科4班
115031303
4魯敏杰
嵌入式實習報告
實習內(nèi)容:學習并自己動手在Ubuntu系統(tǒng)下制作電子相框
實驗目的:Ubuntu操作系統(tǒng)的使用,利用C語言編寫程序制作電子相框第一周學習:學習Ubuntu操作系統(tǒng)的簡單使用
使用VMware 虛擬機搭建Ubuntu操作系統(tǒng)環(huán)境;作為主要由自由軟件構(gòu)建的操作系統(tǒng),Ubuntu具有龐大的社區(qū)力量,用戶可以方便地從社區(qū)獲得幫助。Ubuntu的一些基本命令操作如下所示:
Ls查看系統(tǒng)目錄下的文件
Cd進入目錄 后接地址cd..返回上級
Gedit進行編譯操作 后接需要編譯的文件
Cat查看文件 在編譯器中查看與vi 相似
Make進行編譯make clean 清理編譯
Ctrl+Alt+F2 進入Ubuntu系統(tǒng)的控制臺
Ctrl+Alt +F7退出控制臺操作
ctrl + C控制臺操作時終止程序運行
第二周學習:在Ubuntu中利用C語言實現(xiàn)圖片的特效運轉(zhuǎn)
電子相冊的主體結(jié)構(gòu)在編譯器中實現(xiàn)編譯,主要學習C語言程序的編寫實現(xiàn)圖片的特效顯示。圖片特效的實現(xiàn)學習完畢,就開始制作電子相冊,實現(xiàn)圖片的添加。
圖片的添加:圖片加入文件中。在showpic.c文件中實現(xiàn)特效 在main.c文件中實現(xiàn)顯示。用C語言編寫的特效有上到下、左到右、中間分屏、上下分屏、圓的擴展與縮小、四分屏等。
部分特效關(guān)鍵代碼如下:
畫點實現(xiàn)在屏幕中設(shè)定坐標、參數(shù)中添加了顏色
void pixel_point(struct fb_var_screeninfo fb_var,char *mem, int x, int
y, int color)//畫點函數(shù)
{int *buf =(int *)((fb_var.xres*y+x)*fb_var.bits_per_pixel/8 + mem);
*buf = color;
}
利用C語言實現(xiàn)畫圓的特效
void pixel_circle(struct fb_var_screeninfo fb_var, char *mem, int x, int
y,int len,int color)//畫圓
{int i,j;
for(i=0;i for(j=0;j if(((j-x)*(j-x)+(i-y)*(i-y))>(len*len))continue; else pixel_point(fb_var,mem,j,i,color); } 滿屏打印輸出函數(shù) voidpixel_full_screen(struct fb_var_screeninfo fb_var, char *mem,int color)//滿屏 {int i,j; for(i=0;i for(j=0;j pixel_point(fb_var,mem,j,i,color); usleep(1000); } 第三周學習:制作一個完整可運行的相冊程序 編程在showpic.c函數(shù)中實現(xiàn)圖片的特效輸出;修改showpic.c添加已有特效; 編程main.c實現(xiàn)圖片及特效的可控定向顯示;完成實際操作并成功運行通過驗收 學習心得: Ubuntu操作系統(tǒng)與Linux操作系統(tǒng)相似學習起來不難,超級終端的使用就是命令行的操作,這點在以前學習的Linux操作系統(tǒng)中有一定的基礎(chǔ)。最重要的感受就是特效算法的實現(xiàn)。這是一個學習C語言與linux的很好機會。出現(xiàn)問題: 1.自下到上或者自右到左實現(xiàn)特效時候無法正常運行,只能出現(xiàn)兩張圖片的一半效果。 2.分屏輸出出現(xiàn)很多重合的圖片,不能按照一定的速率打印。 解決問題: 多次刷屏,當讀出一半圖片時候,重新讀取另一半圖片以及新的另一半圖片。不能安裝預定的方式打印圖片 心得: 在為期三周的實習過程中,首先了解在VMware虛擬機上搭建的Ubuntu操作系統(tǒng),加深了對Linux系統(tǒng)的理解和認識。其次就是學會一些基本的圖片特效的實現(xiàn),由于時間緊迫的緣故,不能熟練的掌握。但是實現(xiàn)一些基本特效還是比較容易的,對C程序又有了新的理解??偸欠敢恍┖軠\顯的錯誤,說明還是學的不夠扎實。這次實習也給了重新認識自己的機會,知道了以前學到的跟實踐起來還是有很大的差別,面臨工作的壓力,我們這點能力是不夠看的。要想找到理想的工作,同志仍需努力! 專題課學習至今,學到了很多東西。而找工作時,各種筆試面試中,深刻地體會到“嵌入式系統(tǒng)”的重要性。這讓我更堅定了學好嵌入式系統(tǒng)的想法。 嵌入式系統(tǒng)這門課和C語言頗有關(guān)聯(lián),這也重新夯實了我的C語言基礎(chǔ)。而良好的C語言能力,也是學習嵌入式的必備基礎(chǔ)。我決定在學好基礎(chǔ)后,在對嵌入式進行擴展學習。 據(jù)了解嵌入式學習主要有兩方面:軟件和硬件。嵌入式軟件的比較多,而做硬件不多,但多是高手。嵌入式的軟件又有好多種,主要是針對不同CPU的,但是基本都是用C語言的,還有極少的匯編,主要在BOOT啟動、初始代碼中。目前來說,嵌入式Linux比較流行,安卓就是基于linux內(nèi)核的。wince、Vxworks什么的貌似不多,特別是vxworks。 我也對嵌入式系統(tǒng)的應用方面進行了了解。現(xiàn)在在市場還是蠻吃香的,可從事的就業(yè)方向還是蠻多的比如:消費類電子(手機、PDA、游戲機)、數(shù)字 多媒體(網(wǎng)絡(luò)點播、機頂盒)、汽車電子(導航儀)、醫(yī)療電子、工業(yè)控制等行業(yè)。 嵌入式系統(tǒng)是二十一世紀科技領(lǐng)域的重大創(chuàng)新,必將推進全球經(jīng)濟社會高速發(fā)展,實現(xiàn)人類發(fā)展史上的重大突破??茖W在發(fā)展,人類在進步,隨著一代又一代IT精英們的不斷努力,未來的嵌入式系統(tǒng)一定會是更加方便人們的工作、學習、生活的好伴侶。 據(jù)了解,嵌入式市場有非常大的機會,預計到2012年將有30億臺嵌入式設(shè)備交貨。這樣一個“爆炸性”的增長主要是由于終端用戶越來越基于連接性的用戶體驗及應用程序來購買具有智能、連接性、服務(wù)導向的設(shè)備。 附 嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行的裝置(”devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內(nèi)一個普遍被認同的定義是:以應用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專業(yè)計算機系統(tǒng)。 本文從嵌入式系統(tǒng)的 等方面來概要性地介紹嵌入式系統(tǒng)。 1.嵌入式系統(tǒng)的概念 1.1嵌入式系統(tǒng)的定義 根據(jù)IEEE(電氣和電子工程師協(xié)會)的定義,嵌入式系統(tǒng)是“控制、監(jiān)視或者輔助裝置、機器和設(shè)備運行的裝置”(devices used to control, monitor, or assist the operation of equipment, machinery or plants)。從中可以看出嵌入式系統(tǒng)是軟件和硬件的綜合體,還可以涵蓋機械等附屬裝置。目前國內(nèi)一個普遍被認同的定義是:以應用為中心、以計算機技術(shù)為基礎(chǔ)、軟件硬件可裁剪、適應應用系統(tǒng)對功能、可靠性、成本、體積、功耗嚴格要求的專業(yè)計算機系統(tǒng)。 1.2 嵌入式系統(tǒng)的特點 1.系統(tǒng)內(nèi)核小。由于嵌入式系統(tǒng)一般是應用于小型電子裝置的,系統(tǒng)的資源相對有限,所以內(nèi)核較之傳統(tǒng)的操作系統(tǒng)要小得多。 2.專用性強。嵌入式系統(tǒng)的個性化很強,其中的軟件系統(tǒng)和硬件的結(jié)合非常緊密,一般要針對硬件進行系統(tǒng)的移植,即使在同一品牌、同一系列的產(chǎn)品中也需要根據(jù)系統(tǒng)硬件的變化和增減不斷進行修改。同時針對不同的任務(wù),往往需要對系統(tǒng)進行較大更改,程序的編譯下載要和系統(tǒng)相結(jié)合,這種修改和通用軟件的“升級”是完全兩個概念。 3.系統(tǒng)精簡。嵌入式系統(tǒng)一般沒有系統(tǒng)軟件和應用軟件的明顯區(qū)分,不要求其功能設(shè)計及實現(xiàn)上過于復雜,這樣一方面利于控制系統(tǒng)成本,同時也利于實現(xiàn)系統(tǒng)安全。 4.高實時性的系統(tǒng)軟件(OS)是嵌入式軟件的基本要求。而且軟件要求固態(tài)存儲,以提高速度;軟件代碼要求高質(zhì)量和高可靠性。 5.嵌入式軟件開發(fā)要想走向標準化,就必須使用多任務(wù)的操作系統(tǒng)。嵌入式系統(tǒng)的應用程序可以沒有操作系統(tǒng)直接在芯片上運行;但是為了合理地調(diào)度多任務(wù)、利用系統(tǒng)資源、系統(tǒng)函數(shù)以及和專家?guī)旌瘮?shù)接口,用戶必須自行選配RTOS(Real-Time Operating System)開發(fā)平臺,這樣才能保證程序執(zhí)行的實時性、可靠性,并減少開發(fā)時間,保障軟件質(zhì)量。 6.嵌入式系統(tǒng)開發(fā)需要開發(fā)工具和環(huán)境。由于其本身不具備自舉開發(fā)能力,即使設(shè)計完成以后用戶通常也是不能對其中的程序功能進行修改的,必須有一套開發(fā)工具和環(huán)境才能進行開發(fā),這些工具和環(huán)境一般是基于通用計算機上的軟硬件設(shè)備以及各種邏輯分析儀、混合信號示波器等。開發(fā)時往往有主機和目標機的概念,主機用于程序的開發(fā),目標機作為最后的執(zhí)行機,開發(fā)時需要交替結(jié)合進行。 1.3幾個關(guān)鍵概念的解釋 1、嵌入式處理器 嵌入式系統(tǒng)的核心,是控制、輔助系統(tǒng)運行的硬件單元。范圍極其廣闊,從最初的4位處理器,目前仍在大規(guī)模應用的8位單片機,到最新的受到廣泛青睞的32位,64位嵌入式CPU。 2、實時操作系統(tǒng) 實時操作系統(tǒng)(RTOS-Real Time Operating System): 嵌入式系統(tǒng)目前最主要的組成部分。根據(jù)操作系統(tǒng)的工作特性,實時是指物理進程的真實時間。實時操作系統(tǒng)具有實時性,能從硬件方面支持實時控制系統(tǒng)工作的操作系統(tǒng)。其中實時性是第一要求,需要調(diào)度一切可利用的資源完成實時控制任務(wù),其次才著眼于提高計算機系統(tǒng)的使用效率,重要特點是要滿足對時間的限制和要求。 3、分時操作系統(tǒng) 對于分時操作系統(tǒng),軟件的執(zhí)行在時間上的要求,并不嚴格,時間上的錯誤,一般不會造成災難性的后果。目前分時系統(tǒng)的強項在于多任務(wù)的管理,而實時操作系統(tǒng)的重要特點是具有系統(tǒng)的可確定性,即系統(tǒng)能對運行情況的最好和最壞等的情況能做出精確的估計。 4、多任務(wù)操作系統(tǒng) 系統(tǒng)支持多任務(wù)管理和任務(wù)間的同步和通信,傳統(tǒng)的單片機系統(tǒng)和DOS系統(tǒng)等對多任務(wù)支持的功能很弱,而目前的Windows是典型的多任務(wù)操作系統(tǒng)。在嵌入式應用領(lǐng)域中,多任務(wù)是一個普遍的要求。 5、實時操作系統(tǒng)中的重要概念 系統(tǒng)響應時間(System response time):系統(tǒng)發(fā)出處理要求到系統(tǒng)給出應答信號的時間。 任務(wù)換道時間(Context-switching time):任務(wù)之間切換而使用的時間。 中斷延遲(Interrupt latency):機器接收到中斷信號到操作系統(tǒng)作出響應,并完成換道轉(zhuǎn)入中斷程序的時間。 6、實時操作系統(tǒng)的工作狀態(tài) 實時系統(tǒng)中的任務(wù)有四種狀態(tài):運行(Executing),就緒(Ready),掛起(Suspended),冬眠(Dormant)。 運行:獲得CPU控制權(quán)。 就緒:進入任務(wù)等待隊列,通過調(diào)度轉(zhuǎn)為運行狀態(tài)。 掛起:任務(wù)發(fā)生阻塞,移出任務(wù)等待隊列,等待系統(tǒng)實時事件的發(fā)生而喚醒,從而轉(zhuǎn)為就緒或運行。 冬眠:任務(wù)完成或錯誤等原因被清除的任務(wù),也可以認為是系統(tǒng)中不存在的任務(wù)。 任何時刻系統(tǒng)中只能有一個任務(wù)在運行狀態(tài),各任務(wù)按級別通過時間片分別獲得對CPU的訪問權(quán)。 2.嵌入式系統(tǒng)的組成 有關(guān)嵌入式系統(tǒng)的組成非常多,限于篇幅,本文只介紹其中機電最關(guān)鍵概念。嵌入式系統(tǒng)的組成 1)嵌入式系統(tǒng)硬件層。一般包括有:嵌入式處理器、存儲器、I/O系統(tǒng)和外設(shè) 2)嵌入式系統(tǒng)的軟件系統(tǒng)。包括:操作系統(tǒng)、應用軟件 嵌入式系統(tǒng)的開發(fā)工具(1)硬件開發(fā)工具包括:仿真器等;其它(示波器等)(2)軟件開發(fā)工具包括:編譯、連接、定位軟件,通常使用C語言;調(diào)試軟件。 3)中間層。它將系統(tǒng)軟件與底層硬件部分隔離,使得系統(tǒng)的底層設(shè)備驅(qū)動程序與硬件無關(guān)。4)應用層 一個嵌入式系統(tǒng)裝置一般都由嵌入式計算機系統(tǒng)和執(zhí)行裝置組成,如圖1-1所示,嵌入式計算機系統(tǒng)是整個嵌入式系統(tǒng)的核心,由硬件層、中間層、系統(tǒng)軟件層和應用軟件層組成。執(zhí)行裝置也稱為被控對象,它可以接受嵌入式計算機系統(tǒng)發(fā)出的控制命令,執(zhí)行所規(guī)定的操作或任務(wù)。 2.1硬件層 硬件層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設(shè)備接口和I/O接口(A/D、D/A、I/O等)。在一片嵌入式處理器基礎(chǔ)上添加電源電路、時鐘電路和存儲器電路,就構(gòu)成了一個嵌入式核心控制模塊。其中操作系統(tǒng)和應用程序都可以固化在ROM中。 2.1.1、嵌入式微處理器 嵌入式系統(tǒng)硬件層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在于嵌入式微處理器大多工作在為特定用戶群所專用設(shè)計的系統(tǒng)中,它將通用CPU許多由板卡完成的任務(wù)集成在芯片內(nèi)部,從而有利于嵌入式系統(tǒng)在設(shè)計時趨于小型化,同時還具有很高的效率和可靠性。 嵌入式微處理器的體系結(jié)構(gòu)可以采用馮諾依曼體系或哈佛體系結(jié)構(gòu);指令系統(tǒng)可以選用精簡指令系統(tǒng)(Reduced Instruction Set Computer,RISC)和復雜指令系統(tǒng)CISC(Complex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數(shù)據(jù)通道快速執(zhí)行每一條指令,從而提高了執(zhí)行效率并使CPU硬件結(jié)構(gòu)設(shè)計變得更為簡單。 嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鐘頻率和數(shù)據(jù)總線狂度,或集成了不同的外設(shè)和接口。據(jù)不完全統(tǒng)計,目前全世界嵌入式微處理器已經(jīng)超過1000多種,體系結(jié)構(gòu)有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導市場,僅以32位的產(chǎn)品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據(jù)具體的應用而決定的。 2.1.2、存儲器 嵌入式系統(tǒng)需要存儲器來存放和執(zhí)行代碼。嵌入式系統(tǒng)的存儲器包含Cache、主存和輔助存儲器。 1.Cache Cache是一種容量小、速度快的存儲器陣列它位于主存和嵌入式微處理器內(nèi)核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數(shù)據(jù)。 在嵌入式系統(tǒng)中Cache全部集成在嵌入式微處理器內(nèi),可分為數(shù)據(jù)Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會把Cache集成進去。 2.主存 主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統(tǒng)和用戶的程序及數(shù)據(jù)。它可以位于微處理器的內(nèi)部或外部,其容量為256KB~1GB,根據(jù)具體的應用而定,一般片內(nèi)存儲器容量小,速度快,片外存儲器容量大。 常用作主存的存儲器有: ROM類 NOR Flash、EPROM和PROM等。 RAM類 SRAM、DRAM和SDRAM等。 其中NOR Flash 憑借其可擦寫次數(shù)多、存儲速度快、存儲容量大、價格便宜等優(yōu)點,在嵌入式領(lǐng)域內(nèi)得到了廣泛應用。 3.輔助存儲器 輔助存儲器用來存放大數(shù)據(jù)量的程序代碼或信息,它的容量大、但讀取速度與主存相比就慢的很多,用來長期保存用戶的信息。 2.1.3、通用設(shè)備接口和I/O接口 嵌入式系統(tǒng)和外界交互需要一定形式的通用設(shè)備接口,如A/D、D/A、I/O等,外設(shè)通過和片外其他設(shè)備的或傳感器的連接來實現(xiàn)微處理器的輸入/輸出功能。 2.2軟件系統(tǒng) 系統(tǒng)軟件層由實施多任務(wù)操作系統(tǒng)(Real-time Operation System,RTOS)、文件系統(tǒng)、圖形用戶接口(Graphic User Interface,GUI)、網(wǎng)絡(luò)系統(tǒng)及通用組件模塊組成。RTOS是嵌入式應用軟件的基礎(chǔ)和開發(fā)平臺。 嵌入式實時操作系統(tǒng): 實時多任務(wù)操作系統(tǒng)(RTOS)是嵌入式應用軟件的基礎(chǔ)和開發(fā)平臺。RTOS是一段嵌入在目標代碼中的程序,系統(tǒng)復位后首先執(zhí)行,相當于用戶的主程序,其他程序都建立在RTOS之上。 2.3中間層 硬件層與軟件層之間為中間層,也稱為硬件抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統(tǒng)上層軟件與底層硬件分離開來,使系統(tǒng)的底層驅(qū)動程序與硬件無關(guān),上層軟件開發(fā)人員無需關(guān)心底層硬件的具體情況,根據(jù)BSP 層提供的接口即可進行開發(fā)。該層一般包含相關(guān)底層硬件的初始化、數(shù)據(jù)的輸入/輸出操作和硬件設(shè)備的配置功能。 BSP具有以下兩個特點: 硬件相關(guān)性:因為嵌入式實時系統(tǒng)的硬件環(huán)境具有應用相關(guān)性,而作為上層軟 件與硬件平臺之間的接口,BSP需要為操作系統(tǒng)提供操作和控制具體硬件的方法。 操作系統(tǒng)相關(guān)性:不同的操作系統(tǒng)具有各自的軟件層次結(jié)構(gòu),因此,不同的操作系統(tǒng)具有特定的硬件接口形式。 3.嵌入式系統(tǒng)的開發(fā) 3.1嵌入式兩種開發(fā) 硬件,主要使用語言是C語言和匯編,例如做dsp開發(fā),做驅(qū)動開發(fā),這類的開發(fā)對硬件要求比較高,短期內(nèi)比較難掌握,除非是專業(yè)人士,另外,這類開發(fā)的就業(yè)機會比較少,因為國內(nèi)的硬件設(shè)計力量很弱,稍復雜的硬件都交給國外公司設(shè)計,所以大學生找這樣的工作很難,這也是為什么很多這類的畢業(yè)生都轉(zhuǎn)行去做應用層的軟件開發(fā)或者做網(wǎng)絡(luò)維護之類的工作了。 軟件,主要基于嵌入式操作系統(tǒng),例如Symbian、Linux、Windows mobile、Android等等,開發(fā)人員主要從事嵌入式操作系統(tǒng)和應用軟件的開發(fā)。特點是:比較容易上手學習,就業(yè)機會多,因為嵌入式設(shè)備的增值很大程度上取決于嵌入式軟件,這占了嵌入式系統(tǒng)的最主要工作。越是智能設(shè)備越是復雜系統(tǒng),軟件越起關(guān)鍵作用,而且這是目前的趨勢,所以需要大量的研發(fā)人員,而且就業(yè)前景也非常的看好。 3.2嵌入式系統(tǒng)開發(fā)生命周期 硬件與軟件將同時進行開發(fā)。理解硬件與軟件功能相互之間的關(guān)系及界限有助于確保設(shè)計要求得到完整正確的理解和實現(xiàn)。 早在設(shè)計要求的定義與分析階段,就必須分配系統(tǒng)仿真、原型設(shè)計和行為建模結(jié)果、一旦分配結(jié)束,就可以立即著手具體的設(shè)計和實現(xiàn)。實時系統(tǒng)開發(fā)中軟硬件的并行設(shè)計會使用到各種分析技術(shù),包括: 1.硬件與軟件仿真; 2.硬件/軟件協(xié)同仿真; 3.可調(diào)度的建模技術(shù),如速率恒定分析; 4.原型設(shè)計和漸進式開發(fā)。 低層仿真可以用來為總線寬度和數(shù)據(jù)流程建模,這對性能評估是非常有用的。高層仿真可以滿足功能的交互,并促成硬件/軟件權(quán)衡研究及有效性設(shè)計。 4.嵌入式系統(tǒng)的現(xiàn)狀與發(fā)展 發(fā)展現(xiàn)狀: 隨著信息化,智能化,網(wǎng)絡(luò)化的發(fā)展,嵌入式系統(tǒng)技術(shù)也將獲得廣闊的發(fā)展空間。 硬件方面,不僅有各大公司的微處理器芯片,還有用于學習和研發(fā)的各種配套開發(fā)包。目前低層系統(tǒng)和硬件平臺經(jīng)過若干年的研究,已經(jīng)相對比較成熟,實現(xiàn)各種功能的芯片應有盡有。而且巨大的市場需求給我們提供了學習研發(fā)的資金和技術(shù)力量。 從軟件方面講,也有相當部分的成熟軟件系統(tǒng)。國外商品化的嵌入式實時操作系統(tǒng),已進入我國市場的有WindRiver、Microsoft、QNX和Nuclear等產(chǎn)品。 發(fā)展趨勢: 信息時代,數(shù)字時代使得嵌入式產(chǎn)品獲得了巨大的發(fā)展契機,為嵌入式市場展現(xiàn)了美好的前景,同時也對嵌入式生產(chǎn)廠商提出了新的挑戰(zhàn),從中我們可以看出未來嵌入式系統(tǒng)的幾大發(fā)展趨勢:。 1.嵌入式開發(fā)是一項系統(tǒng)工程,因此要求嵌入式系統(tǒng)廠商不僅要提供嵌入式軟硬件系統(tǒng)本身,同時還需要提供強大的硬件開發(fā)工具和數(shù)據(jù)庫支持。 目前很多廠商已經(jīng)充分考慮到這一點,在主推系統(tǒng)的同時,將開發(fā)環(huán)境也作為重點推廣。2.網(wǎng)絡(luò)互聯(lián)成為必然趨勢。 未來的嵌入式設(shè)備為了適應網(wǎng)絡(luò)發(fā)展的要求,必然要求硬件上提供各種通信接口。傳統(tǒng)的單片機對于網(wǎng)絡(luò)支持不足,而新一代的嵌入式處理器已經(jīng)開始內(nèi)嵌網(wǎng)絡(luò)接口,支持更多協(xié)議。 3.精簡系統(tǒng)內(nèi)核、算法,降低功耗和軟硬件成本。 未來的嵌入式產(chǎn)品是軟硬件緊密結(jié)合的設(shè)備,為了減低功耗和成本,需要設(shè)計者盡量精簡系統(tǒng)內(nèi)核,只保留和系統(tǒng)功能緊密相關(guān)的軟硬件。第五篇:報告嵌入式心得