目录
1.1 8-bit 0x2F polynomial CRC算法的介绍
2.1 主机厂向供应商提供的E2E Profile 2的配置参数信息
推荐阅读链接:
1 E2E Profile 2使用的CRC算法
在Autosar文档AUTOSAR_SWS_E2ELibrary(Specification of SW-C End-to-End Communication Protection Library).pdf中,介绍了E2E Profile 2的CRC算法引用自文档AUTOSAR_SWS_CRCLibrary(Specification of CRC Routines).pdf中的8-bit 0x2F polynomial CRC,并将其封装为接口函数Crc_CalculateCRC8H2F()。
1.1 8-bit 0x2F polynomial CRC算法的介绍
CRC 模块的 Crc_CalculateCRC8H2F() 函数应基于生成多项式 0x2F 实现 CRC8 例程:
CRC result width: 循环冗余校验的位长度 | 8 bits |
Polynomial: 多项式 | 2Fh |
Initial value: 初始值 | FFh |
Input data reflected: 反映的输入数据 | No |
Result data reflected: 反映的结果数据 | No |
XOR value: | FFh |
Check: 校验 | DFh |
Magic check: 魔法校验 | 42h |
CRC 模块的 Crc_CalculateCRC8H2F() 函数应提供以下 CRC 结果:
Data bytes (hexadecimal) | CRC | ||||||||
00 | 00 | 00 | 00 | 12 | |||||
F2 | 01 | 83 | C2 | ||||||
0F | AA | 00 | 55 | C6 | |||||
00 | FF | 55 | 11 | 77 | |||||
33 | 22 | 55 | AA | BB | CC | DD | EE | FF | 11 |
92 | 6B | 55 | 33 | ||||||
FF | FF | FF | FF | 6C |
2 E2E Profile 2计算CRC过程
2.1 主机厂向供应商提供的E2E Profile 2的配置参数信息
E2E Profile 2的参数用E2E_P02ConfigType描述,包含以下信息,这些参数将被用于接口函数E2E_P02Protect和E2E_P02Check:
DataLength | uint16 | 数据长度(单位Bit)。该值应为 8 的倍数。 |
DataIDList | uint8[16] | 一个由适当选择的Data ID 组成的数组(长度16个Byte),用于防止伪装。 |
MaxDeltaCounterInit | uint8 | 两个连续接收到的有效数据的两个counter值之间的初始最大允许间隔。 例如,如果接收方收到counter为 1 的数据,且 MaxDeltaCounterInit 为 1,那么在下一次接收时,接收方可以接收counter值为 2 和 3 的数据,但不能接受counter值为 4 的数据。 注意,如果接收方在连续读取时没有接收到新数据,那么接收方会将容差递增 1。 |
MaxNoNewOrRepeatedData | uint8 | 接收方在正常通信条件下预计不会超过的最大缺失或重复数据量。 |
SyncCounterInit | uint8 | 验证counter一致性所需的数据量,在检测到接收counter出现意外行为后,必须接收到有效counter(即counter在允许的锁定范围内)。 |
Offset | uint16 | Data[]数组中 E2E header的Offset(单位Bit)。 它应为:0 ≤ Offset ≤ DataLength-(2*8)。 |
2.2 E2E Profile 2的流程图
接口函数E2E_P02Protect计算一个CRC的流程图:
2.3 推荐:手动计算E2E Profile 2的CRC
假设8位的CRC信号位置在Byte0,4位的Counter信号位置在Byte1的低四位,整个数据8个Byte,DataIDList为{ 156, 204, 225, 76, 201, 57, 227, 83, 120, 51, 21, 73, 85, 10, 98, 131 }。
8个字节的数据为:
AD F6 7F B9 00 21 00 03
CRC计算网站:
CRC在线计算 (lddgo.net)https://www.lddgo.net/encrypt/crc
结尾
获取更多“汽车电子资讯”和“工具链使用”,
请关注CSDN博客“汽车电子助手”,做您的好助手。