塞巴斯蒂安 发表于 2021-12-11 12:46:21

优秀的 Verilog/FPGA开源项目介绍(六)- MIPI

本帖最后由 塞巴斯蒂安 于 2021-12-11 12:45 编辑

MIPI的协议我就不详细介绍了《MIPI系列之“初识MIPI”》,这里和开源方案比较接近的即使FPGA实现MIPI物理层(DPHY)中电气属性相关的几种
方案:MIPI DPHY RX实现方案

方案一

使用自带DPHY的FPGA

带有DPHY的专用FPGA。目前国内一些FPGA厂商是有的,如高云的FPGA是有自带DPHY(小蜜蜂家族),xilinx的UltraScale系列 支持MIPI D-PHY接口,Altea/Intel、Lattice等最新系列FPGA也是具有这一接口的。

使用FPGA自带的DPHY好处就是可以降低电路的复杂度及提高系统稳定性。但是需要注意一点这种方案也是要看FPGA内嵌DPHY的版本及完成度,能不能 达到MIPI的速度还是要看具体芯片的数据手册。
高云DPHY的介绍
xilinx的UltraScale系列DPHY说明
Lattice CrossLink系系列DPHY说明

方案二

使用专门ASSP芯片转换到LVDS

这种方案就不需要介绍了,专用ASIC(MC系列这种方案可以支持到2Gbps/Lane速率以上,只要FPGA的IO速率够用),方案不及自带DPHY的方案,但是也足够用了,综合考虑方案的成本,这种方案也是目前很多公司选用的方案。
MC系列IC的DPHY解决方案

方案三

电阻网络方案

可以参考xilinx官方文档xapp894,要求800M Hz以下,走线30mm以内。说白了只能用用而已。
电阻网络方案示意图

为什么介绍这几种方案呢?因为开源的MIPI项目的前提是你需要有DPHY。

0、MIPI Alliance (MIPI联盟)

❝ https://www.mipi.org/ ❞

MIPI Alliance 是一个全球协作组织,为开发移动和受移动影响的设备的行业提供服务。该组织的重点是设计和推广硬件和软件接口,以简化设备内置组件的集成,从天线和调制解调器到外围设备和应用处理器。MIPI 联盟制定其所有规范以满足移动设备所需的严格操作条件:高带宽性能、低功耗和低电磁干扰 (EMI)。

PS:这两次为什么都把相关官网放到前面呢?因为每次大家都会在后台找我要XX接口的协议文档,所以后面我会先把相关官网放到前面,上面下载文档不仅免费,主要是权威和“新鲜”。

1、mipi_csi_receiver_FPGA

❝ https://github.com/circuitvalley/mipi_csi_receiver_FPGA ❞

这个是一个完整的项目了,实现了一个UVC摄像头,IMX219(索尼)摄像头(MIPI)进入FPGA通过FX3(USB PHY)出去,实现整个数据流,需要IP的自己可以提取,唯一的缺点是使用了Lattice平台去雁阵(不能算是缺点,只是国内用户较少),但是该项目未使用任何 针对FPGA 的IP,纯HDL,因此可以轻松移植到任何 FPGA上(资源够的情况)。
项目简介

此项目包含用于通用 FPGA CSI 接收器的硬件、Verilog 源码和 USB3.0 视频设备类 (UVC) 控制器 C语言 源码(固件),该项目未使用任何 针对FPGA 的IP,纯HDL,因此可以轻松移植到任何 FPGA上(资源够的情况)。

支持帧率从 15 到 1000 FPS,分辨率从 640x80 到8M 3280x2464。

1080p 60FPS 时的最大数据速率约为 2Gbps。

通过 UVC 控制帧速率和分辨率。手动曝光和手动亮度控制, 饱和度控制。还可以使用映射伽马控制启用测试图案。

目前测试完成的案例:
3280x2464 15FPS
1920x1080 60FPS
1920x1080 30FPS
1280x720 120FPS
1280x720 60FPS
1280x720
30FPSx 80x1080
30FPS
640PS 640PS
20 FPS 8080 30FPS 8040FPS 8080 40PS0TODO:需要在 FPGA 端进行改进以实现自动曝光、亮度和白平衡校正。
PS:链接中有视频演示

下面的项目与此类似就不展开介绍了:

❝ https://github.com/circuitvalley/USB3_MIPI_CSI2_RX_V2_Crosslink_NX ❞
❝ https://github.com/cudnn/USBtoMIPI ❞

2、mipi-demo

❝ https://github.com/hdl-util/mipi-demo ❞

可以触摸的实现方案。

简介

整个方案为 Raspberry Pi Camera v1.1 (OV5647)(mipi接口,可能是最便宜的MIPI摄像头) 通过 HDMI 的实时显示。

模块介绍:

[*]hdl-util/hdmi : 通过HDMI传输视频/音频
[*]hdl-util/mipi-ccs:使用MIPI CCS控制相机
[*]hdl-util/i2c : I2C主控
[*]hdl-util/mipi-csi-2:使用MIPI CSI 2 的摄像机视频接收
[*]hdl-util/sdram-controller : SDRAM控制器
[*]hdl-util/clock-domain-crossing : FPGA 上 时钟域交叉的实用程序
[*]hdl-util/gray-code : 任意宽度的格雷码

