上海做網(wǎng)站優(yōu)化價(jià)格重慶seo排名電話
目錄
- 1、前言
- 免責(zé)聲明
- 2、相關(guān)方案推薦
- 我這里已有的 MIPI 編解碼方案
- 本方案在Xilinx Artix7-100T上解碼MIPI視頻的應(yīng)用
- 本方案在Xilinx Kintex7上解碼MIPI視頻的應(yīng)用
- 本方案在Xilinx Zynq7000上解碼MIPI視頻的應(yīng)用
- 本方案在Xilinx Zynq UltraScale上解碼MIPI視頻的應(yīng)用
- 純VHDL代碼解碼ov5640-MIPI視頻方案
- 3、本 MIPI CSI2 模塊性能及其優(yōu)缺點(diǎn)
- 4、詳細(xì)設(shè)計(jì)方案
- 設(shè)計(jì)原理框圖
- OV5640及其配置
- 權(quán)電阻硬件方案
- MIPI CSI-2 RX Subsystem
- 圖像緩存
- VGA時(shí)序
- isp處理
- 視頻輸出
- 工程源碼架構(gòu)
- 5、vivado工程詳解
- 6、工程移植說(shuō)明
- vivado版本不一致處理
- FPGA型號(hào)不一致處理
- 其他注意事項(xiàng)
- 7、上板調(diào)試驗(yàn)證
- 準(zhǔn)備工作
- RAW10原始圖像輸出演示
- isp處理后的RGB888圖像輸出演示
- 8、福利:工程代碼的獲取
FPGA解碼MIPI視頻:Xilinx Artix7-35T低端FPGA,基于MIPI CSI-2 RX Subsystem架構(gòu)實(shí)現(xiàn),提供工程源碼和技術(shù)支持
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)人玩兒了。
本設(shè)計(jì)基于Xilinx的 Artix7-35T低端FPGA開(kāi)發(fā)板采集OV5640攝像頭的2Line MIPI視頻,本方案最大的價(jià)值就是在低端的、資源緊湊型的、項(xiàng)目預(yù)算不高等條件下選用的Xilinx Artix7-35T FPGA上實(shí)現(xiàn)了MIPI視頻解碼,解決了行業(yè)目前在該領(lǐng)域的空白;OV5640攝像頭配置為MIPI模式,RAW10數(shù)據(jù)格式,MIPI引腳經(jīng)過(guò)權(quán)電阻分離出LP電路后接入FPGA的HS BANK的LVDS差分IO;調(diào)用Xilinx的MIPI CSI-2 RX Subsystem IP實(shí)現(xiàn)MIPI的D_PHY+CSI_RX2功能,該IP由Xilinx免費(fèi)提供,將MIPI視頻解碼后以AXIS視頻流格式輸出;此時(shí)的視頻是原始的RAW10數(shù)據(jù),輸出路徑有兩種,一種是經(jīng)DDR緩存后依然以RAW10數(shù)據(jù)輸出HDMI顯示器,只不過(guò)圖像為黑白色;另一種是DDR緩存后再經(jīng)過(guò)Bayer轉(zhuǎn)RGB和伽馬校正(isp處理)后以RGB888數(shù)據(jù)輸出HDMI顯示器,區(qū)別是圖像為彩色的;兩種路徑通過(guò)isp模塊的parameter參數(shù)設(shè)置;默認(rèn)使用isp處理;針對(duì)目前市面上主流的FPGA,本Xilinx系列FPGA解碼OV5640-MIPI視頻方案一共移植了15套工程源碼,本博文介紹其中基于Artix7-35T低端FPGA 的1套工程,詳情如下:
本文詳細(xì)描述了Xilinx Artix7-35T低端FPGA解碼MIPI視頻的設(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ì),我就不多寫這塊了;
免責(zé)聲明
本工程及其源碼即有自己寫的一部分,也有網(wǎng)絡(luò)公開(kāi)渠道獲取的一部分(包括CSDN、Xilinx官網(wǎng)、Altera官網(wǎng)以及其他開(kāi)源免費(fèi)獲取渠道等等),若大佬們覺(jué)得有所冒犯,請(qǐng)私信批評(píng)教育;部分模塊源碼轉(zhuǎn)載自上述網(wǎng)絡(luò),版權(quán)歸原作者所有,如有侵權(quán)請(qǐng)聯(lián)系我們刪除;基于此,本工程及其源碼僅限于讀者或粉絲個(gè)人學(xué)習(xí)和研究,禁止用于商業(yè)用途,若由于讀者或粉絲自身原因用于商業(yè)用途所導(dǎo)致的法律問(wèn)題,與本博客及博主無(wú)關(guān),請(qǐng)謹(jǐn)慎使用。。。
2、相關(guān)方案推薦
我這里已有的 MIPI 編解碼方案
我這里目前已有豐富的基于FPGA的MIPI編解碼方案,主要是MIPI解碼的,既有純vhdl實(shí)現(xiàn)的MIPI解碼,也有調(diào)用Xilinx官方IP實(shí)現(xiàn)的MIPI解碼,既有2line的MIPI解碼,也有4line的MIPI解碼,既有4K分辨率的MIPI解碼,也有小到720P分辨率的MIPI解碼,既有基于Xilinx平臺(tái)FPGA的MIPI解碼也有基于Altera平臺(tái)FPGA的MIPI解碼,還有基于Lattice平臺(tái)FPGA的MIPI解碼,后續(xù)還將繼續(xù)推出更過(guò)國(guó)產(chǎn)FPGA的MIPI解碼方案,畢竟目前國(guó)產(chǎn)化方案才是未來(lái)主流,后續(xù)也將推出更多MIPI編碼的DSI方案,努力將FPGA的MIPI編解碼方案做成白菜價(jià)。。。
基于此,我專門建了一個(gè)MIPI編解碼的專欄,并將MIPI編解碼的博客都放到了專欄里整理,對(duì)FPGA編解碼MIPI有項(xiàng)目需求或?qū)W習(xí)興趣的兄弟可以去我的專欄看看,專欄地址如下:
點(diǎn)擊直接前往專欄
本方案在Xilinx Artix7-100T上解碼MIPI視頻的應(yīng)用
本方案適應(yīng)于Xilinx系列FPGA平臺(tái),針對(duì)目前市面上主流的FPGA,本博將本方案分別移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平臺(tái)共計(jì)16套工程源碼,本文講述的是在Artix7-35T低端FPGA上的應(yīng)用,想要直接應(yīng)用于Xilinx Artix7-100T 系列FPGA上的ov5640-MIPI視頻解碼應(yīng)用的讀者,可以參考我之前寫得博客,以下是博客地址:
點(diǎn)擊直接前往
本方案在Xilinx Kintex7上解碼MIPI視頻的應(yīng)用
本方案適應(yīng)于Xilinx系列FPGA平臺(tái),針對(duì)目前市面上主流的FPGA,本博將本方案分別移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平臺(tái)共計(jì)16套工程源碼,本文講述的是在Artix7-35T低端FPGA上的應(yīng)用,想要直接應(yīng)用于Xilinx Kintex7系列FPGA上的ov5640-MIPI視頻解碼應(yīng)用的讀者,可以參考我之前寫得博客,以下是博客地址:
點(diǎn)擊直接前往
本方案在Xilinx Zynq7000上解碼MIPI視頻的應(yīng)用
本方案適應(yīng)于Xilinx系列FPGA平臺(tái),針對(duì)目前市面上主流的FPGA,本博將本方案分別移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平臺(tái)共計(jì)16套工程源碼,本文講述的是在Artix7-35T低端FPGA上的應(yīng)用,想要直接應(yīng)用于Xilinx Zynq7000系列FPGA上的ov5640-MIPI視頻解碼應(yīng)用的讀者,可以參考我之前寫得博客,里面包括了Zynq7020、Zynq7030、Zynq7035、Zynq7045、Zynq7100等平臺(tái);以下是博客地址:
點(diǎn)擊直接前往
本方案在Xilinx Zynq UltraScale上解碼MIPI視頻的應(yīng)用
本方案適應(yīng)于Xilinx系列FPGA平臺(tái),針對(duì)目前市面上主流的FPGA,本博將本方案分別移植到了Xilinx 的Artix7、Kintex7、Zynq7000、Zynq UltraScale等平臺(tái)共計(jì)16套工程源碼,本文講述的是在Artix7-35T低端FPGA上的應(yīng)用,想要直接應(yīng)用于Xilinx Zynq UltraScale系列FPGA上的ov5640-MIPI視頻解碼應(yīng)用的讀者,可以參考我之前寫得博客,里面包括了Zynq UltraScale XCZU2CG、Zynq UltraScale XCZU3EG、Zynq UltraScale XCZU4EV、Zynq UltraScale XCZU7EV、Zynq UltraScale XCZU9EG等平臺(tái);以下是博客地址:
點(diǎn)擊直接前往
純VHDL代碼解碼ov5640-MIPI視頻方案
與上述基于MIPI CSI-2 RX Subsystem方案不同,本博也提供基于純VHDL代碼解碼ov5640-MIPI視頻的方案,該方案的區(qū)別與優(yōu)勢(shì)在于可以看到VHDL源碼而非單純的IP,能看到源碼的意思就是你可以任意修改源碼以適配自己的項(xiàng)目,其意義與價(jià)值無(wú)需多言,該方案目前已在Xilinx Zynq7020上移植成功,共有兩套工程源碼,一套是單路ov5640-MIPI視頻解碼后HDMI輸出;另一套是4路ov5640-MIPI視頻解碼經(jīng)縮放拼接后HDMI 4分屏輸出;感興趣的可以參考我之前的博客;
單路MIPI解碼輸出博客地址如下:
點(diǎn)擊直接前往
4路MIPI解碼縮放拼接輸出博客地址如下:
點(diǎn)擊直接前往
3、本 MIPI CSI2 模塊性能及其優(yōu)缺點(diǎn)
由于調(diào)用了Xilinx的MIPI CSI-2 RX Subsystem IP核,所以性能上就取決于你的FPGA型號(hào),理論上FPGA越高端,支持的IO線速率或者GT高速接口線速率就越高,就能跑速率更高的MIPI視頻;
該IP適應(yīng)性極強(qiáng),支持的MIPI相機(jī)性能參數(shù)如下:
并且,在越高端的FPGA型號(hào)上,該IP支持的高端性能也越多;
由于調(diào)用了Xilinx的MIPI CSI-2 RX Subsystem IP核,NIPI視頻解碼的穩(wěn)定性很好,且使用及其簡(jiǎn)單,缺點(diǎn)是看不到源碼,出了問(wèn)題后不好排查,只能在輸入輸出接口添加ila進(jìn)行逐級(jí)追蹤;
本方案使用的FPGA型號(hào)為Xilinx Artix7-100T,屬于低端FPGA的MIPI解碼應(yīng)用,再小型的Artix7-35T或者Spartan7、Spartan6等就已經(jīng)不能使用MIPI CSI-2 RX Subsystem了;
4、詳細(xì)設(shè)計(jì)方案
本設(shè)計(jì)基于Xilinx的 Artix7-35T低端FPGA開(kāi)發(fā)板,采集OV5640攝像頭的2Line MIPI視頻,OV5640攝像頭配置為MIPI模式,RAW10數(shù)據(jù)格式,引腳經(jīng)過(guò)權(quán)電阻方案后接入FPGA的HS BANK的LVDS差分IO;調(diào)用Xilinx的MIPI CSI-2 RX Subsystem IP實(shí)現(xiàn)MIPI的D_PHY+CSI_RX2功能,該IP由Xilinx免費(fèi)提供,將MIPI視頻解碼后以AXIS視頻流格式輸出;此時(shí)的視頻是原始的RAW10數(shù)據(jù),輸出路徑有兩種,一種是經(jīng)DDR緩存后依然以RAW10數(shù)據(jù)輸出HDMI顯示器,只不過(guò)圖像為黑白色;另一種是DDR緩存后再經(jīng)過(guò)Bayer轉(zhuǎn)RGB和伽馬校正后以RGB888數(shù)據(jù)輸出HDMI顯示器,區(qū)別是圖像為彩色的,兩種路徑通過(guò)isp模塊的parameter參數(shù)設(shè)置;
設(shè)計(jì)原理框圖
設(shè)計(jì)原理框圖如下:
OV5640及其配置
輸入視頻采用廉價(jià)的OV5640攝像頭模組,配置為MIPI模式,2 Line,數(shù)據(jù)格式為RAW10,線速率為1000Mbps,視頻分辨率為1280*720,一個(gè)時(shí)鐘一個(gè)像素,OV5640需要SCCB總線配置才能運(yùn)行,該總線等價(jià)于I2C總線,本設(shè)計(jì)采用純verilog實(shí)現(xiàn)的i2c控制器配置OV5640,代碼位置如下:
權(quán)電阻硬件方案
使用Xilinx官方推薦的權(quán)電阻硬件方案將輸入的差分MIPI對(duì)恢復(fù)HS和PL,原理圖部分截圖如下:
注意:權(quán)電阻方案只在低速率的MIPI模式下可用,高速率的MIPI請(qǐng)用專用芯片實(shí)現(xiàn),比如MC20001,MC系列這種方案可以支持到2Gbps/Lane速率以上,只要FPGA的IO速率夠用;
MIPI CSI-2 RX Subsystem
調(diào)用Xilinx的MIPI CSI-2 RX Subsystem IP實(shí)現(xiàn)MIPI的D-PHY功能,該IP由Xilinx免費(fèi)提供,將MIPI視頻解碼后以AXIS視頻流格式輸出;調(diào)用和配置如下:
圖像緩存
調(diào)用Xilinx的MIG與DDR3交互形成圖像緩存架構(gòu),調(diào)用Xilinx FIFO封裝用戶接口,對(duì)圖像進(jìn)行乒乓操作,形成2幀圖像緩存,輸入數(shù)據(jù)位寬為16bit,輸出數(shù)據(jù)位寬為16bit,代碼中有詳細(xì)中文注釋,很好理解和閱讀,如果打開(kāi)后注釋為亂碼,請(qǐng)用notepad++打開(kāi)就好了;代碼位置如下:
VGA時(shí)序
VGA時(shí)序模塊產(chǎn)生1280x720@60Hz的分辨率視頻,即用于控制視頻從DDR3中讀出,又作為VGA時(shí)序輸出給HDMI輸出模塊,代碼位置如下:
isp處理
由于OV5640-MIPI視頻輸出的是RAW10視頻,所以需要isp處理,包括Bayer轉(zhuǎn)RGB888和伽馬校正,當(dāng)然,isp并非一定要做,有的項(xiàng)目需求恰好就是要輸出顯示RAW10原視頻,所以在代碼里我專門設(shè)置了ISP_BYPASS參數(shù),該參數(shù)配置說(shuō)明如下:
parameter ISP_BYPASS = 0:視頻進(jìn)行isp處理,輸出RGB888視頻;
parameter ISP_BYPASS = 1:視頻不進(jìn)行isp處理,輸出RAW10原視頻;
isp模塊代碼位置如下:
默認(rèn)采用isp處理后的RGB888視頻輸出,模塊例化如下:
視頻輸出
視頻從FDMA讀出后,經(jīng)過(guò)VGA時(shí)序模塊和HDMI發(fā)送模塊后輸出顯示器,代碼位置如下:
VGA時(shí)序配置為1920X1080,HDMI發(fā)送模塊采用verilog代碼手寫,可以用于FPGA的HDMI發(fā)送應(yīng)用,關(guān)于這個(gè)模塊,請(qǐng)參考我之前的博客,博客地址:點(diǎn)擊直接前往
工程源碼架構(gòu)
工程源碼架構(gòu)如下:
5、vivado工程詳解
開(kāi)發(fā)板FPGA型號(hào):Xilinx–Artix7–xc7a35tfgg484-2;
開(kāi)發(fā)環(huán)境:Vivado2022.2;
輸入:OV5640攝像頭–MIPI–2 Line–RAW10-1280x720;
輸出:HDMI ,分辨率720P;
應(yīng)用:Xilinx Artix7-35T低端FPGA解碼MIPI視頻;
工程代碼架構(gòu)請(qǐng)參考第4章節(jié)“設(shè)計(jì)思路框架”的“工程源碼架構(gòu)”小節(jié)內(nèi)容;
工程的資源消耗和功耗如下:
可以看到,在資源相當(dāng)緊張的Artix7-35T低端FPGA上,本方案消耗的邏輯資源是很少的,還剩余了大量資源可供用戶其他使用,足以證明本方案的先進(jìn)性;
6、工程移植說(shuō)明
vivado版本不一致處理
1:如果你的vivado版本與本工程vivado版本一致,則直接打開(kāi)工程;
2:如果你的vivado版本低于本工程vivado版本,則需要打開(kāi)工程后,點(diǎn)擊文件–>另存為;但此方法并不保險(xiǎn),最保險(xiǎn)的方法是將你的vivado版本升級(jí)到本工程vivado的版本或者更高版本;
3:如果你的vivado版本高于本工程vivado版本,解決如下:
打開(kāi)工程后會(huì)發(fā)現(xiàn)IP都被鎖住了,如下:
此時(shí)需要升級(jí)IP,操作如下:
FPGA型號(hào)不一致處理
如果你的FPGA型號(hào)與我的不一致,則需要更改FPGA型號(hào),操作如下:
更改FPGA型號(hào)后還需要升級(jí)IP,升級(jí)IP的方法前面已經(jīng)講述了;
其他注意事項(xiàng)
1:由于每個(gè)板子的DDR不一定完全一樣,所以MIG IP需要根據(jù)你自己的原理圖進(jìn)行配置,甚至可以直接刪掉我這里原工程的MIG并重新添加IP,重新配置;
2:根據(jù)你自己的原理圖修改引腳約束,在xdc文件中修改即可;
3:純FPGA移植到Zynq需要在工程中添加zynq軟核;
7、上板調(diào)試驗(yàn)證
準(zhǔn)備工作
需要準(zhǔn)備的器材如下:
FPHA開(kāi)發(fā)板;
OV5640攝像頭;
HDMI顯示器;
RAW10原始圖像輸出演示
該輸出方案需要在代碼中改為如下才能輸出,如下:
輸出如下:
RAW10原始圖像輸出
isp處理后的RGB888圖像輸出演示
該輸出方案需要在代碼中改為如下才能輸出,如下:
輸出如下:
RGB888圖像輸出演示
8、福利:工程代碼的獲取
福利:工程代碼的獲取
代碼太大,無(wú)法郵箱發(fā)送,以某度網(wǎng)盤鏈接方式發(fā)送,
資料獲取方式:私,或者文章末尾的V名片。
網(wǎng)盤資料如下: