AUTOSAR與OSEK的關係
AUTOSAR與OSEK二者都是汽車電子軟體的標準。OSEK/VDX是基於ECU開發的作業系統標準,AUTOSAR基於整體汽車電子開發的功能標準。AUTOSAR中規定的作業系統標準就是基於OSEK/VDX,通信和網絡管理雖然和OSEK有區別,但是是有繼承性的。可以認為,AUTOSAR是基於OSEK/VDX發展出來的,OSEK/VDX被AUTOSAR標準軟體架構所包含。
一、AUTOSAR
AUTOSAR的出現是為了解決汽車電子架構日益增加的ECU單元帶來的複雜系統設計問題,讓汽車電子系統開發更靈活,更有效率。
2003年汽車行業內的幾大巨頭(BMW, Bosch, Continental, DaimlerChrysler, Volkswagen, Siemens VDO)聯合建立了AUTOSAR聯盟,一起開發並建立一套真正的開放的汽車電子電器架構,也就是我們現在所說的AUTOSAR標準或者AUTOSAR架構,我們經常提到的AUTOSAR一般就是指AUTOSAR構架/標準,AUTOSAR的全稱是AUTomotive Open System ARchitecture,隨著多年的發展,越來越多的行業內的公司加入到了AUTOSAR聯盟中,這其中有OEM(汽車整車廠),Tier1(汽車零部件供應商),晶片製造商以及工具製造商,AUTOSAR構架/標準也成為了汽車E/E設計的發展方向。
AUTOSAR架構和標準的目標是:
1. 滿足未來汽車的需求,如可用性和安全性、軟體升級更新、可維護性等
2. 增加軟體的靈活性和可擴展性來實現軟體的集成和整合
3. 實現商用現成的跨產品線的軟體硬體
4. 控制產品和流程的複雜度和風險
5. 優化成本
AUTOSAR架構的主要特點是:
1、模塊化和可配置性
2、標準化接口
3、提出了RTE的概念
4、標準的測試規範
AUTOSAR標準有四個核心內容:
1. ECU軟體構架
2. 軟體組件(software components)
3. 虛擬功能總線(Virtual Functional Bus)
4. AUTOSAR設計方法(Methodology)
二、OSEK
為了解決汽車控制技術通信和網絡發展多元化帶來的軟體移植和不同應用程式的接口協調問題,德國汽車工業界在1993年推出了OSEK體系,定義汽車開放式系統及接口。1994年法國標緻雷諾將汽車分布式運行系統VDX納入OSEK。
在1995年召開的OSEK研討會上,眾多的廠商對OSEK和VDX的認識達成了共識,產生了OSEK/VDX規範(1997年發布)。它主要由四部分組成:作業系統規範(OSEK Operating System,OSEK OS)、通信規範(OSEK Communication , OSEK COM )、網絡管理規範( OSEK Net Management, OSEK NM)和OSEK實現語言(OSEK Implementation Language,OIL)。
此後,各軟體生產廠商都相繼推出了符合OSEK規範的產品。隨著該規範應用的不斷深入,其結構和功能不斷完善和優化,版本也不斷升級和擴展。目前OSEK OS2.2 , OSEK COM2.3 , OSEK NM2.3和OIL2.3已經提交ISO審議,即將成為一個國際標準。
OSEK規範為實現其制定的初衷並滿足汽車控制領域對系統安全性和節省有限資源的特殊要求,制定了系統而全面的作業系統規範。
其特點主要有以下幾個方面:
1. 實時性
2. 可移植性
3. 可擴展性
由上我們可以看出,AUTOSAR與OSEK二者都是汽車電子軟體的標準。OSEK基於ECU開發,AUTOSAR基於整體汽車電子開發。AUTOSAR中規定的作業系統就是OSEK,而通信和網絡管理雖然和OSEK有區別,但思路一樣的。所以認為,AUTOSAR是基於OSEK提出的(但不僅基於OSEK),OSEK被AUTOSAR標準軟體架構包含。
AUTOSAR和OSEK網絡管理比較
一、共同點:
1. 都屬於直接網絡管理。
2. 網絡管理的目的都是協調各節點同步進入休眠及喚醒(主要是休眠)。
3. 都依靠特定的網絡管理CAN報文,每個節點的網絡管理ID都不一樣。
4. 喚醒方法相同,第一個喚醒的節點發送網絡管理幀即同時喚醒其它節點。
二、不同點:
1. 喚醒幀類型不一樣:
網絡喚醒後,OSEK要求節點發出的第一幀必須是Alive類型,不能是Ring, Limphome等。AutoSar只要求是網絡管理幀就行,條件寬鬆。
2. 休眠的同步算法不一樣:
OSEK網絡管理使用令牌環機制,令牌從網絡地址低的節點傳到網絡地址高的節點,如果沒有更高的節點,就傳給最低地址節點。令牌環根據ECU的網絡地址建立。每個ECU都會接受網絡管理消息,只有和目的地址相同的一個節點才會得到令牌。
喚醒後建立邏輯環過程:
1) 控制器喚醒後想參與網絡的節點會先發Alive報文申請加入邏輯環。
2)邏輯環建成後,各節點按順序發Ring報文向後續節點傳遞「令牌」。
同步休眠過程:
1)如果邏輯環中有節點想休眠,就設置Ring報文中的Sleep.Ind指示位。
2)當邏輯環中所有的節點都設置了Sleep.Ind指示位,也意味著任何節點接收到所有其它節點的Sleep.Ind指示位。
3)邏輯環中所有的節點設置Sleep.Ack指示位
4)任何節點接收到所有其它的節點的Sleep.Ack指示位
5)所有節點同步進入等待睡眠狀態
6)tWaitBusSleep時間內沒有收到喚醒時間,所有節點同步進入睡眠狀態。
3) PDU結構不一樣
OSEK網絡幀PDU包括自己地址,目標地址(下一個令牌環目標),命令狀態,用戶選擇數據。而AutoSar網絡幀PDU只包括自己地址,少量控制信息,用戶選擇數據。內容簡單的多。
小結:
1. OSEK同步休眠時刻是所有節點都發送Ring請求休眠幀,且收到其它節點的Ring確認休眠幀。而AutoSar的同步休眠時刻是所有節點都停發NM幀,且不能收到其它節點的NM幀。比較而言,AutoSar要簡單一些。
2. OSEK令牌環中有一個節點異常,其它節點就要重新建立環才能維持正常網絡狀態,策略比較複雜。而AutoSar網絡管理中,一個節點異常時不影響其它節點的網絡狀態。比較而言,AutoSar要簡單一些。
智能汽車不僅僅是當下的熱門,也是未來趨勢所在,作為一個汽車電控工程師,研究、設計、產品,這是工作;但是拆解、分析,形成自己的設計語言,這是興趣。每個階段有不同的收貨,整理一下,記個筆記,給自己烙個印,也分享一下,共勉!
知乎號:風語辰
著作權歸作者所有。轉載需獲得授權,並註明出處。
技術交流群:YasmineMiao(微信)
原創作者社區:18918250345(微信)