日本无码免费高清在线|成人日本在线观看高清|A级片免费视频操逼欧美|全裸美女搞黄色大片网站|免费成人a片视频|久久无码福利成人激情久久|国产视频一二国产在线v|av女主播在线观看|五月激情影音先锋|亚洲一区天堂av

  • 手機(jī)站
  • 小程序

    汽車(chē)測(cè)試網(wǎng)

  • 公眾號(hào)
    • 汽車(chē)測(cè)試網(wǎng)

    • 在線(xiàn)課堂

    • 電車(chē)測(cè)試

詳解AUTOSAR分層架構(gòu)與軟件組件

2022-03-21 19:29:51·  作者:宋珂 汽車(chē)電子與軟件  
 
注:本文節(jié)選自宋珂、王民、單忠偉、譚楊編著的《AUTOSAR規(guī)范與車(chē)用控制器軟件開(kāi)發(fā)》,點(diǎn)擊閱讀原文,可購(gòu)買(mǎi)紙質(zhì)版。1.AUTOSAR分層架構(gòu)AUTOSAR規(guī)范主要包括分層

注:本文節(jié)選自宋珂、王民、單忠偉、譚楊編著的《AUTOSAR規(guī)范與車(chē)用控制器軟件開(kāi)發(fā)》,點(diǎn)擊閱讀原文,可購(gòu)買(mǎi)紙質(zhì)版。1.
AUTOSAR分層架構(gòu)AUTOSAR規(guī)范主要包括分層架構(gòu)、方法論和應(yīng)用接口三部分內(nèi)容。其中,分層架構(gòu)是實(shí)現(xiàn)軟硬件分離的關(guān)鍵,它使汽車(chē)嵌入式系統(tǒng)控制軟件開(kāi)發(fā)者擺脫了以往ECU軟件開(kāi)發(fā)與驗(yàn)證時(shí)對(duì)硬件系統(tǒng)的依賴(lài)。在AUTOSAR分層架構(gòu)中,汽車(chē)嵌入式系統(tǒng)軟件自上而下分別為應(yīng)用軟件層(Application Software Layer,ASW)、運(yùn)行時(shí)環(huán)境(Runtime Environment,RTE)、基礎(chǔ)軟件層(Basic Software Layer,BSW)和微控制器(Microcontroller),如圖2.3所示。為保證上層與下層的無(wú)關(guān)性,在通常情況下,每一層只能使用下一層所提供的接口,并向上一層提供相應(yīng)的接口。

圖片

圖2.3 AUTOSAR分層架構(gòu)
1.1、AUTOSAR應(yīng)用軟件層
應(yīng)用軟件層(Application Software Layer,ASW)包含若干個(gè)軟件組件(Software Component,SWC),軟件組件間通過(guò)端口(Port)進(jìn)行交互。每個(gè)軟件組件可以包含一個(gè)或者多個(gè)運(yùn)行實(shí)體(Runnable Entity,RE),運(yùn)行實(shí)體中封裝了相關(guān)控制算法,其可由RTE事件(RTE Event)觸發(fā)。
1.2、AUTOSAR運(yùn)行時(shí)環(huán)境運(yùn)行時(shí)環(huán)境(Runtime Environment,RTE)作為應(yīng)用軟件層與基礎(chǔ)軟件層交互的橋梁,為軟硬件分離提供了可能。RTE可以實(shí)現(xiàn)軟件組件間、基礎(chǔ)軟件間以及軟件組件與基礎(chǔ)軟件之間的通信。RTE封裝了基礎(chǔ)軟件層的通信和服務(wù),為應(yīng)用層軟件組件提供了標(biāo)準(zhǔn)化的基礎(chǔ)軟件和通信接口,使得應(yīng)用層可以通過(guò)RTE接口函數(shù)調(diào)用基礎(chǔ)軟件的服務(wù)。此外,RTE抽象了ECU之間的通信,即RTE通過(guò)使用標(biāo)準(zhǔn)化的接口將其統(tǒng)一為軟件組件之間的通信。由于RTE的實(shí)現(xiàn)與具體ECU相關(guān),所以必須為每個(gè)ECU分別實(shí)現(xiàn)。
1.3、AUTOSAR基礎(chǔ)軟件層基礎(chǔ)軟件層(Basic Software Layer,BSW)又可分為四層,即服務(wù)層(Services Layer)、ECU抽象層(ECU Abstraction Layer)、微控制器抽象層(Microcontroller Abstraction Layer,MCAL)和復(fù)雜驅(qū)動(dòng)(Complex Drivers),如圖2.4所示。

