汽车 Automotive > SOME/IP应用学习
创始人
2024-02-21 08:06:12

目录

SOME/IP介绍

SOME/IP主要功能

SOME/IP协议

SOME/IP服务类型

SOME/IP-举例

SOME/IP各模块协议

SOME/IP-基础元件

SOME/IP-SoAD

SOME/IP-SD协议

SOME/IP-SD举例

SOME/IP-TP协议

SOME/IP-TP举例


SOME/IP介绍

        SOME/IP ( Scalable service-Oriented Middleware over IP),即“运行于IP之上的可伸缩(可扩展)的面向服务的中间件”。是一个汽车中间件解决方案,可以用于控制消息。从一开始,它的设计就是为了完美地适应不同尺寸和不同操作系统的设备。这包括小型设备,如相机、AUTOSAR设备,以及头部单元或远程信息处理设备。同时还确保了SOME/IP支持Infotainment域以及车内其他域的功能,从而使SOME/IP可以用于多数替换场景以及更传统的CAN场景。所谓“Middleware中间件”是一种独立的系统软件或服务程序,分布式应用软件可借助Middleware在不同的技术之间共享资源。所谓的分布式应用软件,在这里指的就是“服务”;不同的技术之间,在这里指的就是“不同的平台或操作系统,比如Adaptive AUTOSAR系统等。

        SOME/IP服务是SOME/IP的最核心概念。在一个服务中,定义了Server和Client两个角色:Server提供服务,Client调用服务。对于同一个服务,只能存在一个Server,但可以同时存在多个Client调用服务。一个Service0~多个Event/Method/Field组成。与CAN相比,面向服务的通讯方式能够大大降低总线的负载率。

        SOME/IP不等同于SOA,SOME/IP只是实现了SOA(面向服务的架构)和符合其协议规范。

  •         SOME/IP允许应用程序进行通信。
  •         数据包格式由服务规范自动确定。
  •         服务器提供了一个实现服务接口的服务实例。
  •         客户端使用SOME/IP来使用服务实例。
  •         一个Service0~多个Event/Method/Field组成

SOME/IP主要功能

1) SOME/IP中间件在运行时(而不是在系统设计时)动态地创建服务提供者和服务使用者之间的连接
2) 通过网络提供面向服务的通信
3) SOME/IP 支持广泛的中间件功能
        -序列化转换为二级制序列转换,包含基本数据类型(e.g. Boolean、uint8和sint32等)和复杂数据类型(e.g. struct string和array等)
        -远程过程调用 (RPC) 实现函数的远程调用。
        -服务发现 (SD) 动态查找功能并配置其访问权限。
        -发布/订阅 (Pub/Sub) 动态配置需要哪些数据并将其发送到客户端。
        -UDP 消息的分段允许通过 UDP 传输大型 SOME/IP 消息而无需分段。
4) SOME/IP 可以在不同的操作系统上实现(即 AUTOSAR、GENIVI Linux和 OSEK),甚至没有操作系统的嵌入式设备
5) SOME/IP 用于 ECU 间客户端/服务器序列化

英文原始内如如下:

  • •SOME/IP provides service oriented communication over a network
  • •SOME/IP supports a wide range of middleware features
  • Serialization–transforming into and from on-wire representation.
  • Remote Procedure Call (RPC) –implementing remote invocation of functions.
  • Service Discovery (SD) –dynamically finding functionality and configuring its access.
  • Publish/Subscribe (Pub/Sub) –dynamically configuring which data is needed and shall be sent to the client.
  • Segmentation of UDP messages –allowing the transport of large SOME/IP messages over UDP without the need of fragmentation.
  • •SOME/IP can be implemented on different operating systems (i.e. AUTOSAR, GENIVI Linux and OSEK) and even embedded devices without operating system
  • •SOME/IP is used for inter-ECU Client/Server Serialization
  • https://www.mathworks.com/help/autosar/ug/autosar-platform-comparison.html

SOME/IP协议

Message ID,用于唯一标识消息,当消息为Method类型时,由Service ID和Method ID组成,当消息为Event类型时,由Service ID和Event ID组成,如下图所示:

Length,消息长度(从Request ID开始到Payload结束);

Request ID,服务提供者和调用者可用于区分相同消息的不同调用,由Client ID和Session ID组成。通常我们称服务提供者为Service,服务调用者为Client,Service ID和Client ID用于区分,一般会在一个SOA架构中统一地配置这些ID的数值。

