電子產(chǎn)業(yè)一站式賦能平臺

PCB聯(lián)盟網(wǎng)

搜索
查看: 1988|回復(fù): 2
收起左側(cè)

創(chuàng)龍基于ZYNQ的CameraLink圖像采集與邊緣檢測開發(fā)詳解

[復(fù)制鏈接]

678

主題

902

帖子

8293

積分

高級會員

Rank: 5Rank: 5

積分
8293
跳轉(zhuǎn)到指定樓層
樓主
發(fā)表于 2020-9-17 09:42:05 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
1.案例說明
  • PL端接入CameraLink相機,通過Base模式采集圖像(1280*1024),然后通過VDMA緩存到PS端DDR。
  • 使用AXI4-Stream Switch IP核將圖像復(fù)分成兩路,一路用于邊緣檢測處理(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安裝教程》文檔,導(dǎo)入IP核。


成功導(dǎo)入后,點擊View License Status可以查看新添加的IP核license如下圖。



4.Vivado工程說明
參照創(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設(shè)備樹及動態(tài)加載PL程序和設(shè)備樹》文檔,生成設(shè)備樹,然后將編譯好的dtbo文件拷貝到文件系統(tǒng)"lib/firmware"目錄下。
Target# mkdir -p /lib/firmware/



HDMI OUT芯片接的是PS端的I2C,需要加載PS端設(shè)備樹,加載成功后如下圖所示。
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端程序和設(shè)備樹?梢钥吹紸XI UART對應(yīng)的節(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 //設(shè)置高閾值為0xff
Target#devmem 0x43c000bc w 0xa0 //設(shè)置低閾值為0xa0



設(shè)置顏色反轉(zhuǎn):
Target#devmem 0x43c000c4 w 1  //0xc4寄存器設(shè)置為1,邊緣為白色,若為0;邊緣為黑色



嵌入式DSP、ARM、FPGA多核技術(shù)開發(fā),學(xué)習(xí)資料下載:http://site.tronlong.com/pfdownload
回復(fù)

使用道具 舉報

發(fā)表回復(fù)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則


聯(lián)系客服 關(guān)注微信 下載APP 返回頂部 返回列表