车载服务通信(SOME/IP)设计实践

原创 汽车电子与软件 2025-03-17 08:03

作者 | 不可说

出品 | 汽车电子与软件



#01
引  入


SOA架构中,服务是构成系统的基本单元,它代表了系统中的某个功能或操作。服务通过明确的接口与外界进行交互,实现了功能的封装和重用。SOA架构的核心就是服务,它通过将应用程序划分为一系列的服务来降低系统的复杂度,提高系统的灵活性和可维护性。在SOA中,服务是通过其接口被定义和访问。接口是服务与外界交互的桥梁,它定义了服务的输入、输出和行为规范。


SOA架构中,以太网通信作为服务的传输载体,负责在不同的ECU或服务之间传递数据和信息,根据AUTOSAR平台的规范与推荐,一般选择以太网应用层协议SOME/IP协议或者DDS协议作为跨域通信协议。


本文以SOMIP协议为例进行SOA通信配置说明,它支持服务发现、服务订阅、事件通知以及请求-响应等通信模式,是AUTOSAR标准中定义的关键通信协议之一。可以参考AUTOSAR官方文档,如《Specification on SOME/IP Transport Protocol》。SOME/IP协议使得SOA架构中的服务能够在以太网环境中进行高效的通信和交互,从而实现了服务的动态发现和绑定。




#02

服务接口信息配置


SOME/IP协议中,服务接口被明确划分为三种类型:MethodFieldEvent,每种类型都服务于不同的通信需求。


1Method


Method是一种请求-响应式的服务接口,客户端通过发送请求消息给服务端,并期望从服务端接收到一个响应消息。这种类型的接口通常用于执行某些操作或计算,并返回结果。


Method接口非常适合于需要即时反馈的交互场景,如控制车辆某个部件的开关状态、查询当前的系统参数等。


比如,一个“打开车窗”的Method请求会被发送到车窗控制ECU,该ECU执行操作后,通过响应消息告知请求者操作是否成功。


Method又分为RRFF两种形式


RRMethod with response)客户端发送请求消息( Request) 调用某一方法, 服务端通过响应消息( Response) 将结果返回给客户端。


FFMethod fire & forget)客户端发送请求消息( Request) 调用某一方法, 服务端不回复响应。


交互过程可以参考下图:


 

Method交互示例


2Field


Field接口代表了一种可以被读取或写入的数据项,它通常与某个服务的状态或配置相关。与Method不同,Field的访问不需要明确的请求-响应流程,而是通过订阅机制来实现数据的实时同步。


Field接口适用于需要频繁更新或监控的数据,如车辆的速度、温度、电池电量等。


如车辆仪表板ECU可能订阅了车速传感器的Field接口,以便实时显示当前车速。


具体的来讲Field分为三种类型:SetterGetterNotify


  • Field字段是客户端可以远程访问的服务端中的变量


  • 客户端可以通过远程调用Getter方法获取Field的值


  • 客户端可以通过远程调用Setter方法设置Field的值


  • 当客户端订阅了某个事件组, 且事件组中包含的Field发生变化, 服务端会主动的通过Notification消息通知客户端


交互过程可以参考下图:


 

Field交互示例


3Event


Event接口用于通知客户端某些重要事件的发生,这些事件可能是由服务端自主触发的,也可能是对外部条件变化的响应。Event的发送是单向的,即服务端向订阅了该事件的客户端发送通知,而不需要等待客户端的响应。


Event接口非常适合于异步通知场景,如碰撞预警、车门未关警告等。


比如当车辆检测到即将发生碰撞时,碰撞预警系统会通过Event接口向驾驶员辅助系统发送碰撞预警通知,以便及时采取措施。


交互过程可以参考下图:


在实际通信过程中,客户端首先订阅( Subscribe) 服务的某一事件组( Event Group) , 当事件组中的包含的事件发生之后, 服务端将通过Notification消息( Notify) 通知客户端


 

Event交互示例


上述针对MethodFieldEvent三种通信类型介绍的各种使用场景并无绝对,根据实际开发场景、开发习惯可以灵活调整,如一个“打开车窗”的请求场景,使用MethodField都可以实现。