圖片

圖2.4 AUTOSAR基礎(chǔ)軟件層上述各層又由一系列基礎(chǔ)軟件組件構(gòu)成,包括系統(tǒng)服務(wù)(System Services)、存儲(chǔ)器服務(wù)(Memory Services)、通信服務(wù)(Communication Services)等,如圖2.5所示。它們主要用于提供基礎(chǔ)軟件服務(wù),包括標(biāo)準(zhǔn)化的系統(tǒng)功能和功能接口。

圖片

圖2.5 AUTOSAR基礎(chǔ)軟件層結(jié)構(gòu)(1)服務(wù)層服務(wù)層(Services Layer)提供了汽車(chē)嵌入式系統(tǒng)軟件常用的一些服務(wù),其可分為系統(tǒng)服務(wù)(System Services)、存儲(chǔ)器服務(wù)(Memory Services)以及通信服務(wù)(Communication Services)三大部分。提供包括網(wǎng)絡(luò)通信管理、存儲(chǔ)管理、ECU模式管理和實(shí)時(shí)操作系統(tǒng)(Real Time Operating System,RTOS)等服務(wù)。除了操作系統(tǒng)外,服務(wù)層的軟件模塊都是與ECU平臺(tái)無(wú)關(guān)的。(2)ECU抽象層ECU抽象層(ECU Abstraction Layer)包括板載設(shè)備抽象(onboard Devices Abstraction)、存儲(chǔ)器硬件抽象(Memory Hardware Abstraction)、通信硬件抽象(Communication Hardware Abstraction)和I/O硬件抽象(Input/Output Hardware Abstraction)。該層將ECU結(jié)構(gòu)進(jìn)行了抽象,負(fù)責(zé)提供統(tǒng)一的訪(fǎng)問(wèn)接口,實(shí)現(xiàn)對(duì)通信、存儲(chǔ)器或者I/O的訪(fǎng)問(wèn),從而不需要考慮這些資源是由微控制器片內(nèi)提供的,還是由微控制器片外設(shè)備提供的。該層與ECU平臺(tái)相關(guān),但與微控制器無(wú)關(guān),這種無(wú)關(guān)性正是由微控制器抽象層來(lái)實(shí)現(xiàn)的。(3)微控制器抽象層微控制器抽象層(Microcontroller Abstraction Layer,MCAL)是實(shí)現(xiàn)不同硬件接口統(tǒng)一化的特殊層。通過(guò)微控制器抽象層可將硬件封裝起來(lái),避免上層軟件直接對(duì)微控制器的寄存器進(jìn)行操作。微控制器抽象層包括微控制器驅(qū)動(dòng)(Microcontroller Drivers)、存儲(chǔ)器驅(qū)動(dòng)(Memory Drivers)、通信驅(qū)動(dòng)(Communication Drivers)以及I/O驅(qū)動(dòng)(I/O Drivers),如圖2.6所示。

圖片

圖2.6 微控制器抽象層(4)復(fù)雜驅(qū)動(dòng)層由于對(duì)復(fù)雜傳感器和執(zhí)行器進(jìn)行操作的模塊涉及嚴(yán)格的時(shí)序問(wèn)題,難以抽象,所以在AUTOSAR規(guī)范中這部分沒(méi)有被標(biāo)準(zhǔn)化,統(tǒng)稱(chēng)為復(fù)雜驅(qū)動(dòng)(Complex Drivers)。

2.

AUTOSAR軟件組件軟件組件(SWC)不僅僅是應(yīng)用層的核心,也是一些抽象層、復(fù)雜驅(qū)動(dòng)層等實(shí)現(xiàn)的載體。由于軟件組件包含的概念較多,這里單獨(dú)介紹AUTOSAR軟件組件相關(guān)概念,這是后期進(jìn)行應(yīng)用層、抽象層等開(kāi)發(fā)的基礎(chǔ)。AUTOSAR軟件組件大體上可分為原子軟件組件(Atomic SWC)和部件(Composition SWC)。其中,部件可以包含若干原子軟件組件或部件。原子軟件組件則可根據(jù)不同用途分為以下幾種類(lèi)型:

  • 應(yīng)用軟件組件(Application SWC);

  • 傳感器/執(zhí)行器軟件組件(Sensor/Actuator SWC);

  • 標(biāo)定參數(shù)軟件組件(Parameter SWC);

  • ECU抽象軟件組件(ECU Abstraction SWC);

  • 復(fù)雜設(shè)備驅(qū)動(dòng)軟件組件(Complex Device Driver SWC);

  • 服務(wù)軟件組件(Service SWC)。

