在浏览项目整体框架的时候,发现
E2E
是一个不可绕开的点,而且处处可见Autosar
框架的踪迹,因此开一个专栏,每天学习一点相关知识点
E2E(end to end)
是Autosar
规范里规定的一种用于保证数据传输正确的概念,属于功能安全范畴
以汽车中两个ECU
通信来举例,两个节点通过CAN
总线进行通信,当ECU-A
要将数据传给EUC-B
时,采用E2E
校验对数据进行保护
E2E的作用和特点
E2E保护概念的核心是针对安全相关的数据交换,需要在运行时进行保护,以消除通信链路中可能的失效带来的影响。
关于数据交换过程中可能的失效模式有哪些,如下:
- 信息的重复发送,相同的信息被收到了多次
- 信息的丢失,整条或者信息的一部分在通信过程中丢失
- 信息的延迟,接收信息的时间异于期望的时间
- 信息的插入,多余的内容被插入到信息中
- 假冒的或者不正确的寻址,假冒的- - 发送者发送未认证的信息被接收端接受,或者正确的信息被错误的接收端接受
- 信息顺序错误,数据流中的信息顺序错误
- 信息破损,信息的内容被篡改
- 向多个接收端发送非对称信息,接收端收到的数据不一致
- 仅部分接收端收到发送者的信息
- 阻塞通信通道
参数计算
按照Autosar
规范的要求,E2E
存在一系列的Profile
(配置)每种配置在计算CRC
时有各自的机制、参数、数据格式,具有非常强的灵活性,用户可以根据实际需要选择配置
以
Profile 1
为例
CRC
:对数据进行多项式除法计算后的余数Counter
:用于计数每次增加1
,ECU-A
将计数值发给ECU-B
,ECU-B
可以依据收到的Counter
值确定是否接收及时Timeout monitoring
:用来评价Counter
是否丢失延时DataID
:提前定好的特殊数字,一般是16b
,按照E2E P01 DataID Mode
的不同分为1A,1B,1C
三种细分的配置,计算CRC
时对DataID
做不同处理
Profile 0x
分为E2E Profile 01
、E2E Profile 02
、E2E Profile 03
、E2E Profile 04
、E2E Profile 05
、E2E Profile 06
细节处可查询文档,此处不做概述
功能点
- 校验传输过程中是否存在数据的重复发送。(通过
Counter
校验) - 校验发送过程中是否存在消息丢失 (通过
Counter
校验) - 校验是否在指定时间内接收到信息 (通过
Counter
校验) - 校验传输过程中是否存在数据插入 (通过
DataID
校验) - 校验是否接收到伪装正确源地址的消息 (通过
DataID /CRC
校验) - 校验传输过程中是否发生数据损坏 (通过
CRC
校验) - 校验传输过程中是否发生数据顺序错误 (通过
Counter
校验) - 校验接收方是否从同一发送方接收到不同的信息 (通过
CRC
校验) - 校验发送方信息是否仅由一部分接收者接收 (通过
Counter
校验) - 提供
P01、 P02、 P04、 P05、 P06
数据保护与校验方法