业界动态
汽车软件通信中间件iceoryx和它的零拷贝技术
2024-10-31 23:51

1. iceOryx 是什么?

这是一头漂亮的"冰羚",它是一种用于汽车软件中的 ICP 通信中间件,由 Eclipse 基金会发布和维护。

汽车软件通信中间件iceoryx和它的零拷贝技术

通信中间件在汽车软件开发中占据越来越重要的地位,这是因为自动驾驶的发展带动了系统内部不同进程、线程之间巨量的数据交换,目前这样的通信量能达到 GB/s 以上,如何高效实现通信要求是每一个自动驾驶开发团队需要认真考虑的事情。

iceoryx 运用“零拷贝”技术实现进程间通信,具有快速、灵活和可靠的发布/订阅架构。

2. iceoryx 的特性

综上所述,iceoryx 就是非常适合汽车软件开发的开源通信中间件,速度快易于集成。

所以,需要知名的软件中间件也已经可以集成 iceoryx 了。

3. iceoryx 基础概念

iceoryx 的核心概念不多,只要掌握 RouDi、Runtime、Publisher、Subscriber、Topic 这些概念就可以进行基本通信功能的开发了。

3.1 RouDi

iceoryx 的守护进程,不同的应用需要与它进行连接才能正常通信。 重要提示:运行iceoryx程序前,一定要先启动守护进程 iox-roudi

3.2 Runtime

每个需要在 iceoryx 框架下运行的应用,都需要初始化它的 runtime。

3.3 Publisher

数据发送器,需要绑定 topic 使用。

FrankMsg 是一个 Topic,一个 Publisher 创建时需要指定 Topic,用来指定要发送的数据。

3.4 Subscriber

数据接收器,需要绑定 topic 使用。

3.5 Topic

Topic 是数据载体,Publisher 发送一个 Topic,Subscriber 能够接收绑定的 Topic 而不需要关注 Topic 来自何处,Publisher 与 Subscriber 要正常通信就需要绑定同一个 Topic。

3.6 信息轮询与信号触发

如果需要实时获取 Topic 信息,则可以不断调用 subscriber 方法,但这样势必会增加计算资源造成算力浪费。

iceoryx 提供 2 种方式提升了数据获取效率:

4. Zero-Copy 如何实现?

iceoryx 号称实现了真正的零拷贝。那我们为什么需要零拷贝呢?

想象一下,自动驾驶系统中感知模块获取的摄像头图片 1s 内要传输 30 次,1 张图片在内存中的容量是 3M,那么一个模块接收感知模块的数据通信量 1s 内就达到 80M/s,在自动驾驶中一般不止一个模块会订阅感知模块的图像信息,那么数据量很容易就达到 400M/s,这将造成非常严重的通信效率隐患,要知道在自动驾驶系统中还有其他大量传感器数据,比如体积更大的激光雷达点云数据,如果通信速度不能保证,那么算法的效率和结果也会得不到保障,所以,我们要提速。

零拷贝技术是提速的一种方式。

两个不同进程进行数据交换,因为进程的物理资源是独立的,所以,同样一份数据在两个进程之间交互就需要拷贝副本,这会产生对应的 CPU 及内存IO耗时,如果通信频繁数据量大,通信的时延就会越来越大。

所以,我们要减少数据的多次拷贝。我们只需要一份数据,然后传递它的指针,因为指针一般是 4个字节,所以,无比 3M 一张的图片,我传递一个指针给对方,通信时间就下来了,并且可以传递给多个进程,时间消耗并不会显著增加。

5. 示例

5.1 iceoryx 安装

iceoryx 需要一些基本的依赖,这个以 Linux 环境为例。

然后下载源码仓库,并利用脚本编译。

5.2 一个简单的 pub-sub 通讯示例

这个示例很简单,我会定义一个 Topic。

topic_data.hpp

然后围绕 Topic 验证它的发布-订阅效果。

然后定义一个 Publisher 用来发消息。 一个 iceoryx 应用一定要初始化 runtime 的,并且这个 runtime 的名字是唯一的。

在上面展示的代码片断中,我初始化了 runtime,然后定义了 topic,然后发送数据。

接收数据代码如下:

同样需要初始化 runtime,然后创建 subcriber 绑定 FrankMsg 这个 Topic。

核心代码这些就足够了,最后需要配置 CMakeLists.txt。 我们编译代码后得到 frankpublisher 和 franksubscriber 2 个 bin 文件,接下来可以验证效果了。

重要提示:运行iceoryx程序前,一定要先启动守护进程 iox-roudi

    以上就是本篇文章【汽车软件通信中间件iceoryx和它的零拷贝技术】的全部内容了,欢迎阅览 ! 文章地址:http://dfvalve.xrbh.cn/news/6121.html 
     资讯      企业新闻      行情      企业黄页      同类资讯      首页      网站地图      返回首页 迅博思语资讯移动站 http://keant.xrbh.cn/ , 查看更多   
最新新闻
“撒旦”人血鞋?碰瓷新疆棉花的耐克,又开始喊冤了?
继主动碰瓷新疆棉花把自己搞得股价大跌之后耐克秉承着“no zuo no die”的精神又开始暗搓搓搞“阴间操作”限量发售含人血的“撒
tiktok怎么搭建外网 详细教程及步骤
TikTok怎么搭建外网(详细教程及步骤)TikTok是一款非常流行的短视频社交应用程序,它在全球范围内拥有数亿用户。在使用TikTok的
《以案释法》步数越多,收益越高?别被“走路也能赚钱”的理财广告忽悠了
  走路也能赚到钱的理财  “丑的人还在睡觉,美的人已经跑出一杯星巴克了。”2016年的一天,一个女孩晒出的朋友圈截图引起了
如何用生意参谋算出同行店铺真实销售额
怎么经过生意顾问算出同行店肆实在销售额?大多数在淘宝天猫工作过的人都知道,他们的背景显现了同行商铺的买卖数据,这被称为买
一款最近比较火的网站统计分析系统,易分析具有什么样的功能呢?
一、产品简介北京普艾斯科技有限公司成立于2009年,服务客户1000+,包括电商、金融、保险、政务服务等行业。私有化部署,全渠道
向佐快乐大本营2024年精彩回顾:四年时光共欢笑
张大大谢娜力捧下的综艺新星张大大一位在娱乐圈中颇具人气的主持人他的成名之路离不开谢娜的提携回顾张大大的成名之路可以说谢娜
PingTools app
《PingTools app》是一款非常好用的实用工具软件,软件内拥有丰富的功能,包含了包括浏览器扫描等。使用非常简单,直接下载安装
抖音能看到谁搜索过自己吗?
尊敬的用户,您好。针对抖音平台是否能够查看谁搜索过自己的问题,我们需要做一些详细说明。首先,根据我们了解到的情况,在抖音
什么是人工智能“语料库”?为什么每个人都在谈论它?
编者按:比尔盖茨(Bill Gates)、Reddit 首席执行官和其他科技领袖越来越多地谈论“语料库”,现在是时候了解它是“何方神圣”
LED行业词语中英对应
1、led 灯具构成英文led 球泡灯:led bulbLed 贴片灯珠:SMD LEDLed驱动电源:led driver隔离电源:isolated driver非隔离电源:
本企业新闻

点击拨打: