ZHDA035 January   2026 MSPM0G3519

 

  1.   1
  2.   摘要
  3.   商标
  4. 1LIN 协议简介
    1. 1.1 中断域
    2. 1.2 SYNC 字节域
    3. 1.3 PID 域
    4. 1.4 数据
    5. 1.5 校验和
  5. 2初始波特率设置
  6. 3LIN 协议 MSPM0 UART/UNICOMM UART 的实现
    1. 3.1 LIN 发送
      1. 3.1.1 中断域
      2. 3.1.2 同步域
      3. 3.1.3 PID 域
      4. 3.1.4 数据域
      5. 3.1.5 校验和
    2. 3.2 LIN 接收
      1. 3.2.1 中断域检测
      2. 3.2.2 同步域验证
    3. 3.3 LIN 收发器
  7. 4自动波特率检测
    1. 4.1 使用 MSPM0 UART/UNICOMM UART 测量位宽的过程
    2. 4.2 计算正确的波特率
      1. 4.2.1 响应器节点处的晶体误差
  8. 5同步后波特率偏差
  9. 6参考资料

初始波特率设置

有关 UART 功能方框图,请参阅 MSPM0 器件特定用户指南。可以使用 CLKDIV 寄存器位域进一步对 MSPM0 UART/UNICOMM UART 的输入时钟进行分频;该分频时钟被称为功能时钟或者 UART 时钟。有关 IP 的时钟速度,请参阅相应的器件数据表。

波特率除数是一个 22 位数字,由 16 位整数 (IBRD) 和 6 位小数部分 (FBRD) 组成。波特率发生器使用这两个值形成的数字来确定位采样周期。分数波特率分频器可让 UART 非常准确地生成所有标准波特率。

16 位整数加载到 UART 整数波特率分频器 IBRD 寄存器中,6 位小数部分加载到 UART 分数波特率分频器 FBRD 寄存器中。

波特率分频 (BRD) 可以使用以下公式计算:

BRD = 功能块/(过采样 x 波特率)

功能时钟是 UART 时钟控制逻辑的时钟输出,由 CLKSEL 和 CLKDIV 配置。过采样通过 CTL0 寄存器中的高速过采样使能 (HSE) 位进行选择,选定的过采样可以是 16、8 或 3。

  • IBRD = INT (BRD):含有波特率除数的整数部分
  • FBRD = INT ((BRD – INT(BRD)*64+0.5):含有波特率除数的残留小数部分

BRD 的整数部分被加载到 IBRD 寄存器中。必须将 6 位小数加载到 FBRD 寄存器中。

下面的示例显示了一种简单的方法来计算 9600 位/秒波特率下的 IBRD.DIVINT 和 FBRD.DIVFRAC:

  • 功能时钟 = 32MHz
  • 过采样 = 16
  • 波特率 = 9600 位/秒