汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)_第1頁
汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)_第2頁
汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)_第3頁
汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)_第4頁
汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)_第5頁
已閱讀5頁,還剩51頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)汽車電子嵌入式驅(qū)動軟件結(jié)構(gòu)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心主要內(nèi)容主要內(nèi)容 汽車電子軟件體系結(jié)構(gòu)汽車電子軟件體系結(jié)構(gòu) 軟件模塊類型介紹軟件模塊類型介紹 微控制器抽象層微控制器抽象層 ECUECU抽象層及示例抽象層及示例 復(fù)雜驅(qū)動復(fù)雜驅(qū)動電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心 基礎(chǔ)軟件體系結(jié)構(gòu)基本層:基礎(chǔ)軟件體系結(jié)構(gòu)基本層: 汽車電子軟件體系結(jié)構(gòu)汽車電子軟件體系結(jié)構(gòu)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心 基礎(chǔ)軟件體系結(jié)構(gòu)細(xì)化分層:基礎(chǔ)軟件體

2、系結(jié)構(gòu)細(xì)化分層: 汽車電子軟件體系結(jié)構(gòu)汽車電子軟件體系結(jié)構(gòu)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心軟件模塊類型介紹軟件模塊類型介紹l驅(qū)動驅(qū)動(Driver)功能:控制和訪問功能:控制和訪問內(nèi)部內(nèi)部或或外部外部設(shè)備設(shè)備 內(nèi)部設(shè)備:內(nèi)部設(shè)備: 設(shè)備位于微控制器內(nèi)部,如:內(nèi)部EEPROM、內(nèi)部CAN控制器、內(nèi)部ADC 內(nèi)部設(shè)備的驅(qū)動稱為內(nèi)部驅(qū)動,并且驅(qū)動位于微控制器驅(qū)動層 外部設(shè)備:外部設(shè)備: 設(shè)備位于在ECU硬件的微控制器外部,如:外部EEPROM、外部Watchdog、外部Flash 外部設(shè)備的驅(qū)動稱為外部驅(qū)動,并且驅(qū)動位于在ECU抽象層,它通過微控制器驅(qū)動層訪問外部設(shè)備,如

3、:帶SPI接口的外部EEPROM驅(qū)動通過SPIHanderDriver驅(qū)動訪問外部EEPROM電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心軟件模塊類型介紹軟件模塊類型介紹l接口接口(Interface)接口包含的功能是為上層抽象特定設(shè)備的硬件實(shí)現(xiàn)接口包含的功能是為上層抽象特定設(shè)備的硬件實(shí)現(xiàn)提供通用提供通用APIAPI訪問設(shè)備特定類型,不考慮這種設(shè)備訪問設(shè)備特定類型,不考慮這種設(shè)備類型存在的數(shù)量和不同設(shè)備硬件實(shí)現(xiàn)類型存在的數(shù)量和不同設(shè)備硬件實(shí)現(xiàn)接口不改變數(shù)據(jù)內(nèi)容接口不改變數(shù)據(jù)內(nèi)容通常接口的位于通常接口的位于ECUECU抽象層抽象層例如:一個CAN通訊系統(tǒng)接口提供通用API訪問CA

