Lattice FPGA解码MIPI视频,IMX219摄像头4Line 1080P采集USB3.0输出,提供工程源码硬件原理图PCB和技术支持

news2024/10/7 18:20:08

目录

  • 1、前言
  • 2、Lattice FPGA解码MIPI的性能及其优越性
  • 3、我这里已有的 MIPI 编解码方案
  • 4、详细设计方案
    • IMX219摄像头及其转接板
    • D-PHY
    • 数据对齐
    • MIPI CSI2
    • 视频数据格式转换
    • 视频输出矫正
  • 5、Lattice Diamond工程详解
  • 6、上板调试验证
  • 7、福利:工程代码的获取

1、前言

FPGA图像采集领域目前协议最复杂、技术难度最高的应该就是MIPI协议了,MIPI解码难度之高,令无数英雄竞折腰,以至于Xilinx官方不得不推出专用的IP核供开发者使用,不然太高端的操作直接吓退一大批FPGA开发者,就没人玩儿了。

本设计基于Lattice的LCMXO3LF-6900C-5BG256C开发板,采集IMX219摄像头的1080P 4Line MIPI视频,IMX219摄像头是专门的摄像头转接板,提供该转接板的原理图和PCB源文件,可以用Altium Designer系列软件打开,甚至可以直接打板批量生产,Lattice FPGA自带MIPI解码源语,直接调用即可完成MIPI解码,这也是Lattice FPGA在做MIPI视频编解码方面的独特优势,MIPI视频进入FPGA后,经过D-PHY解串,Byte对齐,Line对齐,MIPI CSI数据包解码,RAW10转Bayer,Bayer转RGB,RGB转YUV,视频输出矫正,最后的视频数据送入Cypress FX3 USB3.0接口输出;用Cypress官方的USB3.0摄像头上位机接收并显示视频;Lattice FPGA开发板提供该转接板的原理图和PCB源文件,可以用Altium Designer系列软件打开,甚至可以直接打板批量生产;

本文详细描述了设计方案,工程代码编译通过后上板调试验证,可直接项目移植,适用于在校学生做毕业设计、研究生项目开发,也适用于在职工程师做项目开发,可应用于医疗、军工等行业的数字成像和图像传输领域;
提供完整的、跑通的工程源码和技术支持;
工程源码和技术支持的获取方式放在了文章末尾,请耐心看到最后;
关于MIPI协议,请自行搜索,csdn就有很多大佬讲得很详细,我就不多写这块了;

2、Lattice FPGA解码MIPI的性能及其优越性

一个字:牛逼,表现如下:
1:Lattice FPGA解码MIPI,该FPGA自带MIPI解码源语,直接调用即可完成MIPI解码,这也是Lattice FPGA在做MIPI视频编解码方面的独特优势,且该FPGA较为小众,使用者和开发者都很少,提供工程源码的更少;
2:移植性还可以,可在Lattice 系列FPGA之间移植;
3:实用性达到天花板,可以做批量的USB摄像头,且我这里不仅提供源码还提供原理图和PCB;
4:支持高达4K分辨率的MIPI视频解码;

3、我这里已有的 MIPI 编解码方案

我这里目前已有丰富的基于FPGA的MIPI编解码方案,主要是MIPI解码的,既有纯vhdl实现的MIPI解码,也有调用Xilinx官方IP实现的MIPI解码,既有2line的MIPI解码,也有4line的MIPI解码,既有4K分辨率的MIPI解码,也有小到720P分辨率的MIPI解码,既有基于Xilinx平台FPGA的MIPI解码也有基于Altera平台FPGA的MIPI解码,还有基于Lattice平台FPGA的MIPI解码,后续还将继续推出更过国产FPGA的MIPI解码方案,毕竟目前国产化方案才是未来主流,后续也将推出更多MIPI编码的DSI方案,努力将FPGA的MIPI编解码方案做成白菜价。。。
基于此,我专门建了一个MIPI编解码的专栏,并将MIPI编解码的博客都放到了专栏里整理,对FPGA编解码MIPI有项目需求或学习兴趣的兄弟可以去我的专栏看看,专栏地址如下:
点击直接前往专栏

4、详细设计方案

工程设计架构如下:
在这里插入图片描述

IMX219摄像头及其转接板

