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相反,一个单向的数据传输,用于Server主动向订阅(Subscribe)了相关服务的Client发布(Publish)信息。

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





