威视锐ZYNQ开发板-ZingSK-USB摄像头视频采集与QT显示存储

2020-02-28 18:32发布

一、概述
此文档介绍了基于ZingSK运行USB摄像头视频采集与QT显示存储的必要的步骤。此文档所有命令均是在Ubuntu12.04 x86_32操作系统下完成。

硬件平台:ZingSK开发套件
开发环境:Windows7-32位、VMware 9.0 + Ubuntu 12.04、arm- xilinx- linux-gnueabi交叉编译环境
嵌入式Linux: zynq_base_trd_14.3(基于ZingSK修改)

USB摄像头视频采集例程 运行需要一系列二进制文件如下表所示:

文件名
描述

BOOT.BIN
由EDK bootgen工具创建,包含 FSBL (First Stage Boot Loader), FPGA bit-stream, U-Boot(基于zynq_base_trd_14.3构建)
uImage
Linux kernel
devicetree.dtb
Device Tree Blob
uramdisk.image.gz
根文件系统
init.sh
挂载Qt运行库,运行camera-qt
qt_lib.img
Qt运行库(4.7.3)
camera_qt
USB-camera例程
表1-1

二、软件设计
V4L2是Linux环境下开发视频采集设备驱动程序的一套规范(API),它为驱动程序的编写提供统一的接口,并将所有的视频采集设备的驱动程序都纳入其的管理之中。
常用的IOCTL接口命令在include/linux/videodev2.h中定义

VIDIOC_REQBUFS        //分配内存
        VIDIOC_QUERYBUF       //把VIDIOC_REQBUFS中分配的数据缓存转换成物理地址
        VIDIOC_QUERYCAP        //查询驱动功能
        VIDIOC_ENUM_FMT        //获取当前驱动支持的视频格式
        VIDIOC_S_FMT        //设置当前驱动的频捕获格式
        VIDIOC_G_FMT        //读取当前驱动的频捕获格式
        VIDIOC_TRY_FMT        //验证当前驱动的显示格式
        VIDIOC_CROPCAP        //查询驱动的修剪能力
        VIDIOC_S_CROP        //设置视频信号的矩形边框
        VIDIOC_G_CROP        //读取视频信号的矩形边框
        VIDIOC_QBUF        //把数据从缓存中读取出来
        VIDIOC_DQBUF        //把数据放回缓存队列
        VIDIOC_STREAMON        //开始视频显示函数
        VIDIOC_STREAMOFF        //结束视频显示函数
        VIDIOC_QUERYSTD         //检查当前视频设备支持的标准,例如PAL或NTSC。

软件流程图:


软件GUI:

三、快速开始
在ZingSK上启动ZingSK运行USB摄像头视频采集与QT显示存储例程需要一下几步:
· 格式化TF并将表1-1中所有文件拷贝到其中。
· 将TF卡插入ZingSK的TF卡插槽中。
· 确保ZingSK板卡跳线正确设置为TF卡启动模式。
6V电源、USB-UART连接线、7寸LCD显示屏 USB-hub
以下分步介绍:
开发板连接6 V电源(JP1)并连接7寸LCD显示屏,不要打开电源。

图 1-1

将包含了USB摄像头视频采集与QT显示存储例程二进制文件的TF闪存卡,插入到ZingSK开发板的TF卡插槽内。

图 1-2

用USB Type-A -USB Mini-B 电缆连接开发板UART与电脑.

图 1-3
连接USB-hub、鼠标、摄像头

图1-4
使用“设备管理器”,以确定COM端口。 打开一个串口调试程序,配置为115200/8/n/1/n。


图 1-5


图 1-6

打开电源开关(SP1) ,开发板上电运行。

图 1-7

在串口调试工具的窗口将会显示Linux的引导过程。


图 1-8

约半分钟左右,显示器上将会出现Qt界面,可以通过连接鼠标操作程序。


图 1-9
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。