汽车电子-AUTOSAR基础简介
AUTOSAR的歷史
AUTOSAR(AUTomotive Open System Architecture),即汽車開放系統架構,由全球汽車制造商、零部件供應商及其他電子、半導體和軟件系統公司建立,目的是為了降低汽車控制軟件的開發風險,提高軟件復用度。AUTOSAR聯盟自2003年成立以來,成員隊伍不斷壯大,基本上涵蓋了世界各大著名整車廠、零部件供應商、半導體公司及軟件工具開發商。近年來也有越來越多的中國企業例如華為、百度、長城汽車等加入聯盟。
Autosar的出現因素
- 汽車電子系統復雜度和代碼量的不斷提升,當前整車控制系統的代碼量都已達到千萬行代碼的級別,其復雜度遠比高端的航空航天要高,只是安全性比他們要低些。
- 軟件的復習用性差,由于軟件依賴于固定的硬件開發,當硬件發生變更時功能往往需要推倒重來,無疑增加重復開發的工作量和周期,這都是血琳琳的投入和成本。
汽車行業里有眾多的整車廠(OEM)和供應商。一般來說,每一家OEM會生產不止一種車型,每一家OEM對不同子系統和零部件會選擇不止一個供應商,每個供應商也會向不止一家OEM供貨。減少開發成本最有效的辦法就是,盡可能讓產品可重復利用,用數量來分攤開發成本。OEM希望可以讓同一套系統和部件用在不同的車型上;同一輛車上來自不同供應商的的各個系統和部件可以相互兼容;而供應商希望開發出來的部件和算法可以通過簡單的軟件調整就供給不同的OEM。
另一方面,各個供應商的開發進度往往是不同步的。人們希望可以在供應商開發的過程中就可以測試該部件能否與整車上的其它系統正確配合。因此需要一種統一的、標準化的系統描述方法。
這便是AUTOSAR的初衷,即通過提升OEM以及供應商之間軟件模塊的可復用性和可互換性來改進對復雜汽車電子電氣架構的管理。
對于此,圈內幾位大佬相約一起討論五百回合最后搞了個Autosar出來,并成為最初的九大核心成員(博世、BMW、大陸、福特、戴姆勒、PSA、通用、豐田和大眾)。
AUTOSAR的基本思想
為此,AUTOSAR需要做到以下幾件事情:
- 對應用軟件與底層軟件之間以及應用軟件之間的接口進行標準化
- 給出一個控制器軟件參考架構
- 規范分布式開發流程中的交換格式
AUTOSAR提出了一個口號,叫做“Cooperate on standards, compete on implementation”。意思就是汽車行業的整車廠和供應商共同合作開發一套汽車電子系統的軟件開發標準,這樣大家就可以專注于功能的開發,而無需顧慮目標硬件平臺。
打個簡單的比方。整車和零部件就好比是電腦和外設的關系,它們之間通過標準的USB接口來連接。無論是聯想的電腦,還是戴爾的電腦,無論是100塊的鼠標,還是1000塊的鼠標,它們都互相可以即插即用。電腦廠家可以專注做自己的電腦,而無需考慮會外接什么樣的鼠標鍵盤;相應的,外設廠可以專注做自己的鼠標鍵盤,而無需考慮會用在什么樣的電腦上。它們之間的接口和交換格式,已經由USB標準規定了。這就是標準化帶來的便利。
AUTOSAR架構分層
在AUTOSAR架構中,系統軟件從上到下分層依次為:應用層(Application Software Layer),運行時環境(Runtime Environment,RTE),基礎軟件層(Basic Software Layer,BSW),微控制器(Microcontroller)。每層之間為保持獨立性,每一層只能調用下一層的接口,并為其上一層提供接口。
應用層(Application)
應用層包含若干軟件組件(Software Component,SWC),SWC封裝了需要實現的具體功能,獨立于微控制器的類型,與底層硬件的獨立性是通過虛擬功能總線(VFB)來實現。而VFB則提供了一種通信機制,具體由RTE和BSW來實現。
SWC由端口(Port)和運行實體(Runnable Entity,RE)組成。
端口(Port)是SWC之間進行通信的接口,通信內容包含數據元素(Data Element,DE)和操作(Operation,OP)。
兩種常用端口:發送-接收端口(Sender-Receiver Interface,S/R)和客戶端-服務器端口(Client-Server,C/S)。
S/R用于數據傳遞,發送方將數據元素(Data Element,DE)發送給一個或者幾個接收方。C/S用于操作(Operation,OP),即函數調用,服務器提供函數,而客戶端用來調用函數,一個函數可以被多個客戶端調用,但是一個客戶端不能調用多個函數。
運行實體(Runnable Entity,RE)是一段可執行代碼,封裝了具體算法。
運行時環境(RTE)
RTE是AUTOSAR中虛擬總線功能(VFB)接口的實現。
基礎軟件層(BSW)
基礎軟件層又分為4個小層,分別是:服務層(Services Layer),ECU抽象層(ECU Abstraction Layer),微控制器抽象層(Microcontroller Abstraction Layer),復雜驅動(Complex Drivers)。
每個小層又可以進行更具體的劃分,如下圖:
基礎軟件層包含如下類型的服務:
(1)輸入/輸出(I/O):對傳感器、執行器和ECU外圍設備的標準化訪問
(2)內存(Memory):對內部/外部(非易失性存儲器)的標準化訪問
(3)加密(Crypto):對內部/外部加密原語的標準化訪問
(4)通信(Communication):車輛網絡系統、車載ECU通信系統和ECU內部軟件的標準化訪問
(5)非車載通信(Off-board Communication):V2X、車內無線網絡系統和非車載ECU通信系統的標準化訪問
(6)系統:提供標準化(包括操作系統,定時器,錯誤存儲器)和ECU特定(ECU狀態管理,看門狗管理)服務和庫函數
服務層(Services Layer)
在BSW層最上層,提供以下服務:
(1)操作系統(OS)
(2)車輛網絡通信和管理服務
(3)內存管理(NVRAM管理)
(4)診斷服務(包括UDS通信,錯誤存儲器和故障處理)
(5)ECU狀態管理,模式管理
(6)邏輯和程序流監控(Wdg管理)
復雜驅動(Complex Drivers)
提供集成特殊功能的可能性,例如設備的驅動,這些驅動有以下特點:
(1)在AUTOSAR中沒有明確規定
(2)對時序要求比較高
(3)用于移植目的
ECU抽象層(ECU Abstraction Layer)
提供訪問外圍設備的API,使更上層的軟件獨立于ECU硬件。
微控制器抽象層(Microcontroller Abstraction Layer)
包含可以直接訪問微控制器和外圍設備的底層驅動。
總結
以上是生活随笔為你收集整理的汽车电子-AUTOSAR基础简介的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java 实心圆_java JFrame
- 下一篇: 用友u8服务器修改ipv4,用友U8-O