SOVD Service-Oriented Vehicle Diagnostics面向服务的车辆诊断UDS,HPC,HTTP, REST, JSON, OAuth

ASAM SOVD1.0.0标准概述

ASAM SOVD (Service-Oriented Vehicle Diagnostics,面向服务的车辆诊断) 定义了一个与基于软件的车辆进行诊断和通信的接口API。SOVD是一个灵活的标准,提供了统一的访问HPC (High Performance Computing,高性能计算机) 及其相关应用的诊断内容,以及经典的ECU等。

随着自动驾驶技术的发展,车辆配置变得越来越复杂,车载软件也在迅速增长:基于高性能计算、多操作系统、不同应用程序及其依赖关系的新架构也给诊断工作带来了重大挑战。诊断的重点从识别硬件错误逐渐扩展到分析软件问题,因此带来了巨大的挑战。因为车辆的内容是动态变化的,同时当诊断通信被用于控制车辆复杂的更新过程时,诊断任务的范围也急剧增加。

目前的诊断以ECU为核心,严重依赖于UDS (Unified Diagnostic Services,统一诊断服务) 协议。UDS是一种静态的诊断方法,无法应用于动态的软件诊断任务。因此,为HPC诊断需求扩展UDS协议将不够灵活,无法满足必要的软件分析需求。

这就是ASAM开发与制定SOVD的原因。该标准旨在为所有诊断任务以及软件更新(跨车辆、车型)提供一个API。SOVD是具有一致性的方法,用于全新系统,也可用于传统的传感器/执行器系统,同时,ASAM SOVD可用于近程、远程和车载三种应用场景。SOVD是一个自描述API,还支持无需外部描述文件的诊断,有别于当前的主流技术。

ASAM SOVD的开发旨在保持现有的程序、技术和方法的前提下,满足车载软件诊断的相关需求和挑战。因此,ASAM SOVD既涵盖了传统的用例(数据访问、故障信息、内部软件功能控制等),也涵盖了与HPC相关的诊断用例(车载软件更新、日志记录、跟踪、系统信息访问、内容动态发现等)。另一方面,SOVD并非为了取代广泛使用的技术,如UDS协议,而是与其共存,同时增强诊断通信功能,更好地支持新技术的发展与应用。

ASAM SOVD1.0.0新特性介绍

ASAM SOVD的主要内容与更新包括以下部分:

  • SOVD为诊断提供了新的接口API;
  • 适用于远程、近程和车载应用场景;
  • 支持最先进的IT技术(HTTP, REST, JSON, OAuth);
  • 诊断可以独立于诊断数据描述文件;
  • 整个计算过程被封装,使无状态访问成为可能;
  • 客户端实现不需要汽车特定的堆栈。

    ASAM SOVD (vector.com)

    ASAM SOVD的架构示意图:

    ASAM SOVD总体特性包括:

    • 可覆盖传统诊断用例:
    • 数据访问(Data Access);
    • 故障信息(Fault Information);
    • 控制内部软件功能(Internal Software-functions)。

      可覆盖高性能计算相关的诊断用例:

      • 车辆软件升级(Software update);
      • 记录(Logging);
      • 访问系统信息(Access to system information);
      • 动态内容发现(Dynamic discovery of content);

        在能力检测方面,可进行相关实体与资源的检查与发现:

        • 发现包含的实体;
        • 查询实体的子实体;
        • 查询实体相关的其他实体;
        • 查询实体功能;
        • 代表实体区域的拓扑视图,能够代表面向领域和面向区域的体系结构;

          访问功能描述内容:

          • 查询在线能力描述;
          • 查询模式信息,用于内容处理;

            HTTP, REST, JSON, OAuth

            http2.0协议

            深入理解http2.0协议,看这篇就够了! - 知乎 (zhihu.com)

            HTTP/2 (http2.github.io)

            HTML、CSS 、JS

            HTML/CSS/JS 时间轴 | 菜鸟工具 (jyshare.com)

            Cascading Style Sheets,层叠样式表

            json,JavaScript Object Notation

            json的全称为:JavaScript Object Notation,是一种轻量级的数据交互格式。它基于 ECMAScript (欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。【以上来自于百度百科】

            简单来说:json就是一种在各个编程语言中流通的数据格式,负责不同编程语言中的数据传递和交互。

            OAuth2.0

            OAuth 2.0 — OAuth

            OAuth 不是一个API或者服务,而是一个验证授权(Authorization)的开放标准,所有人都有基于这个标准实现自己的OAuth。

            更具体来说,OAuth是一个标准,app可以用来实现secure delegated access. OAuth基于HTTPS,以及APIs,Service应用使用access token来进行身份验证。

            OAuth主要有OAuth 1.0a和OAuth 2.0两个版本,并且二者完全不同,且不兼容。OAuth2.0 是目前广泛使用的版本,我们多数谈论OAuth时,为OAuth2.0。

            OAuth2.0 详解 - 知乎 (zhihu.com)

            REST

            REST(Representational State Transfer)软件架构

            REST - 廖雪峰的官方网站 (liaoxuefeng.com)