4、N通訊網(wǎng)絡(luò)而不用管ECU上的CAN控制器的數(shù)量和硬件實(shí)現(xiàn)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心軟件模塊類型介紹軟件模塊類型介紹l處理程序處理程序(Handler)處理程序是一個特殊接口,它控制一個或多個訪問處理程序是一個特殊接口,它控制一個或多個訪問程序?qū)σ粋€或多種驅(qū)動程序的并發(fā)、多重和異步方程序?qū)σ粋€或多種驅(qū)動程序的并發(fā)、多重和異步方式的訪問,如:執(zhí)行緩沖、隊(duì)列、仲裁、多路傳輸式的訪問,如:執(zhí)行緩沖、隊(duì)列、仲裁、多路傳輸處理程序不改變數(shù)據(jù)內(nèi)容處理程序不改變數(shù)據(jù)內(nèi)容處理程序功能是提供合并的驅(qū)動或接口(處理程序功能是提供合并的驅(qū)動或接口(e.g.e.g.,SPIHandle

5、rDriver,ADC DriverSPIHandlerDriver,ADC Driver)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層l微控制器抽象層的驅(qū)動微控制器抽象層的驅(qū)動基礎(chǔ)軟件中最底層的位置,向上層軟件屏蔽微控制器和ECU硬件設(shè)備驅(qū)動的細(xì)節(jié)和差異,是降低汽車電子應(yīng)用軟件與硬件的相關(guān)性,提高汽車電子應(yīng)用軟件和功能組件可重用性和可移植性的重要技術(shù)手段直接訪問uC內(nèi)部外設(shè)和內(nèi)存映射uC外部設(shè)備電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層l微控制器抽象層的驅(qū)動微控制器抽象層的驅(qū)動l包括:包括:微控制器驅(qū)動

6、、內(nèi)存驅(qū)動、通訊驅(qū)動、I/O驅(qū)動電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 微控制器驅(qū)動微控制器驅(qū)動包括:看門狗驅(qū)動WDG、通用定時器驅(qū)動GPT、微控制器單元驅(qū)動MCU內(nèi)部外設(shè)的驅(qū)動(e.g.,Watchdog,通用時鐘)直接uC可存取的功能(e.g.,Core測試)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 微控制器驅(qū)動看門狗驅(qū)動微控制器驅(qū)動看門狗驅(qū)動 設(shè)定片內(nèi)看門狗模式以及觸發(fā)看門狗設(shè)備,觸發(fā)程序由上層系統(tǒng)服務(wù)層的看門狗管理器模塊進(jìn)行調(diào)用,內(nèi)部看門狗驅(qū)動控制MCU的內(nèi)部看門狗計(jì)時器,它提供觸發(fā)器功能

7、和模式選擇服務(wù)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 微控制器驅(qū)動通用定時器驅(qū)動微控制器驅(qū)動通用定時器驅(qū)動GPTGPT 為定時服務(wù)程序提供定時中斷 GPT驅(qū)動允許產(chǎn)生單觸發(fā)或持續(xù)的計(jì)時器通知,這個模塊使用通用計(jì)時器的硬件計(jì)時通道,因此就為操作系統(tǒng)中或者其它基本軟件模塊(在這類模塊中,OS警告服務(wù)有過多的開銷)中的使用提供了精確的、短期的計(jì)時。 GPT驅(qū)動提供了用于啟動和停止硬件計(jì)時模塊中的功能計(jì)時實(shí)例(通道)的服務(wù)。它能夠產(chǎn)生單個超時周期以及重復(fù)超時周期。如果必須調(diào)用一個通知,那么當(dāng)所請求的超時周期過期時,用戶就能夠?qū)λM(jìn)行配置??梢栽谶\(yùn)行時啟

8、用或禁用通知。電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 微控制器驅(qū)動通用定時器驅(qū)動微控制器驅(qū)動通用定時器驅(qū)動GPTGPT 不管是從上一個通知發(fā)生以來的相對時間消耗,還是到下一個通知之間的剩余時間,都可以進(jìn)行查詢。 注意,GPT驅(qū)動僅產(chǎn)生時間基礎(chǔ),而不服務(wù)于時間計(jì)數(shù)器。這個功能是由另一個模塊(ICU驅(qū)動)提供的 GPT驅(qū)動可以用來喚醒ECU,不管預(yù)定義的超時周期是否過期。模式轉(zhuǎn)換服務(wù)將GPT驅(qū)動在普通操作和睡眠模式之間進(jìn)行轉(zhuǎn)換。 該驅(qū)動不提供超時周期,這些超時周期超過了被時鐘源、預(yù)定標(biāo)器和計(jì)時寄存器所限制的最大值。用戶必須對這個進(jìn)行處理。電子科技大

