日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式教程
[導讀]基于嵌入式實時系統設計模式的研究與應用

1 引言

從系統的觀點來看,嵌入式實時系統也是系統,特別是硬件技術的快速發(fā)展,嵌入式實時軟件也有快速適應硬件型號升級問題,也有業(yè)務快速變更要求以及可伸縮、可修改、可復用等方面的問題。但面向對象技術對于實時性、可靠性的描述并不適合,在嵌入式實時應用中依然不是主流設計方法,從而引入了模式的概念。

最早也是最基礎的設計模式是Liskov提出的七種基本模式,并提出對象構成模式的五條基本準則[1-4],為面向對象設計模式奠定了理論基礎。Gamma等四人提出了常用的25種設計模式[5],為用模式設計軟件體系結構提供了工程實踐的基礎。不過Gamma的模式作用域是局部的,只在單個的協作內。Bruce Douglas將兩個重要的軟件工程進展--模式和UML相結合,成功地應用在主流實時軟件傳統使用的概念和技術中[6]。

本文討論的模式ERTSDP是基于Bruce Douglass的實時設計模式基礎之上,對典型嵌入式實時系統的設計解決方案加以總結抽象,提出的一套完整的設計思路。這一模式的提出可以促使本領域軟件開發(fā)速度成倍的提高,更為重要的是軟件質量也可以得到保證。

2嵌入式實時系統設計模式(ERTSDP)研究

2.1 設計模式的定義

設計模式[7-9]是對經常出現問題的泛解。模式由三個重要的方面組成:第一是問題(problem),這是要以模式來處理的設計的某個方面的陳述,也就是要用模式解決的某些優(yōu)化和QoS的側面。第二是解決方案(solution),也就是模式本身,模式用指明了角色的結構圖表示。最后是結果(consequences)。

2.2 ERTSDP (Embedded Real-Time Systems Design Pattern)

1.目的

針對嵌入式實時系統分析和設計過程中的問題進行抽象并建立模型,使得新系統可以通過模式匹配、實例化等手段快速建立,從而達到縮短嵌入式實時產品開發(fā)周期的目的。

2.解

解即模式本身,2.3小節(jié)將詳細討論。

3.結果

結果是使用模式后的一組利弊,將在本文最后討論。

2.3 模式的解

2.3.1 系統分析

分析的目的是定義待開發(fā)系統的基本性質。一般來說,分析是一個黑箱視圖,而設計則按某個服務質量QoS的要求提供充分的功能。對系統的分析又可分為兩個階段:需求分析階段和系統工程階段。

(1)需求分析階段

在需求階段盡可能詳細地標識和捕獲當前原型的需求,可用順序圖、狀態(tài)圖、活動圖、正文描述以及約束等的組合對需求加以描述。

(2)系統工程階段

系統工程階段實際是做高層的體系結構設計。系統工程階段主要定義子系統的體系結構、子系統的接口及交互協議、將系統的用例和需求分解為子系統的用例和需求以及對系統的算法分析和控制法則規(guī)范說明。

2.3.2 系統設計

設計就是該問題的具體解決方案,是對分析模型的優(yōu)化。優(yōu)化準則的集合就是要求的系統服務質量QoS。如果把每個QoS方面看作是獨立的特征并具有相對重要性的加權因子,那么一個好的設計就是找出下面公式的最小值。

Min [ΣQoSFeaturej * Weightj ]

其中Weightj指的是與第j個QoSFeature相關的相對重要性。對系統的設計也分為兩個階段:體系結構設計階段和詳細設計階段。

(1)體系結構設計階段

體系結構包括邏輯體系結構和物理體系結構。邏輯體系結構只涉及模型本身如何組織,這種組織可簡可繁,取決于小組需要用它構造什么;物理體系結構指的是組織存在于運行時的事物。這一階段用五層體系結構視圖、子系統視圖和資源并發(fā)視圖等來描述。

