孫忠剛,姜珊,于鑫,劉雙雙,張靜
中國第一汽車集團(tuán)有限公司,吉林長(zhǎng)春 130000
伴隨汽車新四化的發(fā)展趨勢(shì),汽車EE架構(gòu)正在由分布式架構(gòu)向集中式架構(gòu)過渡。在分布式架構(gòu)階段,一個(gè)控制器的功能相對(duì)獨(dú)立、單一,在集中式EE架構(gòu)下,多個(gè)控制器的功能會(huì)合并到一個(gè)域控制器中,傳統(tǒng)控制器軟件開發(fā)集成過程不能直接應(yīng)用于域控制器開發(fā)。本文分析了傳統(tǒng)控制器軟件開發(fā)集成過程應(yīng)用于域控制器開發(fā)存在的問題,進(jìn)而提出一種適用于MCU類型域控制器的軟件開發(fā)集成過程,并使用行業(yè)現(xiàn)有開發(fā)工具鏈,通過Demo項(xiàng)目進(jìn)行實(shí)踐驗(yàn)證,此軟件開發(fā)集成過程能完成集中式EE架構(gòu)下的MCU類型域控制器開發(fā),且容易實(shí)施。
傳統(tǒng)控制器軟件開發(fā)集成過程,特指車上基于MCU實(shí)現(xiàn)的控制器開發(fā)過程中所采用的軟件開發(fā)集成步驟。車用控制器按其實(shí)現(xiàn)所使用的計(jì)算單元類別劃分,可分為兩類:一類是MCU控制器,另一類是MPU類控制器。兩類計(jì)算單元應(yīng)用定位、算力及運(yùn)行的系統(tǒng)不同,軟件開發(fā)集成過程也不同?,F(xiàn)階段傳統(tǒng)控制器軟件開發(fā)集成通常采用如下過程:控制器應(yīng)用軟件開發(fā)工程師提出基礎(chǔ)軟件需求;基礎(chǔ)軟件工程師依據(jù)需求開發(fā)控制器驅(qū)動(dòng)軟件、中間層軟件、設(shè)計(jì)操作調(diào)度框架和內(nèi)存部署框架,交付一個(gè)可運(yùn)行的基礎(chǔ)軟件平臺(tái);應(yīng)用軟件工程師在基礎(chǔ)軟件平臺(tái)框架下進(jìn)行應(yīng)用軟件與基礎(chǔ)軟件平臺(tái)的總體集成和測(cè)試,交付最終軟件版本,在集成過程中通常不改變基礎(chǔ)軟件平臺(tái)。
集中式EE架構(gòu)示意如圖1所示。核心拓?fù)浣Y(jié)構(gòu)由中央計(jì)算平臺(tái)和域控制器組成。
圖1 集中式EE 架構(gòu)示意
在集中式EE架構(gòu)下,整車的控制功能主要集中部署在中央計(jì)算平臺(tái)和域控制器中。域控制器與傳統(tǒng)控制器最大的區(qū)別是:域控制器中會(huì)承載多個(gè)子系統(tǒng)的控制功能,功能與硬件分離。域控制器功能的部署分配由EE架構(gòu)工程師主導(dǎo)完成。在域控制器開發(fā)之前,EE架構(gòu)工程師會(huì)根據(jù)硬件資源描述、系統(tǒng)限制描述及安全需求,將整車級(jí)軟件架構(gòu)分配部署到各控制器上,然后進(jìn)行控制器級(jí)開發(fā)工作。
傳統(tǒng)控制器開發(fā)過程為:控制器功能相對(duì)獨(dú)立,應(yīng)用軟件工程師了解控制器所有功能,能夠給出應(yīng)用軟件所有需求,基礎(chǔ)軟件工程師依據(jù)需求,可以開發(fā)出滿足應(yīng)用軟件運(yùn)行的基礎(chǔ)軟件平臺(tái),應(yīng)用軟件工程師可在此基礎(chǔ)上,完成應(yīng)用軟件與基礎(chǔ)軟件平臺(tái)的總體集成和測(cè)試。該軟件開發(fā)集成過程應(yīng)用于域控制器開發(fā),主要有兩個(gè)方面的問題:第一,域控制器合并了多個(gè)傳統(tǒng)控制器的功能,傳統(tǒng)控制器應(yīng)用軟件工程師,在域控制器中是子系統(tǒng)應(yīng)用軟件工程師,子系統(tǒng)應(yīng)用軟件工程師不能給出域控制器所有應(yīng)用軟件的需求;第二,域控制器采用多核芯片且支持內(nèi)存保護(hù),在多個(gè)子系統(tǒng)集成過程中,通常會(huì)涉及調(diào)度內(nèi)核的重新分配及內(nèi)存分區(qū)訪問權(quán)限的調(diào)整,軟件開發(fā)集成不能在一個(gè)預(yù)先開發(fā)完的基礎(chǔ)軟件平臺(tái)上簡(jiǎn)單堆砌軟件組件完成。因此,傳統(tǒng)控制器集成開發(fā)過程不能應(yīng)用于域控制器開發(fā),域控制器開發(fā)需要統(tǒng)籌考慮各子系統(tǒng)的特性需求,并進(jìn)行集成設(shè)計(jì)、軟件集成和集成測(cè)試。
本文所設(shè)計(jì)的域控制器軟件開發(fā)集成工作過程是在AUTOSAR方法論基礎(chǔ)上,對(duì)SWC設(shè)計(jì)過程進(jìn)行了步驟分解。使得參與傳統(tǒng)控制器開發(fā)的各角色工程師共同協(xié)作,從而完成域控制器開發(fā)。
按照AUTOSAR 方法論,域控制器功能部署完畢后,其應(yīng)用層SWC信息是完整的,可以直接進(jìn)行域控制器基礎(chǔ)軟件平臺(tái)開發(fā)。然而,目前汽車行業(yè)的情況是EE架構(gòu)工程師不能設(shè)計(jì)出具備完整信息的應(yīng)用層SWC,通常不能設(shè)計(jì)出SWC內(nèi)部的運(yùn)行實(shí)體,SWC內(nèi)部運(yùn)行實(shí)體設(shè)計(jì)需要由應(yīng)用軟件工程師完成。
域控制器軟件開發(fā)集成工作過程開始于域控制器應(yīng)用層軟件SWC部署完畢,此時(shí)部署在域控制器的所有SWC是不含有運(yùn)行實(shí)體的。域控制器開發(fā)集成工作過程如圖2所示。
圖2 域控制器開發(fā)集成工作過程
域控制器軟件開發(fā)集成過程共包括5個(gè)工作步驟:
(1)域控制器應(yīng)用層SWC模型分解發(fā)布。將部署在域控制器上的應(yīng)用層軟件組件,按照功能特性,分解成多個(gè)軟件Composition,分發(fā)給各子系統(tǒng)應(yīng)用軟件工程師。
(2)軟件Composition模型內(nèi)軟件組件運(yùn)行實(shí)體設(shè)計(jì)。子系統(tǒng)應(yīng)用軟件工程師設(shè)計(jì)軟件Composition內(nèi)軟件組件的運(yùn)行實(shí)體。
(3)域控制器級(jí)軟件構(gòu)件模型集成及軟件內(nèi)部算法開發(fā),兩項(xiàng)工作可以并行開展。①域控制器級(jí)軟件Composition模型集成將完成運(yùn)行實(shí)體設(shè)計(jì)的軟件Composition模型集成在一起,形成完整的域控制器應(yīng)用層SWC,可以作為基礎(chǔ)軟件開發(fā)的輸入。②軟件構(gòu)件內(nèi)部算法開發(fā):基于設(shè)計(jì)完軟件運(yùn)行實(shí)體的軟件Composition模型,子系統(tǒng)工程師做進(jìn)一步軟件構(gòu)件算法代碼開發(fā)。軟件構(gòu)件算法開發(fā)有兩種方式,或者通過AUTOSAR 軟件架構(gòu)設(shè)計(jì)工具生成軟件構(gòu)件代碼框架,然后手寫代碼完成開發(fā);或者將軟件Composition模型導(dǎo)入到Simulink中,通過Simulink建模生成符合AUTOSAR的代碼。
(4)基礎(chǔ)軟件平臺(tái)底座開發(fā)?;诓襟E(3)的輸出結(jié)果及域控制器硬件IO配置表等信息,完成域控制器基礎(chǔ)軟件底座開發(fā)及測(cè)試。
(5)軟件總體集成。將經(jīng)過測(cè)試的應(yīng)用層算法SWC和基礎(chǔ)軟件平臺(tái)底座集成在一起,調(diào)試驗(yàn)證,生成域控制器執(zhí)行文件。
通過一個(gè)基于AURIXTC397芯片的Demo域控制器開發(fā)對(duì)軟件開發(fā)集成工作過程進(jìn)行了驗(yàn)證。具體如下:
(1)EE架構(gòu)工程師采用架構(gòu)設(shè)計(jì)工具PreeVision完成整車級(jí)SWC設(shè)計(jì)及SWC在各控制器上的部署,提取出部署在AURIXTC397 Demo控制器上.arxml文件(SWC中不含有運(yùn)行實(shí)體信息)。
(2)EE架構(gòu)工程師將AURIXTC397 Demo域控制器上.arxml導(dǎo)入到ECU架構(gòu)設(shè)計(jì)工具Davinci Develper中,將SWC分組,然后提取出每組SWC的.arxml文件,分發(fā)給不同的應(yīng)用軟件工程師。
(3)應(yīng)用軟件工程師收到一組SWC的.arxml文件后,導(dǎo)入到Davinci Developer工具中,設(shè)計(jì)每個(gè)SWC內(nèi)的運(yùn)行實(shí)體,完成SWC內(nèi)部運(yùn)行實(shí)體設(shè)計(jì)后,提取出增加有運(yùn)行實(shí)體的整組SWC的.arxml文件。將.arxml文件導(dǎo)入到Simulink工具中進(jìn)行SWC內(nèi)部代碼開發(fā),同時(shí)也將該.arxml釋放給基礎(chǔ)軟件工程師。
(4)基礎(chǔ)軟件工程師將來自各應(yīng)用工程師.arxml文件導(dǎo)入到Davinci Developer中,完成各組SWC的集成,形成完整的AURIXTC397 Demo域控制器上.arxml文件。
(5)基礎(chǔ)軟件工程師基于完整的AURIXTC397 Demo域控制器上.arxml文件,使用Configurator工具進(jìn)行基礎(chǔ)軟件配置開發(fā),并結(jié)合手寫的復(fù)雜驅(qū)動(dòng)代碼,完成AURIXTC397 Demo域控制器基礎(chǔ)軟件底座開發(fā)。
(6)基礎(chǔ)軟件工程師集成AURIXTC397 Demo域控制器基礎(chǔ)軟件底座和開發(fā)完算法的SWC軟件,形成最終可在AURIXTC397 Demo域控制器中運(yùn)行的目標(biāo)文件。在集成過程中使用GLIWA T1進(jìn)行系統(tǒng)分析,根據(jù)系統(tǒng)分析結(jié)果,對(duì)操作系統(tǒng)調(diào)度進(jìn)行優(yōu)化完善。
通過以上工具及工作分工,EE架構(gòu)工程師、應(yīng)用軟件工程師、基礎(chǔ)軟件工程師共同完成了AURIXTC397 Demo域控制器開發(fā),軟件開發(fā)集成過程運(yùn)行順暢,達(dá)到預(yù)期目標(biāo)。
本文分析了傳統(tǒng)控制器軟件開發(fā)集成流程應(yīng)用于集中式EE架構(gòu)下MCU類域控制器開發(fā)存在的問題,給出了一種域控制器開發(fā)集成流程方法,并使用汽車行業(yè)現(xiàn)有工具鏈,對(duì)流程方法進(jìn)行了實(shí)踐驗(yàn)證。軟件開發(fā)集成過程,運(yùn)行順暢,實(shí)現(xiàn)預(yù)期目標(biāo)。目前,集中式EE架構(gòu)下MCU類域控制器開發(fā)還處于起步階段,研究成果容易實(shí)施,并有一定的參考意義。