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