張澤瑩 顏江 王慧 顏家彬 呂夢 包夢



【摘? 要】主要使用車載ECU中用于生成代碼的模型開發過程,從以往的自上而下開發流程轉變為自下而上開發流程,極大提高AUTOSAR模型開發效率。
【關鍵詞】ECU;AUTOSAR;V模型開發流程;MBD;Arxml
中圖分類號:U463.6? ? 文獻標志碼:A? ? 文章編號:1003-8639( 2023 )04-0035-03
【Abstract】The model development process used to generate code in the ECU is mainly used to change from the previous up-down development process to the down-up development process,which greatly improves the efficiency of AUTOSAR model development.
【Key words】ECU;AUTOSAR;V model development process;MBD;Arxml
隨著汽車行業的迅速發展,車載ECU的軟件復雜度也越來越高,AUTOSAR(Automotive Open System Architecture,汽車開放系統架構)作為一個開放、標準的軟件架構,使用RTE(Run Time Environment,運行環境)和虛擬總線技術可將ECU內軟件的復雜度限定在可控范圍內,且更容易分散開發。其中,開發人員使用V模型開發流程,并在開發應用層軟件時更多地使用MBD(Model Based Design,基于模型的設計)方法,即使用模型生成代碼的方式進行軟件開發。模型不僅更加直觀,而且在軟件早期開發階段能夠自動生成符合規范的代碼進行更多環節的測試,顯著提高應用層軟件開發品質和效率。為了代碼符合AUTOSAR規范并提高開發效率,此處需要使用一種不同于普通MBD的開發流程。本文將通過AUTOSAR基本原理、V模型的開發流程、MBD方法等3個方面逐步介紹如何提高AUTOSAR模型開發效率。
1? AUTOSAR基本原理
AUTOSAR是一家致力于制定汽車電子軟件標準的聯盟,其制定了一套專門用于開發汽車的開放性框架和行業標準,不僅可以給軟件系統及車輛電子提供一個高效管理平臺,也促進了兩者之間的更新與交換。另外,產品及服務品質可以得到有效保證,成本效率也得到了極大提高。
如圖1所示,AUTOSAR分層軟件系統位于ECU里面,其主要由3個部分組成。功能系統(Functional System)位于系統的頂層,擁有電氣子系統(如外部照明系統、后視鏡系統等)需要的所有特征,AUTOSAR軟件組件(SWC,Software Component)是由這些系統組成的元素,它的特點是接口定義良好,數據完整齊全,通信媒介是VFB(Virtual Functional Bus,虛擬功能總線)。RTE介于應用軟件(Application Software)和基礎軟件(Basic Software)之間,是虛擬功能總線接口的實現,對基礎軟件組件的訪問有極大的促進作用,同時在應用軟件相互通信中扮演“橋梁”的作用。RTE下面的部分叫做基礎軟件,主要提供復雜驅動、通信服務、存儲服務及系統服務等,在不同的電氣架構里,軟件組件可以重新定位到不同的ECU[1]。
虛擬功能總線抽象了軟件構件間、軟件構件與基礎軟件間的通信,是SWC獨立于硬件的基礎,這就意味著兩個SWC不僅可以在同一個ECU中通信,也可以在多個ECU通過虛擬功能總線通信,其允許的方式有:S-R通信,即發送者-接收者模式,一個SWC發送信息,另一個SWC接收其信息;C-S通信,即客服端-服務器端模式,客戶端提出請求,服務器端提供其請求的服務[1]。
2? 基于V模式的開發流程
在汽車行業中,軟硬件開發需要有一個完整的開發過程,其中包含的步驟有:需求分析、代碼生成、集成測試等,這就是V模式開發流程。在整個流程中,每個步驟可以得到精確驗證,系統也可以使用相同的開發環境、編程環境、測試環境。如圖2所示,基于V模式的開發流程包括五大步驟,即需求定義與功能設計、快速控制原型(rapid control prototype,RCP)、目標代碼生成、硬件在環(hardware in the loop,HIL)、測試與標定[2]。
1)需求定義與功能設計:分析用戶需求,使用建模工具,如MATLAB/Simulink等,設計需求模型,使用離線仿真驗證其正確性,即模型是否滿足需求。
2)快速控制原型:在原型系統里面導入實時仿真模型,實際被控對象與其進行連接,通過測試來驗證系統軟硬件方案是否可行。
3)目標代碼生成:采用Embedded Code或Targetlink等工具,對模型予以轉化,自動生成產品代碼。
4)硬件在環:被測對象與實時處理器通過I/O接口連接,運行仿真模型,可以實時觀測受控對象的運行狀態。
5)測試與標定:主要對ECU進行測試與標定,根據需求情況調整ECU參數。
3? 基于模型設計(MBD)開發方法
MBD是一種軟件設計方法,它以模型為中心,使用建模工具對系統進行建模,使用離線仿真工具驗證系統模型是否正確。根據上文所述,MBD方法可以充分應用在基于V模式的開發流程中。如圖3所示,系統需求分析、驗收測試等步驟都可以在不同層次的模型中進行,保證設計與分析同步[3]。
4? 提高AUTOSAR模型開發效率的方法
為了符合AUTOSAR規范的代碼,需要一種不同于普通MBD的開發流程,AUTOSAR對于模型的要求主要在于接口和Runnable,即模型的外部框架,模型/架構工程師常常使用AUTOSAR架構管理工具結合Arxml(Autosar eXtensible Markup Language,符合Autosar的xml文件)來管理模型框架,這其中就分為兩種不同的工作流程:自上而下和自下而上。
4.1? 自上而下
如圖4所示,在自上而下的開發流程中,模型工程師使用AUTOSAR架構管理工具來設計模型框架,設計完成后AUTOSAR架構管理工具會生成Arxml文件,該Arxml里包含了模型的框架信息:Runnable、Interface、Datatype等。將Arxml文件導入建模工具后會自動完成模型框架的創建工作,該框架有AUTOSAR相關設置和接口模塊等。接著模型工程師就可以在該框架內部搭建算法模型。建模完成后經過MBD的測試即可生成符合AUTOSAR規范的代碼[4]。
4.2? 自下而上
如圖5所示,在自下而上的開發流程中,首先使用建模工具搭建好算法模型,完成后利用建模工具提供的AUTOSAR框架配置工具箱進行模型的相關AUTOSAR配置,如Interface、Port、Runnable、Path等,設置完成后自動生成Arxml文件和AUTOSAR代碼,并將Arxml導入到AUTOSAR架構管理工具中進行RTE(AUTOSAR架構中各模塊之間數據交互的代碼環境)的設計。
綜上所述,自下而上與自上而下的工作流程在建模工具和AUTOSAR架構管理工具中需要完全相同的AUTOSAR配置,尤其是接口對象需要被正確設置,來保證代碼可以被正確集成。現在常用的開發流程是自上而下的開發模式,但AUTOSAR架構管理工具通常不支持腳本化建模方式,搭建模型框架需要靠開發人員手動進行,在模型數量較多、接口較多的情況下,會大量重復進行模型AUTOSAR配置工作,不僅開發人員的時間被耗費,精力不濟也容易導致出錯風險增加。自下而上的開發模式,則因為早期版本的建模工具對AUTOSAR的支持并不完善,存在很多Bug,因此該開發模式使用較少且并不成熟。在自下而上模式開發案例中,開發者需要使用建模工具提供的AUTOSAR框架配置工具箱,手動配置Interface、Port、Runnable、Path等,以使得模型能夠生成AUTOSAR代碼和Arxml文件,但同樣存在大量重復性手工配置工作。
本文將介紹一種全新的自下而上開發模式,此方法基于建模工具的AUTOSAR框架配置工具,目的是改善AUTOSAR配置流程,將建模工具中模型的框架配置過程全自動化,可以一鍵將傳統模型轉變為AUTOSAR模型,且能夠生成符合AUTOSAR規范的代碼和Arxml文件,極大提高AUTOSAR模型開發效率和傳統模型復用率。首先搭建應用層模型,模型頂層(模型外圍框架)需符合AUTOSAR建模規范,即一個函數接口和多個輸入輸出數據接口,圖6為符合AUTOSAR規范的模型框架。接著使用本文介紹的AUTOSAR配置工具對應用層模型進行全自動化配置,包括生成代碼的配置和AUTOSAR配置,一鍵運行后該工具會進行以下操作。
1)調取模型Configuration API,將模型的Configuration(生成代碼相關設置)設置為AUTOSAR方案,如設置系統生成AUTOSAR代碼而非普通嵌入式代碼等。
2)調取模型的AUTOSAR框架配置工具箱API(圖7),根據項目要求的AUTOSAR配置方案(如Data Element、Port命令規則等)自動設置其中所需的AUTOSAR配置(Port、Interface、Path等),并將模型端口和Port、Interface、DataElement映射起來。
3)將配置過程同步打印至命令窗口,例如Port和Interface的創建和映射等,如圖8所示。
4)最后自動生成AUTOSAR代碼和Arxml文件,如圖9所示。
5? 總結
本文介紹的AUTOSAR配置工具一鍵運行將傳統模型轉變為AUTOSAR模型,提高了已有傳統模型復用率,省去了現有兩種模式中都需要的人工配置工作,讓模型工程師可以集中精力搭建算法模型,而不是模型框架,大幅降低AUTOSAR模型開發的時間成本和人力成本,極大提高AUTOSAR模型開發效率,減少潛在錯誤。
參考文獻:
[1] 王軍,宋順林. 基于MDA的汽車嵌入式軟件系統架構設計[J]. 計算機工程與設計,2010,31(9):2048-2051.
[2] 鄭振,張仲穎. 汽車嵌入式系統開發方法、體系架構和流程[J]. 湖南農機,2014(9):64-64,66.
[3] 魏學哲,戴海峰,孫澤昌. 汽車嵌入式系統開發方法、體系架構和流程[J]. 同濟大學學報(自然科學版),2012,40(7):1064-1070.
[4] 張麗萍,國云飛. 基于MATLAB的AUTOSAR自動代碼生成技術[J]. 汽車零部件,2016,9(8):36-40.
(編輯? 楊? 景)