本文來自《汽車軟件開發(fā)社區(qū)》的系列文章,全文一萬余字,主要分為以下四個部分:
1、國內(nèi)汽車基礎(chǔ)軟件的現(xiàn)狀與挑戰(zhàn)
2、汽車基礎(chǔ)軟件的定義
3、汽車基礎(chǔ)軟件的起源與演進
4、基礎(chǔ)軟件支持“軟件定義汽車”的早期形態(tài)
01.
國內(nèi)汽車基礎(chǔ)軟件的現(xiàn)狀與挑戰(zhàn)
一直以來,操作系統(tǒng)、數(shù)據(jù)庫、中間件、編程語言及編譯器等基礎(chǔ)軟件領(lǐng)域是我國軟件產(chǎn)業(yè)的薄弱環(huán)節(jié),近幾年更是因為一些“卡脖子”事件而備受關(guān)注。其實,不同的產(chǎn)業(yè)門類有各自不同的基礎(chǔ)軟件,如PC行業(yè)、手機行業(yè)、工業(yè)控制、云計算等都有自己領(lǐng)域的基礎(chǔ)軟件,汽車行業(yè)也不例外,也有自己專屬的一套基礎(chǔ)軟件。
非??上驳氖牵鄬τ赑C、手機等行業(yè)基礎(chǔ)軟件幾乎完全依賴國外的狀況,汽車行業(yè)的基礎(chǔ)軟件在近幾年受到了從上到下極高的重視,并取得了一定的實質(zhì)性進展,大有彎道超車,一雪前恥的逆轉(zhuǎn)勢頭。
在汽車軟件領(lǐng)域,隨著汽車電子技術(shù)的不斷發(fā)展,尤其是近幾年在汽車產(chǎn)業(yè)“新四化”趨勢的帶動下,軟件對于汽車的重要性日益凸顯,“軟件定義汽車”的理念逐步成為行業(yè)共識。
同時,汽車行業(yè)對于新一代集中式E/E架構(gòu)中的域控制器或車載計算平臺所需的基礎(chǔ)軟件還存在空白,還沒有類似PC行業(yè)的Windows、手機行業(yè)的Android等可供各家整車廠或供應(yīng)商使用的通用操作系統(tǒng)及中間件,而從事軟件的人都知道:得操作系統(tǒng)者得天下。
因此,大家不再僅僅關(guān)注于應(yīng)用軟件的開發(fā)與創(chuàng)新,同時更加重視車載操作系統(tǒng)、中間件、AUTOSAR等汽車基礎(chǔ)軟件的開發(fā)與創(chuàng)新,國內(nèi)汽車基礎(chǔ)軟件領(lǐng)域出現(xiàn)了空前的繁榮。
誕生了一大批以汽車基礎(chǔ)軟件為主營業(yè)務(wù)的企業(yè),如東軟睿馳、普華基礎(chǔ)軟件、經(jīng)緯恒潤、中科創(chuàng)達、伊勢智控等,其中很多基礎(chǔ)軟件產(chǎn)品已實現(xiàn)一定規(guī)模的量產(chǎn)。
出現(xiàn)了提供包括基礎(chǔ)軟件在內(nèi)的“全?!逼囓浖鉀Q方案的大型汽車軟件公司,如零束、華為;
獲得了行業(yè)VC風(fēng)投機構(gòu)越來越多的青睞。去年10月,東軟睿馳拿到國投招商、德載厚合計6.5億元人民幣投資,公司估值超過60多億人民幣。
由中汽協(xié)牽頭,于2020年7月成立了國內(nèi)首個汽車基礎(chǔ)軟件領(lǐng)域的生態(tài)聯(lián)盟AUTOSEMO,旨在為中國汽車行業(yè)提供面向下一代汽車的標(biāo)準(zhǔn)化的基礎(chǔ)軟件架構(gòu)、方法論和應(yīng)用程序接口標(biāo)準(zhǔn)。
向來在各行各業(yè)都薄弱的國產(chǎn)基礎(chǔ)軟件,這次能在汽車行業(yè)中逆轉(zhuǎn)么?我們不妨先看下以往其它行業(yè)基礎(chǔ)軟件發(fā)展緩慢而沒有突破的原因。根據(jù)中國軟件行業(yè)協(xié)會在2021年發(fā)布的《中國基礎(chǔ)軟件根技術(shù)發(fā)展白皮書》和工信部在2017年發(fā)布的《<信息產(chǎn)業(yè)發(fā)展指南>解讀:基礎(chǔ)軟件和工業(yè)軟件》兩篇文章,國產(chǎn)基礎(chǔ)軟件發(fā)展所存在的主要問題有:
國產(chǎn)基礎(chǔ)軟件對核心技術(shù)掌握不夠深入,產(chǎn)品性能功能、用戶體驗、穩(wěn)定性和成熟度等與國外主流產(chǎn)品仍存在一定差距,在產(chǎn)品化、工程化方面與國外企業(yè)差距較大。
專業(yè)人才培養(yǎng)和儲備不足。對基礎(chǔ)軟件技術(shù)投入不夠,專業(yè)人才培養(yǎng)缺乏針對性,尤其缺乏復(fù)合型人才。
產(chǎn)業(yè)規(guī)模小,力量分散,沒有形成生態(tài)。
很遺憾,在本人看來,這三個問題對于國內(nèi)當(dāng)前的汽車基礎(chǔ)軟件行業(yè)同樣存在。以下我們以汽車基礎(chǔ)軟件領(lǐng)域大家耳熟能詳?shù)腁UTOSAR軟件為例進行分析。
首先,我們對汽車基礎(chǔ)軟件核心技術(shù)的掌握遠不夠深入。
因為大部分人是近幾年通過AUTOSAR來才開始了解汽車基礎(chǔ)軟件的,在此之前我們對汽車基礎(chǔ)軟件的了解極少。
汽車中各個控制器的基礎(chǔ)軟件通常由Tier1開發(fā)完成,而汽車核心零部件一直是中國汽車行業(yè)的堅冰地帶,國內(nèi)汽車零部件公司在行業(yè)“新四化”之前,大多以機械件為主,涉及到電子控制的核心零部件極少。國內(nèi)最早接觸基礎(chǔ)軟件的開發(fā)人員大多在Bosch、Conti等外資零部件企業(yè),而且受制于外資企業(yè)對核心技術(shù)的保護,很多工程師甚至都看不到控制器中的軟件源代碼。
插播個故事:本人2009年曾在一家外資的座椅加熱控制器研發(fā)部門實習(xí),當(dāng)時由于國內(nèi)拿不到源代碼,而又急需修改一個重要參數(shù)進行產(chǎn)品試驗,無奈下只能分析二進制可執(zhí)行文件(軟件編譯后生成的Hex文件),通過類似反編譯的方式,找到了參數(shù)在文件中的位置,直接修改了該參數(shù)(慶幸程序中當(dāng)時沒有今天的安全刷新、安全啟動等一系列信息安全機制~~),從而保證了產(chǎn)品試驗?zāi)軌虬磿r完成??梢?,當(dāng)時國內(nèi)工程師連一個簡單的座椅加熱控制功能軟件源代碼都看不到。
直到近幾年,國內(nèi)新能源和自動駕駛領(lǐng)域誕生了眾多初創(chuàng)公司進行相關(guān)零部件的自主研發(fā),Vector、ETAS等國外企業(yè)適時推出符合AUTOSAR標(biāo)準(zhǔn)的基礎(chǔ)軟件產(chǎn)品供其使用,才使得國內(nèi)工程師有機會真正接觸汽車基礎(chǔ)軟件,以至于很多人誤認為基礎(chǔ)軟件就是AUTOSAR,AUTOSAR就是基礎(chǔ)軟件。而前面提到的幾家國產(chǎn)基礎(chǔ)軟件供應(yīng)商,其開發(fā)人員大多也是參考AUTOSAR標(biāo)準(zhǔn)開發(fā)基礎(chǔ)軟件,之前毫無相關(guān)經(jīng)驗。
可想而知,對于這些企業(yè)而言,要實現(xiàn)汽車基礎(chǔ)軟件的產(chǎn)品化和工程化會有多么困難。以產(chǎn)品化為例,由于開發(fā)人員缺乏實際開發(fā)和應(yīng)用經(jīng)驗,僅憑一堆AUTOSAR標(biāo)準(zhǔn)文檔開發(fā)產(chǎn)品,面對客戶需求時不能合理引導(dǎo)客戶而一味地滿足客戶千奇百怪的需求,難以形成自己的標(biāo)準(zhǔn)化產(chǎn)品,很容易讓自己走入死胡同。
其次,專業(yè)人才嚴(yán)重不足,且行業(yè)內(nèi)對人才競爭激烈,工作穩(wěn)定性差。
從前面一點其實也不難看出來汽車基礎(chǔ)軟件領(lǐng)域?qū)I(yè)人才的極度匱乏。而近幾年行業(yè)內(nèi)如雨后春筍般出現(xiàn)的大量公司對基礎(chǔ)軟件人才如饑似渴,使得基礎(chǔ)軟件工程師身價倍增,流動率極高,不利于個人能力的成長。而從企業(yè)角度看,嚴(yán)重不足的開發(fā)人員難以支撐企業(yè)實現(xiàn)自己的宏圖大業(yè)。
在Bosch,截至2020年,約有1200名專職從事汽車基礎(chǔ)軟件開發(fā)的軟件工程師,按照去年Bosch對外發(fā)布的信息,其與ETAS整合后形成的“通用汽車軟件”開發(fā)團隊將達到2000多人。在Vector、KPIT等第三方軟件供應(yīng)商,其汽車基礎(chǔ)軟件開發(fā)團隊規(guī)模也在800~1000人左右。而國內(nèi)的基礎(chǔ)軟件企業(yè)即使?jié)M打滿算,大多只有100人左右,有些甚至不足50人,規(guī)模最大也沒超過200人。就算我們的工程師能力與國外相當(dāng),所開發(fā)的產(chǎn)品也會打2折,甚至1折。
再次,產(chǎn)業(yè)規(guī)模小,資源分散,集中度低,甚至惡性競爭。
國內(nèi)汽車產(chǎn)業(yè)本就具有非常明顯的分散特征,而這一特征在汽車基礎(chǔ)軟件領(lǐng)域也正在上演,以AUTOSAR產(chǎn)品為例,國內(nèi)目前已至少有東軟睿馳、普華基礎(chǔ)軟件、經(jīng)緯恒潤、道緯科技、知從科技等五家宣稱可提供相關(guān)產(chǎn)品與服務(wù)。另外,還有一件讓人費解的事情:2020年11月,“中國智能網(wǎng)聯(lián)汽車產(chǎn)業(yè)創(chuàng)新聯(lián)盟基礎(chǔ)軟件工作組”成立了,這是國內(nèi)第二個基礎(chǔ)軟件生態(tài)聯(lián)盟,而前一個AUTOSEMO剛剛成立不到半年。
本就稀少的資源變得更加分散,而資源分散是致命的,內(nèi)耗太多,難以成事。為了拿到項目,相對于國外產(chǎn)品普遍按照授權(quán)使用范圍或產(chǎn)量進行定價的模式,一些國內(nèi)企業(yè)在產(chǎn)品單價遠低于國外產(chǎn)品的情況下,進一步采取不限制使用范圍的一口價策略,后期用戶使用過程中甚至還可以以極低費用甚至免費提供工程服務(wù)直至量產(chǎn),大大低估了基礎(chǔ)軟件的價值和應(yīng)用難度,導(dǎo)致利潤極低,甚至虧損。部分企業(yè)已經(jīng)出現(xiàn)增長乏力甚至是負增長。
據(jù)高工智能汽車報道:“作為中國軟件企業(yè)中最早進入AUTOSAR高級合作伙伴的普華基礎(chǔ)軟件,截至去年底,其AUTOSAR汽車級軟件平臺產(chǎn)品已量產(chǎn)超過500萬套,但公司營收卻并沒有起色。數(shù)據(jù)顯示,該公司2017年營收為7,232.14萬元,利潤僅為24.81萬元;到了2020年,營收為9,387.57,利潤153.28萬元,營收年復(fù)合增長百分比僅為個位數(shù),公司整體估值僅為3.36億元。最新數(shù)據(jù)顯示,普華基礎(chǔ)軟件2021年1-9月營收為5672.82萬元,凈利潤虧損580.53萬元,在汽車軟件行業(yè)整體向好的背景下,卻凸顯業(yè)務(wù)增速的乏力?!?/span>
總的來看,汽車基礎(chǔ)軟件的國產(chǎn)化之路已經(jīng)開啟,但同樣道阻且長?;A(chǔ)軟件技術(shù)一向是門檻高、投入大、周期長、回報慢,希望每一個真正有志于國產(chǎn)汽車基礎(chǔ)軟件的同行都能堅守初心,行穩(wěn)致遠。
要想做好汽車基礎(chǔ)軟件,首先應(yīng)當(dāng)搞明白什么是汽車基礎(chǔ)軟件。本人不才,一直從事于汽車動力總成領(lǐng)域的控制器基礎(chǔ)軟件開發(fā),對于以AUTOSAR Adaptive為代表的面向智能網(wǎng)聯(lián)汽車的新一代汽車基礎(chǔ)軟件缺乏實際應(yīng)用經(jīng)驗。以下基于自身有限的工作經(jīng)驗,僅就傳統(tǒng)ECU領(lǐng)域的基礎(chǔ)軟件,闡述自己對于到底何為汽車基礎(chǔ)軟件的理解,以及它的誕生與演變歷史,希望有助于國內(nèi)以應(yīng)用AUTOSAR Classic 平臺為主的ECU零部件供應(yīng)商更高效地開發(fā)更高質(zhì)量、更加安全的關(guān)鍵核心零部件,同時對于我們開發(fā)以AUTOSAR Adaptive為代表的面向智能網(wǎng)聯(lián)汽車的新一代汽車基礎(chǔ)軟件有所啟發(fā)。
02.
汽車基礎(chǔ)軟件的定義
汽車基礎(chǔ)軟件,又稱為底層軟件,雖然現(xiàn)在經(jīng)常被提到,大家似乎都很熟悉了,但仔細考究就會發(fā)現(xiàn),目前并沒有一個被行業(yè)各方都認同的統(tǒng)一的定義。就連專注于汽車基礎(chǔ)軟件的AUTOSAR標(biāo)準(zhǔn),給出的定義也非常雞肋
——“The Basic Software (BSW) provides the infrastructural(schematic dependent and schematic independent) functionalities of an“Electronic Control Unit”.”,
無非就是把Basic一詞換成了Infrastructure,沒有實質(zhì)內(nèi)容(此處僅指概念上,AUTOSAR標(biāo)準(zhǔn)所定義的內(nèi)容當(dāng)然是非常多的)。所以目前每個開發(fā)組織對于基礎(chǔ)軟件的理解細究起來其實并不完全相同。一個非常典型的例證就是實際開發(fā)過程中底軟團隊和應(yīng)用層開發(fā)團隊之間經(jīng)常就某個功能應(yīng)該由誰來開發(fā)而爭個不休,比如對某個開關(guān)信號的Debounce操作。
其實,AUTOSAR標(biāo)準(zhǔn)所定義的基礎(chǔ)軟件是各家會員單位基于自己對基礎(chǔ)軟件的理解相互溝通妥協(xié)后的結(jié)果,是各家會員單位具有普遍共識的部分。除此以外,還有大量的基礎(chǔ)軟件模塊并沒有被標(biāo)準(zhǔn)化。
以最常見的MCU驅(qū)動(Mcal)為例,AUTOSAR標(biāo)準(zhǔn)中僅對GPT、Watchdog、Flash、CAN、SPI、ADC、Port等MCU外設(shè)驅(qū)動進行了標(biāo)準(zhǔn)化,如下圖中橙色部分所示。而MCU其它常見的外設(shè),如I2C、MSC、DMA、UART、MPU、EMM、GTM等許多模塊并沒有被標(biāo)準(zhǔn)化,如下圖中灰色部分所示。
BMW和Bosch分別是九大核心成員中OEM和Tier1的代表。我們來看下他們對于基礎(chǔ)軟件的理解。
BMW盡管是一家OEM,但其軟件開發(fā)能力卻毫不遜色,這也是為什么它能牽頭推動AUTOSAR標(biāo)準(zhǔn)的制定。BMW在集團范圍內(nèi)定義了名為BSP(BMW Software Platform)的標(biāo)準(zhǔn)軟件平臺,這個平臺主要包括BMW AUTOSAR Core(簡稱BAC)和adaptive BMW AUTOSAR Core(簡稱aBAC)。在這里面,除了常規(guī)的AUTOSAR標(biāo)準(zhǔn)中所定義的內(nèi)容,還包含有用于軟件更新的Bootloader、信息安全增強軟件包、以太網(wǎng)診斷擴展包等眾多獨門秘技。這些內(nèi)容以企標(biāo)或軟件模塊的形式傳遞給供應(yīng)商,由供應(yīng)商進行實現(xiàn)或集成。
Bosch作為汽車電子領(lǐng)域常年排名世界第一的零部件供應(yīng)商,一直在引領(lǐng)著汽車技術(shù)的進步,在汽車基礎(chǔ)軟件方面其實也毫不例外,只是從來沒有專門拿出來說而已。Bosch早在2005年左右就已經(jīng)形成自己較為成熟的基礎(chǔ)軟件,當(dāng)時稱為Core Software,它主要包含Base System和Diagnosis System 兩大部分,其中前者主要包含硬件相關(guān)功能組件,如OS、啟動管理、復(fù)位管理,刷新用Bootloader、硬件封裝模塊、服務(wù)函數(shù)庫、標(biāo)定與測量驅(qū)動等,而后者主要包含常規(guī)通信、診斷通信、故障管理、網(wǎng)絡(luò)管理、網(wǎng)關(guān)等功能組件。如今AUTOSAR標(biāo)準(zhǔn)中所提及的復(fù)雜驅(qū)動當(dāng)時并不屬于Core Software,后來,隨著軟件架構(gòu)的不斷發(fā)展,Bosch對于基礎(chǔ)軟件范圍的定義也持續(xù)進化。如今,Bosch的汽車基礎(chǔ)軟件雖然也大多采用了AUTOSAR標(biāo)準(zhǔn),但在標(biāo)準(zhǔn)之外,仍然存在遠超標(biāo)準(zhǔn)內(nèi)容的功能組件,尤其是在功能安全、信息安全、外設(shè)驅(qū)動、Ethernet等關(guān)鍵核心功能領(lǐng)域。
由此可見,對于基礎(chǔ)軟件的具體內(nèi)涵,目前各家都有自己的定義,AUTOSAR所定義的內(nèi)容更多的只是各家的共性部分。如果非要給基礎(chǔ)軟件下一個定義的話,倒是可以參考國內(nèi)AUTOSEMO組織在《中國汽車基礎(chǔ)軟件發(fā)展白皮書1.0》中的描述:
汽車基礎(chǔ)軟件是用于實現(xiàn)汽車系統(tǒng)軟硬件解耦,且與用戶應(yīng)用功能無關(guān),但為應(yīng)用功能提供一系列服務(wù)的支撐軟件集合。
對于不熟悉汽車基礎(chǔ)軟件的人而言,這種定義可能還是過于抽象。如果要用一種形象的方式解釋什么是基礎(chǔ)軟件,本人認為可以將基礎(chǔ)軟件比作人體的神經(jīng)系統(tǒng),相對應(yīng)地,控制器硬件可以理解為身體,而應(yīng)用軟件可以理解為大腦。如下圖所示。
以AUTOSAR架構(gòu)為例:
系統(tǒng)技術(shù)棧部分可以理解為負責(zé)控制新陳代謝的神經(jīng)
存儲技術(shù)??梢岳斫鉃樨撠?zé)記憶的神經(jīng)
通信技術(shù)??梢岳斫鉃槲覀兊?strong style="margin: 0px; padding: 0px; outline: 0px; max-width: 100%; box-sizing: border-box !important;">聽覺和語言神經(jīng)
IO和復(fù)雜驅(qū)動技術(shù)??梢岳斫鉃樨撠?zé)感覺和運動的神經(jīng)
舉個例子,應(yīng)用軟件準(zhǔn)確計算出了某個結(jié)果,希望驅(qū)動某個執(zhí)行器開啟或關(guān)閉但控制器卻沒有發(fā)出用于控制執(zhí)行器的物理信號,而此時控制器硬件沒有任何問題,這很像一個人想活動四肢,但卻因為神經(jīng)系統(tǒng)出現(xiàn)問題而動彈不得。
上圖是本人總結(jié)的傳統(tǒng)汽車基礎(chǔ)軟件全景圖。其中橙色的模塊是AUTOSAR標(biāo)準(zhǔn)已涵蓋的模塊,而灰色的模塊則是AUTOSAR尚未涉及的模塊或功能包。需要說明的是,歸入復(fù)雜驅(qū)動中軟件從嚴(yán)格意義上來說,并不都屬于復(fù)雜驅(qū)動,只是它們尚未被標(biāo)準(zhǔn)化,而暫時寄存在這里而已,如Hypervisor、功能安全、信息安全、高級以太網(wǎng)驅(qū)動、硬件加速模塊驅(qū)動等。
那這些尚未被AUTOSAR標(biāo)準(zhǔn)化的內(nèi)容占比有多少呢?不同的組織或許有不同的答案,如果對標(biāo)Bosch,占比則不低于50%!
綜上所述,汽車基礎(chǔ)軟件沒有嚴(yán)格的定義,但可以明確的是,AUTOSAR不等于基礎(chǔ)軟件,基礎(chǔ)軟件的范疇要遠超AUTOSAR標(biāo)準(zhǔn)中所定義的內(nèi)容,二者不能劃等號,它們的關(guān)系更像是早餐與豆?jié){油條的關(guān)系。AUTOSAR只是標(biāo)準(zhǔn)化了各家會員單位的共識部分,各家的還有很多“獨門秘籍”并沒有拿出來標(biāo)準(zhǔn)化。
對于組織而言,按照AUTOSAR標(biāo)準(zhǔn)只能開發(fā)出或采購到自家產(chǎn)品所需的部分基礎(chǔ)軟件模塊,一定還有需要額外自行開發(fā)的基礎(chǔ)軟件;在實際項目中,必須明確基礎(chǔ)軟件的具體范圍,而不能描述的過于籠統(tǒng)或者簡單的與AUTOSAR劃等號。否則,我們的項目將每天都有很多“意外”,很難“On Time,On Spec,On Cost”地交付。
對于個人而言,基礎(chǔ)軟件除了AUTOSAR以外,還有眾多待研究和開發(fā)的地方,而這些尚未標(biāo)準(zhǔn)化的內(nèi)容往往是具有更高價值的功能,因此我們有充足的個人職業(yè)發(fā)展空間,而不會讓自己局限為一個簡單的所謂的“工具人”,除非我們自我設(shè)限。
或許在接下來我們了解了汽車基礎(chǔ)軟件的發(fā)展歷史后,我們會更加充滿信心。
03.
汽車基礎(chǔ)軟件的起源與演進
欲知大道,必先為史。本節(jié)重點談?wù)勂嚮A(chǔ)軟件的起源與演進。汽車基礎(chǔ)軟件不是隨著汽車電子控制器一起誕生的,而是伴隨著控制器功能日益復(fù)雜而逐漸形成的。早期的汽車電子控制器由于功能較少,軟件比較簡單,并沒有基礎(chǔ)軟件的說法。隨著控制器中軟件功能的日益增多,軟件架構(gòu)設(shè)計的重要性日益凸顯,如何提高軟件的復(fù)用率,避免重復(fù)開發(fā),提高開發(fā)效率受到越來越多的關(guān)注。
首先,國際領(lǐng)先的汽車電子控制器研發(fā)組織是汽車基礎(chǔ)軟件的創(chuàng)造者。
不僅Tier1,還有OEM,因為縱觀全球汽車零部件格局,汽車零部件公司大致分兩種:一種是創(chuàng)立之初就是獨立零部件廠商;另一種則是誕生于汽車整車廠體系下。前者比如博世、麥格納,后者比如電裝、德爾福。
上世紀(jì)八九十年代,在領(lǐng)先的電子控制器研發(fā)組織內(nèi),控制器中的軟件逐漸被細分為若干相對獨立的模塊,從最頂層看,整個系統(tǒng)的軟件逐漸被分為與產(chǎn)品功能直接相關(guān)的應(yīng)用軟件和不直接相關(guān)的基礎(chǔ)軟件兩大部分,從而使得研發(fā)組織內(nèi)部的各個產(chǎn)品之間和同一產(chǎn)品的不同代系之間的軟件復(fù)用率大幅提升,減少重復(fù)開發(fā)。
舉個例子,下圖展示了Bosch在2010年左右設(shè)計的同時兼容傳統(tǒng)發(fā)動機控制和新能源汽車電機控制的軟件架構(gòu)。其中上半部分為應(yīng)用軟件ASW,而下半部分可以理解為基礎(chǔ)軟件,其中包括HDS(硬件相關(guān)軟件)、Dia(診斷軟件)、ComSys(通信軟件)、DE(傳感器與執(zhí)行器等設(shè)備封裝軟件)、CDrv(復(fù)雜驅(qū)動)五個部分。這一結(jié)構(gòu)已經(jīng)很接近我們今天所看到的AUTOSAR分層架構(gòu)了,而這一軟件架構(gòu)其實早在2005年左右在Bosch內(nèi)部就已非常成熟,并廣泛地應(yīng)用于發(fā)動機、變速箱等控制器。
Bosch動力總成控制器軟件架構(gòu)圖
來源:論文《Experiences from a Large Scale Software Product LineMerger in the Automotive Domain》
其次,歐洲整車廠是基礎(chǔ)軟件標(biāo)準(zhǔn)化的推動者。
與國內(nèi)的整車廠不同,歐美的整車廠大多擁有較強的電子控制器自主開發(fā)能力。隨著汽車上所集成的電子控制器數(shù)量持續(xù)增多,整車電子電氣系統(tǒng)分布式網(wǎng)絡(luò)控制(Networked and Distributed)的特征日益明顯,整車廠們發(fā)現(xiàn)集成的難度越來越大。德國和法國的OEM及其供應(yīng)商通過調(diào)查發(fā)現(xiàn),大量的工作花費在了開發(fā)和調(diào)試操作系統(tǒng)、通信和網(wǎng)絡(luò)管理以及輸入輸出設(shè)備驅(qū)動等軟件上,以確定應(yīng)用功能表現(xiàn)異常的原因。也就是說為了分析系統(tǒng)功能異常的原因,花費了大量精力在基礎(chǔ)軟件層面上。同時發(fā)現(xiàn),各家控制器供應(yīng)商都投入了巨大的費用用于開發(fā)和維護與應(yīng)用功能無關(guān)的軟件,即重復(fù)開發(fā)基礎(chǔ)軟件,且各家為應(yīng)用軟件提供的基礎(chǔ)軟件在接口和協(xié)議方面相互不兼容。
為此,在1995年,歐洲整車廠們牽頭制定了汽車基礎(chǔ)軟件領(lǐng)域的首份行業(yè)標(biāo)準(zhǔn):OSEK/VDX標(biāo)準(zhǔn)。
OSEK/VDX組織的目標(biāo)是開發(fā)一套標(biāo)準(zhǔn)的API,從而減少應(yīng)用軟件重復(fù)開發(fā)帶來的工作量并提高應(yīng)用軟件可移植性和復(fù)用率。其結(jié)果是產(chǎn)生了三個相對獨立的標(biāo)準(zhǔn):操作系統(tǒng)、通信和網(wǎng)絡(luò)管理。在今天看來,這些被標(biāo)準(zhǔn)化的內(nèi)容是汽車基礎(chǔ)軟件的重要組成部分,但還遠不夠完整。以I/O技術(shù)棧為例,當(dāng)時OSEK/VDX組織已意識到并沒有對這部分開發(fā)對應(yīng)的標(biāo)準(zhǔn),而采用了推薦各家在公司內(nèi)部自行開發(fā)自家標(biāo)準(zhǔn)的方式來處理這一問題。
從技術(shù)和商業(yè)兩個方面來看,OSEK/VDX標(biāo)準(zhǔn)在一定程度上滿足了整車廠最初的目標(biāo),但仍然不夠。隨著汽車電子的發(fā)展,這些領(lǐng)先的整車廠逐漸將重點聚焦在與用戶使用體驗直接相關(guān)的應(yīng)用功能軟件,以打造品牌的差異性,硬件和基礎(chǔ)軟件則交由供應(yīng)商提供,產(chǎn)生了OEM和Tier1聯(lián)合開發(fā)控制器軟件的模式(我們將在下一節(jié)介紹與此相關(guān)的更多信息)。
為了使得這些自主研發(fā)的應(yīng)用軟件方便地集成到不同控制器供應(yīng)商的產(chǎn)品中,打破供應(yīng)商的制約,在2003年,進一步成立了AUTOSAR組織,制定了有史以來定義最全面的基礎(chǔ)軟件標(biāo)準(zhǔn)——AUTOSAR標(biāo)準(zhǔn),最大程度地實現(xiàn)了應(yīng)用功能軟件與控制器硬件的解耦,也就是我們現(xiàn)在常說的“軟硬件解耦”。AUTOSAR組織的目的其實和OSEK/VDX組織差別不大,只是AUTOSAR在內(nèi)容方面進行了大幅擴展,在細節(jié)方面進行更具體的定義,以期更好地滿足整車廠的愿望:
自主開發(fā)車輛應(yīng)用軟件,實現(xiàn)差異化競爭;
自主開發(fā)的應(yīng)用軟件可以方便地在不同供應(yīng)商的控制器之間移植;
自主開發(fā)的應(yīng)用軟件可以方便地在不同車型之間移植;
自主開發(fā)的應(yīng)用軟件可以方便地在不同應(yīng)用場景之間移植;
圖:AUTOSAR 愿景
需要特別指出的是,以上這些愿望都是整車廠的愿望,而不是供應(yīng)商的。因此在早期,Bosch、Conti等零部件巨頭對AUTOSAR并沒有熱情,甚至是抗拒。這使得AUTOSAR標(biāo)準(zhǔn)早期的推廣并不順利,直到發(fā)展到R4.0版本才相對較為成熟,這也是當(dāng)前業(yè)內(nèi)普遍采用的版本。以Bosch為例,其產(chǎn)品從2015年左右才開始大規(guī)模采用AUTOSAR標(biāo)準(zhǔn)開發(fā)基礎(chǔ)軟件。同時,直到近幾年,在寶馬等車廠的一些項目中,Bosch的產(chǎn)品仍然因為對AUTOSAR的支持能力不足而沒有獲得項目定點。
最后,開源 —— 基礎(chǔ)軟件標(biāo)準(zhǔn)化的新嘗試。
AUTOSAR標(biāo)準(zhǔn)雖然已經(jīng)定義的非常細,但畢竟仍然只是個標(biāo)準(zhǔn),而不是具體的實例。其所倡導(dǎo)的“在標(biāo)準(zhǔn)上合作,在實現(xiàn)上競爭”的理念,在實際落地過程中也出現(xiàn)了各種各樣的問題,導(dǎo)致各家基于同一個標(biāo)準(zhǔn)開發(fā)的AUTOSAR產(chǎn)品彼此之間并不兼容,使得整車廠們的愿望被大打折扣。Bosch對此深有感觸,并牽頭發(fā)起了一個類開源項目:COMASSO,以期聯(lián)合各方共同開發(fā)一套符合AUTOSAR標(biāo)準(zhǔn)的基礎(chǔ)軟件及其工具。其背后的動機可參考如下來自其官網(wǎng)的描述。
After 10 years of AUTOSAR development we observe theexistence of various implementations without competition relevantdifferentiation, causing integration effort in case of SW exchange and reuse.We want to reduce this higher integration effort in case of SW exchange andresuse by supporting a common implementation of the AUTOSAR standard. Thisprovides the members a higher degree of freedom to concentrate on innovation.
從2013年Bosch和ETAS共同成立COMASSO開始,這個項目已運行近十年,20多家組織加入,不過可能受制于開源模式不夠徹底,目前依然不溫不火,知名度很低,影響力有限。但這未嘗不是一種新的嘗試,或許在未來的某個恰當(dāng)時機,將猶如Linux一樣被普遍采用。
綜上所述,汽車基礎(chǔ)軟件的誕生是汽車軟件日益復(fù)雜的必然結(jié)果,符合軟件發(fā)展的客觀規(guī)律,是各個研發(fā)組織自我進化的自然結(jié)果。而汽車基礎(chǔ)軟件的標(biāo)準(zhǔn)化則體現(xiàn)了汽車行業(yè)的特點,是由整車廠牽頭推動才形成的,體現(xiàn)了整車廠的意志,對于供應(yīng)商而言,由于自己的一部分業(yè)務(wù)被整車廠收回了,因而其實是弊大于利。
展望未來,汽車基礎(chǔ)軟件的標(biāo)準(zhǔn)化是繼續(xù)走下去,還是出現(xiàn)類似手機行業(yè)Android和蘋果iOS等不同陣營的操作系統(tǒng)實例,以及是否會出現(xiàn)安全可靠的開源解決方案,讓我們拭目以待。
04.
基礎(chǔ)軟件支持“軟件定義汽車”的早期形態(tài)
面對日益復(fù)雜的汽車軟件,尤其是域控制器等中央計算平臺,僅憑一家之力難以完成,共建軟件開發(fā)生態(tài),聯(lián)合多家生態(tài)伙伴共同開發(fā)是“軟件定義汽車”實現(xiàn)的必由之路。而這種多家聯(lián)合開發(fā)控制器軟件的模式其實在行業(yè)內(nèi)早已有之,尤其是國外OEM,早在上個世紀(jì)就開始了“軟件定義汽車”的探索,只不過那時的軟件主要聚焦車輛的性能,而今天的軟件更多強調(diào)終端消費者的使用體驗,即所謂的“千人千面”。了解這些早期“軟件定義汽車”理念的具體實現(xiàn)方法對于實現(xiàn)今天的“軟件定義汽車”無疑具有重要的指導(dǎo)意義。本節(jié)介紹本人所了解到的傳統(tǒng)控制器中存在的各種軟件聯(lián)合開發(fā)模式,希望能有助于國內(nèi)同行以更務(wù)實的態(tài)度推進“軟件定義汽車“的落地,少走彎路。
相對于軟件和硬件均由供應(yīng)商完全開發(fā)的傳統(tǒng)控制器開發(fā)模式,控制器軟件由兩方及以上共同進行開發(fā)的項目都可認為屬于軟件聯(lián)合開發(fā)模式,Bosch還專門將這種開發(fā)模式定義為Software-Sharing。
為了體現(xiàn)自己的技術(shù)優(yōu)勢和產(chǎn)品特性,OEM通常會對直接影響車輛功能的應(yīng)用軟件提出個性化需求,避免全部采用供應(yīng)商的默認方案。因此軟件聯(lián)合開發(fā)模式通常在OEM和Tier1之間展開。而這種合作開發(fā),離不開安全可靠的基礎(chǔ)軟件的高效支持。
OEM參與軟件開發(fā)程度的深淺以及雙方對開發(fā)相關(guān)的一系列數(shù)據(jù)交互形式,對于實際合作方法的影響巨大,必須區(qū)別對待。以下以常見的針對應(yīng)用軟件的聯(lián)合開發(fā)為例,根據(jù)聯(lián)合開發(fā)程度由淺到深,劃分為五種模式,依次進行介紹。
聯(lián)合開發(fā)模式一
該模式是指OEM以非源代碼的形式,如Simulink模型或UML模型,提供一小部分應(yīng)用層功能的控制策略詳細需求,源代碼仍由供應(yīng)商進行開發(fā),且供應(yīng)商需要開發(fā)雙方軟件之間的交互接口層,如圖中灰色部分所示。
這一模式是程度最小的一種軟件聯(lián)合開發(fā)模式。對OEM而言,無需掌握軟件開發(fā)能力,也能夠提出自己對某部分控制功能的獨特見解,使得最終的系統(tǒng)功能有別于供應(yīng)商提供的標(biāo)準(zhǔn)解決方案。模式一適用于在個別應(yīng)用層功能點采用自主方案,同時具備功能建模能力但不具備軟件開發(fā)能力,軟件仍由供應(yīng)商開發(fā),且同意自主方案對供應(yīng)商公開的OEM。
聯(lián)合開發(fā)模式二
該模式是指OEM以目標(biāo)代碼(軟件編譯之后的Object文件)的形式提供一小部分應(yīng)用層功能的控制策略。
相對于模式一,由于合作方交互過程中看不到具體的控制策略,因此這一模式可以保護OEM的自主創(chuàng)新不泄露,不過同時要求OEM具備軟件開發(fā)能力,這對于雙方的合作提出了更高更細的要求,比如提前約定好各自的函數(shù)與變量的命名空間,編譯器的具體版本等,而且由于供應(yīng)商得不到源碼,導(dǎo)致軟件調(diào)試難度增大。模式二適用于在個別應(yīng)用層功能點采用自有方案,同時具備功能建模能力和一定的軟件開發(fā)能力,軟件集成仍由供應(yīng)商負責(zé),且自主方案要求保密,不對供應(yīng)商進行開放的OEM。該模式在發(fā)動機控制器領(lǐng)域較為常見。
聯(lián)合開發(fā)模式三
該模式是指OEM除了自身參與應(yīng)用層軟件開發(fā)以外,還邀請了其它若干家供應(yīng)商提供部分應(yīng)用層軟件,大部分應(yīng)用層軟件均不再使用控制器供應(yīng)商的標(biāo)準(zhǔn)方案,并且最終的軟件集成由OEM進行。這就使得OEM能夠?qū)⒏骷夜?yīng)商之所長集于一身,更大程度地掌控系統(tǒng)控制策略,同時又能依托控制器供應(yīng)商深厚的硬件、軟件、功能安全和信息安全等開發(fā)能力和強大的生產(chǎn)能力。
相對于模式二,涉及的合作方更多,合作各方直接的接口數(shù)量大幅度增加,且都要求訪問基礎(chǔ)軟件的提供的接口,因此合作的難度大幅增加,同時對于OEM的軟件開發(fā)及系統(tǒng)集成與測試能力都提出了更高的要求。模式三適用于在較多應(yīng)用層功能點采用自有方案和第三方方案組合的形式,同時具備功能建模能力和較強的軟件開發(fā)能力,軟件集成仍由供應(yīng)商負責(zé),且自主方案和第三方方案要求保密,不對供應(yīng)商進行開放的OEM。
聯(lián)合開發(fā)模式四
該模式是指OEM開發(fā)大部分應(yīng)用層軟件,僅有一小部分應(yīng)用層軟件繼續(xù)采用控制器供應(yīng)商的標(biāo)準(zhǔn)方案。該模式的合作方法與模式三基本類似,對于OEM的自主開發(fā)能力要求大幅提高,但由于不涉及其它供應(yīng)商,因此項目合作難度有所降低。該模式能夠使OEM重用其自身已有的較為全面的能力,基本掌控系統(tǒng)控制策略。
模式四適用于大部分應(yīng)用層功能采用自有方案,同時具備很強的軟件開發(fā)能力,能夠負責(zé)軟件集成,且自主方案要求保密,不對供應(yīng)商進行開放的OEM。
聯(lián)合開發(fā)模式五
該模式是指OEM開發(fā)全部應(yīng)用層軟件,控制器供應(yīng)商僅提供硬件和基礎(chǔ)軟件(含復(fù)雜驅(qū)動)。該模式的合作方法與模式四基本類似,但由于不涉及其應(yīng)用層軟件之間的交互,因此項目開發(fā)難度有所降低。該模式同樣能夠使OEM重用其自身已有的較為全面的能力,并完全掌控系統(tǒng)控制策略。模式五適用于全部應(yīng)用層功能采用自有方案,同時具備較強的軟件開發(fā)能力,能夠負責(zé)軟件集成,且自主方案要求保密,不對供應(yīng)商進行開放的OEM。該模式在變速箱控制器、整車控制器等領(lǐng)域較常見。
總結(jié)
通過以上對各種軟件合作開發(fā)模式的細分介紹可見,不同的合作模式所支持的“OEM自由度”是不同的,同時自由度越高,所需的軟件開發(fā)能力要求也越高,當(dāng)然投資也會更大。下表以O(shè)EM視角,從多個角度對各種軟件聯(lián)合開發(fā)模式進行了定性對比。實際項目中,OEM(或者僅負責(zé)應(yīng)用功能開發(fā)的組織)可以根據(jù)自己所期望的“自由度”,結(jié)合自身技術(shù)能力和公司資源情況,并考慮對知識產(chǎn)權(quán)的保護,量力而行,選擇最適合自己的聯(lián)合開發(fā)模式,穩(wěn)妥推進自己“軟件定義汽車”的夢想。
針對OEM | 開發(fā)參與程度 | 軟件集成方 | 開發(fā)資源投入要求 | 功能開發(fā)能力要求 | 軟件開發(fā)能力要求 | OEM核心技術(shù)泄露風(fēng)險 | 項目聯(lián)合開發(fā)難度 |
模式1 | 低 | Tier1 | 低 | 低 | 低 | 高 | 低 |
模式2 | 低 | Tier1 | 較低 | 較低 | 較低 | 中 | 中 |
模式3 | 中 | OEM | 中 | 中 | 中 | 低 | 高 |
模式4 | 高 | OEM | 較高 | 較高 | 高 | 低 | 較高 |
模式5 | 高 | OEM | 高 | 高 | 高 | 低 | 較高 |
最后,需要強調(diào)的是,基礎(chǔ)軟件對于控制器軟件聯(lián)合開發(fā)的影響極其重大。這是因為在聯(lián)合開發(fā)過程中,基礎(chǔ)軟件決定了整個系統(tǒng)的狀態(tài)管理及任務(wù)調(diào)度、內(nèi)存模型、底層API接口、開發(fā)與調(diào)試工具、軟件構(gòu)建方法(各類文件解析與編譯)等整個軟件開發(fā)所依賴的基礎(chǔ)設(shè)施。
因此,OEM們最頭疼的就是由于各家供應(yīng)商的基礎(chǔ)軟件在上述各個方面的差異而導(dǎo)致的巨大的移植工作量。這種問題與手機領(lǐng)域中一個APP通常至少要開發(fā)Android和iOS兩個版本在本質(zhì)上是一樣的。
講到這里,相信大家就明白了為什么AUTOSARLogo中間那個字母“O”最特殊,絕不是僅僅出于設(shè)計美感的考慮,而是強調(diào)Open,開放!逆向思考一下:誰不開放了?誰想開放?自然是OEM希望Tier1們對自己更加開放。于是,BMW等一眾OEM強拉著Bosch等Tier1巨頭對基礎(chǔ)軟件進行標(biāo)準(zhǔn)化,從而形成了以架構(gòu)、應(yīng)用接口和方法論為三大支柱的AUTOSAR標(biāo)準(zhǔn),以期減少OEM軟件的移植工作量。
汽車的基礎(chǔ)軟件還在持續(xù)不斷的發(fā)展,AUTOSAR將只有進行時,沒有完成時。
05.
關(guān)于《汽車軟件開發(fā)交流公益社區(qū)》
汽車軟件領(lǐng)域浩瀚無邊,而且還在持續(xù)擴張,為此,我們創(chuàng)建了一個專門面向國內(nèi)汽車軟件工程師的交流社區(qū),域名:www.basicsw.cn(即將開通), 目前已開啟公測通道(http://175.24.230.121/),歡迎點擊文末“閱讀原文”開始體驗。
關(guān)于社區(qū)創(chuàng)辦的目的,我們總結(jié)了以下三點,希望我們的初心能夠得到大家的認同和支持。
1. 促進交流與分享,加速個人成長
隨著汽車電動化、智能化、網(wǎng)聯(lián)化的發(fā)展,以及“國產(chǎn)替代“概念的推動,汽車行業(yè)上至整車廠、下至芯片、開發(fā)工具供應(yīng)商,甚至獵頭等人才服務(wù)機構(gòu)一片熱火朝天。汽車行業(yè)百年未有之大變局帶火了汽車工程師,尤其是汽車軟件開發(fā)工程師,甚至原本做金融、財經(jīng)業(yè)務(wù)的獵頭也大批量轉(zhuǎn)做汽車獵頭,而被獵最多的就是汽車軟件工程師。許多人正跑步加入汽車軟件開發(fā)的行列,或為高薪、或為未來、或為情懷。
然而面對AUTOSAR、ASAM、OSEK、ISO26262、ASPICE等一大堆汽車行業(yè)百年積淀下來的專業(yè)知識,突然覺得自己陷入了一片無邊無際的汪洋大海,少有人帶教,看不到盡頭,找不到方向。與此同時,一大批熱心的汽車軟件行業(yè)老兵通過知乎、微信、CSDN等平臺積極分享著自己的寶貴經(jīng)驗。然而這些知識”碎片化“特征明顯,缺少歸納和歸類,也缺少互動。
因此,我們希望通過論壇這種“古老”的形式,為大家提供專注于汽車軟件這一細分領(lǐng)域的自由交流與分享的場所,幫助大家共同成長。
2. 打破組織邊界,凝聚全行業(yè)人才的智慧
國外經(jīng)常在報告中使用“fragmented”一詞來描繪中國汽車市場的特點,國內(nèi)汽車產(chǎn)業(yè)的分散特征由此可見一斑。由于產(chǎn)業(yè)分散,彼此間缺少合作,沒有形成生態(tài),導(dǎo)致人才資源分散,而人才資源分散對于核心技術(shù)的掌握是致命的,使得大家疲于學(xué)習(xí)國外已有的技術(shù),無暇進行更深層次的創(chuàng)新。
而伴隨著智能網(wǎng)聯(lián)汽車的發(fā)展,誕生了越來越多的汽車類企業(yè),使得原本就稀缺的汽車軟件人才更加分散,每家都有數(shù)量遠不及預(yù)期的少數(shù)汽車軟件開發(fā)人才。
因此,我們希望通過論壇這種虛擬的組織形式,打破組織邊界,將行業(yè)人才匯聚起來,讓每個人都成為照亮他人的一束光,促進知識的沉淀。
3. 深刻理解汽車軟件開發(fā)的特點,保持敬畏而又不失勇氣
在《人月神話》一書的開頭,作者描繪了這樣一幅場景:過去幾十年的大型系統(tǒng)開發(fā)就猶如這樣一個焦油坑,很多大型和強壯的動物在其中劇烈地掙扎。他們中大多數(shù)開發(fā)出了可運行的系統(tǒng)——不過,其中只有非常少數(shù)的項目滿足了目標(biāo)、時間進度和預(yù)算的要求。各種團隊,大型的和小型的,龐雜的和精干的,一個接一個淹沒在了焦油坑中……
在今天這樣一個“軟件定義汽車”的時代,這樣的場景仍然正在大大小小的軟件組織中上演。軟件開發(fā)本就是復(fù)雜的,而汽車軟件的開發(fā)更是異常復(fù)雜。表面上看起來好像沒有任何一個單獨的問題會導(dǎo)致困難,每個都能被解決,但是當(dāng)它們相互糾纏和累積在一起的時候,團隊的行動就會變得越來越慢。團隊成員每天都陷入各種討論會,難得寫幾行代碼。對問題的麻煩程度,每個人似乎都會感到驚訝,并且很難看清問題的本質(zhì)。而我們要想解決這些問題,就必須先去理解它。
希望在一次次提問和解答中,有助于大家深刻理解汽車軟件開發(fā)所要求的高實時性、高可靠性、高安全性、硬件成本敏感、跨學(xué)科跨領(lǐng)域、軟件集成要求高、維護周期長、法規(guī)要求嚴(yán)等一系列特點。在實際的開發(fā)過程中,既能保持對傳統(tǒng)的敬畏,又不失創(chuàng)新的勇氣。
每個圖標(biāo)代表一百萬行代碼
來源:汽車電子與軟件