设置随机ip_浅析SOME/ IP协议,打开车载以太网的大门

着ADAS、无人驾驶等技术在汽车领域的不断发展,使用传统CAN总线,在通讯速率、带宽等方面,都已经不能满足设计需求。因此汽车以太网作为其基础技术之一,也越来越得到行业内的重视和认同。在车载以太网中,控制单元的交互是通过SOME/IP来实现的。下面就请跟着小编的脚步,走进SOME/IP的世界。

SOME/IP,Scalable service-Oriented MiddlewarE over IP,是一种专用于汽车嵌入式的客户端/服务器通信机制。位于OSI七层模型中的5-7层。与CAN总线相比,实现了从小平台到大平台的扩展,兼容更多的用户案例和通信伙伴节点,并且既能够应用到嵌入式AUTOSAR系统中,又可以应用于Linux、QNX或Android等高级操作系统中。

69f01c5d6dc5cda004f8a90e02176ead.png
▲ 图 1:OSI的七层网络模型

SOME/IP报头格式

20bd3d02fdf95047f99eb2ccefadade1.png
▲ 图2:SOME/IP报头格式(源自SOME/IP Protocol Specification)

SOME/IP的功能

1、数据的序列化和反序列化

将网络中的对象,比如结构体或者字符串转换成二进制流进行传输的过程。娱乐信息的控制器可以支持8Byte对齐,所有的ECU应至少支持4Byte对齐序列化要求字节对齐,提高CPU的访问效率。

2、RPC远程调用机制

远程调用机制包括以下几种:

  • 请求/响应(R/R)通信

客户端发送一条Request消息,该消息由服务端Response。

4f987d3d47bb1343f7a063b352d09b4b.png
▲ 图3:请求/响应(R/R)通信
  • 焚烧 & 忘记(F & F)通信

客户端向服务器调用方法,无需服务器响应消息的请求称为fire&forget。

959b2fe5fa03a5d3b44981509253f676.png
▲ 图4:焚烧&忘记(F/F)通信
  • 通知事件(Notification Event)

与CAN报文类似,当客户端订阅Event Group后,当发生某些特定事件时(周期更新、值发生改变或值改变了ε),服务器就会给客户端发送Event报文。

9d462c7732d8e73b1c1cab27d8cde942.png
▲ 图5:Notification Event通信
  • 域(Field)

Field是Getter、Setter和Notifier的组合。Getter是一个请求/回应调用,请求报文的payload为空,Field的值置于响应报文的payload中。同样Setter也是一个请求/回应调用,将要设置的Field的值置于请求报文的payload中,响应报文的payload也要放置Field设置的值。Notifier同Event类似,Field中的事件报文在Field值更新时会发送出来,但遵循事件发送规则。

b7245b749a884dba67481d68d7802e01.png
▲ 图6:Notification Event通信

3、管理整个网络中服务的状态

  • 通信机制

SOME/IP通过以太网提供面向服务的通讯,采用SOME/IP-Service Discovery定位服务实例,并检测服务的运行状态,同时发布订阅处理功能。

8de22c0dd9aa0eef72ea0958fbbb1a9b.png
▲ 图7:Service Discovery的作用

客户端收到需要的服务,会发送订阅报文,服务端给出订阅ACK后,开始发送Event。所有需要Event或NotificationEvent的客户端必须在运行时间中利用SOME/IP-SD在某个server上注册。

183e17e7d763a591744cd0e66d011f1b.png
▲ 图8:订阅与Event发送(源自SOME/IP Service Discovery ProtocolSpecification)

1.服务发现通信行为

对每一个服务实例或事件组,服务发现在发送条目时必须至少包含初始等待阶段、重复阶段和主阶段。

2.初始等待阶段

随机等待一段时间后发送报文(发现服务和提供服务条目)。

3.重复阶段

服务发现实现时必须在重复阶段等待一段时间,且发送的条目数量有限制。如果发送的条目数量设置为0,则必须跳过重复阶段。在初始等待阶段之后服务实例进入主阶段。

4.主阶段

在进入主阶段之后,必须等待一段时间后发送第一条报文,循环发送提供服务报文。

当某ECU的服务实例停止服务时,必须发送停止提供服务条目。服务端的状态机如下图所示:

e67e288e8916ce6bc3b09ed9421c4773.png
▲ 图9:服务端的状态机(源自SOME/IP Service Discovery Protocol Specification)

客户端在Down阶段如收到提供服务条目,可内部调用服务请求;如未收到提供服务条目,则进入初始等待阶段等待一段时间后进入重复阶段发送报文,接收到提供服务条目,进入主阶段。当收到服务实例停止服务时,服务停止,仍停留在主阶段。客户端的状态机如下图所示:

c0c92a73085e9352ddad2080c363c446.png
▲ 图10:客户端的状态机(源自SOME/IP Service Discovery Protocol Specification)

SOME/IP与AUTOSAR

在AUTOSAR架构中,SOME/IP-SD模块位于AUTOSAR BSW Mode Manager module(BswM)和AUTOSAR Socket Adaptor module (SoAd)之间,如图11所示。BswM模块提供了通用模式请求和服务请求之间的连接。SoAd模块则处理以太网堆栈和Sd模块之间的服务请求。通过配置SoAd中的SocketConnection表,可以接收其他ECU的Sd模块发来的单播和多播报文。

be13d38cf56fbc9d3e090f4355de7b01.png
▲ 图11:AUTOSAR SOME/IP-SD模块交互(源自Specification of Service Discovery)

好啦,以上就是关于SOME/IP协议部分的介绍喽,关于SOME/IP的其他方面介绍,我们会在后续陆续为大家推出,敬请期待~

d7006f56c81dd1df90e3f1b410082e91.gif
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值