仙居手机网站开发,黑龙江生产建设兵团知青网站,建设银行网站打印账单,汕头cms建站模板目录 1. 简介2. E2E P01 介绍2.1 P01 特性2.2 E2E_P01ConfigType 介绍2.3 E2E_P01CheckStateType 介绍 4 E2E 的接口5 E2E 故障状态E2E_P01MapStatusToSME2E Data Layout6 E2E 使用示例 1. 简介
E2E 保护的概念#xff1a; 保护运行时安全相关的数据交换#xff0c;免受通信… 目录 1. 简介2. E2E P01 介绍2.1 P01 特性2.2 E2E_P01ConfigType 介绍2.3 E2E_P01CheckStateType 介绍 4 E2E 的接口5 E2E 故障状态E2E_P01MapStatusToSME2E Data Layout6 E2E 使用示例 1. 简介
E2E 保护的概念 保护运行时安全相关的数据交换免受通信链路内故障的影响。 造成故障可能的原因包括
硬件随机故障CAN Trcv 的寄存器故障硬件EMC干扰软件设计/运行故障 为了保证接收端 能够接收到正确的数据或者在收到错误的数据时能够进行识别。 2. E2E P01 介绍
E2E 模块提供了多种不同的E2E 范式可以运用在不同的场景下。
E2E P01E2E P02E2E P04E2E P05E2E P06E2E P07E2E P11E2E P12 数字越大可以保护的数据量越大。 E2E 是通过对数据元素计算CRC 以及Counter 来进行保护接收方在根据接收到数据来判断是否正确 以报文DBC为例在下图中受保护的数据实际是Signal ADCU_ACC_SYS_FAILURE 但实际报文中还有Counter 以及 CheckSum 和DATA ID(报文ID) Counter 值随着报文的发送计数Checksum 根据 DATA ID Rollingcnt ADCU_ACC_SYS_FAILURE 计算得出。
2.1 P01 特性
P01的主要特性如下
Counter的阈值 是0-14Timeout 监控DATA ID 16位CRC 采用 CRC-8-SAE J1850非AUOTSAR 标准CRC8, 起始值和异或值都是0x0 Note: 有些主机厂的规范并不会按照AUTOSAR规范来实施按需要修改代码即可。
2.2 E2E_P01ConfigType 介绍
E2E P01 通过E2E_P01ConfigType 以适配不同的被保护数据元素如下图 E2E 保护数据的都是以数组的形式体现连续的Bit位如下图
因此需要通过E2E_P01ConfigType 来进行对应参数的配置
CounterOffSet Counter 的起始Bit 位CrcOffset CRC 值的起始Bit 位DataIDNibbleOffset DataID 的起始Bit 位DataIDMode ID的CRC计算模式有如下选项 4.1 E2E_P01_DATAID_BOTH DATA ID 两个Byte 都参与CRC计算 4.2 E2E_P01_DATAID_ALT 奇数Counter.Low Byte 参与计算偶数Counter High Byte 参与计算 4.3 E2E_P01_DATAID_LOW 仅Low Byte 有效 4.4 E2E_P01_DATAID_NIBBLE Low Byte 参与CRC计算高Byte的半个ByteLow Byte 随着数据传递 5. MaxDeltaCounterInit 当前后两帧数据的Counter差值大于该值就被判定为数据接收跳变 5. MaxnoNewOrRepeatedData 当接收到重复数据次数小于该配置参数则接收端不需要执行数据同步处理 6. SyncCounterInit 当执行数据同步处理时接收到正确数据次数必须大于该配置参数才能将状态有同步状态转移到OK状态
2.3 E2E_P01CheckStateType 介绍 4 E2E 的接口
E2E 主要利用两个接口进行数据的保护和验证
E2E_P01Protect 用于数据发送前的保护E2E_P01Check 用于数据接收后的校验
5 E2E 故障状态
E2E P01通过 E2E_P01CheckStatusType 来表示当前E2E的状态。 一共有一下几个故障状态
E2E_P01MapStatusToSM
将 E2E_P01CheckStateType 映射成 E2E_P01CheckStateType
E2E Data Layout
E2E受保护的数据中所有的元素应保证Byte对齐
6 E2E 使用示例
E2E 最典型的使用场景就是配合Com Tx /Rx Callout 进行报文的E2E计算与校验。
ComCallout E2E 发送
ComCallout E2E 接收
Com_ReceiveSignalGroup(SignalGroupA);
Com_ReceiveSignal(SignalGroupA_Sig1, SignalGroupBuffer-sig1Val);
Com_ReceiveSignal(SignalGroupA_Sig2, SignalGroupBuffer-sig2Val);
Com_ReceiveSingal(SignalGroupA_Sig3, SignalGroupBuffer-sig3Val);
ret_u8 E2E_P01Check( Config_SignalGroupA, State_SignalGroupA, SignalGroupBuffer);