汽车电子学习笔记—AutoSAR之基础软件层(BSW)
汽車電子學習筆記—AutoSAR之基礎軟件層(BSW)
- 1、概述
如之前autosar概述筆記中說明,BSW按照層級結構可以分為服務層、ECU抽象層、硬件抽象層(MCAL)和復雜驅動層(CDD)。
- 硬件抽象層(MCAL)
主要包含了相關的Driver,通過該層次可以訪問MCU的資源,比如訪問整個芯片的CAN,LIN等控制器,配置MCU的Port腳,配置MCU的時鐘等。主要包含下面的內容: MCU,PORT,DIO,ADC,SPI,CAN,LIN,FLEXRAY,PWM,ICU,OCU等
- ECU抽象層
底層驅動的抽象,同時它也是外設的驅動,它提供了可以訪問外設和底層MCU的接口,該層次主要包含了下面的內容:CanIf,Can Transceiver Driver, MemIf, Fee, Ea, External Flash/EEPROM Driver, WdgIf等
- 服務層
包含操作系統的功能、車輛網絡通信管理服務、存儲器服務(NVRAM管理)、診斷服務(包括UDS通信、錯誤存儲和故障處理)、ECU狀態管理,模式管理、邏輯和時間程序流監控(Wdg管理器)、密碼服務(密碼服務管理)、調度管理(Schedule Manager)
- 復雜驅動
跨越于微控制器硬件層和RTE之間,其主要任務是整合具有特殊目的且不能用MCAL進行配置的非標準功能模塊,將該部分功能嵌入到AUTOSAR基礎軟件層中,從而實現處理復雜傳感器以及執行器的特定功能和時間要求。復雜驅動程序跟單片機和ECU硬件緊密相關。其上層程序接口是根據AUTOSAR指定并且實施的;其下層程序接口受標準接口程序的限制。復雜驅動可以使用特定的中斷或是復雜的微控制器外設(如PCP/TPU)來直接訪問微控制器,從而實現對復雜傳感器的評估和執行器的控制,比如噴油控制,電磁閥控制,增量位置檢測等
- 2、詳細描述
- I/O功能
功能包括了DIO(數字輸入輸出)、ADC和PWM等
- 1)I/O Signal Interface: 對輸入數據的初步處理,比如輸入去抖等
- 2)Driver for ext. ADC ASIC: 外置ADC的驅動,比如當有外部ADC采樣芯片的時候,通過SPI通信,將數據傳入主芯片
- 3)Driver for ext. I/O ASIC: 同上,只不過這里是I/O
- 4)SPI Handler: SPI處理驅動,將硬件中的SPI封裝成API供上層調用
- 5)ADC PWM DIO: MCAL中的驅動,將硬件中的ADC、PWM、DIO分別封裝成API供上層調用
- 6)SPI ADC PWM DIO(Hardware): 就是指芯片中的這些功能模塊
實際例子流程
Adc_ReadGroup:是MCAL對上層開放的API函數,Read到的是ADC采樣值(比如12位精度最大就是4095)
Get_SensorValue:IoHwAb中的一個服務函數,主要作用就是通過ADC采樣值計算出實際的傳感器阻值(多少歐姆)。Sensor SWC和IoHwAb是通過C/S接口相連,可以通過Rte_Call_Get_(port)_SensorValue調用
Send_Temperature:將歐姆值計算成實際的溫度值,再傳遞給App SWC
- Communication功能
- 1)COM:主要就起了一個信號接口和網關的作用。從應用層傳下來數據首先就進入這里,應用層無需關心收發的數據是通過什么總線傳輸的,只需要將它傳輸給COM即可
- 2)PDU Router: PDU——Protocol Data Unit,協議數據單元。這個模塊的功能就是將COM下發的信號數據分配到相應的協議總線上去;或者將不同的協議變成同一信號上傳給COM
- 3)IPDU Mux:用于解析一些特殊的協議,比如CAN FD或者用戶自定義的一些協議。就是起了一個統一CAN ID,不同信號Layout的作用
- 4)CAN Tp:分包數據傳輸與錯誤檢測,一般來說只有在診斷的時候才會使用
- 5)CAN Interface:主要配置收發隊列;組幀(FlexRay);管理時間觸發總線的調度表(LIN, FlexRay)
- 6)CAN Driver:MCAL中對主芯片上CAN模塊的驅動封裝
- 7)Trcv Driver:Transceiver driver,收發器驅動
通信流程:
-
發送流程
- 1)應用層Send一個數據進COM
- 2)COM寫信號進PDU Buffer中
- 3)PDU被PDU Router立刻發送或按周期發送(每個PDU都有一個獨立的ID),之后PDU Router辨認總線種類,并把PDU發向不同的下級模塊
- 4)Interface根據不同的通道,把報文寫入不同的隊列
- 5)Driver根據報文的優先級立刻發送報文
-
接收流程
- 1)硬件接收報文
- 2)由Driver發出Rx中斷(函數),之后通過RxIndication,數據被傳遞到Interface
- 3)傳遞到PDU Router
- 4)傳遞到COM(如果SWCs使用Data ReceptionTrigger,就通知RTE;否則暫存到Buffer中)
- 5)信號被RTE讀取,然后應用層讀取
- Memory功能
1)ROM存儲方式
- EEPROM:可以按位操作
- FLASH仿EEPROM:相同大小容量下Flash相對便宜一些,但是只能按塊擦寫,不能按位擦寫。想要讓Flash做到按位擦寫,就需要先將Flash原來的數據備份一份,再修改其中想要修改的位,再按塊擦除,最后將改寫好的數據再燒錄回原塊中
- 而存儲可以是片內的,也可以是片外的
2)詳細說明
-
NVRAM Manager:
a.應用層訪問非易失性數據的唯一接口,提供非易失數據的管理服務
b.NVM模塊上層是RTE,下層是對接Flash Driver或者EEPROM Driver的接口
c.NVM里面的數據讀寫有兩種同步機制:Implicit synchronization(隱式同步)和Explicit synchronization(顯式同步) -
Memory Abstraction Interface:主要作用是將需要讀寫的信息解耦,分別分派給EEPROM或FLASH
-
EEPROM Abstraction(EA):EEPROM的抽象層,主要作用就是進一步封裝片外或片內EEPROM驅動,給上層提供統一的API接口
-
Flash EEPROM Emulation: 同上,此為Flash
-
External E2 Drv:ECU抽象層中片外EEPROM的驅動,下面是SPI的驅動,由于片外的EEPROM要通過SPI通信才能訪問。因此,片外EEPROM的驅動要放到ECU抽象層中
-
SPI Handler Drv:MCAL中對片上SPI的驅動
-
SPI EEPROM FLASH:片內的SPI、EEPROM和FLASH功能模塊
-
External E2 Memory:片外EEPROM,就是板載的EEPROM,需要通過SPI訪問
流程:
- 片內存儲
- 片外存儲
- Watchdog功能
- WdgM: 為應用層提供安全相關的服務
- WdgIf: 看門狗接口,主要功能是觸發硬件看門狗
- Wdg Drv: Mcal中看門狗的驅動
- Diagnostics功能
一般故障處理過程,如ECU故障發生了,要將故障的內容記錄到EEP或者Flash中,communication模塊把故障信息傳輸到CAN或者LIN上,故障發生后需要對故障功能做出應急處理
- FIM: Function Inhibition Manager,功能禁止管理,當一些error出現的時候,禁止一些功能。比如當檢測到控制器過電流的時候,關閉MOS或IGBT,防止炸管
- DEM:Diagnostic Event Manager,診斷事件管理。就是用來記錄和存儲診斷事件的,下面連接NVRAM Manager,就是將這些診斷事件記錄到EEP或者Flash中
- DCM:Diagnostic Communication Manager,診斷通信管理。實現診斷通信協議,我們通常說的UDS協議(即ISO14229,是Unified Diagnostic Services,統一診斷服務,是診斷服務的規范化標準
流程:
- 對故障做出快速響應的功能:
首先由應用層傳輸數據到DEM,DEM判斷出是哪個故障,之后發送給FIM;FIM立即做出判斷,通過回調函數通知SWC或者輪詢的方式禁止SW - 將故障記錄的功能:
故障由應用層傳輸數據到DEM,DEM一邊是發送給FIM,另一邊是發送給NVRAM Manager,然后將故障記錄到EEP或者Flash中,方便以后維修診斷
- AutoSAR OS
OS可以配置為四個等級:SC1、SC2、SC3、SC4 (SC:Scalability Classes,可伸縮的類型)
- SC1: 包含標準OSEK OS標準,除此之外還定義了標準的計數器接口和輪詢式的調度表
- SC2= SC1 + 時間保護。也就是說,當一個任務執行時間過長,它會被停止;SC2同時還定義了時間監控。防止因為一個任務時間過長而影響其他任務的實時性
- SC3: SC3 = SC1 + 內存保護。針對未經授權訪問安全相關軟件組件的內存區域的防護
- SC4: SC4 = SC1 + 時間保護 + 內存保護 = SC2 | SC3
- Mode Management功能
模式管理,可以理解為對狀態的管理(比如ECU的上電、下電和休眠;CAN通訊的開啟和關閉都是狀態)。主要管理的對象有ECU、BSW和COM(通信中又可以細分很多)
-
ECU State Manager(EcuM)
ECU狀態機,主要作用是管理的是ECU的上下電功能(還包括休眠、重啟等)。
具體有以下四個功能:- 1)單片機初始化時,初始化OS所需的BSW模塊
- 2)為單片機的休眠(Sleep)模式和喚醒(wake up)模式做準備
- 3)執行關機命令和重啟命令
- 4)通過喚醒驗證協議驗證已發生的喚醒
-
Basic Software Mode Manager(BswM):
主要作用是定義一系列規則。一旦滿足規則,就執行相應的動作。主要有Communication Control、Ecu State Handing和Module Initialization -
Communication Manager(ComM):主要功能是管理通信的啟用和關閉
-
Network Management(Nm If, Bus NM):主要功能是保持總線喚醒和協調總線關閉
-
Bus State Manager(Bus SM):切換Bus的狀態,比如CAN SM是切換該CAN的啟動和關閉(注意把CAN和COM區分開,COM更高一層,COM不光包含CAN)
總結
以上是生活随笔為你收集整理的汽车电子学习笔记—AutoSAR之基础软件层(BSW)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: kali配置网络教程
- 下一篇: SkeyeVSS+SkeyeARS水库水