目录
1. 总体说明
如上图所示为标准的网络七层架构,SOME/IP ( Scalable service-Oriented MiddlewarE over IP),即“运行于IP之上的可伸缩的面向服务的中间件”。他在系统中其实就是一个中间件的存在,所谓“Middleware中间件”是一种独立的系统软件或服务程序,分布式应用软件可借助Middleware在不同的技术之间共享资源。所谓的分布式应用软件,在这里指的就是“服务”;不同的技术之间,在这里指的就是“不同的平台或操作系统,比如Adaptive AUTOSAR系统等。
2. 服务说明
服务是SOME/IP的最核心概念。在一个服务中,定义了Server和Client两个角色:Server提供服务,Client调用服务。对于同一个服务,只能存在一个Server,但可以同时存在多个Client调用服务。一个Service由0~多个Event/Method/Field组成。与CAN相比,面向服务的通讯方式能够大大降低总线的负载率。
2.1 Method
调用或引用一个进程/函数/子程序,通常由Client发起,并由Server答复。Request是最常见的一种Method,由Client向Server请求数据;Response是Request的结果,由Server答复Client的Request。而Method Fire & Forget方式,只Client向Server发起,但Server对该请求不回复。
2.2 Event
一个单向的数据传输,只能是on change类型,用于Server主动向订阅(Subscribe)了相关服务的Client发布(Publish)信息。
2.3 Field
由以下三项内容构成:
-
Notifier:通知,Server的Client订阅了服务后第一时间主动向其发送数据。
-
Getter:获取,由Client向Server请求数据。
-
Setter:设置,由Client修改Server的数据。
3. 解析SOME/IP格式
3.1 Message Type说明
值 |
报文类型 |
说明 |
0x00 |
REQUEST |
请求,需要回复 |
0x01 |
REQUEST_NO_RETURN |
请求,不需要回复 |
0x02 |
NOTIFICATION |
Notifier/Event,不需要回复 |
0x80 |
RESPONSE |
回复 |
0X81 |
ERROR |
带有错误信息的回复 |