火車(chē)票網(wǎng)站建設(shè)多少錢(qián)微信公眾號(hào)推廣網(wǎng)站
目錄
- 1、前言
- 2、Xilinx官方主推的MIPI解碼方案
- 3、純Vhdl方案解碼MIPI
- 4、vivado工程介紹
- 5、上板調(diào)試驗(yàn)證
- 6、福利:工程代碼的獲取
1、前言
FPGA圖像采集領(lǐng)域目前協(xié)議最復(fù)雜、技術(shù)難度最高的應(yīng)該就是MIPI協(xié)議了,MIPI解碼難度之高,令無(wú)數(shù)英雄競(jìng)折腰,以至于Xilinx官方不得不推出專用的IP核供開(kāi)發(fā)者使用,不然太高端的操作直接嚇退一大批FPGA開(kāi)發(fā)者,就沒(méi)人玩兒了。
本文詳細(xì)描述了設(shè)計(jì)方案,工程代碼編譯通過(guò)后上板調(diào)試驗(yàn)證,可直接項(xiàng)目移植,適用于在校學(xué)生做畢業(yè)設(shè)計(jì)、研究生項(xiàng)目開(kāi)發(fā),也適用于在職工程師做項(xiàng)目開(kāi)發(fā),可應(yīng)用于醫(yī)療、軍工等行業(yè)的數(shù)字成像和圖像傳輸領(lǐng)域;
提供完整的、跑通的工程源碼和技術(shù)支持;
工程源碼和技術(shù)支持的獲取方式放在了文章末尾,請(qǐng)耐心看到最后;
關(guān)于MIPI協(xié)議,請(qǐng)自行搜索,csdn就有很多大佬講得很詳細(xì),我就不多寫(xiě)這塊了;
之前寫(xiě)過(guò)一篇文章,FPGA解碼4K分辨率4line MIPI視頻 OV13850采集,兩路輸出,輸出1是VGA,輸出2是HDMI,均為1920x1080;本文的原始參考鏈接:原始參考鏈接
在上面那個(gè)工程的基礎(chǔ)上,將vhdl代碼封裝為自定義IP,將兩路輸出改為1路HDMI輸出,修改工程鏈接如下:升級(jí)版
在上面那個(gè)工程的基礎(chǔ)上,將原來(lái)的OV13850采集改為 OV4689采集,修改工程鏈接如下:OV4689
本工程輸入為OV5647攝像頭,2line MIPI數(shù)據(jù)線,720P分辨率,硬件純vhdl代碼實(shí)現(xiàn)MIPI協(xié)議解碼,輸出axis格式數(shù)據(jù),然后將axis格式數(shù)據(jù)轉(zhuǎn)換為VGA格式數(shù)據(jù),再將bayer數(shù)據(jù)轉(zhuǎn)RGB,再經(jīng)過(guò)FDMA三幀緩存,最紅通過(guò)HDMI輸出顯示器。
2、Xilinx官方主推的MIPI解碼方案
Xilinx官方主推的MIPI解碼方案是專用IP核,在vivado的ip倉(cāng)庫(kù)里輸入MIPI就會(huì)看到如下的一堆IP:
Xilinx方案使用很簡(jiǎn)單,調(diào)用IP就行,用SDK配置即可使用,MIPI解碼后的數(shù)據(jù)格式為AXIS,方便與他家的VDMA之類的IP對(duì)接,你無(wú)須關(guān)心復(fù)雜的MIPI協(xié)議即可暢玩兒MIPI,但問(wèn)題就來(lái)了,如果你用的FPGA不是Xilinx家的怎么辦?
關(guān)于Xilinx自家的MIPI方案,請(qǐng)參考我之前寫(xiě)的文章;Xilinx的MIPI方案
3、純Vhdl方案解碼MIPI
本方案MIPI解碼后的視頻時(shí)序?yàn)閂GA時(shí)序,即行同步,場(chǎng)同步,數(shù)據(jù)有效,數(shù)據(jù)信號(hào);方便后端直接處理;
解串部分使用Xilinx源語(yǔ),本工程用到的是7系列源語(yǔ),更高級(jí)別的FPGA應(yīng)用,需要更改源語(yǔ)參數(shù),但問(wèn)題不大;
一個(gè)字:牛逼,表現(xiàn)如下:
1:純Vhdl代碼實(shí)現(xiàn),學(xué)習(xí)性和閱讀性達(dá)到天花板;
2:移植性還可以,只要兼容Xilinx解串源語(yǔ)的FPGA均可移植;
3:算法達(dá)到天花板,標(biāo)準(zhǔn)的CSI2接收協(xié)議實(shí)現(xiàn)解碼;
4:實(shí)用性達(dá)到天花板,采用OV4689攝像頭作為輸入,不同于市面上驗(yàn)證性和實(shí)驗(yàn)性的工程,本設(shè)計(jì)直接面向?qū)嵱霉こ?#xff0c;貼近真實(shí)項(xiàng)目,MIPI輸入,1路視頻輸出,做類似項(xiàng)目的兄弟可直接拿去用,一個(gè)月工資直接拿到手。。。
5:自定義IP封裝,方便用戶使用,CSI-2自定義IP支持2line或4line輸入,可在IP配置界面手動(dòng)配置;
視頻輸入:
OV5647攝像頭輸入,MIPI 2line,720P分辨率;
MIPI解碼:
純vhdl代碼編寫(xiě)的CSI-2解碼器,可針對(duì)2line或4line輸入的MIPI視頻解碼,輸出為AXIS數(shù)據(jù)流,經(jīng)過(guò)AXIS轉(zhuǎn)VGA輸出VGA格式數(shù)據(jù),經(jīng)Bayer轉(zhuǎn)RGB輸出VGA格式的RGB888視頻數(shù)據(jù);
圖像緩存:
經(jīng)典的,我常用的FDMA圖像緩存架構(gòu),經(jīng)??次也┛偷呐笥褢?yīng)該都很熟悉了,想了解FDMA圖像緩存架構(gòu)可以參考我之前寫(xiě)的文章FDMA圖像緩存架構(gòu)
圖像輸出:
經(jīng)FDMA圖像3幀緩存后,相當(dāng)于MIPI視頻進(jìn)DDR3逛了一圈又回來(lái)了,經(jīng)過(guò)VGA時(shí)序發(fā)生器VTC和HDMI發(fā)送驅(qū)動(dòng)輸出顯示器,HDMI發(fā)送驅(qū)動(dòng)采用純verilog代碼編寫(xiě),不含任何IP,輸出穩(wěn)定可靠,我項(xiàng)目一直都在用,想了解HDMI發(fā)送驅(qū)動(dòng)可以參考我之前寫(xiě)的文章HDMI發(fā)送驅(qū)動(dòng)
4、vivado工程介紹
開(kāi)發(fā)板:Xilinx Kintex7開(kāi)發(fā)板;
開(kāi)發(fā)環(huán)境:vivado2020.2;
輸入:OV5647攝像頭輸入,MIPI 2line,720P分辨率;
輸出:HDMI,720P分辨率;
工程BD如下:
MIPI解碼部分的IP搭建如下:
CSI-2 IP配置界面如下:
CSI-2轉(zhuǎn)AXIS
FDMA配置如下:
綜合后的工程代碼架構(gòu)如下:
FPGA資源消耗和功耗預(yù)估如下:
5、上板調(diào)試驗(yàn)證
由于攝像頭被手殘黨燒壞了,沒(méi)法演示了,真TND晦氣,上張圖片壓壓驚吧
6、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無(wú)法郵箱發(fā)送,以某度網(wǎng)盤(pán)鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤(pán)資料如下: