1、前言
FPGA圖像采集領域目前協議最復雜、技術難度最高的應該就是MIPI協議了,MIPI解碼難度之高,令無數英雄競折腰,以至于Xilinx官方不得不推出專用的IP核供開發者使用,不然太高端的操作直接嚇退一大批FPGA開發者,就沒人玩兒了。
本設計基于Xilinx的Kintex7開發板,采集OV5647 攝像頭的720P 2Line MIPI視頻,OV5647 攝像頭引腳接Kintex7的 BANK16 LVDS_25 差分引腳,經過純vhdl實現的 CSI2 RX模塊輸出AXIS視頻流,再將bayer數據轉RGB,再經過FDMA將圖像送入DDR3中做三幀緩存后讀出,最后經HDMI發送模塊輸出顯示器;
本文詳細描述了設計方案,工程代碼編譯通過后上板調試驗證,可直接項目移植,適用于在校學生做畢業設計、研究生項目開發,也適用于在職工程師做項目開發,可應用于醫療、軍工等行業的數字成像和圖像傳輸領域;
提供完整的、跑通的工程源碼和技術支持;
工程源碼和技術支持的獲取方式放在了文章末尾,請耐心看到最后;
關于MIPI協議,請自行搜索,csdn就有很多大佬講得很詳細,我就不多寫這塊了;
2、Xilinx官方主推的MIPI解碼方案
Xilinx官方主推的MIPI解碼方案是專用IP核,在vivado的ip倉庫里輸入MIPI就會看到如下的一堆IP:
Xilinx方案使用很簡單,調用IP就行,用SDK配置即可使用,MIPI解碼后的數據格式為AXIS,方便與他家的VDMA之類的IP對接,你無須關心復雜的MIPI協議即可暢玩兒MIPI,但問題就來了,如果你用的FPGA不是Xilinx家的怎么辦?
3、本 MIPI CSI2 模塊性能及其優越性
本方案MIPI解碼后的視頻時序為VGA時序,即行同步,場同步,數據有效,數據信號;方便后端直接處理;解串部分使用Xilinx源語,本工程用到的是7系列源語,更高級別的FPGA應用,需要更改源語參數,但問題不大;
一個字:牛逼,表現如下:
1:純Vhdl代碼實現,學習性和閱讀性達到天花板;
2:移植性還可以,只要兼容Xilinx解串源語的FPGA均可移植;
3:算法達到天花板,標準的CSI2接收協議實現解碼;
4:實用性達到天花板,采用OV4689攝像頭作為輸入,不同于市面上驗證性和實驗性的工程,本設計直接面向實用工程,貼近真實項目,MIPI輸入,2路視頻輸出,做類似項目的兄弟可直接拿去用,一個月工資直接拿到手。。。
5:支持高達4K分辨率的MIPI視頻解碼;
6:時序收斂很到位,考慮到MIPI協議的復雜性和時序的高要求,所以沒有采用時序收斂不強的verilog,而是VHDL,雖然閱讀性可能會低一些,但用戶只需要知道用戶接口即可,并不需要去看內部的復雜代碼;
7:自定義IP封裝,方便Xilinx系列FPGA用戶使用,CSI-2自定義IP支持2line或4line輸入,可在IP配置界面手動配置;
4、我這里已有的 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編解碼方案做成白菜價。。。
5、詳細設計方案
詳細設計方案如下:
視頻輸入:
OV5647攝像頭輸入,MIPI 2line,720P分辨率;
MIPI解碼:
純vhdl代碼編寫的CSI-2解碼器,可針對2line或4line輸入的MIPI視頻解碼,輸出為AXIS數據流,經過AXIS轉VGA輸出VGA格式數據,經Bayer轉RGB輸出VGA格式的RGB888視頻數據;
圖像輸出:
經FDMA圖像3幀緩存后,相當于MIPI視頻進DDR3逛了一圈又回來了,經過VGA時序發生器VTC和HDMI發送驅動輸出顯示器,HDMI發送驅動采用純verilog代碼編寫,不含任何IP,輸出穩定可靠,我項目一直都在用
6、vivado工程介紹
開發板:Xilinx Kintex7開發板;
開發環境:vivado2020.2;
輸入:OV5647攝像頭輸入,MIPI 2line,720P分辨率;
輸出:HDMI,720P分辨率;
工程BD如下:
MIPI解碼部分的IP搭建如下:
CSI-2 IP配置界面如下:
CSI-2轉AXIS
FDMA配置如下:
綜合后的工程代碼架構如下:
FPGA資源消耗和功耗預估如下:
-
FPGA
+關注
關注
1643文章
21954瀏覽量
613969 -
DDR3
+關注
關注
2文章
282瀏覽量
42928 -
攝像頭
+關注
關注
61文章
4948瀏覽量
97645 -
RGB
+關注
關注
4文章
803瀏覽量
59574 -
MIPI
+關注
關注
11文章
326瀏覽量
49493
發布評論請先 登錄
[艾諾]無色塊10M碼流720P 推動高清MP4標準
無色塊10M碼流720P 艾諾推動高清MP4標準
無色塊10M碼流720P 推動高清MP4標準
Pandaboard MIPI CSI2高清攝像頭接口設計
特權FPGA VIP視頻圖像開發套件例程詳解5——VGA SVGA 720p 1080p多分辨率顯示驅動
RGB轉MIPI CSI芯片方案TC358746XBG
【小梅哥FPGA】OV5640攝像頭資料,含應用手冊,1280*720P分辨率,30幀應用工程
關于dm8168 ezsdk下openmax decode_display例子輸出分辨率的問題。
請教DM6467關于1024x768分辨率的視頻處理
DM6467 720P H.264 編碼問題
怎么自動識別視頻分辨率和幀頻?
OV5647傳感器的數據手冊

CMOS圖像傳感器OV5647的數據手冊免費下載

評論