“在軟件定義汽車的時(shí)代背景下,軟件的地位越來越高,智能汽車行業(yè)發(fā)展需要實(shí)現(xiàn)軟硬件解耦?!?/p>
類似上面這樣的話想必大家都不陌生了,在智能汽車發(fā)展的這幾年里,汽車供應(yīng)鏈的構(gòu)成發(fā)生了翻天覆地的改變,而軟硬件解耦,則成為了無論是主機(jī)廠還是供應(yīng)商都一直在想辦法解決的問題。
但是,標(biāo)準(zhǔn)依舊難以統(tǒng)一,各家的接口依舊各不相同。即便這么些年過去了,軟硬件解耦還是面臨著重重困難。
一.軟硬件解耦的背景
01 EE架構(gòu)的演進(jìn)
(對(duì)該部分主題熟悉的讀者,可以跳過,直接進(jìn)入下一小節(jié))
幾年前,一輛整車上的ECU僅僅只有十幾到二十個(gè),但隨著電子娛樂消費(fèi)主義不斷侵入人們生活的方方面面,人們對(duì)汽車的功能需求也逐步提升,而在分布式架構(gòu)的背景下,每新增一種功能都需要不斷地增加對(duì)應(yīng)的ECU。對(duì)于自動(dòng)駕駛汽車來說,更是如此,于是,一輛自動(dòng)駕駛汽車上的ECU發(fā)展到了最多近一兩百個(gè)。
ECU的不斷增加使得用于數(shù)據(jù)傳輸?shù)木€束總長(zhǎng)度與總成本也不斷增加(根據(jù)佐思汽研的測(cè)算,如果沿用目前的分布式架構(gòu),自動(dòng)駕駛汽車的線束成本將不會(huì)低于 1000 美元),供應(yīng)商的管理難度也有所增加。
除此之外,分布式架構(gòu)下,ACC 、AEB這些功能是跟傳感器(中的MCU)綁定的,彼此之間也是割裂的(這不符合第一性原理,人開車的時(shí)候不是這樣),而高等級(jí)自動(dòng)駕駛要求是各功能之間是一個(gè)有機(jī)體,因此,需要通過同一個(gè)SoC來實(shí)現(xiàn)。
在這樣的背景下,如何在有限的空間里既能提高空間利用率,又能發(fā)揮ECU的最大的性能,成為了行業(yè)內(nèi)下一個(gè)發(fā)展的方向。于是,汽車EE架構(gòu)開啟了從分布式架構(gòu)向集中式架構(gòu)演進(jìn)的大門,為此,域控制器誕生了 ,許多ECU開始被域控制器取代,主控芯片也從之前的MCU升級(jí)成SoC。
ECU不斷減少,汽車上余下的ECU也由原先需要承擔(dān)一部分的計(jì)算,轉(zhuǎn)變成僅需要承擔(dān)大部分執(zhí)行功能并被弱化了處理能力的“螺絲釘”(ECU仍有原先處理計(jì)算的能力,只是功能上已不需要它處理部分計(jì)算)。
EE架構(gòu)從分布式向域集中演進(jìn)、SoC取代MCU,為汽車產(chǎn)業(yè)從“硬件為王”時(shí)代向“軟件定義汽車”時(shí)代的跨域創(chuàng)造了前提條件。
SoC芯片上集成了DSP、GPU、NPU等多個(gè)模塊,不僅擁有控制單元還集成了大量計(jì)算單元。這讓SoC芯片除了可以多任務(wù)并發(fā)外,還擁有了處理大量數(shù)據(jù)的能力。SoC芯片替換部分MCU,就像是一家公司多個(gè)部門的普通領(lǐng)導(dǎo)人被1個(gè)以一抵百的超優(yōu)秀CEO取代。
在硬件為王的時(shí)代,由于軟硬件耦合程度高,整車廠首先會(huì)找咨詢公司做未來5-8年的汽車功能需求分析報(bào)告,然后再根據(jù)報(bào)告制定一個(gè)5-8年的軟硬件一體化方案。當(dāng)軟件和硬件投入產(chǎn)線生產(chǎn),直到整車廠將各種部件裝好出車,5-8年之內(nèi),這輛車無論是軟件還是硬件都很難再發(fā)生變化。
在軟件定義汽車的時(shí)代,如果仍然按照原先車廠的整合流程,一次性定下5-8年的造車方案,那么,在車輛制造的前幾年問題還不會(huì)太突出,但在這個(gè)方案時(shí)間區(qū)間的后半段,一輛車交付給用戶的汽車,車上無論是硬件還是軟件都已經(jīng)遠(yuǎn)遠(yuǎn)過時(shí)。
因此,在產(chǎn)品設(shè)計(jì)階段,就應(yīng)該考慮到后續(xù)的迭代問題。而要解決迭代問題,就得軟硬件分開發(fā)展。
當(dāng)各家車廠的硬件配置都已趨同,硬件變得“卷無可卷”,為了實(shí)現(xiàn)差異化,主機(jī)廠需要能夠以非??焖俚姆磻?yīng)能力去收集用戶不斷變化的需求,并進(jìn)行對(duì)應(yīng)的軟件迭代。這時(shí),主機(jī)廠有兩條路可走:一條是自研軟件和算法,自己解決所有問題,包括軟硬件解耦;另一條則是軟硬件解耦后找合適的供應(yīng)商提迭代需求。
如果要走第一條路,主機(jī)廠需要非常強(qiáng)的實(shí)力,但并不是所有的主機(jī)廠都具備這樣的能力,所以大部分主機(jī)廠會(huì)更偏向走第二條路。于是,軟件算法公司地位開始提升,汽車供應(yīng)鏈關(guān)系由原先具有分明的Tier1、Tier2、Tier3走向邊界模糊的關(guān)系。
在這樣的背景下,各家軟硬件供應(yīng)商之間為了更強(qiáng)的競(jìng)爭(zhēng)力、更優(yōu)的獨(dú)立發(fā)展和更好的合作生態(tài),也有軟硬件解耦需求。
然而,盡管軟硬件解耦的口號(hào)已經(jīng)喊了好幾年,效果卻并不理想。
02 傳感器、芯片與算法解耦困難
由于算法和傳感器高度綁定,在實(shí)際應(yīng)用中,這樣的綁定對(duì)算法工程師造成了不小的麻煩。比如一輛車之前用的攝像頭從200萬像素的換成800萬像素的之后,算法也不得重寫一遍。
另外,某Tier1的算法工程師:
“即使有能力實(shí)現(xiàn)感知算法和傳感器的解耦,在解耦之后?如何對(duì)傳感器做標(biāo)定,也特別難?!?/p>
由于軟硬件耦合度高,傳感器的數(shù)據(jù)和傳感器也是高度綁定的,一旦傳感器發(fā)生了更換,之前花大價(jià)錢做的數(shù)據(jù)標(biāo)注就將全部作廢,又不得不開始新的一輪采集,這對(duì)于算法公司來說是一件非常麻煩的事,但這件事目前并沒有太好的解決方案。
此外,每輛車上的傳感器配置、安裝位置、安裝角度都各不相同,因而,算法也不盡相同。感知算法不同,規(guī)控算法就不同。
如果說算法與傳感器的解耦只是麻煩的話,那么算法和芯片的解耦就顯得十分困難。
比如筆者在與諸多算法工程師交流軟硬件解耦相關(guān)問題的時(shí)候,發(fā)現(xiàn)他們都有共同的痛點(diǎn)之一就是:由于算法移植困難,導(dǎo)致做了很多額外的工作。
這是由于算法遷移的頻率是無法預(yù)測(cè)的。芯片廠商的競(jìng)爭(zhēng)與產(chǎn)品迭代時(shí)常會(huì)影響著市場(chǎng)的偏愛,你無法確定下一個(gè)風(fēng)口是否又會(huì)有新的更好用的芯片熱賣。
市場(chǎng)偏愛的變化,又會(huì)讓主機(jī)廠指定更換不同的芯片。這時(shí)候,對(duì)于算法工程師來說,也許你基于這款芯片的算法剛改好,那邊又將面臨新的算法移植需求。
造成以上現(xiàn)象的原因是算法和芯片的強(qiáng)綁定關(guān)系。不同的芯片提供了不同的BSP,這導(dǎo)致用于給芯片和算法解耦的中間件難以復(fù)用,必須對(duì)不同的芯片進(jìn)行不同的定制化適配。
某主機(jī)廠智能駕駛系統(tǒng)負(fù)責(zé)人解釋道:
“中間件跟下層BSP這一層的適配比較令人頭痛。比如座艙芯片用了高通的8155或者8295,而自動(dòng)駕駛芯片用了TI的TDA4,那么由于它們的芯片所提供的BSP不同,融合時(shí)就需要對(duì)中間件去做定制化的適配?!?/p>
不僅芯片平臺(tái)的差異導(dǎo)致中間件不能復(fù)用,而且兩款基于同一個(gè)芯片平臺(tái)做的域控制器,如果硬件架構(gòu)不一樣(有的域控上面,有2顆甚至3顆SoC),對(duì)中間件的需求也不一樣。
二、軟硬件解耦面臨的技術(shù)困境
中間件是實(shí)現(xiàn)軟硬件解耦所需的最重要的工具,因此,軟硬件解耦的難題,會(huì)集中體現(xiàn)在中間件身上。?
目前的中間件其實(shí)都是需要根據(jù)功能、硬件平臺(tái)、操作系統(tǒng)來進(jìn)行定制,哪怕是標(biāo)準(zhǔn)化再高的中間件,也是需要算法公司或者主機(jī)廠去做適配的,很難說有一個(gè)中間件能夠cover住所有的東西。因?yàn)樗械闹虚g件都會(huì)有些限定或者限制,比如有的沒辦法快速定義通信接口,有的對(duì)于一些跨平臺(tái)的支持不是特別友好,有的則是在其他芯片上匹配不好。
而中間件從數(shù)據(jù)傳輸本身,會(huì)出現(xiàn)數(shù)據(jù)偏轉(zhuǎn)、數(shù)據(jù)錯(cuò)誤、單模塊失效影響數(shù)據(jù)傳輸?shù)葐栴}。比如,數(shù)據(jù)傳輸量較大,SOME/IP做數(shù)采的時(shí)候,很多通信信號(hào)采不到,就很容易發(fā)生丟包的現(xiàn)象。
另外,數(shù)據(jù)回傳錯(cuò)誤還會(huì)很容易造成一系列連鎖反應(yīng),最終影響決策及執(zhí)行層,引發(fā)不良后果??梢哉f,數(shù)據(jù)共享有利有弊,理論上可提高效率,但若源頭出錯(cuò),將會(huì)引發(fā)一連串錯(cuò)誤,同時(shí)也缺乏有效的診斷及糾正機(jī)制。
除此之外,時(shí)間和地點(diǎn)對(duì)于數(shù)據(jù)傳輸也會(huì)有影響。比如在高速上,Autosar AP 對(duì)數(shù)據(jù)傳輸帶寬就會(huì)有較高要求,這時(shí),帶寬傳輸協(xié)議和數(shù)據(jù)共線傳輸之間的沖突就會(huì)尤為明顯。在節(jié)假日期間,帶寬使用集中,負(fù)荷過高,就可能無法滿足數(shù)據(jù)傳輸需求。
除了以上問題外,目前的中間件,還存在緩存機(jī)制沒做好、功能組不支持嵌套、狀態(tài)機(jī)協(xié)同做的得不好等問題,這些問題都需要算法工程師在已有中間件的基礎(chǔ)上再去做修改,這大大增加了軟硬件解耦的難度。
三、軟硬件解耦面臨的商業(yè)困境
除了上述技術(shù)方面的困境外,軟硬件解耦還面臨著一系列商業(yè)上的困境。
01 專業(yè)中間件廠商
以Vector、 RTI 、EB、易特馳為代表的中間件廠商希望能制作一套標(biāo)準(zhǔn)化、能適配于每一家的軟硬件的中間件,一步到位地實(shí)現(xiàn)各家軟硬件解耦的訴求。
但現(xiàn)實(shí)卻沒有想象中那么美好。一方面,除卻幾家中間件龍頭企業(yè)外,大部分中間件公司的的產(chǎn)品一時(shí)半會(huì)兒很難贏得主機(jī)廠的真正信任;另一方面,算法公司大部分也并沒有那么愿意配合中間件廠商做標(biāo)準(zhǔn)化,因?yàn)橐坏┙涌?、得逞系統(tǒng)被中間件廠商統(tǒng)一后,就意味著自家產(chǎn)品的可替代性增強(qiáng),差異化降低,導(dǎo)致算法公司的競(jìng)爭(zhēng)壓力陡然上升,因此十分抗拒。
此外,在智能汽車的各項(xiàng)技術(shù)發(fā)展路線尚未明晰的情況下,主機(jī)廠是希望自家車的配置跟競(jìng)品有差異化來取得競(jìng)爭(zhēng)壁壘(應(yīng)用層的差異化也需要中間件的差異化做支撐),而標(biāo)準(zhǔn)化的中間件會(huì)與這個(gè)愿望背道而馳。因而主機(jī)廠寧愿自己開發(fā)中間件也不希望使用中間件公司開發(fā)的標(biāo)準(zhǔn)化中間件。
最終,這些中間件就變得很難賣出去,只做標(biāo)準(zhǔn)化中間件這件事變得難以為繼。
從九章智駕了解到的情況看,除華玉通軟等個(gè)別專注于DDS等技術(shù)壁壘很高的模塊、并且已通過長(zhǎng)時(shí)間的積累建立起一定的競(jìng)爭(zhēng)優(yōu)勢(shì)的公司外,大多數(shù)最初定位為“中間件廠商”的公司基本都已在過去一兩年內(nèi)開始轉(zhuǎn)型(向其他領(lǐng)域拓展)。
02 供應(yīng)商
算法公司、部分軟硬件都做的Tier1和芯片廠商都開始做起了中間件,但在實(shí)踐中,家家都有一本難念的經(jīng)。
2.1 算法公司
對(duì)于算法公司來說,如果他們購(gòu)買的標(biāo)準(zhǔn)化中間件過于通用,就會(huì)有許多適配上的問題不能解決,但如果拿到的是黑盒交付的通用中間件,與算法不夠匹配將會(huì)給算法工程師造成很大的困難。而如果購(gòu)買了定制化中間件,算法公司還需要花很多時(shí)間跟中間件廠商溝通,成本也會(huì)很高。
某算法公司工程總監(jiān):
“如果有問題,一般來說,公司會(huì)將問題報(bào)給中間件廠商,但有的廠商配合度較低,需要算法公司提供實(shí)際證據(jù)證明是中間件的問題,否則就會(huì)扯皮,這時(shí)候就比較耗費(fèi)人力和時(shí)間,影響開發(fā)進(jìn)程。
“尤其是,剛剛開始涉足中間件的算法公司對(duì)于中間件的理解并不是特別專業(yè),找到實(shí)證比較麻煩,將會(huì)耗費(fèi)更多時(shí)間;而這個(gè)過程如果是幾方配合的話主機(jī)廠還得出人做協(xié)調(diào),這又會(huì)導(dǎo)致解決問題的進(jìn)度被進(jìn)一步拉長(zhǎng)?!?/p>
于是,算法公司干脆選擇自研中間件來更好地匹配自己的算法。
另外,國(guó)際中間件廠商的中間件價(jià)格昂貴,而國(guó)內(nèi)初創(chuàng)的中間件廠商做的中間件,可能還比不過自己根據(jù)自己的算法所研制的中間件更為適配,也是算法公司自研中間件的原因之一。
“如果自研,我對(duì)我項(xiàng)目需求更了解,會(huì)不會(huì)比讓中間件廠商去開發(fā)更好呢?”某算法公司系統(tǒng)架構(gòu)工程師道。
除了以上這些外,算法公司自研中間件還有一個(gè)原因:各家算法公司的算法差異小,需要通過自研中間件來形成產(chǎn)品的差異化。
某算法公司高級(jí)總監(jiān)說:
“目前,各家算法的差異性很難體現(xiàn)出來,都是用C、C++編程,要體現(xiàn)差異性就要在中間件上面把性能做起來,要把可靠性做起來,也就是增強(qiáng)功能體驗(yàn)上的一些優(yōu)勢(shì)。”
然而,算法公司自研中間件,也遇到了不少挑戰(zhàn)。首先,主機(jī)廠自研中間件是可以對(duì)供應(yīng)商提標(biāo)準(zhǔn)的,而算法公司如果自研中間件,就很難說服主機(jī)廠和其他供應(yīng)商去適配自己的標(biāo)準(zhǔn)。
正如某L4公司軟件總監(jiān)所說:
“比方像蔚來小鵬他們自己去做中間件,因?yàn)樗钦噺S,他可以定一套標(biāo)準(zhǔn)去約束他的供應(yīng)商;但是如果是自動(dòng)駕駛算法公司去做配套中間件,無論是說服整車廠,讓整車廠相信你這套東西可以套用在別的域上,還是說服主機(jī)廠的其他供應(yīng)商去按自己的標(biāo)準(zhǔn)做融合,都很難?!?/p>
另外,當(dāng)算法公司自研中間件之后,如果出了問題,就無法甩鍋了?,因此對(duì)于算法公司來說,中間件就需要做得更好。
某主機(jī)廠的智能網(wǎng)聯(lián)總工程師表示:
“我們會(huì)和供應(yīng)商簽保底的服務(wù)協(xié)議,也就是說一旦出了嚴(yán)重的質(zhì)量事故,盡管車廠是第一責(zé)任人,但我們自然也會(huì)第一時(shí)間讓這些供應(yīng)商負(fù)責(zé)。所以算法公司如果做了中間件的話,到了該承擔(dān)責(zé)任的環(huán)節(jié),他們基本上就逃不了,至少我們也不會(huì)讓他去跑”
2.2 芯片廠商
芯片廠商做中間件的目的是為了展現(xiàn)芯片的性能。
從技術(shù)的角度看,芯片廠商做中間件的難度要比算法公司低。因?yàn)?,算法公司需要針?duì)不同芯片做適配,工作量要遠(yuǎn)比芯片廠商做中間件更復(fù)雜,而芯片廠商做的中間件只要能跟他們自家的芯片適配就好了。
盡管如此,在實(shí)踐中,芯片廠商開發(fā)出來的中間件,用的人卻很少。
目前,已知在做中間件的主體就包括了中間件廠商、算法公司、芯片廠商和主機(jī)廠,中間件的市場(chǎng)份額是被分割得很細(xì)的,競(jìng)爭(zhēng)激烈。這時(shí)候如果要開發(fā)完整的中間件,開發(fā)出來的中間件該賣給誰?是否能真正通過中間件實(shí)現(xiàn)盈利?都成為了在開發(fā)中間件之前需要考慮的問題。
某算法公司專家說:
“我們通常不會(huì)用芯片公司的中間件,因?yàn)樗麄冏鲋虚g件更多是為了生態(tài),他們的中間件功能可能更多,但性能不一定最優(yōu)。也就是說, 中間件做的功能很多,包括AI的抽象、數(shù)據(jù)記錄的回放、點(diǎn)云的處理,可能全部做了,但這種情況下會(huì)存在一個(gè)問題 —— 本來是算法要做的事情,中間件全部做了,性能就不能完全保證,并且它還要兼顧多家算法公司的需求,靈活度也會(huì)變差?!?/p>
可以看到,雖然部分芯片廠商是有能力做好中間件的,但是考慮到市場(chǎng)競(jìng)爭(zhēng)壓力大,還需要投入大量的人力物力去研發(fā),有能力的芯片廠商大部分沒有動(dòng)力投入太多去做好中間件,而是更愿意專注于做好芯片本身。
所以,大部分芯片廠商的自研中間件做得很輕,做的基本是能夠在芯片上跑起來的demo中間件,以此來向客戶展示芯片的性能。這樣的demo中間件,當(dāng)然對(duì)軟硬件解耦不會(huì)起到什么實(shí)質(zhì)性幫助。
03 主機(jī)廠
對(duì)于主機(jī)廠來說,中間件的定制需求是一直存在的。
某主機(jī)廠的智能駕駛系統(tǒng)負(fù)責(zé)人舉例道:
“比方說在寫紅綠燈識(shí)別算法或雙目視覺算法時(shí),如果要區(qū)別于傳統(tǒng)算法或競(jìng)爭(zhēng)對(duì)手的算法,就需要一套定制中間件,這涉及到中間件的數(shù)據(jù)訂閱、共享、錄播、回放、發(fā)送、存儲(chǔ)、診斷等各個(gè)功能。但這些功能不能保證在主機(jī)廠所需要體系下或功能機(jī)制下完美運(yùn)行,有可能會(huì)發(fā)生沖突,這個(gè)時(shí)候就需要中間件供應(yīng)商來協(xié)助打通。”
但是,相比于使用第三方中間件公司或算法公司的中間件,部分能力較強(qiáng)的主機(jī)廠會(huì)更愿意自研中間件。
首先,購(gòu)買閉源的中間件如RTI的DDS,往往意味著中間件定制化,不僅會(huì)需要更加昂貴的成本,而且項(xiàng)目的對(duì)接周期也會(huì)拉得很長(zhǎng);相比之下,自研中間件意味著能夠完全掌控定制化的方向,拿到自己的數(shù)據(jù),使產(chǎn)品不受限制,這樣能夠更好地掌控產(chǎn)品的開發(fā)進(jìn)程和后期改造,解決可能因?yàn)槟硞€(gè)中間件供應(yīng)商掉鏈子而導(dǎo)致量產(chǎn)交付延期的問題。
其次,自研中間件對(duì)于主機(jī)廠來說,還可以形成一定的技術(shù)壁壘的。對(duì)于部分實(shí)力強(qiáng)勁的主機(jī)廠來說,一些上層的應(yīng)用層也是完全掌握在自己的手里的,根據(jù)自己上層應(yīng)用的需求去做自己的中間件,能夠更好地做一些中間件的定制化,上層應(yīng)用也能做出一些特色。
其實(shí),在中間件技術(shù)尚未成熟,未來趨勢(shì)尚不夠明顯的時(shí)候,行業(yè)內(nèi)上下游的玩家之所以都在做中間件,一是試探自己能力的邊界,二是探索整個(gè)產(chǎn)業(yè)的邊界。
然而,多位主機(jī)廠的自動(dòng)駕駛工程師認(rèn)為 “跟算法公司相比,主機(jī)廠自研中間件優(yōu)勢(shì)不大”。
首先,大多數(shù)主機(jī)廠在算法能力方面并沒有多少積累。專門組建一個(gè)團(tuán)隊(duì)去做中間件所消耗的成本是巨大的,但結(jié)果可能還比不過專門做這些的供應(yīng)商,這樣的消耗所帶來的痛苦程度已經(jīng)遠(yuǎn)遠(yuǎn)超過統(tǒng)籌數(shù)家供應(yīng)商所帶來的痛苦。這就像自己的短板項(xiàng)目帶來的苦惱會(huì)比自己的強(qiáng)勢(shì)項(xiàng)目上新挑戰(zhàn)更讓人感到痛苦。
其次,主機(jī)廠自研中間件難以得到足夠多的樣本反饋,因而不利于產(chǎn)品迭代。供應(yīng)商的算法和中間件大家用的多,客戶基數(shù)上去了,那么客戶對(duì)bug的反饋率更高,更利于產(chǎn)品的迭代進(jìn)步;然而,主機(jī)廠如果自研,產(chǎn)品僅供給自己,便很容易出現(xiàn)缺乏足夠的樣本數(shù)據(jù),因而迭代得比較慢。
另外,主機(jī)廠如果要自研中間件,就勢(shì)必要從其他企業(yè)挖技術(shù)人才。然而,對(duì)于人才來說,在大公司的一個(gè)部門里做事,他們也許是沒有那么強(qiáng)的使命感的,畢竟總會(huì)有種“天塌下來,還有上頭的人頂著”的感覺,而最后的結(jié)果就是,挖來的人才的能力如果能發(fā)揮出80%就算是非常理想了。但同樣是這個(gè)技術(shù)人才,如果出來單干,研究的東西關(guān)系到個(gè)人的切身利益,他一定會(huì)有更大的壓力以及動(dòng)力去做好這件事,這樣的環(huán)境下往往能夠發(fā)揮出更多的才能。
最后,自研中間件對(duì)于主機(jī)廠來說,是需要耗費(fèi)的大量人才構(gòu)建研究團(tuán)隊(duì),一旦發(fā)現(xiàn)這條路走不下去,這么大量的員工都將面臨著全部被裁的風(fēng)險(xiǎn),,而大量員工被裁又會(huì)讓在職員工心里認(rèn)為“公司不穩(wěn)定”的情緒上漲。??
這么看來,主機(jī)廠的“自研中間件”更多的時(shí)候可能只是個(gè)營(yíng)銷口號(hào),但這并不是說所有主機(jī)廠自研中間件都是無法成功的,實(shí)力夠強(qiáng),能夠成功自研算法的主機(jī)廠自研中間件成功的概率還是大的。只是相對(duì)而言,對(duì)于大多數(shù)算法難以自研的主機(jī)廠們來說多,軟硬件解耦需求仍然需要由供應(yīng)商來滿足。
四、中間件正在“背離初心”
中間件的誕生本是為了解決軟件和硬件無法分開發(fā)展的問題,因此,人們最初是希望中間件能成為一款起到阻隔效果的軟件,能夠精簡(jiǎn)流程,并能夠適配于所有的軟硬件,讓上層軟件應(yīng)用工程師可以不去考慮硬件的適配問題,安心做好算法。
然而,現(xiàn)實(shí)卻與最初的愿望背道而馳。
一方面,中間件呈現(xiàn)出了高強(qiáng)度的定制化。
某算法公司的軟件架構(gòu)師介紹道:
“每一種車型或每一個(gè)芯片平臺(tái)對(duì)中間件的適配能力是不一樣的,提供的底層軟件對(duì)中間件的適配能力也不同。如有的車輛使用QNX操作系統(tǒng),有的使用Linux操作系統(tǒng),這兩個(gè)操作系統(tǒng)對(duì)于中間件就會(huì)有一些定制化的內(nèi)容。
“除了底層操作系統(tǒng)外,軟件應(yīng)用層對(duì)于中間件也會(huì)有一些差異化的需求,比如基于某一個(gè)平臺(tái)上面,需要開啟某些特殊的通信方式,有的需要傳輸數(shù)據(jù)并不是走傳統(tǒng)的以太網(wǎng)這種通用的鏈路,而是走PCIe或者內(nèi)存等特殊的鏈路,這就需要對(duì)中間件進(jìn)行定制,使中間件能夠支持不同鏈路的通信需求。
“有的自動(dòng)駕駛軟件廠商或者主機(jī)廠有自己的日志記錄方式,有的可能沒有,就需要有中間件來提供一個(gè)日志記錄能力,所以根據(jù)不同用戶自身具備的能力,中間件會(huì)產(chǎn)生對(duì)應(yīng)的定制化?!?/p>
定制化就意味著,無論是讓中間件廠商分人去做標(biāo)準(zhǔn)化之外的需求,還是讓算法公司/主機(jī)廠派專門的對(duì)接算法工程師去做中間件的個(gè)性化適配調(diào)整,都需要付出額外的人力物力。
而定制化的中間件又讓算法對(duì)數(shù)據(jù)的解析產(chǎn)生了新的困難。
某主機(jī)廠工程師直言:
“如果量產(chǎn)車上要上V2X,但不同品牌車型上的中間件不一樣的話,那它的QoS(服務(wù)策略)就不一樣,那對(duì)數(shù)據(jù)的解析就存在問題,因而,車車之間的通信可能存在困難?!?/p>
另一方面,“越來越多的玩家開始繞開 AUTOSAR的標(biāo)準(zhǔn)自己搞。?即使同樣給予AUTOSAR標(biāo)準(zhǔn)做的中間件,定制化程度也很高?!蹦持鳈C(jī)廠系統(tǒng)專家道。在各家都在自研中間件的當(dāng)下,中間件大多只適配于自家算法、接口等,無法統(tǒng)一的現(xiàn)象也愈演愈烈。
無論是主機(jī)廠還是算法公司,比起考慮中間件是否好用、有沒有實(shí)現(xiàn)軟硬件解耦,真正在項(xiàng)目合作時(shí)考慮的更多的還是否能解決實(shí)際遇到的問題。如果買來的中間件沒能解決問題、沒有達(dá)到想要的效果,那么就還需要合作雙方在原本中間件的基礎(chǔ)上再修改增加各項(xiàng)內(nèi)容,也就會(huì)形成不斷“加耦”的狀況,中間件的定制化又成為了一種必然現(xiàn)象。
于是,再回想起中間件最初以簡(jiǎn)化流程、減少工作量為目的的初心,不由唏噓。
五、到底如何才能實(shí)現(xiàn)軟硬解耦呢?
那么,如果要實(shí)現(xiàn)軟硬件解耦,可以從哪些角度著手去做呢?
一方面,可以從操作系統(tǒng)層面先把硬件虛擬化做好,將接口、通信協(xié)議等標(biāo)準(zhǔn)化,這樣能夠使上層應(yīng)用無需考慮底層系統(tǒng)的不同問題,但這需要芯片廠商和操作系統(tǒng)廠商深度合作共通完成,或是芯片廠商自研OS,因此還是存在不小的難度。
另一方面,雖然目前中間件的未來形式還尚不明朗,但有一點(diǎn)可以確定,軟硬件解耦仍然需要以中間件的形式解決,只是中間件可能會(huì)分化成幾種方式:
1、中間件廠商基于Autosar本身開發(fā)簡(jiǎn)化Autosar的工具類型中間件。由于Autosar本身十分復(fù)雜,工程師的學(xué)習(xí)難度不小,如果能夠提供簡(jiǎn)化版本的開發(fā)工具,把這種工具提供給上下游需要自研中間件的廠商,優(yōu)化他們自己自研中間件的流程,也不失為一種選擇。
2、中間件廠、主機(jī)廠和供應(yīng)商形成中間件聯(lián)盟,由芯片廠或者主機(jī)廠牽頭統(tǒng)一規(guī)則。在市場(chǎng)邊界的試探中,由一家極強(qiáng)的主機(jī)廠或者芯片廠牽頭,形成行業(yè)聯(lián)盟統(tǒng)一標(biāo)準(zhǔn),將OS、接口等全部統(tǒng)一,形成行業(yè)規(guī)范。
3、完全開源,由芯片公司打造專屬OS,讓上下游公司在此基礎(chǔ)上開發(fā)。芯片廠商做出類似英偉達(dá)CUDA那樣的開源工具包,不但自己開發(fā)OS和中間件,并且完全開源,幫助上下游的客戶共通使用工具進(jìn)行更好的適配開發(fā),建立良好的生態(tài)。
4、作為一種服務(wù),上門給供應(yīng)商做中間件的定制化服務(wù)和維護(hù)工作。由于受到市場(chǎng)天花板低和中間件難以統(tǒng)一的影響,中間件也許不會(huì)成為一種獨(dú)立的產(chǎn)品存在,而是成為一種定制化服務(wù)。中間件廠商由于具備更優(yōu)秀的中間件研究經(jīng)驗(yàn),是更優(yōu)于去提供這種定制化服務(wù)的玩家。
曾經(jīng),各種手機(jī)品牌百花齊放,在“板磚機(jī)”和智能機(jī)并肩齊飛的2005年到2010年,市面上流通的手機(jī)接口最多可以高達(dá)200多種。不同品牌的手機(jī)有著不同的充電接口,不同的耳機(jī)接口,形狀相同大小不同的大大小小的各種接口,甚至同種品牌的手機(jī)也有不同的充電接口。
當(dāng)時(shí)的一位數(shù)碼達(dá)人出差的時(shí)候往往不得不帶上5、6種充電器和5、6根不同的線。即便后來我們擁有了萬能充電器,也只是能把板磚機(jī)的電池扒拉下來充電,智能機(jī)的充電口和大大小小不同的耳機(jī)接口無法統(tǒng)一的問題仍然不能被解決。
這樣混亂無序的時(shí)期,卻又是手機(jī)興起之后,手機(jī)科技發(fā)展最為燦爛而蓬勃的時(shí)候,正如現(xiàn)在智能汽車的發(fā)展。而今天,我們看到手機(jī)接口已經(jīng)基本統(tǒng)一,成百上千的手機(jī)廠商,在各自自研的過程中,在市場(chǎng)的最終抉擇之下逐漸減少,最終形成了標(biāo)準(zhǔn)。
智能汽車行業(yè)作為深受電子消費(fèi)市場(chǎng)的影響,特別是受手機(jī)市場(chǎng)影響的行業(yè),這兩年行業(yè)內(nèi)的各家都顯得十分浮躁,大家都急于去快速進(jìn)展到一個(gè)終局狀態(tài),希望能在很短的時(shí)間里選出一個(gè)集大成者。然而,汽車的制造業(yè)實(shí)際上又是一個(gè)發(fā)展緩慢的行業(yè),從車輛的生產(chǎn)到量產(chǎn)再到投放到消費(fèi)市場(chǎng),最后從千萬用戶那收集使用反饋,才能不斷優(yōu)化自身形成標(biāo)準(zhǔn)。而也許只有這個(gè)時(shí)候,中間件才能真正統(tǒng)一起來形成標(biāo)準(zhǔn)。
而未來技術(shù)成熟之后,中間件也許會(huì)作為固化在ASIC芯片上的基礎(chǔ)軟件,不再單獨(dú)以中間件的形式出現(xiàn)也未可知。
最后說兩句
不過,話說回來,當(dāng)前,在各方都困難重重的情況下,中間件到底適合誰來做呢?
總體來看,如果我們是奔著用標(biāo)準(zhǔn)中間件完全實(shí)現(xiàn)軟硬件解耦這個(gè)目標(biāo)去的話,最適合去做中間件的其實(shí)是芯片廠商。
兩個(gè)理由:一是算法的適配歸根結(jié)底是要基于芯片平臺(tái)的,芯片是基石。二是芯片公司相對(duì)于算法公司來說數(shù)量更少,統(tǒng)一起來難度相對(duì)更小。
但目前而言,基于各家都期望定制化的前提下,最適合做定制化中間件的則是算法公司。
“芯片企業(yè)更關(guān)注芯片本身的應(yīng)用,如是否加校驗(yàn)機(jī)制、BSP如何調(diào)度、加速等需求,芯片企業(yè)均可實(shí)現(xiàn),但芯片企業(yè)并不能對(duì)應(yīng)用軟件及中間件提出更好的優(yōu)化建議,用戶端僅能使用其成熟方案,但此方案未必能夠滿足軟件的全部需求。”
可以看到,算法公司是在業(yè)務(wù)實(shí)踐中收到定制化請(qǐng)求最多、并被要求最多去做中間件適配的角色,能直接做適配自己算法的定制化中間件是最方便的。
某主機(jī)廠總工程師也有著相同的觀點(diǎn):
“就目前而言上層功能服務(wù)相對(duì)聚焦,自動(dòng)駕駛方案供應(yīng)商對(duì)功能應(yīng)用理解較深,從應(yīng)用層下沉抽象出來中間件,能夠更好匹配底層主流的芯片硬件方案商,整體方案較為合理?!?/p>
編輯:黃飛
?
評(píng)論
查看更多