五層體系結構視圖[6]是一個特定的體系結構,作用于許多嵌入式和實時系統的通用結構。它包含五個域:應用域(application domain)、用戶界面域(user interface domain)、通信域(communication domain)、抽象操作系統域(abstract OS domain)和抽象硬件域(abstract hardware domain)。

子系統視圖是表示重要子系統的類圖,多用于對系統進行細化時。

資源并發(fā)視圖是實時和嵌入式系統一個最突出的特點。一個有資源服務的元素,它的有效性由一個或多個服務質量(QoS)特性來定義。QoS是資源的量化性質,如容量、執(zhí)行速度、可靠性等等。

(2)詳細設計階段

詳細設計階段是對對象和類的內部精細加工,它只限制在單個對象和類之中。詳細設計時,多數優(yōu)化都集中在數據構造、算法分解、對象狀態(tài)機的優(yōu)化、對象實現策略、關聯的實現以及可見性和封裝問題等方面。

模式是對設計中一般問題的抽象,所以針對具體應用的模式匹配以及實例化是可根據需要對ERTSDP變動的。譬如,需求分析階段可以根據問題的復雜性對描述手段任意組合;系統工程階段也是微周期中的可選部分;如果系統非常復雜,可以遞歸調用子系統視圖對系統分解、分級細化;還可在體系結構設計時增加Activity圖實現對任務的劃分,增加sequence圖對系統運行流程描述。

總之,在具體應用中可以靈活的應用模式來輔助設計。下面通過對常見的嵌入式實時系統--遠程監(jiān)控系統應用ERTSDP模式進行分析和設計,闡述了實例化模式的方法,同時也是對這一模式的討論和驗證。[!--empirenews.page--]

3 基于ERTSDP的遠程監(jiān)控系統

3.1 系統需求分析

遠程監(jiān)控系統現在已經深透到社會的各個方面,簡而言之,遠程監(jiān)控系統就是將現場設備的運行數據發(fā)送至遠端加以監(jiān)測和控制。本系統投入運行后預期的用戶有三類:普通用戶、系統管理員、故障專家。他們具有不同的職責,因而賦予了不同的權限。圖1的Use Case框圖可以清晰地反映出他們各自的權限職責。





圖1 遠程監(jiān)控系統的Use Case框圖

3.2 系統體系結構設計

本系統包含三個子系統--NetWeb、NetIO和RemoteClient(見圖2)。NetWeb是整個系統的核心,承擔著實時/歷史數據管理、報警條件檢測,存貯用戶組態(tài)信息等功能;NetIO用于實現現場數據的采集(輸入)和裝置的控制(輸出);RemoteClient則實現了客戶端圖形用戶界面的功能。其中NetWeb和NetIO通過RS485總線進行通訊,NetWeb 和RemoteClient則通過socket進行信息交換。

NetWeb運行在嵌入式開發(fā)板上,操作系統是自主研發(fā)的嵌入式實時Linux,采用的方案設計是uClinux+RTAI。



圖2 遠程監(jiān)控系統的五層體系結構視圖

3.3 子系統視圖

子系統視圖是表示重要子系統的類圖,多用于對系統進行細化時。圖3是細化后的NetWeb子系統,從圖中可以看到,特殊的雙內核OS--uClinx+RTAI決定了NetWeb模塊分為實時應用和非實時應用。下面將從初始化和運行兩方面對圖3詳細解釋。



圖3 NetWeb模塊的子系統視圖

3.3.1 NetWeb子系統初始化

NetWeb子系統初始化過程主要由KernelInit模塊和UserInit模塊(圖中灰色的模塊)實現。首先KernelInit模塊執(zhí)行,完成內核空間的初始化任務;然后啟動UserInit模塊,這個過程比較復雜,首先Store模塊將系統存儲的配置信息和數據信息傳給UserInit模塊(標注{1}所示),然后KernelInit模塊驅動485Driver模塊實時采集當前模塊的信息,傳送給UserInit模塊(標注{3}、{2}所示),UserInit模塊經過兩者信息的比較,確定采集的對象,以及模塊信息的變更、系統狀態(tài)的變更等,最終完成初始化工作。

