首页 > 汽车技术 > 正文

智能汽车车用基础软件平台关联技术

2022-09-25 17:59:10·  来源:汽车测试网  
 

(2) 主要功能


SOME/IP-SD 有两个主要功能:


一是应用程序之间传达自己的服务或获取对方的服务是否可用。二是向其他应用程序订阅服务,也 就是通过 SOME/IP-SD 对服务进行订阅,然后再用 SOME/IP 里的 Notification 类型消息发布订阅内容。


SOME/IP-SD 报文主要有以下几类:


① OfferService:Server 服务 Ready 并满足服务发布条件后,主动发出 OfferService 报文,告知组播内其他节点,该服务已经启动,可以创建服务连接。


② FindService:当 Client 在网络中未收到相关服务的 OfferService 报文或者暂时未收到,而 Client 又需要访问该服务,那么 Client 可以发送 FindService 报文主动寻找服务,如果 Server 服务 Ready,会回复 OfferService 报文。


③ StopOfferService:当 Server 发现服务不可用,不满足服务发布条件时,会主动发送 StopOffer- Service 报文,告知组播内其他节点,该服务已不可用,停止服务支持。


④ Subscribe:事件组的交互采用 “订阅- 发布” 机制,当 Client 收到 OfferServic 报文之后,通过发送 Subscribe 报文主动跟 Server 订阅相关事件组。


⑤ SubscribeACK/SubscribeNACK:当 Server 收到 Client 的订阅报文之后,需要先行判断是否符合可订阅的条件,如果该 Client 满足事件组订阅条件,则发送 SubscribeACK,告知 Client 订阅成功。当事件组内的事件准备就绪之后,Server 会以约定好的形式发送相关事件给成功订阅的 Client。如果该Client 不符合事件组订阅条件,Server 会直接回复 SubscribeNACK,告知订阅不成功。


⑥ StopSubscribe :当 Client 订阅某个事件组之后,发现后续并不在需要该事件组的数据了,可发送 StopSubscribe 报文向 Server 取消订阅相应事件。


(3) 通信行为


服务端和客户端的通信行为如图 4.5-5 所示,包含以下几个阶段:

图片

图4.5-5 SOME/IP协议服务端和客户端的通信行为阶段

⑦ 服务端通信行为:

服务端通信行为如图 4.5-6 所示。

图片

图4.5-6 服务S端通信行E为

a. Down Phase

在这个阶段,Service 是不可用的,即服务端无法提供服务。

b. Initial Wait Phase

·  当服务准备完毕 (Available) 后,进入此阶段。

·  如果此阶段收到 Find Service 报文,服务端忽略此消息,不做任何处理。

·  如果服务不可用了,将返回进入 Down Phase。

·  此阶段需要定义时间参数 INITIAL_DELAY_Min 和 INITIAL_DELAY_Max,初始化时间取其之间的随机值,当定时器超时后,发送第一帧 OfferService,标志着进入下一个阶段。

c. Repetition Phase

·  为了让客户端快速找到有哪些 Service,此阶段重复发送 OfferService,重复次数由 REPETI- TIONS_MAX 决定。

·  发送间隔以 REPETITIONS_base_DELAY 为基本时间,每发送一次,间隔是前一间隔的 2 倍。

·  如果收到某客户端的 FindService,不影响当前阶段的发送计数和计时,延迟一定时间 (REQUEST_ RESPONSE_DELAY) 后,单独发送单播 OfferService 给服务请求端。

·  如果收到 SubscribeEventgroup 后,发送单播 Ack/Nack,启动此订阅Entry 的 TTL 计时器。

·  如果收到 StopSubscribeEventgroup 后,停止此订阅 Entry 的 TTL 计时器。

· 如果服务不可用,离开此阶段进入 Down Phase,并发送 StopOfferService 通知所有客户端。

d. Main Phase

· 此阶段将周期性发送   OfferService,周期时间为CYCLIC_OFFER_DELAY。

·  如果收到某客户端的 FindService,不影响发送计数,延迟一定时间 (REQUEST_RESPONSE_ DELAY) 后,发送单播 OfferService 给服务请求端。

·  如果收到 SubscribeEventgroup 后,发送单播 Ack/Nack,启动此订阅Entry 的 TTL 计时器。

·  收到 StopSubscribeEventgroup 后,停止此订阅 Entry 的 TTL 计时器。

·  如果服务不可用,离开此阶段进入 Down Phase,并发送 StopOfferService。

服务端状态机转换图如图 4.5-7 所示。

图片

图4.5-7 服务端S状态机转E换图

⑧ 客户端通信行为

客户端通信行为如图 4.5-8 所示。

图片

图4.5-8 客户端通信行为

分享到:
 
反对 0 举报 0 收藏 0 评论 0
沪ICP备11026620号