4)服务接口信息设计举例


如给出以下氛围灯功能的软件架构需求,对其配置通信信息;


功能

服务

接口描述

接口

参数

参数类型描述

参数类型

参数范围

氛围灯

氛围灯基础服务

AmbiBasicService

模式控制

CallAmbLiModeReq

入参:mode

模式类型

Uint8

1:模式1

2:模式2

模式获取

GetAmbLiModeSts

回参:mode

模式类型

Uint8

1:模式1

2:模式2

模式通知

OnAmbLiModeChange

回参:mode

模式类型

Uint8

1:模式1

2:模式2


针对模式控制和模式获取,可以采用MethodRR方法,针对模式通知可以使用Event类型;


对于服务的每一个接口,都要设定ID来代替,在SOMEIP协议中,这部分字段占有16bits,一般都会用十六进制来表示,需要在每个服务内保持唯一性,同时避开特殊取值,如0x00000xFFFF


对于通知类型的接口,会设定事件组,来同时接收该组内所有事件和属性的通知,而无需分别订阅每个单独的事件或属性,同样需要一个16bits的字段来表示事件组;


特别注意,根据协议规范,通知类型消息,即Notifier/EventID16bits最高位固定为1,不会是0


另外,SOMEIP协议是基于IP层的应用层协议,所以也需要指定以太网传输层的协议;


根据以上信息,可以制定服务通信矩阵如下:


Element name

CallAmbLiModeReq

GetAmbLiModeSts

OnAmbLiModeChange

ElementID

(Method/Event ID)

0x1001

0x1002

0x8001

Method/Event/Field

Method-RR

Method-RR

Event

Getter/Setter/Notifier/Event

\

\

Event

Eventgroup

(Name@EventgroupID)

\

\

AmbLiEG@0x0001

L4-Protocol

TCP

TCP

TCP

Parameter

Name

mode

 

result

mode

 

mode

 

Parameter

Type

Uint8

 

Uint8

 

Uint8

 

Uint8

 

Parameter

IN/OUT

IN

Out

OUT

OUT

Comment

1:模式1

2:模式2

1:成功

2:失败

1:模式1

2:模式2

1:模式1

2:模式2


类似的,也可以使用field类型通信:


Element name

CallAmbLiModeReq

GetAmbLiModeSts

OnAmbLiModeChange

ElementID

(Method/Event ID)

0x1001

0x1002

0x8001

Method/Event/Field

Field

Field

Field

Getter/Setter/Notifier/Event

Setter

Getter

Notifier

Eventgroup

(Name@EventgroupID)

\

\

AmbLiEG@0x0001

L4-Protocol

TCP

TCP

TCP

Parameter

Name

mode

 

mode

 

mode

 

mode

 

Parameter

Type

Uint8

 

Uint8

 

Uint8

 

Uint8

 

Parameter

IN/OUT

IN

Out

OUT

OUT

Comment

1:模式1

2:模式2

1:模式1

2:模式2

1:模式1

2:模式2

1:模式1

2:模式2


注意,一般情况下,MethodRR类型接口返回值通常是为了表示接口调用的状态,FieldSetter类型接口不仅执行字段的赋值操作,还返回了操作后的某种数值结果,以便于调用者了解设置操作的影响。




#03

服务通信信息配置


SOME/IP中,消息的发布、发现与订阅机制是其核心功能之一,它严格遵循以服务为单位的通信原则。这一机制使得不同的服务能够在车辆内部网络实现高效、灵活的数据交换。为了确保服务间通信的顺利进行,每个服务在参与通信之前,都需要进行详尽且细致的通信信息配置。


首先,服务IDService ID)是区分不同服务的唯一标识符。每个服务都会被分配一个特定的服务ID,这个ID在整个网络中必须是唯一的,以确保消息的准确路由和识别。服务ID的分配通常遵循一定的规则或标准,以便于管理和维护,同样避开特殊取值,如0x00000xFFFF


其次,实例IDInstance ID)进一步细化了服务的身份标识。在某些情况下,同一类型的服务可能需要以多个实例的形式存在,以满足不同的通信需求。实例ID就是用来区分这些同类型服务的不同实例的。


