最后更新:2021-10-21 08:13:28 手机定位技术交流文章
@[supper_runner](SOME/IP协议详解_SD&SI(ServiceDiscovery & ServiceInterface))
# 个人学习记录和分享总是感激不尽。
COIS/IP目前是汽车行业SOA结构的主要通信协议,侧重于共享以SO/IP服务为导向的服务提供方式和以SO/IP服务发现和服务界面工作场景为中心的SO/IP通信机制的好处。如果感兴趣,您可以分享SO/IP序列化、ETS一致性测试以及应用SO/IP服务定义方法。
COH/IP代表了可缩放服务导向的Middalware而不是IP,对OCH/IP协议的特性作了简单概述,但新的COS/IP连接伙伴对这四个特点的直接理解可能过于抽象,无法快速查看下面的SD机制部分和服务接口部分。
由于COIS/IP中间体、服务和硬件的能力可以适当分离,在管理外联和服务可定制性方面,这些服务和硬件极为出色,将较少的服务纳入系统或甚至削减一些ECU对整个系统影响不大,如果理论带宽允许,服务的数量可以永远扩大(当然,服务编号的范围是两个字节,这个概念可以使用)。
COIS/IP协议维护服务单位的整个汽车信息,其中可包含一系列可搜索的方法(方法)和事件通知组(EventGroup),可通过服务接口共享,允许按需提供服务,从而增强通信线路的使用。
(这是一个难以追踪的借用图像,仅用于学习和分享;如果发生违规情况,请联系删除。 )
COH/IP作为分布式系统的通信协议,规定应用层与较低信息,如端点信息、硬件驱动器等信息松散地连接,以便应用模块在承认所需服务或提供自己的服务和在中间功能方面表现良好时,可能与较低水平的信息完全无关。
COS/IP处于OSI 7层模型(应用层)的5-7级,必须在TCP/IP议定书堆叠上操作,即COS/IP是所有IP和TCP/UDP。
服务发现机制是服务交换的主要方法,也称为服务发现机制,它发挥服务发现的作用。
SD必须首先了解一些/IP的通信结构,这种结构通过使用服务器客户无端分销模式支持分布式系统,即服务发现分为两个过程,即搜索和服务提供流程,即FindServices和提供服务,以及订阅和响应流程,即订阅和订阅.SOME/IP利用这四条信息实现服务发现。
以下是SD通信总图:
Clitend在启动时发送了查找服务,服务器在启动时发送了办公室服务,目的是寻找所需的服务并通知所提供的服务。为了了解发送这两种通信的机制,必须启动某些/IP。 部分/IP将经历启动的三个阶段:初步等待阶段、Répétion阶段和主要阶段。
Initial Wait Phase
当OCI/IP仓库首次启动时,它进入了启动等待阶段,该阶段完全在ECU内启动,没有任何外部连接,而且没有发送OCI/IP信息。
Repetition Phase
《协定》已进入快递阶段,即快递阶段;对于服务器,将开始提交办公室服务文件,周期翻一番,直至实现REREPETISMOUS_MAX的数量,然后进入主要阶段。
如果Clitend结束,源服务信息将开始发送,用于所需服务,传输机制也将是一种周期性翻番模式,直至达到REREPETIONUSE_MAX的数量,届时Clitend结束将进入主要阶段,如果Clitend在现阶段找到所需的服务,它将立即跳跃到主要阶段。
Main Phase
Clitenend 进入主阶段后不再发送查找服务,但服务器继续发送 CYCLIC_OFTER_DELAY 的“提供服务”,直到 ECU 休眠或关闭为止。
FindService& OfferService的报文格式的Entry部分与订阅报文略有区别,格式如下,每个字段都有其相应作用,篇幅有限只能分享几个小知识点,无法一一赘述,感兴趣的朋友可以自行查看协议。
订阅活动在主阶段进行,在主阶段,Clitendend公司在收到办公室事务处要求的服务后,评估服务是否包括需要的事件组,如果包括,则将订阅信息发送到办公室事务处包括的节点信息。当服务器客户收到订阅请求时,应有效地理解为该服务被发送到订阅后进行回复(订阅 TCP 服务需要 es)
订阅报纸条目格式如下:
Service Interface是各个SWC交换服务信息的媒介,应用层通过发送和解析Service Interface来实现信息传递、远程调用算法、远程控制硬件和信息读取。Service Interface共分为四种,每种的使用场景各不相同,分别是R&R Method、F&F Method、Event和Field。下面我将4种服务接口的使用场景和报文解析分别列举讲解。Service Interface报文格式如下:
R&R Method全称Request&Response Method,工作机制为请求应答机制。当Client搜索到所需服务后,在服务的有效生存时间内,Client端根据功能需求发出Request,对于R&R Method,Server端必须给予Response应答,若Request存在差错,如Service ID无法识别、Interface Version不正确、数据格式不正确等等,Server端需要进行Error应答,并指明错误信息。
R&R Method用于短数据的传输、远程算法的调用、远程设备的控制等等场景。
R&R Method报文包含的关键信息有:
对于R&R Method,其Method ID的第一个bit必须为零,且0不能作为Method ID,因此其取值范围为0x0001-0x7FFF,另R&R Method的充要标志是Message Type为0。ReturnCode用于Error信息的错误指示。
F&F Method全称Fire&Forget Method,工作机制为请求应答机制。当Client搜索到所需服务后,在服务的有效生存时间内,Client端根据功能需求发出Request,对于F&F Method,Server端不能够给予Response应答,若Request存在差错,如Service ID无法识别、Interface Version不正确、数据格式不正确等等,Server端也不需要进行Error应答。
F&F Method一般用于不需要Response答复执行结果的场景,比如需要Server发送某一个Event,若执行成功,Client会收到Event,因此不需要Response答复,此场景设计一个F&F Method即可。
F&F Method报文格式包含的关键信息有:
对于F&F Method,其Method ID的第一个bit同样必须为零,且0不能作为Method ID,因此其取值范围为0x0001-0x7FFF,另F&F Method的充要标志是Message Type为1。ReturnCode为0。
活动用于将服务器端的信息传送到特定的客户端, 通常用于状态值通知或触发事件通知。 交付模式通常分为“ 变化和周期”, 可用于 TCP 分布、 UDP 单一传输和 UDP 多个传输 。
以下是以“活动”纸质格式提供的关键信息:
在事件的情况下,事件编号的第一个位数必须是 1, 0x8000 不能是方法代号, 所以其值范围是 0x8001- 0xFFFE( Oxy没有看到它的用法, OCI/ IP中的所有 F 通常都有特殊的意义, 已知的伙伴可以分享它), 而关键事件符号是 Mession 类型是 2 。 ReturnCode 是 0 。
外地接口主要侧重于域值的管理,对于AUTOSAR结构而言,在为外地设计的系统配置中开发了一个独特的接口;对于Linux典型的Vsomeip对接,外地的交付可以通过与方法和事件调制解调器接口和外地的暴露服务接口Ar直接联系进行。
通知人报告是 " 事件 " 格式,用于服务器端的主动域值通知,这与发送到网络和内部软件级存在接口时的事件报告没有区别。 建议使用 " On Change " 模式进行传播。
Getter报文使用R&R Method格式,用于Client端主动获取域值,Server端收到Getter请求后应使用Getter Response将当前域值发送给Client端,Getter请求报文一般不携带参数。
Setter报文使用R&R Method格式,用于Client端主动更改域值,Server端收到Getter请求后应使用Setter Response将更新后的域值发送给Client端,Setter请求报文必须携带参数。
ISO/IP知识具有高度一致的逻辑和许多无关紧要的信息,而且很难在文章中表明在实践中需要更多时间来学习。这篇文章只侧重于SD和服务界面。如果感兴趣,可以收集。如果我有时间,我将更新SO/IP的顺序、SO/IP的ETS一致性测试,以及SO/IP对服务定义的应用,非常有益的做法是掌握文件中的每一个词,我们欢迎批评和增长。
本文由 在线网速测试 整理编辑,转载请注明出处。