作者 | 不可說
出品 | 汽車電子與軟件
#01 前 言
隨著汽車技術(shù)的飛速進(jìn)步,尤其是電氣化、自動(dòng)化及互聯(lián)化的深度融合,汽車行業(yè)正經(jīng)歷著一場(chǎng)前所未有的變革。在這場(chǎng)變革中,汽車不再僅僅是機(jī)械與金屬的簡(jiǎn)單堆砌,而是轉(zhuǎn)變?yōu)榧闪烁叨葟?fù)雜電子系統(tǒng)、先進(jìn)算法與智能互聯(lián)技術(shù)的移動(dòng)空間。這一轉(zhuǎn)變的核心驅(qū)動(dòng)力之一,便是軟件在汽車設(shè)計(jì)與功能實(shí)現(xiàn)中日益凸顯的主導(dǎo)地位,標(biāo)志著汽車正式步入了“軟件定義汽車”(Software-Defined Vehicle, SDV)的新時(shí)代。在這樣的背景下,AUTOSAR(AUTomotive Open System ARchitecture)作為汽車行業(yè)廣泛采用的軟件架構(gòu)標(biāo)準(zhǔn),其經(jīng)典平臺(tái)(Classic Platform, CP)軟件應(yīng)運(yùn)而生并持續(xù)演進(jìn),以更好地適應(yīng)和推動(dòng)這一變革。AUTOSAR CP軟件通過提供一套標(biāo)準(zhǔn)化、模塊化的軟件組件和中間件,旨在解決當(dāng)前汽車開發(fā)中面臨的諸多挑戰(zhàn),包括但不限于:
1. 復(fù)雜性管理:面對(duì)汽車中日益增長(zhǎng)的ECU(電子控制單元)數(shù)量和錯(cuò)綜復(fù)雜的軟件交互,AUTOSAR CP通過清晰的層次結(jié)構(gòu)和標(biāo)準(zhǔn)化的接口定義,有效降低了系統(tǒng)的整體復(fù)雜度,提高了開發(fā)效率和可維護(hù)性。
2. 軟件重用與模塊化:鼓勵(lì)并促進(jìn)軟件組件的跨車型、跨品牌重用,加速產(chǎn)品上市時(shí)間,同時(shí)降低開發(fā)成本。AUTOSAR CP的模塊化設(shè)計(jì)使得汽車制造商(OEM)和一級(jí)供應(yīng)商(Tier 1)能夠靈活組合和定制功能,快速響應(yīng)市場(chǎng)變化。
3. 安全性與可靠性:隨著自動(dòng)駕駛等高級(jí)功能的引入,汽車軟件的安全性變得尤為重要。AUTOSAR CP通過提供安全相關(guān)的軟件架構(gòu)、開發(fā)流程和驗(yàn)證工具,幫助確保汽車軟件的高可靠性和安全性,符合ISO 26262等國(guó)際標(biāo)準(zhǔn)。
4. 互聯(lián)與數(shù)據(jù)管理:支持車輛與云端、基礎(chǔ)設(shè)施及其他車輛的互聯(lián)互通,AUTOSAR CP通過集成通信協(xié)議棧和數(shù)據(jù)管理功能,為車輛提供強(qiáng)大的信息交換能力,促進(jìn)新服務(wù)和新商業(yè)模式的創(chuàng)新。
為了充分利用AUTOSAR CP的優(yōu)勢(shì),各家OEM和Tier 1紛紛建立了基于AUTOSAR的軟件開發(fā)流程與方法論。這些流程通常包括需求分析、系統(tǒng)設(shè)計(jì)、軟件編碼、集成測(cè)試、驗(yàn)證與認(rèn)證等多個(gè)階段,并強(qiáng)調(diào)跨職能團(tuán)隊(duì)的合作,以確保軟件質(zhì)量、滿足法規(guī)要求并快速響應(yīng)市場(chǎng)變化。同時(shí),許多企業(yè)還積極參與AUTOSAR的開放合作,共同推動(dòng)AUTOSAR標(biāo)準(zhǔn)的持續(xù)演進(jìn),以適應(yīng)汽車行業(yè)不斷變化的需求。
所以本文將探討下基于模型化(Model-Based Design, MBD)開發(fā)AUTOSAR軟件架構(gòu)與軟件的工作流區(qū)別、特點(diǎn)等。
#02 CP AUTOSAR工作流說明
CP AUTOSAR開發(fā)的工作流一般分為自上而下、自下而上與混合模式三種工作流,這三種工作流算是三種種不同的開發(fā)方法,它們?cè)陧?xiàng)目開發(fā)和集成過程中有著顯著的區(qū)別。下面將詳細(xì)闡述這兩種工作流的具體步驟和特點(diǎn)。
A、自上而下(Top-Down)工作流

