MIPI2UVC: Dual Camera Stream Support

MIPI2UVC: Dual Camera Stream Support

Overview

Many times, we need to connect multiple cameras to a host device using s single UVC bridge. Think about industrial robots, surgical devices, drones, security applications etc. However, there is no solution available in the market that can take multiple MIPI sensor inputs and interface directly to UVC without adding an intermediate FPGA. This leads to added cost, area and power.

At tinyVision.ai, we've built a multi-camera solution that overcomes this limitation. Our solution is the first to support a dual (and more!) camera stream using a single FPGA leading to reduced cost, area and overall power.

The overall architecture is shown below:

Features

  • Bridges MIPI signals to UVC streams, supports 1, 2, 4 Lane MIPI CSI-2 up to 1.2Gbps/lane
  • Supports single or dual camera configurations at up to 3.5Gbps total throughput.
  • USB Data plane is completely handled by the FPGA RTL resulting in minimal latency, jitter and deterministic behavior.
  • Complete reference design is provided to show how to interface one or two Raspberry Pi camera modules (IMX219) to the FPGA, 1920x1080/30 fps each along with simple ISP implementations for Debayer and Auto Exposure/Gain/White Balance. Optional Frame sync between sensors can be implemented on the FPGA.
  • Zephyr RTOS support is provided to allow for easy integration into existing systems and additional application/sensor development/integration.
  • Optional 800MBps memory controller to enable frame-buffer based applications such as image processing.
  • Supported by the Streamlogic Design Suite for no-code GUI based image processing algorithm implementations on the FPGA.

FPGA Utilization

The following table shows the FPGA utilization for the single-camera MIPI2UVC IP.

Resource Used Total Percentage
LUT4 3450 27648 12.5%
FFs 2310 27801 8.3%
BRAMs 11 64 17%
DSPs 0 64 0%
LRAM 2 5 40%


Dual-Camera Reference Design

The following table shows the FPGA utilization for the dual-camera MIPI2UVC IP.

Resource Used Total Percentage
LUT4 6104 27648 22%
FFs 3890 27801 14%
BRAMs 13 64 20%
DSPs 0 64 0%
LRAM 2 5 40%


Supported hardware

The MIPI2UVC IP is designed as a data mover with a 64 bit FIFO interface for the high bandwidth data streams. The data-mover engine itself can be utilized for any applications requiring movement of data between peripherals and a main processor using either IN or OUT Endpoints. We currently use this in our reference design to move data between the MIPI2UVC IP and the host using IN endpoints. The IP can be easily customized to support OUT endpoints as well for display or other such applications (Instrumentation, Radios, etc.).

The IP is accompanied by a complete reference design supporting dual 1920x1080/30 fps streams. Supported hardware includes the tinyVision.ai tinyCLUNX33 platform and the Lattice CrosslinkU-NX33 reference design.

Related products:


tinyCLUNX33 System-on-Module

Applications

The MIPI2UVC IP is usable in a variety of applications requiring camera aggregation such as Robotics, Security, Medical Imaging, and Industrial Automation and test equipment.

References

Back to blog

Leave a comment