全部学习汇总: https://github.com/GreyZhang/hack_autosar
继续学习AUTOSAR,看一下官方文档。
根据 [19],以下约束适用于 EndToEndProtection 的属性(请注意,附加 M1 约束适用于 [19] 中所述):
EndToEndDescription 中类别的值
EndToEndDescription 的属性类别可以具有以下值:
• NONE
• PROFILE_01
• PROFILE_02
EndToEndDescription 的类别
[constr_1110] 中提到的 EndToEndDescription 类别的值已标准化并保留用于以 AUTOSAR 标准预见的方式使用。 此外,绝对可以使用类别的标准化值以外的值。
这方面将在 AUTOSAR 标准的后续修订版中得到更详细的说明。目前需要注意的是,使用非标准化值不应与未来的标准化值产生名称冲突。 这可以通过使用例如类值的公司特定前缀或后缀。
类的语义是:
NONE
这表明 E2E 框架应分别为给定的发送方/接收方和给定的 iSignalIPdu 启用。 应生成包装器代码,但不应调用 E2E 库保护例程。 E2E 包装器用作传递。
这可以在给定系统中尚未选择配置文件选择或配置文件选项时使用,但要求可以在考虑 E2E 库的情况下成功构建系统。 这也适用于从/向具有/不具有 E2E 保护的系统迁移。
类别设置为 NONE
如果属性存在且类别设置为 NONE,则属性将被忽略。
PROFILE_01
这表示 E2E 配置文件 1(使用 SAE CRC8、隐式 16 位数据 ID 和 4 位活动计数器)的设置适用。
PROFILE_01 中存在属性
PROFILE_01,应存在以下属性:
• dataLength
• dataId
请注意,属性 maxDeltaCounterInit 也是 PROFILE_01 的一部分,但它不一定必须存在,前提是 ReceiverComSpec.maxDeltaCounterInit 存在。
EndToEndDescription 拥有的属性 maxDeltaCounterInit 的解释
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同,并且定义了 RPortPrototype.requiredComSpec.maxDeltaCounterInit,则 RPortPrototype.requiredComSpec.maxDeltaCounterInit 的值应优先于 EndToEndProtection.maxDeltaCounterInit 的值。
如果 EndToEndDescription 的 category 值设置为 PROFILE_01 并且未满足所描述的有关引用的 VariableDataPrototype 的对应规则或未定义 RPortPrototype.requiredComSpec.maxDeltaCounterInit,则应存在 EndToEndProtection.endToEndProfile.maxDeltaCounterInit。
PROFILE_01 中 dataId 的约束
在 PROFILE_01 中,集合中应只有一个元素,适用的取值范围为 [0 .. 65535]。
PROFILE_01 中 dataIdMode 的约束
在 PROFILE_01 中,dataIdMode 的适用值范围是 [0 .. 3]。
PROFILE_01 中 crcOffset 的约束
在 PROFILE_01 中,crcOffset 的适用值范围是 [0 .. 65535]。 对于该属性的值,约束值 mod 4 = 0 适用。
PROFILE_01 中 counterOffset 的约束
在 PROFILE_01 中,counterOffset 的适用值范围是 [0 .. 65535]。 对于该属性的值,约束值 mod 4 = 0 适用。
PROFILE_01 中 dataLength 的约束
在 PROFILE_01 中,dataLength 的适用值范围是 [0 .. 240]。 对于该属性的值,约束值 mod 8 = 0 适用。
PROFILE_01 中 maxDeltaCounterInit 的约束
在 PROFILE_01 中,EndToEndDescription.maxDeltaCounterInit 和 ReceiverComSpec.maxDeltaCounterInit 的适用值范围是 [0 .. 14]。
PROFILE_01 中 maxNoNewOrRepeatedData 的约束
在 PROFILE_01 中,EndToEndDescription.maxNoNewOrRepeatedData 和 ReceiverComSpec.maxNoNewOrRepeatedData 的适用值范围是 [0 .. 14]。
PROFILE_01 中 syncCounterInit 的约束
在 PROFILE_01 中,EndToEndDescription.syncCounterInit 和 ReceiverComSpec.syncCounterInit 的适用值范围是 [0 .. 14]。
解析 PROFILE_01 中 EndToEndDescription 拥有的属性 maxNoNewOrRepeatedData
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同,并且定义了 RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData,则 RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData 的值应优先于 EndToendToEndProteedProtofile.RepeatedData 的值。
如果 EndToEndDescription 的 category 值设置为 PROFILE_01 并且未满足所描述的有关引用的 VariableDataPrototype 的对应规则或未定义 RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData,则 EndToEndProtection.endToEndProfile.maxNoNewOrRepeatedData 应存在。
PROFILE_01中EndToEndDescription拥有的属性syncCounterInit的解释
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同且定义了 RPortPrototype.requiredComSpec.syncCounterInit,则 RPortPrototype.requiredComSpec.syncCounterInit 的值应优先于 EndToEndProtection.endToCounterInit.sync 的值。
如果EndToEndDescription 的category 的值设置为PROFILE_01 并且未满足所描述的有关引用的VariableDataPrototype 的对应规则或未定义RPortPrototype.requiredComSpec.syncCounterInit,则应存在EndToEndProtection.endToEndProfile.syncCounterInit。
EndToEndDescription.dataIdNibbleOffset 适用性
只有当 EndToEndDescription.dataIdMode 设置为值 3 并且同时 EndToEndDescription.category 设置为 PROFILE_01 时,才应使用 EndToEndDescription.dataIdNibbleOffset。
EndToEndDescription.dataIdNibbleOffset 的默认值
如果 EndToEndDescription.dataIdMode 设置为值 3,同时 EndToEndDescription.category 设置为值 PROFILE_01 且未指定 EndToEndDescription.dataIdNibbleOffset,则应为属性 EndToEndDescription.dataIdNibbleOffset 假定默认值 12(位) .
PROFILE_02 这表示 E2E 配置文件 2 的设置适用。
PROFILE_02 中存在属性
在 PROFILE_02 中,仅应存在以下属性:
• dataLength
• dataId
请注意,属性 maxDeltaCounterInit 也是 PROFILE_01 的一部分,但它不一定必须存在,前提是 ReceiverComSpec.maxDeltaCounterInit 存在。
EndToEndDescription的属性maxDeltaCounterInit解读
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同,并且定义了 RPortPrototype.requiredComSpec.maxDeltaCounterInit,则 RPortPrototype.requiredComSpec.maxDeltaCounterInit 的值应优先于 EndToEndProtection.maxDeltaCounterInit 的值。
如果 EndToEndDescription 的 category 值设置为 PROFILE_02 并且未满足所描述的有关引用的 VariableDataPrototype 的对应规则或未定义 RPortPrototype.requiredComSpec.maxDeltaCounterInit,则应存在 EndToEndProtection.endToEndProfile.maxDeltaCounterInit。
批注:跟前面的内容有一些类似了,这个是PROFILE_02里面的一部分数值约束的说明。
解析 PROFILE_02 中 EndToEndDescription 拥有的属性 maxNoNewOrRepeatedData
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同,并且定义了 RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData,则 RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData 的值应优先于 EndToendToEndProteedProtofile.RepeatedData 的值。
如果EndToEndDescription 的category 的值设置为PROFILE_02 并且未满足所描述的有关引用的VariableDataPrototype 的对应规则或未定义RPortPrototype.requiredComSpec.maxNoNewOrRepeatedData,则EndToEndProtection.endToEndProfile.maxNoNewOrRepeatedData 应存在。
PROFILE_02中EndToEndDescription拥有的属性syncCounterInit解读
如果 EndToEndProtection.endToEndProtectionVariablePrototype.receiver 与 RPortPrototype.requiredComSpec.dataElement 相同且定义了 RPortPrototype.requiredComSpec.syncCounterInit,则 RPortPrototype.requiredComSpec.syncCounterInit 的值应优先于 EndToEndProtection.endToCounterInit.sync 的值。
如果EndToEndDescription 的category 的值设置为PROFILE_02 并且没有满足所描述的有关引用的VariableDataPrototype 的对应规则或未定义RPortPrototype.requiredComSpec.syncCounterInit,则EndToEndProtection.endToEndProfile.syncCounterInit 应存在。
批注:这一部分其实也可以拿前面的PROFILE_01来类比看了,都是差不多的。
这表示收集 EndToEndProtectionInformation 的容器。
该元类代表描述特定端到端保护的能力。
可以保护软件组件之间交换的数据。 为此,对于每个要保护的通信,用户定义一个单独的 EndToEndProtection(指定一组保护设置)并引用作为发送方角色的 variableDataPrototype 和作为接收方角色的一个或多个 variableDataPrototypes。 有关详细信息,请参阅 EndToEnd 库。
请注意,使用端到端保护明确支持一个发送方可以对应一个或多个接收方。
EndToEndProtectionVariablePrototypes 由 EndToEndProtection 聚合
由同一个 EndToEndProtection 聚合的所有 EndToEndProtectionVariablePrototypes 应指代相同的发送者。
这部分,把端对端的保护部分看完了。对我来说,这是一个较为陌生的模块,而这部分在未来的工作中倒可能会是一个热点。