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

下載本文檔

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

文檔簡(jiǎn)介

1、電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心汽車電子嵌入式驅(qū)動(dòng)軟件結(jié)構(gòu)汽車電子嵌入式驅(qū)動(dòng)軟件結(jié)構(gòu)電子科技大學(xué)嵌入式軟件工程中心電子科技大學(xué)嵌入式軟件工程中心主要內(nèi)容主要內(nèi)容 汽車電子軟件體系結(jié)構(gòu)汽車電子軟件體系結(jié)構(gòu) 軟件模塊類型介紹軟件模塊類型介紹 微控制器抽象層微控制器抽象層 ECUECU抽象層及示例抽象層及示例 復(fù)雜驅(qū)動(dòng)復(fù)雜驅(qū)動(dòng)電子科技大學(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ū)動(dòng)驅(qū)動(dòng)(Driver)功能:控制和訪問功能:控制和訪問內(nèi)部?jī)?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ū)動(dòng)稱為內(nèi)部驅(qū)動(dòng),并且驅(qū)動(dòng)位于微控制器驅(qū)動(dòng)層 外部設(shè)備:外部設(shè)備: 設(shè)備位于在ECU硬件的微控制器外部,如:外部EEPROM、外部Watchdog、外部Flash 外部設(shè)備的驅(qū)動(dòng)稱為外部驅(qū)動(dòng),并且驅(qū)動(dòng)位于在ECU抽象層,它通過微控制器驅(qū)動(dòng)層訪問外部設(shè)備,如

3、:帶SPI接口的外部EEPROM驅(qū)動(dòng)通過SPIHanderDriver驅(qū)動(dòng)訪問外部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抽象層抽象層例如:一個(gè)CAN通訊系統(tǒng)接口提供通用API訪問CA

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

30、通過相同的SPI與微控制器連接2.SPIHandlerDriver控制對(duì)SPI硬件的并發(fā)訪問,并且必須使看門狗訪問的優(yōu)先級(jí)高于EEPROM訪問3.假設(shè)微控制器還有個(gè)能和外部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ù)指針(這種情況

31、下內(nèi)存抽象接口只存在“虛擬的”)的ROM表在配置時(shí)間期間路由體系描述 NVRAM管理器通過內(nèi)存抽象接口訪問驅(qū)動(dòng),使用設(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)存棧MEMORYME

32、MORY接口描述:EEPROM抽象以及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)為一個(gè)忽略DeviceIndex參數(shù)的簡(jiǎn)單宏結(jié)果:結(jié)果:在運(yùn)行時(shí)沒有額外的代碼,NVRAM管理器虛擬地訪問EEPROM抽象或直接的訪問Flash仿真文件 MemIf.h:#include “Ea.h”/*for providing access to the EEPROM abstraction*/#define MemIf_Write(DeviceIndex, BlockNumber, DataBufferPt

溫馨提示

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

評(píng)論

0/150

提交評(píng)論