- AUTOSAR規(guī)范與車用控制器軟件開發(fā)
- 宋珂 王民 單忠偉 譚楊編著
- 2984字
- 2020-01-16 15:36:20
2.3 AUTOSAR軟件組件
軟件組件(SWC)不僅僅是應(yīng)用層的核心,也是一些抽象層、復(fù)雜驅(qū)動(dòng)層等實(shí)現(xiàn)的載體。由于軟件組件包含的概念較多,這里單獨(dú)介紹AUTOSAR軟件組件相關(guān)概念,這是后期進(jìn)行應(yīng)用層、抽象層等開發(fā)的基礎(chǔ)。
AUTOSAR軟件組件大體上可分為原子軟件組件(Atomic SWC)和部件(Composition SWC)。其中,部件可以包含若干原子軟件組件或部件。原子軟件組件則可根據(jù)不同用途分為以下幾種類型:
①應(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)提供訪問(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硬件直接交互。所以,該類軟件組件靈活性最強(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接口與其他類型的軟件組件進(jìn)行交互。
需要指出的是,上述這些軟件組件有的僅僅是概念上的區(qū)分,從具體實(shí)現(xiàn)及代碼生成角度而言都是相通的。下面將詳細(xì)介紹AUTOSAR軟件組件的幾個(gè)重要概念:數(shù)據(jù)類型、端口、端口接口以及內(nèi)部行為。
2.3.1 軟件組件的數(shù)據(jù)類型
AUTOSAR規(guī)范中定義了如下三種數(shù)據(jù)類型(Data Type):
①應(yīng)用數(shù)據(jù)類型(Application Data Type,ADT);
②實(shí)現(xiàn)數(shù)據(jù)類型(Implementation Data Type,IDT);
③基礎(chǔ)數(shù)據(jù)類型(Base Type)。
應(yīng)用數(shù)據(jù)類型(Application Data Type,ADT)是在軟件組件設(shè)計(jì)階段抽象出來(lái)的數(shù)據(jù)類型,用于表征實(shí)際物理世界的量,是提供給應(yīng)用層使用的,僅僅是一種功能的定義,并不生成實(shí)際代碼。
實(shí)現(xiàn)數(shù)據(jù)類型(Implementation Data Type,IDT)是代碼級(jí)別的數(shù)據(jù)類型,是對(duì)應(yīng)用數(shù)據(jù)類型的具體實(shí)現(xiàn);它需要引用基礎(chǔ)數(shù)據(jù)類型(Base Type),并且還可以配置一些計(jì)算方法(Compute Method)與限制條件(Data Constaint)。
在AUTOSAR中,對(duì)于Application Data Type沒(méi)有強(qiáng)制要求使用,用戶可以直接使用Implementation Data Type。若使用了Application Data Type,則必須進(jìn)行數(shù)據(jù)類型映射(Data Type Mapping),即將Application Data Type與Implementation Data Type進(jìn)行映射,從而來(lái)對(duì)每個(gè)Application Data Type進(jìn)行具體實(shí)現(xiàn)。
2.3.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ù)或者某類操作。
③供需端口:兼有需型端口與供型端口的特性。
需型端口可以和供型端口連接。如圖2.7所示,軟件組件SWC1有一個(gè)需型端口(R)和一個(gè)供型端口(P),其中需型端口與SWC2的供型端口相連,它們之間的交互關(guān)系通過(guò)連線箭頭表示,由SWC2的供型端口指向SWC1的需型端口。SWC3具有一個(gè)供需端口,它可被認(rèn)為自我相連。

圖2.7 AUTOSAR軟件組件端口
由于端口僅僅定義了方向,所以AUTOSAR中用端口接口(Port Interface)來(lái)表征端口的屬性,端口接口主要有如下幾種類型:
①發(fā)送者-接收者接口(Sender-Receiver Interface,S/R);
②客戶端-服務(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)與客戶端-服務(wù)器接口(Client-Server Interface,C/S)。如圖2.8所示,軟件組件SWC1具有兩個(gè)端口,其中一個(gè)引用的端口接口類型為發(fā)送者-接收者(S/R)接口,另一個(gè)引用的端口接口類型為客戶端-服務(wù)器(C/S)接口。從中也可以看出,對(duì)于引用發(fā)送者-接收者接口的一組端口而言,需型端口為接收者(Receiver),供型端口為發(fā)送者(Sender)。對(duì)于引用客戶端-服務(wù)器接口的一組端口而言,需型端口為客戶端(Client),供型端口為服務(wù)器(Server)。

圖2.8 AUTOSAR軟件組件端口接口
下面詳細(xì)討論發(fā)送者-接收者接口(Sender-Receiver Interface,S/R)與客戶端-服務(wù)器接口(Client-Server Interface,C/S)的特性。
(1)發(fā)送者-接收者接口
發(fā)送者-接收者接口用于數(shù)據(jù)的傳遞關(guān)系,發(fā)送者發(fā)送數(shù)據(jù)到一個(gè)或多個(gè)接收者。該類型接口中定義了一系列的數(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ù)類型。

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

圖2.10 客戶端-服務(wù)器接口定義
需要注意的是,每個(gè)端口只能引用一種接口類型,并且引用相同端口接口類型的端口才可以進(jìn)行交互。
2.3.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í)體與所屬軟件組件的端口訪問(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ì)分為很多種類,這將在后續(xù)章節(jié)介紹軟件組件的內(nèi)部行為設(shè)計(jì)時(shí)結(jié)合工具進(jìn)行介紹。較常用的RTE事件有以下幾種:
①周期性(Periodic)事件,即Timing Event;
②數(shù)據(jù)接收事件(Data-received Event);
③客戶端調(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í)體與所屬軟件組件的端口訪問(wèn)
運(yùn)行實(shí)體與所屬軟件組件的端口訪問(wèn)(Port Access)是和端口所引用的端口接口類型密切相關(guān)的。
對(duì)于S/R通信模式,可分為顯示(Explicit)和隱式(Implicit)兩種模式。若運(yùn)行實(shí)體采用顯示模式的S/R通信方式,數(shù)據(jù)讀寫是即時(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ù)寫出去,則可以改善運(yùn)行效率,這就是隱式模式。顯示模式與隱式模式的對(duì)比如圖2.13所示,可見(jiàn)后者的實(shí)現(xiàn)方式中,會(huì)在運(yùn)行實(shí)體被調(diào)用之前讀數(shù)據(jù),在運(yùn)行結(jié)束后寫數(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í)體間變量示意
- 公路建設(shè)中土地資源保護(hù)與集約利用
- 汽車商品規(guī)劃
- 鐵路信號(hào)設(shè)計(jì)與施工(第二版)
- 柴油車維修手冊(cè)(一):柴油電控電路原理圖集
- 高速鐵路軌道工程施工
- 工務(wù)安全突發(fā)事件應(yīng)急處理與預(yù)防
- 別克凱越全車電路分析
- 《安全生產(chǎn)法》學(xué)習(xí)讀本
- 汽車底盤構(gòu)造與維修圖解教程(第2版)
- 手把手教您學(xué)汽車鈑金修復(fù)(第2版)
- 城市軌道交通道岔曲線故障分析
- 汽車動(dòng)力傳動(dòng)系及動(dòng)力性能計(jì)算
- 新能源汽車概論
- 新型汽車電腦端子檢測(cè)速查手冊(cè)
- 車輛減速器信號(hào)工