1. 定義和架構(gòu)設(shè)計(jì)
- 應(yīng)用架構(gòu)設(shè)計(jì):首先,在AUTOSAR編輯工具(如Davinci Developer、AutoSAR Builder、ISOLAR-A等(MATLAB新版工具箱也支持))中設(shè)計(jì)應(yīng)用架構(gòu)。這包括定義軟件組件(SWC)、可運(yùn)行實(shí)體(Runnable)、接口(Interface)、端口(Port)等元素。
- 導(dǎo)出SWC描述文件:設(shè)計(jì)完成后,將架構(gòu)SWC信息導(dǎo)出為ARXML文件。ARXML文件是AUTOSAR標(biāo)準(zhǔn)的數(shù)據(jù)交換格式,包含了類型、接口、端口、可運(yùn)行實(shí)體、事件等詳細(xì)信息。
2. 算法實(shí)現(xiàn)與模型搭建
- 建模工具實(shí)現(xiàn)算法:使用MBD建模工具(如Simulink)根據(jù)ARXML文件中的描述搭建模型,實(shí)現(xiàn)算法等應(yīng)用功能。
- 生成代碼:在建模工具中完成算法實(shí)現(xiàn)后,生成符合AUTOSAR標(biāo)準(zhǔn)的代碼。
3. 集成與調(diào)試
- 準(zhǔn)備基礎(chǔ)軟件層(BSW):首先,確?;A(chǔ)軟件層(如操作系統(tǒng)、服務(wù)層、ECU抽象層等)已經(jīng)根據(jù)AUTOSAR標(biāo)準(zhǔn)正確實(shí)現(xiàn)并經(jīng)過驗(yàn)證。這包括檢查BSW的版本兼容性、配置正確性以及必要的驅(qū)動(dòng)和中間件的支持。
- 代碼生成與適配:將應(yīng)用層或中間件層通過模型或手動(dòng)編碼生成的代碼,根據(jù)BSW的接口規(guī)范進(jìn)行適配。這包括修改數(shù)據(jù)類型的映射、調(diào)整接口函數(shù)的調(diào)用方式以及配置必要的資源(如內(nèi)存、中斷等)。
- 集成構(gòu)建:使用AUTOSAR構(gòu)建系統(tǒng)(如AR Builder)將應(yīng)用層代碼、中間件代碼和基礎(chǔ)軟件層代碼集成在一起,生成完整的軟件鏡像。此過程涉及鏈接庫(kù)的選擇、依賴關(guān)系的解析以及優(yōu)化選項(xiàng)的配置。
- 運(yùn)行時(shí)環(huán)境(RTE)生成:在集成構(gòu)建過程中,RTE生成器會(huì)根據(jù)軟件組件之間的交互關(guān)系自動(dòng)生成運(yùn)行時(shí)環(huán)境代碼。RTE負(fù)責(zé)處理組件之間的通信、數(shù)據(jù)同步以及資源調(diào)度等任務(wù),確保軟件能夠按照設(shè)計(jì)預(yù)期運(yùn)行。
- 靜態(tài)分析:在代碼集成后,首先進(jìn)行靜態(tài)代碼分析,以檢查潛在的編程錯(cuò)誤、邏輯錯(cuò)誤以及安全漏洞。靜態(tài)分析工具可以幫助開發(fā)人員快速定位問題,提高代碼質(zhì)量。
- 單元測(cè)試:對(duì)軟件中的每個(gè)模塊或組件進(jìn)行單元測(cè)試,驗(yàn)證其功能是否符合設(shè)計(jì)要求。單元測(cè)試可以獨(dú)立運(yùn)行,無需依賴其他模塊,有助于快速發(fā)現(xiàn)和修復(fù)問題。
- 集成測(cè)試:在完成單元測(cè)試后,進(jìn)行集成測(cè)試以驗(yàn)證各個(gè)模塊之間的交互是否正確。集成測(cè)試關(guān)注于軟件的整體功能,確保各模塊在集成后能夠協(xié)同工作。
- 系統(tǒng)測(cè)試:將集成后的軟件部署到目標(biāo)ECU上,進(jìn)行實(shí)際環(huán)境下的系統(tǒng)測(cè)試。系統(tǒng)測(cè)試涵蓋功能測(cè)試、性能測(cè)試、可靠性測(cè)試等多個(gè)方面,以驗(yàn)證軟件在實(shí)際應(yīng)用中的表現(xiàn)。
- 調(diào)試與優(yōu)化:在測(cè)試過程中發(fā)現(xiàn)的問題需要進(jìn)行詳細(xì)的調(diào)試。開發(fā)人員使用調(diào)試工具(如MATLAB的Simulink Debugger、GDB等)來跟蹤程序執(zhí)行流程、查看變量值以及設(shè)置斷點(diǎn)等。根據(jù)調(diào)試結(jié)果對(duì)代碼進(jìn)行優(yōu)化,以提高軟件的性能和穩(wěn)定性。
- 文檔記錄:在整個(gè)集成與調(diào)試過程中,詳細(xì)記錄測(cè)試步驟、測(cè)試結(jié)果以及問題解決方案。這些文檔對(duì)于后續(xù)的維護(hù)工作具有重要意義,也有助于團(tuán)隊(duì)成員之間的知識(shí)共享和協(xié)作。
4. 下載與測(cè)試
- 下載代碼:將調(diào)試完成的代碼下載到目標(biāo)ECU中。
- 測(cè)試:在目標(biāo)ECU上進(jìn)行全面的測(cè)試,包括功能測(cè)試、性能測(cè)試、可靠性測(cè)試等。
B、自下而上(Bottom-Up)工作流

