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.rhkb.cn/news/8043.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Ansible自动化运维实战--script、unarchive和shell模块(6/8)

文章目录 一、script模块1.1、功能1.2、常用参数1.3、举例 二、unarchive模块2.1、功能2.2、常用参数2.3、举例 三、shell模块3.1、功能3.2、常用参数3.3、举例 一、script模块 1.1、功能 Ansible 的 script 模块允许你在远程主机上运行本地的脚本文件,其提供了一…

【模型】RNN模型详解

1. 模型架构 RNN(Recurrent Neural Network)是一种具有循环结构的神经网络,它能够处理序列数据。与传统的前馈神经网络不同,RNN通过将当前时刻的输出与前一时刻的状态(或隐藏层)作为输入传递到下一个时刻&…

《FreqMamba: 从频率角度审视图像去雨问题》学习笔记

paper:FreqMamba: Viewing Mamba from a Frequency Perspective for Image Deraining GitHub:GitHub - aSleepyTree/FreqMamba 目录 摘要 1、介绍 2、相关工作 2.1 图像去雨 2.2 频率分析 2.3 状态空间模型 3、方法 3.1 动机 3.2 预备知识 3…

iic、spi以及uart

何为总线? 连接多个部件的信息传输线,是部件共享的传输介质 总线的作用? 实现数据传输,即模块之间的通信 总线如何分类? 根据总线连接的外设属于内部外设还是外部外设将总线可以分为片内总线和片外总线 可分为数…

Android WebView 中网页被劫持的原因及解决方案

文章目录 一、原因分析二、解决方案一览三、解决方案代码案例3.1 使用 HTTPS3.2 验证 URL3.3 禁用 JavaScript3.4 使用安全的 WebView 设置3.5 监控网络请求3.6 使用安全的 DNS 四、案例深入分析4.1 问题4.2 分析 五、结论 在 Android 应用开发中,WebView 是一个常用…

Linux——网络(udp)

文章目录 目录 文章目录 前言 一、upd函数及接口介绍 1. 创建套接字 - socket 函数 2. 绑定地址和端口 - bind 函数 3. 发送数据 - sendto 函数 4. 接收数据 - recvfrom 函数 5. 关闭套接字 - close 函数 二、代码示例 1.服务端 2.客户端 总结 前言 Linux——网络基础&#xf…

C语言学习强化

前言 数据的逻辑结构包括: 常见数据结构: 线性结构:数组、链表、队列、栈 树形结构:树、堆 图形结构:图 一、链表 链表是物理位置不连续,逻辑位置连续 链表的特点: 1.链表没有固定的长度…

【ArcGIS微课1000例】0141:提取多波段影像中的单个波段

文章目录 一、波段提取函数二、加载单波段导出问题描述:如下图所示,img格式的时序NDVI数据有24个波段。现在需要提取某一个波段,该怎样操作? 一、波段提取函数 首先加载多波段数据。点击【窗口】→【影像分析】。 选择需要处理的多波段影像,点击下方的【添加函数】。 在多…

css3 svg制作404页面动画效果HTML源码

源码介绍 css3 svg制作404页面动画效果HTML源码&#xff0c;源码由HTMLCSSJS组成&#xff0c;记事本打开源码文件可以进行内容文字之类的修改&#xff0c;双击html文件可以本地运行效果 效果预览 源码如下 <!doctype html> <html> <head> <meta charse…

R语言学习笔记之高效数据操作

一、概要 数据操作是R语言的一大优势&#xff0c;用户可以利用基本包或者拓展包在R语言中进行复杂的数据操作&#xff0c;包括排序、更新、分组汇总等。R数据操作包&#xff1a;data.table和tidyfst两个扩展包。 data.table是当前R中处理数据最快的工具&#xff0c;可以实现快…

利用Qt5.15.2编写Android程序时遇到的问题及解决方法

