SOME/IP

这篇具有很好参考价值的文章主要介绍了SOME/IP。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

介绍

SOME/IP是一种汽车中间件解决方案,可用于控制消息。它从一开始就被设计为完美地适应不同尺寸和不同操作系统的设备。这包括小型设备,如相机、AUTOSAR 设备,以及头戴设备或远程通信设备。它还确保SOME/IP支持信息娱乐域以及车辆中其他域的功能,从而允许SOME/IP用于大多数替换场景以及更传统的CAN场景。

SOME/IP,车载网络,车载网络

SOME/IP工作在传输层之上,即硬件无关

SOME/IP,车载网络,车载网络

功能

SOME/IP 支持广泛的中间件功能:

  • 序列化 – 线上输入输出转换。
  • 远程过程调用 (RPC) and Messaging – 实现函数和其他消息的远程调用。
  • 服务发现 (SD) – 动态查找、功能、配置。
  • 发布/订阅 (Pub/Sub) – 动态配置需要哪些数据并应发送到客户端。
  • UDP信息块 – 允许通过 UDP 传输大型 SOME/IP 消息,而无需分段。

序列化

SOME/IP序列化被设计成高效率的,它使用极少的RAM和CPU资源。 是通过二进制和不可读的格式实现的。基本上,各设备都有所有的参数。消息的格式与消息的内存中表示形式(打包结构)非常相似或在许多情况下完全相同。

SOME/IP能序列化如下基本的数据类型(数据类型被默认编码成网络字节序也就是大端序,当然也可以编码成小端序):

  • boolean: 一字节的布尔类型
  • uint8: 无符号的一字节整型
  • uint16: 无符号的两字节整型
  • uint32: 无符号的四字节整型
  • uint64: 无符号的八字节整型
  • sint8: 有符号的一字节整型
  • sint16: 有符号的两字节整型
  • sint32: 有符号的四字节整型
  • sint64: 有符号的八字节整型
  • float32: 无符号的一字节整型
  • float64: 无符号的一字节整型

SOME/IP能序列化如下的复杂的数据类型:

  • struct: 结构体
  • string: 字符串
  • array: 数组
  • enumeration: 枚举
  • bitfield: 位域
  • union: 共用体

远程过程调用 (RPC) 和消息体

SOME/IP服务支持以下几种消息:

  • 请求/响应方法: 从客户端发送到服务器的请求和从服务器发送到客户端的响应。此外,SOME/IP 允许错误响应从服务器发送回客户端,而不是常规响应。此功能可用于在错误情况下实现不同的数据包格式。
  • 即发即弃方法:从客户端发往服务端的请求。
  • 事件:从服务器发送到相关客户端的事件。哪个客户端需要此事件将通过 SOME/IP-SD 确定
  • 域: 字段可以具有选项通知程序(循环发送或更改时发送的事件)、可选资源库(用于更新字段的请求/响应方法)和可选 getter(用于读取字段当前值的请求/响应方法)。

SOME/IP报文格式

SOME/IP,车载网络,车载网络

Message ID:

在SOME/IP里的Message ID被用来标识应用程序或事件的方法。MessageID跟CAN ID一样,它在整个车载网络总应该是唯一的。Message ID的规划由用户决定。

Message ID包含两个域,一个是service ID,另一个是Method ID。按如下方式构成:

Service ID [16 Bit] 0 [1 Bit] Method ID [last 15 Bit]

Length:

长度域里的长度值为从Request ID/Client ID开始到SOME/IP消息尾的字节数。

Request ID:

请求 ID 用于区分同一方法、事件、getter 或 setter 的多个用例。应根据订阅者和提供者组合使用唯一的请求 ID。

提供者应当从请求中复制Request ID添加到响应中。这允许订阅者区分多个挂起的请求。

并且订阅者不应该使用相同的请求 ID,直到收到响应和/或不再期望收到响应。

Request ID 有两个子域 Client ID和Session ID,如下表所示。

Client ID [16 Bits] Session ID [16 Bits]

Client ID:

客户端 ID 也是唯一标识符,用于区分使用相同Method而来自不同提供者的响应。

Session ID:

session ID也是唯一的标识,用来区分使用相同Method的多个调用,此处的提供者可以相同。

请求/响应方法应使用带会话 ID 的会话处理。会话 ID 应在每次调用后递增。当会话 ID 达到 0xFFFF 时,它将滚动并重新启动。如果响应的会话 ID 与请求的会话 ID 不匹配,订阅者必须忽略该响应。

Protocol Version:

协议版本应该是一个字节大小包含SOME/IP的协议版本。

Interface Version:

接口版本应该是一个字节大小,包含服务接口的主版本。

Message Type:

消息类型字段用于区分不同类型的消息,应包含下表中所示的以下值。

SOME/IP,车载网络,车载网络

Return Code:

返回码用于指示请求是否已成功处理。 支持的返回码如下所示。

Message Type Allowed Return Codes
REQUEST N/A set to 0x00 (E_OK)
REQUEST_NO_RETURN N/A set to 0x00 (E_OK)
NOTIFICATION N/A set to 0x00 (E_OK)
RESPONSE Many Sub Type are there
ERROR Many sub types are there , other then 0x00 (E_OK)

Payload:

