AUTOSAR E2E Introduction

E2E – Functional Safety

E2E 用于保护安全相关的数据交互,以防止数据在交互过程中因为” FAULT” 导致数据完整性,时效性,合法性出现问题, 比如HW RANDOM FAULT 导致数据被篡改

E2E 的使用可以满足ISO26262 -6 对于数据安全传输的要求, 最高可以满足ASILD 的要求

需要强调的是,E2E 既可以保护SIGNAL COMMUNICATION(如CAN),也可以用来保护DATA Exchange

AUTOSAR E2E Introduction_第1张图片

Functional safety and communication

以下内容是ISO 26262 [14] part 6, annex D.2.4 对于安全相关数据传输所提出的要求,也是E2E 能够满足额要求

repetition of information

通过COUNTER保证

loss of information

通过COUNTER/TIMOUT保证

delay of information

通过COUNTER/TIMOUT保证

insertion of information

通过DATA ID 保证

masquerade or incorrect addressing of information

发送者的身份存在问题, 主要通过DATA ID /CRC保证

incorrect sequence of information

数据顺序不对,通过COUNTER连续性保证

corruption of information

数据被篡改,通过CRC 保证

asymmetric information sent from a sender to multiple receivers

were receivers do receive different information from the same sender通过CRC 来保证

information from a sender received by only a subset of the receivers

were some receivers do not receive the information.  通过Counter来保证(loss on specific receivers)

blocking access to a communication channel

were the access to a communication channel is blocked, 通过Counter来保证(loss or timeout)

E2E Usage

需要强调的是,E2E 既可以保护SIGNAL COMMUNICATION(如CAN),也可以用来保护DATA Exchange

Signal Communication Protection

对于Signal Communication Protection, E2E 有二种使用方式,如下。 无论采用哪种方式最终都会调用到E2E lib 中的E2E_Protect 和E2E_Check

E2E Transformer

对于这种方式的保护,需要引入ComXf 或者SomeIpXf,时序如下

Sender

AUTOSAR E2E Introduction_第2张图片

Receiver

AUTOSAR E2E Introduction_第3张图片

E2E Protection Wrapper

这种方式在AR 4.2 之后就被E2E Transformer所替换, 调用时序类似,RTE->E2E PW->E2E lib ,这种方式不在引入ComXf 或者SomeIpXf

Data Exchange Protection

对于数据保护, 则需要直接请求E2E lib 中的E2E_Protect 和E2E_Check

Sender

AUTOSAR E2E Introduction_第4张图片

Receiver

AUTOSAR E2E Introduction_第5张图片

E2E Profile

Attributes Comparation

Profile

DATAID

Counter

CRC

P1

16

4

CRC-8

Dynamic Signal Position

P2

8

4

CRC-8

Dynamic DATA ID

Dynamic Signal Position

P4

32

16

CRC-32

Dynamic Length

Fixed Signal Position

P5

16

8

CRC-16

Fixed Signal Position

P6

16

8

CRC-16

Dynamic Length

Fixed Signal Position

P7

32

32

CRC-32

Dynamic Length

Fixed Signal Position

P11

16

4

CRC-8

Fixed Signal Position

P22

8

4

CRC-8

Dynamic DATA ID

Fixed Signal Position

Attributes Transmission

Profile

DATAID

Counter

Length

CRC

P1

?

Y

N

Y

P2

N

Y

N

Y

P4

Y

Y

Y

Y

P5

N

Y

N

Y

P6

N

Y

Y

Y

P7

Y

Y

Y

Y

P11

?

Y

N

Y

P22

N

Y

N

Y

Profile 1

Parameter

Counter

长度为4 bit from 0 to 14 (0xff is reserved), 参与数据传输, 参与CRC的计算

Data ID

长度为16 bit

E2E_P01_DATAID_BOTH (0)

16-bit Data ID 都参与CRC的计算,但是不参与数据传输

E2E_P01_DATAID_ALT (1)

当COUNTER 为偶数时,Low Byte参与CRC的计算,但是不参与数据传输, 当COUNTER 为奇数时,High Byte参与CRC的计算,但是不参与数据传输

E2E_P01_DATAID_LOW (2)

只有 Low Byte参与CRC的计算,但是不参与数据传输

E2E_P01_DATAID_NIBBLE (3)

High Byte的 高4 bit 不使用, 不参与数据传输, bu参与CRC的计算

High Byte的 低4 bit, 参与数据传输, 参与CRC的计算

Low Byte 不参与数据传输, 参与CRC的计算

CRC

CRC-8-SAE J1850 - 0x1D (x8 + x4 + x3 + x2 + 1), 8bit

Status

E2E_P01STATUS_OK (OK)

E2E_P01STATUS_NONEWDATA (Error)

E2E_P01STATUS_WRONGCRC (Error)

E2E_P01STATUS_SYNC(NOT VALID)

当检测到收到的数据异常之后, 即使再次收到正确的数据也不能立即返回OK,此时需要返回SYNC , 当连续几个数据都正确才会返回OK

E2E_P01STATUS_INITIAL (INIT)

第一次收到该数据

E2E_P01STATUS_REPEATED (Error)

E2E_P01STATUS_OKSOMELOST (OK)

数据CRC 正确,但是CONTER 变化超过1,但是还未超过最大容忍counter (MaxDeltaCounter) ,则返回这个数据

E2E_P01STATUS_WRONGSEQUENCE (Error)

数据CRC 正确,但是CONTER 变化超过最大容忍counter (MaxDeltaCounter) ,则返回这个数据

Variant

只是所有的layout位置固定了, 便于沟通

1A

1. CRC is the 0th byte in the signal group (i.e. starts with bit offset 0)

2. Alive counter is located in lowest 4 bits of 1st byte (i.e. starts with bit offset 8)

