開發(fā)支持符合AUTOSAR標準的軟件組件的建模特定領域的語言。支持建模軟件組件的應用是基于TextX python模塊和內(nèi)部開發(fā)的建模框架。通過應用程序建模帶來了更安全和更快的方式來應對各種模型的變化。在這篇論文中,我們展示了應用程序工作的基本算法、應用程序的部分功能和使用特定領域語言的例子,其結(jié)果顯示了模型的一些變化。
I.簡介
在現(xiàn)代汽車行業(yè)中,軟件和電子控制單元正變得越來越多。如果我們觀察一下現(xiàn)代新車,我們會注意到大量的電子控制單元(ECUs),它們基本上是車輛的思想,完成所有的邏輯和驅(qū)動工作。汽車行業(yè)的目標是提高司機、乘客和其他交通參與者的整體安全,這正是軟件進入汽車行業(yè)的原因和方式。由于車輛中有大量的ECU,有非常復雜的系統(tǒng),隨著新的安全功能和技術(shù)的實施,這些系統(tǒng)變得更加復雜。
現(xiàn)代汽車甚至可以包含超過100個ECU,其中每個ECU都負責和執(zhí)行特定的任務。每項任務都必須在準確規(guī)定的時間內(nèi)執(zhí)行。也就是說,任何應用于硬件層面的變化都會影響到軟件,需要對軟件進行額外的修改和校準,以使其按預期工作。面對這個問題,行業(yè)內(nèi)領先的汽車公司已經(jīng)建立了合作關(guān)系,他們將使硬件開發(fā)和軟件開發(fā)相互獨立。
II.AUTOSAR標準
AUTOSAR(汽車開放系統(tǒng)架構(gòu))是一個由汽車制造商、供應商、服務提供商和來自汽車E/E、軟件行業(yè)的公司組成的全球開發(fā)合作伙伴關(guān)系。它成立于2003年。一個目標是使硬件開發(fā)獨立于軟件。 AUTOSAR架構(gòu)由4層組成,如圖1所示。這4個層是:應用層、運行時間環(huán)境(RTE)層、基本軟件層(BSW),最下面是硬件(微控制器)層。
圖1 AUTOSAR分層結(jié)構(gòu)
A.應用層
應用層是架構(gòu)中最頂端的部分,由特定數(shù)量的軟件組件組成,每個組件執(zhí)行規(guī)定的任務。
1) 軟件組件
軟件組件代表了有明確任務的應用程序。組件的類型可以根據(jù)其目的而變化,例如,它可以是應用程序、傳感器、執(zhí)行器、輸入/輸出組件和更多。兩個或多個組件之間可以通過連接的端口進行通信(只有連接的端口可以交換數(shù)據(jù))。 有兩種類型的端口可用,發(fā)送者/接收者(S/R)通信或客戶端/服務器(C/S)通信。
S/R通信主要用于定期傳輸數(shù)據(jù),C/S通信僅用于按要求提供數(shù)據(jù)或操作。軟件組件可以有1個或多個S/R或C/S類型的端口,這就是組件之間相互通信的方式。 除了端口,每個軟件組件還有一個主要部分,那就是它的可運行性。Runnable代表軟件組件的實現(xiàn),它們可以被多種類型的觸發(fā)器所觸發(fā)。觸發(fā)器可以是初始化觸發(fā)器(啟動時執(zhí)行)、周期性觸發(fā)器(在定義的時間段內(nèi)執(zhí)行)、客戶端請求(請求操作)等等。
B.運行時間環(huán)境 (RTE)
RTE實現(xiàn)了虛擬功能總線,有助于ECU內(nèi)的SWC和ECU外的SWC的連接。它使用端口和接口實現(xiàn)通信路徑,用于連接軟件組件和下層的基本軟件(BSW)模塊。
C.基礎軟件 (BSW)
基礎軟件(BSW)是標準化的軟件模塊,提供運行上層軟件的功能部分所需的各種服務。
III.建模中的應用
AUTOSAR模型描述的是將被集成到汽車ECU中的軟件。有了模型,軟件的配置就有了很多可能性,也就是說,通過模型我們可以定義將被使用和傳輸?shù)臄?shù)據(jù)類型、組件的端口數(shù)量、組件的執(zhí)行時間等。為了改變模型(改變一些配置),必須要有專門的軟件和使用許可才能做到這一點。使用特定領域語言(DSL)進行建模的應用程序可以大大簡化和加快建模階段。
使用應用程序進行建模,歸根結(jié)底就是把模型中需要的變化寫到一個文件中,然后執(zhí)行該應用程序。 使用這種應用程序進行建模的優(yōu)勢很多。最重要的優(yōu)勢之一是,如果存在人為錯誤,應用程序?qū)⒉辉试S對模型進行修改。除此以外,應用變化所需的時間應更短,所使用的語言應簡化并對用戶友好(易于閱讀和理解),等等。
為了開發(fā)這種建模應用程序,使用了名為TextX的python模塊來創(chuàng)建特定領域的語言,并在模型中使用內(nèi)部開發(fā)的建??蚣軄聿僮鰽UTOSAR對象。
A.TextX 模塊
TextX 模塊是一個用于創(chuàng)建domaing specific語言(DSL)的工具。創(chuàng)建的DSL將被用于編寫模型中想要的變化。在這個模塊的幫助下,我們定義了DSL的語法,這意味著每一個動作(模型中的變化)都必須以特定的方式編寫,以使變化成功應用于模型。
B.建??蚣?/strong>
建??蚣苁情_發(fā)的工具,能夠更容易地操縱模型內(nèi)的對象。該工具遵循AUTOSAR標準,模型中的每個字段/屬性都被視為應用程序中的一個對象。
IV.使用建模應用程序
上述TextX模塊與建??蚣芟嘟Y(jié)合,提供了對各種模型進行修改的可能性。圖片2顯示了應用程序的工作情況。有三個輸入文件,語法定義變化應該如何寫才能成功應用,文件包含對模型的實際需要的變化和模型本身。 作為應用程序的輸出,對已經(jīng)修改過的模型,只有在符合標準和規(guī)則的情況下,才會對其進行需要的修改。
圖2 應用程序的工作原理 在圖片3中,顯示了應用程序的工作原理(核心算法)。
圖3 執(zhí)行建模應用程序的工作流程
在建模應用程序的開始階段,所有的輸入都被加載(語法、包含變化和模型的文件)。 在語法檢查中,它被分析為書面變化是否符合定義的語法。如果在這里出現(xiàn)一些錯誤,這意味著該變化不被支持或書寫錯誤,在這種情況下,不應采取進一步行動。
語法檢查成功后,在建??蚣艿膮f(xié)助下,模型被加載為輸入。模型的所有屬性和配置都被作為對象加載到應用程序中,一旦完成,加載的模型就可以用輸入文件中描述的變化進行修改。 如果改變需要修改模型中已經(jīng)存在的部分(例如,想改變現(xiàn)有端口的名稱),首先將在建??蚣艿膸椭抡业酱碓摯_切部分的對象。之后,當它被找到時,基本上變化將作為修改對象的一個屬性來執(zhí)行。
在其他情況下,如果需要創(chuàng)建新的東西,將有必要定義創(chuàng)建這種對象所需的強制性信息(例如,如果創(chuàng)建新的組件,需要的信息是名稱,它應該有哪些端口和可運行性)。在提供這些信息后,建??蚣軐?chuàng)建對象并將其添加到模型中。 完成對象操作(創(chuàng)建新對象或修改現(xiàn)有對象)后,有必要根據(jù)AUTOSAR標準和約束條件進行檢查。
這樣做的目的是為了消除人為錯誤因素,并保證應用于模型的變化是有效的。如果有任何形式的違反,更改將不會被應用到模型上。
在應用結(jié)束時,只有當所有條件都得到滿足時,模型才會完成修改。
V.建模應用實例
出于測試目的,一些AUTOSAR模型被作為輸入,并將對其進行某些修改。我們將定義如下變化,在現(xiàn)有的兩個組件(CtApTest1_SH00和CtCdMiddlewareQM_SH00)上,將增加兩個新的端口,由兩個數(shù)據(jù)元素組成。創(chuàng)建端口后,它們將被連接起來,以便在新創(chuàng)建的端口之間實現(xiàn)通信。 圖4它展示了如何編寫更改以完成上面描述的所需更改。
圖4 按照定義的語法,將在模型中應用的變化實例
根據(jù)寫入修改的輸入文件,可以看到名稱為PpTestInterface的端口被添加到兩個不同的組件CtApTest1_SH00和CtCdMiddlewareQM_SH00。端口內(nèi)的數(shù)據(jù)元素數(shù)量或?qū)⑻砑拥亩丝跀?shù)量沒有嚴格規(guī)定,只要符合AUTOSAR標準,由用戶決定。
在執(zhí)行建模應用程序后,將看到書面修改應用在輸入模型上。
在圖片5和圖片6中,顯示了建模應用的結(jié)果。正如在圖片5中所看到的,在arxml文件中,想要添加的端口很容易被添加到組件CtApTest1_SH00中,使用建模應用程序,它包含為該端口定義的所有數(shù)據(jù)元素。
在CtApTest1_SH00組件上,我們定義了端口為生產(chǎn)者(圖像中的P-端口),意味著數(shù)據(jù)將從這里被進一步發(fā)送,而在另一個組件CtCdMiddleware_SH00上,我們創(chuàng)建了相反的接收器(R-端口),它將接收從生產(chǎn)者發(fā)送的任何數(shù)據(jù),使這些端口兼容連接。
圖5 組件上創(chuàng)建的端口
圖片6顯示了新創(chuàng)建的端口之間的連接器?;旧线@種連接為它們提供了通信和交換數(shù)據(jù)的能力。
圖6 新建端口之間的連接
VI.總結(jié)
建模本身越來越復雜,越來越耗時。此外,為了對模型進行任何改變,必須要有使用軟件的許可證和知識。這個建模應用程序的主要目標是完成簡單和快速的建模,在對模型進行修改時犯錯誤的風險很低。 建模應用的主要優(yōu)勢體現(xiàn)在簡單、快速和可靠的模型更改上。在一個文件中編寫簡單的、人類可讀的變化,應足以執(zhí)行一些復雜的模型更新。
進一步改進建模應用程序的下一步可能是可視化地展示書面更改。一旦編寫了更改,終端用戶將更容易直觀地看到和理解將要進行的更改。這可以通過使用對象圖或組件圖來實現(xiàn)。
審核編輯:劉清
-
微控制器
+關(guān)注
關(guān)注
48文章
7555瀏覽量
151430 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
362瀏覽量
21591 -
ecu
+關(guān)注
關(guān)注
14文章
886瀏覽量
54508 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84694
原文標題:根據(jù)AUTOSAR標準開發(fā)用于建模軟件組件的特定領域語言
文章出處:【微信號:阿寶1990,微信公眾號:阿寶1990】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論