ZHDA035 January 2026 MSPM0G3519
LIN 协议用取反校验和计算来实现 8 位错误检测机制。校验和计算包含连续字节求和,对于超过 0xFF 的值、进位管理、然后对最终总和进行一补码运算。
指定了两种校验和方法:
校验和算法:
实现示例:
受保护标识符:0x0D
数据域: [0xAB, 0xBC, 0xCD, 0xDE, 0xEF]
增强型校验和计算序列:
第 1 步:0x0D
初始值为 = 0x0D
第 2 步:添加 0xAB
0x0D + 0xAB = 0xB8
(由于总和小于 256,因此无需减去 255)
第 3 步:添加 0xBC
0xB8 + 0xBC = 0x174
当总和 ≥ 256 (0x100) 时,减去 255 (0xFF)
0x174 - 0xFF = 0x75
第 4 步:添加 0xCD
0x75 + 0xCD = 0x142
当 sum ≥ 256 时,减去 255
0x142 - 0xFF = 0x43
第 5 步:添加 0xDE
0x43 + 0xDE = 0x121
当 sum ≥ 256 时,减去 255
0x121 - 0xFF = 0x22
第 6 步:添加 0xEF
0x22 + 0xEF = 0x111
当 sum ≥ 256 时,减去 255
0x111 - 0xFF = 0x12
最后步骤:对结果取反
校验和 = 0xFF - 0x12 = 0xED
图 3-4 校验和传输下面随附的代码部分演示了计算及发送 LIN 校验和的过程。
图 3-5 传输校验和的软件序列