汽車行業(yè)AUTOSAR的使用現(xiàn)狀和利弊分析

2018-04-06 23:45:38·  來源:曹文峰,新能源軟件開發(fā)工程師
 
AUTOSAR的好處現(xiàn)在AUTOSAR宣傳材料隨意都能在網(wǎng)上找出不少,這些也是老生常談了,我結(jié)合具體的使用從個(gè)人的角度客觀的說一下。

利 篇
做AUTOSAR項(xiàng)目一段時(shí)間了,做完了幾個(gè)基于AUTOSAR架構(gòu)的控制器軟件項(xiàng)目,也完成了符合功能安全ASILC的AUTOSAR架構(gòu)的軟件平臺。

在做這些項(xiàng)目的過程中,通過項(xiàng)目招標(biāo),供應(yīng)商考察,對比同行以及自己親自實(shí)施的情況,對AUTOSAR國內(nèi)外的使用情況有了一些了解,分享一下自己的看法,也希望能有同行一起討論和交流,算是拋磚引玉,廢話不多說,各位施主請輕拍。

AUTOSAR的好處現(xiàn)在AUTOSAR宣傳材料隨意都能在網(wǎng)上找出不少,這些也是老生常談了,我結(jié)合具體的使用從個(gè)人的角度客觀的說一下。

(1)層次化和模塊化。這是我在項(xiàng)目中感受到的AUTOSAR最大的善意之一,AUTOSAR將硬件依賴和非硬件依賴的軟件進(jìn)行了封裝,同時(shí)模塊的層次處理也收集了先進(jìn)廠家的經(jīng)驗(yàn),把算法和接口分享出來,讓一些相對落后的廠商直接能了解到一個(gè)穩(wěn)定可靠的模塊算法是怎樣的,應(yīng)該具備什么功能,不用經(jīng)歷漫長的摸索和積累(當(dāng)然這里主要是指基礎(chǔ)軟件)。但由于為了保證算法的嚴(yán)謹(jǐn)和兼顧所有的狀況,也讓這些接口變得繁雜不好理解。



(2)配置化,如果使用工具鏈進(jìn)行開發(fā),目前的基礎(chǔ)軟件已做到通過配置參數(shù)實(shí)現(xiàn)功能剪裁,算法邏輯,這對基礎(chǔ)軟件開發(fā)來說還是省了不少功夫。



(3)接口標(biāo)準(zhǔn)化,這是AUTOSAR最大的善意之二。很明顯的一個(gè)好處,舉個(gè)栗子,現(xiàn)在廠商已脫離具體項(xiàng)目開發(fā)AUTOSAR的MCAL(硬件抽象層)軟件,只要做一些簡單的適配,就可以和其他基礎(chǔ)軟件無縫對接。也讓一些OEM可以有更多的選擇,節(jié)省了開發(fā)時(shí)間。



(4)RTE。。。哎,我的感受,利弊都很明顯!這里先說利的部分,RTE是一個(gè)AUTOSAR提出的新概念,做了很好的接口管理,將APP與基礎(chǔ)軟件進(jìn)行隔離,避免底層的接口直接通過全局變量貫穿到策略層,起到軟件解耦的作用。同時(shí)規(guī)定了基礎(chǔ)軟件和策略軟件的通訊通道,軟件組件可以獨(dú)立于網(wǎng)絡(luò)拓?fù)洫?dú)立設(shè)計(jì)與開發(fā)。對任務(wù)調(diào)度也進(jìn)行了描述,這樣在于操作系統(tǒng)交互也有了更便捷的接口。對于標(biāo)定數(shù)據(jù)的管理也更加獨(dú)立和明確。



