BSW架構
上一篇文章提到了基礎軟件層BSW包含微處理器抽象層(MCAL)、ECU抽象層、服務層以及復雜驅動,而每一層按照功能模塊可以進一步劃分,如下圖所示。
微處理器抽象層MCAL
我們先來看一下微處理器抽象層(MCAL),MCAL是BSW的最低層,它包含一些MCU內部驅動軟件模塊,這些驅動直接訪問MCU內部外設(ADC、WatchDog、General Purpose Timer等)。MCAL這一層依賴于MCU,但是它的上面一層(ECU抽象層)則可以獨立于具體的MCU。
MCAL主要包含下面這些模塊:
- 微控制器驅動
MCU內部外設驅動,比如看門狗、通用功能定時器等。 - 通信接口驅動
ECU板上通信接口驅動(如SPI, I2C)以及整車通信接口驅動(CAN, 以太網等) - 非易失性存儲器(NVM)驅動
片上NVM驅動(內部Flash、EEPROM等),片外NVM驅動(外部Flash、EEPROM等) - I/O驅動
模擬和數字I/O驅動(ADC、PWM、DIO等) - 加密模塊驅動
片上加密模塊驅動,如SHE、HSM
ECU抽象層
ECU的全稱是Eclectronic Control Unit,直譯為電子控制單元,也稱為行車電腦。通俗來講就是MCU加上一些外圍必要的電路組成的一個系統,可以對各種輸入信號(傳感器信號、車載網絡信號等)進行加工處理,然后進行信號輸出(控制執行器的信號、車載網絡信號等)的一個專用嵌入式系統。
ECU抽象層對MCAL所包含的驅動進行封裝,同時它還包含片外設備(板上設備)的驅動。ECU抽象層提供訪問各種設備的接口,不管這些設備的位置在哪里(是MCU內部還是MCU外部),也不管它們是如何與MCU進行連接的(端口還是串行通信)。它的任務是讓上層軟件(服務層)獨立于ECU硬件設備。
片外設備顧名思義是位于MCU外部的設備,或者說是ECU的板上設備。這些設備包括但不限于:
- 外部EEPROM
- 外部看門狗
- 外部FLASH
片外設備的驅動被稱為外部驅動,它們位于ECU抽象層,它們通過MCAL層的驅動訪問這些外部設備。一個例子是,具有SPI接口的外部EEPROM的驅動程序,通過MCAL的SPI總線驅動對外部EEPROM進行訪問。
ECU抽象層通常包含一系列接口,這些接口是對位于它們下方的模塊的抽象。它提供訪問特定類型設備的通用API,不關心該類型設備存在的個數以及具體的硬件實現。接口層只負責數據的傳遞,不改變數據的內容。比如,一個CAN通信系統的接口提供訪問CAN網絡的API,調用者不必關心CAN控制器的個數,也不用關心CAN控制器的位置是在MCU內部還是MCU外部。
復雜驅動CDD
復雜驅動跨越MCAL、ECU抽象層和服務層,是AUTOSAR標準之外的基礎軟件模塊。一般是通過特定中斷或復雜的MCU外設,用來實現傳感器處理和執行器驅動,比如電機控制、電磁閥控制、位置檢測等。
復雜驅動的任務是實現特殊功能或者對時序有較高要求的功能,用以處理復雜的傳感器和執行器。復雜驅動高度依賴于MCU、ECU和應用軟件。
服務層
服務層是BSW的最高層,為上層的應用軟件提供各種服務:
-
微控制器
+關注
關注
48文章
7596瀏覽量
151742 -
微處理器
+關注
關注
11文章
2272瀏覽量
82611 -
EEPROM
+關注
關注
9文章
1027瀏覽量
81781 -
AUTOSAR
+關注
關注
10文章
363瀏覽量
21655 -
BSW
+關注
關注
0文章
15瀏覽量
3520
發布評論請先 登錄
相關推薦
評論