日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

汽车电子学习笔记—AutoSAR之基础软件层(BSW)

發布時間:2024/3/12 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 汽车电子学习笔记—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)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。