【摘" 要】在汽車研發(fā)逐漸進(jìn)入到軟件比重占主導(dǎo)的時(shí)代,軟件定義汽車便成為了一種時(shí)尚。為了更好實(shí)現(xiàn)軟件定義汽車,文章介紹一種基于功能架構(gòu)的設(shè)計(jì)方法,將一個(gè)功能轉(zhuǎn)化成多個(gè)不同層級(jí)和領(lǐng)域軟件模塊,然后分別部署在不同的實(shí)體控制器(ECU)中,以此來完成功能的應(yīng)用,從而讓“軟件定義汽車”變得切實(shí)可行。
【關(guān)鍵詞】功能架構(gòu);全局功能定義;功能拆解;功能設(shè)計(jì);軟件模塊部署;軟件集成;OTA
中圖分類號(hào):U463.6" " 文獻(xiàn)標(biāo)識(shí)碼:A" " 文章編號(hào):1003-8639( 2023 )11-0035-03
Research on the Design Process of Software Defined Automotive Functional Architecture
PANG Renyong,CHEN Wenqing,YAO Ang,WU Fan,HUANG Lifang,XU Wei
(Automotive Engineering Research Institute of Guangzhou Automobile Group Co.,Ltd.,Guangzhou 511434,China)
【Abstract】As automotive research and development gradually enters an era where software dominates,defining cars with software has become a fashion trend. In order to better implement software defined cars,this article introduces a design method based on functional architecture,which converts a function into multiple software modules of different levels and domains,and then deploys them in different entity controllers(ECUs)to complete the application of the function,making“software defined vehicles”practical and feasible.
【Key words】function architecture;global function definition;function dismantling;function design;software module deployment;software integration;OTA
1" 前言
軟件定義汽車(Software Defined Vehicles,SDV),其本質(zhì)是通過汽車控制器內(nèi)的軟件快速迭代,實(shí)現(xiàn)對(duì)汽車功能的快速加持或更新,從而滿足用戶對(duì)期待的功能在愛車中快速實(shí)現(xiàn)的渴求。要實(shí)現(xiàn)軟件的快速迭代,首先必須要有辦法將新功能或功能的更新快速轉(zhuǎn)化成軟件,這其中的核心就在功能架構(gòu)。
功能架構(gòu),是將汽車功能置于架構(gòu)的高度,采用全局化的思維進(jìn)行功能的定義、拆解、設(shè)計(jì),然后分解成一個(gè)個(gè)可獨(dú)立實(shí)現(xiàn)的功能模塊(類似于樂高中的積木),并通過標(biāo)準(zhǔn)化的接口連接,形成一個(gè)功能網(wǎng)絡(luò)的過程。在每輛汽車中,這個(gè)功能網(wǎng)絡(luò)是一個(gè)相對(duì)穩(wěn)定的存在,當(dāng)有新的功能或功能更新時(shí),只需要將新增或更新的功能模塊嵌入到網(wǎng)絡(luò)中合適的位置,實(shí)現(xiàn)功能網(wǎng)絡(luò)的局部更新即可。最后再把這些功能模塊轉(zhuǎn)化成軟件,通過OTA刷新到車上對(duì)應(yīng)控制器的特定軟件存儲(chǔ)區(qū),就最終實(shí)現(xiàn)了軟件的迭代更新。
2" 功能架構(gòu)的設(shè)計(jì)流程
功能架構(gòu)的設(shè)計(jì)流程主要包含全局功能定義、功能拆解、功能設(shè)計(jì)和接口定義、功能網(wǎng)絡(luò)構(gòu)建和更新、功能模塊的軟件轉(zhuǎn)化、軟件模塊部署與軟件集成以及OTA刷新等過程。
2.1" 全局功能定義
全局功能定義是指基于場(chǎng)景的用戶需求挖掘以及非用戶需求分析,全部轉(zhuǎn)化成一個(gè)個(gè)的功能,然后將功能按照一定的類別進(jìn)行排列,在一個(gè)汽車公司內(nèi)形成一份統(tǒng)一的功能清單,如圖1所示。該清單是一個(gè)全局化的功能清單,需要工程師針對(duì)該清單進(jìn)行分門別類的描述和必要但簡單的邏輯關(guān)系映射約束,同時(shí)轉(zhuǎn)化為工程語言,讓所有從事工程開發(fā)的人員都能讀懂。也正因?yàn)槿绱?,全局功能定義成為所有設(shè)計(jì)的起點(diǎn)。
2.2" 功能拆解
功能定義完成后,交由特定的功能架構(gòu)設(shè)計(jì)工程師進(jìn)行專業(yè)的功能拆解。功能拆解是指將每一個(gè)功能按照一定的層級(jí)定義,將功能拆成一個(gè)個(gè)獨(dú)立功能模塊,如圖2所示。
功能拆解的層級(jí),按照類似于軟件開發(fā)層級(jí)的定義方法來劃分,一般分為驅(qū)動(dòng)層、抽象層和應(yīng)用層等3個(gè)層次。驅(qū)動(dòng)層實(shí)現(xiàn)物理信號(hào)(如傳感器、開關(guān)的電平信號(hào)采集或負(fù)載電平信號(hào)驅(qū)動(dòng))和邏輯信號(hào)(如底層驅(qū)動(dòng)代碼)之間的相互轉(zhuǎn)化。抽象層實(shí)現(xiàn)邏輯信號(hào)的軟件抽象,并轉(zhuǎn)化成可供上層軟件調(diào)用的軟件信號(hào),同時(shí)進(jìn)行同類項(xiàng)合并,然后進(jìn)行軟件模塊化和接口標(biāo)準(zhǔn)化,形成一個(gè)個(gè)帶標(biāo)準(zhǔn)接口的功能軟件模塊。應(yīng)用層是專門用來實(shí)現(xiàn)功能的邏輯轉(zhuǎn)化的層級(jí),每一個(gè)功能都可以轉(zhuǎn)化成一個(gè)或多個(gè)有相互關(guān)聯(lián)關(guān)系的模塊,通過本層級(jí)接口和下層級(jí)的標(biāo)準(zhǔn)化接口,連接成一個(gè)完整的功能體。
功能拆解打破了嵌入式開發(fā)中以獨(dú)立功能為中心的開發(fā)模式,將一個(gè)功能拆成了多個(gè)獨(dú)立功能模塊,并且使得每一個(gè)模塊都可以和其他模塊發(fā)生邏輯關(guān)聯(lián)——不但可以引用別的模塊來加強(qiáng)自身功能邏輯的豐富性,還可以實(shí)現(xiàn)自身功能模塊的邏輯為別的模塊提供服務(wù),從而為功能的設(shè)計(jì)開啟了全新的思路。
2.3" 功能設(shè)計(jì)和接口定義
功能設(shè)計(jì),是指對(duì)拆解出來的功能模塊,按照其層級(jí)關(guān)系和相互的邏輯關(guān)系進(jìn)行重構(gòu),同時(shí)通過接口定義和連接,形成相應(yīng)的鏈路,以重新體現(xiàn)功能定義的完整性。由于一個(gè)功能在實(shí)現(xiàn)上需要?jiǎng)e的功能來做必要的支持,因此它也可以通過和別的功能模塊建立單點(diǎn)連接或鏈路連接以實(shí)現(xiàn)功能的相互依賴關(guān)系,而其內(nèi)部的邏輯,則可完全獨(dú)立出來設(shè)計(jì),僅僅通過接口和外部關(guān)聯(lián)。功能設(shè)計(jì)示意如圖3所示。
功能設(shè)計(jì)過程中,各個(gè)功能模塊需要和外界發(fā)生關(guān)聯(lián)關(guān)系,因此需要對(duì)接口進(jìn)行定義。接口定義可以實(shí)現(xiàn)一個(gè)功能模塊的內(nèi)向獨(dú)立和外向關(guān)聯(lián),為設(shè)計(jì)帶來簡化。一般情況下,驅(qū)動(dòng)層和抽象層的模塊接口,變化頻率較低,可以標(biāo)準(zhǔn)化,而應(yīng)用層的模塊接口,在設(shè)計(jì)之初變化/更新較快,難以標(biāo)準(zhǔn)化,但其最終的目標(biāo)都是要實(shí)現(xiàn)接口標(biāo)準(zhǔn)化。
2.4" 功能網(wǎng)絡(luò)構(gòu)建和更新
功能模塊,針對(duì)一個(gè)功能建立了鏈路,就實(shí)現(xiàn)一個(gè)功能工程化體現(xiàn),而將一輛車內(nèi)所有功能模塊間的邏輯關(guān)系連接完整,就構(gòu)成了一張巨大的網(wǎng)絡(luò),稱之為功能網(wǎng)絡(luò),如圖4所示。
以此類推,如果將一家公司內(nèi)所有車型的功能模塊都納入,就構(gòu)成了功能網(wǎng)絡(luò)平臺(tái)。在這個(gè)平臺(tái)中,每一個(gè)功能模塊都可以通過其接口調(diào)用其它模塊來為自身功能設(shè)計(jì)服務(wù),同時(shí)也可以為其他模塊的設(shè)計(jì)提供服務(wù),由此實(shí)現(xiàn)了功能模塊設(shè)計(jì)在邏輯上的網(wǎng)絡(luò)化。如果有一個(gè)新的功能加進(jìn)來,除了其核心的功能模塊加入以外,其他的外在支持直接尋找相應(yīng)的模塊,通過接口建立起關(guān)聯(lián),即實(shí)現(xiàn)了功能網(wǎng)絡(luò)平臺(tái)的擴(kuò)容。如果有一個(gè)功能需要更新,只需要將其特定的模塊更新,同時(shí)更新必要的支持模塊的連接關(guān)系即可實(shí)現(xiàn),也實(shí)現(xiàn)了功能網(wǎng)絡(luò)平臺(tái)的更新。
2.5" 功能模塊軟件的轉(zhuǎn)化、部署與集成
在功能網(wǎng)絡(luò)平臺(tái)構(gòu)建后,每個(gè)功能模塊都可以進(jìn)行內(nèi)部邏輯設(shè)計(jì),既可以進(jìn)行簡單的邏輯設(shè)計(jì),也可以實(shí)現(xiàn)復(fù)雜的算法設(shè)計(jì),其核心在它的獨(dú)立性上。設(shè)計(jì)完成后,可以交由軟件開發(fā)團(tuán)隊(duì)設(shè)計(jì)出軟件代碼,當(dāng)然也可以交由工具自動(dòng)生成。當(dāng)所有必要軟件模塊都開發(fā)出來后,就可以進(jìn)行軟件模塊部署,如圖5所示。
軟件模塊部署是指軟件模塊布置在哪個(gè)實(shí)體的控制器中。在一個(gè)架構(gòu)平臺(tái)設(shè)計(jì)中,其實(shí)體的控制器是通過物理架構(gòu)設(shè)計(jì)來實(shí)現(xiàn)的,其設(shè)計(jì)的邊界是需要涵蓋未來N年的功能架構(gòu)設(shè)計(jì)需求,即設(shè)計(jì)師需要預(yù)見到未來N年的功能模塊增加,以及架構(gòu)平臺(tái)中的控制器算力、存儲(chǔ)、通信帶寬等。軟件模塊部署涉及具體的某款車型,當(dāng)這個(gè)車型的功能定義選定后,其部署的軟件模塊也就確定下來了。由于每個(gè)車型的需求不同,其軟件模塊部署的數(shù)量和位置也不盡相同,其一般原則是:每個(gè)控制器中部署的軟件模塊代碼總量,不能超過其容量的60%,以滿足未來N年的軟件迭代需求。
當(dāng)軟件模塊部署完成后,需要對(duì)每一個(gè)控制器內(nèi)的軟件進(jìn)行軟件集成,如圖6所示。軟件集成后的控制器,將是一個(gè)擁有代碼的可以安裝在車上的控制器。當(dāng)一款車型上所有的控制器集成、裝配和聯(lián)調(diào)后,就實(shí)現(xiàn)了該車型上的功能設(shè)計(jì)實(shí)現(xiàn)。
2.6" OTA刷新
當(dāng)這款車型到達(dá)每個(gè)用戶手中后,該車就形成了一個(gè)可以運(yùn)行在大街小巷中的獨(dú)立終端。也許有一天,某個(gè)用戶發(fā)現(xiàn)一個(gè)新功能或者某個(gè)功能想更新到最新狀態(tài)時(shí),就可以向賣家提出更新愛車的要求。當(dāng)這個(gè)要求轉(zhuǎn)化成需求,根據(jù)功能設(shè)計(jì)的運(yùn)行流程,新的軟件可以通過OTA,將其車中控制器的某個(gè)模塊進(jìn)行添加,或者一個(gè)/多個(gè)軟件模塊進(jìn)行更新,就實(shí)現(xiàn)了軟件迭代。
經(jīng)此過程,也就從現(xiàn)實(shí)角度實(shí)現(xiàn)了“軟件定義汽車”,或者說用戶定義汽車的概念。經(jīng)過一段時(shí)間,當(dāng)有大量的車不斷地實(shí)現(xiàn)軟件迭代,也就實(shí)現(xiàn)了每個(gè)用戶對(duì)汽車進(jìn)行個(gè)性化定義,完成了汽車的千人千面,常用常新。
3" 結(jié)論
如今,智能汽車已成為全球汽車產(chǎn)業(yè)的戰(zhàn)略發(fā)展方向,汽車技術(shù)與工程核心逐漸從傳統(tǒng)硬件層面轉(zhuǎn)移到軟件層面,軟件定義汽車成為未來汽車發(fā)展的重要趨勢(shì)。本文基于功能架構(gòu)的設(shè)計(jì)方法,通過對(duì)功能架構(gòu)的設(shè)計(jì)過程進(jìn)行拆解分析,從現(xiàn)實(shí)角度實(shí)現(xiàn)了汽車設(shè)計(jì)軟件化,從而讓“軟件定義汽車”變得切實(shí)可行,使汽車變成有生命力的產(chǎn)品,最終滿足用戶對(duì)汽車的個(gè)性化定制需要。
參考文獻(xiàn):
[1] 陳敏. 基于EA的電子電氣架構(gòu)功能設(shè)計(jì)探討[J]. 汽車電器,2022(6):38-41,45.
[2] 付朝輝,王華陽. 功能架構(gòu)在電子電氣架構(gòu)開發(fā)中的應(yīng)用和實(shí)踐[J]. 汽車工程,2021,43(12):1871-1879.
[3] 楊子. 淺析汽車功能域的關(guān)鍵技術(shù)[J]. 電子產(chǎn)品世界,2022,29(11):55-58,64.
[4] 崔明陽,黃荷葉,許慶,等. 智能網(wǎng)聯(lián)汽車架構(gòu)、功能與應(yīng)用關(guān)鍵技術(shù)[J]. 清華大學(xué)學(xué)報(bào)(自然科學(xué)版),2022,62(3):493-508.
[5] 孟天闖,李佳幸,黃晉,等. 軟件定義汽車技術(shù)體系的研究[J]. 汽車工程,2021,43(4):459-468.
[6] 張可可. 基于“可自動(dòng)配置的底層軟件”的開發(fā)式汽車電子軟件架構(gòu)研究[D]. 合肥:合肥工業(yè)大學(xué),2020.
[7] 童菲,李吉宗. MBSE在汽車電子架構(gòu)領(lǐng)域的應(yīng)用研究[J]. 機(jī)電一體化,2018,24(2):25-30.
(編輯" 凌" 波)
作者簡介
龐仁勇(1981—),男,工程師,碩士,從事整車電子電氣架構(gòu)設(shè)計(jì)開發(fā)工作。