作者 | 不可說
出品 | 汽車電子與軟件
#01 前 言
隨著汽車技術的飛速進步,尤其是電氣化、自動化及互聯(lián)化的深度融合,汽車行業(yè)正經(jīng)歷著一場前所未有的變革。在這場變革中,汽車不再僅僅是機械與金屬的簡單堆砌,而是轉(zhuǎn)變?yōu)榧闪烁叨葟碗s電子系統(tǒng)、先進算法與智能互聯(lián)技術的移動空間。這一轉(zhuǎn)變的核心驅(qū)動力之一,便是軟件在汽車設計與功能實現(xiàn)中日益凸顯的主導地位,標志著汽車正式步入了“軟件定義汽車”(Software-Defined Vehicle, SDV)的新時代。在這樣的背景下,AUTOSAR(AUTomotive Open System ARchitecture)作為汽車行業(yè)廣泛采用的軟件架構(gòu)標準,其經(jīng)典平臺(Classic Platform, CP)軟件應運而生并持續(xù)演進,以更好地適應和推動這一變革。AUTOSAR CP軟件通過提供一套標準化、模塊化的軟件組件和中間件,旨在解決當前汽車開發(fā)中面臨的諸多挑戰(zhàn),包括但不限于:
1. 復雜性管理:面對汽車中日益增長的ECU(電子控制單元)數(shù)量和錯綜復雜的軟件交互,AUTOSAR CP通過清晰的層次結(jié)構(gòu)和標準化的接口定義,有效降低了系統(tǒng)的整體復雜度,提高了開發(fā)效率和可維護性。
2. 軟件重用與模塊化:鼓勵并促進軟件組件的跨車型、跨品牌重用,加速產(chǎn)品上市時間,同時降低開發(fā)成本。AUTOSAR CP的模塊化設計使得汽車制造商(OEM)和一級供應商(Tier 1)能夠靈活組合和定制功能,快速響應市場變化。
3. 安全性與可靠性:隨著自動駕駛等高級功能的引入,汽車軟件的安全性變得尤為重要。AUTOSAR CP通過提供安全相關的軟件架構(gòu)、開發(fā)流程和驗證工具,幫助確保汽車軟件的高可靠性和安全性,符合ISO 26262等國際標準。
4. 互聯(lián)與數(shù)據(jù)管理:支持車輛與云端、基礎設施及其他車輛的互聯(lián)互通,AUTOSAR CP通過集成通信協(xié)議棧和數(shù)據(jù)管理功能,為車輛提供強大的信息交換能力,促進新服務和新商業(yè)模式的創(chuàng)新。
為了充分利用AUTOSAR CP的優(yōu)勢,各家OEM和Tier 1紛紛建立了基于AUTOSAR的軟件開發(fā)流程與方法論。這些流程通常包括需求分析、系統(tǒng)設計、軟件編碼、集成測試、驗證與認證等多個階段,并強調(diào)跨職能團隊的合作,以確保軟件質(zhì)量、滿足法規(guī)要求并快速響應市場變化。同時,許多企業(yè)還積極參與AUTOSAR的開放合作,共同推動AUTOSAR標準的持續(xù)演進,以適應汽車行業(yè)不斷變化的需求。
所以本文將探討下基于模型化(Model-Based Design, MBD)開發(fā)AUTOSAR軟件架構(gòu)與軟件的工作流區(qū)別、特點等。
#02 CP AUTOSAR工作流說明
CP AUTOSAR開發(fā)的工作流一般分為自上而下、自下而上與混合模式三種工作流,這三種工作流算是三種種不同的開發(fā)方法,它們在項目開發(fā)和集成過程中有著顯著的區(qū)別。下面將詳細闡述這兩種工作流的具體步驟和特點。
A、自上而下(Top-Down)工作流
1. 定義和架構(gòu)設計
- 應用架構(gòu)設計:首先,在AUTOSAR編輯工具(如Davinci Developer、AutoSAR Builder、ISOLAR-A等(MATLAB新版工具箱也支持))中設計應用架構(gòu)。這包括定義軟件組件(SWC)、可運行實體(Runnable)、接口(Interface)、端口(Port)等元素。
- 導出SWC描述文件:設計完成后,將架構(gòu)SWC信息導出為ARXML文件。ARXML文件是AUTOSAR標準的數(shù)據(jù)交換格式,包含了類型、接口、端口、可運行實體、事件等詳細信息。
2. 算法實現(xiàn)與模型搭建
- 建模工具實現(xiàn)算法:使用MBD建模工具(如Simulink)根據(jù)ARXML文件中的描述搭建模型,實現(xiàn)算法等應用功能。
- 生成代碼:在建模工具中完成算法實現(xiàn)后,生成符合AUTOSAR標準的代碼。
3. 集成與調(diào)試
- 準備基礎軟件層(BSW):首先,確?;A軟件層(如操作系統(tǒng)、服務層、ECU抽象層等)已經(jīng)根據(jù)AUTOSAR標準正確實現(xiàn)并經(jīng)過驗證。這包括檢查BSW的版本兼容性、配置正確性以及必要的驅(qū)動和中間件的支持。
- 代碼生成與適配:將應用層或中間件層通過模型或手動編碼生成的代碼,根據(jù)BSW的接口規(guī)范進行適配。這包括修改數(shù)據(jù)類型的映射、調(diào)整接口函數(shù)的調(diào)用方式以及配置必要的資源(如內(nèi)存、中斷等)。
- 集成構(gòu)建:使用AUTOSAR構(gòu)建系統(tǒng)(如AR Builder)將應用層代碼、中間件代碼和基礎軟件層代碼集成在一起,生成完整的軟件鏡像。此過程涉及鏈接庫的選擇、依賴關系的解析以及優(yōu)化選項的配置。
- 運行時環(huán)境(RTE)生成:在集成構(gòu)建過程中,RTE生成器會根據(jù)軟件組件之間的交互關系自動生成運行時環(huán)境代碼。RTE負責處理組件之間的通信、數(shù)據(jù)同步以及資源調(diào)度等任務,確保軟件能夠按照設計預期運行。
- 靜態(tài)分析:在代碼集成后,首先進行靜態(tài)代碼分析,以檢查潛在的編程錯誤、邏輯錯誤以及安全漏洞。靜態(tài)分析工具可以幫助開發(fā)人員快速定位問題,提高代碼質(zhì)量。
- 單元測試:對軟件中的每個模塊或組件進行單元測試,驗證其功能是否符合設計要求。單元測試可以獨立運行,無需依賴其他模塊,有助于快速發(fā)現(xiàn)和修復問題。
- 集成測試:在完成單元測試后,進行集成測試以驗證各個模塊之間的交互是否正確。集成測試關注于軟件的整體功能,確保各模塊在集成后能夠協(xié)同工作。
- 系統(tǒng)測試:將集成后的軟件部署到目標ECU上,進行實際環(huán)境下的系統(tǒng)測試。系統(tǒng)測試涵蓋功能測試、性能測試、可靠性測試等多個方面,以驗證軟件在實際應用中的表現(xiàn)。
- 調(diào)試與優(yōu)化:在測試過程中發(fā)現(xiàn)的問題需要進行詳細的調(diào)試。開發(fā)人員使用調(diào)試工具(如MATLAB的Simulink Debugger、GDB等)來跟蹤程序執(zhí)行流程、查看變量值以及設置斷點等。根據(jù)調(diào)試結(jié)果對代碼進行優(yōu)化,以提高軟件的性能和穩(wěn)定性。
- 文檔記錄:在整個集成與調(diào)試過程中,詳細記錄測試步驟、測試結(jié)果以及問題解決方案。這些文檔對于后續(xù)的維護工作具有重要意義,也有助于團隊成員之間的知識共享和協(xié)作。
4. 下載與測試
- 下載代碼:將調(diào)試完成的代碼下載到目標ECU中。
- 測試:在目標ECU上進行全面的測試,包括功能測試、性能測試、可靠性測試等。
B、自下而上(Bottom-Up)工作流
1. 算法實現(xiàn)與模型搭建
- 建模工具實現(xiàn)算法:首先,在建模工具(如Simulink)中搭建模型,實現(xiàn)算法等應用功能,或者直接應用其他已經(jīng)有的、可以在該項目上復用的模型。
- 導出ARXML文件:將模型中的元素(如類型、接口、端口等)導出為ARXML文件,這一過程也是將SIMULINK元素轉(zhuǎn)換為AUTOSAR元素。
2. 定義和架構(gòu)設計
- 根據(jù)ARXML文件設計應用架構(gòu):在AUTOSAR編輯工具中,根據(jù)ARXML文件中的描述設計應用架構(gòu)。這包括創(chuàng)建軟件組件、定義可運行實體、接口和端口等元素。
3. 后續(xù)步驟與自上而下相同
- 與BSW層集成:將生成的代碼與基礎軟件層(BSW)集成,生成運行時環(huán)境(RTE)。
- 調(diào)試:對集成后的代碼進行調(diào)試。
- 下載與測試:將調(diào)試完成的代碼下載到目標ECU中,并進行全面的測試。
C、混合工作流(Round-trip)
混合工作流是一種高效且靈活的軟件開發(fā)策略,它巧妙地將自上而下的系統(tǒng)級規(guī)劃與自下而上的詳細設計與實現(xiàn)相結(jié)合。這種方法首先強調(diào)對系統(tǒng)架構(gòu)的整體規(guī)劃,確保系統(tǒng)的高層次目標和需求得到明確和滿足。同時,它也注重在具體實現(xiàn)層面的靈活性和創(chuàng)新性,允許開發(fā)團隊根據(jù)實際需求和技術可行性,靈活地進行模塊或算法的設計、實現(xiàn)與集成。通過這種方式,混合工作流不僅保證了系統(tǒng)的整體一致性和穩(wěn)定性,還促進了技術創(chuàng)新和快速響應市場變化的能力。
1. 系統(tǒng)架構(gòu)規(guī)劃與設計
- 使用AUTOSAR編輯工具進行系統(tǒng)的頂層架構(gòu)設計,包括定義軟件組件、通信接口、資源分配等。
- 確立系統(tǒng)的主要功能需求、性能指標及非功能需求(如安全性、可靠性、實時性等),為后續(xù)開發(fā)提供明確指導。
2. 并行開發(fā)與實現(xiàn)
- 在系統(tǒng)架構(gòu)規(guī)劃的同時,利用建模工具(如Simulink、Stateflow)進行算法和應用功能的詳細設計與實現(xiàn)。這些工具支持快速原型設計和仿真驗證,加速開發(fā)進程。
- 開發(fā)人員根據(jù)系統(tǒng)架構(gòu)的劃分,并行開發(fā)各個模塊或子系統(tǒng),提高開發(fā)效率。
- ARXML文件交換與迭代。
- 架構(gòu)設計和各個模塊開發(fā)之間通過ARXML(AUTOSAR XML)文件進行信息的導出和導入。ARXML文件作為中間媒介,確保了不同開發(fā)工具之間的數(shù)據(jù)一致性和互操作性。
- 通過不斷的導出/導入和修改,形成一個閉環(huán)的迭代過程,使系統(tǒng)架構(gòu)和具體實現(xiàn)之間能夠相互完善、相互驗證。
3. 與基礎軟件層(BSW)集成
- BSW集成,生成RTE。
4. 算法代碼集成與調(diào)試
- 將建模工具中驗證通過的算法代碼轉(zhuǎn)換為C/C++代碼,并集成到應用層中。
- 將集成并調(diào)試完成的軟件鏡像下載到目標ECU中,進行實車或模擬環(huán)境下的測試。
- 根據(jù)測試結(jié)果進行必要的調(diào)整和優(yōu)化,直至軟件滿足所有設計要求和性能指標。
#03 總 結(jié)
自上而下和自下而上的工作流在AUTOSAR開發(fā)中各有優(yōu)缺點。
自上而下方法強調(diào)系統(tǒng)架構(gòu)的清晰性和模塊間的接口定義,適用于對系統(tǒng)整體功能有清晰規(guī)劃的項目;從架構(gòu)設計開始,有利于整體規(guī)劃和標準化,但可能在后續(xù)實現(xiàn)中遇到與預期不符的問題。
自下而上方法強調(diào)模塊或算法的具體實現(xiàn)和快速原型開發(fā),適用于對系統(tǒng)整體架構(gòu)尚不明確的初期探索階段;從具體實現(xiàn)開始,更加靈活,但可能需要在后期進行大量的架構(gòu)調(diào)整和優(yōu)化。
混合工作流則強調(diào)系統(tǒng)架構(gòu)與具體實現(xiàn)的有機結(jié)合,適用于需要平衡系統(tǒng)架構(gòu)規(guī)劃與快速原型開發(fā)的項目。
在實際項目中,可以根據(jù)項目需求、開發(fā)周期和團隊經(jīng)驗等因素選擇合適的工作流。同時,也可以采用混合式方法,將自上而下和自下而上的優(yōu)點結(jié)合起來,以提高開發(fā)效率和軟件質(zhì)量。


