作者:Hello,Panda

好久没有码文章了,今天讨论讨论MIPI多通道合成输出(MUX)和输入分发输出(DeMUX)的问题。这也是类似于Crosslink-NX此类器件的一个典型应用方向,通过增加传输速率的方式提升带宽,减少和主控的物理连线Lane数,这里熊猫君以Crosslink-NX基础视觉板和最常见的OV5640图像传感器为例,讲讲MIPI 4-MUX-1的实现思路,DeMUX将之反着实现就成。本质原理是利用MIPI的VC通道,因为VC通道占2bit,因此最多可支持4合1或者1分4使用。

1、技术参数

基于Crosslink-NX基础视觉板(芯片为LIFCL-40-7MG121I),采用OV5640图像传感器模组作为数据源,FPGA驱动并接收OV5640传感器数据并将其进行4-MUX-1合成后通过2.5Gbps硬核MIPI发出,需达到的主要技术参数如下:

(1) 合成模式:4-MUX-1,即支持4颗sensor数据源合成一路输出,亦支持3-MUX-1和2-MUX-1模式;

(2) 摄像头模组:OV5640,配置成为720P30,MIPI单lane YUV输出,亦可配置支持MIPI双Lane其它色空间格式输出;

(3)输出参数:MIPI 4-lane ,1.5Gbps/lane,4个VC通道,连续时钟模式;

(4) 本地显示:显示单摄像头图像,720P30,4个源交替显示。

从带宽考量,每路OV5640配置为720P30,YUV422格式输出的话,那么每颗Sensor所需带宽为336Mbps,四路就是1344Mbps。因此,输出的MUX MIPI链路使用1.5Gbps 4-lane的配置已经带宽足够富余了。

2、硬件电路

本章节简要描述硬件电路,电路原理图见下图1。

图1 硬件原理图

2.1 接口和信号描述

如图1所示,硬件电路通过与Crosslink-NX的J5、J6连接,合成好的MIPI数据通过30P FPC接口输出。

(1) FPGA通过IIC对CMOS进行配置,通过IIC通路切换芯片PI4MSD5V9545A实现1:4路的通路切换;

(2) 给CMOS的板载参考时钟是24MHz,对应MIPI输出的Lane速率为336Mbps;

(3) 连接到30Pin FPC接插件的J1~J3的sensor采用softMIPI采集,J4上的Sensor采用硬核MIPI接收;

(4)FPGA引出一路IIC信号,通过IIC 1:4 Switch进行切换到4路CMOS,芯片采用DIODES的PI4MSD5V9545A芯片,其访问IIC地址为0xE0,配置其内部的一个8bit寄存器实现通道的切换。

图2 实物照片

2.2 OV5640图像传感器

OV5640是OmniVision推出的一款彩色图像传感器,全画幅有效像素为2592*1944,内置ISP功能,图像输出接口支持DVP和MIPI(2-lane)两种,本例中选择配置为MIPI接口。OV5640支持RAW RGB、RGB565/555/444、CCIR565、YUV422/420和压缩图像等,支持的分辨率和帧率包括15fps@2592*1944、1080P30、960P45、720P60、480P90、240P120,本例选择720P30、YCbCr4:2:2输出。

Lattice Crosslink-NX LIFCL-40实现OV5640 MIPI输出,四合一MIPI MUX验证

3、软件设计

FPGA芯片采用Lattice Crosslink-NX LIFCL-40芯片,软件开发使用Radiant。

图3 软件框架

实现该需求的系统软件框图见上图1所示。通过一个RISC-V控制IIC外设配置四颗OV5640 Sensor使之输出720P30的YCbCr4:2:2图像,FPGA接收MIPI数据后经过缓存后通过一个MUX状态机将之合成到不同的VC通道上并通过HardMIPI接口发出。另外,可从四路sensor中选择一路图像经HyperRAM缓存并通过HDMI接口显示到电视上(备注:因输出为720P30图像,故可能大多数的显示器都不支持,但电视是可以直接显示的)。

3.1   IP配置

SoftMIPI和HardMIPI均使用Radiant里面的免费物理层IP MIPI DPHY来实现,CSI-2采用自己编写的源码,这样就避免了因部分用户未购买Radiant软件付费授权下无法使用的问题。下图4是HardMIPI的IP配置参数,图5是SoftMIPI的IP配置参数。

图4  HardMIPI IP配置

图5 SoftMIPI IP配置

因SoftMIPI是用普通的真差分IO来接收的,因此不具有专用MIPI Pad可以自主识别HS和LP状态的功能,所以需要引入MIPI LP信号(Lane-0的N端)来控制HS、LP的状态切换,判断依据是当LP信号翻转(说明有MIPI输入)时,当其为逻辑电平“0”时为HS状态,当其为逻辑电平‘1’时为LP状态。

3.2  CIS-2层

MIPI接收边的CSI层将数据恢复为Byte并通过一个Video Bridge将视频恢复为Vsync、Hsync、de和YCbCr4:2:2数据,收到的数据写入到Pingpong Buffer中,每写满一行向MUX状态发送一个输出请求信号,状态机对该信号接收并仲裁,并通过发送端的CSI-2层发出MUX后的数据到物理层。

同时,DMA会将给定通路Video Bridge恢复出来的视频数据通过DMA写入HyperRAM缓存供HDMI显示使用,HDMI的显示DMA读取数据并将YCbCr4:2:2的格式转换为RGB888格式送显。

