標題:
基于ZYNQ的CameraLink圖像采集與邊緣檢測開發(fā)詳解
[打印本頁]
作者:
Tronlong
時間:
2020-9-17 10:46
標題:
基于ZYNQ的CameraLink圖像采集與邊緣檢測開發(fā)詳解
1.案例說明
PL端接入CameraLink相機,通過Base模式采集圖像(1280*1024),然后通過VDMA緩存到PS端DDR。
使用AXI4-Stream Switch IP核將圖像復分成兩路,一路用于邊緣檢測處理(Sobel算法),另一路直接回顯。
利用Video Mixer IP核將圖像疊加,通過HDMI輸出原始圖像或者算法處理后的圖像。本案例支持CameraLink Base/Full模式、彩色/黑白相機。
此開發(fā)詳解基于創(chuàng)龍ZYNQ Z-7045/Z-7100評估板TLZ7xH-EVM展開。
2.案例框圖
3.申請IP核license
本開發(fā)案例使用的Video Mixer和Chroma Resampler IP核,需要到官網(wǎng)下載IP核免費license,否則將無法通過TcL腳本生成Vivado工程。
請參照創(chuàng)龍TLZ7xH-EVM評估板(ZYNQ Z-7045/Z-7100)用戶手冊《Xilinx Vivado 2017.4及License安裝教程》文檔,導入IP核。
成功導入后,點擊View License Status可以查看新添加的IP核license如下圖。
4.V
ivado工程說明
參照創(chuàng)龍TLZ7xH-EVM評估板(ZYNQ Z-7045/Z-7100)《基于TcL腳本生成Vivado工程及編譯》文檔,使用TcL腳本生成Vivado工程。
(1)生成評估板TLZ7xH-EVM、ZYNQ型號為xc7z100的Vivado工程:
Vivado#
vivado -mode batch -source tl_cameralink_edge_display_project.tcl -tclargs tlz7xh-evm xc7z100ffg900-2
(2)生成評估板TLZ7xH-EVM、ZYNQ型號為xc7z045的Vivado工程:
Vivado#
vivado -mode batch -source tl_cameralink_display_project.tcl -tclargs tlz7xh-evm xc7z045ffg900-2
進入Vivado工程所在的runs路徑,雙擊.xpr文件打開工程。
點擊"IP INTEGRATOR -> Open Block Design",打開Vivado工程如下圖所示。
Base模式
點擊Address Editor選項,可以看到IP核分配的地址,在PS端可以通過配置這些地址(寄存器)來控制IP核。
5.案例演示
實驗硬件說明
CameraLink相機參考型號:
彩色RS-A5241-CC107-S00,支持Full/Base,分辨率2560*2048,幀率107Hz
黑白RS-A5241-CM107-S00,支持Full/Base,分辨率2560*2048,幀率107Hz
參考下表和圖將相機接到評估板CameraLink接口,顯示器接到HDMI OUT接口。
模式
接口(相機-評估板)
Base
CL0-CON18
Base模式
基于Linux系統(tǒng)測試
評估板上電啟動進入文件系統(tǒng),執(zhí)行如下指令新建一個"/lib/firmware"文件夾。將由Vivado工程編譯生成的xxx.bin文件傳送到評估板文件系統(tǒng)的"/lib/firmware/"目錄下,并重命名為system_wrapper.bin。
參考創(chuàng)龍TLZ7xH-EVM評估板(Z-7045/Z-7100)用戶手冊《生成PL設備樹及動態(tài)加載PL程序和設備樹》文檔,生成設備樹,然后將編譯好的dtbo文件拷貝到文件系統(tǒng)"lib/firmware"目錄下。
Target#
mkdir -p /lib/firmware/
HDMI OUT芯片接的是PS端的I2C,需要加載PS端設備樹,加載成功后如下圖所示。
Target
#
mkdir /configfs
Target#
mount -t configfs configfs /configfs
Target#
mkdir /configfs/device-tree/overlays/full
Target#
echo -n zynq-zc706-overlay.dtbo > /configfs/device-tree/overlays/full/path
再加載PL端程序和設備樹?梢钥吹紸XI UART對應的節(jié)點為/dev/ttyUL1。
Target#
mkdir /configfs/device-tree/overlays/cameralink
Target#
echo -n "pl.dtbo" > /configfs/device-tree/overlays/cameralink/path
將例程image目錄下的腳本拷貝到文件系統(tǒng),執(zhí)行腳本進行配置,即可在顯示器看到相機采集的視頻。
Target#
./camera_init.sh base //初始化CameraLink相機
Base模式
腳本說明:
Target#
./sil9022_i2c_1080p.sh //初始化HDMI OUT
Target#
./axi_vdma_cameralink.sh //初始化VDMA
Target#
./switch_video.sh 1 //配置AXI4-Stream Switch IP核,參數(shù)1為原始圖像
Target#
./mixer_init.sh 1 //初始化Video Mixer IP核,參數(shù)1為原始圖像
Target#
./sobel_filter_init.sh //初始化Image_filter IP核
Target#
./mixer_init.sh 2 && ./switch_video.sh 2 //切換到算法處理后的圖像
對于RS-A5241的相機,Base模式下,1280*1024的分辨率狀態(tài)下,圖像幀率有120+幀,所以圖像曝光短,圖像較暗,增大Image_filter IP的閾值可以獲得更好的效果。
Target#
devmem 0x43c000b4 w 0xff //設置高閾值為0xff
Target#
devmem 0x43c000bc w 0xa0 //設置低閾值為0xa0
設置顏色反轉:
Target#
devmem 0x43c000c4 w 1 //0xc4寄存器設置為1,邊緣為白色,若為0;邊緣為黑色
歡迎光臨 (http://www.torrancerestoration.com/bbs/)
Powered by Discuz! X3.1