SOME/IP在Linux/Android编译运行

本文介绍了SOME/IP服务的组成,包括Method、Event和Field。详细阐述了SOME/IP协议,包括消息头和消息体的结构。接着,文章展示了如何在Linux环境下编译和运行VSOMEIP,包括测试示例和hello_world应用。最后,提到了在Android平台上编译VSOMEIP的步骤,涉及boost库的集成和动态库编译。
摘要由CSDN通过智能技术生成

SOME/IP服务的组成

SOME/IP,全称为Scalable service-Oriented MiddlewarE over IP,是用于控制消息的汽车中间件解决方案。它提供基于网络的面向服务的通信机制,而每个服务一般都是由相近或相关的一些功能组成,服务是SOME/IP的最核心概念。在一个服务中,定义了Server和Client两个角色:Server提供服务,Client调用服务。对于同一个服务,只能存在一个Server,但可以同时存在多个Client调用服务。一个Service由0~多个Event/Method/Field组成。与CAN相比,面向服务的通讯方式能够大大降低总线的负载率。
在SOME/IP中规定服务中可以包含三种接口,分别称为Method、Event和Field,如下图:
在这里插入图片描述

SOME/IP 协议介绍

SOME/IP的报文格式如下图所示,由消息头部(Header)和消息体(Payload)组成,Header主要包括以下字段:
在这里插入图片描述

  • Message ID,用于唯一标识消息,当消息为Method类型时,由Service ID和Method ID组成,当消息为Event类型时,由Service ID和Event ID组成
  • Length,消息长度(从Request ID开始到Payload结束)
  • Request ID,服务提供者和调用者可用于区分相同消息的不同调用,由Client ID和Session ID组成
  • Protocol Version,协议头版本号,目前该值必须为1;
  • Interface Version,接口版本号,一般由服务提供者定义
  • Message Type,用于标识消息的类型,如下图所示:
    在这里插入图片描述
  • Return Code,用于标识请求是否成功处理,不同的消息类型,它们在传输时所携带的Return Code也不同
  • Payload,也叫有效载荷,是消息内容,通常它的长度是可变的

Method | Event | Field

Method

调用或引用一个进程/函数/子程序,通常由Client发起,并由Server答复。Request是最常见的一种Method,由Client向Server请求数据;Response是Request的结果,由Server答复Client的Request。而Method Fire & Forget方式,只Client向Server发起,但Server对该请求不回复。
在这里插入图片描述

Event

Event刚好和Method相反,一个单向的数据传输,用

  • 19
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值