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