[讨论] TMS320C6678 ZYNQ开发手册之camera_edge_d
589 查看
0 回复
 楼主 | 发布于 2021-05-31 | 只看楼主
分享到:

 TMS320C6678 ZYNQ的开发手册详细资料将围绕8大板块,分别有cameralink_loopback、sdi_capture_display、fmc_tw2867_display、dual_camera_display、hdmi_edge_display和cameralink_display、等视频案例,本期推文主要讲述的是首次新增的camera_edge_display视频案例讲解步骤,其中以创龙科技基于TI TMS320C6678 + Xilinx Zynq-7045的高速多路高清视频采集处理平台,其采用DSP+FPGA+ARM架构,可完美满足目标追踪关键指标,故此成为本期讲解实例。接下来,让我们一起往下看。

1 案例功能

案例功能:PL端通过Video In to AXI4-Stream IP核采集摄像头视频,摄像头默认输出的视频分辨率为752x480@60,并通过AXI VDMA IP核将视频缓存到PS端DDR中,再通过AXI4-Stream Broadcaster IP核将视频复制成两路,一路用于Sobel(边缘检测)算法处理,另一路不作处理,然后通过Video Mixer IP核将两路视频进行叠加显示。

 

图 1 程序功能框图

 

2 操作说明

将MT9V034摄像头接到评估板CAMERA1接口,将HDMI显示屏通过HDMI数据线连接至评估板HDMI OUT接口。

 

将本案例的动态设备树镜像文件pl.dtbo和PL端.bin格式可执行文件复制到"/lib/firmware/"目录下,并将PL端可执行文件重命名为system_wrapper.bin,然后执行如下命令加载设备树文件和PL端可执行文件。

Target# mount -t configfs configfs /configfs

Target# mkdir /configfs/device-tree/overlays/camera

Target# echo pl.dtbo > /configfs/device-tree/overlays/camera/path

 

将案例"sw\linux_system\image\"目录下所有脚本文件拷贝至评估板文件系统,并执行如下命令,即可看到HDMI显示屏输出两路图像。

Target# ./mt9v034_init.sh

Target# ./axi_vdma_init.sh

Target# ./sobel_filter_init.sh

Target# ./mixer_init.sh

Target# ./vpss_init.sh

Target# ./sil9022_i2c_1080p.sh

 

 

执行如下命令增大阈值,此时图像边缘将会增多,图像线条将会变粗。

Target# devmem 0x43c000b4 w 0xff //设置高阈值为0xff,默认为0xa0

Target# devmem 0x43c000bc w 0xa0 //设置低阈值为0xa0,默认为0x00

 

执行如下命令设置颜色反转。

Target# devmem 0x43c000c4 w 1 //设置为1,边缘为白色;设置为0,边缘为黑色

 

3 Vivado工程说明

点击BLOCK DESIGN开发界面下的"Address Editor"选项,可查看IP核分配的地址,PS端可通过对应地址对IP核进行控制。

 

4 IP核配置

4.1 Video In to AXI4-Stream IP核

Video In to AXI4-Stream IP核可实现视频采集功能。

Video In to AXI4-Stream IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg043_v_vid_in_axi4s.pdf》。本案例使用IP核采集一路摄像头视频,Video Format配置为Mono/Sensor,Pixels Per Clock配置为1,色彩数据位宽为8bit。

 

4.2 AXI VDMA IP核

本案例使用AXI VDMA IP核进行视频数据缓存。

AXI VDMA(AXI Video Direct Memory Access) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg020_axi_vdma.pdf》。AXI VDMA IP核中的S2MM将视频传到DDR中,MM2S从DDR中获取视频。本案例IP核的Frame Buffers为4,Stream Data Width为8。

 

配置VDMA为读写跟随模式。

 

4.3 AXI4-Stream Broadcaster IP核

AXI4-Stream Broadcaster IP核将视频复制成两路。

AXI4-Stream Broadcaster IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《
pg085-axi4stream-infrastructure.pdf》,具体配置如下。

 

4.4 VPSS IP核

VPSS IP核可实现视频缩放、去交错、RGB/YUV转换、YUV420/422/444转换等功能,本案例使用YUV444转YUV422功能。

VPSS(Video Processing Subsystem) IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg231-v-proc-ss.pdf》,具体配置如下。

 

4.5 Video Mixer IP核

Video Mixer IP核可对多路视频进行叠加并输出。

Video Mixer IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg243-v-mix-v2.0.pdf》。本案例通过IP核将两路视频叠加到1920 x 1080的视频中,再输出至HDMI显示屏进行显示,具体配置如下。

 

 

 

4.6 AXI IIC IP核

AXI IIC IP核可对摄像头进行配置。

AXI IIC IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《pg090-axi-iic.pdf》,具体配置如下。

 

4.7 Image_filter IP核

Image_filter IP核可实现图像Sobel(边缘检测)算法处理功能。

Image_filter IP核开发文档为产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《
ug925-zynq-zc702-base-trd.pdf》。Image_filter IP核源码基于产品资料“6-开发参考资料\Xilinx官方参考文档\”目录下的《xapp1167.pdf》文档中的Sobel(边缘检测)算法处理案例进行开发,对应的HLS源码位于产品资料“4-软件资料\Demo\ZYNQ_Demo\FPGA-HLS-demos\sobel_demo\”目录下。

 

 

 

相关寄存器说明如下,寄存器定义可查看工程ximage_filter_hw.h文件。

(1) 寄存器0x00:控制和状态寄存器,可控制IP核的停止和启动。

(2) 寄存器0x14:设置图像的行数,最大支持1920 x 1080。

(3) 寄存器0x1c:设置图像的列数。

(4) 寄存器0xb4:Sobel滤波的高阈值。

(5) 寄存器0xbc:Sobel滤波的低阈值。

(6) 寄存器0xc4:反转Sobel滤波器的输出,即黑白反转。

5 IP核License申请

如需重新编译工程或打开Video Mixer IP核,需在Xilinx官网申请Video Mixer IP核的免费License,并将其正确导入。License申请与导入方法,请查阅调试工具安装文档相关章节,其他IP核无需License。

 

成功导入后,可在View License Status窗口发现新添加的License。

(0 ) (0 )

DSP处理器 FPGA开发板  嵌入式培训 嵌入式学习 嵌入式开发

回复 举报
  • 发表回复
    0/3000





    举报

    请选择举报类别

    • 广告垃圾
    • 违规内容
    • 恶意灌水
    • 重复发帖

    全部板块

    返回顶部