什么是軟件組件?
一般來(lái)說(shuō),一個(gè)軟件應(yīng)用程序可以被分解成若干部分,以減少整個(gè)應(yīng)用程序的復(fù)雜性。這些部分,或者說(shuō)組件,以一種標(biāo)準(zhǔn)化的方式相互作用,這使得組件可以像機(jī)器的可替換部件一樣被換入或換出?;诜謱拥姆椒ㄊ墙档驼w設(shè)計(jì)復(fù)雜性的另一種方式。AUTOSAR基礎(chǔ)設(shè)施從這兩種方法中獲益。
AUTOSAR允許在RTE之上進(jìn)行基于組件的軟件設(shè)計(jì),并對(duì)BSW采用分層方法。
AUTOSAR軟件組件(SW-C)
AUTOSAR 應(yīng)用程序涉及相互連接的軟件組件。它們中的每一個(gè)都封裝了整個(gè)應(yīng)用的一部分功能。AUTOSAR規(guī)定了允許幾個(gè)AUTOSAR軟件組件在涉及網(wǎng)絡(luò)ECU的基礎(chǔ)設(shè)施中正確集成所需的一切。 一個(gè)AUTOSAR軟件由以下部分組成:
正式的軟件組件描述,指定基礎(chǔ)設(shè)施必須如何為該組件配置。
作為目標(biāo)代碼或源代碼的軟件組件的執(zhí)行。
AUTOSAR SW-C描述 AUTOSAR SW-C 是以 .arxml 文件格式描述的。該描述的結(jié)構(gòu)被稱(chēng)為軟件組件模板,它包含:
軟件組件提供和要求的操作和數(shù)據(jù)元素,
該軟件組件對(duì)基礎(chǔ)設(shè)施和所需資源的要求(服務(wù)),
關(guān)于該軟件組件實(shí)施的信息。
SW-C描述是通過(guò)AUTOSAR編寫(xiě)工具生成的,或者使用文本編輯器手動(dòng)編寫(xiě)。.arxml 文件將由描述軟件組件的標(biāo)準(zhǔn) AUTOSAR XML 標(biāo)簽組成。
AUTOSAR SW-C的執(zhí)行
在SW-C描述的必要部分如內(nèi)部行為準(zhǔn)備好后,可以使用組件API生成器(可以是RTE生成器)生成SW-C的API。有了C頭文件,SW-C的功能就可以獨(dú)立實(shí)現(xiàn),并且可以生成C源文件。
對(duì)于經(jīng)典的AUTOSAR應(yīng)用來(lái)說(shuō),軟件組件的實(shí)現(xiàn)通常是在C源文件中完成的。
通信機(jī)制
被廣泛采用兩個(gè)的通信模式是客戶(hù)端-服務(wù)器和發(fā)送器-接收器。首先談?wù)勥@些通信模式,以便能夠了解AUTOSAR是如何支持這兩種模式的。
客戶(hù)端-服務(wù)器通信
在這種通信模式中,客戶(hù)端請(qǐng)求一個(gè)服務(wù),服務(wù)器執(zhí)行該服務(wù)。如果客戶(hù)端等待服務(wù)器完全解決該請(qǐng)求,那么該通信被稱(chēng)為同步通信,否則,如果客戶(hù)端沒(méi)有被阻止,那么它被稱(chēng)為異步通信。 在AUTOSAR背景下,SW-C可以作為客戶(hù)端或服務(wù)器或兩者。通信的啟動(dòng)方向被用來(lái)劃分SW-C是客戶(hù)端還是服務(wù)器。
多個(gè)客戶(hù)端可以從一個(gè)服務(wù)器上請(qǐng)求一個(gè)服務(wù)。該服務(wù)通常是在另一個(gè)軟件組件中實(shí)現(xiàn)的C函數(shù),它被稱(chēng)為 "操作"。
發(fā)送者-接收者通信
在這種通信模式中,發(fā)送方永遠(yuǎn)不會(huì)被攔截,接收方自主決定何時(shí)和如何使用發(fā)送方發(fā)送的信息。 在 AUTOSAR 上下文中,發(fā)送方 SW-C 并不期望從接收方 SW-C 得到響應(yīng)。與流量控制和信息分配有關(guān)的后勤問(wèn)題由AUTOSAR軟件棧中的通信基礎(chǔ)設(shè)施處理。發(fā)送方SW-C也不知道接收方的身份,甚至不知道接收方的數(shù)量。
發(fā)送方SW-C將放送數(shù)據(jù),所有接收方SW-C將隨意獲得該數(shù)據(jù)。
為了實(shí)現(xiàn)多個(gè)軟件組件之間的通信,AUTOSAR 將端口定義為軟件組件之間的交互點(diǎn)。只有通過(guò)端口,一個(gè)軟件組件才能與另一個(gè)軟件組件互動(dòng)。根據(jù)通信的性質(zhì),端口可以是PP端口(提供某種東西的端口)或R端口(需要某種東西的端口)。請(qǐng)注意,端口是特定于一個(gè)軟件組件的。
一個(gè)使用客戶(hù)端-服務(wù)器接口的提供類(lèi)端口的例子。
一個(gè)使用發(fā)送者-接收者接口提供類(lèi)端口的例子。 通過(guò)端口,可以確定哪些軟件組件是相互作用的。但它們是如何互動(dòng)的呢?為了解釋一個(gè)軟件組件的端口所提供或要求的服務(wù)/數(shù)據(jù),AUTOSAR引入了接口概念。有不同種類(lèi)的接口選項(xiàng),為實(shí)現(xiàn)發(fā)送方-接收方通信,需要使用發(fā)送方-接收方接口。同樣,當(dāng)需要從軟件組件中請(qǐng)求服務(wù)時(shí),也要使用客戶(hù)端-服務(wù)器接口。請(qǐng)注意,接口不是特定于一個(gè)軟件組件及其端口的。
發(fā)送者-接收者接口的例子
客戶(hù)端-服務(wù)器接口的一個(gè)例子 當(dāng)一個(gè)軟件組件的PP端口提供一個(gè)接口時(shí),這意味著該端口所屬的軟件組件提供了客戶(hù)端-服務(wù)器接口中定義的操作的執(zhí)行,要么生成面向數(shù)據(jù)的發(fā)送者-接收者接口中描述的數(shù)據(jù)。
AUTOSAR為端口接口定義了特定的形狀,這樣就可以在AUTOSAR編寫(xiě)工具或文檔中一目了然地了解SW-C的結(jié)構(gòu)。
審核編輯:劉清
-
服務(wù)器
+關(guān)注
關(guān)注
12文章
9205瀏覽量
85548 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
362瀏覽量
21618 -
ecu
+關(guān)注
關(guān)注
14文章
888瀏覽量
54540
原文標(biāo)題:AUTOSAR軟件組件的簡(jiǎn)要概述
文章出處:【微信號(hào):智能汽車(chē)電子與軟件,微信公眾號(hào):智能汽車(chē)電子與軟件】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論