3. E2E_P01DataIDMode = E2E_P01_DATAID_BOTH

4. SignalIPdu.unusedBitPattern = 0xFF.

1B

区别于1A, byte 1 高4 bits 需要填充默认值

1. CRC is the 0th byte in the signal group (i.e. starts with bit offset 0)

2. Alive counter is located in lowest 4 bits of 1st byte (i.e. starts with bit offset 8)

3. E2E_P01DataIDMode = E2E_P01_DATAID_ALTERNATING

4. SignalIPdu.unusedBitPattern = 0xFF.

1C

1. CRC is the 0th byte in the signal group (i.e. starts with bit offset 0)

2. Alive counter is located in lowest 4 bits of 1st byte (i.e. starts with bit offset 8)

3. The Data ID nibble is located in the highest 4 bits of 1st byte (i.e. starts with bit offset 12)

4. E2E_P01DataIDMode = E2E_P01_DATAID_NIBBLE

5. SignalIPdu.unusedBitPattern = 0xFF.

Profile 2

Parameter

Counter

长度为4 bit from 0 to 15参与数据传输, 参与CRC的计算

Data ID

长度为8 bit , 不参与数据传输, 参与CRC的计算, Data ID 是动态变化的,依据Counter的不同而不同, DataID=DataIDList[Counter]

CRC

8 bit

Polynomial: 0x2F (x8 + x5 + x3 + x2 + x + 1)

Start value: 0xFF

Final XOR-value: 0xFF

Profile 4

Profile4用于传输大数据,区别Profile 1,2 Profile 4需要传输一个Header, 格式如下

Parameter

Counter

长度为16 bit,参与数据传输, 参与CRC的计算

Data ID

长度为32 bit,参与数据传输, 参与CRC的计算

CRC

32 bits

polynomial in normal form 0x1F4ACFB13

Length

16 bits, 参与数据传输, 参与CRC的计算, 传输Length便于动态改变传输数据的长度

Status

AUTOSAR E2E Introduction_第6张图片

Profile 5

Profile5用于传输大数据,区别月Profile 1,2 Profile 5需要传输一个Header, 格式如下

Parameter

Counter

长度为8 bit,参与数据传输, 参与CRC的计算

Data ID

长度为16 bit,不参与数据传输, 参与CRC的计算

CRC

16 bits, polynomial in normal form 0x1021

Status

AUTOSAR E2E Introduction_第7张图片

Profile 6

Profile6用于传输大数据,区别于Profile 1,2 Profile 6需要传输一个Header,格式如下

Parameter

Counter

长度为8 bit,参与数据传输, 参与CRC的计算

Data ID

长度为16 bit,不参与数据传输, 参与CRC的计算

Length

16 bits, 参与数据传输, 参与CRC的计算, 传输Length便于动态改变传输数据的长度

CRC

16 bits, polynomial in normal form 0x1021

Status

AUTOSAR E2E Introduction_第8张图片

Profile 7

Parameter

Counter

长度为32 bit,参与数据传输, 参与CRC的计算

Data ID

长度为32 bit,参与数据传输, 参与CRC的计算

Length

32 bits, 参与数据传输, 参与CRC的计算, 传输Length便于动态改变传输数据的长度

CRC

64 bits, polynomial in normal form 0x42F0E1EBA9EA3693,

Status

AUTOSAR E2E Introduction_第9张图片

Profile 11

Profile 1的改进版,减少了Data ID Mode,另外通过设置Header固定了Parameter的传输位置, 区别于Profile 1,User 不能设置Parameter的位置, 必须使用11C/11A Variant

Parameter

Counter

长度为4参与数据传输, 参与CRC的计算

Data ID

长度为16 bit

E2E_P11_DATAID_BOTH(0)

16 bit Data ID 都参与CRC的计算,但是不参与数据传输

E2E_P11_DATAID_NIBBLE(3)

High Byte的 高4 bit 不使用, 不参与数据传输, 参与CRC的计算

High Byte的 低4 bit, 参与数据传输, 参与CRC的计算

Low Byte 不参与数据传输, 参与CRC的计算

CRC

CRC-8-SAE J1850 - 0x1D (x8 + x4 + x3 + x2 + 1), 8bit

Status

AUTOSAR E2E Introduction_第10张图片

Variant

11A

1. CRC is the 0th byte in the signal group (i.e. starts with bit offset 0)

2. Alive counter is located in lowest 4 bits of 1st byte (i.e. starts with bit offset 8)

3. E2E_P11DataIDMode = E2E_P11_DATAID_BOTH

4. SignalIPdu.unusedBitPattern = 0xFF.

11C

1. CRC is the 0th byte in the signal group (i.e. starts with bit offset 0)

2. Alive counter is located in lowest 4 bits of 1st byte (i.e. starts with bit offset 8)

3. The Data ID nibble is located in the highest 4 bits of 1st byte (i.e. starts with bit offset 12)

4. E2E_P11DataIDMode = E2E_P11_DATAID_NIBBLE

5. SignalIPdu.unusedBitPattern = 0xFF.

Profile 22

Profile 2的改进版,通过设置Header固定了Parameter的传输位置, 区别于Profile 2,User 不能设置Parameter的位置,

Parameter

Counter

长度为4 bit from 0 to 15 (0xff is reserved), 参与数据传输, 参与CRC的计算

Data ID

长度为8 bit , 不参与数据传输, 参与CRC的计算, Data ID 是动态变化的,依据Counter的不同而不同, DataID=DataIDList[Counter]

CRC

8 bit

Polynomial: 0x2F (x8 + x5 + x3 + x2 + x + 1)

Status

AUTOSAR E2E Introduction_第11张图片

你可能感兴趣的:(AUTOSAR,autosar)