0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

车载以太网的SOME/IP-SD协议了解与认识

电子工程师 来源:ADAS与ECU之吾见 作者:奋斗的农民工 2022-08-10 10:53 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

前言

首先,请问大家几个小小问题,你清楚:

你知道什么是SOME/IP SD吗?

SOME/IP-SD报文是如何发送与接收的呢?

SOME/IP-SD 存在哪几种Entry Type呢?

SOME/IP-SD内部状态机转换又是如何?

今天,我们就来一起探索并回答这些问题。为了便于大家理解,以下是本文的主题大纲:

正文

通过之前的文章我们了解到了SOME/IP协议的基本组成与SOME/IP的具体工作过程,同时也提到了SOME/IP-SD在SOME/IP协议中所扮演的重要角色:发现服务与订阅服务。鉴于SOME/IP-SD的重要性,本文将着重讲解下SOME/IP-SD的几类Entry Type的具体定义说明,SD报文的发送与接收流程,SD的状态机解析,让大家对SOME/IP-SD协议有个更为清晰的了解与认识。

SD Entry Type总结

Service Entries 通用需求

Service Entry使用的Type ID为0x00,0x01,使用的Entry报文格式为Format Type 1,其中Service Entries包含FindService,OfferService,StopOfferService三种。

如下图1所示展示了Serve Entries的通用需求,该需求是针对接下来要讲述的FindService,OfferService,StopOfferService的共性需求。

图1 Service Entries共性

Find Service Entry设置

如下图2所示为FindService Entry的各个Filed配置注意事项:

图2 FindService Entry 配置

OfferService Entry设置

如下图3所示为OfferService Entry的各个Filed配置注意事项:

图3 OfferService Entry 配置

StopOfferService设置

为了通知Offer Service,必须使用StopOfferService Entry 必须使用,如下图4为StopOfferService配置:

图4 StopOfferService Entry 配置

EventGroup Entries通用需求

EventGroup Entries 目前仅用到Type ID为0x06, 0x07,使用的EventGroup Entry为Type 2。同时EventGroup Entries 包含SubscribeEventgroup,StopSubscribeEventgroup,SubscribeEventgroupAck以及SubscribeEventgroupNack四种。

如下图5所示展示了EventGroup Entries的通用需求,该需求是针对接下来要讲述的FindService,OfferService,StopOfferService的共性需求。

图5 EventGroup Entry通用需求

SubscribeEventgroup设置

如下图6为SubscribeEventGroup的配置注意事项:

图6 SubscribeEventGroup配置

StopSubscribeEventgroup设置

如果需要停止订阅EventGroup,那么就需要调用StopSubscribeEventGroup的Entry来停止。

如下图7为StopSubscribeEventGroup的配置注意事项:

图7 StopSubscribeEventGroup配置

SubscribeEventgroupAck设置

当Client 通过SubcribeEventgroup Entry来订阅相关事件组时,如果Server确认满足订阅条件,那么就会通过SubcribeEventGroupAck来回复正响应,表示成功接受该订阅,Client此次订阅成功。

如下图8为SubcribeEventGroupAck的配置注意事项:

图8 SubscribeEventGroupAck配置

SubscribeEventgroupNack设置

当处在以下几种情况下时,Client请求的SubcribeEventGroup将得不到正响应,而是会回复SubcribeEventGroupNack:

Service ID,Instance ID,EventGroup ID的组合未知;

需要的Tcp连接并没有被客户端发起;

Server端的资源使用过度问题;

参考的Option Entries存在错误,丢失,或者互相矛盾的点;

如下图9为SubcribeEventGroupNack的配置注意事项:

图9 SubscribeEventGroupAck配置

SD Message

了解了上述SD所有Entry Type的设置注意事项,那么也就意味着接下来就要知道如何将这些打包的SD报文发送出去以及如何接收并解析这些SD报文,接下来我们就来了解下SD Message 的发送与接收流程。

Tx Path

正如之前的SOME/IP相关文章所述,SD模块无论是发送还是接收,都需要与一个十分重要的以太网上层抽象模块SoAd打交道,自然其发送与接收报文的过程也就会涉及到两个模块间的函数调用关系,具体的发送流程如下:

S1:SD报文已按照SD报文格式组包成功;

S2:如果是单播,则通过调用SoAd_SetRemoteAddr设置目标地址;如果是多播,则需要先通过通过调用函数SoAd_GetLocalAddr获得本地地址,然后通过SoAd_SetRemoteAddr函数设置目标地址;

S3:最后通过调用SoAd_IfTransmit将SD报文发送至总线上;

