继续学习AUTOSAR,看一下官方的文档。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输

       WriteMemoryByAddress 没有定义任何子功能

       诊断服务 WriteMemoryByAddress 没有定义任何子功能,因此不需要限制 DiagnosticWriteMemoryByAddress.category 的值。

       上面的表格,表达的是一个实例。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_建模_02

       此元类包含“按地址读取内存”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_03

       相关的建模流程

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_04

       ReadMemoryByAddress 没有定义任何子功能

       诊断服务 ReadMemoryByAddress 没有定义任何子功能,因此不需要限制 DiagnosticReadMemoryByAddress.category 的值。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_05

       这表示“Transfer Exit”诊断服务的一个实例。

       小结:跨度有点大,怎么突然间蹦到了另一个服务了?

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_06

       该元类包含“Transfer Exit”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_其他_07

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_08

       TransferExit 没有定义任何子功能

       诊断服务 TransferExit 没有定义任何子功能,因此不需要限制 DiagnosticTransferExit.category 的值。

       这表示“数据传输”诊断服务的一个实例。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_09

       该元类包含“数据传输”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_其他_10

       图 5.11:诊断服务 DataTransfer (0x36) 的建模

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_11

       DataTransfer 没有定义任何子功能

       诊断服务DataTransfer 没有定义任何子功能,因此不需要限制DiagnosticDataTransfer.category 的值。

       表格表示“请求下载”诊断服务的一个实例。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_建模_12

       这个元类包含“请求下载”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_13

       图 5.12:诊断服务 RequestDownload (0x34) 的建模

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_14

       RequestDownload 没有定义任何子功能

       诊断服务RequestDownload 没有定义任何子功能,因此不需要限制DiagnosticRequestDownload.category 的值。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_15

       这表示“请求上传”诊断服务的一个实例。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_16

       该元类包含“请求上传”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_17

       图 5.13:诊断服务 RequestDownload (0x35) 的建模

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_18

       RequestUpload 没有定义任何子功能

       诊断服务RequestUpload没有定义任何子功能,因此不需要对DiagnosticRequestUpload.category的值进行约束。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_19

       5.4.6 通信控制

     本章描述了诊断服务CommunicationControl(0x28)的建模。 此诊断服务的目的是启用或禁用 ISignalIPduGroups。

       但是,启用或禁用的实际实现显然不是直接在诊断堆栈内执行的。 它需要与 BswM 进行一些交互,BswM 反过来实现启用算法。

       因此,为此建模的元类不需要引用 ISignalIPduGroups 而是实现对 BswM 的模式请求。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_建模_20

       图 5.14:诊断服务 CommunicationControl (0x28) 的建模

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_21

       DiagnosticComControl.category 的允许值

       诊断服务 CommunicationControl 的子功能通过属性 DiagnosticComControl.category 标识。  DiagnosticComControl.category 的标准化值是:

       • ENABLE_RX_AND_TX

       • DISABLE_RX_AND_TX

       • ENABLE_RX_AND_DISABLE_TX

       • DISABLE_RX_AND_ENABLE_TX

       • ENABLE_RX_AND_DISABLE_TX_WITH_ENHANCED_ADDRESS_INFORMATION

       • ENABLE_RX_AND_TX_WITH

       文档中描述的这些值的含义是[ISOESS_INTHADDRESS_INFORMATION 的含义]。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_15

       类别值与 ISO 14229-1 中提到的数值的对应关系

       ISO 14229-1 [15] 标准文档定义了诊断服务 CommunicationControl 子功能的特定数值。

       根据 [TPS_DEXT_01057] 的数值与类别的预定义值的对应关系非常明显,因为 [TPS_DEXT_01057] 中定义的值的定义直接受到 ISO 14229-1 [15] 标准文档的启发。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_数据传输_23

       服务通信控制子功能的制造商特定值

       ISO 14229-1 [15] 标准文档,除了子功能的标准化数值之外,还保留了子功能标识符的数字范围供制造商特定使用。

       在这种情况下,可以为类别定义更多值,前提是使用自定义前缀以避免与 AUTOSAR 标准的进一步扩展(即 [TPS_DEXT_01057])发生潜在的名称冲突。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_24

       DiagnosticComControl.customSubFunctionNumber 的语义

       已引入属性 DiagnosticComControl.customSubFunctionNumber 以允许指定制造商或供应商特定值以表示诊断通信中的自定义子功能。

       由属性 DiagnosticComControl.category 和 DiagnosticComControl.customSubFunctionNumber 的值创建的元组完全指定了制造商或供应商特定子功能的标识。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_建模_25

       存在 DiagnosticComControl.customSubFunctionNumber

       属性 DiagnosticComControl.customSubFunctionNumber 仅在 DiagnosticComControl.category 的值超出 [TPS_DEXT_01057] 定义的标准化值集时才存在。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_16

       DiagnosticComControl.customSubFunctionNumber 的可能值

       鉴于 [constr_1334] 的实现,给定的 DiagnosticComControl.customSubFunctionNumber 的值应始终在闭区间 0x40 .. 0x5F(对于制造商特定子功能)或闭区间 0x60 .. 0x7E(对于供应商特定子函数)内 -职能)。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_27

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_28

       DiagnosticComControlClass 对 CommunicationClusters 状态管理的影响

       DiagnosticComControlClass 对 CommunicationClusters 状态管理的影响可能有两种替代结果:

       • 所有 CommunicationClusters 都会受到影响。 为此,属性 allChannels 能够识别适用的 CommunicationClusters。

       当预期的语义实际上是定义对所有通信集群的影响时,要求引用所有适用的通信集群似乎有悖常理。

       但是,可能存在不参与诊断工作流的私有 CommunicationClusters:这些需要保持在范围之外,因此明确标识适用的 CommunicationClusters 是有意义的。

       • 选定数量的通信集群受到影响。 这在概念上与其他用例不同,因为它需要一个附加属性来保留通常由 OEM 角色分配的子网编号。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_29

       DiagnosticComControlSpecificChannel.subnetNumber 的适用值范围

       属性 DiagnosticComControlSpecificChannel.subnetNumber 的值应在闭区间 1 .. 14 内。

       请注意,[constr_1336] 隐含的规定并不是随意引入的,而是从 ISO 14229-1 [15] 标准文档中获得其概念背景。

       显然,名为 CommunicationControl 的诊断服务将对封闭 ECU 的模式管理产生影响。 然而,这种影响不是由任何进一步的属性或引用定义的,DiagnosticComControl 就是影响。

