面向汽車應(yīng)用的AUTOSAR體系結(jié)構(gòu)及設(shè)計(jì)技巧介紹
從2004年AUTOSAR面世開始,這項(xiàng)創(chuàng)新性的前沿技術(shù)就在許多研究性的項(xiàng)目中進(jìn)行測(cè)試;現(xiàn)在,AUTOSAR開始通過產(chǎn)品化ECU進(jìn)入真正的實(shí)現(xiàn)階段。AUTOSAR軟件代表了當(dāng)前的技術(shù)水平,并通過不斷的版本更新來保證技術(shù)上的不斷進(jìn)步。
汽車工業(yè)正在面臨新的時(shí)代。復(fù)雜的汽車功能越來越多,使得汽車電子的開發(fā)越來越復(fù)雜。顧客對(duì)于產(chǎn)品的功能和個(gè)性化要求,以及象診斷這種非功能性需求的增加,更加劇了ECU開發(fā)過程的復(fù)雜度。汽車,尤其是高級(jí)豪華車,大約有超過1000個(gè)軟件功能,幾條車內(nèi)總線網(wǎng)絡(luò),以及超過70個(gè) ECU。由于汽車電子領(lǐng)域硬件平臺(tái)的多樣性,ECU軟件開發(fā)嚴(yán)重依賴硬件和系統(tǒng)配置。每次相關(guān)的約束條件的更改都將導(dǎo)致重新編寫程序或?qū)浖男薷摹?
為了降低ECU軟件開發(fā)的復(fù)雜度,AUTOSAR開發(fā)成員提供了一套經(jīng)過實(shí)踐驗(yàn)證的軟件架構(gòu),并以此作為開發(fā)可重用應(yīng)用程序的基礎(chǔ)。 AUTOSAR這一開放的系統(tǒng)架構(gòu)標(biāo)準(zhǔn)是由全世界的汽車OEM,零部件供應(yīng)商以及軟件、半導(dǎo)體和電子工業(yè)的企業(yè)共同制定。AUTOSAR可以使得用戶避免因?yàn)椴捎盟接械慕鉀Q方案導(dǎo)致日益增長(zhǎng)的開發(fā)成本。
AUTOSAR將電子架構(gòu)分成若干層和模塊。在定義接口的同時(shí),AUTOSAR也定義了軟件組件和易于交換的硬件平臺(tái)標(biāo)準(zhǔn)。 AUTOSAR開發(fā)成員不僅提供了基礎(chǔ)軟件模塊的規(guī)范,還提供了用于開發(fā)分布式系統(tǒng)應(yīng)用程序的方法。這種方法以基于模型的軟件和分布式系統(tǒng)描述開始,以自動(dòng)代碼生成和可重復(fù)的測(cè)試結(jié)束。這種方法簡(jiǎn)化了工具鏈的使用。
在AUTOSAR面世之后三年,AUTOSAR開發(fā)成員在2007年發(fā)布了2.1版本。此時(shí),AUTOSAR的發(fā)展到達(dá)了一個(gè)穩(wěn)定的階段。幾個(gè)不同的開發(fā)項(xiàng)目對(duì)AUTOSAR的實(shí)用性進(jìn)行了測(cè)試。在商業(yè)領(lǐng)域里,“AUTOSAR評(píng)估系統(tǒng)”已經(jīng)完成?,F(xiàn)在,AUTOSAR已經(jīng)做好進(jìn)入到產(chǎn)品ECU的準(zhǔn)備了。
AUTOSAR體系結(jié)構(gòu)
為了實(shí)現(xiàn)AUTOSAR的目標(biāo),即實(shí)現(xiàn)應(yīng)用程序和基礎(chǔ)模塊之間的分離,汽車電子被抽象成幾個(gè)層,如圖1所示。
與實(shí)際微控制器之間的連接,也就是物理基礎(chǔ),抽象為微控制器抽象層(Microcontroller Abstraction Layer),用于映射微控制器的功能和外圍接口。微控制器抽象層定義了內(nèi)存接口、I/O驅(qū)動(dòng)接口和通信連接接口,同時(shí)還可以模擬一些微控制器無法提供的功能。第二層是ECU抽象層(ECU Abstraction Layer)。這一層在ECU相關(guān)硬件的基礎(chǔ)上,為ECU提供外圍設(shè)備的驅(qū)動(dòng)程序。第三層是服務(wù)層(Services Layer)。這一層提供了各種服務(wù),例如網(wǎng)絡(luò)服務(wù)、內(nèi)存管理、網(wǎng)絡(luò)通信和操作系統(tǒng)。服務(wù)層在很大程度上獨(dú)立于硬件系統(tǒng)。第四層的RTE真正實(shí)現(xiàn)了應(yīng)用程序和基礎(chǔ)軟件之間的分隔。RTE負(fù)責(zé)處理應(yīng)用程序集成以及應(yīng)用程序與基礎(chǔ)軟件模塊之間的數(shù)據(jù)交換。RTE的存在是真正實(shí)現(xiàn)應(yīng)用程序重用的基礎(chǔ)。由于RTE 預(yù)定義了相關(guān)的接口,所以開發(fā)人員可以在對(duì)硬件一無所知的情況下進(jìn)行應(yīng)用軟件的開發(fā),并將這個(gè)軟件應(yīng)用在任何符合AUTOSAR標(biāo)準(zhǔn)的ECU中。
虛擬功能總線(Virtual Functional Bus)形成了這些層的配置基礎(chǔ)。通過這條虛擬總線,所有汽車電子通信組件都可以進(jìn)行抽象,同時(shí)使用預(yù)先定義的端口;而對(duì)于虛擬功能總線來說,ECU內(nèi)部通信和外部總線通信并沒有什么區(qū)別。這種區(qū)別要等到系統(tǒng)布局以及ECU的具體功能最終確定才會(huì)體現(xiàn)出來。軟件組件本身對(duì)于這種區(qū)別并不關(guān)注,因此我們可以在獨(dú)立的情況下開發(fā)軟件組件。軟件組件被分成若干個(gè)可執(zhí)行單元,即運(yùn)行實(shí)體。當(dāng)某一個(gè)規(guī)定的事件發(fā)生時(shí),就會(huì)有對(duì)應(yīng)的運(yùn)行實(shí)體被觸發(fā)。這樣的事件有可能是一個(gè)新的傳感器信號(hào) ,也有可能是一個(gè)周期性定時(shí)。從虛擬功能總線的角度對(duì)電子系統(tǒng)的形式化描述最終定義了相關(guān)軟件組件的接口。因此,應(yīng)用軟件的開發(fā)可以獨(dú)立于具體的ECU。
RTE實(shí)現(xiàn)了對(duì)于I/O、內(nèi)存和其它基本服務(wù)的訪問。利用基于模型的描述,可以針對(duì)指定的ECU定制RTE,這樣可以適應(yīng)不同的需求并節(jié)省資源。
方法
在定義ECU軟件體系架構(gòu)的同時(shí),AUTOSAR標(biāo)準(zhǔn)也定義了開發(fā)AUTOSAR系統(tǒng)的方法。符合經(jīng)過確認(rèn)的開發(fā)過程是開發(fā)軟件的一個(gè)重要前提。需求列表中的不足會(huì)在開發(fā)早期被發(fā)現(xiàn),軟件組件的重用使得開發(fā)流程變得簡(jiǎn)化,整個(gè)系統(tǒng)也就更加可靠。但是,這種方法也允許一定程度的自由:例如,用戶可以自己決定是使用從上至下還是從下至上的開發(fā)流程。
AUTOSAR的目的在于通過工具為軟件開發(fā)流程提供通用的支持。成熟的工具用于需求的結(jié)構(gòu)化實(shí)現(xiàn)和相應(yīng)的管理,同時(shí)建立相應(yīng)的配置。
第一步包括三個(gè)主要方面的形式化描述:軟件(軟件組件),ECU(ECU資源)和系統(tǒng)約束。合適的編輯工具用于創(chuàng)建完整的系統(tǒng)描述,如圖2所示。
系統(tǒng)配置作為ECU配置的基礎(chǔ),而用戶可以利用配置工具根據(jù)ECU配置生成基礎(chǔ)軟件組件。在開發(fā)流程的末期,有多種生成工具可以用來生成RTE和基礎(chǔ)軟件。開發(fā)過程中的所有設(shè)計(jì)和配置數(shù)據(jù)都用統(tǒng)一的文件格式保存。為此,AUTOSAR定義了一種基于XML的文件格式。一方面,統(tǒng)一的文件格式保證了開發(fā)流程的通用性;另一方面,它簡(jiǎn)化了開發(fā)工具之間的無縫集成。
評(píng)論