3.3.2 NetWeb子系統運行流程

當系統完成初始化開始運行后,Gather模塊調用485Driver模塊相關接口API對底層32個NetIO模塊進行輪詢式采集,采集上來的數據經過過濾整合后,正常的數據傳送至Transfer模塊,這時調用RTAI內核中的RT_SHM模塊實現內核和用戶空間大規(guī)模數據的共享(見標注{4})。Receive模塊從RT_SHM接受到數據,送到Store模塊存儲,然后根據用戶要求送到Socket模塊傳到遠程客戶端。如果過濾整合時發(fā)現數據異常,就驅動AlarmKernel模塊,這個模塊啟動RTAI的RT_FIFO模塊,將需報警數據通過管道(見標注{5})傳送至用戶空間的AlarmUser模塊。AlarmUser模塊再驅動Email模塊以郵件的形式完成報警。[!--empirenews.page--]

3.4 資源并發(fā)視圖

本系統中任務間資源共享的方式主要有兩種:共享內存和消息隊列。圖4和圖5分別對這兩種資源共享方式采用并發(fā)視圖進行了分析。



圖4 共享內存訪問并發(fā)視圖

共享內存對于大規(guī)模的數據共享非常適用,這里討論的是RTAI提供的實時SHM。RT_SHM并沒有提供任何互斥機制來控制實時進程和非實時進程訪問同步性(對于實時任務或非實時任務之間的共享有保護措施,故不再考慮),雖然可以自己實現一些lock機制來控制,但是考慮到內核任務的優(yōu)先級遠高于用戶任務,即實時任務從來不會被非實時任務中斷,所以實時任務對共享區(qū)寫數據時永遠是一次性寫完所有模塊信息,而且這些數據的時間戳是一致的,可以保證數據的正確性(如圖4);而非實時任務讀共享數據時是可能發(fā)生過程中被中斷的情況,導致可能一次讀取的模塊數據的時間戳不一致。但實際中寫進程的速度遠遠大于讀進程的速度,同時考慮到實際運行時模塊數據變化是連續(xù)的,同一模塊不同時間戳采集的數據變化率不會很大,而現階段讀進程只要滿足用戶需要的刷新頻率(QoS)就足夠了,所以對于數據部分丟失現階段并不可惜。



圖5 消息隊列訪問并發(fā)視圖

消息隊列提供了一種傳輸多條消息的機制。如圖5所示,Sender線程因響應evRun事件而運行。Sender類調用rQueue::insert()操作,并鎖定信號燈。在rQueue::insert()操作過程中,該線程被更高優(yōu)先級的Receiver線程中斷。Receiver試圖檢查在其隊列中新加入的消息。它調用rQueue::remove(),同時試圖鎖定信號燈。如果失敗,Receiver自動掛起或被阻塞,因為信號燈已經被鎖定到Sender線程,這使得Sender線程繼續(xù)工作,完成store()操作。一旦完成,rQueue類釋放它的信號燈。它將解除對Receiver線程的阻塞,Receiver線程這時可以鎖定信號燈,讀取等待在隊列中的消息,解除信號燈的鎖定,處理收到的消息。

4 系統仿真平臺

通過應用ERTSDP模式對遠程監(jiān)控系統分析、設計以及實現,滿足了用戶預期的需求。為了對系統功能、性能進一步驗證,搭建了系統仿真實驗平臺(如圖6)。圖中標注為NetWeb的模塊就是系統的嵌入式裝置,這一模塊內部是net-start開發(fā)板,操作系統是嵌入式實時Linux,子系統NetWeb的所有功能就運行其上。并排的五個模塊都是NetIO模塊,分別連接有不同的輸入/輸出信號,可以看到它們是通過RS-485與NetWeb相連。AI模塊通過傳感器采集到燈泡(圖中$圓圈)的溫度值,根據溫度的高低決定是否啟動DO模塊輸出控制風扇的轉動。同時AO模塊可以根據用戶需求,經由可控硅的控制可變電壓,進而調節(jié)燈泡的亮暗程度。