1. 算法實(shí)現(xiàn)與模型搭建
- 建模工具實(shí)現(xiàn)算法:首先,在建模工具(如Simulink)中搭建模型,實(shí)現(xiàn)算法等應(yīng)用功能,或者直接應(yīng)用其他已經(jīng)有的、可以在該項(xiàng)目上復(fù)用的模型。
- 導(dǎo)出ARXML文件:將模型中的元素(如類型、接口、端口等)導(dǎo)出為ARXML文件,這一過程也是將SIMULINK元素轉(zhuǎn)換為AUTOSAR元素。
2. 定義和架構(gòu)設(shè)計(jì)
- 根據(jù)ARXML文件設(shè)計(jì)應(yīng)用架構(gòu):在AUTOSAR編輯工具中,根據(jù)ARXML文件中的描述設(shè)計(jì)應(yīng)用架構(gòu)。這包括創(chuàng)建軟件組件、定義可運(yùn)行實(shí)體、接口和端口等元素。
3. 后續(xù)步驟與自上而下相同
- 與BSW層集成:將生成的代碼與基礎(chǔ)軟件層(BSW)集成,生成運(yùn)行時(shí)環(huán)境(RTE)。
- 調(diào)試:對(duì)集成后的代碼進(jìn)行調(diào)試。
- 下載與測(cè)試:將調(diào)試完成的代碼下載到目標(biāo)ECU中,并進(jìn)行全面的測(cè)試。
C、混合工作流(Round-trip)

