欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 健康 > 养生 > SOME/IP服务接口

SOME/IP服务接口

2025/1/24 20:38:19 来源:https://blog.csdn.net/m0_64060063/article/details/145312907  浏览:    关键词:SOME/IP服务接口

本系列文章将分享我在学习 SOME/IP 过程中积累的一些感悟,并结合 SOME/IP 的理论知识进行讲解。主要内容是对相关知识的梳理,并结合实际代码展示 SOME/IP 的使用,旨在自我复习并与大家交流。文中引用了一些例图,但由于未能找到原作者信息,若存在侵权问题,请联系删除。

什么是Some/IP

        在前面的博客中我们介绍了SOA,英文翻译过来是面向服务。SOME/IP(Scalable service-Oriented Middleware over IP)是一种基于服务导向架构(SOA)设计的中间件协议,专为汽车行业中的分布式计算系统而设计。它用于在汽车电子系统(特别是车载网络和 ECU 之间)中实现高效的数据交换和通信。SOME/IP 基于 IP 协议,允许不同的车载控制单元(ECU)之间进行通信,支持高效的服务发现和消息传输。

        这一章主要介绍的是SOME/IP协议的服务接口

服务接口

1.1什么是服务接口

        在 SOME/IP 中,服务接口 是一种描述服务提供者所能提供功能的协议,它是 SOA(服务导向架构)实现的核心。通过这些服务接口,客户端能够找到服务、调用服务并获取返回值。服务接口不仅定义了具体的操作方法和数据格式,还规定了通信的协议和方式,保证了分布式系统中节点间的互操作性和通信效率。说通俗点在 SOME/IP 中,服务接口就像一个菜单,上面列出了一个服务可以提供的所有操作或功能。你就像在餐厅点菜一样,看到这个菜单后,决定你想要的服务。

1.2服务接口种类

        在interface中,一般有三种,Method,Event,以及Field.其中Method又分RR以及FF,即Request Response 以及Fire Forget .Field又分Setter,Getter,Notifer.

        

1.2.1 Method

        RR:Request Response

        FF:   Fire Forget

通俗点来讲RR就是有返回值也就是int fun(),假设是int .另一个就是void fun();RR请求在客户端把数据发给服务端后,服务端讲处理后的结果发回给客户端。另一个就是不用回消息。Method必须由客户端发起,这是一个 请求/响应 模式。

1.2.2 Event

        Event和Method相比,他是由服务端发给客户端的消息时间。当客户端订阅事件组之后,就可以接受了。就是一种发布订阅模式。其中一个event必须加入至少一个事件组,可以是多个。一个事件组可以包含多个event.必须订阅event所在事件组,不能具体订阅某一个event.这就差DDS一些距离了,灵活度不够好。DDS允许客户端对单个主题(topic)进行订阅,可以选择性地订阅特定的主题(event)。DDS 还可以通过丰富的 QoS(质量服务)配置来定制通信行为。

1.2.3 Field

        field字段/属性 是一段内存空间的值,保存在server端。其中getter(method):获取,client可以通过该方法主动从server内存空间获取feild值。setter就是设置field值,notifier(event),当filed值发生变化,就将最新的值发给client。需要注意的是,一个field必须加入事件组,因为他要使用notifer,在这方面他和event要求差不多。

服务ID

        

        除了Filed都有ID,Server ID, Method ID,Event ID, EventGroup ID.同一服务的同类型接口ID不能重复。其中Service为最为的ID,它包含Server ID, Method ID,Event ID, EventGroup ID.Method按类型往下细分有划分为 RR FF Setter Gettet.

        同一服务的同类型接口ID不能重复。这句话怎么理解呢?比如我的Service ID是0x1234 那么其内部的Method RR类型的为0x0001 第二个FF类型的就必须是0x0002.但是在不同服务ID中比如Service ID是0x2234,那么就可以相同。就是一个域的概念。

        

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com