ZHCAF13 February   2025 MSPM0C1103 , MSPM0C1103-Q1 , MSPM0C1104 , MSPM0C1104-Q1 , MSPM0G1105 , MSPM0G1106 , MSPM0G1107 , MSPM0G1505 , MSPM0G1506 , MSPM0G1507 , MSPM0G1519 , MSPM0G3105 , MSPM0G3105-Q1 , MSPM0G3106 , MSPM0G3106-Q1 , MSPM0G3107 , MSPM0G3107-Q1 , MSPM0G3505 , MSPM0G3505-Q1 , MSPM0G3506 , MSPM0G3506-Q1 , MSPM0G3507 , MSPM0G3507-Q1 , MSPM0G3519 , MSPM0L1105 , MSPM0L1106 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2228 , MSPM0L2228-Q1

 

  1.   1
  2.   摘要
  3.   商标
  4. 1简介
  5. 2MSPM0 如何支持 LIN 功能
    1. 2.1 时钟
    2. 2.2 LIN 硬件
    3. 2.3 SDK 中的 LIN 演示代码
      1. 2.3.1 LIN 命令器
      2. 2.3.2 LIN 响应器
  6. 3LIN 通信的实现
    1. 3.1 硬件连接
    2. 3.2 测试结果
      1. 3.2.1 命令器
      2. 3.2.2 响应器
  7. 4总结
  8. 5参考资料

LIN 命令器

LIN 命令器演示代码的主要功能是在 LIN 协议帧中发送不同的命令。当按下两个按钮时,会紧急发送 PID 0x39 和 0x08。其中一个用于点亮响应器的 LED,另一个用于从响应器接收数据。

图 2-1 展示了 LIN 命令器演示代码的流程。

 LIN 命令器演示代码的流程图 2-1 LIN 命令器演示代码的流程

为了初始化硬件,使用了 TI 系统配置工具 (SysConfig) 生成 UART 的配置代码,如 UART 时钟、引脚配置等。在此演示代码中,我们按照 LIN 规范要求,选择了 19200 波特率。

表 2-3 展示了 LIN 命令器项目的摘要,其中包括主要使用的定义和函数。

表 2-3 LIN 命令器项目主要内容
名称 任务 说明 位置
LIN_TABLE_INDEX_PID_xx 定义 每个帧的 PID lin_command.c
LIN_MESSAGE_NOT_FOUND 定义 0xFF。未找到消息时的 UART LIN 值 lin_config.h
LIN_SYNC_BYTE 定义 0x55。同步字节的 UART LIN 值 lin_config.h
LIN_BREAK_LENGTH 定义 0x08。UART LIN 中断长度设为 1ms lin_config.h
SYSCFG_DL_init() 函数 初始化由 Sysconfig 生成的外设 ti_msp_dl_config.c
DL_UART_enableLINSendBreak(UART_Regs *uart) 函数 启用发送中断。启用后,当前字符传输完毕后,TXD 信号持续输出低电平 dl_uart.c
DL_UART_disableLINSendBreak(UART_Regs *uart) 函数 禁用发送中断 dl_uart.c
LIN_Commander_transmitMessage(UART_Regs *uart, uint8_t tableIndex, uint8_t *buffer, LIN_table_record_t *messageTable) 函数 LIN 传输消息 lin_config.c
LIN_processMessage_Rx() 函数 在收到消息时进行处理 Lin_commander.c