如下图10为SD Message的发送时序图,便于大家对SD的报文发送的各个环节有个直观的认识与理解。

图10 SD报文发送时序图

Rx Path

同理,对于SD报文的接收也需要经历以下几个基本环节才能够获取到数据至SD模块并得到正确处理。

S1:当SoAd模块接收到来自总线的SD报文时,就会调用SD模块的回调函数Sd_RxIndication来通知SD模块来处理数据;

S2:通过接收到的RxPduId便可以为SD实例对象获取对应的SoConId;

S3:通过调用函数SoAd_GetRemoteAddr并结合上述的SoConId来获取远程Server的地址;

S4:存储报文与地址信息以便下一步处理;

S5:最后调用函数SoAd_ReleaseRemoteAddr()来重置SoConID以便下一次使用,同时接收到的Entry均会按照接收到的顺序依次进行处理;

如下图11为SD Message的接收时序图,便于大家对SD的报文接收的各个环节有个直观的认识与理解。

图11 SD报文接收时序图

对于接收环节如果是采用多播模式接收时,那么AUTOSAR规定为了防止由于各个接收节点几乎同时的发送Response至总线所引起的总线负载突然猛增,因此通过一种延迟机制来防止现象的出现:

对于ServerServices,即接收到FindService回复OfferService的时刻可以通过SdServerTimerRequestResponseMinDelay与SdServerTimerRequestResponseMaxDelay参数来控制;

对于ConsumedEventGroup,即接收到OfferService回复SubcribeEventGroup的时刻可通过SdClientTimerRequestResponseMinDelay与SdClientTimerRequestResponseMaxDelay来控制;

SD状态机解析

SD状态机可分为两种:Server端状态机与Client状态机,每种状态机均可以分为两种状态:Down State与Available State。其中Available State可再进一步细分为Initial Wait Phase, Repetition Phase, Main Phase。

Server SD状态机

首先我们来看下Server端的四种状态机的转换过程,如下图12为Server端的通信阶段总体review:

图12 Server端的通信阶段总体Review

如下图13我总结了Server端SD各个状态机的转换关系以及转换之间的若干条件,其中条件1与条件2为“或”的关系,并不是”与“的关系,每个Phase阶段中发生的行为均体现在Action下面。

图13 Server SD状态机转换图

Client SD状态机

首先我们来看下Client端的四种状态机的转换过程,如下图14为Client端的通信阶段总体review:

图14 Client端的通信阶段总体Review

如下图13我总结了Client端SD各个状态机的转换关系以及转换之间的若干条件,其中条件1,条件2,条件3为“或”的关系,并不是”与“的关系,每个Phase阶段中发生的行为均体现在Action下面。

图14 Client SD状态机转换图

审核编辑:郭婷


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 以太网
    +关注

    关注

    41

    文章

    5923

    浏览量

    179533
  • 状态机
    +关注

    关注

    2

    文章

    497

    浏览量

    28851

原文标题:车载以太网之SOME/IP-SD专题篇

