汽车电子学习笔记---AutoSAR概述
汽車電子學習筆記—AutoSAR概述
- 1、概述
Automotive Open System ARchitecture,汽車開放系統(tǒng)架構(gòu)
-
2、架構(gòu)
1)架構(gòu)圖
2)詳細描述 -
應(yīng)用軟件層(AppL)
由一個個SWC組成的,如車窗,鎖,車燈等,每個SWC咱們可以理解為一個.c文件
-
實時運行環(huán)境(RTE)
1)可以理解成一個中間層,負責各模塊中轉(zhuǎn)調(diào)用和管理,將BSW和SWC做隔絕,使SWC與ECU的映射無關(guān)
2)將一個SWC的信息通過RTE連接到其他SWC或者BSW上
4)在Vector的工具鏈中,RTE是自動生成的
5)作用:- 提供 跨ECU / ECU內(nèi)部 的通信管理,實現(xiàn)SWC之間的通信
- 提供 對runnable的管理功能(觸發(fā)、喚醒等,簡單說就是runnable需要映射到Task上運行嘛,而這個映射就是通過RTE具體實現(xiàn)的)
- RTE就是VFB(虛擬功能總線)的具體實現(xiàn)
- 配置OS的一部分(tasks, events, alarms)
- 抽象了OS,防止SWC直接訪問OS和BSW
-
基礎(chǔ)軟件層(BSW)
a)硬件抽象層(MCAL)
硬件抽象層又叫MCAL,就是將芯片的寄存器操作都封裝成一個AutoSAR規(guī)定的統(tǒng)一的庫Api,或者說將芯片上的功能都封裝稱一個一個的AutoSAR規(guī)定定義的API函數(shù),供上層調(diào)用。- 目的:使上層軟件與微處理器型號無關(guān)
- 功能:包含MCU中內(nèi)部外設(shè)的驅(qū)動和使用MCU內(nèi)存映射的外部設(shè)備的驅(qū)動
b)ECU抽象層
對ECU上包括主芯片在內(nèi)的所有設(shè)備的封裝,這些設(shè)備其實也是要通過主芯片控制的,如外置存儲,外置看門狗等,需要和主芯片相連接,由主芯片的接口去配置它。因此,其底層還是需要MCAL的支持- 目的:使上層軟件與ECU硬件設(shè)計無關(guān)
- 功能:包含ECU板上外部設(shè)備的驅(qū)動和內(nèi)部設(shè)備與外部設(shè)備的接口(I/O)
c)服務(wù)層
將所有與硬件相關(guān)的功能都抽象成一個具體應(yīng)用服務(wù),如通信,這里就將CAN、I2C和串口等一系列的通信統(tǒng)一抽象稱COM通信,應(yīng)用層可以無需知道該通信具體是走哪種通信方式- 目的:提供給應(yīng)用程序可用的服務(wù)
- 功能:服務(wù)層里是包含操作系統(tǒng)的功能、車輛網(wǎng)絡(luò)通信管理服務(wù)、存儲器服務(wù)(NVRAM管理)、診斷服務(wù)(包括UDS通信、錯誤存儲和故障處理)、ECU狀態(tài)管理,模式管理、邏輯和時間程序流監(jiān)控(Wdg管理器)、密碼服務(wù)(密碼服務(wù)管理)、調(diào)度管理(Schedule
Manager) 功能劃分:系統(tǒng)服務(wù)、存儲器服務(wù)、通信服務(wù)
d)復雜驅(qū)動
又稱為CDD,主要工作是將AutoSAR未定義的一些功能封裝起來,給應(yīng)用層提供接口來調(diào)用這些功能- 目的:提供復雜傳感器和執(zhí)行器的驅(qū)動
- 功能:重要的應(yīng)用模塊可以直接訪問硬件資源,例如: 噴油量控制, 胎壓監(jiān)測
3)詳細架構(gòu)圖
4)工具
DaVinci Developer: 主要用來設(shè)計AppL的程序架構(gòu)
DaVinci Configurator pro: 主要用來配置BSW和自動生成RTE的
5)接口類型
- Send/Receiver(S/R)接口:傳輸數(shù)據(jù)。通過RTE傳輸數(shù)據(jù),并且通過RTE管理數(shù)據(jù)的傳輸,避免數(shù)據(jù)出問題
- Client/Server(C/S)接口: 提供操作。就是Server提供函數(shù)供Client調(diào)用,可以同步或異步調(diào)用
6)SWC
應(yīng)用層的SWC:燈,門鎖,車窗…
BSW中的SWC:IO硬件抽象層(IoHwAb)、復雜驅(qū)動(Cdd)
7)Runnable
- Runnable就是SWC中的入口函數(shù),DaVinci軟件生成的時候,Runnable是空函數(shù),需要手動添加代碼來實現(xiàn)其實際的功能
- Runnable實際是被task調(diào)用,具體可以在rte.c中查看到各個swc的runnable,被不同時間的task調(diào)用
-
一個SWC可以配置多個不同時間的runnable
不同SWC之間的通信,無論是ECU內(nèi)部還是ECU之間,都不會遇到數(shù)據(jù)一致性問題,因為RTE會負責保證數(shù)據(jù)一致性。
而同一個SWC,運行在不同task的runnable可能存在數(shù)據(jù)不一致性問題,解決辦法:
a)專用區(qū)域(Exclusive Areas )
b)內(nèi)部變量(Inter-runnable variables)
-
Runnables的觸發(fā)條件
a)RTE給runnables提供觸發(fā)條件,也就是runnable在設(shè)計的時候,需要有觸發(fā)條件,不然無法運行
b)AutoSAR中主要規(guī)定了以下一些觸發(fā)條件(DaVinci軟件中的配置):初始化事件:初始化自動觸發(fā)
定時器事件:給一個周期定時器,時間到了就觸發(fā)
接收數(shù)據(jù)事件(S/R):Receiver Port 一旦收到數(shù)據(jù),就觸發(fā)
接收數(shù)據(jù)錯誤事件(S/R)
數(shù)據(jù)發(fā)送完成事件(S/R):Send Port 發(fā)送完成,就觸發(fā)
操作調(diào)用事件(C/S):當調(diào)用到了該函數(shù)的時候
異步服務(wù)返回事件(C/S)
模式切換事件
模式切換應(yīng)答事件c)DaVinci軟件中的配置項
總結(jié)
以上是生活随笔為你收集整理的汽车电子学习笔记---AutoSAR概述的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: google之admob
- 下一篇: 文具行业调研报告 - 市场现状分析与发展