采集IMX219摄像头的1080P 4Line MIPI视频,IMX219摄像头是专门的摄像头转接板,提供该转接板的原理图和PCB源文件,可以用Altium Designer系列软件打开,甚至可以直接打板批量生产;IMX219摄像头转接板插在Lattice FPGA开发板之上;如下:
在这里插入图片描述
下面是IMX219的实物图和PCB截图;
在这里插入图片描述
下面是用高速示波器抓取的IMX219输出的MIPI 1920x1080 @30FPS Start of a frame波形,可以看到,这里的IMX219硬件设计师没有问题的,可以借鉴;
在这里插入图片描述

D-PHY

Lattice FPGA自带MIPI解码源语,直接调用即可完成MIPI解码,这也是Lattice FPGA在做MIPI视频编解码方面的独特优势,这个模块几乎是直接调用MIPI解码源语,输入是差分的MIPI视频数据,输出为并行视频数据,由于是源语,所以不需要太多解释,你只需要知道怎么用就行,不需要知道为什么,此模块的顶层接口如下:

mipi_rx_ddr (alignwd, buf_clk_lp0i, buf_clk_lp0o, buf_clk_lp0t, 
    buf_clk_lp1i, buf_clk_lp1o, buf_clk_lp1t, clk, clk_lp0, clk_lp1, 
    clk_s, init, reset, rx_ready, sclk, oclk, buf_data_lp0i, buf_data_lp0o, 
    buf_data_lp0t, buf_data_lp1i, buf_data_lp1o, buf_data_lp1t, data_lp0, 
    data_lp1, datain, q)/* synthesis NGD_DRC_MASK=1 */;
    input wire alignwd;
    input wire buf_clk_lp0o;
    input wire buf_clk_lp0t;
    input wire buf_clk_lp1o;
    input wire buf_clk_lp1t;
    input wire clk;
    input wire clk_s;
    input wire init;
    input wire reset;
    input wire [3:0] buf_data_lp0o;
    input wire [3:0] buf_data_lp0t;
    input wire [3:0] buf_data_lp1o;
    input wire [3:0] buf_data_lp1t;
    input wire [3:0] datain;
    output wire buf_clk_lp0i;
    output wire buf_clk_lp1i;
    output wire rx_ready;
    output wire sclk;
	output wire oclk;
    output wire [3:0] buf_data_lp0i;
    output wire [3:0] buf_data_lp1i;
    output wire [31:0] q;
    inout wire clk_lp0;
    inout wire clk_lp1;
    inout wire [3:0] data_lp0;
    inout wire [3:0] data_lp1;

数据对齐

数据对齐包括Byte对齐和Line对齐;
Byte对齐模块接收到来自D-PHY模块的原始未对齐位输出对齐的字节,MIPI通道上的字节没有任何定义的字节边界,因此此模块在线路上查找始终恒定的第一个字节0xB8,一旦找到0xB8就确定了字节边界偏移,将输出有效设置为determined,并在数据通道处于MIPI LP状态时开始输出正确的字节保持重置;
Line对齐模块从mipi接收多Line的Byte对齐数据,mipi字节时钟在多Line mipi总线中输出Line对齐的数据,不同Line上的数据可能以不同的偏移量出现,因此该模块将等待,直到所有Line的有效输出开始输出Line对齐数据,因此所有Line的字节以相同的时间刻度输出;这样MIPI视频才完成了真正的数据对齐;

MIPI CSI2

该模块的作用很简单,就是解析丢掉MIPI协议中的控制字符,提取出有效的视频数据,部分源码截图如下:
在这里插入图片描述

视频数据格式转换

视频数据格式转换的顺序是:RAW10转Bayer,Bayer转RGB888,RGB888转YUV422;如果要做显示器输出的朋友,只需要做到Bayer转RGB888这一步即可输出了,这里做到了RGB888转YUV422的目的是送Cypress FX3 USB3.0接口输出;每一个模块的顶部都有详细的注释,一看就懂他的作用,以RGB888转YUV422模块为例截图如下:
在这里插入图片描述

视频输出矫正

该模块的作用是做视频数据的位宽转换,将64bit 4个像素时钟的yuv422数据转换为32bit 2个像素时钟的yuv422数据,这样做的目的也是送Cypress FX3 USB3.0接口输出;

5、Lattice Diamond工程详解

Lattice Diamond是Lattice FPGA的开发工具,使用起来很简单,但国内用的很少;
开发板FPGA型号:Lattice的LCMXO3LF-6900C-5BG256C;
开发工具:Lattice Diamond3.12;
输入:IMX219,4Line 1080P分辨率;
输出:Cypress FX3 USB3.0接口输出;

工程源码架构如下:
在这里插入图片描述
工程已经编译完成,如下:
在这里插入图片描述
综合原理图部分截图如下:
在这里插入图片描述

6、上板调试验证

硬件需求:
Lattice FPGA开发板一块;
IMX219摄像头转接板一块;
Cypress FX3 USB3.0转接板一块;
连接,IMX219摄像头转接板作为输入插在Lattice FPGA开发板上;Cypress FX3 USB3.0转接板作为输出插在Lattice FPGA开发板上;如下图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用Cypress官方的USB3.0摄像头上位机接收并显示视频;如下:
在这里插入图片描述

7、福利:工程代码的获取

福利:工程代码的获取
代码太大,无法邮箱发送,以某度网盘链接方式发送,
资料获取方式1:私,或者文章末尾的V名片。
资料获取方式2:文章末尾的公众号,回复 002006
网盘资料如下:
在这里插入图片描述
资料清单如下:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

完美的分布式监控系统——Prometheus(普罗米修斯)与优雅的开源可视化平台——Grafana(格鲁夫娜)

一、基本概念 1、之间的关系 prometheus与grafana之间是相辅相成的关系。作为完美的分布式监控系统的Prometheus,就想布加迪威龙一样示例和动力强劲。在猛的车也少不了仪表盘来观察。于是优雅的可视化平台Grafana出现了。 简而言之Grafana作为可视化的平台&#xff…

24届近5年同济大学自动化考研院校分析

今天给大家带来的是同济大学控制考研分析 满满干货~还不快快点赞收藏 一、同济大学 学校简介 同济大学历史悠久、声誉卓著,是中国最早的国立大学之一,是教育部直属并与上海市共建的全国重点大学。经过115年的发展,同济大学已经…

无涯教程-Perl - References(引用)

Perl引用是一个标量数据类型,该数据类型保存另一个值的位置,该值可以是标量,数组或哈希。 创建引用 变量,子程序或值创建引用很容易,方法是在其前面加上反斜杠,如下所示: $scalarref \$foo; $arrayref …

风控安全产品系统设计的一些思考

背景 本篇文章会从系统架构设计的角度,分享在对业务安全风控相关基础安全产品进行系统设计时遇到的问题难点及其解决方案。 内容包括三部分:(1)风控业务架构;(2)基础安全产品的职责&#xff1…

python_day19_正则表达式