文章出处:【微信号:智能汽车电子与软件,微信公众号:智能汽车电子与软件】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    虹科峰会 | 前沿洞悉!车载以太网物理层协议解析与诊断

    HongkeHongkePico当现代车辆对车载网络的传输技术,提出更高要求——10BASE-T1S车载以太网,正愈来愈多地被应用到高级驾驶辅助(ADAS)、信息娱乐、诊断与维护等各个系统。因其更高
    的头像 发表于 10-29 17:44 300次阅读
    虹科峰会 | 前沿洞悉!<b class='flag-5'>车载</b><b class='flag-5'>以太网</b>物理层<b class='flag-5'>协议</b>解析与诊断

    车载以太网测试典型问题三则

    北汇信息作为国内外众多OEM的第三方认证测试服务商,积累了大量的测试服务经验,分享三则车载以太网测试典型问题。
    的头像 发表于 10-11 15:42 1757次阅读
    <b class='flag-5'>车载</b><b class='flag-5'>以太网</b>测试典型问题三则

    车载以太网技术的深度解析与核心应用

    在汽车智能化浪潮下,传统CAN总线已难以支撑自动驾驶海量数据传输需求。本文深入解析车载以太网如何通过高带宽、低延迟特性突破这一瓶颈,重点剖析其在自动驾驶系统中的TSN实时传输、SOME/IP
    的头像 发表于 09-03 09:57 5822次阅读
    <b class='flag-5'>车载</b><b class='flag-5'>以太网</b>技术的深度解析与核心应用

    技术分享 | 车载以太网gPTP时间同步:从协议到工程实践

    车载以太网时间同步精度不足?gPTP协议实现±50ns级同步革命!本文深度剖析gPTP协议在自动驾驶多传感器融合中的关键作用,从硬件选型到LinuxPTP工具链配置,手把手教你搭建高精
    的头像 发表于 08-20 11:39 1921次阅读
    技术分享 | <b class='flag-5'>车载</b><b class='flag-5'>以太网</b>gPTP时间同步:从<b class='flag-5'>协议</b>到工程实践

    车载以太网入坑指南,从小白到懂哥的进阶之路

    ​楼主废话在前 各位技术大佬们好!最近公司项目涉及到车载以太网,刚开始完全懵逼,花了大半个月时间各种查资料、测试设备,总算是摸清了门道。想着互联网上卧虎藏龙,肯定有不少大佬对这个技术感兴趣,所以写个
    的头像 发表于 07-18 13:51 745次阅读
    <b class='flag-5'>车载</b><b class='flag-5'>以太网</b>入坑指南,从小白到懂哥的进阶之路

    车载网络测试技术的进化之路#CAN #车载以太网 #TSN #时间敏感网络

    车载以太网
    北汇信息POLELINK
    发布于 :2025年06月26日 18:12:48

    光庭信息SOME/IP平台融合解决方案介绍

    随着汽车EE架构向 "中央计算 + 区域控制 + 以太网" 演进,面向服务架构(SOA)成为主流。作为车载服务化通信核心组件,SOME/IP 协议
    的头像 发表于 06-11 15:00 1365次阅读
    光庭信息<b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>平台融合解决方案介绍

    以太网入门:从零开始,掌握以太网基础知识!

    以太网作为现代通信技术的基石,其重要性不言而喻。无论是日常网络应用,还是AI对高速大带宽网络的需求,以太网都扮演着不可或缺的角色。本文将从零开始,带您了解以太网的基础知识,帮助您快速入
    的头像 发表于 06-09 14:00 4117次阅读
    <b class='flag-5'>以太网</b>入门:从零开始,掌握<b class='flag-5'>以太网</b>基础知识!

    双通道CAN转以太网#CAN转以太网#三格电子

    以太网
    三格电子科技
    发布于 :2025年05月12日 13:17:05

    《聊一聊ZXDoc》之汽车服务导向SOME/IP

    (Scalableservice-OrientedMiddlewarEoverIP)是汽车电子架构迈向集中化、智能化的关键通信基石。它基于以太网IP协议栈,将ECU间的“点对点拉线”升
    的头像 发表于 04-30 18:23 1456次阅读
    《聊一聊ZXDoc》之汽车服务导向<b class='flag-5'>SOME</b>/<b class='flag-5'>IP</b>

    【直播预告】第三代CAN总线CANXL介绍,预约有礼喔#CANXL #车载以太网

    车载以太网
    北汇信息POLELINK
    发布于 :2025年04月24日 17:59:47

    泰克示波器MDO3024在车载以太网测试中的应用

    随着汽车电子技术的飞速发展,车载以太网作为新一代汽车通信网络技术,正逐步取代传统的CAN、LIN等总线系统,成为连接车内各种电子控制单元(ECU)的主要通信方式。车载以太网不仅具有更高
    的头像 发表于 03-31 13:22 661次阅读
    泰克示波器MDO3024在<b class='flag-5'>车载</b><b class='flag-5'>以太网</b>测试中的应用

    以太网线缆测试解决方案

    工业以太网是指在工业环境的自动化控制及过程控制中应用以太网的相关组件及技术。工业以太网会采用TCP/IP协议,和IEEE 802.3标准兼容
    的头像 发表于 03-21 14:12 1641次阅读
    <b class='flag-5'>以太网</b>线缆测试解决方案

    HPM_SDK V1.8.0支持Ethernet/IP工业以太网协议

    1、概述Ethernet/IP是工业以太网中经常使用的协议栈,OpENer是ethernet/IP的一种开源实现。HPM_SDKV1.8.0中增加了对OpEner的支持,并提供了三个
    的头像 发表于 02-08 13:38 745次阅读
    HPM_SDK V1.8.0支持Ethernet/<b class='flag-5'>IP</b>工业<b class='flag-5'>以太网</b><b class='flag-5'>协议</b>栈

    ALINX发布100G以太网UDP/IP协议IP

    ALINX近日宣布,基于AMD 100G以太网MAC IP,成功开发出全新的100G以太网UDP/IP协议
    的头像 发表于 01-07 11:25 1177次阅读