1. SomeIp是什么
SOME/IP(Scalable service-Oriented MiddlewarE over IP)是一种面向服务的通信协议,主要用于汽车电子系统。以下是对它的核心介绍:
1. 核心作用
为车辆内部ECU(电子控制单元)提供高效通信,支持服务导向架构(SOA)。例如:自动驾驶模块调用雷达传感器的数据服务。
2. 关键特性
- 服务发现:自动识别可用服务(如车灯控制服务)
- 序列化:将数据转换为网络传输格式(支持结构体/数组等复杂类型)
- 远程调用:跨设备调用功能(如中控屏远程启动空调)
- 多播支持:同时向多个节点发送数据(如同时更新多个显示屏)
2. 依赖ETH模块概述(以RH850U2A8为例)
RH850U2A8系列片上有2路以太网控制器(ETNB0,ETNB1),其中ETNB0(最高支持100 Mbps),ETNB1(最高支持1Gbps) 。内置DMA传输功能:DMA transfer controller (AVB-DMAC)。其系统框图和中断号如下图

3. SomeIp协议栈说明
汽车某ECU软件算法如果需要和其他ECU交互,大部分都通过跨ECU之间的服务来实现,即可以通过车载以太网异步调用其他ECU上的服务,应用开发者只需要关注服务接口即可。SOME/IP就是为实现上述服务通信的封装和管理而设计的规范
3.1. SOME/IP通信链路示意图

3.2. SOME/IP服务模式
面向服务:someip将上述数据通信行为设计成服务,分为服务端和客户端。客户端可以请求服务端给数据,或者执行动作。通信中发送/接受的仅仅是服务接口的数据字节流。只有应用自己知道里面内容的含义,通信过程只能知道那是一堆字节流。
而针对上面的两种场景,someip设计了三种服务模式以满足通信目的。
• 服务接口(Service Interface)
• Method – 方法
• Property/Field – 属性/字段
• Event – 事件

- Method
Method有点像是去调用一个函数,函数可以返回数据回来,也可以没有数据返回单纯像让它千个什么事。被调用的函数是Server,一个Server可以被多个Client调用(为避免同时调用的冲突,可以设置排队或者多实例等方法)
• Client端向服务端发送请求报文
• 服务端回复响应报文(RR-Method)
• 服务端不需要回复响应报文(FF-Method)