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嵌入式产品”的技术开发人员,关注我,一起共创嵌入式联盟。

  • 11
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值