小結(jié)一下:AUTOSAR的好處還是明顯的,當(dāng)然這些對于用戶來說是不可見的,算是費(fèi)力費(fèi)錢不討好的事情。但是至少有一個(gè)最大的益處,提供了一個(gè)渠道讓原先相對落后的公司借鑒AUTOSAR標(biāo)準(zhǔn)或是AUTOSAR軟件服務(wù)商快速的將自己的軟件成熟度和穩(wěn)定性提升一個(gè)等級。這就是花錢買時(shí)間事情。當(dāng)然另外一個(gè)很明顯的好處是有個(gè)廣告效應(yīng),標(biāo)榜自己符合AUTOSAR,與世界先進(jìn)水平看齊。

弊 篇
以我有限的認(rèn)知和體驗(yàn)來談?wù)勌锰肁UTOSAR的一些弊端,也不敢說是弊端,只能說是局限性吧。還請輕怕!

在此之前我先說說目前AUTOSAR在市面上使用的幾種情況:

一種是號稱的AUTOSAR,在AUTOSAR概念剛剛興起的時(shí)候,不管是國內(nèi)國外的汽車零部件廠商或者大小軟件服務(wù)商在宣傳語上都會宣傳基于AUTOSAR架構(gòu),這種狀況就像現(xiàn)在所有廠商都會宣傳自己是符合功能安全一樣。

我此前在一個(gè)軟件咨詢公司待過,那會兒剛剛開始研究AUTOSAR的資料,還沒有做項(xiàng)目,公司的頁面就已經(jīng)把我們軟件是基于AUTOSAR開發(fā)的作為宣傳了。

這種情況很常見,我見過很多項(xiàng)目,軟件部分是外包的,不管這個(gè)項(xiàng)目的預(yù)算多少,項(xiàng)目是否必要,技術(shù)要求上都會無腦將AUTOSAR,功能安全各種要求堆放上去,但因?yàn)橹鲗?dǎo)此項(xiàng)目的人并不了解AUTOSAR或者功能安全的要求,軟件外包服務(wù)商基本上在交付文檔上借用AUTOSAR的一張圖,介紹一下AUTOSAR的基本概念,軟件交付的工程結(jié)構(gòu)勉強(qiáng)有個(gè)AUTOSAR的分層結(jié)構(gòu)就算過關(guān)了。

造成這種現(xiàn)象也是有原因的,國內(nèi)主機(jī)廠好面子,供應(yīng)商為了生存,就形成了畸形供需的狀況,總不能所有大小項(xiàng)目都被幾個(gè)零部件巨頭都承包了,現(xiàn)在這幾個(gè)巨頭依托于AUTOSAR和功能安全已經(jīng)賺的金箔滿盆,而且有越來越難伺候的趨勢。

一種是購買了完整的工具鏈,投入人力和金錢嘗試開發(fā)AUTOSAR的,這里又分兩種,一種是作為預(yù)言項(xiàng)目,項(xiàng)目結(jié)了就交差,或者遇到困難就半途而廢的,這在國內(nèi)也常見。另一種是下決心好好整,希望能推向量產(chǎn)的。不管哪種,可以借用AUTOSAR核心會員的資源,利用他們的工具鏈,培訓(xùn)服務(wù)和軟件服務(wù),對于快速和深入學(xué)習(xí)AUTOSAR還是幫助很大的。AUTOSAR標(biāo)準(zhǔn)如果不借項(xiàng)目操作去理解,單看標(biāo)準(zhǔn)是很難的。

還有一種是不嚴(yán)格的AUTOSAR架構(gòu),就是用了AUTOSAR的核心概念,但是在實(shí)際使用中為了適應(yīng)市面上各OEM的狀況,在軟件平臺搭建時(shí)對AUTOSAR做了取舍,但核心架構(gòu)和分層仍然AUTOSAR。我在幾家零部件巨頭的控制器軟件方案中都看到了這樣的情況。有的干脆舍棄了RTE這一層,使用了傳統(tǒng)的接口進(jìn)行軟件集成,這樣避免了國內(nèi)很多廠家沒有RTE環(huán)境而無法與基于AUTOSAR架構(gòu)的基礎(chǔ)軟件進(jìn)行集成。