文章目录 背景1.文件读写 背景 目前我用的是Qt5.15.2来编写Qt程序&#xff0c;环境的配置看我这篇文章【Qt5.15.2配置Android开发环境】 项目中的一些配置的截图&#xff1a; 1.文件读写 假如直接用 QFileDialog::getExistingDirectory来获取路径的话&#xff0c;会得到类…

【学术会议-第五届机械设计与仿真国际学术会议(MDS 2025) 】前端开发:技术与艺术的完美融合

重要信息 大会官网&#xff1a;www.icmds.net 大会时间&#xff1a;2025年02月28日-03月02日 大会地点&#xff1a;中国-大连 会议简介 2025年第五届机械设计与仿真国际学术会议&#xff08;MDS 2025) 将于2025年02月28-3月02日在中国大连召开。MDS 2025将围绕“机械设计”…

leetcode刷题记录(一百)——121. 买卖股票的最佳时机

&#xff08;一&#xff09;问题描述 121. 买卖股票的最佳时机 - 力扣&#xff08;LeetCode&#xff09;121. 买卖股票的最佳时机 - 给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。你只能选择 某一天 买入这只股票&#xff0c;并…

亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘

解决PyCharm下PyEMD安装报错 PyEMD安装报错解决方案 PyEMD安装报错 PyCharm下通过右键自动安装PyEMD后运行报错ModuleNotFoundError: No module named ‘PyEMD’ 解决方案 通过PyCharm IDE python package搜索EMD-signal&#xff0c;选择版本后点击“install”执行安装

上海亚商投顾:沪指冲高回落 大金融板块全天强势 上海亚商投

上海亚商投顾前言&#xff1a;无惧大盘涨跌&#xff0c;解密龙虎榜资金&#xff0c;跟踪一线游资和机构资金动向&#xff0c;识别短期热点和强势个股。 一&#xff0e;市场情绪 市场全天冲高回落&#xff0c;深成指、创业板指午后翻绿。大金融板块全天强势&#xff0c;天茂集团…

【unity游戏开发之InputSystem——02】InputAction的使用介绍(基于unity6开发介绍)

文章目录 前言一、InputAction简介1、InputAction是什么&#xff1f;2、示例 二、监听事件started 、performed 、canceled1、启用输入检测2、操作监听相关3、关键参数 CallbackContext4、结果 三、InputAction参数相关1、点击齿轮1.1 Actions 动作&#xff08;1&#xff09;动…

ubuntu22安装issac gym记录

整体参考&#xff1a;https://blog.csdn.net/Yakusha/article/details/144306858 安装完成后的整体版本信息 ubuntu&#xff1a;22.04内核&#xff1a;6.8.0-51-generic显卡&#xff1a;NVIDIA GeForce RTX 3050 OEM显卡驱动&#xff1a;535.216.03cuda&#xff1a;12.2cudnn&…

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到

Linux下Ubuntun系统报错find_package(BLAS REQUIRED)找不到 这次在windows的WSL2中遇到了一个非常奇怪的错误&#xff0c;就是 CMake Error at /usr/share/cmake-3.22/Modules/FindPackageHandleStandardArgs.cmake:230 (message):Could NOT find BLAS (missing: BLAS_LIBRAR…

15天基础内容-5

day13 【String类、StringBuilder类】 主要内容 String类常用方法【重点】 String类案例【重点】 StringBuilder类【重点】 StringBuilder类常用方法【重点&#xff1a; append】 StringBuilder类案例【理解】 第一章String类 1.1 String类的判断方法 String类实现判断功能…

CommonAPI学习笔记-1

CommonAPI学习笔记-1 一. 整体结构 CommonAPI分为两层&#xff1a;核心层和绑定层&#xff0c;使用了Franca来描述服务接口的定义和部署&#xff0c;而Franca是一个用于定义和转换接口的框架&#xff08;https://franca.github.io/franca/&#xff09;。 ​ 核心层和通信中间…