9、學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 微控制器驅(qū)動微控制器單元驅(qū)動微控制器驅(qū)動微控制器單元驅(qū)動MCUMCU 負(fù)責(zé)微處理器的各項(xiàng)設(shè)定,包括復(fù)位,初始化,電源管理,喚醒,時鐘設(shè)定等。 MCU驅(qū)動提供用于基本微控制器的初始化,下電,復(fù)位和其它MCAL軟件模塊需要的微控制器特定功能的服務(wù)。初始化服務(wù)提供了靈活性,同時,除了啟動代碼之外,還提供了應(yīng)用程序相關(guān)的MCU初始化。啟動代碼是完全特定于MCU的。MCU驅(qū)動直接訪問微控制器硬件,它位于微控制器抽象層(MCAL)中電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 內(nèi)存驅(qū)

10、動內(nèi)存驅(qū)動包括:內(nèi)部EEPROM、內(nèi)部Flash、RAM測試片上內(nèi)存設(shè)備的驅(qū)動(e.g.,內(nèi)部Flash,內(nèi)部EEPROM)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 內(nèi)存驅(qū)動內(nèi)存驅(qū)動EEPROMEEPROM驅(qū)動驅(qū)動提供讀、寫、擦除EEPROM的服務(wù),提供用于比較EEPROM中數(shù)據(jù)塊和內(nèi)存中數(shù)據(jù)塊的服務(wù),這些服務(wù)是異步方式的電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 內(nèi)存驅(qū)動內(nèi)存驅(qū)動FLASHFLASH驅(qū)動驅(qū)動提供讀、寫和擦除閃存的服務(wù),以及設(shè)置寫/擦除保護(hù)的配置接口提供了一個內(nèi)置加載器,以加載閃存存取

11、代碼到RAM中,并在需要的時候執(zhí)行寫/擦除操作電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 內(nèi)存驅(qū)動內(nèi)存驅(qū)動RAMRAM測試測試負(fù)責(zé)RAM單元(包括用于寄存器的單元)的物理性診斷(非數(shù)據(jù)檢測),不同的診斷方式需要預(yù)編譯然后根據(jù)系統(tǒng)或用戶需要實(shí)時運(yùn)行電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動包括:SPI驅(qū)動、LIN驅(qū)動、CAN驅(qū)動、FlexRay驅(qū)動ECU板級上的通信驅(qū)動(e.g.,SPI,I2C)車載通信驅(qū)動(e.g.,LIN,CAN,FlexRay網(wǎng)絡(luò))電子科技大學(xué)嵌入式軟件工程中心電

12、子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動SPISPI驅(qū)動驅(qū)動提供外設(shè)的SPI讀寫通信控制驅(qū)動允許多個客戶端對一個或多個SPI總線的并發(fā)訪問。為了抽象SPI的特征,SPIHandlerDriver要直接處理微控制器中的片選引腳。這就意味著這些引腳對DIO驅(qū)動無效SPI總線是一種主從多節(jié)點(diǎn)總線系統(tǒng),主節(jié)點(diǎn)設(shè)置片選(CS)來選擇一個從節(jié)點(diǎn)來進(jìn)行數(shù)據(jù)通信。SPI有一個4線的同步串行接口。使用片選線來激活數(shù)據(jù)通信電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動SPISPI驅(qū)動驅(qū)動 SPI模塊提供基于通道的對SPI

13、總線上的不同設(shè)備的讀、寫和傳輸訪問,SPI通道代表數(shù)據(jù)元素(8到16比特)。這些通道可能是順序組合的,不能夠被中斷。通道有一個靜態(tài)配置定義的波特率、片選等等。SPI設(shè)備通常由所使用的SPI硬件單元和相關(guān)的片選線來標(biāo)識。這個模塊能夠作為SPI主節(jié)點(diǎn)來使用 這個軟件模塊的功能范圍應(yīng)該是可靜態(tài)配置的,以盡可能多的適應(yīng)每個ECU的時間需要。那就是說,比如同步的、異步的、或者兩者都有的SPI訪問都可以存在于ECU。因此,兩個SPI驅(qū)動可以存在,但僅有一個處理接口。電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動LINLIN驅(qū)動驅(qū)動為上層的LIN

14、接口模塊提供硬件抽象接口,負(fù)責(zé)對LIN 硬件進(jìn)行控制,比如初始化。對于屬于相同LIN硬件單元LIN驅(qū)動模塊支持多路通道。只支持LIN2.0主節(jié)點(diǎn)LIN驅(qū)動是最底層的一部分,執(zhí)行硬件訪問和為上層提供硬件無關(guān)的API。上層唯一能夠訪問到LIN驅(qū)動的就是LIN接口一個LIN驅(qū)動能夠支持一個以上的通道。LIN驅(qū)動能夠處理一個或多個屬于相同LIN硬件單元的LIN通道電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動CANCAN驅(qū)動驅(qū)動為上層的CAN 接口模塊提供硬件抽象接口,負(fù)責(zé)對CAN硬件傳輸進(jìn)行初始化,實(shí)現(xiàn)事件通知,控制屬于相同CAN硬件單元的

15、CAN控制器。CAN驅(qū)動盡可能合理地隱藏了相關(guān)CAN控制器的硬件專用性。CAN驅(qū)動是最底層的一部分,為上層執(zhí)行對硬件的訪問和提供硬件無關(guān)的API。上層中唯一能夠訪問CAN驅(qū)動的是CAN接口。如果幾個CAN控制器屬于相同的CAN硬件單元,那么它們能夠由CAN驅(qū)動來控制一個CAN控制器總是與一個物理通道相關(guān)聯(lián)。它被允許與總線上的物理通道相連接,不管CAN接口是否將相關(guān)的CAN控制器分別對待電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 通訊驅(qū)動通訊驅(qū)動FlexRayFlexRay驅(qū)動驅(qū)動為上層的FlexRay 接口模塊提供硬件抽象接口,負(fù)責(zé)對FlexRay

16、 硬件傳輸進(jìn)行初始化,實(shí)現(xiàn)事件通知,控制屬于相同F(xiàn)lexRay 硬件單元的FlexRay 控制器FlexRay驅(qū)動模塊必須為FlexRay接口模塊、API的使用者提供統(tǒng)一接口,以訪問許多FlexRay通信控制器,這些控制器通常是相同類型的。FlexRay驅(qū)動是一個軟件層,它將抽象功能請求映射到CC專用硬件的序列上。CC的硬件實(shí)現(xiàn)將從FlexRay接口隱藏電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動ICU驅(qū)動、PWM驅(qū)動、ADC驅(qū)動、DIO驅(qū)動、PORT驅(qū)動模擬和數(shù)字I/O驅(qū)動(e.g.,模數(shù)轉(zhuǎn)換器ADC,脈寬調(diào)制PWM,數(shù)字輸入

17、輸出DIO)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動ICUICU驅(qū)動驅(qū)動 對周期性輸入信號進(jìn)行頻率檢測以及占空比測量,計(jì)算脈沖,解調(diào)脈寬調(diào)制信號,捕獲非周期輸入信號,產(chǎn)生相應(yīng)的中斷或喚醒中斷電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動PWMPWM驅(qū)動驅(qū)動對微控制器內(nèi)部PWM端口進(jìn)行初始化和控制每個PWM通道都連接到一個屬于微控制器的硬件PWM上。該驅(qū)動提供了初始化和控制微處理器內(nèi)部的PWM的服務(wù)。PWM模塊產(chǎn)生有不同寬度的脈沖電子科技大學(xué)嵌入式軟件工程中心電子

