1.了解AutoSAR及一些概念
AutoSAR是Automotive Open System Architecture ,汽車開放系統架構。
針對汽車ECU的軟件開發架構。已經是汽車電子軟件開發的標準。
OS服務:Freertos
整車廠(OEM)主要負責應用層算法
一級供應商:生產制造ECU實現ECU相關功能(UDS、XCP、下線檢測等),受到OEM的約束。
二級供應商:芯片廠家等,主要負責芯片硬件和開發方式的推薦,受到一級供應商和整車廠的約束。
工具鏈廠家負責提供開發工具鏈個一級供應商和OEM進行產品開發(如Vector等)。
方法論:開發滿足AutoSar架構的ECU軟件的開發流程。
2.AutoSAR出現的背景
- 汽車電子EE架構(電子電器架構)是指整車電子電器的總布置方案,將車上所有的控制器、傳感器通過總線連接起來。實現整車的功能運算,能力和能量分配。針對電子控制器眾多,每個控制器的供應商軟件標準不一樣,因此實現統一的軟件架構和開發標準,很重要。
- 汽車電子產業鏈合作模式,芯片公司、二級級供應商、一級供應商、主機廠。在這種模式下、主機廠希望自身只需要開發應用層軟件,搭配購買來的開發板和底層軟件,一種成熟標準的軟件架構和開發模式十分重要。
3.AutoSAR的硬件環境
硬件環境:電子控制單元(ECU)由ECU有主控MCU和相關外圍電子電路組成的電控單元
主流MCU:NXP、英飛凌的芯片,通過嵌入式C語言對MCU進行軟件編程。
ECU架構包括對數字輸入信號、模擬輸入信號的判斷分析以及輸出相關驅動信號、通訊信號。
如圖。
下圖是一個微控制器架構
4.AutoSAR優勢
- 開發效率高,代碼可重用率高
- 代碼合作開發容易,維護容易
- 開發周期短
- 代碼質量短,有保障
- 可支持整車OTA
5.主要開發流程
一個標準的AutoSar流程,
第一步:整車廠從需求生成最終的文件(給到每個ECU制造商)
- 首先要列需求,通過三種描述文件描述這些需求:SWC描述文件、系統描述文件、ECU資源文件(Vector的PREEvision);
- 然后將這三個文件導入到系統配置編輯工具中,生成系統配置描述工具。這個就是整車描述文件。
- 最后將系統配置文件導入到系統配置提取工具中,導出每個ECU相應的提取文件,該文件包含每個ECU需要用到的信息,比如通訊矩陣、SWC信息等(給下游供應商)。
第二步,供應商拿到需求后
- EB來配置MCAL驅動,生成arxml導入到Davinci Configuration中生成代碼。
- Davinci Developer是用來配置APP層框架的,導入到Davinci Configurator中生成代碼。
- Davinci Developer生成的arxml還會給一份到應用工程師(導入到MATLAB)然后通過MATLAB自動生成軟件框架,應用工程在里面添加模型代碼。
- 負責上述步驟的EB(驅動)、Davinci Configuration(操作系統)、MATLAB/Simulink(應用層開發)工程師可以同步進行開發(效率快),最終進行集成。
- 開發可以從上到下、也可從下到上,就是說可以在Developer中設計好AppL框架導入到MATLAB做填充,也可以在MATLAB中直接搭建好符合AutoSar規范的代碼,然后導出arxml,在導入到Develop中,自動生成框架。
5.1 SWC描述文件(應用層軟件組件描述文件)
- 描述每個軟件組件需要的資源(比如存儲、CPU時間等)
- SWC直接的接口
- 運行機制
5.2 系統約束描述文件(整車公共資源描述)
- 網絡拓撲
- 通信矩陣
- 總線波特率
- 各種協議
5.3 ECU資源描述文件
描述每個ECU都需要實現什么功能,系統設計者通過該文件將不同功能的SWC分配到對應的ECU中
- 傳感器
- 執行器
- 存儲器
- 引腳分配
6.汽車電子崗位介紹
汽車電子MCU工程師具備能力:
汽車方向測試工程師具備能力
7.AutoSar工具鏈介紹
應用層軟件使用MATLAB建模開發
底層軟件:一般Mcal驅動使用EB tresos工具鏈,協議棧使用Vector Davinci(Developer 負責應用層;Configuration負責除驅動外的基礎軟件層)工具鏈。
工具鏈提供全量的AutoSar架構軟件,
客戶根據自己項目的要求,配置除符合自己項目的軟件。
工程中的靜態代碼是不會改變的
配置代碼根據配置工具根據客戶不同的需求生成的代碼。