應(yīng)用軟件組件(Application SWC)主要用于實(shí)現(xiàn)應(yīng)用層控制算法。傳感器/執(zhí)行器軟件組件(Sensor/Actuator SWC)用于處理具體傳感器/執(zhí)行器的信號(hào),可以直接與ECU抽象層交互。標(biāo)定參數(shù)軟件組件(Parameter SWC)主要提供標(biāo)定參數(shù)值。ECU抽象軟件組件(ECU Abstraction SWC)提供訪(fǎng)問(wèn)ECU具體I/O的能力。該軟件組件一般提供引用C/S接口的供型端口,即Server端,由其他軟件組件(如傳感器/執(zhí)行器軟件組件)的需型端口(Client端)調(diào)用。此外,ECU抽象軟件組件也可以直接和一些基礎(chǔ)軟件進(jìn)行交互。復(fù)雜設(shè)備驅(qū)動(dòng)軟件組件(Complex Device Driver SWC)推廣了ECU抽象軟件組件,它可以定義端口與其他軟件組件通信,還可以與ECU硬件直接交互。所以,該類(lèi)軟件組件靈活性最強(qiáng),但由于其和應(yīng)用對(duì)象強(qiáng)相關(guān),從而導(dǎo)致其可移植性較差。服務(wù)軟件組件(Service SWC)主要用于基礎(chǔ)軟件層,可通過(guò)標(biāo)準(zhǔn)接口或標(biāo)準(zhǔn)AUTOSAR接口與其他類(lèi)型的軟件組件進(jìn)行交互。需要指出的是,上述這些軟件組件有的僅僅是概念上的區(qū)分,從具體實(shí)現(xiàn)及代碼生成角度而言都是相通的。下面將詳細(xì)介紹AUTOSAR軟件組件的幾個(gè)重要概念:數(shù)據(jù)類(lèi)型、端口、端口接口以及內(nèi)部行為。

2.1 軟件組件的數(shù)據(jù)類(lèi)型

AUTOSAR規(guī)范中定義了如下三種數(shù)據(jù)類(lèi)型(Data Type):

①應(yīng)用數(shù)據(jù)類(lèi)型(Application Data Type,ADT);

②實(shí)現(xiàn)數(shù)據(jù)類(lèi)型(Implementation Data Type,IDT);

③基礎(chǔ)數(shù)據(jù)類(lèi)型(base Type)。

應(yīng)用數(shù)據(jù)類(lèi)型(Application Data Type,ADT)是在軟件組件設(shè)計(jì)階段抽象出來(lái)的數(shù)據(jù)類(lèi)型,用于表征實(shí)際物理世界的量,是提供給應(yīng)用層使用的,僅僅是一種功能的定義,并不生成實(shí)際代碼。

實(shí)現(xiàn)數(shù)據(jù)類(lèi)型(Implementation Data Type,IDT)是代碼級(jí)別的數(shù)據(jù)類(lèi)型,是對(duì)應(yīng)用數(shù)據(jù)類(lèi)型的具體實(shí)現(xiàn);它需要引用基礎(chǔ)數(shù)據(jù)類(lèi)型(base Type),并且還可以配置一些計(jì)算方法(Compute Method)與限制條件(Data Constaint)。

在AUTOSAR中,對(duì)于Application Data Type沒(méi)有強(qiáng)制要求使用,用戶(hù)可以直接使用Implementation Data Type。若使用了Application Data Type,則必須進(jìn)行數(shù)據(jù)類(lèi)型映射(Data Type Mapping),即將Application Data Type與Implementation Data Type進(jìn)行映射,從而來(lái)對(duì)每個(gè)Application Data Type進(jìn)行具體實(shí)現(xiàn)。


2.2 軟件組件的端口與端口接口

軟件組件的端口根據(jù)輸入/輸出方向可分為需型端口(Require Port,RPort)與供型端口(Provide Port,PPort),在AUTOSAR 4.1.1標(biāo)準(zhǔn)中又提出了供需端口(Provide and Require Port,PRPort)。

