MIPI CSI-2 虚拟通道

一、背景

在介绍虚拟通道之前,我们先描述一个场景,主控芯片只有 4 个 D-PHY VIN 接口,但是产品需要4 个以上的摄像头

如上图所示,如果我们把摄像头和主控芯片直接通过 D-PHY 接口连接,最多只能接 4 个摄像头,不能满足产品需求。我们应该如何做解决这个问题?常见的方法是桥接

二、现有方案

所谓的桥接,就是让Sensor不直接与主控相连,而是与一个桥接器相连,桥接器再连接到主控芯片,常见的桥接方法有合路器和虚拟通道(可以使用FPGA)。

2.1 合路器

如下图所示,在 Sensor 和主控之间增加一个合路器,可以很好的解决此问题。合路器接收多个 Sensor 的数据,进行拼接,然后将拼接后的图像数据传给主控。

合路器常用的拼接方式有两种,一种是竖向拼接,一种是横向拼接,示意图如下:

特点:

后端接收到的是合路器拼接后的图像,而不是各个Sensor输出的图像,一般需要先进行拆解,再进行处理,流程相对麻烦

2.2 虚拟通道

虚拟通道方案也属于桥接,与合路器硬件连接相同,都是接收多个Sensor的数据,经过处理,给到主控。不同的是这里的处理不是简单图像级别的拼接,而是数据包级别的拼接

如下图所示,这种方案可以让主控直接接收到对应Sensor的图像。后端处理非常直观明了。

三、虚拟通道原理

虚拟通道方案很好地解决了D-PHY不够导致的Sensor数量不够的问题,那它是如何实现的呢。下面进行详细介绍。

在正式介绍之前,先一起回顾下MIPI CSI-2的整体架构,主要分为应用层、协议层和物理层。更细的请查看我之气那的文章,这里重点关注Low Level Protocol。这一层会把数据组织成数据包的形式,我们今天的重点就在这里。

3.1 Virtual Channel ID

MIPI数据包包含长包和短包,两者都有一个Data Identifier (DI) 字段,DI有包含两部分,一个是VC,一个是DT,如下图所示,可以看到VC字段一共占两位,所以最多支持4个虚拟通道,分别是 00 01 10 11。

3.2 使用相同虚拟通道

正常情况下,Sensor出来MIPI数据,VC字段可以是00 01 10 11的任意一个,由于一个Sensor对应一个D-PHY接口,因此,数据包传输的时候相对比较简单,如下图所示。

3.3 使用不同虚拟通道

如果想要在一个D-PHY上传输多个Sensor的数据,那不同的Sensor就应该是以哦那个不同的VC字段,然后在LLP层对不同Sensor的数据包进行拼接,如下图所示,然后经过物理层进行传输。

在接收端,会根据VC字段,把不同的数据包分配给不同的通道,从而完成不同Sensor的图像识别和接收。

四、总结

整体来说,通过虚拟通道可以很好地解决D-PHY接口不够带来的Sensor数量限制问题。但在使用此方案之前,需要注意以下几点:

  1. 主控的代码是否支持MIPI虚拟通道的解析。

  2. 需要有一个桥接器(FPGA)来完成多Sensor的整合。

  3. 不同Sensor出的MIPI数据,对应的VC字段要不一样。

一个专注于“嵌入式知识分享”、“DIY嵌入式产品”的技术开发人员,关注我,一起共创嵌入式联盟。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/616051.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MVCC(解决MySql中的并发事务的隔离性)

MVCC 如何保证事务的隔离性? 1.排他锁:如一个事务获取了一个数据行的排他锁,其他事务就不能再获取改行的其他锁。 2.MVCC:多版本并发控制。 MVCC: 1.隐藏字段 1.DB_TRX_ID:最近修改事务的id。默认值从0开…

【C++成长记】C++入门 | 类和对象(上) |面向过程和面向对象初步认识、类的引入、类的定义、类的访问限定符及封装

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:C❤️感谢大家点赞👍收藏⭐评论✍️ 一、面向过程和面向对象初步认识 C语言是面向过程的,关注的是过程,分析出求解问题的步…

Linux 内核学习(2) --- regulator 框架

目录 Regulator 介绍Regulator provider 注册struct regulator_descstruct regualtor_configDTS 配置和解析On BoardConfig 配置regulator_ops总结 Regulator Consumer 使用struct regulator 获取regulator 操作使用Multi Regulator 参考博客 Regulator 介绍 Regulator 指的是…

Unity给地图物体添加对撞机

在项目/Assets下创建Prefabs文件夹 选择素材拖入层级下,注意此时地图素材有可能看不到,此时选择Tilemap在检查器中修改图层顺序调至最低。 添加对撞机 选择素材,在检查器中点击添加组件Box Collider 2D,将素材拖入Prefabs文件下…

Element ui 动态展示表格列,动态格式化表格列的值

需求 后台配置前端展示的表格列,遇到比如 文件大小这样的值,如果后台存的是纯数字,需要进行格式化展示,并且能控制显示的小数位数,再比如,部分列值需要加单位等信息,此外还有状态类&#xff0…

常见点云文件解析

常见点云文件解析 1. 为什么会有这么多的点云文件2. 常见的点云文件格式解析2.1 pcd格式2.2 off格式2.3 xyz格式2.4 ply格式2.5 obj格式2.6 stl格式 1. 为什么会有这么多的点云文件 我们在做2D视觉时,处理的就是类似一系列类似的二维数组,数组以图片的形…

Vue3整合wangEditor(富文本编辑器框架) 以及提供存储渲染方案

目录 概述 Vue3整合wagnEditor 图片的上传 图片的删除 文章存储 文章渲染 概述 实现功能:管理端使用富文本编辑器编写文章内容,将编辑好的文章存入数据库或服务器中,前端应用读取存储的文章内容作展示。 本文章能提供 ①Vue3整合wangEdi…

友思特应用 | 高精度呈现:PCB多类型缺陷检测系统

导读 PCB等电子产品的精密生产制造过程中,往往需要将缺陷问题100%高精度暴露。友思特 PCB 多类型缺陷检测系统,借由Neuro-T深度学习模型自动排查全部微小缺陷,为工业 PCB 生产制造提供了先进可靠的质量保障。 在现代制造业中,尤其…

工业项目中你连PLM系统都没见过?

什么是 PLM 软件? PLM 软件是用于管理全球供应链中产品或服务全生命周期环节的解决方案。它包括从物料、零部件、产品、文档、规定、工程变更单到质量工作流的数据管理。 PLM 的发展历史 从最初的产品设计管理到如今的数字化转型和智能化生产,PLM 在不断…

【uniapp】省市区下拉列表组件

1. 效果图 2. 组件完整代码 <template><view class="custom-area-picker"><view

【MATLAB】GA_ELM神经网络时序预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~ 1 基本定义 GA_ELM&#xff08;Genetic Algorithm and Extreme Learning Machine&#xff09;是一种结合了遗传算法和极限学习机的神经网络时序预测算法。它的核心思想是通过使用遗传算法来优化极限学习机的权重和偏差&…

scipy.signal.cwt 与 pywt.cwt 使用记录

scipy.signal.cwt 该代码中widths以及freq计算公式来源于scipy.signal.morlet2函数官方案例 from scipy.signal import morlet, morlet2 from scipy import signal import matplotlib.pyplot as pltsignal_length 2000 fs 1000# 生成信号数据 time np.arange(0, signal_leng…