在此字段中,实际数据将被传输,有效载荷字段没有固定大小,它是用户/应用程序定义的。但是,SOME/IP 中有效负载数据的最大限制取决于传输协议。使用 UDP 的 SOME/IP 有效负载大小为 0 到 1400 字节。

有效负载包含事件的数据元素和方法的参数。

在 SOME/IP 应用程序中,数据将使用“有效负载”字段上的序列化进行存储。在 SOME/IP 数据序列化中也依赖于配置参数,数据的序列化在最开头有讨论。

参考

Scalable service-Oriented MiddlewarE over IP (SOME/IP)

发送SOME/IP数据包的工具 https://gitee.com/wq897/FibexConverter.git 

SCALABLE SERVICE-ORIENTED MIDDLEWARE OVER IP (SOME/IP)文章来源地址https://www.toymoban.com/news/detail-708315.html

到了这里,关于SOME/IP的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 什么是SOME/IP?

    SOME/IP 是\\\"Scalable service-Oriented MiddlewarE over IP\\\"的缩写,即可扩展的面向服务的IP中间件,由AUTOSAR发布。它是一种自动/嵌入式通信协议,它支持远程过程调用、事件通知和底层序列化/线格式。唯一有效的缩写是SOME/IP,不要写成Some/IP。 以下知识点可以先初步认识SOME/IP: 1.SOME/I

    2024年02月16日
    浏览(33)
  • SOME/IP SubscriberEventGroup

    SubscriberEventGroup是SOME/IP中的一种服务发现和注册的消息类型,它用于让服务使用者订阅服务提供者的事件组。 事件组是一种将服务的方法和字段分组的方式,它可以让服务使用者只接收感兴趣的数据,而不是所有的数据。 SubscriberEventGroup消息包含以下信息: 服务的ID,方法的

    2024年03月08日
    浏览(32)
  • SOME/IP

    SOME/IP是一种汽车中间件解决方案,可用于控制消息。它从一开始就被设计为完美地适应不同尺寸和不同操作系统的设备。这包括小型设备,如相机、AUTOSAR 设备,以及头戴设备或远程通信设备。它还确保SOME/IP支持信息娱乐域以及车辆中其他域的功能,从而允许SOME/IP用于大多

    2024年02月09日
    浏览(34)
  • DDS和SOME/IP

    一、DDS协议 OSI七层网络模型:物数网传会表应(物理层、数据链路层、网络层、传输层、会话层、表示层、应用层) 1、本质:通信中间件(会话层协议) 2、发布最小单位:Topic Topic三要素 (1)数据类型 仅支持OMG Interface Definition Launguage(IDL)定义的数据类型; 支持基本数据

    2024年02月04日
    浏览(32)
  • SOME/IP学习笔记1

    在SOA中,每个服务就好像我们每一个人在社会中扮演的角色, 在对别人提供着服务的同时,同时也享受着别人提供出来的服务 ,人与人之间,既是彼此独立的,又是需要互相通讯的。服务提供者将功能具象为一组接口,这样使用者就能知道如何调用服务,完成某件事情,得

    2024年02月10日
    浏览(31)
  • SOME/IP协议详解「总目录」

    欢迎大家来到雪云飞星的《SOME/IP协议详解》,开始前博主先列出本专栏学习的大纲,同时这也可以作为大家学习SOME/IP协议知识点的参考。下面蓝字都是传送门,点击进入即可: SOME/IP协议详解「总目录」 SOME/IP协议详解「前言」 SOME/IP协议详解「1.0·概述」 SOME/IP协议详解「

    2023年04月09日
    浏览(25)
  • 通信中间件SOME/IP简述

    SOME/IP 不是广义上的中间件,严格的来讲它是一种通信协议,但中间件这个概念太模糊了,所以我们也一般称 SOME/IP 为通信中间件。 SOME/IP 全称是 Scalable service-Oriented MiddlewarE over IP。也就是基于 IP 协议的面向服务的可扩展性通信中间件协议。 所以,要弄清 SOME/IP 需要从它的名

    2024年02月10日
    浏览(40)
  • SOME/IP 详解系列(3)—— 通信方式

    前面的文章给大家介绍了SOME/IP的功能、标准和报文格式,接下来我们开始介绍更多和实际应用相关的内容。首先,是通信方式。看看SOME/IP是如何通信的,节点之间是如何通过SOME/IP进行交互的。 在SOME/IP中,一共有三种通信方式,分别是Method、Event和Field。 Method有两种类型,

    2024年04月23日
    浏览(22)
  • SOME/IP中间件通信流程

    本文根据文章《CAPL如何实现SOME/IP协议通信:SomeIP_IL.dll函数篇(超两万字详解)》内容,抽取总结出SOME/IP通信流程,正不正确的另说,目的是为了加深对SOME/IP中间件的理解。 首先,不管是消费方consumer,还是提供方provider,都有自己的someip中间件。本质上,它是一个程序,作

    2024年02月06日
    浏览(65)
  • 什么是SOME/IP-SD?

    SOME/IP-SD 是\\\"Scalable service-Oriented MiddlewarE over IP - Service Discovery\\\"的缩写,是SOME/IP的一种特殊报文,可以让Client知道Server可以提供哪些服务,SOME/IP有两种动态发现服务的机制:一种是Offer Service,由Server向网络上的小伙伴告知它所提供的服务;另一种是Find Service,由Client向Server请

    2024年02月13日
    浏览(32)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包