18、科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動ADCADC驅(qū)動驅(qū)動對微控制器內(nèi)部ADC端口進(jìn)行初始化和控制ADC驅(qū)動初始化并控制微控制器內(nèi)部的模數(shù)轉(zhuǎn)換單元。該驅(qū)動包含一系列的基本功能函數(shù)。為了能夠在某些特殊的應(yīng)用中進(jìn)行信號的頻率分析(例如,快速傅立葉變換),就需要加強(qiáng)流式存取的功能電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動DIODIO驅(qū)動驅(qū)動 DIO通道的管腳和組以及端口進(jìn)行讀寫 提供基于端口和通道的、對內(nèi)部通用I/O斷點(diǎn)的讀和寫訪問。這里的讀和寫并不被緩沖。這個驅(qū)動的基本行為是同步的電子科技大學(xué)

19、嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心微控制器抽象層微控制器抽象層 I/OI/O驅(qū)動驅(qū)動PORTPORT驅(qū)動驅(qū)動 微控制器所有端口的初始化電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層lECU抽象層抽象層微控制器硬件抽象層的接口驅(qū)動包含外部設(shè)備驅(qū)動提供API訪問外設(shè)和設(shè)備并且不管它位置(uC內(nèi)/外)和它連接到uC(端口管腳,接口類型)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l包括以下軟件模塊包括以下軟件模塊通訊硬件抽象、內(nèi)存硬件抽象、板載設(shè)備抽象、I/O硬件抽象電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工

20、程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層對于內(nèi)部和ECU硬件架構(gòu)上外部通信控制器的抽象對于所有的通信系統(tǒng)(LIN,CAN,F(xiàn)lexRay),都需要特定的通信硬件抽象: LIN接口 CAN接口 FlexRay接口如果MCU沒有板載通信控制器,需要外部的ASIC電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層LIN接口接口為上層LIN SM模塊和PDU Router模塊提供驅(qū)動抽象接口,通過下層驅(qū)動模塊對LIN硬件設(shè)備進(jìn)行控制。功能主要包括:根據(jù)上層通信模塊切換調(diào)度表,執(zhí)行LIN數(shù)據(jù)幀的收發(fā),控制設(shè)備的喚醒和睡眠,錯誤處理以

21、及診斷服務(wù)LIN接口被設(shè)計(jì)成硬件無關(guān)的。到上層模塊(PDU路由器)和下層模塊(LIN驅(qū)動)的接口被很好地定義。LIN接口可以處理一個以上的LIN驅(qū)動。一個LIN驅(qū)動能夠支持一個以上的通道。這指的是LIN驅(qū)動能夠處理一個或多個LIN通道電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層LIN接口接口LIN接口負(fù)責(zé)向上層提供LIN 2.0主要功能有: 每個與ECU連接的LIN總線執(zhí)行當(dāng)前選擇的調(diào)度 當(dāng)上層請求到來時,切換調(diào)度表 從上層接收幀的傳送,并傳送數(shù)據(jù)部分作為適當(dāng)LIN幀中的響應(yīng) 當(dāng)相應(yīng)的響應(yīng)在適當(dāng)?shù)膸薪邮諘r,為上層提供幀接收通知

22、睡眠和喚醒服務(wù) 錯誤處理 診斷傳輸層服務(wù)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層CAN接口接口為上層CAN SM模塊,CAN NM模塊,CAN TP模塊以及PDU Router模塊和下層CAN控制驅(qū)動和CAN收發(fā)驅(qū)動提供接口。提供了唯一的接口來訪問管理CAN硬件設(shè)備,為上層服務(wù)層抽象了CAN硬件設(shè)備的分布和數(shù)量CAN接口提供標(biāo)準(zhǔn)化的接口,通過ECU的CAN總線系統(tǒng)來支持通信。其API與專用CAN控制器及其通過CAN驅(qū)動層的訪問無關(guān)。CAN接口能夠通過統(tǒng)一的接口訪問一個或多個CAN驅(qū)動CAN接口僅能用于CAN通信,并且是為操作一

