資深工程師分享 基於AUTOSAR的ECU開發 使用CDD實現MCU個性化控制

繼續分享基於AUTOSAR的ECU開發經驗,歡迎大家留言討論。

#AUTOSAR##嵌入式開發##車載電子#

假設有這樣一個需求,在PWM上升1ms後,採集AD值。

對於上述需求,我們分析單片機功能,單片機支持PWM輸出定時中斷功能,所以決定採用PWM輸出1ms後產生中斷,在中斷服務函數中採集AD值。

資深工程師分享 基於AUTOSAR的ECU開發 使用CDD實現MCU個性化控制

阿爾卑斯系統集成(大連)有限公司版權所有

打算嘗試使用AUTOSAR工具配置MCAL,實現PWM定時中斷。不過,經過調查,發現MCAL未提供PWM輸出定時中斷配置接口,因此無法使用AUTOSAR工具配置。最終,此方式嘗試失敗。

資深工程師分享 基於AUTOSAR的ECU開發 使用CDD實現MCU個性化控制

阿爾卑斯系統集成(大連)有限公司版權所有

這時,就使用CDD直接設置MCU寄存器的方式來解決這個問題。

首先,我們創建一個CDD1,依據需要完成的功能,需要對外提供PWM定時中斷使能接口以及AD採樣值,因為使能PWM定時中斷接口不需要數據傳遞,所以接口類型設定為Client/Server,方向為Server。AD採樣值需要有數據傳遞,所以接口設定為Sender/Receiver,其方向為Sender。

考慮完接口,接下來分析CDD1的功能:

  • 需要初始化AUTOSAR工具配置的配置項。
  • 需要設置MCU寄存器,使能PWM定時中斷功能。
  • PWM定時中斷中採集AD數據,並將其輸送出去。

根據功能以及觸發時機,我們設計3個Runable。接下來分別講述一下3個Runable實現的功能以及觸發條件。

Runable1 主要是調用MCAL中的PWM、AD初始化API,其初始化設定是由AUTOSAR工具配置的。觸發條件是在初始化時。

Runable2 主要是設置MCU寄存器,使能PWM定時中斷。觸發條件是收到Port1的Client請求。

Runable3 主要是採集AD值,通過調用Port2傳送出去。觸發條件是產生PWM定時中斷時。

CDD設計完後,SWC會通過RTE與CDD1進行交互。


資深工程師分享 基於AUTOSAR的ECU開發 使用CDD實現MCU個性化控制

阿爾卑斯系統集成(大連)有限公司版權所有


舉例,我們有兩個SWC,SWC1通過訪問Port1 Client接口,發送使能PWM定時中斷請求,由於RTE實現Port1 Client與Port1 Server的連接,從而觸發Runable2,使能PWM定時中斷。SWC2通過訪問Port2 Receiver接口,獲取採樣的AD值。

根據我們的經驗是提倡在符合AUTOSAR接口標準的前提下,靈活使用CDD實現個性化需求。

資深工程師分享 基於AUTOSAR的ECU開發 使用CDD實現MCU個性化控制

阿爾卑斯系統集成(大連)有限公司是日本阿爾卑斯阿爾派集團旗下的獨資子公司,簡稱ALSI大連。ALSI大連嵌入式系統開發部主要從事ALPSALPINE集團汽車電子軟件開發和功能測試,汽車電子仿真工具開發、銷售以及IoT 產品開發、銷售相關業務。


分享到:


相關文章: