【汽車操作系統】Autosar和商用OS

目錄

什么是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實現了更高層次的抽象和模塊化,增強了系統的可維護性、可擴展性和適應未來變化的能力。


?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/16012.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/16012.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/16012.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

計算機二級考試通關秘籍:全面解析、實戰演練與高效備考策略

計算機二級考試通關秘籍:全面解析、實戰演練與高效備考策略 一、計算機二級考試概覽基本概念 二、科目詳解與復習資料推薦C語言程序設計學習重點資料推薦 Java語言程序設計學習重點資料推薦 MySQL數據庫程序設計學習重點資料推薦 Web技術與應用學習重點資料推薦 三、…

兩種單例模式的區別

文章目錄 看兩個栗子傳統指針版單例模式現代靜態變量版單例模式 分析結論 看兩個栗子 傳統指針版單例模式 class Singleton { private:// 私有化構造函數Singleton() {}// 禁止拷貝構造函數Singleton(const Singleton&) delete;// 禁止拷貝賦值操作Singleton& opera…

自然資源-各級國土空間總體規劃的審查要點及流程總結

自然資源-各級國土空間總體規劃的審查要點及流程總結 國土空間規劃是對一定區域國土空間開發保護在空間和時間上作出的安排,包括總體規劃、詳細規劃和相關專項規劃。 國土空間規劃管理是國土空間規劃中重要的一環。中共中央、國務院發布《關于建立國土空間規劃體系…

LabelMe下載及關鍵點檢測數據標注

本文關鍵點數據集鏈接,提取碼:x1pk 1.LabelMe下載 這部分內容和YOLOv8_seg的標注軟件是一樣的,使用anaconda創建虛擬環境安裝LabelMe,指令如下: conda create -n labelme python=3.6 -y conda activate labelme conda install pyqt conda install pillow pip install la…

朝天椒USB服務器為何脫穎而出,與其它產品有何不同?

在數字化時代,USB服務器作為解決U盾、加密狗、Ukey等USB設備原創連接、集中管理和共享使用問題的有效工具,越來越受到各行各業的重視。在眾多品牌中,朝天椒USB服務器憑借其獨特的技術優勢和市場定位,成功脫穎而出,成為…

python:__set_name__使用

python:__set_name__使用 1 前言 在Python中,我們可以通過__set_name__方法來實現一些特殊的操作。該方法是在定義類的時候被調用,用于設置屬性的名稱。這樣一來,我們就可以在類定義中動態地獲取屬性的名稱,從而更好…

Pytorch深度學習實踐筆記6(b站劉二大人)

🎬個人簡介:一個全棧工程師的升級之路! 📋個人專欄:pytorch深度學習 🎀CSDN主頁 發狂的小花 🌄人生秘訣:學習的本質就是極致重復! 《PyTorch深度學習實踐》完結合集_嗶哩嗶哩_bilibi…

C#記錄日志

1、方法 private void Log(string LogStr) { //Trace.WriteLine(LogStr); StreamWriter sw null; try { LogStr DateTime.Now.ToLocalTime().ToString() "\n" LogStr; sw new StreamWriter("C:\\Text" DateTime.No…

山東大學軟件學院項目實訓-創新實訓-基于大模型的旅游平臺(二十)- JUC(6)

目錄 wait , notify wait vs sleep 正確使用方法 同步保護性暫停 join的源碼 Future 異步生產者/消費者模型 定義 Park & Unpark 原理 wait , notify 小故事小南需要煙才能工作,但它又要占這鎖讓別人無法進來。那么這個時候開一個waitSet相當于就是休…

一文講解——Java多態

目錄 一、什么是多態?二、轉型向上轉型向下轉型 三、方法覆蓋與方法重載四、綁定動態綁定靜態綁定 五、理解多態 一、什么是多態? 多態的詞組字面意思是: 某種事物多種形態。 但是對于我們學習Java 的程序原來說,就不不能簡單這樣…

springboot中線程池的使用

一、概念 線程池就是將多個線程對象放入一個池子里面,例如一個池塘,線程池就是這個池塘,池塘里面的魚就是線程池中的多個線程對象。1. 每一個線程,在一段時間內只能執行一個任務。2. 線程池中的各個線程是可以重復使用的。 二、創…

2024年內外貿一體化融合發展(長沙)交易會 ?辦公文具、禮品工藝品展

2024年內外貿一體化融合發展(長沙)交易會 辦公文具、禮品工藝品展 時間:2024年7月12-14日 地點:湖南國際會展中心(芒果館) 湖南省商廳 關于邀請參加2024內外貿一體化融合發展(長沙&#xf…

Weblogic XML反序列化漏洞 [CVE-2017-10271]

漏洞環境搭建請參考 http://t.csdnimg.cn/i11e2 漏洞原理 Weblogic的wls security組件對外提供webservice服務,wls security組件使用了xmldecoder來解析用戶傳入的xml數據,如果用戶進行xml惡意數據的構造,即可觸發反序列化漏洞 漏洞版本 O…

簡述vue的實現原理

Vue.js 的實現原理可以概括為以下幾個方面: 響應式系統: Vue 的核心是其響應式系統。當 Vue 實例被創建時,它會遍歷 data 對象中的所有屬性,并使用 Object.defineProperty 方法將其轉換為 getter 和 setter。當 data 中的屬性發生…

python:如何創建簡單的流媒體服務器來播放.flv文件

要在Python中創建一個簡單的流媒體服務器來播放FLV(Flash Video)文件,你通常需要一個HTTP服務器,該服務器能夠處理對FLV文件的范圍請求(Range Requests),因為流媒體通常不是一次性下載整個文件&…

CentOS 7.9 郵箱部署——Postfix+Dovecot詳細

PostfixDovecot 文章目錄 PostfixDovecot資源列表基礎環境一、部署DNS二、部署postfix和dovecot2.1、配置postfix2.2、配置dovecot2.3、創建郵件用戶 三、發送郵件測試3.1、windows安裝poxmail3.2、登錄郵箱3.3、發送接收郵件 四、搭建SSL認證加密4.1、生成私鑰4.2、生成公鑰4.…

正則工具類

目錄 1、 * 正則工具類 1.1、 * 提供驗證郵箱、手機號、電話號碼、身份證號碼、數字等方法 1.1.1、 * 驗證固定電話號碼 1.1.2、 * 驗證整數(正整數和負整數) 1.1.3、 * 驗證整數和浮點數(正負整數和正負浮點數)

貪心算法4(c++)

過河的最短時間 題目描述 輸入 在漆黑的夜里,N位旅行者來到了一座狹窄而且沒有護欄的橋邊。如果不借助手電筒的話,大家是無論如何也不敢過橋去的。不幸的是,N個人一共只帶了一只手電筒,而橋窄得只夠讓兩個人同時過,如果…

YOLOv8_pose預測流程-原理解析[關鍵點檢測理論篇]

YOLOv8_seg的網絡結構圖在博客YOLOv8網絡結構介紹_CSDN博客已經更新了,由網絡結構圖可以看到相對于目標檢測網絡,實例分割網絡只是在Head層不相同,如下圖所示,在每個特征層中增加了KeyPoint分支(淺綠色),通過兩個卷積組和一個Conv卷積得到得到通道數為51的特征圖,51表示…

window環境下QT5開發環境的搭建

1、安裝visual Stusio 15 生成工具2012 2、安裝Visual studio Enterprise 2017 3、Visual studio Enterprise 2017安裝完成之后, 修改:選擇桌面調試,如下: 4、打開QTcreator,選項中,配置編譯器&#xff…