基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計_第1頁
基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計_第2頁
基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計_第3頁
基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計_第4頁
基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、基于嵌入式實時系統(tǒng)設(shè)計模式的設(shè)計1 引言從系統(tǒng)的觀點來看,嵌入式實時系統(tǒng)也是系統(tǒng),特別是硬件技術(shù)的快速發(fā)展,嵌入式實時軟件也有快速適應(yīng)硬件型號升級問題,也有業(yè)務(wù)快速變更要求以及可伸縮、可修改、可復(fù)用等方面的問題。但面向?qū)ο蠹夹g(shù)對于實時性、可靠性的描述并不適合,在嵌入式實時應(yīng)用中依然不是主流設(shè)計方法,從而引入了模式的概念。最早也是最基礎(chǔ)的設(shè)計模式是Liskov提出的七種基本模式,并提出對象構(gòu)成模式的五條基本準(zhǔn)則1-4,為面向?qū)ο笤O(shè)計模式奠定了理論基礎(chǔ)。Gamma等四人提出了常用的25種設(shè)計模式5,為用模式設(shè)計軟件體系結(jié)構(gòu)提供了工程實踐的基礎(chǔ)。不過Gamma的模式作用域是局部的,只在單個的協(xié)作內(nèi)。

2、Bruce Douglas將兩個重要的軟件工程進(jìn)展-模式和UML相結(jié)合,成功地應(yīng)用在主流實時軟件傳統(tǒng)使用的概念和技術(shù)中6。本文討論的模式ERTSDP是基于Bruce Douglass的實時設(shè)計模式基礎(chǔ)之上,對典型嵌入式實時系統(tǒng)的設(shè)計解決方案加以總結(jié)抽象,提出的一套完整的設(shè)計思路。這一模式的提出可以促使本領(lǐng)域軟件開發(fā)速度成倍的提高,更為重要的是軟件質(zhì)量也可以得到保證。2嵌入式實時系統(tǒng)設(shè)計模式(ERTSDP)研究2.1 設(shè)計模式的定義設(shè)計模式7-9是對經(jīng)常出現(xiàn)問題的泛解。模式由三個重要的方面組成:第一是問題(problem),這是要以模式來處理的設(shè)計的某個方面的陳述,也就是要用模式解決的某些優(yōu)化和

3、QoS的側(cè)面。第二是解決方案(solution),也就是模式本身,模式用指明了角色的結(jié)構(gòu)圖表示。最后是結(jié)果(consequences)。2.2 ERTSDP (Embedded Real-Time Systems Design Pattern)1目的針對嵌入式實時系統(tǒng)分析和設(shè)計過程中的問題進(jìn)行抽象并建立模型,使得新系統(tǒng)可以通過模式匹配、實例化等手段快速建立,從而達(dá)到縮短嵌入式實時產(chǎn)品開發(fā)周期的目的。2解解即模式本身,2.3小節(jié)將詳細(xì)討論。3結(jié)果結(jié)果是使用模式后的一組利弊,將在本文最后討論。2.3 模式的解2.3.1 系統(tǒng)分析分析的目的是定義待開發(fā)系統(tǒng)的基本性質(zhì)。一般來說,分析是一個黑箱視圖,而

4、設(shè)計則按某個服務(wù)質(zhì)量QoS的要求提供充分的功能。對系統(tǒng)的分析又可分為兩個階段:需求分析階段和系統(tǒng)工程階段。(1)需求分析階段在需求階段盡可能詳細(xì)地標(biāo)識和捕獲當(dāng)前原型的需求,可用順序圖、狀態(tài)圖、活動圖、正文描述以及約束等的組合對需求加以描述。(2)系統(tǒng)工程階段系統(tǒng)工程階段實際是做高層的體系結(jié)構(gòu)設(shè)計。系統(tǒng)工程階段主要定義子系統(tǒng)的體系結(jié)構(gòu)、子系統(tǒng)的接口及交互協(xié)議、將系統(tǒng)的用例和需求分解為子系統(tǒng)的用例和需求以及對系統(tǒng)的算法分析和控制法則規(guī)范說明。2.3.2 系統(tǒng)設(shè)計設(shè)計就是該問題的具體解決方案,是對分析模型的優(yōu)化。優(yōu)化準(zhǔn)則的集合就是要求的系統(tǒng)服務(wù)質(zhì)量QoS。如果把每個QoS方面看作是獨立的特征并具有相

