愛伊米

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 VerilogFPGA開源專案介紹(六)- 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說明

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

Lattice CrossLink繫系列DPHY說明

方案二

使用專門ASSP晶片轉換到LVDS

這種方案就不需要介紹了,專用ASIC(MC系列這種方案可以支援到2Gbps/Lane速率以上,只要FPGA的IO速率夠用),方案不及自帶DPHY的方案,但是也足夠用了,綜合考慮方案的成本,這種方案也是目前很多公司選用的方案。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

MC系列IC的DPHY解決方案

方案三

電阻網路方案

可以參考xilinx官方文件xapp894,要求800M Hz以下,走線30mm以內。說白了只能用用而已。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

電阻網路方案示意圖

為什麼介紹這幾種方案呢?因為開源的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上(資源夠的情況)。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

專案簡介

此專案包含用於通用 FPGA CSI 接收器的硬體、Verilog 原始碼和 USB3。0 影片裝置類 (UVC) 控制器 C語言 原始碼(韌體),該專案未使用任何 針對FPGA 的IP,純HDL,因此可以輕鬆移植到任何 FPGA上(資源夠的情況)。

支援幀率從 15 到 1000 FPS,解析度從 640x80 到  8M 3280x2464。

1080p 60FPS 時的最大資料速率約為 2Gbps。

透過 UVC 控制幀速率和解析度。手動曝光和手動亮度控制, 飽和度控制。還可以使用對映伽馬控制啟用測試圖案。

目前測試完成的案例:

TODO:需要在 FPGA 端進行改進以實現自動曝光、亮度和白平衡校正。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

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核,埠描述如下:

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

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。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

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 裝置的應用程式。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

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

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

百度大腦升級版

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

SEA-S7

這款開發板完全開源,原始碼,MIPI介面使用電阻網路,可以作為參考原理圖。

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

https://github。com/For-up/SEA-S7Guess

米爾 百度大腦&ISP處理平臺

官方板卡

1、 MAX10(10M50DAF484C6G FPGA Arrow)

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

2、KV260

《詳見:開發者來稿 | Kria KV260 超長乾貨之開箱指南》

資料

可以參考下面的連結瞭解更多MIPI資訊。

1、https://www。circuitvalley。com/2020/02/imx219-camera-mipi-csi-receiver-fpga-lattice-raspberry-pi-camera。html

2、https://www。cnblogs。com/gcws/p/8995542。html

3、

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

百度網盤:

連結:https://pan。baidu。com/s/1ShkmpRIY9JDZI_3ImA-iSA提取碼:open

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 Verilog/FPGA開源專案介紹(一)-PCIe通訊

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 Verilog/FPGA開源專案介紹(二)-RISC-V

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 Verilog/FPGA開源專案介紹(三)- 大廠的專案

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 Verilog/FPGA開源專案介紹(四)- Ethernet

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

優秀的 Verilog/FPGA開源專案介紹(五)- USB通訊

優秀的 VerilogFPGA開源專案介紹(六)- MIPI

介紹一些新手入門FPGA的優秀網站(新增2)