Protocol Version,协议头版本号,目前该值必须为1;

Interface Version,接口版本号,一般由服务提供者定义;

Message Type和Return Code,用于标识消息的类型,报文类型,目前共5种/返回码

Payload,数据段,需要传输的相关数据

SOME/IP服务类型

  • 服务说明
  • 服务是SOME/IP的最核心概念。在一个服务中,定义了Server和Client两个角色:Server提供服务,Client调用服务。
  • 对于同一个服务,只能存在一个Server,但可以同时存在多个Client调用服务。一个Service由0~多个Event/Method/Field组成。
  • 与CAN相比,面向服务的通讯方式能够大大降低总线的负载率。
  • Method
  • 调用或引用一个进程/函数/子程序,通常由Client发起,并由Server答复。
  • Request是最常见的一种Method,由Client向Server请求数据;Response是Request的结果,由Server答复Client的Request。
  • 而Method Fire & Forget方式,只Client向Server发起,但Server对该请求不回复。
  • Event
  • 一个单向的数据传输,只能是on change类型,用于Server主动向订阅(Subscribe)了相关服务的Client发布(Publish)信息。
  • Field
  • 由以下三项内容构成:
  • Notifier:通知,Server的Client订阅了服务后第一时间主动向其发送数据。
  • Getter:获取,由Client向Server读取数据。
  • Setter:设置,由Client修改Server的数据。

SOME/IP-举例

SOME/IP各模块协议

  • SOME/IP被定义到AUTOSAR CP的BSW模块的一部分。
  • SOME/IP被统一到AUTOSAR AP的通信管理中。
  • VSOME/IP开源,可以移植到Linux平台,有公司基于VSOME/IP进行自己产品开发

SOME/IP-基础元件

SOME/IP-SoAD

  • SoAD层通过TCP/IP网络实现基于PDU的通信
  • AUTOSAR I-PDU映射到SoAD配置和维护的Socket连接。
  • 要对多个I-PDU使用Socket连接,可在每个I-PDU前面添加一个SoAD PDU头
  • PDU路由组管理-启用/禁用从/到Socket的PDU路由
  • SOME/IP-Socket适配器[SoAD]-AUTOSAR型号通用上层支撑的构建块
    •         要了解Autosar中的通讯栈,就必须了解PDU(Protocol Data Unit)。 PDUAutosar通讯中重要的概念,每个PDU包含着SDU和PCI,每个PDU拥有独自的ID用于互相区分。 非TP层的I-PDU数据不应超过8字节的长度。 这确保了可以在单个CAN消息中发送I-PDU
  • SOME/IP-SD协议

  •         由于服务需要由Server和Client共同完成,因此在进行正常的数据传输之前,需要一系列的准备工作确认Server和Client之间是否已有网络连接。之后,Client还要询问Server能否提供所需的服务,并对服务的Event进行订阅。这些工作都是通过SOME/IP服务发现(Service Discovery)实现的。SOME/IP服务发现用于定位服务实例、检查服务是否可用以及部署发布和订阅句柄。服务发现只能通过UDP实现。服务发现的报文格式与一般的SOME/IP报文相同,但是其Message ID固定为0xFFFF8100。
    •         主要功能
  • 定位服务实例
  • 检测服务实例是否在运行(即服务实例的状态)
  • 发布/订阅行为的管理
    •         SD报文解析
      •         SOME/IP SD报文也是一种SOME/IP报文,是在SOME/IP报文的基础上进行了扩展增加了Entry、Option等字段;
  • Entries用于同步服务实例的状态和发布/订阅的管理。
  • Options用于传输Entries的附加信息。
    •         SOME/IP SD报文的ServiceID(0xFFFF)、MethodID(0x8100)、Request ID(0x0000)、ProtocolVersion(0x01)、Interface Version(0x01)、MessageType(0x02)、ReturnCode(0x00)等属性都是固定值。
      •         Entry
  • Entry字段可以理解为服务实例的“入口”,该入口包含服务实例以及需要订阅的事件组的信息。主要通过Entry实现提供服务、发现服务,以及订阅事件组的功能。

SOME/IP-SD举例

Term

Description

描述

Service

A functional entity that offers an interface. A logical combination of zero or more methods, zero or more events, and zero or more fields.

提供接口的功能实体。零个或多个Methods、零个或多个events以及零个或多个Field的逻辑组合。

Service Instance

A single instance of the Service. Implementation of a service, which can exist more than once in the vehicle and more than once on an ECU

服务的单个实例。实施一项服务,该服务可以在车辆中存在多次,也可以在ECU中存在多次

Offer Service

A message entry that declares offer of a Service Instance

声明服务实例提供的消息条目

Stop Offer

A message entry that declares stopping of a Service Instance

声明停止服务实例的消息项

Find Service

A message entry used to find a Service Instance.

用于查找服务实例的消息条目

Event

A message send by an ECU implementing a Service Instance to an ECU using this Service Instance.

由执行服务实例的ECU向使用该服务实例的ECU发送的消息

EventGroup

A logical grouping of 1 or more events. An EventGroup is part of a Service.

一个或多个事件的逻辑分组。事件组是服务的一部分

Field

A field does represent a status and thus has an valid value at all times on which getter, setter and notifieract upon.

一个字段确实代表一个状态,因此在getter、setter和notified所依赖的任何时候都有一个有效值。

Getter/Setter

A Request/Response call that allows Read/Write access to a field.

允许对字段进行读/写访问的请求/响应调用。

Method

A method, procedure, function, or subroutine that is called/invoked.

被调用的方法、过程、函数或子例程。

Notification Event

An event message of the notifierof a field.

通知字段的事件消息。

Notifier

Sends out event message with a new value on change of the value of the field.

在字段值发生变化时,发送带有新值的事件消息。

Remote Procedure Call (RPC)

A method call from one ECU to another that is transmitted using messages

从一个ECU到另一个ECU的方法调用,使用消息进行传输

  • SD - 服务器角色
  • 回复“查找”
  • 提供服务
  • 收回提供
  • SD - 客户角色
  • 发送“查找”
  • 倾听提供
  • 倾听停止的提供

 

SOME/IP-TP协议

        我们知道CAN-TP是用来对当总线CAN数据过大时,就需要对CAN整包数据进行分割拆包进行发送,这个时候发送方的TP层就起作用,同理对于接收方而言,也需要将分割的数据包进行组包完成整包数据的重组还原。

        因此,举一反三,我们便可以知道SOME/IP-TP模块的主体功能就是为了实现对应用层发送数据过大时进行的必要拆包与组包的工作,进而完成大量数据包的发送与接收。

        SOME/IP作为一种应用层协议,既可以运行在TCP之上,也可以运行在UDP之上,由于TCP协议本身支持发送大量数据同时还支持流控等特点因此无需用到SOME/IP-TP,该协议仅针对运行在UDP协议基础上的SOME/IP协议

        如下图7.1所示,则较为清晰的表明了SOME/IP-TP在CP AUTOSAR的具体位置以及与其他模块的交互关系。

 

 

SOME/IP-TP举例

 

相关内容

热门资讯

