01
智能汽車的多域融合趨勢(shì)
近幾年,隨著汽車行業(yè)的快速發(fā)展,尤其是國(guó)內(nèi)一波補(bǔ)貼過(guò)后,多多少少留下一些扎扎實(shí)實(shí)造車的企業(yè),他們將一些國(guó)外先進(jìn)的技術(shù)帶入到汽車產(chǎn)品開發(fā)中,這些技術(shù)慢慢在汽車行業(yè)(包括乘用車和商用車)得到普及,本文主要從三個(gè)技術(shù)角度(即Autosar、MBD、功能安全)來(lái)聊聊成為標(biāo)配的汽車電子技術(shù)。
針對(duì)每項(xiàng)技術(shù),主要分兩步來(lái)闡述:
第一步說(shuō)明這個(gè)技術(shù)的作用;
第二步說(shuō)明這個(gè)技術(shù)如何用到產(chǎn)品上。
02
Autosar
2.1 作用
Autosar是一批頂尖的主機(jī)廠和零部件廠制定出來(lái)的一套汽車電子軟件開發(fā)方法。軟件在汽車電子產(chǎn)品中占據(jù)的比例越來(lái)越高,汽車又是對(duì)軟件質(zhì)量要求極其嚴(yán)格。那么Autosar給我們帶來(lái)了什么?
a、它提供了需求,在Autosar的需求文檔中,它給我們收集了汽車行業(yè)很多的需求,給我們打開了一扇汽車行業(yè)的窗口。
b、它提供了一套架構(gòu),它給我們展示了分層、分模塊的矩陣式架構(gòu),定義了各個(gè)標(biāo)準(zhǔn)模塊以及其中的接口,統(tǒng)一了汽車行業(yè)基本功能模塊的交互和定義。
c、它提供了一套開發(fā)方法,Autosar要求按照V模型進(jìn)行正向開發(fā)。
d、它降低了開發(fā)難度,提高了軟件質(zhì)量,Autosar源碼的開發(fā)一般交給專門的組織來(lái)開發(fā),并且代碼和工具經(jīng)過(guò)第三方認(rèn)證,而應(yīng)用autosar的人只需利用Autosar工具鏈配置生成開發(fā)代碼即可。
e、說(shuō)一點(diǎn)它的弊端吧,目前工具鏈偏貴,并且工具鏈目前的自動(dòng)化程度不夠高,尤其是集成效率不夠高。隨著越來(lái)越多巨頭(百度、華為等)加入后,相信這些問(wèn)題會(huì)逐步解決。
2.2 應(yīng)用
主要以開發(fā)ECU角度來(lái)說(shuō)明,這里不以整車開發(fā)角度。
工具鏈:主流有Vector、ETAS、EB,這里以Vector和ETAS工具鏈為例說(shuō)明。Vector Developer用于應(yīng)用層架構(gòu)設(shè)計(jì),Vector Configurator 用于BSW+RTE配置; ETAS ISOLAR系列(RTA-RTE RTA-OS)全套開發(fā)融合;MCAL目前主要還是使用EB的 Tresos工具。好用度或自動(dòng)化程度上,Vector>ETAS,價(jià)格反之。由于Vector系列占主流,因此以Vector工具鏈作主要說(shuō)明,而關(guān)鍵點(diǎn)時(shí)也會(huì)提到ETAS(只是作為一個(gè)用戶體驗(yàn)角度說(shuō)明,不帶任何廣告以及傾向,若涉及相關(guān)利益請(qǐng)通知?jiǎng)h除)。
以下以開發(fā)一個(gè)ECU為例說(shuō)明:
客戶輸入:CAN矩陣(DBC文件),診斷表(CDD文件或ODX文件)以及客戶需求表(SOR文件等)。
autosar部署:
假如選型芯片為英飛凌 Tcxx系列 ,目前比較主流。
第一步根據(jù)HSI,在EB Tresos中配置好MCAL,配置好后可以導(dǎo)出Arxml,方便下一步集成到Vector或ETAS工具。
第二步將MCAL集成到Autosar工程中,這一步的目的就是將OS依賴芯片相關(guān)的內(nèi)容(計(jì)數(shù)器、時(shí)間等)集成進(jìn)來(lái),當(dāng)然也包含一些其他的依賴MCAL的內(nèi)容,如CAN驅(qū)動(dòng)、Eeprom/模擬Eeprom、Spi、看門狗等,這些建議在EB工具下配置,自動(dòng)化程度會(huì)好一些(不管是ETAS還是Vector兼容第三方工具都不是特別好)。
第三步將BSW所需的模塊加入到Autosar工程,如BswM、EcuM、WdgM、NvM、Dem、Dcm、Com等所需的的模塊加入都工程。
第四步將DBC文件和CDD文件導(dǎo)入Autosar工程(這一步Vector和ETAS最新工具鏈都是支持的),這一步會(huì)將Com協(xié)議棧的大部分配置項(xiàng)和Dcm、Dem的大部分配置項(xiàng)生成,可是Vector和ETAS在這里都沒(méi)有做到完美,很多配置項(xiàng)都需要手動(dòng)調(diào)整。
第五步調(diào)整COM協(xié)議棧以及UDS協(xié)議棧配置項(xiàng),配置NvM/MemIf/FEE/Fls、配置WdgM/WdgIf/Wdg、配置Xcp等。
第六步配置ECUC、OS,RTE,ECUC主要涉及到分區(qū),以及Core Hardware定義等,OS主要涉及Task、Counter、Application等配置,方便后續(xù)Mapping,這里說(shuō)明一下ETAS中OS的管理用的另外一個(gè)工具RTA-OS,其一致性做的不夠好。
第七步配置應(yīng)用層SWC,當(dāng)然這一步也可以在第一步開始的時(shí)候執(zhí)行,主要配置應(yīng)用層的組件、接口、函數(shù)等。
第八步連線+Mapping,這里主要是將需要調(diào)度的Mapping到Task或中斷(中斷手動(dòng)放入入口函數(shù)),還有就是PRPort口之間的連線(包括SWC與SWC,SWC與BSW組件)。
至此,Autosar工程基本部署完成,后續(xù)只需將MCAL+BSW+RTE+ASW的代碼集成到一起即可,說(shuō)實(shí)話,這里的集成過(guò)程目前由于工具鏈的問(wèn)題,效率自動(dòng)化程度都不高,尤其是ETAS需要寫很多腳本支持。
當(dāng)然,這里還有兩個(gè)概念提及一下,IO抽象以及CDD,本質(zhì)上他們就是SWC。
此外ASW配置完后,其實(shí)就是一個(gè)代碼框架,或者就是這個(gè)ASW的架構(gòu)信息,可以導(dǎo)出Arxml文件,供后續(xù)進(jìn)行MBD開發(fā)。