一、概述
本文將會介紹 SemiDrive E3 MCAL LIN 模塊的簡介以及基本配置。此外會結合實際操作的介紹,幫助新手快速了解並掌握這個模塊的使用,文中的 MCAL 是基於 PTG3.0 的版本,開發板是官方的 E3640 網關板。
二、 LIN 模塊簡介
E3 的 LIN 模塊是符合 LIN2.1 規範的,LIN 模塊的底層硬體是基於 UART 實現的,每路 UART 都可以作為 LIN 模塊使用,E3 目前最多能支持 16 路 LIN。關於 LIN 模塊,AutoSar 標準中關於 LIN 模塊的軟體架構圖如下圖所示。MCAL 實現的 LIN 驅動位於 I/O drivers 這一層中,上層是 LIN TP 層以及 LIN 調度表等實現。
圖 2.1 LIN 模塊 AutoSar 軟體架構圖
三、 LIN 模塊的主要配置
下面介紹 LIN 模塊的配置,首先需要使能我們需要使用的 LIN 模塊。這裡我們以 UART2 為例進行說明。對 MCU 模塊進行配置,打開其中的 McuHwLpConfig 選項卡,勾選我們需要用到的 UART 模塊。
圖 3.1 使能 UART2 模塊
接著打開 Port 模塊配置 UART2 的引腳,具體如下圖所示。主要配置將功能復用為 UART。
圖 3.2 引腳配置
完成以上的配置後開始配置 LIN 模塊,LIN 模塊的配置比較簡單,首先進行通用配置,主要是配置是否使能 LIN 波特率自動檢測,如果需要則勾選上該選項。
圖 3.3 LIN 模塊通用配置
接著對 LIN 通道進行配置,關於配置項的具體說明如下:
(1)LinChannelId:LIN 的邏輯通道 ID
(2)LinChannelAutoBaudRate:配置是否開啟普通模式下的自動波特率檢測
(3)LinChannelIcuAbr:配置是否支持 ICU 模式下的自動波特率檢測
(4)LinIcuAbrRefIcuChan:選擇 ICU 通道
(5)LinChannelBaudRate:LIN 的波特率
(6)LinChannelMode:選擇作為主機還是叢機
(7)LinChannelChecksumMode:選擇校驗模式,經典校驗或者增強型校驗,僅對叢機有效
(8)LinChannelStopBit:選擇停止位的長度
(9)LinHrdChannel:選擇使用哪個 UART
圖 3.4 LIN 通道配置
四、 實際操作
完成以上配置後,我們需要編寫相關的測試代碼進行驗證,具體的測試代碼如下圖所示。
圖 4.1 LIN 模塊測試代碼
修改代碼後編譯並且燒錄到板子運行,測試時我們需要用到 LIN 分析儀,在測試前需要將分析儀接上,如下圖所示。
圖 4.2 接上 LIN 分析儀
該 LIN 分析儀使用的上位機軟體為 TCANLINPro,具體的安裝介紹在此就不介紹,打開上位機,啟動 LIN 模塊,這裡波特率的配置需要跟 MCAL 的 LIN 波特率配置保持一致。
圖 4.3 啟動 LIN 模塊
接著設置叢機數據,收到 E3 的幀頭信息後會按照設置的數據進行響應。
圖 4.4 設置叢機響應數據
打開串口調試助手,輸入測試命令“runcase 300”,可以看到上位機收到了 E3 發的報文,並且串口上也列印了 E3 收到的 LIN 報文數據。
圖 4.5 串口信息
五、 使用限制
關於 E3 MCAL 的 LIN 模塊有以下使用的限制:
- E3 的 LIN 模塊不支持喚醒睡眠機制,該驅動中對休眠喚醒接口的調用都只是修改相關通道的狀態,並不會影響底層硬體電源。
- E3 LIN 模塊對發送報文的正確性進行校驗僅支持在 SF 域的 GPIO。
六、 參考資料
1.《SemiDrive_E3_MCAL_User_Guide_Rev03.00.pdf》,2023.08
評論