這和功能安全類似,國外強(qiáng)調(diào)的功能安全的概念,而不是標(biāo)準(zhǔn),利用了標(biāo)準(zhǔn)的方法和理念,沒有完全被標(biāo)準(zhǔn)束縛,他們通常都是自己對自己的認(rèn)可,不像國內(nèi)的企業(yè)需要請求第三方認(rèn)證公司給自己發(fā)一個(gè)證,以此證明自己是優(yōu)秀的,所以能看到國外的一些知名車企或者零部件廠商都是自己對自己認(rèn)證,很少尋求第三方。

此前和一個(gè)功能安全做了20年的資深工程師交流,他說功能安全是無止境的,而不是標(biāo)準(zhǔn)上的這些。我覺得這樣是相對務(wù)實(shí)的。當(dāng)前的AUTOSAR不管是工具鏈,還是大家的接受程度,以及國內(nèi)普及度,都還是不夠成熟的,做一些取舍是有必要的。

說了這么多,有些跑題了,下面談一下我對AUTOSAR的一些弊端,從當(dāng)前市面上幾個(gè)AUTOSAR工具鏈的情況,以及國內(nèi)外零部件廠商在AUTOSAR的使用情況來看,AUTOSAR在國外或是國內(nèi)的運(yùn)用情況并不成熟,至少與AUTOSAR最初的設(shè)計(jì)理念還有較大的偏離,而且對于量產(chǎn)項(xiàng)目而言在靈活性上還是有所欠缺,其軟件復(fù)用性獨(dú)立性也不如宣傳的好使。從以下幾個(gè)方面說說我在項(xiàng)目中的一些AUTOSAR在實(shí)際使用時(shí)的而一些弊端:

一,AUTOSAR工具鏈不便宜且不成熟,不是針對哪家工具鏈,現(xiàn)在市面上使用的就那么兩三家,據(jù)了解,多多少少都存在問題,這兩年在整個(gè)項(xiàng)目實(shí)施的過程,基本也是工具鏈逐漸更新修復(fù)BUG的過程,雖然項(xiàng)目已上車,軟件也能穩(wěn)定運(yùn)行,但由于工具bug而調(diào)整的手寫代碼也讓整個(gè)軟件工程變得不那么“踏實(shí)”,軟件集成由于這些修補(bǔ)代碼也要變得格外小心。有的問題雖然并非算是工具bug,需要工具鏈支持而支持不了,工具鏈在適應(yīng)實(shí)際項(xiàng)目需求時(shí)還是缺乏了靈活性。

二,工具鏈之間的兼容性影響了AUTOSAR軟件宣傳的復(fù)用性獨(dú)立性效果。AUTOSAR號稱的軟件模塊復(fù)用性和獨(dú)立性,在實(shí)際體驗(yàn)中并沒有宣傳中的那樣好。一方面是因?yàn)檫@些工具鏈廠商對于自己產(chǎn)品的問題修復(fù)已自顧不暇,沒辦法花精力處理這一問題;另一方面出于利益沖突,他們互相之間并沒有做好的兼容性溝通和設(shè)計(jì)。

當(dāng)然還有個(gè)重要的原因,因?yàn)锳UTOSAR的普及度還不夠,矛盾暴露的還不夠激烈。我向各個(gè)廠家咨詢過相關(guān)的問題,是否能將另一家公司配置好的RTE環(huán)境的描述文件用在當(dāng)前公司的工具鏈中,并順利生產(chǎn)代碼。沒有一家可以打包票說沒有問題,也沒有人回復(fù)說嘗試過。這會造成一些問題,原本希望通過AUTOSAR的優(yōu)勢,不同廠家一起合作完成一個(gè)軟件項(xiàng)目,但由于工具鏈的兼容性而不得不保持工具鏈的一致性,這對于合作的限制是很大的。

三,集成效率偏低,難以適應(yīng)項(xiàng)目頻繁變更帶來的影響。這在業(yè)內(nèi)也不是新鮮事了,大家都碰到了這種困擾。BSW與策略的接口集成,有大量的工作,雖然都是體力活,但當(dāng)前的情況,這一體力活不僅在操作上低效,在錯(cuò)誤檢查方面也不行,不如傳統(tǒng)軟件集成方式;

另外由于項(xiàng)目變動需要調(diào)整CAN協(xié)議時(shí),這一工作在傳統(tǒng)集成時(shí)是簡單的修改,但對于AUTOSAR項(xiàng)目來說是一個(gè)災(zāi)難性的變動,基本上可以說此前80%的集成工作需要重新做,當(dāng)然這一問題有國內(nèi)廠家系統(tǒng)階段定義CAN協(xié)議太隨意造成變更太隨意的流程問題原因,不能全怪在AUTOSAR身上。

四,策略與BSW的適應(yīng)性問題。AUTOSAR項(xiàng)目中,APP與基礎(chǔ)軟件的集成有兩種方式,一種是自上而下,另一種是自下而上。拿MATALAB來舉例,自上而下,是MATLAB策略軟件將定義號的模塊,接口,數(shù)據(jù)類型,調(diào)度周期等信息先做好定義生成ARXML文件,導(dǎo)入到AUTOSAR工具鏈中進(jìn)行集成。自下而上,則是由AUTOSAR工具鏈定義好模塊及接口,生成ARXML文件后導(dǎo)入到MATLAB中,MATLAB再在此框架中進(jìn)行建模。

但還是由于工具兼容性的問題,基本上目前只能實(shí)現(xiàn)自上而下的集成方式,自下而上的方式,由于MATLAB對于AUTOSAR接口的檢查規(guī)則與其他廠家的規(guī)則不一致導(dǎo)致會報(bào)錯(cuò),基本上無法這樣實(shí)施。

五,調(diào)試問題。這是自動代碼生成的通病,和MATLAB自動生成的代碼一樣,RTE generator生成的代碼可讀性上也很差,這給軟件調(diào)試帶來了不少麻煩,在C代碼層級,信號的數(shù)據(jù)走向和函數(shù)調(diào)用需要一層一層的查詢才能找到相應(yīng)的數(shù)據(jù)關(guān)系。

六,汽車工程師對于AUTOSAR新理念的接受程度。AUTOSAR提出了很多新概念,例如標(biāo)定量是通過描述文件進(jìn)行描述,再由RTE進(jìn)行統(tǒng)一管理生成代碼。策略接口也不以簡單直接的全局變量的方式與底層軟件進(jìn)行交互,而是對接口進(jìn)行描述定義,由RTE統(tǒng)一進(jìn)行接口匹配生產(chǎn)代碼。

其他還有RE,IB,Interface等這些抽象的概念給接觸AUTOSAR的人帶來了很多困擾。AUTOSAR的軟件開發(fā)理念和傳統(tǒng)嵌入式工程師的認(rèn)知偏差還是有些大的,造成了一些排斥心理,這也是AUTOSAR普及度不高的一個(gè)原因。

小結(jié)一下:有一種說法,行業(yè)內(nèi)的標(biāo)準(zhǔn)都是幾個(gè)巨頭為了鞏固自己的壟斷地位制定出來。各位辯證的看這個(gè)問題,AUTOSAR利弊都挺明顯,不管怎樣,目前看來也還是汽車軟件開發(fā)發(fā)展的趨勢,我個(gè)人也希望AUTOSAR能夠越來越普及,以此來推動工具鏈或者標(biāo)準(zhǔn)在實(shí)際使用中的優(yōu)化,畢竟是吃這碗飯的,擔(dān)心自己丟了飯碗。。上面是自己的觀點(diǎn),認(rèn)知有限,不對的地方望理解。