一、概述
本文将会介绍 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