Mathworks公司撰寫(xiě)的Development of AUTOSAR Software Components with Model-Based Design善延,翻譯出來(lái)以供汽車(chē)電子行業(yè)參考少态。
摘 要
本文展示了工程師如何在已有模型的情況下,在不需要進(jìn)行模型修改的情況下易遣,創(chuàng)建符合Autosar標(biāo)準(zhǔn)的件模型以及通過(guò)軟件組件的描述來(lái)創(chuàng)建Simulink模型彼妻。在介紹之前,本文介紹了基于模型的設(shè)計(jì)Model-Based-Design(以下使用MBD)與Autosar概念,并建立了一些術(shù)語(yǔ)來(lái)解釋為什么我們要將Autosar與Simulink相結(jié)合。
介 紹
隨著整車(chē)內(nèi)ECU數(shù)量以及單個(gè)ECU內(nèi)軟件的復(fù)雜度的逐步增高粹舵,汽車(chē)軟件行業(yè)需要一個(gè)開(kāi)放勺届,標(biāo)準(zhǔn)的軟件架構(gòu)來(lái)將未來(lái)整車(chē)、單個(gè)ECU內(nèi)軟件的復(fù)雜程度限定在一個(gè)可以控制的范圍內(nèi)。Autosar (Automotive Open System Architecture,汽車(chē)開(kāi)放系統(tǒng)架構(gòu))就是這樣的一個(gè)組織,目前組織已經(jīng)聯(lián)合了超過(guò)100個(gè)整車(chē)廠颊艳、零配件供應(yīng)商、工具鏈供應(yīng)商忘分、半導(dǎo)體電子公司來(lái)為未來(lái)的ECU共同建立一個(gè)標(biāo)準(zhǔn)架構(gòu)棋枕。目前已經(jīng)許多OEMS以及供應(yīng)商已經(jīng)開(kāi)始在部分車(chē)內(nèi)開(kāi)發(fā)、整合妒峦、集合符合Autosar標(biāo)準(zhǔn)的功能組件重斑。
Autosar2.1標(biāo)準(zhǔn)已經(jīng)被許多公司視為是一個(gè)較為成熟的標(biāo)準(zhǔn),其中對(duì)于指定的應(yīng)用層軟件組件的概念與信息的定義已經(jīng)成熟肯骇。許多工具鏈供應(yīng)商紛紛開(kāi)始結(jié)合自己的技術(shù)為Autosar架構(gòu)開(kāi)發(fā)新的商業(yè)工具鏈窥浪。在2006年大眾公司已經(jīng)成功使用MBD方法來(lái)設(shè)計(jì)符合Autosar標(biāo)準(zhǔn)的ECU并整合在已有的E/E電子電氣環(huán)境中。
為了應(yīng)隊(duì)軟件笛丙、算法的復(fù)雜程度指數(shù)增加漾脂,汽車(chē)工程師開(kāi)始使用MBD方法,這個(gè)已經(jīng)在業(yè)內(nèi)被廣泛接受胚鸯。MBD可以在軟件早期開(kāi)發(fā)階段提供明確骨稿、可執(zhí)行的規(guī)范,自動(dòng)V&V(Verification姜钳、Validation)以及自動(dòng)代碼生成這些額外的優(yōu)點(diǎn)使得開(kāi)發(fā)效率顯著提高坦冠。
作為ECU網(wǎng)絡(luò)的標(biāo)準(zhǔn)架構(gòu),Autosar在汽車(chē)行業(yè)變得越來(lái)越重要哥桥,盡管現(xiàn)階段大家只是將關(guān)注點(diǎn)放在標(biāo)準(zhǔn)的定義與完善蓝牲,但許多OEMS以及供應(yīng)商已經(jīng)開(kāi)始將Autosar納入未來(lái)軟件開(kāi)發(fā)流程中。這就需要一系列完整的工具鏈泰讽,從上到整車(chē)級(jí)別的ECU的架構(gòu)設(shè)計(jì),下到使用MBD方法設(shè)計(jì)符合Autosar標(biāo)準(zhǔn)的功能組件,以及開(kāi)發(fā)運(yùn)行環(huán)境與基礎(chǔ)軟件已卸。
基于模型設(shè)計(jì)
傳統(tǒng)的嵌入式軟件開(kāi)發(fā)包括書(shū)面設(shè)計(jì)佛玄、手工編碼,以及如代碼檢查累澡,單元集成測(cè)試等驗(yàn)證工作梦抢。其中許多流程缺少工具的自動(dòng)化需要手工完成,因此既耗時(shí)又容易產(chǎn)生錯(cuò)誤愧哟。工具鏈的集成的缺失是另一個(gè)容易產(chǎn)出錯(cuò)誤的方面奥吩,此類(lèi)錯(cuò)誤在軟件開(kāi)發(fā)過(guò)程中往往探測(cè)較晚而且需要花費(fèi)很大代價(jià)。
為了應(yīng)隊(duì)這些挑戰(zhàn)蕊梧,MBD已經(jīng)成為汽車(chē)行業(yè)廣泛使用與認(rèn)可的方法霞赫,仿真測(cè)試不僅可以洞悉系統(tǒng)的動(dòng)態(tài)、算法方面肥矢,而且模型還有如下優(yōu)點(diǎn):
(1)作為可執(zhí)行規(guī)范
(2)交流軟件需求規(guī)范端衰,為顧客與供應(yīng)商之間提供接口定義
(3)為開(kāi)發(fā)算法提供汽車(chē)系統(tǒng)以及駕駛員、環(huán)境甘改、路況條件等模型提供虛擬原型
(4)產(chǎn)品的自動(dòng)生成
這些MBD的活動(dòng)使工程流程更加專(zhuān)注于防查錯(cuò)以及錯(cuò)誤的早期檢測(cè)旅东。項(xiàng)目早期的V&V可以降低晚期發(fā)生錯(cuò)誤帶來(lái)的風(fēng)險(xiǎn)。正如圖1所示十艾,MBD使得模型位于開(kāi)發(fā)流程中的核心抵代,這樣工程師可以創(chuàng)建可執(zhí)行規(guī)范,自動(dòng)生成嵌入式代碼忘嫉,在模型中執(zhí)行V&V活動(dòng)荤牍。
需求與代碼追溯
使用MBD開(kāi)發(fā)嵌入式軟件始于客戶(hù)對(duì)軟件需求要求的大幅提高,工程師必須確保模型以及最終生成的代碼滿(mǎn)足系統(tǒng)需求榄融。因此参淫,需要關(guān)聯(lián)每一個(gè)需求至相應(yīng)的模型部分,這種追溯能力是十分重要的愧杯。工程師搭建一個(gè)詳細(xì)的軟件設(shè)計(jì)模型涎才,并通過(guò)持續(xù)不斷的V&V流程來(lái)確保所搭建的模型是滿(mǎn)足需求的!由狀態(tài)機(jī)以及基礎(chǔ)模塊組成的模型可以雙向直接鏈接到需求文檔或者需求管理工具中力九。測(cè)試用例(由工程師定義或者自動(dòng)生成)也可以被直接鏈接到對(duì)測(cè)試覆蓋率的需求中耍铜。在開(kāi)發(fā)的后期階段,生成模型代碼后跌前,Mathworks公司的Embedded Coder可以產(chǎn)生代碼聲明與模型之間的鏈接棕兼,正如工業(yè)標(biāo)準(zhǔn)IEC61508、Aspice所規(guī)定的抵乓。
可執(zhí)行規(guī)范伴挚,V&V
將需求文檔上的有關(guān)要求轉(zhuǎn)換成為涵蓋所有相關(guān)功能模型靶衍,可以避免需求文檔所可能帶來(lái)的二義性,可以得到明確的接口定義茎芋。工程師可以在開(kāi)發(fā)的早期階段驗(yàn)證Concept的正確性颅眶。
通過(guò)這種方法,工程師可以在項(xiàng)目早期就進(jìn)行測(cè)試與驗(yàn)證工作田弥。測(cè)試案例可以由工程師定義涛酗,也可以由工具自動(dòng)生成MC/DC覆蓋率的測(cè)試用例。
另外偷厦,可執(zhí)行規(guī)范使得OEM與供應(yīng)商的交流變得更為容易商叹,因?yàn)橐?guī)范是可以執(zhí)行的,是圖像化的只泼。相比于傳統(tǒng)方法剖笙,MBD方法在更早的階段可以讓團(tuán)隊(duì)完成一些重要任務(wù)。同時(shí)辜妓,MBD方法提高了產(chǎn)品質(zhì)量枯途,在項(xiàng)目早期盡可能得暴露錯(cuò)誤,減小了修復(fù)項(xiàng)目后期錯(cuò)誤所帶來(lái)的巨大成本籍滴。圖三為每個(gè)階段修復(fù)錯(cuò)誤所需要的平均成本酪夷。
自動(dòng)代碼生成
例如通過(guò)使用Embedded coder可以自動(dòng)將模型轉(zhuǎn)化成嵌入式代碼,這種平滑集成的一大優(yōu)點(diǎn)就是可以重用已經(jīng)生成與測(cè)試過(guò)的模型孽惰。在連續(xù)的V&V過(guò)程中晚岭,不斷發(fā)現(xiàn)與修復(fù)bug,而測(cè)試軟件可以重新自動(dòng)生成勋功。
Autosar
為了應(yīng)對(duì)汽車(chē)行業(yè)里電子電氣應(yīng)用開(kāi)發(fā)中日益增加的軟件復(fù)雜度坦报,世界一流的OEM,供應(yīng)商公司聯(lián)合在一起決定為ECU定義一個(gè)標(biāo)準(zhǔn)架構(gòu)狂鞋,來(lái)應(yīng)對(duì)未來(lái)軟件開(kāi)發(fā)的挑戰(zhàn)片择。在2002年成立了Autosar組織以實(shí)現(xiàn)以下目標(biāo):
(1)基本系統(tǒng)功能的實(shí)現(xiàn)和標(biāo)準(zhǔn)化,并作為OEM的標(biāo)準(zhǔn)解決方案
(2)不同的車(chē)輛和平臺(tái)之間的擴(kuò)展性
(3)網(wǎng)絡(luò)功能傳輸
(4)不同供應(yīng)商的功能模塊集成
(5)對(duì)可用性和安全性的考慮
(6)冗余功能
(7)整個(gè)產(chǎn)品生命周期的可維護(hù)性
(8)增加商用現(xiàn)成硬件的使用
(9)整個(gè)汽車(chē)生命周期的軟件更新和升級(jí)
(10)增加商用現(xiàn)成硬件的使用
圖四展示了Autosar軟件架構(gòu)骚揍,一共被分為三個(gè)區(qū)域字管。應(yīng)用層軟件包含ECU網(wǎng)絡(luò)的應(yīng)用功能,被稱(chēng)為Autosar Software Component(后稱(chēng)為SC)信不。RTE層用于將應(yīng)用層軟件從基礎(chǔ)軟件中解耦嘲叔。控制器與RTE定義為基礎(chǔ)軟件包括獨(dú)立抽活、依賴(lài)于硬件的非功能服務(wù)硫戈。
正如上面提到的,解耦應(yīng)用軟件與目標(biāo)硬件是Autosar的主要目標(biāo)之一下硕,為了實(shí)現(xiàn)它丁逝,引入了Virtual Function Bus(虛擬功能總線汁胆,后稱(chēng)為VFB)。Autosar軟件組件實(shí)現(xiàn)應(yīng)用層和封裝單個(gè)ECU與ECU網(wǎng)絡(luò)的功能霜幼。這些SC有著定義好的標(biāo)準(zhǔn)接口沦泌。每個(gè)Autosar SC屬于一個(gè)特定的ECU,而ECU可以有多個(gè)SC辛掠。
VFB實(shí)現(xiàn)了不同Autosar SC之間的通信功能,不論他們屬于整車(chē)ECU網(wǎng)絡(luò)中的哪一部分释牺。在實(shí)現(xiàn)階段萝衩,生成的運(yùn)行時(shí)環(huán)境是虛擬功能總線的一個(gè)具體實(shí)例。
Autosar SC開(kāi)發(fā)
MBD的概念在Autosar開(kāi)發(fā)中可以發(fā)揮更大的優(yōu)勢(shì)没咙,而且應(yīng)該被更多的使用猩谊。一旦公司決定遵循Autosar流程開(kāi)發(fā)ECU,設(shè)計(jì)或軟件工程師不應(yīng)該被迫改變他或她的工作流程祭刚,以生成符合AUTOSAR標(biāo)準(zhǔn)的軟件牌捷。
MATLAB,Simulink和Real-Time Workshop Embedded Coder生成AUTOSAR標(biāo)準(zhǔn)的代碼是透明和直觀的過(guò)程涡驮,它支持兩種不同的工作流程:自上而下和自下而上暗甥。
自上而下
自上而下,從架構(gòu)模型到Autosar SC捉捅。在自上而下的開(kāi)發(fā)流程中撤防,系統(tǒng)工程師使用架構(gòu)生成工具(如davinci tool suite)來(lái)設(shè)計(jì)整車(chē)ECU網(wǎng)絡(luò)。當(dāng)然棒口,工程師也可以使用其他的架構(gòu)設(shè)計(jì)工具寄月。架構(gòu)軟件會(huì)輸出一個(gè)XML來(lái)描述對(duì)應(yīng)的組件,該文件里包含了組件的一些必要信息比如:runnables无牵,接口漾肮,數(shù)據(jù)類(lèi)型等等。Matlab軟件可以利用架構(gòu)軟件生成的XML文件自動(dòng)創(chuàng)建Simulink架構(gòu)模型茎毁,里面包含了接口模塊以及相應(yīng)的Autosar相關(guān)設(shè)置克懊。之后系統(tǒng)工程師就可以在該框架模型的基礎(chǔ)上,完善內(nèi)部的控制模塊充岛。
同時(shí)該模型可以像普通模型一樣照常進(jìn)行V&V測(cè)試保檐,設(shè)計(jì)工程師也可以對(duì)Autosar模型添加有關(guān)的接口或runnables。工程師必須在相應(yīng)的地方進(jìn)行設(shè)置來(lái)保證所生成的代碼滿(mǎn)足標(biāo)準(zhǔn)崔梗,來(lái)滿(mǎn)足基礎(chǔ)軟件層中的RTE以及與硬件相關(guān)組件的要求夜只。這些設(shè)置可以在配置參數(shù)對(duì)話框中設(shè)置。
自下而上
自下而上蒜魄,通過(guò)現(xiàn)有的Simulink控制模型來(lái)自動(dòng)生成架構(gòu)軟件所需的XML文件扔亥。因?yàn)槠?chē)產(chǎn)業(yè)已經(jīng)非常成熟场躯,許多公司已經(jīng)有許都測(cè)試好的庫(kù)與模型。這些模型能夠重用到不同的平臺(tái)旅挤,比如Autosar架構(gòu)中踢关,而不需要對(duì)模型進(jìn)行任何人力修改,這點(diǎn)非常重要粘茄。自下而上的工作流程签舞,與自上而下的工作流程都需要相同的Autosar配置, 尤其是接口對(duì)象需要被正確設(shè)置柒瓣,來(lái)保證SC可以被正確集成儒搭。
結(jié) 論
隨著汽車(chē)ECU軟件程度的復(fù)雜性增加,OEM與供應(yīng)商聯(lián)合建立了行業(yè)中最大的標(biāo)準(zhǔn)——Autosar標(biāo)準(zhǔn)芙贫,這被視為是應(yīng)付軟件復(fù)雜性挑戰(zhàn)中的最重要的一步搂鲫。Autosar專(zhuān)注于各SC之間的通信,并解耦了應(yīng)用層軟件與基礎(chǔ)軟件磺平。使用MBD方法設(shè)計(jì)功能軟件魂仍,由于這兩種方法的雙向性,MBD與Autosar不僅是相互兼容的拣挪,也是互補(bǔ)的擦酌。這種組合不僅方便了架構(gòu)設(shè)計(jì)、系統(tǒng)設(shè)計(jì)工程師媒吗,也方便了OEM與供應(yīng)商仑氛。