您當前的位置:首頁 > 文化

猴哥私房菜-座艙域控制器(四): 簡單與複雜

作者:由 泛舟江南 發表于 文化時間:2020-08-15

上一篇 針對軟體設計的挑戰,我們提出先改革傳統的汽車軟體開發流程,使用一定的敏捷開發,以提升開發效率。

本篇從軟體設計的

簡單與複雜

角度

,拋磚引玉,以期共鳴。

Tips: 週六早上7點醒來,花了近3個小時整理,搬磚不易,如果對您有益,多謝點贊。

【引言】複雜

一個座艙DCU控制器中,到底軟體有多複雜?為了對此有個概念,我們看看下面這張圖:

猴哥私房菜-座艙域控制器(四): 簡單與複雜

以上是DCU座艙域控制器高視角的軟體知識腦圖,大體上可分為三類: 基礎軟體,框架軟體,應用軟體。

全部展開是這樣的:

猴哥私房菜-座艙域控制器(四): 簡單與複雜

如此多的軟體模組(實際上還要多),要開發符合汽車質量標準的軟體,對於一個公司而言極具挑戰性。

Tips:軟體工程師能吃苦耐勞,只要錢給到位,搬磚不是問題。

在解決軟體複雜性的問題上,猴哥覺得有以下幾個思路可以一起聊聊。

【1】標準化

一流企業定標準、二流企業做品牌、三流企業做產品

,一句話揭示高科技行業的真諦。

軟體定義汽車的大趨勢下,傳統的車廠都在努力向高科技企業轉型。大多數車廠試圖制定標準,期望一個平臺覆蓋所有產品。

相關的汽車軟體標準組織,比如:

猴哥私房菜-座艙域控制器(四): 簡單與複雜

以上,看到比較大的標準組織,基本上都有車廠影子,很多標準組織車廠本身就是發起者。

歐洲車廠尤為注重汽車軟體標準制定,主導話語權。

Tips:搞標準這一套路,特別符合歐洲人一板一眼的工業傳統。

舉個栗子:

RAMSES

曾經是寶馬主導的

多屏數字座艙

解決方案,實現了汽車座艙裡

不同作業系統

之間的

多屏互動

猴哥私房菜-座艙域控制器(四): 簡單與複雜

一般的做法是用一顆高效能的SoC晶片來推動車內座艙所有螢幕的渲染和內容互動。

但是這導致對SoC的硬體效能要求很高;同時軟體設計也很

複雜

。比如要在一顆SoC上運用Hypervisor+多OS的技術;這對Tier1的技術能力要求非常高,通常一家Tier1無法完成從儀表——>中控——>HUD——>門控制——>後座等各個域的跨界設計。

RAMSES分散式的設計

目的是把座艙系統的所有顯示屏連線起來,讓所有的螢幕內容可以互相分發。RAMSES框架,以一種服務定製(SOA)的方式,用RAMSES進行基於場景的分發:

• 整個車載座艙可以達到良好的負載均衡

• 實現高效/高效能的渲染(傳遞)

• 佔用較低的網路頻寬

• 與平臺無關,系統極易擴充套件

這樣完美

解決了傳統方案的軟體複雜度高的問題

,讓Tier1專注其擅長領域,讓車廠靈活的選擇多個Tier1幫助完成整車多屏的部署。

這就是一個典型

化繁為簡

的解決方案,這種方案已經實裝在寶馬3系,8系,X5,Z4等相關車型裡。目前

RAMSES

成為Genivi標準之一,並且開源給所有的Genivi生態夥伴。

使用已經驗證過的軟體模組,對於使用者而言沒有質量上的顧慮,也更加

容易

移植。

利用聯盟組織,藉助生態夥伴,憑藉細緻的分工,就可以做到站在巨人的肩膀上,

事半功倍

[2] 模型化

標準化帶來的就是對模型化開發的推崇。

所謂模型化開發,就是定義一種方法論(Methodology),開發出相應的軟體工具,生成各種軟體模型,介面等,開發者根據這些模型和介面實施二次開發。

方法論(Methodology):

以Genivi 為例 ,透過開發工具Franca自動產生程式碼,定製介面,定製SOA服務。

猴哥私房菜-座艙域控制器(四): 簡單與複雜

標準化介面,抽象物理層

以Autosar 為例,標準化後,只要符合autosar標準的App,在不同autosar供應商提供的環境下都能執行。

比如在Mentor公司的classic Autosar環境下寫好的App, 不用修改直接就能放到Vector公司的classic Autosar環境下編譯執行。

猴哥私房菜-座艙域控制器(四): 簡單與複雜

顯而易見,模型化開發的方法對軟體質量起到了相當好的控制目的,豐富了生態圈,極大推動了汽車軟體工業的發展,

特別是降低了應用軟體開發的難度

Tips:那有小夥伴問了,那程式碼能不能全部都自動生成?嘿嘿,共產主義和 全自動生成程式碼 的那一天一定會到來。

[3]開源社群

特斯拉給我們展示了另外一種方式。

特斯拉拋開了模型化和各種標準,直接利用各種開源資源,招聘優秀的軟體工程師對其進行深度最佳化。

特斯拉別於傳統車廠成功的重要因素,

個人愚見不是特斯拉軟體架構有多優秀(如下圖),而是由於軟體在特斯拉公司內部的極高的地位。

猴哥私房菜-座艙域控制器(四): 簡單與複雜

Tips:不就是在一個Ubuntu上開發應用嘛!沒有Hypervisor虛擬化,沒有整合多個作業系統,連在MCU上執行的都是免費的FreeRTOS,說好的功能安全呢?特斯拉是沒錢嗎?

如果一個車廠高層不從基因裡重視軟體開發,不重視軟體人才,不重視軟體開發者的地位,轉型高科技公司只怕是空中樓閣。

反過來,能以網際網路公司的高薪招聘到高質量的軟體人才,那麼對於擁有一支高質量軟體團隊的公司而言,任何軟體標準和模型都是束縛,他們可以靈活地創造最有效率的架構和模型。並且,由於不依賴外部軟體供應商,從而可以實現高效的敏捷開發,迅速的迭代。

Tips:只要給我足夠優秀的軟體團隊,軟體複雜度那都不是事。

特斯拉在系統層面還做了很多工作,來降低軟體複雜度,比如增加SoC算力,硬體隔離,系統冗餘等。

這也是複雜變簡單的方法之一。

結尾

簡單即是美

軟體是軟體工程師指尖上的舞蹈,是可以跳的輕盈而優美的!

猴哥私房菜-座艙域控制器(四): 簡單與複雜

相關連結:

標簽: 軟體  車廠  特斯拉  tips  座艙