23、個或多個底層CAN驅(qū)動而專門設(shè)計(jì)。涵蓋不同CAN硬件單元的幾個CAN驅(qū)動模塊由一個在CAN驅(qū)動規(guī)范中指定的通用接口來表示。CAN之外(也就是LIN)的其他協(xié)議不支持電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層FlexRay接口接口為上層FlexRay SM模塊,F(xiàn)lexRay NM模塊,F(xiàn)lexRay TP模塊以及PDU Router模塊提供驅(qū)動抽象接口,通過下層驅(qū)動模塊對FlexRay硬件設(shè)備進(jìn)行控制。提供的功能包括:初始化,收發(fā)數(shù)據(jù),設(shè)定FlexRay運(yùn)行模式,狀態(tài)信息捕獲以及各種定時提供一種標(biāo)準(zhǔn)化的接口以訪問FlexRay通

24、信系統(tǒng)/硬件。FlexRay接口必須與所使用的專用FlexRay CC及其通過FlexRay驅(qū)動的訪問無關(guān)。FlexRay接口提供通過統(tǒng)一接口的對一個或幾個FlexRay驅(qū)動的訪問電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l通信硬件抽象層通信硬件抽象層FlexRay接口接口FlexRay接口的主要任務(wù) 為上層提供到FlexRay通信系統(tǒng)的抽象接口 FlexRay接口通過一個或多個硬件專用驅(qū)動模塊來訪問FlexRay硬件,而不是直接訪問 為了訪問FlexRay通信控制器,F(xiàn)lexRay接口使用一個或多個FlexRay驅(qū)動模塊 為了訪問FlexRay收發(fā)器,F(xiàn)l

25、exRay接口使用一個或多個FlexRay收發(fā)器驅(qū)動模塊 FlexRay接口可執(zhí)行代碼與FlexRay通信控制器和FlexRay收發(fā)器完全不相關(guān) FlexRay接口允許代碼模塊的對象代碼提交,遵循“one-fits-all”原則電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l內(nèi)存硬件抽象層內(nèi)存硬件抽象層提供對于內(nèi)存外設(shè)和板級的內(nèi)存設(shè)備抽象的一組模塊供相等的機(jī)制訪問內(nèi)部(片上的)和外部(板上的)的存儲設(shè)備以及各種存儲硬件(EEPROM,F(xiàn)lash)具有板載Flash的Mcu,可以仿真EEPROM,因此,這一層只需要兩個模塊: Flash EEPROM仿真 內(nèi)存抽象

26、接口電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l內(nèi)存硬件抽象層內(nèi)存抽象接口內(nèi)存硬件抽象層內(nèi)存抽象接口MEMIF 對于不同內(nèi)存設(shè)備提供抽象內(nèi)存接口 上層的NVRAM管理器模塊可以通過抽象內(nèi)存接口來訪問不同的抽象內(nèi)存模塊甚至是供應(yīng)商的特殊內(nèi)存驅(qū)動(FEE或EA模塊) 內(nèi)存抽象接口抽象于下層FEE和EA模塊的數(shù)目,并向上層提供統(tǒng)一線性地址空間上的虛擬分段電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l內(nèi)存硬件抽象層內(nèi)存硬件抽象層EEPROM抽象抽象EA 擴(kuò)展EEPROM驅(qū)動,提供片內(nèi)EEPROM的訪問接口,抽象了EEPROM的地址以

27、及數(shù)量,向上層提供線性地址空間上的虛擬分段和“實(shí)際上無限制的”擦除/寫循環(huán)。除此之外,它還應(yīng)該提供與EEPROM驅(qū)動相同的功能電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l內(nèi)存硬件抽象層內(nèi)存硬件抽象層Flash EEPROM仿真仿真FEE 按照Flash技術(shù)仿真EEPROM抽象層的行為,利用Flash來仿真EEPROM的數(shù)據(jù)存儲,為上層的內(nèi)存抽象接口模塊提供數(shù)據(jù)的虛擬尋址。所以它與EEPROM抽象層有相同的功能和API,并且給出基于下層閃存驅(qū)動和閃存設(shè)備的相似配置電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l板載設(shè)備抽象板載設(shè)

