導(dǎo)讀:目前新能源汽車上的控制器越來(lái)越重要,實(shí)現(xiàn)的功能日趨復(fù)雜,實(shí)現(xiàn)這些功能需要軟件作為載體。從以前的整車有數(shù)十個(gè)ECU到目前域控制器,從機(jī)械定義汽車到目前軟件定義汽車,汽車控制器中的軟件需要發(fā)揮越來(lái)越重要的作用。如何開(kāi)發(fā)汽車控制器的軟件呢?
汽車、電子控制系統(tǒng)、硬件和軟件開(kāi)發(fā)間存在著千絲萬(wàn)縷的相互聯(lián)系,使得我們必須要有一個(gè)綜合完整的開(kāi)發(fā)過(guò)程。這個(gè)過(guò)程包含開(kāi)發(fā)的各個(gè)步驟,從用戶需求分析到最終的電子系統(tǒng)的驗(yàn)收測(cè)試。控制器開(kāi)發(fā)的核心流程包括一系列不同的開(kāi)發(fā)步驟。這個(gè)步驟我們稱之為V字形開(kāi)發(fā)流程。V模型也叫做Verification和Validation模型。在下面的V模型中左側(cè)部分屬于軟件開(kāi)發(fā)階段,稱為:Validation;右側(cè)屬于軟件測(cè)試階段,稱為Verification。
V模型的特點(diǎn)是流程嚴(yán)格有序,一個(gè)階段必須在上一階段完成后才能進(jìn)行,并且每個(gè)開(kāi)發(fā)階段都對(duì)應(yīng)一個(gè)測(cè)試階段,一環(huán)扣一環(huán),這樣能有效保證軟件質(zhì)量。
一、V流程需要的工具鏈
從系統(tǒng)需求到軟件需求,再到軟件的釋放,需要工具對(duì)其進(jìn)行管理,以達(dá)到可追溯,可記錄的目的,目前市場(chǎng)主流的工具含有 Door,ClearCase,GIT,SDOM 等,同時(shí)也有公司自己研發(fā)的一些流程工具。這些工具的運(yùn)作方式都遵循需求,研發(fā),測(cè)試的V流程。在架構(gòu)設(shè)計(jì)過(guò)程中,需要使用EA架構(gòu)設(shè)計(jì)工具,isolar等AUTOSAR配置工具。軟件實(shí)現(xiàn)過(guò)程中,需要使用到Matlab等模型開(kāi)發(fā)工具。軟件組件集成過(guò)程中需要使用到編譯工具。軟件組件測(cè)試過(guò)程中需要使用到Tessy等測(cè)試工具。
二、系統(tǒng)需求確定
這部分為系統(tǒng)需求。需要系統(tǒng)工程師完成。基于項(xiàng)目的整體需求,以及軟硬件整體定義,對(duì)系統(tǒng)邏輯架構(gòu)進(jìn)行整體定義,這部分工作包括:硬件功能定義,控制器與其他控制器通信定義,軟件簡(jiǎn)要功能定義。這個(gè)過(guò)程并不會(huì)對(duì)具體的技術(shù)實(shí)現(xiàn)做出定義。通常會(huì)使用Doors等流程軟件定義系統(tǒng)需求。
三、軟件需求確定
這部分為軟件需求,需要系統(tǒng)工程師完成。系統(tǒng)工程師根據(jù)系統(tǒng)相關(guān)方需求說(shuō)明書、軟硬件接口文件、變更通知書等輸入,梳理定義軟件研發(fā)需求說(shuō)明書,包括操作系統(tǒng)需求、電源管理策略、傳感器讀取,執(zhí)行器控制、信號(hào)特性需求、存儲(chǔ)服務(wù)、通信服務(wù),網(wǎng)絡(luò)管理、故障診斷、標(biāo)定、程序升級(jí)等功能需求和非功能需求。根據(jù)項(xiàng)目規(guī)劃,制定軟件開(kāi)發(fā)計(jì)劃。
軟件需求分析建立需求追蹤矩陣,將軟件需求映射到系統(tǒng)需求,確保軟件要實(shí)現(xiàn)的系統(tǒng)需求全部覆蓋,為了完成這個(gè)功能,通常我們也是使用Doors等流程軟件完成。
四、軟件架構(gòu)確定
這部分為軟件架構(gòu),需要架構(gòu)工程師完成。為了建立清晰的、結(jié)構(gòu)化的軟件設(shè)計(jì),應(yīng)該統(tǒng)一分配軟件需求,然后完成軟件架構(gòu)設(shè)計(jì)。根據(jù)系統(tǒng)相關(guān)需求、軟硬件接口表、軟件需求確定軟件架構(gòu)。將每條軟件需求合理分配到軟件模塊中,定義每個(gè)軟件模塊的輸入輸出接口、動(dòng)態(tài)行為、資源消耗目標(biāo)等,評(píng)估多種軟件架構(gòu)的優(yōu)缺點(diǎn)等。架構(gòu)工程師需要使用EA等架構(gòu)軟件畫出整個(gè)控制器軟件所有模塊的輸入輸出接口、以及內(nèi)部動(dòng)態(tài)行為。如果項(xiàng)目基于AUTOSAR開(kāi)發(fā),需要架構(gòu)工程師配置應(yīng)用層的所有組件,并輸出每個(gè)組件的ARXML描述文件。一般來(lái)說(shuō),還需要架構(gòu)工程師輸出架構(gòu)文檔。
五、軟件單元設(shè)計(jì)
這部分為軟件單元設(shè)計(jì),需要軟件開(kāi)發(fā)工程師完成。在此階段,需要對(duì)每個(gè)組件內(nèi)部的算法邏輯進(jìn)行詳細(xì)的內(nèi)部設(shè)計(jì)。組件功能的詳細(xì)設(shè)計(jì)需要與軟件需求建立有效的對(duì)應(yīng)關(guān)系。
六、軟件實(shí)現(xiàn)
這部分為軟件實(shí)現(xiàn),需要軟件開(kāi)發(fā)工程師完成。此階段進(jìn)行模塊設(shè)計(jì)的實(shí)際編碼。根據(jù)系統(tǒng)和架構(gòu)的要求確定最合適的編程語(yǔ)言。如果是算法邏輯編碼,建議使用Matlab進(jìn)行模型開(kāi)發(fā),如果是接近底層的復(fù)雜驅(qū)動(dòng),一般是使用手寫代碼。如果項(xiàng)目使用AUTOSAR架構(gòu),使用模型開(kāi)發(fā)時(shí)需要導(dǎo)入arxml生成模型框架進(jìn)行開(kāi)發(fā),使用手寫代碼進(jìn)行開(kāi)發(fā)時(shí)需要使用AUTOSAR工具生成的組件代碼框架進(jìn)行開(kāi)發(fā)。需要將代碼經(jīng)過(guò)多次代碼審查和優(yōu)化之后,將最終版本上傳至代碼庫(kù),以實(shí)現(xiàn)最佳的可靠性和性能。
七、單元測(cè)試
這部分為組件單元測(cè)試,一般需要軟件開(kāi)發(fā)工程師完成,也可以讓測(cè)試工程師完成。單元測(cè)試與軟件單元設(shè)計(jì)對(duì)應(yīng)。單元測(cè)試是根據(jù)軟件單元設(shè)計(jì),進(jìn)行代碼級(jí)別上進(jìn)行的測(cè)試,盡管通過(guò)單元測(cè)試不能夠發(fā)現(xiàn)所有的缺陷,但有助于在早期階段排除錯(cuò)誤單元測(cè)試一般可以使用Tessy和Matlab軟件進(jìn)行測(cè)試。
八、集成測(cè)試
這部分為集成測(cè)試,需要測(cè)試工程師完成。集成測(cè)試與軟件需求對(duì)應(yīng)。集成測(cè)試將各個(gè)組成部分整合入一個(gè)軟件系統(tǒng)中之后,最后進(jìn)行軟件的集成測(cè)試。根據(jù)定義的需求,測(cè)試相應(yīng)的功能是否滿足軟件需求。
九、系統(tǒng)測(cè)試
這部分為系統(tǒng)測(cè)試,需要測(cè)試工程師完成。系統(tǒng)測(cè)試與系統(tǒng)需求對(duì)應(yīng)。因?yàn)檐浖o各個(gè)ECU提供了相應(yīng)的功能,因此在集成測(cè)試中,需要將軟件燒錄至硬件中。然后ECU要與其他電子系統(tǒng)組件集成起來(lái),比如傳感器和執(zhí)行器。在接下來(lái)的系統(tǒng)綜合測(cè)試中,對(duì)所有系統(tǒng)設(shè)備的交互響應(yīng)進(jìn)行評(píng)估。
十、總結(jié)
對(duì)于軟件工程師來(lái)說(shuō)可能更關(guān)注于軟件單元設(shè)計(jì)與軟件實(shí)現(xiàn),單元測(cè)試,現(xiàn)在基于AUTOSAR開(kāi)發(fā)汽車控制器軟件成為主流,BSW可以使用AUTOSAR工具進(jìn)行開(kāi)發(fā),AUTOSAR應(yīng)用層軟件可以使用Matlab軟件進(jìn)行開(kāi)發(fā)。
來(lái)源:汽車電子嵌入式 作者:Tank