如何计算E2E Profile 2的CRC
目录
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博客“汽车电子助手”,做您的好助手。
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐


所有评论(0)