【看表情包学Linux】进程地...   🤣 爆笑教程 👉 《看表情包学Linux》👈 猛...
吉字五行及吉凶 吉字五行中代表... 五行解析在文化中,五行是非常重要的概念之一,在这里解析一下五行对于人们生活的影响。首先,金属代表的是...
月老姻缘灵签内容详解大全 月老... 月老灵签 姻缘签44签 求解签君尔目下之人。本是可心满意足之人。焉知后来之人。一个比一个更美好。就此...
六爻排盘蛇 六爻排盘预测绝招 ... 六爻排盘结果怎么看纳甲六爻在线排盘姓名:出生年:1981性别:男占事:起卦方式:手动摇卦公历时间:2...
吉凶由情绪决定 每日吉凶 每月... 情绪的力量情绪是我们生活中一个重要的组成部分。我们每天都会通过不同的方式感受到情绪的存在,而情绪的质...
吉凶悔吝的解释是什么 风水形势... 吉凶悔吝的解释是什么从古至今,人们对于吉凶悔吝都有着不同的看法。所谓吉,是指好的运气,让人们沾沾自喜...
如何看每日生肖运势 每日生肖运... 背景说明每个人都希望自己的运势越来越好,而对于人来说,生肖运势是一个参考价值很高的判断标准。按照传统...
最准观音灵签21签解签 观音灵... 观音灵签21签解签-遵医嘱,健康长寿观音精神签证是中国民间宗教信仰的重要形式,也是一种广泛流传的祈祷...
梦见红裤子被水冲走 梦见河里洗... 梦见红裤子被水冲走红裤子是一种比较鲜艳的颜色,在梦中出现可能代表着某种情绪或状态。而被水冲走则更加具...
十二星座对象配对 12星座最佳... 12星座配偶标准白羊座:温柔善良的人乐观单纯的白羊座在恋爱时喜欢另一半无条件的宠爱自己,另一半对自己...
带水又带土的名字女孩名字有哪些... 含水和土的字有哪些含水的字:淦、澜、浸、泼、滴、没、汪、沸、鸿、沔、浩、渣、溢、潺江、注、漭、淬、澧...
六爻失物卦 在线占卜失物 六爻... 六爻占卜 寻找失物公历起卦时间:2012年12月24日9时44分(按公历时间起卦)农历:仁辰年十一月...
天网今日生肖运势 每日特吉生肖... 天网今日生肖运势天网今日,十二生肖依旧是重要的关键词之一。根据传统文化和民间信仰,每个人都属于一个生...
六爻代表书籍 六爻预测好的书籍... 学六爻的书籍那些比较经典,最好适合初学者的。从古至今六爻类的书流传于世的非常少,六爻类最经典的几本书...
十二星座女生专属花卉 小葩画1... 狮子座的女生喜欢什么样的花1.狮子座的女生喜欢鲜艳、华丽、高贵的花。2.狮子座的女生通常有着自信、热...
客厅风水禁忌及化解 客厅推拉门... 客厅风水禁忌及解决方案客厅是家庭中最重要的空间之一,也是最容易受到风水影响的空间之一。在客厅里,我们...
吉凶参半牛兔在含义 牛兔相冲到... 吉凶参半牛兔在啥意思吉凶参半牛兔在是指属牛的和属兔的结婚以后生活吉凶各一半。丑牛与子鼠六合,因此最宜...
各生肖属相的车牌号码吉凶对照表... 十二生肖与车牌号的佳搭配 十二生肖车牌号吉凶对照表通常每个人的黄道十二宫都会影响车牌号码的运行模式,...
客厅西部尖角的风水 客厅有棱角... 客厅西南角最好的风水是什么?客厅西南角最好的风水是什么?客厅西南角最好的风水是什么?房子的方形风水是...
带昶字的女孩名字 带滢的女孩名... 长字命名的寓意及意义长字命名的寓意和意义是正直、坚强、努力、阳光、前途似景、忠诚。长是一个通用词。长...
六壬怎么算命 六壬掐指神算金口... 什么是六仁?刘仁是中国古代的算命方法,起源于汉代,是中国道教学派的经典之一。刘仁包括六个神:天乙、天...
四月二十九生肖运势 十二生肖鸡... 女1993农历四月二十九早上十点生辰八字是什么如何出生时间:公历 1993年 6月 18日 10点本...
带心字的游戏女孩名字大全集 游... 2020男孩怎么起名有内涵 带心字的男孩名字大全心繁体:心起名五行:金姓名学笔画:4画简体笔画:4画...
八字鬼谷子算命 鬼谷子精髓50... 什么是八字鬼谷子算命?八字鬼谷子算命,又称李静算命,是中国传统的民间算命方式。八字鬼谷子算命起源于六...
十二星座下个月的运势女生 十二... 白羊座下个月的运势女生白羊座女生本身就充满了无限活力和热情,下个月的运势也不会让你失望。职业上可能会...
号令天下手机吉凶预测 号令天下... 手机号怎么算吉凶?用最后四个手机号码除以80,然后减去整数部分(只留小数),再乘以80,就会得到一个...
命理十二生肖今年运势 明天运势... 命理十二生肖今年运势今年每年都有不同的转瞬即逝的岁月。对于不同的黄道十二宫来说,它每年都有自己独特的...
八字长生好吗 八字中帝旺到长生... 八字日坐长生一定富吗丁火曰元生于未月,余气通根,年支丙火也能助身,但于上两透旺食,生财耗身过甚,故命...
带日的名字女孩名字大全 起名带... 日字旁边的女孩名字大全日字旁边的女孩名字推荐1、诗晗、慧曦、Xi、仲晴2、小芸、小娟、会晴、若昕、敏...
号令天下固话号码测吉凶 查电话... 周易81测手机号码吉凶,号令天下手机号码测吉凶提起周易81测手机号码吉凶,大家都知道,有人问天下手机...