在設計關鍵任務和實時性系統時,設計師必須滿足功能性要求和非功能性屬性,如性能(吞吐量和服務質量)、保護、可靠性、時間緊迫性、安全和容錯等,這些系統級特性具體取決于系統架構。隨著嵌入式軟件系統的硬件多樣性和復雜性的不斷提高,可以采用模型驅動的開發方法來滿足開發早期階段出現的系統集成問題。基于模型的設計方法的要點之一是要選擇合適的設計語言來描述具體平臺架構。
為了調整系統架構,設計語言必須支持多種分析方法以便進行跨領域的權衡,架構設計語言還必須支持開發過程中的增量分析以及用于系統評估的多級逼真度。這種增量特性允許架構規范在整個生命周期內都有效。
架構分析與設計語言(AADL)是一種可以滿足這些要求的可擴展的標準架構描述語言。AADL適合具有挑戰性資源約束(如尺寸、重量和功率)、嚴格實時要求和/或高性能保證等級的嵌入式系統使用,應用場合包括監控、航天、飛行管理、引擎和傳動系統控制、醫療設備、工業工藝控制設備和航空等。
AADL是在國際汽車工程師協會(SAE)的指導下開發的,已經于2004年11月被批準為工業標準AS5506。為了支持性能分析,AADL定義了時序語義(semantics);為了支持可靠性分析,它包含了一個誤差建模附錄,它是AS5506/1標準中所含的更大附錄集的一部分,它能為每個組件提供誤差模型表述。
與SysML和UML等其他建模語言相比,AADL為標準的軟硬件組件分類提供了強大的語義,這樣常用分析方法和良好定義的系統集成就可以根據這些規范實施。專門為嵌入式系統設計的這種語言可以通過用戶可定義屬性(獲得AADL編譯器驗證的屬性子語言支持)和用戶定義附錄進行擴展。附錄擴展經過標準化可供業界廣泛使用。另外,在操作模式幫助下AADL還能支持系統動態建模。
AADL支持基于標準XML/XMI定義的模型交換和工具鏈接。AADL具有標準元模型(meta-model)、圖形定義和文本語言屬性。AADL UML 2.0規范已經開發成功,并已經開始進入投票階段。ARINC 653架構的附錄也已開始制訂。有許多工具支持這種語言,其中有許多是開放源碼的工具。開源AADL工具集環境(OSATE)是很重要的一個工具,它基于Eclipse框架,包含文本、XML和圖形編輯器以及眾多分析工具。這些工具都是開源Eclipse插件,可以進行擴展。
1 監控系統設計
在本例中讓我們先看看用戶的要求:用戶想要安裝一套監控系統來監視遠離辦公室的三所房屋,在這些位置沒有現成的局域網,為了有效地阻止入侵者,檢測過程必須快速,最好在2秒鐘之內。這個延時標準是一種端到端的系統級性能要求。
一種解決方案是部署三個網絡攝像機對這些房子進行監視。攝像機通過無線方式將信息發送到辦公室的計算機。然而,無線通信的有限帶寬無法適應全部視頻流數據,因此我們需要在每個攝像機內嵌入一個視頻處理器來對數據流進行壓縮和預處理,但這樣做會影響到端到端的延時。我們必須評估不同的硬件選擇,例如視頻處理器和無線芯片。我們也想嘗試多種壓縮和入侵檢測算法,AADL能讓我們集中精力滿足系統性能要求,從而簡化這一過程。
下一步是定義架構。AADL圖形符號有助于實現這一過程,如圖1所示。值得注意的是,該模型不是任意設計的,而是具有明確定義的正式模型,即使是在較高抽象層次。
圖1:用于無線視頻監控系統的一種AADL環境框圖
系統構造可以對整個系統和核心子系統(視頻檢測系統)建模。AADL設備構造可以描述物理組件,如視頻攝像機和顯示器,因為這些組件不需要捆綁應用軟件。我們使用端口組和連接來模擬不同組件之間的通信。攝像機發送的數據流需要穿過視頻檢測系統。
圖2:用于無線視頻監控系統的初始AADL模型
AADL通過利用層次化結構可以用不同的詳細程度描述系統。圖2顯示了高層次的監控應用內容。在架構建立完成后,我們必須詳細地定義不同的組件。在介紹詳細設計之前,讓我們先了解一下AADL中的基本單元,軟件單元包括進程、線程、線程組、數據和子程序。它們分別定義為:
進程:受保護的地址空間
線程:一個并行執行單位
線程組:用于組織線程的復合單元
數據:數據類型和靜態數據
子程序:可調用的連續可執行代碼
在圖2中,我們使用軟件組件進程、數據、線程和系統組件對視頻檢測系統的邏輯進行建模。注意,這種模型只是比圖1所示的內容向前邁出了一小步。
硬件組件(也稱為平臺種類)包括了處理器、存儲器、總線和器件。在圖3中(在AADL結構下方)你可以看到硬件組件的AADL標準圖形描述,它們描述了系統的物理特性。在監控系統模型中,硬件平臺由CPU(處理器)、存儲器和總線確定。
圖3:帶有硬件和軟件的AADL系統
組件抽象包括特性、屬性和模式:特性定義了接口或輸出組件功能;屬性描述了特征和組件行為;模式描述了動態組件重配置。
2 組件之間的交互作用
在定義好組件后,我們需要確定它們之間的關系,AADL本身就支持這一過程。組件交互使用端口(數據和事件輸入輸出端口)、端口組、子組件(subcomponent)訪問、子程序調用、數據交換和共享。它們定義了功能接口和組件之間的通信。在圖2中,我們使用數據端口來描述系統與器件之間的交互。
AADL的一個關鍵特性是能對數據建模和流控制。流定義了通過多個組件和連接的順序數據或事件。在本例中,我們為三臺視頻攝像機規定了三種視頻流:video_flow1, video_flow2和video_flow3。這些視頻流代表了從攝像機到顯示器的端到端流動。
我們定義這些流是因為它們在位置上分開的。流規范的目標是支持端到端分析,例如端到端時序和延時,誤碼傳播以及服務質量資源管理等。流的屬性定義了性能特點,例如,在監控系統中,特殊流屬性一般都會有最大的延時。我們需要檢查實際實現情況來確定是否達到設計目標。對于這個系統中的每個端到端的流來講,都有一個屬性被定義為“期望延時等于200ms”。
AADL的一個強大特征是能夠針對目標系統同時對硬件和軟件建模,這有助于工程師規定和評估完整系統的交互效應。在本例中,視頻攝像機、無線收發器和處理器的選擇將直接影響端到端的延時。
3 完整的系統模型
圖3給出了無線監控系統軟硬件的AADL設計,系統利用無線設備提供的無線網絡與攝像機通信。處理器按調度屬性執行軟件組件,并限定存儲的存儲器。協議反應總線的屬性,并一直反饋到分析工具。可以定義像PCI或VME等不同的總線類型,包括這些標準的協議和性能特性。我們還可以定義定制無線鏈路,使它對CSMA/CA無線鏈路的特性建模。
因為我們使用時序語義和流程規范描述了關鍵性能特點之一,因此我們可以評估系統級性能。還可以逐漸增加其他結構細節或屬性,以擴充我們定義關鍵內容時的分析形式。我們還能在所有開發階段實施評估,包括早期結構權衡分析,開發階段的系統修改和調整,評估現有架構變化帶來的影響,以及根據性能模型的自動集成。這樣我們就能使用基于組件的結構規范進行評估,并對每個可能的變化進行權衡。我們可以試驗硬件和軟件組件、通信模型、調度、誤差建模、模式動態特性等,并進行結果整合。該語言還可擴展以集成其他建模和分析功能。
4 工具支持
許多工具支持AADL架構設計和分析。開源AADL工具環境(OSATE)是在開源Eclipse平臺之上的一套插件,它提供了一個集成的開發環境用于AADL模型編輯、編譯和前端分析。另外,它還包括了使用TOPCASED插件的AADL符號圖形編輯器。目前已經開發成功多個分析插件用于執行各種架構的一致性檢查、流程和可靠性分析、數據質量和安全分析以及資源調度。
責任編輯:gt
-
嵌入式
+關注
關注
5071文章
19026瀏覽量
303507 -
視頻監控
+關注
關注
17文章
1709瀏覽量
64915 -
無線
+關注
關注
31文章
5437瀏覽量
173103
發布評論請先 登錄
相關推薦
評論