91精品一区二区三区久久久久久_欧美一级特黄大片色_欧美一区二区人人喊爽_精品一区二区三区av

位置:51電子網 » 企業新聞

雙攝像頭采集顯示方案(FDMA+VDMA)XC6SLX9-2CSG324C

發布時間:2022/9/29 11:57:00 訪問次數:65

1.1概述
米聯客uifdma是基于AXI4總線接口開發的一種DMA數據管理IP,該IP可以統一視頻數據、普通ADC數據、PLDDR接口和PSDDR接口,具有更加廣泛的通用性。并且該IP是米聯客對所有開發者開源的。

本文實驗目的:

1. 掌握ui-fdma和ui_fdmadbuf在視頻采集方案的應用

2. 掌握多個AXI-FDMA同時傳輸視頻的同步解決方法

3. 掌握uifdma_dbuf視頻格式中Stride參數的使用

4. 掌握uifdma_dbuf和VDMA之間如何進行幀同步,如何實現3幀圖形緩存,確保圖形不撕裂。

1.2系統框圖

1.3搭建SOC系統工程
1.3.1PL圖形化編程
系統輸出部分的搭建請,閱讀“米聯客2022版ZynqSocSDK高級篇”一文中“5.4搭建SOC系統工程”這一章節,本文增加VDMA輸入部分。下面給出完成的工程,并且就新增加的輸入部分加以介紹。

上圖中高亮部是FDMA的幀同步計數器,CAM0的幀同步計數器提供給CAM1和VDMA 輸出 IP使用。VDMA 輸出 IP工作于SLAVE circle 模式,所以CAM1和VDMA 輸出都是從模式同步受控于CAM0的幀計數器,這樣可以確保視頻不出現撕裂。

1:CAM0中FDMA IP設置
關鍵設置:

1`WBaseaddr 0x08000000 設置緩存的起始地址

2`WDsizebits 設置緩存的大小,2^23次方代表8MB大小

3`WBufsize 設置圖像采用三緩存

4`WXsize設置行像素640

5`WXStride設置行Stride參數為1280,改參數用于2個視頻在一個顯存中顯示

6`WYsize設置場像素為480

2:CAM1中FDMA IP設置
1`WBaseaddr 0x0812CA00 設置緩存的起始地址,通過設置該地址可以讓圖像在指定的偏移位置顯示

2`WDsizebits 設置緩存的大小,2^23次方代表8MB大小

3`WBufsize 設置圖像采用三緩存

4`WXsize設置行像素640

5`WXStride設置行Stride參數為1280,改參數用于2個視頻在一個顯存中顯示

6`WYsize設置場像素為480

4:多路視頻同屏顯示原理

為了把2個圖像顯示到1個顯示器,首先得搞清楚以下關系:

hsize:每1行圖像實際在內存中占用的有效空間,以32bit表示一個像素的時候占用內存大小為hsize*4

hstride:用于設置每行圖像第一個像素的地址,以32bit 表示一個像素的時候h_cnt* hstride*4

vsize:有效的行

因此很容易得出cam0的每行第一個像素的地址也是h_cnt* hstride*4

同理如果我們需要把cam1在hsize和vsize空間的任何位置顯示,我們只要關心cam1每一行圖像第一個像素的地址,可以用以下公式h_cnt* hstride*4+offset

比如我們這里背景輸出到顯示器的分辨率為1280*720,cam1的分辨率是640*480需要移動上圖的右下腳,offset=(1280-640)*4*(720-480)

1.3.2設置地址分配
以sccb方式初始化攝像頭的地址空間截圖

1.4搭建Vitis-sdk工程
創建soc_base sdk platform和APP工程的過程不再重復,如果不清楚請參考“米聯客2022版ZynqSocSDK入門篇”中第一個工程 “01Vitis Soc開發入門”這個實驗。

1.5程序分析
1.5.1 主程序分析
1:地址空間的分配

