目錄
什么是AUTOSAR?
CP AUTOSAR架構
CAN通信
AP AUTOSAR
背景
CP&AP
開發方面的不同:
WRLinux介紹
QNX介紹
什么是AUTOSAR?
????????隨著汽車功能越來越多,導致ECU的數量越來越多。1993年的時候,奧迪A8才只有5個ECU現在典型的現代汽車上有超過50個ECU,有的車甚至有150個ECU。但是ECU可能是不同的供應商提供的,各廠家的標準、軟件架構可能不同,OEM車廠要讓這些ECU之間正常通信,是一件復雜和困難的事。供應商軟件開發的工作量也很大,版本眾多維護起來非常困難。在ECU中添加新功能,或者把ECU-A的功能移植到ECU-B中也不是一件簡單的事。
????????AUTOSAR,全稱Automotive Open SystemArchitecture,中文是“汽車開放系統架構”但它首先是一個組織,注意AUTOSAR不能寫作AutoSAR,否則Open的含義就沒有了,標志也用紅色圓圈強調了開放的理念。
????????2003年,9家公司成立了AUTOSAR。截至2023年11月,已有350多家公司、機構加入,包括汽車制造商、部件供應商、電子和軟件公司等。
CP AUTOSAR架構
????????傳統ECU開發就相當于一個人,既要吃飯(軟件)又要做飯(硬件),可能還要洗碗(硬件,釋放內存),效率就比較低。而AUTOSAR像是一個食堂,硬件層就是食堂做菜師傅、鍋碗瓢盆和食材,應用層相當于要吃飯的學生,中間的RTE層就相當于打菜的阿姨。學生(軟件開發者)不需要關注食材(硬件,數據)是怎么洗凈切好,怎么放到鍋碗瓢盆(硬件,存儲)中做熟,只需要和打菜阿姨(RTE上接口)說一下(通信)要什么菜(數據包),阿姨就會打給你(提供數據),如果沒有菜了,阿姨就會喊(通過RTE下接口)做菜的師傅(硬件),判斷還有沒有菜(提供相關數據),如果沒有就要趕緊做菜(執行某個操作),或者告訴學生沒有菜了(硬件報錯,硬件損壞,兼容性問題等)
應用層:AppL或ASWL-ApplicationSoftware Layer,實現具體應用功能一個App包含多個軟件組件(SWC,Software Component)。
Service服務層:給應用層提供后臺服務,如存儲管理、網絡管理等。
ECU抽象層:ECUAL-ECUAbstraction Layer,標準化硬件的基礎功能和接口,控制網關報文轉發、存儲器讀寫等。
硬件抽象層:MCAL-MicrocontrollerAbstraction Layer,硬件相關的驅動軟件。
復雜驅動:CDD-ComplexDevice Driver,承接復雜的驅動,接口直接暴露給RTE。
硬件層:也稱微控制器層,即控制器的硬件部分
官方CP AUTOSAR架構圖
最下層
可以通過配置生成
,無需寫代碼,減少出現低級錯誤。
靜態配置與代碼生成
配置工具與靜態代碼生成:AUTOSAR工具鏈允許開發者通過圖形化或XML配置文件來定義軟件組件、ECU資源、通信接口等,隨后自動生成對應的C代碼。這確保了軟件結構的標準化和代碼的一致性,同時使得整個系統的行為在編譯前即可被完全預測。
靜態內存分配:所有任務、緩沖區、消息隊列等所需的內存均在系統啟動前靜態分配完畢,避免了運行時的動態內存分配,提高了系統的確定性和效率。
任務管理與調度
周期性任務與優先級:每個任務根據其功能重要性和時間約束被賦予固定的執行周期和優先級。RTOS保證高優先級任務能夠優先執行,并通過時間觸發或事件觸發機制確保周期性任務按時執行,如每5ms執行一次的控制循環。
任務棧:為每個任務獨立分配棧空間,防止棧溢出導致的系統崩潰,同時確保任務間的數據隔離。
中斷管理
CAN硬件中斷:通過RTOS,CAN總線的硬件中斷被高效地管理,確保數據的實時傳輸和處理。中斷服務例程(ISR)快速響應中斷,完成數據讀取或發送的初步處理,隨后快速返回,減少中斷延遲。
CPU管理與搶占:RTOS監控CPU狀態,管理任務上下文切換。快速中斷(FIQ,Fast Interrupt Request)用于處理需要更快速響應的事件,相比普通中斷(IRQ),FIQ享有更高的優先級和更快的處理路徑。
核心工作與機制
核心功能:RTOS的核心工作包括但不限于任務調度、中斷處理、同步與通信機制(如信號量、互斥鎖)、內存管理和錯誤處理。這些機制共同確保了系統的實時性、穩定性和安全性。
功能隔離與模塊化:通過AUTOSAR的分層架構和接口定義,不同的軟件組件在邏輯上被隔離,促進模塊化開發和測試,同時也便于軟件復用和升級。
CAN通信
收集所有的CAN,分析優先級,由PDUR進行篩選,篩選之后發給CAN interface
LIN總線本質是一個串口
AP AUTOSAR
背景
為適應汽車的發展趨勢(如輔助駕駛、V2X、OTA、遠程診斷、動態部署等),應對汽車E/E系統開發面臨的新的挑戰(高性能處理器的應用,實現ADAS,高帶寬通信,E架構演變等),AUTOSAR組織推出了AUTOSARAdaptive Platform(AP)。簡單說,AP就是為高性能計算提出的解決方案
AP AUTOSAR架構
部署于linux系統上,本質還是屬于中間件。
在Classic中虛擬功能總線VFB為RTE層,在Adaptive中VFB為ARA層,AUTOSARRuntime for Adaptive applications。 ARA層提供通訊管理、執行管理和日志跟蹤等功能組件,并給App層提供API接口。AP構建在POSIXOS上,由不同功能模塊組成,這些模塊屬于服務模塊Service和基礎模塊Foundation。模塊的通信是面向服務(SOA)的,并使用以太網與其它ECU通信。
AP:發展階段,大部分都是C++代碼,注重運算結果,高性能平臺。
CP:應用層面,信號轉服務,注重實時性。
CP&AP
開發方面的不同:
Classic Platform | Adaptive Platform |
基于C語言 面向過程開發 | 基于C++語言 面向對象開發 |
FOA架構(function-oriented architecture ) | SOA架構(service-oriented architecture |
基于信號的靜態配置通信方式 | 基于服務的SOA動態通信方式(SOME/IP、DDS) |
硬件資源的連接關系局限于線束的連接 | 硬件資源的連接關系虛擬化,不局限于通信線束的連接關系(互聯網)服務可根據應用需求動態加載,可通過配置文件動態加載,并進行單獨更新公 |
靜態的服務模塊,模塊和配置在發布前進行靜態編譯連接 | 應用加載到RAM執行 |
從ROM執行代碼 | 每個應用都有直接的虛擬地址空間(支撐MMU) |
基于OSEK操作系統 | 基于POSIX OS(Linux\QNX...)操作系統 |
WRLinux介紹
風河系統公司(Wind River Systems)開發和支持的一個商業版本的Linux操作系統
yocto,偏向于編譯環境,代碼在云端,做板級的適配,不需要安裝工具鏈,一鍵編譯。
不便利:微類核架構
QNX介紹
QNX是一款高性能、高可靠性的實時操作系統(RTOS),專為嵌入式系統設計,由QNX Software Systems(現為黑莓公司的子公司)開發,微內核架構
1)足夠小的內核
微內核不是一個完整的OS,他擁有操作系統中最基本的部分,保證操作系統的內核做到足夠。
1、實現與硬件緊密相關的處理
2、實現一些較基本的功能
3、負責客服端和服務器之間的通信
(2)基于 C/S 模式
將操作系統中最基本的部分放入內核中,把操作系統的絕大部分功能放在微內核外面的一組服務器(進程)中實現。
這些服務器運行在用戶態,客戶與服務器之間借助微內核提供的消息傳遞機制來實現通信。如:
1.用于對進程(線程)進行管理的進程(線程)服務器
2.提供虛擬存儲器管理功能的存儲器服務器
3.提供I/O設備管理的I/O設備管理服務器"機制與策略分離"原理
3)機制:指實現某一功能的具體執行機構策略:在機制的基礎上,借助某些參數和算法來實現該功能的優化,或者達到不同的功能目標。在傳統的OS中,機制通常放在OS的內核較低層,策略放在內核的較高層。而在微內核的OS中,通常將機制放在OS的微內核中。這樣微內核才能夠做的更小。
(4)采用面向對象技術
內核OS實現了更高層次的抽象和模塊化,增強了系統的可維護性、可擴展性和適應未來變化的能力。
?