演示
3、MIPI_RX_ST

❝ https://github.com/vidor-libraries/MIPI_RX_ST ❞

该项目包含一个MIPI_RX_ST IP核,端口描述如下:
MIPI_RX_ST IP 从 MIPI CSI2 中提取 8 位原始数据并输出包含 4:4:4 RGB 视频的视频流。

视频数据专门从cMIPI_HT_RAW8(十进制42)数据包中提取,并通过二维插值将bayer转换为4:4:4:RGB;为此,我们将数据记录在行缓冲区中以存储前两行。行缓冲区有 32 位,其低 16 位包含前一行,而其高 16 位包含倒数第二行。总共有 3 行,最多可以使用 5 个像素进行插值,具体取决于数据类型。

4、i3c-slave-design

i3C,同样由MIPI联盟制定,主要用于替代传统的USRT、I2C和SPI,并向下兼容I2C。
I3C吸纳了I2C和SPI的关键特性,并将其统一起来,同时在I2C的基础上,保留了2线的串行接口结构,这样工程师就可以在单个设备中连接大量的传感器。详细的介绍后面会单独出一片文章。

❝ https://github.com/NXP/i3c-slave-design ❞

MIPI I3C 从机-在 Verilog 中实现的 NXP 免费许可 MIPI I3C Slave,用于 FPGA 和IC器件。

使用参数高度可配置,并包含:

[*]支持 I3C Basic v1.0,可在 MIPI 官方网站下载
[*]I3C SDR 协议
[*]所有必需的 CCC(内置命令)加上一些可选的。
[*]IBI(带内中断)包括可选的 IBI 数据字节。
[*]支持具有静态地址的 I2C。
[*]添加 SlaveReset
[*]取决于系统的两种不同的集成
[*]用于基于处理器的系统的完整 APB 内存映射寄存器。
[*]每个方向的可调 FIFO 深度
[*]状态机 ASIC 的自治模型。
[*]支持自动注册创建和系统侧控制
[*]文档包括程序员模型、微架构规范、基本 I3C 规范。

下面的项目与此类似就不展开介绍了:

❝ https://github.com/samy-maxvy/MAXVY_MIPI_I3C_Basic_Master_Controller_IP ❞

5、aq_mipi_csi2rx_ultrascaleplus

❝ https://github.com/aquaxis/aq_mipi_csi2rx_ultrascaleplus ❞

基于ultrascale系列FPGA的MIPIRX IP核。

下面的基本凑数的,没什么参考价值,有兴趣可以简单看看。

6、mipitest

❝ https://github.com/htti/mipitest ❞

很简单的程序,没什么介绍,是使用MAX10解析解析帧头和像素数据。

7、mipi_dsi_bridge_fpga

❝ https://github.com/circuitvalley/mipi_dsi_bridge_fpga ❞

用于实现 MIPI DSI 桥接器 PCB 硬件文件,用于从 PC 接收图像并通过 SPI 传输到 FPGA 目标PC 将图像传输到 USB 设备的应用程序.
8、MIPI_CSI2_TX

❝ https://github.com/VideoGPU/MIPI_CSI2_TX ❞

用于将 Xilinx MGT 千兆位收发器/LVDS 线路转换 MIPI CSI-2 TX 协议的 VHDL 代码。

9、具有MIPI接口的开发板

这里并没有“恰饭”,为什么介绍这些呢?主要是这些办卡带历程,虽然基本使用了IP,但是很适合快速入门。

黑金FPGA

AX7z020/AX7z010
百度大脑升级版
SEA-S7

这款开发板完全开源,源码,MIPI接口使用电阻网络,可以作为参考原理图。
❝ https://github.com/For-up/SEA-S7Guess ❞

米尔 百度大脑&ISP处理平台
官方板卡

1、 MAX10(10M50DAF484C6G FPGA Arrow)
2、KV260

《详见:开发者来稿 | Kria KV260 超长干货之开箱指南》

资料

可以参考下面的链接了解更多MIPI信息。
1、https://www.circuitvalley.com/20 ... erry-pi-camera.html
2、https://www.cnblogs.com/gcws/p/8995542.html
3、
百度网盘:
链接: https://pan.baidu.com/s/1tcHI1RuMFm9_9hJhDf0BMg 提取码: 68ne


发表于 2023-5-24 04:33:14

发表于 2023-8-25 08:27:46

发表于 2023-9-19 21:06:15

发表于 2023-10-1 17:36:54

发表于 2023-12-22 10:14:03

发表于 2024-2-10 13:32:19

Freedman's Office Furniture, Cubicles, Desks, Chairs
515 E Las Olas Blvd Suite 120,
Fort Lauderdale, FL 33301

(954) 466-1629

Office desks, Office chairs, Office tables

发表于 2024-2-22 22:26:28

wiring a 7 way
页: [1]
查看完整版本: 优秀的 Verilog/FPGA开源项目介绍(六)- MIPI