#define BUF_BASE_SIZE 0x08000000

#define BUF_RANG_SIZE 0x800000

#define BUF1_ADDR BUF_BASE_SIZE + BUF_RANG_SIZE*0

#define BUF2_ADDR BUF_BASE_SIZE + BUF_RANG_SIZE*1

#define BUF3_ADDR BUF_BASE_SIZE + BUF_RANG_SIZE*2

#define VIDEO1_OFFSET (640+1280*240)*4

為了保存2路視頻圖像,我們需要為2路視頻圖像分別設置2個緩存地址空間,同時未來能讓2個圖像顯示在一個屏幕上,我們還需要對2路圖像緩存地址做合理分配,其中Stride值在這里就大大有用了。

地址為0x08000000=128MB,每個緩存的空間大小為0x800000=8MB

1.5.2 VDMA寄存器的參數配置
VDMA采用circle模式,為了確保視頻圖像輸出的不撕裂,需要對幀延遲做正確設置:

VideoOut通道,是從模式,和CAM0通道同步,由于CAM1可能延遲1幀于CAM0,所以如果設置延遲1幀,可能和正在寫入的CAM1通道內存重疊,導致CAM1圖像撕裂,因此最佳設置是延遲2幀。

1.5.3:OV5640的鏡像參數
本文中的攝像頭模塊采用了最新的FEP-CEPX3-CARD模塊,該模塊2個攝像頭是對稱放置,為了讓2個圖像都是同一方向,需要把其中的一路圖像設置鏡像

ov5640_init(sscb_cam0,640,480,0x46,0x07);

ov5640_init(sscb_cam1,640,480,0x40,0x01);

我們可以簡單了解下OV5640和鏡像相關的2個寄存器:

以看出來,只是兩個寄存器:0x3820控制上下翻轉,0x3821控制左右翻轉。

1.6雙目采集方案演示
1.6.1產品介紹
米聯客7X開發板采用底板+核心板分體模式設計,兼顧穩定+便捷。核心板7X-7020采用XC7Z020-2CLG400I,具備85K邏輯資源,內存為2片512MB DDR3,8GB EMMC,128Mbit QSPI FL ASH。適合需要大量FPGA邏輯資源實現更多FPGA接口,或者算法的領域。

1.6.2硬件準備
本實驗需要用到JTAG下載器、USB轉串口外設,另外需要把核心板上的2P模式開關設置到JTAG模式,即ON ON(注意新版本的米聯客7x,支持JTAG模式,對于老版本的核心板,JTAG調試的時候一定要拔掉TF卡,并且設置模式開關為OFF OFF)

1.7.62實驗結果


XC6SLX45T-2FGG484I

XC6SLX75T-3FGG484I

XC6SLX9-2CSG324C

XC6SLX9-2CSG324I

XC6SLX9-2FTG256C

XC6SLX9-2FTG256I

XC6SLX9-2TQG144C

XC7A75T-2FGG676I

XC7K160T-2FFG676C

XC7K160T-2FFG676I

XC7Z010-2CLG400I

XC7Z020-1CLG400I

XC7Z030-1FBG484C

XC7Z045-2FFG900I


上一篇:CY8C4146FNI-S433T

下一篇:CY8C4045PVS-S412

相關新聞

相關型號



 復制成功!
怀安县| 大冶市| 社会| 藁城市| 青龙| 缙云县| 晋江市| 顺平县| 于田县| 龙口市| 桐城市| 镇安县| 大名县| 马关县| 渭南市| 余姚市| 乌拉特中旗| 昔阳县| 鄂托克前旗| 孟津县| 华亭县| 台南市| 加查县| 龙海市| 南丹县| 富宁县| 福贡县| 嵊泗县| 平邑县| 手游| 长顺县| 津市市| 稻城县| 旬阳县| 班玛县| 宁波市| 阿拉善盟| 南昌县| 赤峰市| 富蕴县| 东兴市|