• 199查看
  • 0回复

[网络开发] SOME/IP服务的组成-基于车载空调做简要记录

[复制链接]


该用户从未签到

发表于 26-4-2024 22:29:10 | 显示全部楼层 |阅读模式

汽车零部件采购、销售通信录       填写你的培训需求,我们帮你找      招募汽车专业培训老师


在以CAN总线为主的车载网络中,通信过程是面向信号的(除了诊断通信之外),这是一种根据发送者需求实现的通信过程,当发送者发现信号的值变化了,或者发送周期到了,就会发送信息,而不考虑接收者是否有需求。

SOME/IP则不同,它是在接收方有需求的时候才发送,这种方法的优点在于总线上不会出现过多不必要的数据,从而降低负载。基于经典信号(例如 CAN)的通信-不足以进行更复杂的数据通信和控制。高度计算密集型 ECU可以在需要时向其他 ECU 提供所需的情报。

SOME/IP 提供基于网络的面向服务的通信机制,而每个服务一般都是由相近或相关的一些功能组成。

在服务中可以包含三种接口,这三种接口分别是事件发送(Event)、方法调用(Methond)和字段处理(Field)。

SOME/IP服务的组成-基于车载空调做简要记录w1.jpg

什么是服务?

以车载空调的例子来简单阐述:

    能打开或关闭空调

    能调高或调低空调的风量

    能告知当前的环境温度

    能告知当前的目标温度

    能设置当前的目标温度

    可以通过多种方式(例如语音、按键、触摸屏等方法)设置当前的目标温度

SOME/IP服务的组成-基于车载空调做简要记录w2.jpg

那么对于有上述需求的一个空调程序,我们将其形成一个服务。通过someip给出的三种接口,就可以将上面的6种功能设计成上图中的接口形式:

    两个可被调用的method,客户端可以调用其接口以打开/关闭空调 或 用来增加/减少风量。对应了上述功能点的1和2

    一个Event,可以不断通知客户端当前的环境温度是多少。对应上述功能点的3

    一个Field,由于我们希望目标温度其实既可以设置,由可以读取,所以我们将其设置为字段形式。对应上述功能点的4和5

需要说明的是:

    服务端对客户端是可以一对多的(反过来不行),那么一个服务是天生可以被多种客户端调用(所以支持语音、按键、触摸屏等多种方式)。对应上述功能点的6

    可以通过Method和Event的组合实现一个Field,不过从概念上来讲,Field的使用更加便于应用工程师理解和使用

    Method、Event和Field在CP架构中没有对应的概念,是通过RTE的SR、CS和Trigger接口组合模拟出来的;对网络设计还是展现成Method、Event和Field

    Field里面的设置、读取和通知机制的官方叫法为:setter、getter和notifier

    Event和Field里的notifier都可以做变更通知,但是其中还是有区别的:Event里的通知是完全由自身控制,按自己的需求通知对方,订阅近起到了使能作用;而Field里面的通知是只要对端订阅成功,会立即发送通知,后再根据自身情况通知

快速发帖

您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|Archiver|汽车工程师之家 ( 渝ICP备18012993号-1 )

GMT+8, 27-12-2024 11:02 , Processed in 0.482301 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.