软件接口设计_基于PREEvision的AUTOSAR Adaptive设计——上篇
AUTOSAR Adaptive概述
2003年,汽車行業(yè)的高端玩家們發(fā)起了汽車嵌入式系統(tǒng)軟件架構(gòu)標(biāo)準(zhǔn)化項目——AUTOSAR(汽車開放系統(tǒng)架構(gòu))。2017年,為適應(yīng)汽車的發(fā)展趨勢(智能化、網(wǎng)聯(lián)化等),應(yīng)對汽車E/E系統(tǒng)開發(fā)面臨的新的挑戰(zhàn)(高性能處理器的應(yīng)用,自動駕駛的軟件實現(xiàn),高帶寬通信需求,車與外界的互聯(lián)互通等),AUTOSAR組織推出了AUTOSAR Adaptive。
于是,在AUTOSAR的體系內(nèi)有了兩大概念:AUTOSAR Classic Platform(后面將簡稱CP)和AUTOSAR Adaptive Platform(后面將簡稱AP)。AP的出現(xiàn)并不會取代CP,而是一種補充。目前,AP主要應(yīng)用于MPU(Microprocessor Unit),CP則應(yīng)用于MCU(Microcontroller Unit)。關(guān)于CP的詳細介紹請參考我們的公眾號《淺談AUTOSAR架構(gòu)及開發(fā)方法》。
在不同的語境下,AP有不同的含義。首先AP是一個標(biāo)準(zhǔn),它標(biāo)準(zhǔn)化了軟件開發(fā)的方法論,軟件分層結(jié)構(gòu),軟件模塊之間的接口以及編程語言,目前該標(biāo)準(zhǔn)的最新版本是R19.11(2019年11月發(fā)布)。從軟件實現(xiàn)的角度,AP是一個運行在POSIX操作系統(tǒng)上的基礎(chǔ)軟件平臺,也可稱為一種平臺級的中間件,其核心是ARA(AUTOSAR Runtime for Adaptive Application)。
AUTOSAR Adaptive架構(gòu)圖 ( 圖片源自AUTOSAR_EXP_PlatformDesign R19.11)ARA是應(yīng)用程序(AP中稱為Adaptive Application)運行時的基礎(chǔ)環(huán)境,可以提供多種本地功能供應(yīng)用程序調(diào)用,這些本地功能在AP中統(tǒng)稱為Function Clusters,其分為兩個部分:Foundation Function Clusters和Service Function Clusters。
上面對AP進行了一些簡單的介紹,接下來本文將重點討論基于PREEvision的AP設(shè)計流程。PREEvision是一款架構(gòu)開發(fā)工具,使用該工具進行AP的設(shè)計,需重點關(guān)注AP方法論。如前所述,AUTOSAR AP是一個標(biāo)準(zhǔn),它對軟件開發(fā)的方法論進行了標(biāo)準(zhǔn)化,其方法論實現(xiàn)的標(biāo)準(zhǔn)流程如下圖所示:
圖AP development workflow(圖片來源AUTOSAR_EXP_PlatformDesign)相關(guān)概念介紹:
Machine:在AP的概念體系中,Machine代表一種計算資源,它可以是真實存在的處理器(Process Unit),也可以是一個虛擬機(Virtual Machine),AP軟件則運行在某一特定的Machine上。
Manifest:Manifest是一種AUTOSAR模型的描述文件,主要包含AP軟件部署涉及到的一些配置信息(比如Service Instance Manifest會包括服務(wù)接口的版本信息,SD參數(shù)信息等內(nèi)容)。
注:AUTOSAR Adaptive的方法論詳細介紹可以參考AUTOSAR_TR_AdaptiveMethodology文檔
PREEvision中AUTOSAR Adaptive的基本設(shè)計流程
PREEvision中AP設(shè)計流程(圖片來源PREEvision Help文檔)PREEvision中AUTOSAR Adaptive設(shè)計內(nèi)容主要包含以下幾個部分:
1)軟件層
- 服務(wù)設(shè)計:服務(wù)定義,服務(wù)角色定義
- 服務(wù)接口設(shè)計:設(shè)計Method,Event及Property;并完成數(shù)據(jù)類型的定義;
- 服務(wù)接口部署:選擇SOA的通信方式,如SOME/IP等;并將服務(wù)接口與通信協(xié)議進行映射;
- 服務(wù)接口序列化:定義服務(wù)接口(Method/Event/Properties)的序列化方式及屬性
- Adaptive Application設(shè)計:設(shè)計Adaptive SW components,Executables及Adaptive Applications
2)硬件層
- 基于以太網(wǎng)的硬件拓撲設(shè)計
- Machine設(shè)計及部署(Deployment):創(chuàng)建machine,設(shè)計machine的狀態(tài)及服務(wù)發(fā)現(xiàn)等內(nèi)容
3)通信層
- 軟/硬件映射:Adaptive Application SWC與Machine映射
- 服務(wù)實例化:基于軟/硬件映射生成服務(wù)實例;完成服務(wù)實例的配置
- 以太網(wǎng)通信設(shè)計:TP/IP地址及SOME/IP SD設(shè)計等
下面小編將基于PREEvision 9.5 SP1的Demo介紹PREEvision中AP的基本設(shè)計流程。
基本設(shè)計流程如下:
1.服務(wù)及服務(wù)接口設(shè)計
AP是一個面向服務(wù)的軟件架構(gòu)(SOA),關(guān)于SOA的相關(guān)概念可以參考我們的微信公眾號《汽車為什么非要用SOA》。基于AP平臺的軟件開發(fā),首先需要進行服務(wù)及服務(wù)接口的設(shè)計。
- 服務(wù)設(shè)計:服務(wù)是對功能單元的抽象描述;服務(wù)的定義包含服務(wù)的ID以及服務(wù)角色(服務(wù)提供方及服務(wù)消費方)的定義。本示例定義了兩個服務(wù):Navigator及TrafficInformation。
若服務(wù)之間存在依賴關(guān)系,也需在服務(wù)設(shè)計階段明確,用于指導(dǎo)后續(xù)的軟件開發(fā)。
- 服務(wù)接口設(shè)計:服務(wù)接口定義了服務(wù)的功能特性,是Method、Event及Property的集合。
設(shè)計methods(包括F&F methods)、events及properties:
設(shè)計服務(wù)接口數(shù)據(jù)類型:
不同于CP的設(shè)計,在AP中,對于implementation data type,需定義數(shù)據(jù)類型C++相關(guān)屬性。
- 服務(wù)接口部署:
選擇應(yīng)用協(xié)議(如SOME/IP),將服務(wù)接口與應(yīng)用層協(xié)議進行綁定。目前PREEvision僅支持SOME/IP。
設(shè)計SOME/IP Interface:完成SOME/IP interface版本,以及method/event ID等屬性的定義。
- 服務(wù)接口序列化屬性定義:
序列化是一種將數(shù)據(jù)轉(zhuǎn)化為比特流,方便數(shù)據(jù)在通信鏈路上傳輸?shù)募夹g(shù)手段;在AP中支持SOME/IP的序列化功能;在該Demo示例中選擇SOME/IP的序列化方式。對于SOME/IP序列化的屬性設(shè)置,與CP類似,此處不再贅述。
2.Adaptive軟件設(shè)計:
前面定義了服務(wù)和服務(wù)接口,接下來需要定義應(yīng)用層軟件架構(gòu)。在AUTOSAR Adaptive中,軟件架構(gòu)由Adaptive Application SWC(Software Component)組成,類似于CP中SWC的概念。服務(wù)及服務(wù)接口是一種抽象的概念,Adaptive Application SWC是服務(wù)接口的軟件實現(xiàn)。一個服務(wù)接口至少需要一對Adaptive Application SWC來實現(xiàn),一個Adaptive Application SWC實現(xiàn)了服務(wù)接口的調(diào)用,承擔(dān)服務(wù)客戶端的角色;另一個實現(xiàn)了服務(wù)接口Method/Event/Property的具體功能,承擔(dān)服務(wù)端的角色。
- AP軟件架構(gòu)設(shè)計:
前面定義了兩個服務(wù)Navigator以及TrafficInformation,對應(yīng)的Adaptive軟件架構(gòu)設(shè)計的如下圖所示:
Adaptive Application SWC port與Service Interface 一一對應(yīng)。Service Interface在軟件層的體現(xiàn)如下圖所示:
- Adaptive application設(shè)計:
在AUTOSAR Adaptive方法論中,Adaptive application是Executables(可執(zhí)行文件)的集合,一個Executable源于一個Adaptive Application SWC。
Adaptive application有兩種類型:Application level和Platform Level。在本示例中定義的Adaptive application都是Application level。
今天就講到這里,給大家賣個關(guān)子吧,想要了解更多關(guān)于AUTOSAR Adaptive的內(nèi)容,請持續(xù)關(guān)注“懌星科技”,我們后續(xù)將持續(xù)推出關(guān)于AUTOSAR Adaptive的其他設(shè)計內(nèi)容,我們下周見咯~
總結(jié)
以上是生活随笔為你收集整理的软件接口设计_基于PREEvision的AUTOSAR Adaptive设计——上篇的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 新的信息论诞生前的若干问题分析
- 下一篇: 浅谈ICA算法的概念、本质和流程