混合工作流是一種高效且靈活的軟件開發(fā)策略,它巧妙地將自上而下的系統(tǒng)級(jí)規(guī)劃與自下而上的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)相結(jié)合。這種方法首先強(qiáng)調(diào)對(duì)系統(tǒng)架構(gòu)的整體規(guī)劃,確保系統(tǒng)的高層次目標(biāo)和需求得到明確和滿足。同時(shí),它也注重在具體實(shí)現(xiàn)層面的靈活性和創(chuàng)新性,允許開發(fā)團(tuán)隊(duì)根據(jù)實(shí)際需求和技術(shù)可行性,靈活地進(jìn)行模塊或算法的設(shè)計(jì)、實(shí)現(xiàn)與集成。通過這種方式,混合工作流不僅保證了系統(tǒng)的整體一致性和穩(wěn)定性,還促進(jìn)了技術(shù)創(chuàng)新和快速響應(yīng)市場(chǎng)變化的能力。
1. 系統(tǒng)架構(gòu)規(guī)劃與設(shè)計(jì)
- 使用AUTOSAR編輯工具進(jìn)行系統(tǒng)的頂層架構(gòu)設(shè)計(jì),包括定義軟件組件、通信接口、資源分配等。
- 確立系統(tǒng)的主要功能需求、性能指標(biāo)及非功能需求(如安全性、可靠性、實(shí)時(shí)性等),為后續(xù)開發(fā)提供明確指導(dǎo)。
2. 并行開發(fā)與實(shí)現(xiàn)
- 在系統(tǒng)架構(gòu)規(guī)劃的同時(shí),利用建模工具(如Simulink、Stateflow)進(jìn)行算法和應(yīng)用功能的詳細(xì)設(shè)計(jì)與實(shí)現(xiàn)。這些工具支持快速原型設(shè)計(jì)和仿真驗(yàn)證,加速開發(fā)進(jìn)程。
- 開發(fā)人員根據(jù)系統(tǒng)架構(gòu)的劃分,并行開發(fā)各個(gè)模塊或子系統(tǒng),提高開發(fā)效率。
- ARXML文件交換與迭代。
- 架構(gòu)設(shè)計(jì)和各個(gè)模塊開發(fā)之間通過ARXML(AUTOSAR XML)文件進(jìn)行信息的導(dǎo)出和導(dǎo)入。ARXML文件作為中間媒介,確保了不同開發(fā)工具之間的數(shù)據(jù)一致性和互操作性。
- 通過不斷的導(dǎo)出/導(dǎo)入和修改,形成一個(gè)閉環(huán)的迭代過程,使系統(tǒng)架構(gòu)和具體實(shí)現(xiàn)之間能夠相互完善、相互驗(yàn)證。
3. 與基礎(chǔ)軟件層(BSW)集成
- BSW集成,生成RTE。
4. 算法代碼集成與調(diào)試
- 將建模工具中驗(yàn)證通過的算法代碼轉(zhuǎn)換為C/C++代碼,并集成到應(yīng)用層中。
- 將集成并調(diào)試完成的軟件鏡像下載到目標(biāo)ECU中,進(jìn)行實(shí)車或模擬環(huán)境下的測(cè)試。
- 根據(jù)測(cè)試結(jié)果進(jìn)行必要的調(diào)整和優(yōu)化,直至軟件滿足所有設(shè)計(jì)要求和性能指標(biāo)。
#03 總 結(jié)
自上而下和自下而上的工作流在AUTOSAR開發(fā)中各有優(yōu)缺點(diǎn)。
自上而下方法強(qiáng)調(diào)系統(tǒng)架構(gòu)的清晰性和模塊間的接口定義,適用于對(duì)系統(tǒng)整體功能有清晰規(guī)劃的項(xiàng)目;從架構(gòu)設(shè)計(jì)開始,有利于整體規(guī)劃和標(biāo)準(zhǔn)化,但可能在后續(xù)實(shí)現(xiàn)中遇到與預(yù)期不符的問題。
自下而上方法強(qiáng)調(diào)模塊或算法的具體實(shí)現(xiàn)和快速原型開發(fā),適用于對(duì)系統(tǒng)整體架構(gòu)尚不明確的初期探索階段;從具體實(shí)現(xiàn)開始,更加靈活,但可能需要在后期進(jìn)行大量的架構(gòu)調(diào)整和優(yōu)化。
混合工作流則強(qiáng)調(diào)系統(tǒng)架構(gòu)與具體實(shí)現(xiàn)的有機(jī)結(jié)合,適用于需要平衡系統(tǒng)架構(gòu)規(guī)劃與快速原型開發(fā)的項(xiàng)目。
在實(shí)際項(xiàng)目中,可以根據(jù)項(xiàng)目需求、開發(fā)周期和團(tuán)隊(duì)經(jīng)驗(yàn)等因素選擇合適的工作流。同時(shí),也可以采用混合式方法,將自上而下和自下而上的優(yōu)點(diǎn)結(jié)合起來,以提高開發(fā)效率和軟件質(zhì)量。