接下来是单播通信的配置。每个服务都需要配置一个或多个单播IP地址(Unicast IP Address)以及对应的单播端口号(Unicast Port Number)。单播IP地址用于标识服务在网络中的位置,而单播端口号则用于区分同一IP地址上运行的不同服务或应用。单播通信允许服务之间建立直接的、点对点的通信链路,适用于需要即时响应或高可靠性的通信场景。


对于发布-订阅模式的通信,事件组(Event Group)的配置是必不可少的。事件组是一组相关事件的集合,它们共享相同的组播IP地址(Multicast IP Address)和事件组端口(Event Group Port)。当一个服务发布事件时,它会将事件消息发送到相应的事件组组播IP地址和端口上,所有订阅了该事件组的节点都会接收到这个消息。这种方式极大地提高了通信的灵活性和效率,特别适用于需要向多个节点同时发送相同信息的场景。(如果协议上未对事件组配置组播通信形式,可以不配置事件组组播IP与端口号)


此外,服务SDService Discovery)信息的配置也是服务通信中不可或缺的一环。服务SD IP地址(Service Discovery IP Address)用于标识服务发现服务的位置,而服务SD端口号(Service Discovery Port Number)则用于指定服务发现服务监听的端口,根据AUTOSAR的官方建议统一为30490。服务发现服务负责在网络中广播服务的信息,使得其他服务能够发现并进行通信。


VLAN划分(Virtual Local Area Network Partitioning)则用于提高网络的安全性、可管理性和可扩展性。通过VLAN划分,可以将物理网络分割成多个逻辑子网,每个子网都包含一组具有相同通信需求的服务。服务在配置时需明确指定其所属的VLAN,以确保消息能够在正确的网络区域内传输。


结合以上分析,针对氛围灯服务可以给出如下配置:


Service Name

AmbiBasicService

Service ID

0x1001

Service

Instance ID

0x0001

VLAN

100

UDP Unicast Port

30601

TCP Unicast Port

30602

Unicast IP

192.168.10.1

Event Multicast Port

30600

Event Multicast IP

239.222.10.1

SD Multicast Address

239.6.1.1

SD Port Number

30490


一般情况下,也需要指明部署在哪个控制器上,不过单播IP也明确了唯一的控制器,也需要指明,该服务在该控制器上是以何种身份存在,即,是Client还是Server,以便明确该服务部署是服务发布方还是服务发现方;


综上所述,SOME/IP协议中的服务配置是一个复杂而精细的过程,它涉及到服务ID、实例ID、单播IP、单播端口号、事件组组播IP、事件组端口、服务SD IPVLAN划分、服务SD端口号等多个方面的信息。通过详尽的配置和精细的管理,可以确保服务在网络中能够高效、可靠地进行消息的发布、发现与订阅,为车辆实现SOA大带宽通信。



/ END /



