• Adaptive AUTOSAR Diagnostic Manager模块介绍(一)


    在AutoSar中,要完成一个诊断模块需要的依赖为:

    • 1.基础的应用管理:包括初始化以及进程状态管理
      2.中间层通讯:ara::com 需要应用程序提供故障记忆、寿命数据、例行控制等所需信息,通常这些是由模块Socal、SomeIpBinding和IpcBinding组成
      3.ara::per : 用来存储数据保存,比如开机的参数、永久存储的数据等
      4.ara::em : 进程管理模块的管理
      5.ara::log : 日志管理
      6.Libjason: 解析jason的文件格式
      7.Libvector : vector容器用来存储和处理消息的内容等
      8.Thread : 线程创建等
      9.iostream: 输入输出模块

    Diagnostic Manager 模块在Autosar的架构设计:

    1. UDS 服务 诊断服务提供
    2. ara::diag autosar诊断模块的库
    3. UDSTransportProtocolApi UDS传输协议的c++ 接口
    4. DoIp 实现数据的传输

    架构图如下所示:
    在这里插入图片描述
    autosar软件设计:
    在这里插入图片描述
    解释下上边的架构:
    Autosar应用程序的诊断模块分为许多的软件端。每个软件端代表具有自己诊断地址的独立诊断实体。
    DM为每个安装的软件端提供一个专用的诊断服务器实例。所有诊断
    服务器实例共享一个传输层实例(例如TCP/IP端口13400上的DoIP)。这个
    DM根据接收到的目标向软件集群发送传入的UDS请求地址,并将请求转发给负责的诊断服务器实例。
    介绍下DoIP
    DoIP传输协议是通过以太网从诊断服务器传输诊断数据的协议客户端连接到ECU.
    DoIP子组件:

    • Socket Handling: UDP 或者 TCP socket构建通讯
    • Message Validation: 消息验证,一系列的接口可以校验消息的确认
    • Vehicle Identification: ECU端的识别和认证
    • Node Information: 当前端点的状态
    • Routing Activation: DoIP客户端管理
    • Diagnostic Messages: 诊断消息的实体

    诊断客户端和DoIP子组件之间的通信通过UDP和TCP套接字
    AUTOSAR定义的接口API:
    GetConversation(meta_info) 得到一个诊断会话
    GetAllConversations() 得到所有的诊断会话
    GetCurrentActiveConversations() 得到当前的会话
    SetActivityNotifier(activity_status_notifier) 设置对话通知状态
    GetActivityStatus() 得到当前的状态

  • 相关阅读:
    [UUCTF 2022 新生赛]ezpop - 反序列化+字符串逃逸【***】
    java-net-php-python-jspm现代化社区去也管理系统计算机毕业设计程序
    Vivado XADC IP核 使用详解
    “华为杯”研究生数学建模竞赛2015年-【华为杯】E题:数控加工刀具运动的优化控制模型研究(附MATLAB代码实现)
    树莓 LUMA-OLED.EXAMPLE使用
    YUV图像格式
    【EKF】EKF原理
    深入理解linux shell 中的exec内置命令&ubuntu bash
    Go 异常处理流程
    mongodb删除集合属性、循环更新
  • 原文地址:https://blog.csdn.net/Youngboy007/article/details/126094946