圖6 實驗系統平臺結構

5 結論

本文提出的設計模式ERTSDP是一種構建系統的完整解決方案,旨在為典型的嵌入式實時應用提供分析設計的模型。實踐證明這一模式非常適用于實時性、可靠性的描述,可以有效地提高嵌入式實時領域軟件的開發(fā)速度,并使軟件的質量得以保證。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

經過幾十年發(fā)展,嵌入式技術已經用在了我們生活中的方方面面,但是嵌入式始終都帶有小眾,專業(yè)性強的屬性,讓很多非嵌入式領域的同學望而卻步。近十幾年的發(fā)展,物聯網覆蓋了越來越多領域,包括了家居,商業(yè),工業(yè),農業(yè)等領域,不僅吸引...

關鍵字: 嵌入式 物聯網 技術

隨著IT技術飛速發(fā)展,互聯網已經進入了“物聯網”時代。物聯網中需要的大量設備不在依賴人與人之間的交互產生聯系,更多通過協議、通信、程序設計等方式連接到一處。即 “物聯網”的目的則是讓所有的物品都具有計算機的智能但并不以通...

關鍵字: 嵌入式 物聯網 計算機

最近看到APP上,給我推送了很多類似的回答,借此機會,也想著重新審視一下自己的學習歷程,以及結合自身和大牛,分享一些學習經驗,希望對大家有所啟發(fā)和幫助。

關鍵字: APP 嵌入式 C語言

即將與Farfetch合并的奢侈時尚電商平臺Yoox Net-a-Porter日前宣布Alison Loehnis為臨時首席執(zhí)行官,任命自10月31日起生效。Alison Loehnis于2007年首次加入Net-a-P...

關鍵字: NET TE ISO NI

大家好,我是鲏。認識我的朋友都知道,我是一個實踐派,相比研究枯燥的理論知識,我更喜歡做自己想做的項目,用技術來實現自己的想法的感覺真的很棒。所以從大學期間一直到現在,除了工作中的項目外,我依然保持著自己做項目的習慣,有堅...

關鍵字: 系統設計 技術選型 需求分析

萬物智聯時代,嵌入式技術及其應用的形態(tài)將更加豐富和多元,同時也將日益呈現深度物理融合、混合架構共存、群體智能協同、網絡安全攸關等諸多新的計算特性。顯然,經典的嵌入式系統體系結構、軟硬件技術和開發(fā)方法都已很難應對新趨勢下的...

關鍵字: 嵌入式 物聯網 計算機

物聯網是新一代信息技術的重要組成部分,是互聯網與嵌入式系統發(fā)展到高級階段的融合。通用計算機經歷了從智慧平臺到互聯網的獨立發(fā)展道路;嵌入式系統則經歷了智慧物聯到局域智慧物聯的獨立發(fā)展道路。

關鍵字: 嵌入式 物聯網 計算機

今天,小編將在這篇文章中為大家?guī)砉た刂靼宓挠嘘P報道,通過閱讀這篇文章,大家可以對工控主板具備清晰的認識,主要內容如下。

關鍵字: 工控主板 嵌入式 主板

隨著工業(yè)4.0、醫(yī)療電子、智能家居、物流管理和電力控制等快速的發(fā)展和推進,嵌入式系統利用自身的技術特點,逐漸成為眾多行業(yè)的標配產品。嵌入式系統具有可控制、可編程、成本低等,它在未來的工業(yè)和生活中有著廣闊的應用前景。在現在...

關鍵字: 嵌入式 物聯網 人工智能

長久來看,嵌入式只會越來越火,隨著人工智能時代的發(fā)展,嵌入式必定又將迎來一次浪潮和技術的巨大變革。人工智能越是想要表達智能水平,就越要依靠嵌入式技術,嵌入式技術將朝著自動化控制和人機交互發(fā)展。嵌入式因其體積小、可靠性高、...

關鍵字: 嵌入式 物聯網 人工智能

嵌入式教程

6897 篇文章

關注

發(fā)布文章

編輯精選

技術子站

關閉