5、對重要性的加權(quán)因子,那么一個好的設(shè)計就是找出下面公式的最小值。Min QoSFeaturej * Weightj 其中Weightj指的是與第j個QoSFeature相關(guān)的相對重要性。對系統(tǒng)的設(shè)計也分為兩個階段:體系結(jié)構(gòu)設(shè)計階段和詳細(xì)設(shè)計階段。(1)體系結(jié)構(gòu)設(shè)計階段體系結(jié)構(gòu)包括邏輯體系結(jié)構(gòu)和物理體系結(jié)構(gòu)。邏輯體系結(jié)構(gòu)只涉及模型本身如何組織,這種組織可簡可繁,取決于小組需要用它構(gòu)造什么;物理體系結(jié)構(gòu)指的是組織存在于運行時的事物。這一階段用五層體系結(jié)構(gòu)視圖、子系統(tǒng)視圖和資源并發(fā)視圖等來描述。五層體系結(jié)構(gòu)視圖6是一個特定的體系結(jié)構(gòu),作用于許多嵌入式和實時系統(tǒng)的通用結(jié)構(gòu)。它包含五個域:應(yīng)用域(appl

6、ication domain)、用戶界面域(user interface domain)、通信域(communication domain)、抽象操作系統(tǒng)域(abstract OS domain)和抽象硬件域(abstract hardware domain)。子系統(tǒng)視圖是表示重要子系統(tǒng)的類圖,多用于對系統(tǒng)進(jìn)行細(xì)化時。資源并發(fā)視圖是實時和嵌入式系統(tǒng)一個最突出的特點。一個有資源服務(wù)的元素,它的有效性由一個或多個服務(wù)質(zhì)量(QoS)特性來定義。QoS是資源的量化性質(zhì),如容量、執(zhí)行速度、可靠性等等。(2)詳細(xì)設(shè)計階段詳細(xì)設(shè)計階段是對對象和類的內(nèi)部精細(xì)加工,它只限制在單個對象和類之中。詳細(xì)設(shè)計時,多數(shù)優(yōu)

7、化都集中在數(shù)據(jù)構(gòu)造、算法分解、對象狀態(tài)機的優(yōu)化、對象實現(xiàn)策略、關(guān)聯(lián)的實現(xiàn)以及可見性和封裝問題等方面。模式是對設(shè)計中一般問題的抽象,所以針對具體應(yīng)用的模式匹配以及實例化是可根據(jù)需要對ERTSDP變動的。譬如,需求分析階段可以根據(jù)問題的復(fù)雜性對描述手段任意組合;系統(tǒng)工程階段也是微周期中的可選部分;如果系統(tǒng)非常復(fù)雜,可以遞歸調(diào)用子系統(tǒng)視圖對系統(tǒng)分解、分級細(xì)化;還可在體系結(jié)構(gòu)設(shè)計時增加Activity圖實現(xiàn)對任務(wù)的劃分,增加sequence圖對系統(tǒng)運行流程描述??傊诰唧w應(yīng)用中可以靈活的應(yīng)用模式來輔助設(shè)計。下面通過對常見的嵌入式實時系統(tǒng)-遠(yuǎn)程監(jiān)控系統(tǒng)應(yīng)用ERTSDP模式進(jìn)行分析和設(shè)計,闡述了實例化模

