• 265查看
  • 0回复

[系统功能] 5分钟了解SomeIP

[复制链接]


该用户从未签到

发表于 2-3-2024 14:47:46 | 显示全部楼层 |阅读模式

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


随着自动驾驶、智能座舱和先进的车载技术不断崭露头角,现代汽车更像是流动的计算机,充满了智能系统、传感器和复杂的软件。然而,要让这些电子元件协调一致,就需要一种魔法般的通信方式,而这就是我们今天要揭开面纱的主题:SomeIP。

1.什么是面向服务

SomeIP,即Scalable Service-Oriented Middleware over IP,翻译过来就是“基于IP的可扩展面向服务的中间件”。听起来是不是有点抽象?笔者刚接触的时候,就感觉都是每个字都认识,但连起来一点也看不懂。别着急,我们要把它翻译成通俗易懂的语言。

    如果学过编程,就能够理解C语言是一种面向过程的编程语言,强调程序的执行顺序和函数的调用。而C++支持面向对象编程,可以使用类和对象来组织数据和函数。某种功能虽然用这两者能够实现,但其中所运用的思维是截然不同的。

    那么CAN总线和SomeIP也是相似的道理,其中CAN是更面向信号的方法,而SomeIP是面向服务的方法。

    举例来说,假设我们有一辆汽车,其中有一个ECU负责引擎管理,另一个ECU负责制动系统。在CAN通信中,引擎ECU可以周期性地向制动ECU发送引擎转速信号(RPM),以确保制动系统能够根据引擎的状态进行调整。这里通信是以数据信号(RPM值)为核心,以实时性和可靠性为重点。

    而在智能汽车中,往往包含有多个ECU,包括导航系统、娱乐系统、驾驶员辅助系统等。在SomeIP通信中,这些ECU可以提供各种服务,如获取导航路线、播放音乐、执行自动驾驶功能等,都可以看做是一个服务。汽车中的不同ECU可以使用SomeIP来请求和提供这些服务。例如,驾驶员辅助系统可以通过SomeIP请求导航系统提供当前车辆位置的服务,以帮助导航系统计算最佳路线。同样信息娱乐系统也可以通过SomeIP请求导航系统提供当前车辆位置的服务,以帮助车主选择最近的商超。多个ECU都可以进行调用服务,优化了通讯架构,节约了系统资源。

    总之,CAN通信更注重实时数据的传输,通常用于汽车内各个ECU之间的低层通信,而SomeIP通信更注重服务的交互。这两种方法在汽车电子系统中通常会同时存在,以满足不同的通信需求。
2.如何通信

    在SomeIP中,服务被拆分成不同的功能接口:Event、Method、Field。这些接口旨在满足各种功能需求,就像不同工具适用于不同的任务一样。

    比如在与DHU(车机系统)的交互中,Field可以用来读取和设置音响音量大小,Method可以用来控制天窗的开关,Event可以用来接收周期性的信号比如当前车速用来显示等等。

5分钟了解SomeIPw1.jpg

Field 图来源于Vector

5分钟了解SomeIPw2.jpg

Method 图来源于Vector

5分钟了解SomeIPw3.jpg

Event 图来源于Vector

    这三种通信接口让SomeIP成为一种非常灵活的通信工具,可以满足各种不同的需求,就像魔法法杖一样,能够施展不同的魔法,让汽车电子系统中的各个模块之间可以实现各种神奇的功能和服务。

——————————————————

凄凉别后两应同,最是不胜清怨月明中。

——纳兰性德《虞美人》

5分钟了解SomeIPw4.jpg

快速发帖

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

本版积分规则

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

GMT+8, 22-12-2024 17:35 , Processed in 0.405776 second(s), 30 queries .

Powered by Discuz! X3.5

© 2001-2013 Comsenz Inc.