当前位置: 首页 > article >正文

SOME/IP--协议英文原文讲解1

前言

SOME/IP协议越来越多的用于汽车电子行业中,关于协议详细完全的中文资料却没有,所以我将结合工作经验并对照英文原版协议做一系列的文章。基本分三大块:

1. SOME/IP协议讲解

2. SOME/IP-SD协议讲解

3. python/C++举例调试讲解

一、SOME/IP由来及协议下载

1. 历史

SOME/IP(Scalable service-Oriented MiddlewarE over IP)是由宝马的Lars Völker博士在2011年设计并提出的。

设计SOME/IP协议的主要动机是为了满足汽车电子系统对高效、可靠通信的需求。随着汽车电子系统的日益复杂,传统的通信协议如CAN、LIN等已经难以满足高数据吞吐量和复杂通信模式的要求。SOME/IP协议作为一种面向服务的通信协议,支持远程过程调用(RPC)、事件通知和底层序列化/线格式,能够很好地适应汽车电子系统的发展趋势。

具体来说,SOME/IP协议的设计目的包括:

  1. 提供一种高效、可靠的通信方式,使得车辆内部的各种系统和组件可以相互交互,实现更高级别的功能和服务。
  2. 支持服务导向架构(SOA),允许车辆的各个电子控制单元(ECUs)以服务提供者或服务消费者的身份互动,从而实现更加灵活和可扩展的通信模式。
  3. 通过远程过程调用(RPC)机制,实现不同ECU之间的函数或过程调用,支持同步和异步调用方式,提高了通信效率和系统性能。
  4. 提供服务发现和注册机制,使得ECUs能够自动发现其他ECUs提供的服务,并注册自己提供的服务,从而实现了动态的服务管理和交互。

综上所述,SOME/IP协议的设计是为了满足汽车电子系统对高效、可靠、灵活和可扩展通信的需求,以适应汽车电子系统日益复杂的发展趋势。

2. 下载--在autosar官网 搜索下载

Search AUTOSAR

我在附件中有规范的pdf文件,不同的是这份文件 有我对使用场景的真实理解,而不是直译。

SOME/IP协议之所以能在AUTOSAR的官网下载,是因为SOME/IP是AUTOSAR(AUTomotive Open System ARchitecture)体系中的一个重要组成部分。AUTOSAR是一个开放的、标准化的汽车电子软件架构,旨在创建一个标准化的软件架构,以便更好地开发汽车电子系统。SOME/IP作为AUTOSAR中支持车载以太网通信的重要协议,自然也被纳入到了AUTOSAR的官方文档中,供开发者下载和使用。

除了AUTOSAR的官网,确实也可能在其他地方找到SOME/IP协议的官方下载。这主要得益于SOME/IP协议的开放性和标准化。例如,一些专业的软件开发网站、汽车电子领域的论坛或社区,以及相关的开源项目网站等,都可能会提供SOME/IP协议的下载链接或相关资料。然而,为了确保下载到的是最新、最准确的SOME/IP协议文档,建议开发者还是优先考虑从AUTOSAR的官网或其他官方渠道进行下载。

此外,需要注意的是,由于SOME/IP协议涉及到汽车电子系统的核心技术和知识产权,因此在使用SOME/IP协议时,开发者需要遵守相关的法律法规和许可协议,确保合法合规地进行开发和使用。

综上所述,SOME/IP协议可以在AUTOSAR的官网下载,同时也可能在其他官方或非官方渠道找到相关资料。但为了确保下载到的是最新、最准确的文档,并遵守相关的法律法规和许可协议,建议开发者优先考虑从AUTOSAR的官网或其他官方渠道进行下载。

二、协议讲解

1. 协议版本

2. 声明

Disclaimer

This work (specification and/or software implementation) and the material contained in it, as released by AUTOSAR, is for the purpose of information only. AUTOSAR and the companies that have contributed to it shall not be liable for any use of the work. The material contained in this work is protected by copyright and other types of intellectual property rights. The commercial exploitation of the material contained in this work requires a license to such intellectual property rights. This work may be utilized or reproduced without any modification, in any form or by any means, for informational purposes only. For any other purpose, no part of the work may be utilized or reproduced, in any form or by any means, without permission in writing from the publisher. The work has been developed for automotive applications only. It has neither been developed, nor tested for non-automotive applications. The word AUTOSAR and the AUTOSAR logo are registered trademarks.

  1. 目的与责任

    • 该材料仅供信息参考。
    • AUTOSAR 及其贡献者对材料的任何使用不承担责任。
  2. 知识产权

    • 该内容受版权及其他知识产权保护。
    • 商业用途需要获得相关知识产权许可。
  3. 使用和复制

    • 出于信息目的,可以不做修改地使用或复制此材料。
    • 除信息用途外,任何形式的使用或复制都需要出版方的书面许可。
  4. 应用范围

    • 该材料仅为汽车领域开发。
    • 未针对非汽车领域进行开发或测试。
  5. 商标

    • “AUTOSAR”及其标志是注册商标。

