ADuC703x系列LIN波特率计算
简介
本文引用地址:https://www.eepw.com.cn/article/185754.htm本应用笔记旨在让用户熟悉用于ADI公司ADuC703x系列器件UART通信的除数值COMDIV0、COMDIV1和COMDIV2的计算。本应用笔记假定用户熟悉本地互连网络(LIN) 2.0规范。
本文分为以下三部分:
● LIN波特率计算:本部分说明一种使用LIN硬件同步(LHS)功能来计算UART除数值的方法。
● LIN波特率计算C代码示例:本部分提供LIN波特率计算部分所述计算的C代码实现示例。
LIN帧报头
标准LIN通信帧如图1所示,它分为如下部分:断开符号、同步字节、受保护标识符、数据和校验和。
图1. LIN帧
●断开符号表示LIN分包的开始。
●同步字节标定从机的波特率。
●受保护标识符用于识别从机。
●校验和既可以是根据发送数据计算的传统校验和,也可以是根据受保护标识符和数据计算的扩展校验和。
图2更加详细地显示了同步字节,它是以主机所需的波特率发送的字节0xAA.确定主机比特率的标准方法是测量从第一个下降沿到第五个下降沿的时间,然后将此值除以8,便得到所需的比特率。此值可以用于计算UART除数值。具体计算详见后续部分。本应用笔记假设用户已设置LHS MMR来为同步字节的全部8位计时(LHSCON1 = 0x62)。
图2. LIN同步字节
LIN波特率计算
使用LHS系统,用户在收到同步字节后会得到LHSVAL0中的值。LHSVAL0包含8 TBIT的等效值,此值用于产生UART除数COMDIV0、COMDIV1和小数除数COMDIV2的值。有关UART的更多信息,请参阅相关ADuC703x数据手册。
为利用标准波特率发生器计算COMDIV0/COMDIV1值,需使用如下基本UART方程式:
其中:
DL为COMDIV0和COMDIV1的值。
CD为时钟分频比。
就LHSVAL0而言,所需的波特率如下:
(LHSVAL0采用内部5.12 MHz时钟,假设将LHSCON1配置为测量8 TBIT.)将标准波特率方程式与所需波特率方程式合并:
仅使用标准波特率发生器方程式可得出所需的COMDIV0/ COMDIV1值。
为提高精度,使用ADuC703x小数除数和以上针对标准波特率发生器计算的DL值(COMDIV0/COMDIV1)。使用小数除数的方程式如下:
其中,M和N为COMDIV2值。
评论