“AUTOSAR (AUTomotive Open System ARchitecture) is a worldwide development partnership of automotive interested parties founded in 2003. It pursues the objective of creating and establishing an open and standardized software architecture for automotive electronic control units (ECUs) excluding infotainment. Goals include the scalability to different vehicle and platform variants, transferability of software, the consideration of availability and safety requirements, a collaboration between various partners, sustainable utilization of natural resources, and maintainability throughout the whole "Product Life Cycle"” --Wikipedia
以上就是AUTOSAR的官方定義,一個(gè)開放的系統(tǒng)架構(gòu),便于軟件的標(biāo)準(zhǔn)化設(shè)計(jì)以及跨硬件平臺(tái)的應(yīng)用。
在汽車電子的發(fā)展過程中,由于價(jià)格、可靠度、速度的需求,大量了采用嵌入式系統(tǒng),但也面臨了軟件設(shè)計(jì)無一定標(biāo)準(zhǔn),當(dāng)系統(tǒng)日趨復(fù)雜時(shí),設(shè)計(jì)、維護(hù)、升級(jí)就越加困難,因此倡導(dǎo)汽車軟件的標(biāo)準(zhǔn)化,一直是汽車業(yè)者的需求及心聲。從早期的OSEK/VDX,到近期的AUTOSAR,都是這類需求的產(chǎn)物。
AUTOSAR (車輛開放系統(tǒng)架構(gòu);Automotive Open System Architecture) 于2003年創(chuàng)立,系由車廠、零件供貨商、開發(fā)工具廠商組成,目前已有162個(gè)成員,目標(biāo)為推動(dòng)車用軟件標(biāo)準(zhǔn)化,它整合原有OSEK/VDX,運(yùn)作活躍,目前版本已更新到4.2。
AUOSAR的特色,在于利用中間件來隔絕硬件更換的影響,如圖1;以往嵌入式系統(tǒng)的開發(fā)往往須遷就于硬件所提供的韌體或函式庫(kù)來進(jìn)行程序?qū)懽?,如同圖1之左方,以致于當(dāng)硬件更改時(shí),既有的軟件必須改寫。AUTOSAR在軟硬件之間定義一個(gè)標(biāo)準(zhǔn)的接口,軟件是針對(duì)此接口寫作,且硬件有義務(wù)提供此接口,因此當(dāng)硬件有需要更換時(shí),透過AUTOSAR定義的標(biāo)準(zhǔn)接口,原本的軟件程序,可以不用修改,如同圖1右方所示。

圖1. AUTOSAR標(biāo)準(zhǔn)接口示意圖
透過標(biāo)準(zhǔn)接口的訂定,達(dá)成軟件的可重用性(re-use)及可交換性,除了既有開發(fā)的軟件可以不受硬件的限制,增加了可重用性(re-use),另在車廠(OEM)和供貨商(supplier)之間,由于大家都是遵照AUTOSAR的標(biāo)準(zhǔn),車廠商可以選擇的供貨商增加了,相對(duì)的,供貨商的市場(chǎng)也擴(kuò)大了,這就是AUTOSAR強(qiáng)調(diào)的「Cooperate on standards, compete on implementation」-在標(biāo)準(zhǔn)上合作、在實(shí)作上競(jìng)爭(zhēng),提高軟件的可交換性,使供需雙方都同時(shí)受益的高明策略。
AUTOSAR采用階層式設(shè)計(jì),使應(yīng)用軟件到硬件之間共有三個(gè)抽象層:微處理器抽象層(MCAL)、ECU抽象層(ECAL),及服務(wù)層,大大提高了軟件重復(fù)使用的程度,如圖2所示。
圖2. AUTOSAR軟件階層圖
AUTOSAR雖然立意良好,但架構(gòu)相形復(fù)雜,開發(fā)過程中高度依賴工具,使開發(fā)成本大幅提高,也因參加成員眾多,標(biāo)準(zhǔn)變得十分龐雜,因應(yīng)近年興起的主動(dòng)輔助安全系統(tǒng)(ADAS),也還來不及將它收納其中,因此是否真能成為未來統(tǒng)一車輛電子的標(biāo)準(zhǔn)系統(tǒng),還有待觀察,但這仍是車輛業(yè)界中之重要主流,值得我們密切注意。
目前車輛中心(ARTC)正積極研發(fā)先進(jìn)輔助安全系統(tǒng)(ADAS)及自主駕駛系統(tǒng)(ADS),同時(shí)也注意到開放式架構(gòu)的重要性,并采取AUTOSAR透過標(biāo)準(zhǔn)接口隔絕硬件異動(dòng)性的作法,以使我們研發(fā)的成果更能穩(wěn)健發(fā)展,更易標(biāo)準(zhǔn)化。
如何實(shí)現(xiàn)跨硬件平臺(tái)的應(yīng)用呢?
其實(shí),嵌入式軟件的設(shè)計(jì)無非就是寄存器的設(shè)置和應(yīng)用邏輯的結(jié)合,和硬件平臺(tái)結(jié)合最緊密的部分就是寄存器的設(shè)置。在AUTOSAR里,寄存器應(yīng)該如何設(shè)置是保存在arxml文件里的(有的工具商定義了別的文件類型名稱,但是仍然是當(dāng)作arxml格式來用)。
讀者要明白,AUTOSAR的工具軟件基本就是兩個(gè)功能:
1, arxml文件的產(chǎn)生和編輯;
2,產(chǎn)生源代碼。
理想狀態(tài)下,1,如果兩個(gè)芯片的性能相近,那么我給A chip做的arxml文件應(yīng)該做很小的修改甚至不修改就可以給B chip用;2, 同一款芯片,我用EB Tresos設(shè)置好的arxml文件(EB自己的文件格式不是arxml)應(yīng)該可以直接import進(jìn)DaVinci Configurator。
現(xiàn)階段這兩點(diǎn)都做不到。
工具軟件提供商一般都和芯片提供商緊密合作,這樣就可以保證做出合理的代碼模板,以及用戶的設(shè)置可以正確的翻譯成寄存器的設(shè)置。
軟件的標(biāo)準(zhǔn)化設(shè)計(jì)主要是使用盡量統(tǒng)一的函數(shù)名和port格式,以及使用方法相同。但是,在具體操作過程中,不同的用戶根據(jù)自己的需要和資源配置,都會(huì)做出不同的內(nèi)部流程設(shè)計(jì)。AUTOSAR本身是無法自洽的,所以創(chuàng)造性地提出了CDD的概念,這個(gè)東西可以當(dāng)SWC使用,也可以當(dāng)BSW用,可以有端口,也可以直接調(diào)用底層函數(shù)。此物一出,基本上就把AUTOSAR的初衷給毀了。你可以想象一個(gè)場(chǎng)景,就是把所有的SWC都定義成CDD,那AUTOSAR也就不用做了。