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