威视锐ZYNQ开发板-ZingSK-USB摄像头视频采集与QT显示存储
[复制链接]
一、概述 此文档介绍了基于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
|