【車載開發(fā)系列】AutoSar中的組件相關知識
一.SWC的概念
SWC(Software Component)是最常見到的一個概念了,軟件組件是封裝了部分或者全部汽車電子功能的模塊。軟件組件包括了其具體的功能實現以及與對應的描述。各個軟件組件(SWC)通過虛擬功能總線進行交互,從而形成一個AUTOSAR應用軟件。
細分的話還可以分成Atomic SWC和Composition SWC。一般單獨說的SWC指的是Automic SWC。SWC最形象的對比就是一個.C文件了,那么Composition SWC顧名思義就是.C文件的集合,體現在代碼上,就是保存.C文件的文件夾。
二.Port的概念
Port是依附在SWC上的概念,比如配置工具配置SWC后,需要配置這個SWC的Port。
可以這樣理解,如果將SWC看做一個C文件的話,這個C文件當中是需要一些對外的接口用來完成交互用。所以必然在SWC上配置上輸入(R-Port)的或者輸出(P-Port)的Port。SWC之間是如何進行交互的?可以將Port想象成一個全局變量,可以發(fā)現,如果我們?yōu)镾WC1和SWC2之間配置了一個SR的interface的話,SWC1中會有一個函數Rte_Write(),里面會對一個全局變量進行賦值。而另一邊SWC2的里面會有一個Rte_Read()的函數,來讀取這個全局變量。通過這種方式,達到了數據的交互。
Port一般可以分為以下的兩種類型。
1.SR-Port
發(fā)送者/接收者接口定義了一系列的數據元素用于在虛擬功能總線上進行接收和發(fā)送。在代碼層面上SR-Port(Sender-Reciever)主要是進行數據的傳輸。
SR是對一個全局變量的操作,當然如果只涉及SWC內部的傳輸的話,就變成Static變量了。
2.CS-Port
客戶端/服務器接口定義了一系列的操作,這些由包含該接口的供型端口所在的軟件組件來實現,并提供給包含該接口的需型端口所在的軟件組件調用。
CS-Port(Client-Server)是調用另一個SWC中的服務,或者理解成調用另一個函數。CS的則是在函數中調用另一個函數,特別是另一個SWC的函數才會需要經過RTE來調用,這個另一個SWC可以是本ECU內部的,也可以是跨ECU的。不過對于調用方的SWC,跨不跨ECU并沒有什么區(qū)別。
三.Interface的概念
Interface它是一個抽象的概念,是一個無法直接在代碼中對應的概念。如果SWC可以比較準確的對應為.C文件,Interface在配置工具的語境下包含了輸入輸出Port,以及兩個Port之間的連接關系的一個集合。
在工具中,會為一個Interface命名,再將輸入輸出Port連接到這個Interface上,這樣RTE層內部如何實現兩個Port之間的代碼維度的連接,就是工具在生成的了,這個時候內部生成的不管是全局變量抑或是宏定義等等,都會基于這個Interface的元名稱進行擴展。正因此,才會需要在工具層面上具象化Interface,并給他一個命名。總結為一句話就是Port Interface是將兩個Component連接起來的橋梁。
四.Runnable Entity的概念
它是可運行實體,其實就是.C文件內的函數。軟件組件(SWC)的功能就是通過運行實體(Runable Entity)來表現的。
一個SWC可以包含多個Runnable Entity,就是一個.C文件可以包含多個函數,每個函數可以執(zhí)行一個特定的操作。
并且Runnable Entity必須要掛在Task上,就像函數如果只是放在那里沒有被調用的話,也不起作用,總歸是要掛在某個Task上才會被運行
五.VFB的概念
虛擬功能總線(Virtual Function Bus,VFB)是AUTOSAR中的另一個重要概念。虛擬功能總線(VFB)是對AUTOSAR提供的所有通信機制的一種抽象,是所有軟件組件(SWC)進行交互的橋梁。通過虛擬功能總線,軟件組件之間的通訊細節(jié)被抽象出來,軟件組件通過AUTOSAR定義的接口對通訊進行描述,即可最大程度地獨立于具體的通訊機制,實現與其他軟件組件(SWC)或硬件的交互。
通過虛擬功能總線(VFB),無論軟件組件(SWC)使用的是單ECU的內部通信還是ECU間的外部通信,對于應用軟件的設計者來說沒有本質區(qū)別。內部通信與外部通信的區(qū)別只有等到系統(tǒng)配置階段,將軟件組件(SWC)分配到不同的ECU之后,才能體現出來。而在這種情況下,虛擬功能總線(VFB)的真實通信實現可以由運行時環(huán)境和基礎軟件來保證。
在虛擬功能總線(VFB)的幫助下,應用軟件的各個軟件組件不需要關注通信的區(qū)別,從而可以在獨立的情況下設計開發(fā)軟件組件。
六.PortPrototype的概念
AUTOSAR中的應用軟件被組織在稱為 AtomicSwComponentTypes的獨立單元中。 此類AtomicSwComponentType封裝了其功能和行為的實現,并且僅向外界公開了定義良好的連接點,稱為PortPrototype。
PortPrototype可以理解是端口,定義兩個不同Component組件的連接點,用于兩者之間通信。PortPrototype可以是Port提供者(PPortPrototype)或Port的接收者(RPortPrototype)。SwComponentType 的PortPrototype應該用于連接SwConnector,從而在SwComponentPrototype之間建立實際連接文章來源:http://www.zghlxwxcb.cn/news/detail-433951.html
七.概念總結
應用軟件層(Application Software Layer,ASW)包含若干個軟件組件(Software Component,SWC),軟件組件之間通過端口(Port)進行交互。端口之間是通過Interface進行了連接。每個軟件組件可以包含一個或多個運行實體(Runnable Enity,RE),運行實體中封裝了相關控制算法,其可由RTE事件(RTE Event)觸發(fā)。
每個端口雖然定義了軟件組件(SWC)間通信內容及其方向,但是通信內容以及用于交互的操作卻仍不得而知。AUTOSAR中使用端口接口(Port-Interface)來描述端口之間的供需關系。文章來源地址http://www.zghlxwxcb.cn/news/detail-433951.html
到了這里,關于【車載開發(fā)系列】AutoSar中的組件相關知識的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網!