28、備抽象包含包括除傳感器/執(zhí)行器外的ECU板上設(shè)備(如板上系統(tǒng)芯片、外部watchdog等)的驅(qū)動程序 它通過微控制器抽象層實(shí)現(xiàn)對ECU板上設(shè)備的訪問 主要是看門狗接口WDGIF電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層l板載設(shè)備抽象看門狗接口板載設(shè)備抽象看門狗接口 針對微控制器的看門狗設(shè)備提供了相同的訪問機(jī)制,抽象了看門狗設(shè)備的地址以及數(shù)量電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層lI/O硬件抽象硬件抽象 它是一個模塊組,通過從外設(shè)I/O設(shè)備(片上/板載)位置的抽象,并且在ECU抽象層 I/O硬件抽象不從傳感器/執(zhí)行器抽象

29、不同I/O設(shè)備通過I/O信號接口訪問電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層抽象層lI/O硬件抽象硬件抽象 提供微控制器外設(shè)的硬件輸入輸出抽象接口,通過下層驅(qū)動模塊對相應(yīng)硬件外設(shè)進(jìn)行控制,包括,微控制器通用I/O,ADC,PWM,ICU等 上層的汽車電子應(yīng)用和組件可以通過該模塊提供的I/O信號訪問接口實(shí)現(xiàn)不同I/O設(shè)備的訪問電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層示例抽象層示例 內(nèi)存棧內(nèi)存棧MEMORY該示例顯示在NVM管理和WDG管理在假定硬件配置上驅(qū)動的相互影響:ECU硬件上包含一個外部EEPROM和外部看門狗通過相同的SPI

30、與微控制器連接SPIHandlerDriver控制對SPI硬件的并發(fā)訪問,并且必須使看門狗訪問的優(yōu)先級高于EEPROM訪問假設(shè)微控制器還有個能和外部EEPROM并行使用的內(nèi)部flash。EEPROM抽象和Flash EEPROM仿真有在語義上相同的API。電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層示例抽象層示例 內(nèi)存棧內(nèi)存棧MEMORYMEMORY內(nèi)存抽象接口通過下面的方法實(shí)現(xiàn): 在運(yùn)行期間基于設(shè)備索引(int/ext)的路由 在運(yùn)行期間基于塊索引(如:0 x01FF=外部EEPROM)的路由 通過帶有NVRAM管理器中的函數(shù)指針(這種情況下內(nèi)存抽象接口只存在“虛

31、擬的”)的ROM表在配置時間期間路由體系描述 NVRAM管理器通過內(nèi)存抽象接口訪問驅(qū)動,使用設(shè)備索引尋址不同的內(nèi)存設(shè)備電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層示例抽象層示例 內(nèi)存棧內(nèi)存棧MEMORYMEMORY接口描述:內(nèi)存抽象接口應(yīng)該有下面的接口(如:為寫函數(shù))Std_ReturnType MemIf_Write(Uint8DeviceIndex,Uint16BlockNumber,Uint8*DataBufferPtr)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層示例抽象層示例 內(nèi)存棧內(nèi)存棧MEMORYMEMORY接口描述:EEP

32、ROM抽象以及Flash EEPROM仿真應(yīng)該有下面的接口(如:為寫函數(shù))Std_ReturnType Ea_Write(Uint16BlockNumber,Uint8*DataBufferPtr)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心ECU抽象層示例抽象層示例 內(nèi)存棧內(nèi)存棧MEMORYMEMORY情形一情形一:只使用一種類型的NV設(shè)備, 這是一般的使用情況。在這種情況下,內(nèi)存抽象被實(shí)現(xiàn)為一個忽略DeviceIndex參數(shù)的簡單宏結(jié)果:結(jié)果:在運(yùn)行時沒有額外的代碼,NVRAM管理器虛擬地訪問EEPROM抽象或直接的訪問Flash仿真文件 MemIf.h:#include “Ea.h”/*for providing access to the EEPROM abstraction*/#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPtr

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論