好了,熊猫君今天的简单分享就到此为止了。这种MIPI的集合与分发在无人机、汽车成像、医疗成像、多屏显示等领域中得到了广泛应用,毕竟连接线只需要原来的1/4,也可以节省主控端口IO,好处不少。

最后,随便说一句,熊猫君的企鹅讨论组被毙了,如有需要,新组织可小窗熊猫君获取。

Crosslink-NX器件应用案例(2): MIPI的多源合成(MUX)与分发(DeMUX)相关推荐

  1. Lattice CrossLink NX系列FPGA使用分享

                                                                                                        ...

  2. jQuery综合案例——打地鼠(教学版本·附源码)

    jQuery综合案例--打地鼠 非常经典的案例,完整的训练[jQuery]并且针对[setInterval]与[setTimeout]有一个实质性的训练,学习价值超高,建议教师与学生下载,并用于教学与 ...

  3. 【工厂扫码打印扫码装箱错误追溯系统】完整案例详解(PythonPyQt 源码Mysql数据库)

    一. 市场需求 目前很多工厂产品装箱过程中仍存在一些问题: 商品打包发货出错,少发,错发,漏发 --- 追溯问题到底出在哪个环节? 手工制作装箱单,发货单,打印商品条码标签,外箱标签 --- 花费太多 ...

  4. YYDatav的数据可视化大屏《精彩案例汇总》(PythonEcharts源码)

    一. 资源下载 [1-10]套Python+Echarts数据可视化大屏案例(共10套)-企业管理文档类资源-CSDN下载第1篇https://yydatav.blog.csdn.net/articl ...

  5. 使用高德地图微信小程序SDK开发案例-输入提示(附源码)

    闲来无事写一篇使用高德地图的微信小程序SDK开发应用的实例. 接下来先看需求: 我们要做的是,根据用户输入的关键词,给出相应的提示信息,列表中显示地方的名称,地方的详细地址以及对应的经纬度坐标. 当然 ...

  6. Android 编程案例-本地音乐播放器源码及使用注意事项

    说一下代码在用的时候注意事项以及在运行的时候可能遇到的问题: 首先代码可以在创建相应文件后直接复制,这个案例用到了RecyclerView,所以需要先添加依赖.添加下面两个: implementati ...

  7. Python+审计实务与案例分析库 毕业设计-附源码211526

    Python审计实务与案例分析库 摘 要 21世纪的今天,随着社会的不断发展与进步,人们对于信息科学化的认识,已由低层次向高层次发展,由原来的感性认识向理性认识提高,管理工作的重要性已逐渐被人们所认识 ...

  8. 设计模式 结构型模式 -- 装饰者模式(概述 快餐店案例 模式优点 使用场景 源码解析 BufferedWriter 和代理模式的区别)

    1. 装饰者模式 1.1 概述 我们先来看一个快餐店的例子: 快餐店有炒面.炒饭这些快餐,可以额外附加鸡蛋.火腿.培根这些配菜,当然加配菜需要额外加钱,每个配菜的价钱通常不太一样,那么计算总价就会显得 ...

  9. 【RuoYi框架】RuoYi框架学习超简单案例 - 新闻管理系统(附源码)

    文章目录 前言 一.需求 二.数据库设计 1.新闻菜单表(树表) 1.新闻内容表 三.运行RuoYi项目 1.创建数据库,运行sql文件 2.启动运行RuoYi项目 四.生成代码 1.添加字典(菜单显 ...

最新文章

  1. IDEA 解决 Java8 的数据流问题,用过的都说好!!!
  2. 项目材料用到的词组积累
  3. c++链表形参丢失_LeetCode 例题精讲 | 01 反转链表:如何轻松重构链表
  4. “std::invoke”: 未找到匹配的重载函数
  5. UA MATH523A 实分析3 积分理论例题 Fubini定理计算简单二重积分的一个例题
  6. synergy在Windows和Linux下使用全攻略(多台PC共享一套键盘鼠标)
  7. 软件测试项目实战案例ppt,一个自动测试实战项目案例.ppt
  8. Win10加装SSD固态硬盘后卡顿现象的解决方法
  9. eplan如何导入access_EPLAN导入edz文件太慢如何解决
  10. 马云把码云封了,中国最大的男性交友网站无法访问!!!
  11. 桌上游戏(桌面游戏)入门指南
  12. 6572 Phone call分析
  13. 使用批处理解决U盘内出现的同名文件夹EXE病毒问题
  14. 转:关于ASP操作Access数据库时出现死锁.ldb的解决方法
  15. 量子力学科普书籍《见微知著》为什么值得读,看看目录就懂了
  16. echarts折线图设置横向基准线/水平线
  17. 用浏览器收藏夹的书签保存javascript的简单脚本
  18. 【软考|软件设计师】专业英语(软考真题)
  19. ServU 11 以上版本的数据库用户关联 密码加密原理
  20. python 如何绘制分叉图

热门文章

  1. vue3使用flv.js播放推流视频,完整版组件
  2. 双臂二指魔方机器人的制作(三)--还原控制
  3. java毕业设计软件工程专业教辅平台课程子系统mybatis+源码+调试部署+系统+数据库+lw
  4. JAVA5 8 9章复习
  5. poj 1637 Sightseeing tour 混合欧拉 最大流
  6. 板材品牌排名之饰面板-也叫贴面板
  7. Python爬取某站上海租房图片!
  8. 历数国内外知名制作人~~制作人发展趋势
  9. 相约AIIA!百度飞桨深度学习公开课预约中
  10. 软件测试入门自学笔记(1)测试用例设计