8、式的方法,同時也是對這一模式的討論和驗證。3 基于ERTSDP的遠(yuǎn)程監(jiān)控系統(tǒng)3.1 系統(tǒng)需求分析遠(yuǎn)程監(jiān)控系統(tǒng)現(xiàn)在已經(jīng)深透到社會的各個方面,簡而言之,遠(yuǎn)程監(jiān)控系統(tǒng)就是將現(xiàn)場設(shè)備的運行數(shù)據(jù)發(fā)送至遠(yuǎn)端加以監(jiān)測和控制。本系統(tǒng)投入運行后預(yù)期的用戶有三類:普通用戶、系統(tǒng)管理員、故障專家。他們具有不同的職責(zé),因而賦予了不同的權(quán)限。圖1的Use Case框圖可以清晰地反映出他們各自的權(quán)限職責(zé)。圖1 遠(yuǎn)程監(jiān)控系統(tǒng)的Use Case框圖3.2 系統(tǒng)體系結(jié)構(gòu)設(shè)計本系統(tǒng)包含三個子系統(tǒng)-NetWeb、NetIO和RemoteClient(見圖2)。NetWeb是整個系統(tǒng)的核心,承擔(dān)著實時/歷史數(shù)據(jù)管理、報警條件檢測,存

9、貯用戶組態(tài)信息等功能;NetIO用于實現(xiàn)現(xiàn)場數(shù)據(jù)的采集(輸入)和裝置的控制(輸出);RemoteClient則實現(xiàn)了客戶端圖形用戶界面的功能。其中NetWeb和NetIO通過RS485總線進(jìn)行通訊,NetWeb 和RemoteClient則通過socket進(jìn)行信息交換。NetWeb運行在嵌入式開發(fā)板上,操作系統(tǒng)是自主研發(fā)的嵌入式實時Linux,采用的方案設(shè)計是uClinux+RTAI。圖2 遠(yuǎn)程監(jiān)控系統(tǒng)的五層體系結(jié)構(gòu)視圖3.3 子系統(tǒng)視圖子系統(tǒng)視圖是表示重要子系統(tǒng)的類圖,多用于對系統(tǒng)進(jìn)行細(xì)化時。圖3是細(xì)化后的NetWeb子系統(tǒng),從圖中可以看到,特殊的雙內(nèi)核OS-uClinx+RTAI決定了Ne

10、tWeb模塊分為實時應(yīng)用和非實時應(yīng)用。下面將從初始化和運行兩方面對圖3詳細(xì)解釋。圖3 NetWeb模塊的子系統(tǒng)視圖3.3.1 NetWeb子系統(tǒng)初始化NetWeb子系統(tǒng)初始化過程主要由KernelInit模塊和UserInit模塊(圖中灰色的模塊)實現(xiàn)。首先KernelInit模塊執(zhí)行,完成內(nèi)核空間的初始化任務(wù);然后啟動UserInit模塊,這個過程比較復(fù)雜,首先Store模塊將系統(tǒng)存儲的配置信息和數(shù)據(jù)信息傳給UserInit模塊(標(biāo)注1所示),然后KernelInit模塊驅(qū)動485Driver模塊實時采集當(dāng)前模塊的信息,傳送給UserInit模塊(標(biāo)注3、2所示),UserInit模塊經(jīng)過兩

11、者信息的比較,確定采集的對象,以及模塊信息的變更、系統(tǒng)狀態(tài)的變更等,最終完成初始化工作。3.3.2 NetWeb子系統(tǒng)運行流程當(dāng)系統(tǒng)完成初始化開始運行后,Gather模塊調(diào)用485Driver模塊相關(guān)接口API對底層32個NetIO模塊進(jìn)行輪詢式采集,采集上來的數(shù)據(jù)經(jīng)過過濾整合后,正常的數(shù)據(jù)傳送至Transfer模塊,這時調(diào)用RTAI內(nèi)核中的RT_SHM模塊實現(xiàn)內(nèi)核和用戶空間大規(guī)模數(shù)據(jù)的共享(見標(biāo)注4)。Receive模塊從RT_SHM接受到數(shù)據(jù),送到Store模塊存儲,然后根據(jù)用戶要求送到Socket模塊傳到遠(yuǎn)程客戶端。如果過濾整合時發(fā)現(xiàn)數(shù)據(jù)異常,就驅(qū)動AlarmKernel模塊,這個模塊啟

12、動RTAI的RT_FIFO模塊,將需報警數(shù)據(jù)通過管道(見標(biāo)注5)傳送至用戶空間的AlarmUser模塊。AlarmUser模塊再驅(qū)動Email模塊以郵件的形式完成報警。3.4 資源并發(fā)視圖本系統(tǒng)中任務(wù)間資源共享的方式主要有兩種:共享內(nèi)存和消息隊列。圖4和圖5分別對這兩種資源共享方式采用并發(fā)視圖進(jìn)行了分析。圖4 共享內(nèi)存訪問并發(fā)視圖共享內(nèi)存對于大規(guī)模的數(shù)據(jù)共享非常適用,這里討論的是RTAI提供的實時SHM。RT_SHM并沒有提供任何互斥機制來控制實時進(jìn)程和非實時進(jìn)程訪問同步性(對于實時任務(wù)或非實時任務(wù)之間的共享有保護(hù)措施,故不再考慮),雖然可以自己實現(xiàn)一些lock機制來控制,但是考慮到內(nèi)核任務(wù)的

13、優(yōu)先級遠(yuǎn)高于用戶任務(wù),即實時任務(wù)從來不會被非實時任務(wù)中斷,所以實時任務(wù)對共享區(qū)寫數(shù)據(jù)時永遠(yuǎn)是一次性寫完所有模塊信息,而且這些數(shù)據(jù)的時間戳是一致的,可以保證數(shù)據(jù)的正確性(如圖4);而非實時任務(wù)讀共享數(shù)據(jù)時是可能發(fā)生過程中被中斷的情況,導(dǎo)致可能一次讀取的模塊數(shù)據(jù)的時間戳不一致。但實際中寫進(jìn)程的速度遠(yuǎn)遠(yuǎn)大于讀進(jìn)程的速度,同時考慮到實際運行時模塊數(shù)據(jù)變化是連續(xù)的,同一模塊不同時間戳采集的數(shù)據(jù)變化率不會很大,而現(xiàn)階段讀進(jìn)程只要滿足用戶需要的刷新頻率(QoS)就足夠了,所以對于數(shù)據(jù)部分丟失現(xiàn)階段并不可惜。圖5 消息隊列訪問并發(fā)視圖消息隊列提供了一種傳輸多條消息的機制。如圖5所示,Sender線程因響應(yīng)ev

14、Run事件而運行。Sender類調(diào)用rQueue:insert()操作,并鎖定信號燈。在rQueue:insert()操作過程中,該線程被更高優(yōu)先級的Receiver線程中斷。Receiver試圖檢查在其隊列中新加入的消息。它調(diào)用rQueue:remove(),同時試圖鎖定信號燈。如果失敗,Receiver自動掛起或被阻塞,因為信號燈已經(jīng)被鎖定到Sender線程,這使得Sender線程繼續(xù)工作,完成store()操作。一旦完成,rQueue類釋放它的信號燈。它將解除對Receiver線程的阻塞,Receiver線程這時可以鎖定信號燈,讀取等待在隊列中的消息,解除信號燈的鎖定,處理收到的消息。4 系統(tǒng)仿真平臺通過應(yīng)用ERTSDP模式對遠(yuǎn)程監(jiān)控系統(tǒng)分析、設(shè)計以及實現(xiàn),滿足了用戶預(yù)期的需求。為了對系統(tǒng)功能、性能進(jìn)一步驗證,搭建了系統(tǒng)仿真實驗平臺(如圖6)。圖中標(biāo)注為NetWeb的模塊就是系統(tǒng)的嵌入式裝置,這一模塊內(nèi)部是net-start開發(fā)板,操作系統(tǒng)是嵌入式實時Linux,子系統(tǒng)NetWeb的所有功能就運行其上。并排的五個模塊都是NetIO模塊,分別連接有不同的輸入/輸出信號,可以看到它們是通過RS4

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論