1 Introduction and overview

This protocol specification specifies the format, message sequences and semantics of the AUTOSAR Protocol "Scalable service-Oriented MiddlewarE over IP (SOME/IP)". SOME/IP is an automotive/embedded communication protocol which supports remote procedure calls, event notifications and the underlying serialization/wire format. The only valid abbreviation is SOME/IP. Other abbreviations (e.g. Some/IP) are wrong and shall not be used.

  1. 协议说明

    • 本协议规范定义了 AUTOSAR 协议 "基于 IP 的可扩展面向服务的中间件"(Scalable service-Oriented MiddlewarE over IP,简称 SOME/IP) 的格式、消息序列和语义。
  2. 协议特点

    • SOME/IP 是一种用于汽车/嵌入式系统的通信协议,支持以下功能:
      • 远程过程调用(Remote Procedure Calls)。
      • 事件通知(Event Notifications)。
      • 序列化和底层传输格式(Serialization/Wire Format)。
  3. 缩写规范

    • 唯一有效的缩写是 SOME/IP
    • 其他缩写形式(例如 Some/IP)是不正确的,不允许使用。

1.1 Protocol purpose and objectives

SOME/IP was created as existing solutions were not compatible to automotive use cases as well as incompatible to the AUTOSAR Classic Platform architecture. The major design goals were as follows: • Fulfills the hard requirements regarding resource consumption of embedded ECUs • Is compatible through as many use-cases and communication partners as possible • Compatible with AUTOSAR at least on the wire-format level; i.e., SOME/IP was introduced with minimal architecture changes in the AUTOSAR Classic Platform. • Provides the features required by automotive use-cases • Is scalable from tiny to large platforms

SOME/IP 的创建背景

SOME/IP 协议的产生是为了弥补现有解决方案在以下两个方面的不足:

  1. 不适用于汽车行业的实际使用场景
  2. 与 AUTOSAR Classic Platform 架构不兼容

设计目标

SOME/IP 的主要设计目标包括:

  1. 满足嵌入式 ECU 对资源消耗的严格要求
  2. 尽可能兼容更多的使用场景和通信伙伴
  3. 在传输格式(Wire-Format)层面与 AUTOSAR 保持兼容
    • 在引入 SOME/IP 时,对 AUTOSAR Classic Platform 的架构改动尽可能小。
  4. 提供满足汽车行业实际使用需求的功能
  5. 具备从小型平台到大型平台的可扩展性

1.2 Applicability of the protocol

SOME/IP shall be implemented on different operating system (i.e., AUTOSAR, GENIVI/COVESA, and OSEK) and even embedded devices without operating system. SOME/IP shall be used for inter-ECU Client/Server Serialization. An implementation of SOME/IP allows AUTOSAR to parse the RPC PDUs and transport the parameters to the application.

协议适用范围

  1. 操作系统支持

    • SOME/IP 协议应能够在不同的操作系统上实现,例如:
      • AUTOSAR
      • GENIVI/COVESA
      • OSEK
    • 甚至可以在没有操作系统的嵌入式设备上实现。
  2. 使用场景

    • SOME/IP 应用于 ECU 之间的客户端/服务器序列化通信。序列化是一种数据的组织方式,比如C语言的结构体的成员内存排布就是一种序列化。通信双方按照同一种自定义的序列化方式就可以 编码和解码(序列化和反序列化)通信。
  3. 功能支持

    • 使用 SOME/IP 的实现,AUTOSAR 可以解析 RPC(远程过程调用)PDU,并将通信参数传输到应用层。PDU:protocol data units 协议数据单元-即 通信协议中的header+payload 。RPC:Remote Procedure Call 远程处理调用--即一端通过网络数据包的协议 远程 调用另一端的方法  并取得结果。

1.2.1 Constraints and assumptions

The "Support for serialization of extensible data structs" has been introduced - which SOME/IP serializers based on AUTOSAR Foundation Standard 1.0.0 (AUTOSAR Classic Standard 4.3.0) as well as most non-AUTOSAR implementations cannot process.To indicate this interoperability issue [PRS_SOMEIP_00220] requires to increase the major interface version of the respective serialized data.

  1. 扩展数据结构的序列化支持

    • SOME/IP 引入了对 扩展数据结构序列化(Serialization of extensible data structs) 的支持。
    • 但基于以下标准的序列化工具无法处理这种扩展:
      • AUTOSAR Foundation Standard 1.0.0(AUTOSAR Classic Standard 4.3.0)。
      • 大多数非 AUTOSAR 实现
  2. 互操作性问题

    • 为了解决此互操作性问题,[PRS_SOMEIP_00220] 要求:
      • 对相关序列化数据的 接口主版本号(major interface version) 进行升级。

1.3 Dependencies

There are no dependencides to AUTOSAR SWS modules.

不对AUTOSAR协议的其它软件模块有依赖

SOME/IP是一套独立的通信协议,不用和其它协议组合使用。双方同时运行SOME/IP协议,就能通信。

1.4 Document Structure

The SOME/IP PRS will describe the following two aspects of SOME/IP.

Specification of SOME/IP on wire-format (Serialization)

• Structure of Header Format

• How the different data types are serialized as per SOME/IP

Specification of Protocol for Event and RPC-based communication

• Transport Protocol

• Rules that govern the RPC for SOME/IP

In addition to this document, the PRS SOME/IP-SD [1] describes the Service Discovery and other functionalities of SOME/IP.

文档内容概述

SOME/IP PRS 将描述以下两个方面的内容:

  1. SOME/IP 的传输格式规范(序列化)

    • 头部格式的结构
    • SOME/IP 中不同数据类型的序列化方式
  2. 基于事件和远程过程调用(RPC)的通信协议规范

    • 传输协议
    • SOME/IP 中与 RPC 相关的规则

此外,除了本文件外,PRS SOME/IP-SD [1] 还描述了 SOME/IP 的 服务发现(Service Discovery) 和其他功能。--- 这个文档后面文章也有讲解,属于第二大块。

文章中的缩写和关键词解释

4 Protocol specification
SOME/IP provides service oriented communication over a network. It is based on
service definitions that list the functionality that the service provides. A service can
consist of combinations of zero or multiple events, methods and fields.
Events provide data that are sent cyclically or on change from the provider to the subscriber.
Methods provide the possibility to the subscriber to issue remote procedure calls which
are executed on provider side.
Fields are combinations of one or more of the following three
• a notifier which sends data from the provider to the subscribers on change, on
epsilon change, or cyclically based on configuration.
• a getter which can be called by the subscriber to explicitly query(明确的查询,
这个明确这里无法理解,体现到具体就是指定field ID) the provider for
the value
• a setter which can be called by the subscriber when it wants to change the value
on provider side
The major difference between the notifier of a field and an event is that events are
only sent on change, the notifier of a field additionally sends the data directly after
subscription(field 的notify 订阅后会立马给client发送事件,event 只在需要时才发送)

SOME/IP 协议概述

SOME/IP 提供基于服务的网络通信。它基于 服务定义,列出了服务提供的功能。一个服务可以由零个或多个事件、方法和字段的组合组成。

  1. 事件(Events)

    • 事件提供的数据会周期性地或在变化时或是门限式变化时从提供者发送给订阅者。
  2. 方法(Methods)

    • 方法允许订阅者发起远程过程调用(RPC),这些调用会在提供者端执行。
  3. 字段(Fields)
    字段由以下三种类型中的一个或多个组合而成:

    • 通知器(Notifier):在数据发生变化、微小变化(epsilon change)或根据配置周期性变化时,通知器将数据从提供者发送到订阅者。
    • 获取器(Getter):获取器可以由订阅者调用,用于显式查询提供者的值。
    • 设置器(Setter):当订阅者希望更改提供者端的值时,可以调用设置器。

主要区别

  • 通知器与事件的主要区别
    • 事件仅在需要时(周期性地或在变化时或是门限式变化时)发送。
    • 字段的通知器除了在变化时发送数据,还会在订阅后立即发送数据。

0voice · GitHub


http://www.kler.cn/a/520230.html

相关文章:

  • Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到
  • MiniMax-01中Lightning Attention的由来(线性注意力进化史)
  • js手撕 | 使用css画一个三角形 使用js修改元素样式 驼峰格式与“-”格式相互转化
  • 奇怪的单词(快速扩张200个单词)
  • RV1126画面质量四:GOP改善画质
  • 在Rust应用中访问.ini格式的配置文件
  • 深度解析:基于Vue 3的教育管理系统架构设计与优化实践
  • 【论文阅读笔记】“万字”关于深度学习的图像和视频阴影检测、去除和生成的综述笔记 | 2024.9.3
  • 【趋势】《2024—2026金融科技十大趋势预测》一览
  • 【学术会议-第五届机械设计与仿真国际学术会议(MDS 2025) 】前端开发:技术与艺术的完美融合
  • Kiwi 安卓浏览器本月停止维护,扩展功能迁移至 Edge Canary
  • 基于SpringBoot的在线众筹网的设计与实现(源码+SQL脚本+LW+部署讲解等)
  • Linux 内核学习(5) --- Linux 内核底半部机制
  • 微信小程序-点餐(美食屋)02开发实践
  • 基于DNN深度神经网络的OFDM+QPSK信号检测与误码率matlab仿真
  • 9.5 GPT Builder 快速入门:如何使用 GPT 构建自定义应用
  • 深度学习:从基础到前沿
  • Vue 3 中的标签 ref 与 defineExpose:模板引用与组件暴露
  • 深入学习华为IPD流程之华为-PDT经理角色认知培训教材
  • 【全栈】SprintBoot+vue3迷你商城(10)
  • 【深度之眼cs231n第七期】笔记(三十一)
  • 初学stm32 --- FreeRTOS移植
  • vue3中src的目录分析
  • Dev-C++分辨率低-解决办法
  • 2024年AI发展的感知回顾
  • STM32 ADC