①需型端口:用于從其他軟件組件獲得所需數(shù)據(jù)或者所請(qǐng)求的操作。

②供型端口:用于對(duì)外提供某種數(shù)據(jù)或者某類(lèi)操作。

③供需端口:兼有需型端口與供型端口的特性。

需型端口可以和供型端口連接。如圖2.7所示,軟件組件SWC1有一個(gè)需型端口(R)和一個(gè)供型端口(P),其中需型端口與SWC2的供型端口相連,它們之間的交互關(guān)系通過(guò)連線(xiàn)箭頭表示,由SWC2的供型端口指向SWC1的需型端口。SWC3具有一個(gè)供需端口,它可被認(rèn)為自我相連。

圖片

圖2.7 AUTOSAR軟件組件端口

由于端口僅僅定義了方向,所以AUTOSAR中用端口接口(Port Interface)來(lái)表征端口的屬性,端口接口主要有如下幾種類(lèi)型:

①發(fā)送者-接收者接口(Sender-Receiver Interface,S/R);

②客戶(hù)端-服務(wù)器接口(Client-Server Interface,C/S);

③模式轉(zhuǎn)換接口(Mode Switch Interface);

④非易失性數(shù)據(jù)接口(Non-volatile Data Interface);

⑤參數(shù)接口(Parameter Interface);

⑥觸發(fā)接口(Trigger Interface)。

其中,最常用的端口接口是發(fā)送者-接收者接口(Sender-Receiver Interface,S/R)與客戶(hù)端-服務(wù)器接口(Client-Server Interface,C/S)。如圖2.8所示,軟件組件SWC1具有兩個(gè)端口,其中一個(gè)引用的端口接口類(lèi)型為發(fā)送者-接收者(S/R)接口,另一個(gè)引用的端口接口類(lèi)型為客戶(hù)端-服務(wù)器(C/S)接口。從中也可以看出,對(duì)于引用發(fā)送者-接收者接口的一組端口而言,需型端口為接收者(Receiver),供型端口為發(fā)送者(Sender)。對(duì)于引用客戶(hù)端-服務(wù)器接口的一組端口而言,需型端口為客戶(hù)端(Client),供型端口為服務(wù)器(Server)。

圖片

圖2.8 AUTOSAR軟件組件端口接口

下面詳細(xì)討論發(fā)送者-接收者接口(Sender-Receiver Interface,S/R)與客戶(hù)端-服務(wù)器接口(Client-Server Interface,C/S)的特性。

(1)發(fā)送者-接收者接口

發(fā)送者-接收者接口用于數(shù)據(jù)的傳遞關(guān)系,發(fā)送者發(fā)送數(shù)據(jù)到一個(gè)或多個(gè)接收者。該類(lèi)型接口中定義了一系列的數(shù)據(jù)元素(Data Element,DE),這些數(shù)據(jù)元素之間是相互獨(dú)立的。如圖2.9所示,該發(fā)送者-接收者接口SR_Interface中定義了兩個(gè)數(shù)據(jù)元素,名字分別為DE_1與DE_2,并且需要為每個(gè)數(shù)據(jù)元素賦予相應(yīng)的數(shù)據(jù)類(lèi)型。

圖片

圖2.9 發(fā)送者-接收者接口定義

需要指出的是,一個(gè)軟件組件的多個(gè)需型端口、供型端口、供需端口可以引用同一個(gè)發(fā)送者-接收者接口,并且它們可以使用該接口中所定義的任意一個(gè)或者多個(gè)數(shù)據(jù)元素,而并不一定使用所有數(shù)據(jù)元素。

(2)客戶(hù)端-服務(wù)器接口

客戶(hù)端-服務(wù)器接口用于操作(Operation,OP),即函數(shù)調(diào)用關(guān)系,服務(wù)器是操作的提供者,多個(gè)客戶(hù)端可以調(diào)用同一個(gè)操作,但同一個(gè)客戶(hù)端不能調(diào)用多個(gè)操作??蛻?hù)端-服務(wù)器接口定義了一系列操作(Operation),即函數(shù),它(們)由引用該接口的供型端口所在的軟件組件來(lái)實(shí)現(xiàn),并提供給引用該接口的需型端口所在的軟件組件調(diào)用。如圖2.10所示,該客戶(hù)端-服務(wù)器接口CS_Interface中定義了兩個(gè)操作OP_1與OP_2,對(duì)于每一個(gè)操作需要定義相關(guān)參數(shù)及其方向,即函數(shù)的形參。

圖片

圖2.10 客戶(hù)端-服務(wù)器接口定義

需要注意的是,每個(gè)端口只能引用一種接口類(lèi)型,并且引用相同端口接口類(lèi)型的端口才可以進(jìn)行交互。


2.3 軟件組件的內(nèi)部行為

軟件組件的內(nèi)部行為(Internal Behaviour,IB)如圖2.11所示,其主要包括:

圖片

圖2.11 軟件組件的內(nèi)部行為

①運(yùn)行實(shí)體(Runnable Entity,RE);

②運(yùn)行實(shí)體的RTE事件(RTE Event);

③運(yùn)行實(shí)體與所屬軟件組件的端口訪(fǎng)問(wèn)(Port Access);

④運(yùn)行實(shí)體間變量(Inter Runnable Variable,IRV)。

(1)運(yùn)行實(shí)體

運(yùn)行實(shí)體(Runnable Entity,RE)是一段可執(zhí)行的代碼,其封裝了一些算法。一個(gè)軟件組件可以包含一個(gè)或者多個(gè)運(yùn)行實(shí)體。

(2)運(yùn)行實(shí)體的RTE事件

每個(gè)運(yùn)行實(shí)體都會(huì)被賦予一個(gè)RTE事件(Trigger Event),即RTE事件(RTE Event),這個(gè)事件可以引發(fā)這個(gè)運(yùn)行實(shí)體的執(zhí)行。對(duì)于RTE事件可以細(xì)分為很多種類(lèi),這將在后續(xù)章節(jié)介紹軟件組件的內(nèi)部行為設(shè)計(jì)時(shí)結(jié)合工具進(jìn)行介紹。較常用的RTE事件有以下幾種:

①周期性(Periodic)事件,即Timing Event;

②數(shù)據(jù)接收事件(Data-received Event);

③客戶(hù)端調(diào)用服務(wù)器事件(Server-call Event)。

如圖2.12所示,其中Runnable_1、Runnable_2和Runnable_3分別采用了Timing Event、Data-received Event以及Server-call Event。

圖片

圖2.12 運(yùn)行實(shí)體的RTE事件示意

(3)運(yùn)行實(shí)體與所屬軟件組件的端口訪(fǎng)問(wèn)

運(yùn)行實(shí)體與所屬軟件組件的端口訪(fǎng)問(wèn)(Port Access)是和端口所引用的端口接口類(lèi)型密切相關(guān)的。

對(duì)于S/R通信模式,可分為顯示(Explicit)和隱式(Implicit)兩種模式。若運(yùn)行實(shí)體采用顯示模式的S/R通信方式,數(shù)據(jù)讀寫(xiě)是即時(shí)的;當(dāng)多個(gè)運(yùn)行實(shí)體需要讀取相同的數(shù)據(jù)時(shí),若能在運(yùn)行實(shí)體運(yùn)行之前先把數(shù)據(jù)讀到緩存中,在運(yùn)行實(shí)體運(yùn)行結(jié)束后再把數(shù)據(jù)寫(xiě)出去,則可以改善運(yùn)行效率,這就是隱式模式。顯示模式與隱式模式的對(duì)比如圖2.13所示,可見(jiàn)后者的實(shí)現(xiàn)方式中,會(huì)在運(yùn)行實(shí)體被調(diào)用之前讀數(shù)據(jù),在運(yùn)行結(jié)束后寫(xiě)數(shù)據(jù)。

圖片

圖2.13 顯式模式與隱式模式的對(duì)比

對(duì)于C/S通信模式,可分為同步(Synchronous)和異步(Asynchronous)兩種模式,它們的對(duì)比如圖2.14所示。

圖片

圖2.14 同步模式和異步模式的對(duì)比

(4)運(yùn)行實(shí)體間變量

運(yùn)行實(shí)體間變量(Inter Runnable Variable,IRV)即兩個(gè)運(yùn)行實(shí)體之間交互的變量,如圖2.15所示

圖片

圖2.15 運(yùn)行實(shí)體間變量示意


注:本文節(jié)選自宋珂、王民、單忠偉、譚楊編著的《AUTOSAR規(guī)范與車(chē)用控制器軟件開(kāi)發(fā)》

分享到:
 
反對(duì) 0 舉報(bào) 0 收藏 0 評(píng)論 0
滬ICP備11026917號(hào)-25