在AutoSar中,要完成一个诊断模块需要的依赖为:
Diagnostic Manager 模块在Autosar的架构设计:
架构图如下所示:

autosar软件设计:

解释下上边的架构:
Autosar应用程序的诊断模块分为许多的软件端。每个软件端代表具有自己诊断地址的独立诊断实体。
DM为每个安装的软件端提供一个专用的诊断服务器实例。所有诊断
服务器实例共享一个传输层实例(例如TCP/IP端口13400上的DoIP)。这个
DM根据接收到的目标向软件集群发送传入的UDS请求地址,并将请求转发给负责的诊断服务器实例。
介绍下DoIP
DoIP传输协议是通过以太网从诊断服务器传输诊断数据的协议客户端连接到ECU.
DoIP子组件:
诊断客户端和DoIP子组件之间的通信通过UDP和TCP套接字
AUTOSAR定义的接口API:
GetConversation(meta_info) 得到一个诊断会话
GetAllConversations() 得到所有的诊断会话
GetCurrentActiveConversations() 得到当前的会话
SetActivityNotifier(activity_status_notifier) 设置对话通知状态
GetActivityStatus() 得到当前的状态