SOME/IP
名词解释
SOME/IP 全称是 Scalable service-Oriented MiddlewarE over IP。也就是基于 IP 协议的面向服务的可扩展性通信中间件协议。
- 面向服务 SOA
- 基于 IP 协议之上的通信协议
- 中间件
SOME/IP 功能
- 服务发现 (Service Discovery)
- 远程服务调用 (RPC,remote producer call)
- 读写进程信息 (Getter & Setter)
SOME/IP 与 CAN
协议种类 | 通信负荷 | 速度 | 通讯方法 |
---|---|---|---|
CAN | 8 Byte | 512 Kbps ~ 1 Mbps | 基于信号 |
CAN FD | 64 Byte | 2Mbps ~ 8 Mbps | 基于信号 |
Some/i p | ~1500 Byte | 1000 Mbps | 基于对象 |
CAN 协议是汽车软件开发最重要的通信协议,但随着汽车智能化程度越来越高,CAN 通信遇到的瓶颈。
通信速度:CAN 一般是 512kb/s,CAN FD 能到 1MB/s。
通信负荷:CAN 是 8Byte,CAN FD 能到 64Byte。
SOME/IP 、车载以太网、IP关系
CAN 是基于信号在双绞线中传输信号,而 SOME/IP 是面向服务在车载以太网中传输信号。而 SOME/IP 中的 IP 是 Over IP ,也就是在 IP 协议层之上的意思。 TCP/IP、UDP 都是传统网络协议,网络协议是分层的,车载以太网网络协议也是一样的。位于协议栈的应用层,基于 TCP/UDP 协议之上的应用。
SOME/IP 在 Autosar、SOA 中的位置
AP和CP Autosar 都支持 SOME/IP 协议。一辆汽车中可能同时存在基于 AP Autosar 的 ECU 和基于 CP Autosar 的 ECU,它们之间存在 Signal2Service 操作,通过车载以太网中的 SOME/IP 之类的协议通信。
AP Autosar 是基于 SOA 理念设计的软件框架,而 SOME/IP 作为其通信协议,可以实现 Service 的 Publishe/Subscribe 通信,所以在汽车领域一般讲 SOA 不能不提到 AP Autosar,而讲到 SOME/IP 时,SOA 也会常被提起。
SOME/IP 的形态
具体到汽车软件开发,SOME/IP 有两种形态:
- 集成到 Autosar 中的 Module
- 集成到 Posix 系统中的独立的 Lib
GENIVI 组织针对 SOME/IP 标准实现了开源 vsomeip 方案,vsomeip 能够独立集中到操作系统中。
SOME/IP 的消息格式
SOME/IP 协议一般指代具体
- SOME/IP
- SOME/IP-SD
- SOME/IP-TP
SOME/IP 消息结构:
一个完整的 SOME/IP 消息,包含以下内容:
- Message ID 代表 Sevice ID 或者 Method ID
- Length 消息长度,从 Request ID 算起到
- Request ID
- Protocal Version 协议版本号
- Interface Version 接口版本号
- Message Type 消息类型
- Return Code 返回编码
- Payload 数据负载
Message ID
可以指代一个远程调用 RPC 的 Method 或者是一个服务的 Event。
Request ID
Client ID 用来区分不同的客户对象,Session ID 用来区分不同的对话。
Return Code
根据 MessageType 不同,Return Code 不同。 一般是 E_OK(0x00),但如果是 Response 或者 Error 的话就不会是 0x0。
Payload
SOME/IP 底层可以基于 TCP 或者 UDP,这使得 Payload 的容量不一样。
如果是 UDP 协议,那么 SOME/IP 大概限制在 1400 Bytes的容量。
但如果是基于 TCP 协议,通过数据分段传输,那么 SOME/IP 可以实现更大容量传输。
Endianess
所有的 SOME/IP Header 内容采用大端传输(big endian)。 而 Payload 中的数据存放顺序通过配置设置。
SOME/IP 支持的数据结构类型
基础数据类型
SOME/IP 消息通信类型
R & R (Request & Response)
F & F (Fire & Forget)
Notification
Event
R&R
最常见的通信模式之一是请求/响应模式。客户端发送请求消息,服务器给予回应。
转自:https://cloud.tencent.com/developer/article/2011196
#####################################################################
功能快捷键
无序列表:Ctrl/Command + Shift + U
强调文本 强调文本
加粗文本 加粗文本
标记文本
删除文本
引用文本
H2O is是液体。
210 运算结果是 1024.
标注语法[^1]
TOC
语法: :
- 项目
- 项目
- 项目
- 项目
设定内容居中、居左、居右
使用:---------:
居中
使用:----------
居左
使用----------:
居右
第一列 | 第二列 | 第三列 |
---|---|---|
第一列文本居中 | 第二列文本居右 | 第三列文本居左 |
创建一个自定义列表
-
Markdown
- Text-to-HTML conversion tool Authors
- John
- Luke
KaTeX数学公式
您可以使用渲染LaTeX数学表达式 KaTeX:
Gamma公式展示
Γ
(
n
)
=
(
n
−
1
)
!
∀
n
∈
N
\Gamma(n) = (n-1)!\quad\forall n\in\mathbb N
Γ(n)=(n−1)!∀n∈N 是通过欧拉积分
Γ
(
z
)
=
∫
0
∞
t
z
−
1
e
−
t
d
t
.
\Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,.
Γ(z)=∫0∞tz−1e−tdt.
你可以找到更多关于的信息 LaTeX 数学表达式[here][1].
新的甘特图功能,丰富你的文章
- 关于 甘特图 语法,参考 [这儿][2],
UML 图表
可以使用UML图表进行渲染。 Mermaid. 例如下面产生的一个序列图: