9.1 概述
诊断管理实现了基于ISO 14229-1 (UDS)和ISO 13400-2 (DoIP)的ISO 14229-5 (UDSonIP)。
诊断管理使用ara::com表示服务层上的自适应平台的功能集群。它是独立于语言的,将来可能会与其他语言绑定(如Java)一起提供自适应应用程序。
配置是基于Classic平台的AUTOSAR诊断提取模板(DEXT)。DEXT开始进入市场,并已被多家OEM和供应商使用和支持。
支持的传输层是DoIP。Adaptive平台将来会支持其他传输层比如CAN。可能还计划支持定制传输层,因为DoIP通常不用作车载协议。
范围是从Adaptive应用程序中抽象诊断协议。这些接口与Classic平台(例如SetEventStatus)保持一致,以便为Classic平台开发人员提供方便的更改。
通常在AUTOSAR Classic 平台中,诊断是针对一个物理的带微控制器的ECU运行DCM和DEM功能。 但是,AUTOSAR adaptive 平台考虑将来的多个处理单元(多个微控制器、微处理器、gpu等)的ECU的用例和应用程序将来的动态扩展性。这将需要一种新的机制来处理AP机器的不同部分。
原子更新/扩展部分由软件集群SoftwareCluster(SWCL)管理。软件集群包含与更新安装或部署一组特定的新功能/应用程序相关的所有部分。因此,Adaptive Diagnostics Manager为每个已安装的SoftwareCluster支持一个自己的诊断服务器实例,该实例具有自己的诊断地址。请注意,这个软件集群还与UCM的软件包耦合,以便软件集群可以更新或新引入到机器中。
9.2 诊断通信子集
诊断通信子集群类似Classic平台的DCM,它实现了诊断服务器。目前支持的服务是有限的,但是在未来的版本中,将进一步扩展对UDS服务的支持。
除了ISO 14229-1的伪并行客户机处理之外,还扩展了诊断管理器(DM),以支持对不同诊断客户机的完全并行处理。这满足了现代汽车架构的需要包括用于数据收集的多个诊断客户端(测试人员)、来自后端的访问、SOTA(软件无线传输),以及最后的经典研讨会和生产用例。
诊断感知Adaptive应用程序(AA)
在这种情况下,DM将一个传入的诊断请求(通常是常规控制或DID相关服务)发送给AA,AA提供了显示的诊断相关接口(UDS服务类型的特定服务接口,比如日常控制服务接口包含"start", "requestResult"和"Stop".并且如应用程序错误一样每个方法都定义了特定的UDS错误码)。
AA从UINT8-Array解析参数或序列化成UINT8-Array
在这个用例中,以请求中的data-parameter#1开始的整个UDS数据参数,和以正响应中的data-parameter#1开始的整个UDS数据参数作为In /OUT参数作为服务方法的UINT8 Vectors以输入/输出参数给出。对于这样的用例,没有特定的映射到UDS请求,只是简单的转发,并且具有非常灵活的请求处理方式,所以引入了GenericUDSService接口。
方法参数以输入/输出形式给出
在这个用例中,根据与DiagExt中的数据参数#N相关的diagnostics dataelement的类型定义,以请求中的data-parameter#1开始的整个UDS数据参数,和以正响应中的data-parameter#1开始的整个UDS数据参数作为In /OUT参数以不同的输入/输出参数给出。
9.2.1 诊断对话
如上面提到的那样由于DM要求伪并行和全并行客户端处理,因此它支持在诊断客户端和诊断服务器之间映射一个不同的对话。诊断服务器由相应UDS请求的目标地址标识,并在Adaptive平台的运行期间动态分配。
注意:关于ara::diag部分的开发讨论正在进行。到目前为止,还没有指定任何内容。
9.3 时间内存子集
时间内存自己就像Classic平台的DEM一样,它负责DTC的管理
支持的功能和接口与Classic平台一样。诊断监控表示为(诊断)事件可以和DTC结合。DTC可以分配主内存(通过 19 02/04/06访问)来配置用户内存(通过0x19 17/18/19访问)。DTC可以存储Snapshot- 和ExtendedDataRecords.
支持Counter-和Timebase Debouncing。另外,DM提供关于内部转换的通知:感兴趣的各方会被告知DTC状态字节变化,监控诊断事件重新初始化的需要以及Snapshot- 或ExtendedDataRecord是否改变。
操作周期变化对老化和敏捷计算非常重要,需要转发给DM。
同样适用于存储和 启用条件。变化需要转发给DM。通过启用条件, DTC的一般便哈可以被控制。比如 在电压条件下禁用所有网络相关监视器。通过存储条件,DTC不能存储在DTC存储器中。