首先介紹MCAL的Port Driver模塊。
PortDriver模塊作為一個最基本的模塊主要完成MCU的Port_Pin引腳的相關(guān)功能定義和初始化。通常而言Port_Pin的主要功能是作為GPIO、ADC、CAN、ICU、PWM、SPI等功能使用。
而對于一個Port_Pin而言,具體作為什么功能使用,要結(jié)合實際的原理圖進行定義。無論一個Port作為什么功能使用,在AutoSAR中大概的策略就是通過IO HardWareAbs層進行相關(guān)的控制,具體的控制邏輯如下所示。
IO HardWare Abstraction SW根據(jù)用戶設(shè)置的操作結(jié)合Port Driver模塊對Port不同模式的設(shè)置,發(fā)出調(diào)用命令,然后Port Driver對Port中的相關(guān)寄存器進行操作,從而達到對Port具體Pin腳輸入輸出的控制。
AutoSAR架構(gòu)中對Port Driver模塊提供了幾個以下幾個具體的功能:
1.配置Port_Pin的屬性
對于Port_Pin屬性的定義主要包括:引腳不同功能的定義,也就是我們常說的復(fù)用功能,定義Port_Pin作為GPIO使用還是作為ADC或者是CAN等特殊功能使用;引腳方向定義(輸入還是輸出)、引腳初始值定義、是否支持輸入輸出方向變化、是否支持復(fù)用模式轉(zhuǎn)換功能等;作為輸入時選擇上拉還是下拉、作為輸出時選擇開漏還是推挽輸出、是否支持回讀功能;未使用到的Port_Pin狀態(tài)的定義;定義Port_Pin在使用中的Symbol Name(常見的定義方式PORT_A_PIN_0)等。
2.版本校驗
對于特定的Port Driver在AutoSAR中都有相應(yīng)的版本號,對于版本號的校驗通過該功能進行使能與否,一旦使能,可以通過相應(yīng)的API來核對版本號。
3.開發(fā)中相關(guān)錯誤的追溯
對Port Driver在實際開發(fā)中出現(xiàn)的相關(guān)錯誤進行定義,在開發(fā)階段可以結(jié)合Det模塊對Port Driver常見的錯誤進行追溯,快速定位開發(fā)中因為考慮不全或者粗心產(chǎn)生的錯誤。AutoSAR提供的Det功能可以快速定位相關(guān)錯誤。然后,根據(jù)具體的錯誤去修改相應(yīng)的配置和進行代碼優(yōu)化。
4.常用的API
Port Driver模塊主要做一些基礎(chǔ)的初始化配置使用,因此用的API相對較少,主要包括Port_Init、Port_SetPinDirection、Port_RefreshPortDirection 、Port_GetVersionInfo、 Port_SetPinMode 等,具體的函數(shù)功能結(jié)合API的名字一般能猜到,具體的使用請參考AutoSAR的標(biāo)準(zhǔn)文檔。在Port模塊這些函數(shù)可以直接調(diào)用。
對于Port Driver這個模塊在工具中的配置,AutoSAR標(biāo)準(zhǔn)文件也提供了詳細(xì)的說明。下面圖片展示了相關(guān)的配置內(nèi)容。ETAS、Vector、EB等配置工具都是基于AutoSAR標(biāo)準(zhǔn)提供的參考進行定義的。
無論是基于工具的配置,還是手寫功能對于Port層面的設(shè)計按照以上圖中包含的內(nèi)容進行設(shè)計基本上能滿足大多數(shù)要求,但是有一些額外的設(shè)置可以根據(jù)具體的芯片型號結(jié)合配置工具實現(xiàn)。
下面結(jié)合本人在使用的時候出現(xiàn)的問題總結(jié)了幾點經(jīng)驗:
1.在使用該模塊的時候一定要結(jié)合具體的硬件進行選擇相應(yīng)的Port_Pin的模式,如果在使用的時候用到了模式切換的功能,一定要添加所有切換的模式狀態(tài),同時使能模式切換相關(guān)的API。
2.在選擇輸入輸出方式的時候要考慮硬件的外部電路,據(jù)具體的電路和芯片相關(guān)的要求選擇。
3.對于PartionRef功能的使用可能要結(jié)合具體的功能安全需求以及整個系統(tǒng)的Partion區(qū)分做選擇。
4.對于沒有使用的Port一定要根據(jù)要求配置,多數(shù)情況下默認(rèn)狀態(tài)就可以,但是也要具體問題具體分析。
5.對于支持方向變化的Port_Pin,作為方向切換使用時,一定要注意配置的端口的屬性,防止使用的時候因為配置原因?qū)е伦x出或者寫入的電平出現(xiàn)不一致。
審核編輯:劉清
-
CAN總線
+關(guān)注
關(guān)注
145文章
2010瀏覽量
134183 -
寄存器
+關(guān)注
關(guān)注
31文章
5495瀏覽量
127802 -
AUTOSAR
+關(guān)注
關(guān)注
10文章
388瀏覽量
23304 -
GPIO
+關(guān)注
關(guān)注
16文章
1300瀏覽量
55281
發(fā)布評論請先 登錄
復(fù)雜驅(qū)動如何將現(xiàn)有的或新的概念引入AUTOSAR軟件架構(gòu)中的?

功能安全---AUTOSAR架構(gòu)深度解析 精選資料分享
AUTOSAR架構(gòu)深度解析 精選資料推薦
AUTOSAR架構(gòu)深度解析 精選資料分享
LLCE driver是否可以在非autosar os中運行?
Virtual Serial Port Driver 6.9(虛擬串口)
AUTOSAR架構(gòu)下的WdgDriver WdgIf WdgM模塊
AUTOSAR架構(gòu)中CanNm模塊的問題解答
AUTOSAR-MemIf的功能

AUTOSAR架構(gòu)自適應(yīng)平臺

AUTOSAR架構(gòu)中復(fù)雜驅(qū)動設(shè)計

評論