通过定义一个 DiagnosticComControl 并将类别设置为适用的值之一(例如 ENABLE_RX_AND_TX),可以充分表达预期的语义。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_30

       属性 DiagnosticComControlSubNodeChannel.subNodeNumber 的允许值范围

       属性 DiagnosticComControlSubNodeChannel.subNodeNumber 的值不得超过闭区间 0 .. 65535。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_建模_31

       属性 DiagnosticComControl.specificChannel 和 DiagnosticComControl.subNodeChannel 之间的区别

       属性DiagnosticComControl.specificChannel 和DiagnosticComControl.subNodeChannel 之间的语义差异在于DiagnosticComControl.specificChannel 实际上指的是CommunicationCluster,而DiagnosticComControl.subNodeChannel 基本上指的是具有给定标识号的节点所连接到的CommunicationCluster。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_32

       这表示“通信控制”诊断服务的一个实例。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_其他_33

       这表示能够向受诊断服务“通信控制”约束的特定通道的定义添加更多属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_自定义_34

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_其他_35

       该元类包含由“通信控制”诊断服务的所有实例共享的属性。

833_AUTOSAR_TPS_DiagnosticExtractTemplate11_AUTOSAR支持的诊断服务3_autosar_36

       这表示能够向受诊断服务“通信控制”约束的特定子节点通道的定义添加更多属性。

       上面看完了根据地址访问存储的剩余部分,之后又看了通信控制部分。前者的行为比较单一,后者其实是存在很多自定义的情况的,因此,如果是看别人的软件实现的时候应该也会看到一些没有实际的标准可参考的情况。