汽车电子与软件 主要介绍汽车电子软件设计相关内容,每天分享一篇技术文章!
评论 (0)
  • 新兴的个人健康监测技术为何在医疗场景和日常生活中越来越受到青睐?为了准确回答这个关键问题,我们首先需要理解三个全球性趋势:如今,几乎人手一部智能手机,这等于随身携带了一台高性能计算机、一个全天候运行的智能医疗传感器中心,还有一块显示屏。发达工业国家的人口正在迅速老龄化,而老年群体的疾病发病率较高。与此同时,年轻人也比过去更加关注如何延长健康寿命。这些人群以及服务他们的医务人员可以利用新技术来优化生活方式,合理调控运动、饮食、睡眠和压力等关键因素,帮助他们作出更健康的生活选择。如摩尔定律所预言,半
    艾迈斯欧司朗 2025-03-17 21:50 75浏览
  • 文/Leon编辑/cc孙聪颖‍蛇年春晚最有意思的节目,一定非机器人跳舞莫属。就算是遥控或预编程,机器人能够做出如此复杂的动作,在五年前都是不敢想象的事情,其制造商宇树科技也因此火爆全网。就在春节过后不到一个月,会骑自行车的人形机器人诞生了。这背后,是近年来“具身智能”概念的迅猛发展。“我们造了一个跟人一样灵动的机器人!”3月11日,智元机器人联合创始人兼首席技术官彭志辉在微博上说道。在视频中,灵犀X2会骑自行车、能跳《科目三》,还可以与人促膝长谈,甚至拿起葡萄“穿针引线”。在全球人形机器人领域,
    华尔街科技眼 2025-03-17 12:38 112浏览
  • 一、引言:语音芯片的智能化浪潮在万物互联的智能化时代,语音交互技术已成为人机交互的重要纽带。从智能家电的提示音到儿童玩具的趣味互动,从工业设备的语音告警到公共服务设施的自动播报,语音播放芯片IC作为核心硬件支撑,正在重塑各行各业的用户体验。在众多解决方案中,WTN6、WT588、WT2003H、WTV四大系列产品,凭借差异化的技术特性构建了完整的语音芯片产品矩阵。本文将深度解析这四大主流芯片的技术特点与应用场景,为开发者提供选型参考。二、主流语音芯片技术特性全解析2.1 WTN6系列:高性价比的
    广州唯创电子 2025-03-17 09:04 146浏览
  • 近期,据全球物联网市场调研机构IoT Analytics公布数据显示,2025年全球物联网设备连接数预计将突破200亿,同比增长约14%,物联网技术正以稳定上升态势向工业自动化、智慧城市、智慧农业与智慧家居等领域纵深推进。在多样化的应用场景和复杂环境需求的驱动下,物联网无线通信技术的运行功耗、传输距离和频段兼容性正受到前所未有的关注。为增加物联网通信模块的配置灵活度,消除物联网设备的“连接焦虑”,华普微重磅推出了一款自主研发的超低功耗、可兼容Sub-GHz与2.4GHz 双频段的高性能LoRa
    华普微HOPERF 2025-03-18 15:43 52浏览
  • 一、问题现象:语音播放异常的典型表现在使用WT588F(E)系列语音芯片的开发过程中,工程师常会遇到以下两类典型异常现象:播放不全:语音仅播放前段内容后突然中断,或特定段落无法触发播放断续:音频输出存在明显卡顿、爆音或波形畸变某智能门锁项目实测数据显示,在首批样机中有2%的设备出现语音提示突然中断的情况,经排查发现电源电压在播放瞬间跌落至2.0V(低于芯片工作阈值)。这类问题的根源往往隐藏于硬件设计与系统协同的细节之中。二、核心机理:电压稳定性对语音芯片的影响2.1 电源系统的动态响应特性WT5
    广州唯创电子 2025-03-17 09:18 127浏览
  •        在工业视觉检测线上,一台搭载传统图像传感器的机器人因高温导致图像噪点激增,误将合格零件判定为瑕疵品,每小时损失超10万元;在深夜的安防监控画面中,模糊的噪点让犯罪分子身影难以识别,导致案件侦破延迟—— 噪声,已成为图像传感器行业的“无声杀手”。据Yole统计,全球约35%的工业检测误差源于传感器噪声干扰,而安防场景下60%的有效信息因低照度噪点丢失。传统方案试图通过单一优化像素或电路来降噪,却陷入“按下葫芦浮起瓢”的困境。  &nb
    中科领创 2025-03-18 10:24 49浏览
  • 晨穹电子一家专业从事研发、生产、销售各类传感器为一体的高新科技企业。1 人赞同了该文章在工业4.0、智能家居、新能源汽车等场景中,传感器作为数据采集的核心器件,其抗电磁干扰(EMC)能力直接影响系统可靠性。尤其在5G通信、高功率电机、无线充电等复杂电磁环境下,传感器的信号失真问题愈发突出。本文结合MEMS传感器、物联网(IoT)设备、边缘计算等热度技术,解析提升传感器抗干扰能力的6大策略。 一、电磁干扰对传感器的威胁; 1、电磁干扰(EMI)会导致传感器出现 。2、信号跳变(
    传感器晨穹 2025-03-18 09:28 83浏览
  • 在制药行业中,生产工艺的精准控制与产品质量安全密切相关。随着制药工业4.0的发展,传感器作为生产流程的"感知器官",在确保合规性、提升效率、降低风险方面发挥着不可替代的作用。本文将以晨穹电子科技(以下简称"晨穹")的压力、温度、流量及液位传感器为例,解析制药厂关键工艺流程中的传感器应用场景及技术要求。一、制药核心工艺流程中的传感器需求1. 原料处理与配液系统液位监测:储罐内原料液位实时监控需使用卫生型液位计。晨穹磁翻板液位计采用316L不锈钢材质,具备CIP/SIP(在线清洗/灭菌)耐受性,符合
    传感器晨穹 2025-03-18 15:51 54浏览
  • 失效模式与影响分析(FMEA)失效模式与影响分析(FMEA)是一种系统方法,用于识别和分析系统或过程中的潜在失效,广泛应用于工程和制造领域,以提高产品可靠性和安全性。最新标准由 2019 年发布的 AIAG-VDA FMEA 手册(第一版) 定义,该手册结合了美国和欧洲汽车行业的最佳实践,并引入了 七步法,确保分析全面且结构化。图:优思学院六西格玛新版 FMEA 失效分析的七个步骤1. 规划与准备确定 FMEA 研究的 范围、边界和目标。组建跨职能团队(设
    优思学院 2025-03-17 14:43 114浏览
  • 随着汽车行业逐步迈向电气化和电池动力,位置传感器以及其他长期在车辆中被忽视但却至关重要的小型元器件正逐渐成为关注的焦点。某些电子元器件常常吸引大量关注,例如如今用于训练AI模型的强大GPU几乎每天都出现在新闻中。而其他元器件则默默地执行着重要但鲜为人知的功能。艾迈斯欧司朗一些历史悠久的产品线便隶属于后者,其中包括磁性和电感式位置传感器、电容式传感器和电池监控芯片。工业泵和风扇等产品的制造商利用位置传感器实现电动机高效平稳运行。在车辆的方向盘中安装电容传感器可以保障安全,它可以用于在辅助驾驶模式下
    艾迈斯欧司朗 2025-03-17 22:22 73浏览
  • 在招聘合适的人才时,清晰度至关重要。想要找到合适的人选,并确保他们在岗位上取得成功,第一步就是明确职位的关键绩效指标(KPI)和预期成果。但光有这些还不够,如何判断候选人是否具备必要的特质?这时,KSA模型就派上用场了。它是一个简单但强大的方法,能帮助你聚焦于真正影响岗位表现的关键要素。今天,我想和你聊聊这个模型,帮你更轻松地为合适的候选人设定合适的KPI。了解KSA模型KSA代表知识(Knowledge)、技能(Skills)和态度(Attitude),是评估候选人是否适合岗位的三个关键维度。
    优思学院 2025-03-18 15:03 52浏览
  • 在工业4.0与智能制造深度融合的今天,设备实时性、稳定性和成本效益成为企业核心竞争力的关键。触觉智能将基于RK3506平台,分享工业应用方案,本期为大家带来DSMC串行接口在数控行业的应用。DSMC技术解析底层架构突破双倍数据速率:通过上升沿与下降沿双重触发机制,实现单周期内2倍数据吞吐量,较传统SPI接口效率提升300%。多通道并行:支持8线/16线位宽可配置模式,满足多轴协同场景下的同步通信需求。性能实测标杆超低延迟:FPGA互联场景下,写延时小于75ns,读延时小于260ns,相比PCIe
    Industio_触觉智能 2025-03-18 11:46 54浏览
  • esp32s3使用platformio 点亮1.69寸TFT历程之LVGL移植 继上一篇我历经很久的时间点亮了1.69寸TFT之后。我开始进行LVGL的移植。开始LVGL的学习。用platformio 开发esp32s3真的好方便。按照上一节的环境。本次由于需要使用LVGL。打开platformio lib界面搜索LVGL。目前里面的版本是9.2.2。我使用的8.3.6。然后按照下图加载到自己的工程项目。待加载完毕后。我们会看到libdeps下面会出现LVGL库好了,这一步完成后。我们就开始移植
    zhusx123 2025-03-15 20:58 119浏览
我要评论
0
0
点击右上角,分享到朋友圈 我知道啦
请使用浏览器分享功能 我知道啦