ZHCUAN6E October 2022 – May 2025 MSPM0L1105 , MSPM0L1106 , MSPM0L1116 , MSPM0L1117 , MSPM0L1227 , MSPM0L1227-Q1 , MSPM0L1228 , MSPM0L1228-Q1 , MSPM0L1303 , MSPM0L1304 , MSPM0L1304-Q1 , MSPM0L1305 , MSPM0L1305-Q1 , MSPM0L1306 , MSPM0L1306-Q1 , MSPM0L1343 , MSPM0L1344 , MSPM0L1345 , MSPM0L1346 , MSPM0L2227 , MSPM0L2227-Q1 , MSPM0L2228 , MSPM0L2228-Q1
本部分仅与支持 LIN 模式的 UART 扩展接口相关。有关 UART 扩展接口和 UART 主接口的器件特定配置,请参阅器件数据表。
为了支持本地互连网络 (LIN) 协议,在 UART 模块中实现了以下硬件增强功能:
LIN 发送
可以通过设置 UARTx.LCRH 寄存器中的 BRK 位来发送中断信号。需要在将数据写入 FIFO 或发送数据寄存器 TXDATA 之前设置该位。要生成 LIN 响应器信号(如唤醒信号),可通过寄存器 UARTx.CTL0 中的 TXD_OUT 和 TXD_CTL_EN 位将 TX 引脚配置为由软件控制。通过将 TXD_CTL_EN 位设置为 1,如果禁用 UART 发送(CTL0.TXE 清零),TX 输出引脚可以由 TXD_OUT 位控制。
LIN 接收
LIN 命令器在每帧开始时发出一个中断域和一个同步域。必须添加硬件,这样 LIN 响应器软件驱动程序才能合理地检测中断同步并测量必要的时序参数,以调整波特率或确定错误。
对于 LIN 接收,需要中断域检测和比较模式。要配置这些功能,请执行以下操作:
需要进行同步域验证,以确保 LIN 报头部分的准确性并计算命令器波特率。同步域由字节域内的数据 0x55 构成(请参阅图 21-7)。软件检测到有效中断后,可以设置计数器来测量同步域。使用 LIN 计数器中的两个捕捉寄存器,以便软件中断较少。图 21-7 展示了同步字节格式。LINCTR 应在起始位下降沿设置为 0 并持续计数。LINC0 捕捉或 RX 下降沿中断在 RX 线路的下降沿触发。在中断处理期间,软件可以使用 LINC0 和 LINC1 寄存器中的值来测量各个位本身的单独高-低电平时间,以确保所有时序都有效。
以下流程描述了一个可行的 LIN 同步域验证过程:
同步域在 RX 线路的每个下降沿的操作如下所示:
每次发生中断时,必须读取捕捉寄存器,并且位时间需要由应用软件验证。如果出现位时间验证错误,必须中止同步域分析过程,并且应用软件必须切换回中断检测。
如果在同步域检测期间出现诸如中断命令器通信之类的错误,则可以通过启用 LIN 计数器溢出 (IMASK.LINOVF = 1) 来生成超时中断。当计数器溢出时,中断处理程序可以中止同步域分析并切换回中断检测。计数器溢出中断发生的时间可通过以下公式计算得出:tTimeout = 216/UART 时钟。