以下內(nèi)容來源于《汽車電子與軟件》,作者:劉向
AUTOSAR 平臺(tái)邏輯體系結(jié)構(gòu)
圖示邏輯體系結(jié)構(gòu)描述了平臺(tái)是如何組成的,有哪些模塊,模塊之間的接口是如何工作的。
經(jīng)典平臺(tái)具有分層的軟件體系結(jié)構(gòu)。定義明確的抽象層,每個(gè)抽象層都有精確定義的角色和接口。
對(duì)于應(yīng)用程序,我們需要考慮使用的軟件組件,希望它們是可重用的,因此應(yīng)該盡可能小,依賴性盡可能少。組件被靜態(tài)地分配給ECU,并且通過靜態(tài)連接發(fā)送/接收的信號(hào)進(jìn)行通信。
AUTOSAR實(shí)現(xiàn)了軟件和硬件的分離,使得軟件可以在不同的硬件平臺(tái)上運(yùn)行。
AUTOSAR采用了一種統(tǒng)一的XML文件格式,用于描述軟件架構(gòu)和配置信息。
AUTOSAR具有很高的靈活性,可以根據(jù)不同的需求進(jìn)行定制和擴(kuò)展。
AUTOSAR支持運(yùn)行時(shí)軟件更新,可以適應(yīng)不同的應(yīng)用場(chǎng)景。
AUTOSAR提高了軟件集成的效率和擴(kuò)展性,使得軟件可以更容易地進(jìn)行重用和遷移
AUTOSAR為上層開發(fā)者提供了標(biāo)準(zhǔn)化的接口和協(xié)議,使得開發(fā)者可以專注于應(yīng)用功能的開發(fā)。
在軟件開發(fā)過程階段,CP與AP都主要都包括以下三個(gè)階段:
AUTOSAR AP平臺(tái)邏輯體系結(jié)構(gòu)
AP AUTOSAR的核心是自適應(yīng)應(yīng)用程序(Adaptive Application),它是一種可以根據(jù)運(yùn)行時(shí)環(huán)境動(dòng)態(tài)調(diào)整的軟件組件。那么,AP AUTOSAR是如何定義和管理自適應(yīng)應(yīng)用程序的呢?下面將為你介紹AP AUTOSAR的邏輯視圖和功能集群,詳解自適應(yīng)應(yīng)用程序的運(yùn)行環(huán)境。
AP AUTOSAR的邏輯視圖是一種抽象的軟件架構(gòu),它描述了自適應(yīng)應(yīng)用程序的功能需求,接口,依賴關(guān)系和配置。邏輯視圖由多個(gè)功能集群(Feature Cluster)組成,每個(gè)功能集群包含一組相關(guān)的功能需求和接口。功能集群可以進(jìn)一步劃分為多個(gè)功能組(Feature Group),每個(gè)功能組包含一組具體的功能需求和接口。功能需求和接口可以使用ARXML文件進(jìn)行描述和生成。
AP AUTOSAR的功能集群是一種邏輯上的分組,它不代表實(shí)際的軟件組件或部署單元。在實(shí)際的軟件開發(fā)過程中,功能集群需要被映射到具體的軟件組件或部署單元上,這就涉及到AP AUTOSAR的另一個(gè)視圖:實(shí)現(xiàn)視圖(Implementation View)。實(shí)現(xiàn)視圖描述了自適應(yīng)應(yīng)用程序的軟件結(jié)構(gòu),包括軟件組件,部署單元,運(yùn)行時(shí)對(duì)象等。實(shí)現(xiàn)視圖和邏輯視圖之間的映射關(guān)系可以使用ARXML文件進(jìn)行描述和生成。
AP AUTOSAR的運(yùn)行環(huán)境是一種軟件平臺(tái),它提供了自適應(yīng)應(yīng)用程序所需的基礎(chǔ)服務(wù),如通信,配置,診斷,安全等。運(yùn)行環(huán)境由多個(gè)服務(wù)層(Service Layer)組成,每個(gè)服務(wù)層提供了一類特定的服務(wù)。服務(wù)層之間通過面向服務(wù)架構(gòu)(Service Oriented Architecture, SOA)進(jìn)行交互,即通過發(fā)布-訂閱模式(Publish-Subscribe Pattern)進(jìn)行異步消息傳遞。運(yùn)行環(huán)境可以在不同的硬件平臺(tái)和操作系統(tǒng)上運(yùn)行,通過硬件BSP進(jìn)行適配。
自適應(yīng)平臺(tái)采用模塊化軟件體系結(jié)構(gòu)。它比經(jīng)典分層軟件架構(gòu)更模塊化,反映了平臺(tái)的動(dòng)態(tài)特性。這種動(dòng)態(tài)性也是平臺(tái)的核心需求;
AP遵循面向服務(wù)的架構(gòu),SOA設(shè)計(jì)理念,充分利用各種開源軟件成熟技術(shù),重用軟件市場(chǎng)成熟組件,縮短開發(fā)周期。在ECU的生命周期內(nèi)有獨(dú)立更新應(yīng)用程序的能力。
Adaptive Platform Architecture
AP AUTOSAR的邏輯視圖體現(xiàn)了其相應(yīng)的體系結(jié)構(gòu),如下圖所示:
AP AUTOSAR的邏輯視圖體現(xiàn)了其相應(yīng)的體系結(jié)構(gòu),如下圖所示:
lAA(Adaptive Application)
自適應(yīng)應(yīng)用程序運(yùn)行在AUTOSAR Runtime for Adaptive Applications (ARA)之上,用于實(shí)現(xiàn)碰撞預(yù)警、車道保持、自動(dòng)駕駛等復(fù)雜的汽車功能。AA可以使用C 語言編寫,也可以使用模型驅(qū)動(dòng)開發(fā)(Simulink)工具生成。
lARA(AUTOSAR Runtime for Adaptive applications)
自適應(yīng)應(yīng)用程序的運(yùn)行平臺(tái):提供了AA所需的運(yùn)行時(shí)環(huán)境,包括內(nèi)存管理、進(jìn)程管理、文件安全讀寫、日志記錄等。ARA由功能集群(Functional Clusters,F(xiàn)Cs)提供的應(yīng)用程序接口組成,這些群集屬于Adaptive Foundation或Adaptive Services。Adaptive Foundation提供了AP的基本功能,而Adaptive Services提供了AP的平臺(tái)標(biāo)準(zhǔn)服務(wù)。
提供了AP AUTOSAR的基礎(chǔ)功能,如服務(wù)發(fā)現(xiàn)、事件發(fā)布訂閱、請(qǐng)求回復(fù)、持久化數(shù)據(jù)管理等。這些服務(wù)主要是為了實(shí)現(xiàn)AA之間以及AA與外部系統(tǒng)之間的面向服務(wù)的通信(Service-Oriented Communication,SOC),基于以太網(wǎng)和SOME/IP協(xié)議。此外,還包括操作系統(tǒng)接口、執(zhí)行管理、平臺(tái)健康管理(看門狗)、網(wǎng)絡(luò)管理、診斷通信、時(shí)間同步等。這些功能主要是為了支持ARA和AA的運(yùn)行。
提供了AP AUTOSAR的標(biāo)準(zhǔn)服務(wù),狀態(tài)管理(特定于項(xiàng)目實(shí)現(xiàn)),網(wǎng)絡(luò)管理,更新配置管理(UCM)即我們比較熟悉的運(yùn)行時(shí)軟件更新(OTA)。
Adaptive AUTOSAR構(gòu)建在POSIX操作系統(tǒng)之上,ARA可以提供多種功能供應(yīng)用程序調(diào)用來實(shí)現(xiàn)軟硬件解耦、為上層應(yīng)用提供服務(wù)。
Adaptive AUTOSAR 術(shù)語——Machine
Adaptive AUTOSAR是一種基于服務(wù)的軟件平臺(tái),它支持高性能、靈活和可更新的汽車應(yīng)用程序。
Adaptive AUTOSAR的邏輯體系結(jié)構(gòu)是基于Machine的概念構(gòu)建的,Machine是指運(yùn)行環(huán)境所需的物理資源,如處理器、內(nèi)存、網(wǎng)絡(luò)等。
一個(gè)Machine可以包含一個(gè)或多個(gè)ECU,但只能運(yùn)行一個(gè)AUTOSAR Adaptive Instance(AUTOSAR平臺(tái)的實(shí)例即AP實(shí)例)。每個(gè)AP實(shí)例都有自己的功能集群,可以實(shí)現(xiàn)不同的服務(wù)和應(yīng)用。
在Adaptive AUTOSAR中,Adaptive Application是用C 編寫的,它們?cè)贛achine上以進(jìn)程的形式運(yùn)行。進(jìn)程之間通過服務(wù)進(jìn)行通信和協(xié)作。
Machine可以是高性能計(jì)算機(jī)(HPC),它們提供了數(shù)據(jù)密集型應(yīng)用所需的計(jì)算能力。HPC可以包含多個(gè)核心,Adaptive Application可以通過進(jìn)程到Machine的映射分配到不同的核心上。
一個(gè)重要的概念是,AUTOSAR的作用域是Machine,也就是運(yùn)行環(huán)境所依賴的物理資源。每個(gè)Machine都有自己獨(dú)立的功能集群和服務(wù),它們可以實(shí)現(xiàn)不同的汽車應(yīng)用程序。AUTOSAR也允許在同一個(gè)Machine上運(yùn)行一些非AUTOSAR的進(jìn)程,但是這些進(jìn)程不受AUTOSAR平臺(tái)實(shí)例的管理和約束。
adaptive autosar machine的啟動(dòng)過程包括哪幾個(gè)步驟?
adaptive autosar machine的啟動(dòng)過程包括哪幾個(gè)步驟?
機(jī)器啟動(dòng),操作系統(tǒng)最先初始化,然后執(zhí)行管理(EM)作為操作系統(tǒng)的初始進(jìn)程之一啟動(dòng)。
EM負(fù)責(zé)啟動(dòng)其他功能簇(FC)和平臺(tái)應(yīng)用。
平臺(tái)基礎(chǔ)(Foundation)啟動(dòng)后,EM繼續(xù)啟動(dòng)adaptive應(yīng)用(AA)。
EM根據(jù)machine manifest和execution manifest決定啟動(dòng)順序。
如果AP從可信錨點(diǎn)(trust anchor)啟動(dòng),并且在啟動(dòng)過程中維護(hù)信任鏈(chain of trust),則EM可以支持認(rèn)證啟動(dòng)(authenticated startup)。認(rèn)證啟動(dòng)啟動(dòng)過程中,EM驗(yàn)證應(yīng)用的真實(shí)性和完整性,如檢測(cè)出異常,則阻止應(yīng)用運(yùn)行。
Adaptive application(AA):承載Service的應(yīng)用實(shí)體
Executable:App的運(yùn)行時(shí)實(shí)體,一個(gè)可執(zhí)行程序可以包含多個(gè)服務(wù)實(shí)例
Process :OS運(yùn)行調(diào)度的實(shí)體
Machine:運(yùn)行環(huán)境的物理資源
AUTOSAR使用ARXML格式文件進(jìn)行建模 :
通過正式定義的接口來使用服務(wù)
實(shí)現(xiàn)服務(wù)有三種方式Event Method Field
定義服務(wù)傳輸?shù)臄?shù)據(jù)類型
App之間的通信端口,需要在component 元素中定義provide/require Port
adaptive autosar machine的啟動(dòng)過程涉及到以下幾個(gè)概念:
清單是一種用來描述AP AUTOSAR軟件系統(tǒng)的文件,它可以告訴我們?cè)趺窗惭b和運(yùn)行軟件。清單文件的格式是XML,它們可以通過ARXML工具進(jìn)行生成和處理。
清單有三種不同的類型,分別是:
Execution Manifest在設(shè)計(jì)期間創(chuàng)建,提供應(yīng)用部署所需的信息,定義每個(gè)可執(zhí)行文件實(shí)例化幾個(gè)進(jìn)程(幾次),每個(gè)進(jìn)程的的啟動(dòng)參數(shù)、環(huán)境變量、UID/GID、資源組、調(diào)度策略、何時(shí)啟動(dòng)、停止等都可以獨(dú)立配置。
在RTA-VRTE中配置Execution Manifest
添加一個(gè)AA進(jìn)程我們需要做幾方面的配置:
1.配置AA進(jìn)程相關(guān)的FunctionGroup state
2.選擇AA將要部署在哪個(gè)Machine上
3.AA進(jìn)程的啟動(dòng)參數(shù)和環(huán)境變量(依賴的庫和配置文件等信息)
4.AA進(jìn)程的Log模塊配置
5.AA是否向EM匯報(bào)執(zhí)行狀態(tài)
6.設(shè)置AA所屬于的Resource Group,來控制AA所在的功能組所占用的內(nèi)存和cpu使用率。
7.選擇AA進(jìn)程中的線程的調(diào)度算法(FIFO、RR、other)
Machine Manifest實(shí)際運(yùn)行在特定硬件(機(jī)器)上的adaptive平臺(tái)實(shí)例的配置,它包含了 machine屬性,特性(資源,功能安全,信息安全等),例如machine state、function group state、resource group、訪問權(quán)限組、SOME/IP配置、內(nèi)存分區(qū)、硬件資源,如處理器和核心等等。
每個(gè)machine都配置有關(guān)function groups、software clusters和process到machine的映射等相關(guān)信息。
在RTA-VRTE中配置Machine Manifest
在ARXML文件中,我們可以配置Machine的以下屬性和特征:
狀態(tài):Machine的運(yùn)行狀態(tài),如啟動(dòng)、停止、重啟等。
進(jìn)程:Machine的執(zhí)行單元,如應(yīng)用邏輯、中斷、函數(shù)等。
網(wǎng)絡(luò):Machine的通信方式,如Ethernet等。
服務(wù):Machine的提供或請(qǐng)求的功能,如診斷、校準(zhǔn)、更新等。
每個(gè)Machine都有自己獨(dú)立的功能集群和服務(wù),它們可以實(shí)現(xiàn)不同的汽車應(yīng)用程序。每個(gè)Machine需要與一個(gè)Machine Design相關(guān)聯(lián),Machine Design是用來定義不同Machine之間如何協(xié)作和交互的。
下表展示了Machine和Machine Design的關(guān)系:
每個(gè)Machine都需要至少一個(gè)IP配置,因?yàn)樵诰W(wǎng)絡(luò)中,每個(gè)Machine都是一個(gè)獨(dú)立的end point。IP配置包括IP地址、子網(wǎng)掩碼、網(wǎng)關(guān)等信息,用于標(biāo)識(shí)和定位Machine。沒有IP配置,Machine就無法與其他Machine或設(shè)備進(jìn)行通信。
軟件集群(software cluster)一種原子的、可更新的、可擴(kuò)展的軟件單元,由一個(gè)或多個(gè)進(jìn)程組成,實(shí)現(xiàn)了一組特定的功能或應(yīng)用程序。軟件集群的作用是將應(yīng)用程序和服務(wù)按照功能或特性進(jìn)行分組和管理,提高了開發(fā)和部署的靈活性和效率。
軟件集群通常需要配置以下幾項(xiàng)內(nèi)容:
用來說明軟件集群包含了什么樣的功能,比如導(dǎo)航、泊車、通訊等。
用來執(zhí)行具體的軟件代碼,比如導(dǎo)航進(jìn)程、泊車進(jìn)程、通訊進(jìn)程等。一個(gè)軟件集群可以包含多個(gè)進(jìn)程,但是它們要有相同的功能組。
設(shè)計(jì)(software cluster design)
用來描述軟件集群的結(jié)構(gòu)和屬性,比如名稱、版本、大小、依賴關(guān)系等。
software cluster design需要和MachineDesign相關(guān)聯(lián)
software cluster需要和software cluster design相關(guān)聯(lián)
Function Group State:功能組狀態(tài),是指一個(gè)功能集群(Function Group)的整體狀態(tài),它反映了該功能集群內(nèi)部所有進(jìn)程或自適應(yīng)應(yīng)用程序的執(zhí)行狀態(tài)的綜合情況。功能組狀態(tài)由狀態(tài)管理(State Management)模塊控制和監(jiān)視。
在ARXML文件中,我們可以配置執(zhí)行管理的以下功能:
·控制進(jìn)程(Process)的啟動(dòng)和停止,根據(jù)功能組(Function Group)的狀態(tài)(Function Group State)。
·定義功能組,需要?jiǎng)?chuàng)建一個(gè)新的模式聲明組(Mode Declaration Group),并將它和功能組集(Function Group Set)關(guān)聯(lián)。功能組集和軟件集群(Software Cluster)關(guān)聯(lián)。
·在MachineFG中添加Machine的四種狀態(tài):Off、Startup、Restart、shutdown,并將MachineFG設(shè)置初始狀態(tài)為OFF。
下表展示了功能組和狀態(tài)的關(guān)系:
MachineFG Function Group Transitions
功能組是一種邏輯分組,用于將具有相同或相似功能的進(jìn)程聚合在一起。功能組可以有多個(gè)狀態(tài),表示該功能組所包含的進(jìn)程的運(yùn)行情況。執(zhí)行管理根據(jù)功能組的狀態(tài),決定是否啟動(dòng)或停止該功能組所包含的進(jìn)程。這樣可以提高執(zhí)行效率,節(jié)省資源,實(shí)現(xiàn)動(dòng)態(tài)調(diào)度。
Service Instance Manifest
Service Instance Manifest 主要包含面向服務(wù)通信的配置信息 ,描述針對(duì)特定的傳輸協(xié)議(如SOME/IP),進(jìn)行面向服務(wù)通信的配置和可執(zhí)行代碼綁定(服務(wù)實(shí)例到機(jī)器的映射、服務(wù)實(shí)例到應(yīng)用端點(diǎn)的映射),還包含基于服務(wù)的通信相關(guān)信息,如應(yīng)用層及相應(yīng)的傳輸層、網(wǎng)絡(luò)層通信參數(shù)信息。
在RTA-VRTE中配置Service Instance Manifest
Execution Manifest和Machine Manifest可以從原始的標(biāo)準(zhǔn)化ARXML轉(zhuǎn)換為特定于平臺(tái)的格式(稱為Processed Manifest處理清單),在機(jī)器啟動(dòng)時(shí)可以有效地讀取。
格式轉(zhuǎn)換可以在集成時(shí)在板外或部署時(shí)進(jìn)行,也可以在安裝時(shí)在機(jī)器上(通過更新和配置管理)進(jìn)行。
借著狀態(tài)轉(zhuǎn)換圖來介紹一下AP AUTOSAR中用來描述Machine和功能集群的狀態(tài)和行為的process state, Execution state, Function Group State, Machine State概念。
進(jìn)程狀態(tài),是指一個(gè)功能集群(Function Group)內(nèi)部的一個(gè)進(jìn)程(Process)或者一個(gè)AA的生命周期狀態(tài)。進(jìn)程狀態(tài)有四種可能的值:未創(chuàng)建(NotCreated)、創(chuàng)建中(Creating)、已創(chuàng)建(Created)和銷毀中(Destroying)。進(jìn)程狀態(tài)由進(jìn)程管理(Process Management)模塊控制和監(jiān)視。
執(zhí)行狀態(tài),是指一個(gè)功能集群(Function Group)內(nèi)部的一個(gè)進(jìn)程(Process)或者一個(gè)AA的運(yùn)行狀態(tài)。執(zhí)行狀態(tài)有四種可能的值:未啟動(dòng)(NotStarted)、啟動(dòng)中(Starting)、運(yùn)行中(Running)和停止中(Stopping)。執(zhí)行狀態(tài)由執(zhí)行管理(Execution Management)模塊控制和監(jiān)視。
功能組狀態(tài),是指一個(gè)功能集群(Function Group)的整體狀態(tài),它反映了該功能集群內(nèi)部所有進(jìn)程或自適應(yīng)應(yīng)用程序的執(zhí)行狀態(tài)的綜合情況。功能組狀態(tài)有五種可能的值:未啟動(dòng)(NotStarted)、啟動(dòng)中(Starting)、運(yùn)行中(Running)、停止中(Stopping)和已停止(Stopped)。功能組狀態(tài)由狀態(tài)管理(State Management)模塊控制和監(jiān)視。
機(jī)器狀態(tài),是指一個(gè)Machine的整體狀態(tài),它反映了該Machine上所有功能集群的功能組狀態(tài)的綜合情況。機(jī)器狀態(tài)有幾種可能的值:未啟動(dòng)(Off)、啟動(dòng)(Startup)、關(guān)機(jī)(Shutdown)和重啟(Restart)。機(jī)器狀態(tài)通常會(huì)引用功能組狀態(tài)。
Adaptive AUTOSAR 平臺(tái)架構(gòu)
在AP架構(gòu)下,同一臺(tái)機(jī)器上的自適應(yīng)應(yīng)用程序都實(shí)現(xiàn)為一個(gè)獨(dú)立的進(jìn)程,都有自己的邏輯內(nèi)存和命名空間相互隔離,以確保相互不受干擾。這是由操作系統(tǒng)的MMU內(nèi)存管理單元提供的。這也是AP模塊化的由來。
單個(gè)AA可能包含一個(gè)或多個(gè)進(jìn)程,可以部署到單個(gè)AP實(shí)例上,也可以分布在多個(gè)AP實(shí)例上。從模塊來看,每個(gè)進(jìn)程都是由操作系統(tǒng)從可執(zhí)行文件中實(shí)例化的,一個(gè)可執(zhí)行文件可實(shí)例化多次。這些進(jìn)程都是運(yùn)行在操作系統(tǒng)之上的,進(jìn)程是動(dòng)態(tài)運(yùn)行的,何時(shí)調(diào)用、進(jìn)程生存周期、資源占用及進(jìn)程結(jié)束等,都是系統(tǒng)動(dòng)態(tài)管理,好比你手機(jī)上的App何時(shí)打開、運(yùn)行后其會(huì)調(diào)用的資源及何時(shí)關(guān)閉都是動(dòng)態(tài)進(jìn)行的。
AP平臺(tái)需要提供相關(guān)模塊的SDK和守護(hù)進(jìn)程等。應(yīng)用程序可以調(diào)用SDK提供的API來調(diào)用模塊的功能,比如應(yīng)用程序之間的通信,我們可以調(diào)用COM模塊提供的API,可以進(jìn)行片內(nèi)或片間通信。
這跟CP架構(gòu)有著顯著的區(qū)別,在CP架構(gòu)下,所有應(yīng)用都是靜態(tài)配置的,即應(yīng)用的進(jìn)程在OS中被寫死,軟件功能在編譯階段就確定了,其調(diào)用的周期也是確定,因此基于CP架構(gòu)的軟件一旦有小的應(yīng)用變更就得重新配置和編譯。
應(yīng)用程序的加載/啟動(dòng)是通過使用EM的功能進(jìn)行管理的,并且需要在系統(tǒng)集成或運(yùn)行時(shí)進(jìn)行適當(dāng)?shù)呐渲貌拍軉?dòng)應(yīng)用程序,軟件功能在運(yùn)行時(shí)才可以確定。從EM的角度來看,所有功能集群都是應(yīng)用程序。
Adaptive autosar是一種用于高性能計(jì)算ECU的軟件平臺(tái),它支持自適應(yīng)應(yīng)用程序的開發(fā)和運(yùn)行1。它由兩部分組成:基礎(chǔ)(Foundation)和服務(wù)(Service)。基礎(chǔ)包括了操作系統(tǒng)接口、執(zhí)行管理、網(wǎng)絡(luò)管理、識(shí)別訪問管理、加密、更新和配置管理等功能。服務(wù)包括了通信管理、RESTful、時(shí)間同步、診斷、狀態(tài)管理、持久性、平臺(tái)健康管理、日志和跟蹤等功能。
Adaptive autosar各模塊的功能如下:
執(zhí)行管理 execution management (EM)
功能描述:EM負(fù)責(zé)系統(tǒng)執(zhí)行管理的所有方面,包括平臺(tái)初始化和應(yīng)用的啟動(dòng)和關(guān)閉。EM和OS一起工作執(zhí)行應(yīng)用運(yùn)行時(shí)間的調(diào)度。
AP AUTOSAR執(zhí)行管理模塊可以實(shí)現(xiàn)以下功能:
1.啟動(dòng)和關(guān)閉Machine,配置和加載應(yīng)用程序,處理啟動(dòng)和關(guān)閉過程中的錯(cuò)誤和異常。
2.控制應(yīng)用程序的執(zhí)行狀態(tài),設(shè)置應(yīng)用程序的調(diào)度參數(shù),監(jiān)控應(yīng)用程序的狀態(tài)、資源、性能,處理應(yīng)用程序之間的同步和通信。
3.管理功能組的狀態(tài),實(shí)現(xiàn)功能組之間的協(xié)調(diào)和一致性,根據(jù)不同的場(chǎng)景和需求,動(dòng)態(tài)地切換功能組的狀態(tài)。
4.處理平臺(tái)和應(yīng)用程序中發(fā)生的錯(cuò)誤和異常,根據(jù)不同的錯(cuò)誤類型和嚴(yán)重程度,采取相應(yīng)的恢復(fù)措施。
狀態(tài)管理(State Management)
SM模塊(State Management)是一種實(shí)現(xiàn)狀態(tài)管理和事件處理功能的軟件組件。SM模塊負(fù)責(zé)所有和AP平臺(tái)運(yùn)行狀態(tài)相關(guān)的方面。
?處理輸入的事件,如診斷請(qǐng)求、喚醒事件、錯(cuò)誤恢復(fù)等,并根據(jù)事件類型和優(yōu)先級(jí)來設(shè)置內(nèi)部狀態(tài)。
? 將自適應(yīng)應(yīng)用程序進(jìn)程分配到功能組狀態(tài)(inc. the Machine State)
? 根據(jù)狀態(tài)更改啟動(dòng)/停止應(yīng)用程序
? AUTOSAR觸發(fā)器接口——用于提示狀態(tài)更改
? AUTOSAR ara::exec::StateClient API
? 與ara::diag, ara::exec, ara::nm & ara::ucm模塊的交互
功能描述:
定義了多個(gè)FCs的公共類接口和公共功能。包括接口定義中經(jīng)常使用的常見復(fù)雜數(shù)據(jù)類型。
主要功能:
·由于AP平臺(tái)它具有功能安全的屬性,通常而言我們是不可以使用C 的異常機(jī)制的(由于ASIL認(rèn)證的c 編譯器缺乏異常支撐),因此AP平臺(tái)它引入了ara::core::ErrorCode錯(cuò)誤碼以及ara::core::Result的概念。允許進(jìn)程在不拋出異常的情況下進(jìn)行錯(cuò)誤處理。
·AP還定義了一些了增強(qiáng)的數(shù)據(jù)類型,這些數(shù)據(jù)類型統(tǒng)一封裝在了ARA::core的命名空間。包括AP自己的內(nèi)存分配相關(guān)的數(shù)據(jù)類型如:Vector、Map和String,以及Manifest中一些constructs用到的類型如StringView,Span,Optional和Variant。
·全局初始化函數(shù),ara::core::Initialize和ara::core:: Deinitialize,此調(diào)用必須在main()內(nèi)部進(jìn)行。
功能描述:
AUTOSAR Adaptive platform(AP)運(yùn)行在高性能處理器上,直接基于通用的操作系統(tǒng)。
操作系統(tǒng)接口的要求如下:
1.OS提供符合PSE51標(biāo)準(zhǔn)的POSIX兼容的API接口。
2.OS支持周期性時(shí)間觸發(fā)的執(zhí)行功能,進(jìn)程中的算法可以是時(shí)間觸發(fā)的。
3.OS需要提供允許應(yīng)用程序的時(shí)間觸發(fā)執(zhí)行的機(jī)制。觸發(fā)因素需要至少但不限于包含外部計(jì)時(shí)器。
4.OSI支持C 11,AP進(jìn)程是用C 編寫的,接口應(yīng)該符合c 11
5.OS支持把EM拉起作為第一個(gè)執(zhí)行進(jìn)程。
6.OS支持為進(jìn)程或進(jìn)程組配置內(nèi)存和CPU資源預(yù)算。
7.OS提供進(jìn)程綁定到CPU Core的機(jī)制。
8.OS支持軟件實(shí)體對(duì)系統(tǒng)對(duì)象訪問的權(quán)限管理機(jī)制,應(yīng)用進(jìn)程只能通過授權(quán)的系統(tǒng)調(diào)用來
9.OS提供多進(jìn)程,以便支持應(yīng)用程序隔離。
通信管理(Communication Management)
通信管理模塊是一個(gè)用于實(shí)現(xiàn)服務(wù)導(dǎo)向通信的模塊,它支持多種通信協(xié)議,如SOME/IP, DDS, IPC等。
主要功能:
1.將協(xié)議無關(guān)的服務(wù)導(dǎo)向通信映射到配置的協(xié)議綁定,并執(zhí)行相應(yīng)的協(xié)議。應(yīng)用程序代碼使用服務(wù)導(dǎo)向通信的API,而不需要關(guān)心底層的協(xié)議細(xì)節(jié)。
2.支持服務(wù)發(fā)現(xiàn)、服務(wù)注冊(cè)、服務(wù)請(qǐng)求、服務(wù)響應(yīng)等功能,實(shí)現(xiàn)不同的通信模式和質(zhì)量,如點(diǎn)對(duì)點(diǎn)、發(fā)布訂閱、可靠、實(shí)時(shí)等。
3.支持事件、方法和字段三種類型的服務(wù),實(shí)現(xiàn)不同的數(shù)據(jù)交換和遠(yuǎn)程調(diào)用功能。事件用于發(fā)布和訂閱數(shù)據(jù),方法用于請(qǐng)求和響應(yīng)數(shù)據(jù),字段用于獲取和設(shè)置數(shù)據(jù)。
4.支持端到端通信保護(hù),使用E2E機(jī)制對(duì)通信數(shù)據(jù)進(jìn)行校驗(yàn)和保護(hù),防止數(shù)據(jù)被篡改或丟失。
5.支持網(wǎng)絡(luò)管理,使用NM機(jī)制對(duì)網(wǎng)絡(luò)狀態(tài)進(jìn)行監(jiān)控和控制,實(shí)現(xiàn)網(wǎng)絡(luò)節(jié)點(diǎn)的加入和退出,以及網(wǎng)絡(luò)喚醒和休眠等功能。
6.支持安全通信,使用加密、簽名、認(rèn)證等技術(shù)保證通信的機(jī)密性、完整性和可信性。
功能描述:
診斷管理模塊(DM)是一種實(shí)現(xiàn)基于ISO 14229-1(UDS)和ISO 13400-2(DoIP)的ISO 14229-5(UDSonIP)的診斷服務(wù)的軟件組件。DM代表Foundation層上AP平臺(tái)的功能集群,支持多個(gè)診斷客戶端和多個(gè)軟件集群。
每個(gè)SWCL是一個(gè)單獨(dú)的軟件更新包, SWCL都可以創(chuàng)建自己的診斷服務(wù)器實(shí)例,每個(gè)診斷服務(wù)器都有自己的診斷地址和服務(wù),可以獨(dú)立地進(jìn)行診斷操作 。每個(gè)診斷服務(wù)器都需要一個(gè)數(shù)據(jù)庫和一個(gè)文本文件(ru:candela文件)來配置其功能 。
主要功能:
1.診斷通信:實(shí)現(xiàn)診斷服務(wù)器的功能,支持一些標(biāo)準(zhǔn)的UDS服務(wù),如例行控制、數(shù)據(jù)標(biāo)識(shí)符、故障碼讀取和清除等。DM模塊還可以將診斷請(qǐng)求調(diào)度到相應(yīng)的自適應(yīng)應(yīng)用程序,以便執(zhí)行特定的診斷操作。
2.事件存儲(chǔ):負(fù)責(zé)故障診斷代碼(DTC)的管理,包括DTC的存儲(chǔ)、更新、刪除、啟用和禁用等。DM模塊還可以管理DTC相關(guān)的快照記錄和擴(kuò)展數(shù)據(jù)記錄,以及提供內(nèi)部轉(zhuǎn)換的通知。
3.傳輸層:支持DoIP作為傳輸協(xié)議,實(shí)現(xiàn)車輛發(fā)現(xiàn)和診斷通信。DoIP是一種基于IP網(wǎng)絡(luò)的車輛診斷協(xié)議,可以與診斷基礎(chǔ)設(shè)施(如診斷客戶端、生產(chǎn)/車間測(cè)試儀)進(jìn)行車外通信。
網(wǎng)絡(luò)管理(Network Management)
Architecture overview with example applications
功能描述:
NM是一種網(wǎng)絡(luò)管理機(jī)制,用于控制和協(xié)調(diào)負(fù)責(zé)協(xié)調(diào)內(nèi)部協(xié)調(diào)狀態(tài)機(jī)中基礎(chǔ)網(wǎng)絡(luò)(部分網(wǎng)絡(luò),VLAN或物理通道)的正常運(yùn)行和總線睡眠模式之間的轉(zhuǎn)換。它的目的是在滿足ECU節(jié)點(diǎn)正常通信需求的情況下,又能節(jié)省汽車蓄電池電量。
Overview Of Network Management
主要功能:
1.網(wǎng)絡(luò)請(qǐng)求和釋放:NM模塊為狀態(tài)管理提供了一個(gè)服務(wù)接口,用于請(qǐng)求和釋放網(wǎng)絡(luò)以及查詢其實(shí)際狀態(tài)。NM模塊協(xié)調(diào)不同實(shí)例(網(wǎng)絡(luò)句柄)的請(qǐng)求,并通過網(wǎng)絡(luò)提供匯總的計(jì)算機(jī)請(qǐng)求。
2.網(wǎng)絡(luò)狀態(tài)監(jiān)測(cè):NM模塊通過周期性的NM消息來監(jiān)測(cè)網(wǎng)絡(luò)狀態(tài),包括喚醒、準(zhǔn)備睡眠、睡眠等。NM消息的接收指示發(fā)送節(jié)點(diǎn)要保持NM群集處于喚醒狀態(tài)。如果任何節(jié)點(diǎn)準(zhǔn)備好進(jìn)入睡眠模式,它將停止發(fā)送NM消息,但是只要接收到來自其他節(jié)點(diǎn)的NM消息,它將推遲過渡到睡眠模式。最后,如果由于不再接收NM消息而經(jīng)過了專用計(jì)時(shí)器,則每個(gè)節(jié)點(diǎn)都將執(zhí)行到睡眠模式的轉(zhuǎn)換。
3.部分網(wǎng)絡(luò)管理:如果使用了部分網(wǎng)絡(luò)功能,則NM消息可以包含部分網(wǎng)絡(luò)(PN)請(qǐng)求,從而使ECU可以忽略不請(qǐng)求與ECU相關(guān)的任何PN的NM消息。盡管在其他部分網(wǎng)絡(luò)中仍在進(jìn)行通訊,但這可以關(guān)閉ECU(或其部分)。
身份識(shí)別訪問管理(Identify Access Management)
功能描述:
身份識(shí)別訪問管理塊(IAM)是一種實(shí)現(xiàn)基于策略的訪問控制功能的軟件組件。IAM模塊為應(yīng)用程序提供權(quán)限隔離以及受攻擊時(shí)權(quán)限越級(jí)的保護(hù)功能,同時(shí),IAM模塊還能方便集成人員在部署時(shí)就能驗(yàn)證應(yīng)用對(duì)于資源的訪問權(quán)限。
主要功能:
1.訪問控制決策:IAM模塊通過Policy Decision Point(PDP)基于訪問控制策略來決定應(yīng)用是否被允許執(zhí)行請(qǐng)求動(dòng)作。訪問控制策略是一些約束條件,描述了訪問特定資源或服務(wù)需要哪些Capability。Capability是應(yīng)用身份信息的一個(gè)屬性,在定義Application Manifest時(shí),開發(fā)者為每個(gè)應(yīng)用分配對(duì)應(yīng)的Capability。
2.訪問控制執(zhí)行:IAM模塊通過Policy Enforcement Point(PEP)在應(yīng)用提出請(qǐng)求時(shí)中斷控制流,向PDP請(qǐng)求訪問控制決策并根據(jù)決策返回的布爾值進(jìn)行對(duì)應(yīng)操作。PEP可以實(shí)現(xiàn)對(duì)Service、Foundation FC以及相關(guān)模型資源的訪問控制。
3.應(yīng)用身份識(shí)別:IAM模塊通過Execution Management(EM)模塊獲取應(yīng)用身份信息,以便進(jìn)行訪問控制決策和執(zhí)行。EM模塊會(huì)根據(jù)模型信息,去創(chuàng)建Adaptive應(yīng)用的運(yùn)行實(shí)例,所以EM也需要去負(fù)責(zé)追蹤運(yùn)行進(jìn)程的屬性,也即正在運(yùn)行的應(yīng)用的PID、UID、Key或UUID。
High level architecture of Cryptography
功能描述:
加密模塊(Crypto)是一種實(shí)現(xiàn)通用加密操作和安全密鑰管理的軟件組件。Crypto模塊支持在運(yùn)行時(shí)動(dòng)態(tài)生成密鑰和加密作業(yè),以及對(duì)數(shù)據(jù)流進(jìn)行操作。為了減少存儲(chǔ)需求,可以將密鑰內(nèi)部存儲(chǔ)在加密后端中,也可以外部存儲(chǔ)并按需導(dǎo)入。Crypto模塊旨在支持將對(duì)安全敏感的操作和決策封裝在單獨(dú)的組件中,例如硬件安全模塊(HSM)。
主要功能:
1.加密操作:Crypto模塊提供了一系列標(biāo)準(zhǔn)化的加密算法和模式,用于對(duì)數(shù)據(jù)進(jìn)行加密、解密、簽名、驗(yàn)證等操作。Crypto模塊支持對(duì)稱加密(例如AES、DES、3DES等)、非對(duì)稱加密(例如RSA、ECC等)、哈希函數(shù)(例如SHA-1、SHA-2、SHA-3等)、消息認(rèn)證碼(例如HMAC、CMAC等)和數(shù)字簽名(例如ECDSA、RSA-PSS等)。
2.密鑰管理:Crypto模塊提供了一系列標(biāo)準(zhǔn)化的接口和服務(wù),用于管理密鑰的生成、存儲(chǔ)、導(dǎo)入、導(dǎo)出、更新、刪除等操作。Crypto模塊支持本地密鑰生成和基于現(xiàn)有供應(yīng)密鑰的端到端保護(hù)的密鑰引入。Crypto模塊還支持對(duì)密鑰進(jìn)行訪問控制和使用限制,以提高密鑰的安全性。
3.證書管理:Crypto模塊提供了一系列標(biāo)準(zhǔn)化的接口和服務(wù),用于管理證書的生成、存儲(chǔ)、導(dǎo)入、導(dǎo)出、驗(yàn)證等操作。Crypto模塊支持X.509證書格式,以及基于PKCS#7或PKCS#10的證書請(qǐng)求和響應(yīng)。
功能描述:
一種實(shí)現(xiàn)日志記錄和追蹤功能的軟件組件。Log模塊可以在開發(fā)期間以及生產(chǎn)中和生產(chǎn)后使用日志記錄和追蹤功能,以便對(duì)自適應(yīng)平臺(tái)的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè)和分析。
主要功能:
? 本地日志 (輸出到控制臺(tái)或文件)日志記錄,Log模塊提供了一系列標(biāo)準(zhǔn)化的方法,用于向不同的日志接收器發(fā)送日志信息,例如通信總線、系統(tǒng)上的文件和串行控制臺(tái)等。Log模塊支持多種日志級(jí)別,例如錯(cuò)誤、警告、信息、調(diào)試等,以及多種日志格式。Log模塊還可以自動(dòng)在日志信息中添加時(shí)間戳和其他元數(shù)據(jù),以便進(jìn)行排序和過濾。
? 遠(yuǎn)程日志記錄(使用DLT協(xié)議),Log模塊提供了一種基于DLT協(xié)議的追蹤功能,用于對(duì)自適應(yīng)平臺(tái)的運(yùn)行時(shí)行為進(jìn)行分析和優(yōu)化。DLT協(xié)議是一種標(biāo)準(zhǔn)化的交付和表示格式,可以將日志信息打包為標(biāo)準(zhǔn)化的幀,并添加一些額外的信息,例如ECU ID、軟件集群ID等。Log模塊可以將LT幀發(fā)送到追蹤工具或其他設(shè)備,以便進(jìn)行可視化和分析。
功能描述:
為了支持Adaptive Platform上軟件的更改,更新和配置管理器(UCM)提供了處理軟件更新請(qǐng)求的Adaptive Platform服務(wù)。
主要功能:
UCM可以接收來自后端服務(wù)器或診斷測(cè)試儀的軟件更新請(qǐng)求,負(fù)責(zé)在自適應(yīng)平臺(tái)上安裝、更新、刪除和保留軟件記錄。
UCM可以處理不同格式和類型的軟件包,包括完整包、增量包、后端包、車輛包等,根據(jù)軟件包清單中的元數(shù)據(jù)和依賴關(guān)系,執(zhí)行相應(yīng)的操作。
UCM可以與UCM主服務(wù)器協(xié)作,以在車輛內(nèi)部分發(fā)和協(xié)調(diào)多個(gè)UCM客戶端的軟件包,實(shí)現(xiàn)軟件的一致性和同步。
UCM可以在軟件安裝或更新后,執(zhí)行激活或回退操作,確保軟件的可靠性和安全性。
UCM可以提供軟件的版本信息、狀態(tài)信息、錯(cuò)誤信息等,供客戶端查詢和監(jiān)控。
PHM模塊(Platform Health Management)
功能描述:
PHM是一種實(shí)現(xiàn)平臺(tái)健康管理和功能安全功能的軟件組件。PHM模塊監(jiān)控運(yùn)行的應(yīng)用程序,當(dāng)受監(jiān)控實(shí)體發(fā)生錯(cuò)誤/故障時(shí),PHM模塊可以觸發(fā)恢復(fù)操作?;謴?fù)操作具體由集成人員根據(jù)平臺(tái)軟件架構(gòu)需求,在Manifest文件當(dāng)中定義。
主要功能:
? 全局和本地監(jiān)督(Global and local supervision)
? 邏輯監(jiān)督(Logical supervision)
? 恢復(fù)操作 (Recovery actions)
? 存活監(jiān)督(Alive supervision)
? 截止日期監(jiān)控(Deadline monitoring )
功能描述:
Persistence模塊是一種讓自適應(yīng)平臺(tái)的軟件可以保存和讀取數(shù)據(jù)的軟件組件。它可以把數(shù)據(jù)存儲(chǔ)在不會(huì)丟失的存儲(chǔ)器中,即使車輛關(guān)機(jī)或重啟也不會(huì)影響。它提供了一個(gè)統(tǒng)一的接口,讓軟件可以方便地訪問不同的存儲(chǔ)位置。
主要功能:
? 鍵值存儲(chǔ)(Key-Value storage)
? 文件代理訪問(File proxy access)
? 并行訪問數(shù)據(jù)(Parallel access to data)
? 持久數(shù)據(jù)的安裝、更新和回滾(Installation, Update and Rollback of Persistent Data)
功能描述:
ara::tsync它提供了時(shí)間同步的功能,使得不同的節(jié)點(diǎn)可以共享一個(gè)全局的時(shí)間基準(zhǔn)。ara::tsync的主要特點(diǎn)有:
·基于服務(wù)的架構(gòu),可以動(dòng)態(tài)地發(fā)現(xiàn)和訂閱不同的時(shí)間基準(zhǔn)資源,如全局時(shí)間主節(jié)點(diǎn)或從屬時(shí)間基準(zhǔn)節(jié)點(diǎn)。
·支持多種網(wǎng)絡(luò)綁定,如SOME/IP、REST、DDS等,以適應(yīng)不同的通信需求和場(chǎng)景。
·支持即時(shí)時(shí)間同步和延遲時(shí)間同步兩種模式,分別用于高精度和低精度的時(shí)間同步需求。
·支持用戶數(shù)據(jù)的傳輸,可以在時(shí)間同步消息中附加額外的信息,如診斷數(shù)據(jù)、配置數(shù)據(jù)等。
主要功能:
? 啟動(dòng)和關(guān)閉 (Startup & shutdown)
? 時(shí)間校正 (Time correction)
? 時(shí)基提供者和使用者模式 (Time base provider and consumer modes)
入侵檢測(cè)系統(tǒng)管理(ara::idsm)
功能描述:
ara::idsm它提供了入侵檢測(cè)系統(tǒng)管理的功能,使得不同的安全傳感器可以向它報(bào)告安全事件,并對(duì)安全事件進(jìn)行過濾和處理。ara::idsm的主要特點(diǎn)有:
·基于服務(wù)的架構(gòu),可以動(dòng)態(tài)地發(fā)現(xiàn)和訂閱不同的安全事件資源,如入侵檢測(cè)系統(tǒng)主節(jié)點(diǎn)或從屬入侵檢測(cè)系統(tǒng)節(jié)點(diǎn)。
·支持多種網(wǎng)絡(luò)綁定,如SOME/IP、REST、DDS等,以適應(yīng)不同的通信需求和場(chǎng)景。
·支持用戶定義的診斷事件內(nèi)存,可以將安全事件存儲(chǔ)在獨(dú)立于主診斷事件內(nèi)存的內(nèi)存中。
·支持用戶數(shù)據(jù)的傳輸,可以在安全事件消息中附加額外的信息,如診斷數(shù)據(jù)、配置數(shù)據(jù)等。
主要功能:
? 事件生成 (Event generation)
? 報(bào)告模式(Reporting modes)
? 過濾器鏈條 (Filter chains)
? QSevs的傳播和認(rèn)證(Propagation & authentication of Qsevs)
? Rate and traffic limitation
? 訪問控制(包括診斷訪問)Access control (including diagnostic access)
Architecture of the FC Firewall (圖片來自AUTOSAR官網(wǎng))
功能描述:
ara::FW是AP AUTOSAR中的一個(gè)模塊,它提供了防火墻的功能,使得不同的節(jié)點(diǎn)可以根據(jù)防火墻規(guī)則來控制網(wǎng)絡(luò)訪問和通信。
ara::FW的主要特點(diǎn)有:
基于服務(wù)的架構(gòu),可以動(dòng)態(tài)地發(fā)現(xiàn)和訂閱不同的防火墻資源,如防火墻主節(jié)點(diǎn)或從屬防火墻節(jié)點(diǎn)。
支持多種網(wǎng)絡(luò)綁定,如SOME/IP、REST、DDS等,以適應(yīng)不同的通信需求和場(chǎng)景。
支持用戶定義的防火墻規(guī)則,可以在運(yùn)行時(shí)動(dòng)態(tài)地修改和應(yīng)用防火墻規(guī)則,以適應(yīng)不同的車輛狀態(tài)或外部系統(tǒng)的變化。
支持用戶數(shù)據(jù)的傳輸,可以在防火墻消息中附加額外的信息,如診斷數(shù)據(jù)、配置數(shù)據(jù)等。
更多信息請(qǐng)?jiān)L問
www.etas.cn