AUTOSAR是什么
AUTOSAR的全稱是AUTomotive Open System Architecture,直譯為汽車開放系統(tǒng)架構(gòu),是由全球汽車制造商、零部件供應(yīng)商及其他電子、半導(dǎo)體和軟件系統(tǒng)公司聯(lián)合建立,致力于為汽車工業(yè)開發(fā)一個(gè)開放的、標(biāo)準(zhǔn)化的軟件架構(gòu)。簡(jiǎn)單來說,AUTOSAR是一種開放的軟件架構(gòu),需要汽車制造商、零部件供應(yīng)商、芯片供應(yīng)商及軟件公司共同合作來實(shí)現(xiàn)該軟件架構(gòu)。
AUTOSAR目前分為兩種:Classic Platform AUTOSAR和Adaptive Platform AUTOSAR,也稱為CP和AP。通常我們提到的AUTOSAR一般指Classic AUTOSAR,它是用在眾多汽車ECU上的AUTOSAR架構(gòu)。而Adaptive AUTOSAR是隨著近些年汽車信息娛樂系統(tǒng)的發(fā)展,在帶有高級(jí)操作系統(tǒng)(Linux或QNX)的車載Soc上使用的一種AUTOSAR架構(gòu)。本文談?wù)摰氖荂lassic AUTOSAR,因此下面提到的AUTOSAR均指Classic AUTOSAR。
為什么使用AUTOSAR
那么問題來了,為什么要使用AUTOSAR這種軟件架構(gòu),或者說使用AUTOSAR能帶來哪些好處?
在說明AUTOSAR的優(yōu)勢(shì)之前,我們先來看一下使用AUTOSAR之前的軟件開發(fā)現(xiàn)狀。
軟硬件耦合
傳統(tǒng)的汽車ECU開發(fā),一般是由一個(gè)經(jīng)驗(yàn)比較豐富的軟件架構(gòu)師來搭建一個(gè)項(xiàng)目的軟件架構(gòu)。做的比較好的軟件架構(gòu)可能會(huì)考慮軟件分層,比如驅(qū)動(dòng)層、服務(wù)層、應(yīng)用層等,做的不好的軟件架構(gòu),軟件層級(jí)可能就沒有那么分明,在應(yīng)用層甚至直接會(huì)嵌入硬件驅(qū)動(dòng)相關(guān)的代碼。
多人同時(shí)開發(fā)效率低下
在AUTOSAR之前,ECU軟件開發(fā)一般按照功能模塊進(jìn)行分工。不同模塊之間的數(shù)據(jù)交互需要負(fù)責(zé)相應(yīng)模塊的工程師提前定義好接口,并在各自的模塊開發(fā)完成后進(jìn)行聯(lián)合調(diào)試,調(diào)試過程中可能會(huì)發(fā)現(xiàn)定義接口時(shí)沒有考慮到的一些問題,此時(shí)需要重新設(shè)計(jì)接口并進(jìn)行再一次的聯(lián)合調(diào)試。
軟件復(fù)用性低
由于傳統(tǒng)的ECU 軟件在開發(fā)時(shí)沒有清晰的層級(jí)劃分,軟硬件之間以及不同的功能模塊之間耦合性較大,由于MCU選型不一樣或者不同汽車主機(jī)廠的項(xiàng)目需求有差異,在把一套已經(jīng)開發(fā)完成的軟件移植到另一個(gè)項(xiàng)目時(shí),會(huì)遇到比較大的困難。
在使用AUTOSAR之后會(huì)有哪些改變呢?
軟硬件隔離
下圖的左側(cè)是在使用AUTOSAR之前的狀態(tài),可以看到軟硬件之間的耦合性是很大的。右側(cè)是使用AUTOSAR之后的狀態(tài),軟硬件是被分隔開來的。如果更換MCU,只需要變更AUTOSAR架構(gòu)中的一部分即可(BSW,即基礎(chǔ)軟件),而處于上層的應(yīng)用軟件是可以直接復(fù)用的。
提高團(tuán)隊(duì)開發(fā)效率
AUTOSAR對(duì)不同模塊之間的數(shù)據(jù)交互接口進(jìn)行了統(tǒng)一定義(RTE),每個(gè)模塊只需要按照接口標(biāo)準(zhǔn)定義去開發(fā),當(dāng)開發(fā)完成后可以直接進(jìn)行聯(lián)合調(diào)試,因?yàn)榻涌诙x出現(xiàn)問題的概率是很低的。
軟件復(fù)用性程度提高
由于軟硬件之間進(jìn)行了良好的隔離,以及模塊之間的通信接口也是按標(biāo)準(zhǔn)開發(fā)的。一個(gè)開發(fā)好的軟件可以直接根據(jù)新項(xiàng)目的需求取用相應(yīng)的模塊,移植到另一個(gè)項(xiàng)目上。由于上層的應(yīng)用軟件不會(huì)涉及具體的硬件,即使更換MCU應(yīng)用層也無需做相應(yīng)的更改。
介紹完了AUTOSAR的好處,一起來看一下AUTOSAR的具體架構(gòu)。
AUTOSAR的具體架構(gòu)
下圖展示了AUTOSAR比較High Level的三個(gè)大的層級(jí):應(yīng)用軟件層、RTE和基礎(chǔ)軟件層。應(yīng)用軟件層包含了汽車主機(jī)廠要求的和功能相關(guān)的軟件,RTE是應(yīng)用層不同模塊之間以及應(yīng)用層和基礎(chǔ)軟件層之間進(jìn)行交互的橋梁,基礎(chǔ)軟件層則包含MCU及其外圍設(shè)備驅(qū)動(dòng)、硬件抽象層以及為上層應(yīng)用提供接口服務(wù)的服務(wù)層。
而基礎(chǔ)軟件層(BSW)可以再進(jìn)一步劃分,如下圖的微處理器抽象層(MCAL)、ECU抽象層、服務(wù)層以及復(fù)雜驅(qū)動(dòng)。
MCAL其實(shí)就是MCU的驅(qū)動(dòng)軟件,對(duì)每個(gè)外設(shè)模塊的操作進(jìn)行了寄存器操作的封裝,比如SPI的初始化只需要調(diào)用一個(gè)初始化函數(shù)即可,不用關(guān)心函數(shù)內(nèi)部是怎么實(shí)現(xiàn)的。
ECU抽象層相比MCAL多了一些板上硬件資源的驅(qū)動(dòng),比如外部看門狗、片外EEPROM或FLASH等,如果要使用這些硬件資源直接調(diào)用ECU抽象層的接口即可。
服務(wù)層是進(jìn)一步的封裝和抽象,一般包括OS、電源狀態(tài)管理、整車網(wǎng)絡(luò)通信、診斷服務(wù)、存儲(chǔ)服務(wù)等。
復(fù)雜驅(qū)動(dòng)主要包含一些不在AUTOSAR標(biāo)準(zhǔn)規(guī)范里的一些硬件設(shè)備的驅(qū)動(dòng),比如電機(jī)驅(qū)動(dòng)、一些比較復(fù)雜的傳感器驅(qū)動(dòng)等。
以上是對(duì)AUTOSAR架構(gòu)的一個(gè)大體的介紹,針對(duì)每一層都可以展開進(jìn)行詳細(xì)的介紹。
-
看門狗
+關(guān)注
關(guān)注
10文章
562瀏覽量
70813 -
EEPROM
+關(guān)注
關(guān)注
9文章
1020瀏覽量
81613 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
362瀏覽量
21591 -
汽車ECU測(cè)試
+關(guān)注
關(guān)注
3文章
7瀏覽量
8307 -
MCU芯片
+關(guān)注
關(guān)注
3文章
252瀏覽量
11470
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論