詳解AUTOSAR:AUTOSRA軟件架構(gòu)(理論篇—2)
AUTOSAR規(guī)范主要包括:軟件架構(gòu)、方法論和應(yīng)用接口三部分內(nèi)容。其中,軟件架構(gòu)是實(shí)現(xiàn)軟硬件分離的關(guān)鍵,它使汽車嵌入式系統(tǒng)控制軟件開(kāi)發(fā)者擺脫了以往ECU軟件開(kāi)發(fā)與驗(yàn)證時(shí)對(duì)硬件系統(tǒng)的依賴。
在AUTOSAR軟件架構(gòu)中,汽車嵌入式系統(tǒng)軟件自上而下分別為:應(yīng)用軟件層(Application Software Layer,ASW)、運(yùn)行時(shí)環(huán)境(Runtime Environment,RTE)、基礎(chǔ)軟件層(Basic Software Layer,BSW)和微控制器(Microcontroller)。
為保證上層與下層的無(wú)關(guān)性,通常情況下,每一層只能使用下一層所提供的接口,并向上一層提供相應(yīng)的接口。如圖下圖所示:
1
應(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ā)。
2
運(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)。
3
基礎(chǔ)軟件層
基礎(chǔ)軟件層(Basic Software Layer,BSW)可分為四層即:服務(wù)層(Services Layer)、ECU抽象層(ECU Abstraction Layer)、微控制器抽象層(Microcontroller Abstraction Layer,MCAL)和復(fù)雜驅(qū)動(dòng)(Complex Drivers),如下圖所示:
可以將基礎(chǔ)軟件層進(jìn)一步細(xì)化,包括:系統(tǒng)服務(wù)( System Services)、存儲(chǔ)器服務(wù)(Memory Services)、通信服務(wù)(Communication Services)等,它們主要用于提供基礎(chǔ)軟件服務(wù),包括標(biāo)準(zhǔn)化的系統(tǒng)功能和功能接口。如下圖所示:
3.1、服務(wù)層
服務(wù)層(Services Layer)提供了汽車嵌入式系統(tǒng)軟件常用的一些服務(wù),其可分為系統(tǒng)服務(wù)(System Services)、存儲(chǔ)器服務(wù)(MemoryServices)以及通信服務(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)的。
3.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)一的訪問(wèn)接口,實(shí)現(xiàn)對(duì)通信、存儲(chǔ)器或者IO的訪問(wèn),從而不需要考慮這些資源是由微控制器片內(nèi)提供的,還是由微控制器片外設(shè)備提供的。該層與ECU平臺(tái)相關(guān),但與微控制器無(wú)關(guān),這種無(wú)關(guān)性正是由微控制器抽象層來(lái)實(shí)現(xiàn)的。
3.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)(IO Drivers),如下圖所示:
3.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)稱為復(fù)雜驅(qū)動(dòng)( Complex Drivers)。
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。