离线
TA的每日心情 | 奋斗 2022-6-21 08:23 |
---|
签到天数: 2 天 [LV.1]
|
有人预言,RISC-V或将是继Intel和Arm之后的第三大主流处理器体系。欢迎访问全球首家只专注于RISC-V单片机行业应用的中文网站
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 塞巴斯蒂安 于 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 40PS0
复制代码 TODO:需要在 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
完
|
上一篇: 优秀的 Verilog/FPGA开源项目介绍(五)- USB通信下一篇: 优秀的 Verilog/FPGA开源项目介绍(七)- CAN通信
|