正则表达式re模块 导包 import res "python java c c python2 python python3"match 从头匹配 res re.match("python", s) res_2 re.match("python2", s) print("res:", res) print(res.span()) print(res.group()) print("…

致远OA协同管理软件无需登录getshell

一个男子汉,老守在咱村那个土圪崂里,又有什么意思?人就得闯世事!安安稳稳活一辈子,还不如痛痛快快甩打几下就死了!即使受点磨难,只要能多经一些世事,死了也不后悔! 漏洞…

数据结构日记之《队列的定义》

队列的定义 一、队列的定义和特点二、队列的抽象数据类型定义三、例子 一、队列的定义和特点 队列 (queue) 是一种 先进先出(First In First Out, FIFO) 的线性表。它只允许在表的一端进行插入,而在另一端删除元素。这和日常生活中的排队是一致的,最早进…

SpringBoot3进阶用法

标签:切面.调度.邮件.监控; 一、简介 在上篇《SpringBoot3基础》中已经完成入门案例的开发和测试,在这篇内容中再来看看进阶功能的用法; 主要涉及如下几个功能点: 调度任务:在应用中提供一定的轻量级的调…

AcWing 93:递归实现组合型枚举 ← DFS

【题目来源】https://www.acwing.com/problem/content/95/【题目描述】 从 1∼n 这 n 个整数中随机选出 m 个,输出所有可能的选择方案。【输入格式】 两个整数 n,m,在同一行用空格隔开。【输出格式】 按照从小到大的顺序输出所有方案&#xf…

uniapp根据高度表格合并

没有发现比较友好的能够合并表格单元格插件就自己简单写了一个,暂时格式比较固定 一、效果如下 二、UI视图+逻辑代码 <template><view><uni-card :is-shadow="false" is-full

怎么把CAD高版本转低版本?CAD版本转换方法分享

CAD文件版本转换通常是为了确保更高版本的CAD软件能够打开旧版本的文件。此外&#xff0c;不同版本的CAD软件可能具有不同的功能&#xff0c;因此转换文件版本可以确保可以在任何版本的软件中使用文件。此外&#xff0c;如果我们需要与其他人共享文件&#xff0c;则需要将文件转…

基于EEGLAB的ICA分析

目录 1.ICA原理 2.ICA的实现 3.ICA成分识别 4.ICLabel识别并去除伪迹 5.ICA成分识别练习 1.ICA原理 得到的每一个地形图&#xff0c;实际上就是它的权重谱。 投射&#xff1a;根据原成分恢复原始信号。 选择性投射&#xff1a;去伪。 2.ICA的实现 extended&#xff0c;1&…

bigemap如何添加在线地图源?

第一步 打开浏览器&#xff0c;找到你要访问的地图的URL地址&#xff0c;并且确认可以正常在浏览器中访问&#xff1b;浏览器中不能访问&#xff0c;同样也不能在软件中访问。 以下为常用地图源地址&#xff1a; 天地图&#xff1a; http://map.tianditu.gov.cn 包含&a…

小程序的api使用 以及一些weui组件实列获取头像 扫码等

今日目标 响应式单位rpx小程序的生命周期 【重点】20%小程序框架 weui 【重点】 50%内置API 【重点】30%综合练习 1. 响应式rpx 1.1 rpx单位 rpx是微信小程序提出的一个尺寸单位&#xff0c;将整个手机屏幕宽度分为750份&#xff0c;1rpx 就是 1/750&#xff0c;避免不同手…

知网期刊《中阿科技论坛》简介及投稿须知

知网期刊《中阿科技论坛》简介及投稿须知 主管单位&#xff1a;宁夏回族自治区科学技术厅 主办单位&#xff1a;宁夏回族自治区对外科技交流中心(中国一阿拉伯国家技术转移中心) 刊  期&#xff1a;月刊 国际刊号&#xff1a;ISSN 2096-7268 国内刊号&#xff1a;CN 64-…

一场大规模山体滑坡摧毁了世界最高峰之一

安纳普尔纳四号峰在喜马拉雅山山体滑坡中倒塌&#xff0c;科学家们终于弄清楚了它发生的时间和方式。 现今尼泊尔安纳普尔纳四号峰的景色&#xff0c;展示了中世纪时期倒塌的面貌。图片来源&#xff1a;Jrme Lav 山为什么不会永远生长&#xff1f;碰撞的构造板块不断地将山脉推…

下载网络文件到本地

文章目录 目录 前言 操作步骤 1.引入 2.读取出文件内容 3.筛选出URL 4.下载表情包 总结 前言 这里记录一次用代码下载网络文件的过程&#xff0c;以获取抖音表情包为例。 一、操作步骤 1.引入 首先抖音有网页版&#xff0c;用浏览器就可以观看&#xff0c;用户评论发布表情在…

《Vue.js实战》——基础篇(1)

目录 资源&#xff1a;&#x1f31f; 一、初识Vue.js&#x1f44b; Vue.js是什么&#xff1f;&#x1f647; MVVM模式 ✍ Vue.js有什么不同 ☔ 如何使用Vue.js? ☁ 传统的前端开发模式 ☀ Vue.js的开发模式 &#x1f5fb; 二、数据绑定和第一个Vue应用 &#x1f5f…

嵌入式开发学习(STC51-16-ADC模数转换)

内容 通过ADC转换电路采集电位器AD值&#xff0c;将采集的AD值转换成电压值&#xff0c;通过数码管显示出来&#xff1b; 采集光敏电阻的AD值&#xff1b; 采集热敏电阻的AD值&#xff1b; 采集外部通道AIN3的电压值&#xff1b; 为了方便显示&#xff0c;我们可以通过独立…

NeRF室内重建对比:Nerfstudio vs. Luma AI vs. Instant-NGP

十年前&#xff0c;Matterport 改变了房地产业&#xff0c;让房地产买家可以进行数字旅游。 买家可以在房产内从一个点移动到另一个点并环顾四周。 与 2D 照片库相比&#xff0c;这是一个巨大的改进。 然而&#xff0c;买家仍然被房产内的一系列问题所困扰。 推荐&#xff1a;用…