<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>
"); //-->

博客專(zhuān)欄

EEPW首頁(yè) > 博客 > 詳解AUTOSAR:AUTOSRA軟件架構(理論篇—2)

詳解AUTOSAR:AUTOSRA軟件架構(理論篇—2)

發(fā)布人:美男子玩編程 時(shí)間:2022-09-19 來(lái)源:工程師 發(fā)布文章

AUTOSAR規范主要包括:軟件架構、方法論和應用接口三部分內容。其中,軟件架構是實(shí)現軟硬件分離的關(guān)鍵,它使汽車(chē)嵌入式系統控制軟件開(kāi)發(fā)者擺脫了以往ECU軟件開(kāi)發(fā)與驗證時(shí)對硬件系統的依賴(lài)。


在A(yíng)UTOSAR軟件架構中,汽車(chē)嵌入式系統軟件自上而下分別為:應用軟件層(Application Software Layer,ASW)、運行時(shí)環(huán)境(Runtime Environment,RTE)、基礎軟件層(Basic Software Layer,BSW)和微控制器(Microcontroller)。


為保證上層與下層的無(wú)關(guān)性,通常情況下,每一層只能使用下一層所提供的接口,并向上一層提供相應的接口。如圖下圖所示:


圖片


1


應用軟件層

應用軟件層(Application Software Layer,ASW)包含若干個(gè)軟件組件(Software Component,SWC)(軟件組件在下一篇文章講解),軟件組件間通過(guò)端口(Port)進(jìn)行交互。每個(gè)軟件組件可以包含一個(gè)或者多個(gè)運行實(shí)體(Runnable Entity,RE),運行實(shí)體中封裝了相關(guān)控制算法,其可由RTE事件(RTE Event)觸發(fā)。


2


運行時(shí)環(huán)境

運行時(shí)環(huán)境(Runtime Environment,RTE)作為應用軟件層與基礎軟件層交互的橋梁,為軟硬件分離提供了可能。RTE可以實(shí)現軟件組件間、基礎軟件間以及軟件組件與基礎軟件之間的通信。RTE封裝了基礎軟件層的通信和服務(wù),為應用層軟件組件提供了標準化的基礎軟件和通信接口,使得應用層可以通過(guò)RTE接口函數調用基礎軟件的服務(wù)。


此外,RTE抽象了ECU之間的通信,即RTE通過(guò)使用標準化的接口將其統一為軟件組件之間的通信。由于RTE的實(shí)現與具體ECU相關(guān),所以必須為每個(gè)ECU分別實(shí)現。


3


基礎軟件層

基礎軟件層(Basic Software Layer,BSW)可分為四層即:服務(wù)層(Services Layer)、ECU抽象層(ECU Abstraction Layer)、微控制器抽象層(Microcontroller Abstraction Layer,MCAL)和復雜驅動(dòng)(Complex Drivers),如下圖所示:


圖片

可以將基礎軟件層進(jìn)一步細化,包括:系統服務(wù)( System Services)、存儲器服務(wù)(Memory Services)、通信服務(wù)(Communication Services)等,它們主要用于提供基礎軟件服務(wù),包括標準化的系統功能和功能接口。如下圖所示:


圖片


3.1、服務(wù)層

服務(wù)層(Services Layer)提供了汽車(chē)嵌入式系統軟件常用的一些服務(wù),其可分為系統服務(wù)(System Services)、存儲器服務(wù)(MemoryServices)以及通信服務(wù)(Communication Services)三大部分。


提供包括:網(wǎng)絡(luò )通信管理、存儲管理、ECU模式管理和實(shí)時(shí)操作系統(Real Time Operating System,RTOS)等服務(wù)。除了操作系統外,服務(wù)層的軟件模塊都是與ECU平臺無(wú)關(guān)的。


3.2、ECU抽象層

ECU抽象層(ECU Abstraction Layer)包括板載設備抽象(Onboard Devices Abstraction) 、存儲器硬件抽象(Memory Hardware Abstraction)、通信硬件抽象(Communication Hardware Abstraction)和I/O硬件抽象(Input/Output Hardware Abstraction)。


該層將ECU結構進(jìn)行了抽象,負責提供統一的訪(fǎng)問(wèn)接口,實(shí)現對通信、存儲器或者IO的訪(fǎng)問(wèn),從而不需要考慮這些資源是由微控制器片內提供的,還是由微控制器片外設備提供的。該層與ECU平臺相關(guān),但與微控制器無(wú)關(guān),這種無(wú)關(guān)性正是由微控制器抽象層來(lái)實(shí)現的。


3.3、微控制器抽象層

微控制器抽象層(Microcontroller Abstraction Layer,MCAL)是實(shí)現不同硬件接口統一化的特殊層。通過(guò)微控制器抽象層可將硬件封裝起來(lái),避免上層軟件直接對微控制器的寄存器進(jìn)行操作。


微控制器抽象層包括微控制器驅動(dòng)(Microcontroller Drivers)、存儲器驅動(dòng)(Memory Drivers)、通信驅動(dòng)(Communication Drivers)以及I/O驅動(dòng)(IO Drivers),如下圖所示:


圖片


3.4、復雜驅動(dòng)層

由于對復雜傳感器和執行器進(jìn)行操作的模塊涉及嚴格的時(shí)序問(wèn)題,難以抽象,所以在A(yíng)UTOSAR規范中這部分沒(méi)有被標準化,統稱(chēng)為復雜驅動(dòng)( Complex Drivers)。


*博客內容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀(guān)點(diǎn),如有侵權請聯(lián)系工作人員刪除。



關(guān)鍵詞: AUTOSAR

相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>