APP下载

基于无线C/S模式的嵌入式图像采集系统设计

2016-11-17李江波马春庭陈志伟

计算机测量与控制 2016年9期
关键词:嵌入式客户端无线

李江波,马春庭,杨 帆,陈志伟

(军械工程学院,石家庄 050000)



基于无线C/S模式的嵌入式图像采集系统设计

李江波,马春庭,杨 帆,陈志伟

(军械工程学院,石家庄 050000)

为增加视频监控的多样性,设计并实现了一种基于C/S模式的嵌入式无线视频监控系统;该系统以A20-ArmPC一体板作为服务器,以UVC图像传感器作为视频采集设备,通过无线网络传输视频数据,最后以PC作为客户端接收数据并予以显示;结果证明本设计稳定可靠,视频清晰流畅,在视频监控领域具有推广和使用价值。

嵌入式;图像采集;C/S;A20;UVC;WIFI

0 引言

目前视频监控应用已经渗透到了人们工作和生活的方方面面,被用来收集数据和监测可疑人物、事件和行为。但是,传统的固定式监控系统存在主观性大,有视觉盲区,安全性差,人力成本高等诸多问题,在监控的有效性和安全性上不能满足现代社会对监控系统日益提高的功能和性能要求[1]。因此研究具有成本低、灵活性强、图像质量高的嵌入式视频监控系统是非常必要的[2]。

本文设计了一种基于无线C/S模式的嵌入式图像采集系统,以嵌入式平台作为服务器将视频数据通过无线网络发送到客户端进行显示,实现视频监控的低成本和高灵活性。

1 系统总体设计

本系统包括基于嵌入式Linux系统的服务器和基于PC的客户端[3]两个部分,采用C/S设计模式(如图1)。

图1 系统结构框图

2 服务器设计

服务器负责采集和发送MJPEG格式的视频数据,以全志双核A20-ArmPC作为嵌入式平台,以UVC图像传感器OV5640AF作为视频采集模块,以USB无线网卡作为无线传输模块,应用软件采用Qt编写[4-5]。

2.1 服务器硬件设计

嵌入式开发是一项系统工程,嵌入式系统厂商不仅要提供嵌入式软硬件系统本身,还须提供强大的硬件开发工具和软件包支持。考虑到基于ARM Cortex-A7和Mali400mp2 GPU架构的全志双核A20应用处理器,成本低、功耗小、性能优良,拥有强大视频处理能力,并且视美泰为A20开发了完整的应用平台解决方案ArmPC。A20-ArmPC板卡集多媒体解码、液晶驱动、WIFI、摄像头等多功能于一体,支持绝大部分当前流行的视频及图片格式解码,双8位的LVDS驱动可以驱动各种TFT LCD显示屏。基于以上特点,本设计选用A20-ArmPC一体板作为嵌入式平台。

服务器硬件结构如图2。

图2 服务器硬件结构图

2.1.1 应用处理器模块

移动嵌入式图像采集系统的服务器部分核心部件即是应用处理器模块,负责视频数据的采集,并经WIFI网络发送MJPEG格式的数据至客户端。

2.1.2 视频采集模块

视频采集模块采用CMOS图像传感器OV5640AF,由OmniVision公司生产,500 W像素,自动调焦,工作电压低,拥有标准的SCCB接口,支持SXGA、VGA等多种分辨率输出,适用于嵌入式应用。该模块符合UVC规格,可直连到A20-ArmPC板的USB接口,能够输出MJPEG格式的视频数据。用户可通过软件控制图像质量、数据格式和传输方式。

2.1.3 无线传输模块

视频传输采用RT3070-USB型号的WIFI模块,可直连到A20-ArmPC板的USB接口,它支持IEEE 802.11b/g/n协议,WPA2加密,最大速率320 Mbps,能够满足视频传输的要求。

2.2 服务器软件设计

服务器的软件设计包括嵌入式软件平台的搭建以及视频采集和传输程序的设计。服务器的嵌入式操作系统为运行其上的应用软件提供平台,在该平台上应用软件将CMOS图像传感器发出的MJPEG格式视频数据接收并做适当处理,之后无线发送至客户端。

2.2.1 嵌入式软件平台搭建

嵌入式操作系统为应用程序的运行提供系统级的支持,包括u-boot和Linux系统内核的裁剪,以及根文件系统的制作。由于A20-ArmPC板卡厂商已经将嵌入式软件平台搭建的详细方法随板卡一起发布,故而只须根据说明文档对内核进行适当的裁剪,保留UVC驱动模块及WIFI驱动模块,删除其他功能模块,最后生成镜像文件(本文为sun7i_dragonboard_wing-k10x6.img),将其烧写到板卡上即可。具体方法请看说明文档,这里不再赘述。

2.2.2 视频采集程序设计

视频采集模块符合UVC协议,故而由CMOS图像传感器OV5640AF产生的视频数据可以经USB接口传输至A20-ArmPC板卡,两者之间通过V4L2[6-7]接口进行数据与命令的传输。

V4L2(Video4Linux2)是V4L的改进版,V4L(Video4Linux)是Linux内核中关于视频设备的系统接口,包括Linux内核关于音视频设备的驱动架构以及在音视频设备方面为应用程序提供的编程接口(API)。V4L2规范可以支持多种设备,是针对UVC设备的编程框架,它将所有符合UVC协议的视频采集设备的驱动程序纳入管理,通过一系列的回调函数来实现诸如设置图像传感器的分辨率、帧频、压缩格式和图像参数等功能,也能够实现对静态图像或者音、视频数据的捕获。

V4L2操作简单来说即是打开设备,关闭设备,以及中间过程的ioctl()操作。使用V4L2接口实现视频采集的基本顺序如下。

1)打开设备:

使用open()打开/dev下的video设备文件,本文为/dev/video0。

2)初始化设备:

初始化过程比较复杂,其中包含了一系列参数的配置,这部分内容网上有详细介绍,这里只对重点部分进行简要描述。

(1)使用VIDIOC_QUERYCAP命令获得当前设备的各个属性,查看设备对各项功能的支持程度。之后根据应用程序的功能要求对设备参数进行一系列的设置。

(2)获得设备对Image Cropping(图像的取景范围)和Scaling(图片的比例缩放)的支持,这项功能通过VIDIOC_G_CROP和VIDIOC_S_CROP实现。

(3)获得设备支持的视频格式并根据需要进行设置,本文设置视频输出格式为MJPEG。这项功能通过VIDIOC_G_FMT和VIDIOC_S_FMT来实现。

注意:在设备的初始化过程中,第一个调用VIDIOC_S_FMT的文件描述符会打开一个逻辑流,此时其他文件描述符对该设备的操作是被禁止的。虽然Linux中一个设备文件可以被多个程序打开,但只允许一个程序与驱动进行数据交换。

(4)根据需要选择I/O模式

有两种模式可供选择:读写模式(Read/Write)和流模式(stream)。读写模式需要复制数据,耗时过长,不用。流模式分为两种方式,一种是内存映射方式,这种方式对视频数据只需要进行指针的交换,但是分配缓冲区时需要分配真实的物理内存,操作比较麻烦;另一种是用户空间指针方式,这是一种集合了读写模式与内存映射方式优点的方法,缓冲区可以由应用程序申请,也不需要分配真实的物理内存,虚拟内存或是共享内存都可以做为缓冲区。

综合考虑,本文选择stream模式下的用户空间指针方式。这项功能通过VIDIOC_DQBUF和VIDIOC_QBUF实现,对于采集设备,当输入队列中的buffer充满数据后会自动变为输出队列,等待VIDIOC_DQBUF调用。当buffer内的数据被取出后重新调用VIDIOC_QBUF将buffer放进输入队列;对于显示设备,buffer内的数据被取出后自动变为输出队列。

3)采集数据:

当上述设备初始化过程完成之后,调用VIDIOC_QBUF将buffer全部加入输入队列,并调用VIDIOC_STREAMON开始采集视频数据。

4)循环采集数据:

采集视频数据开始以后,程序进入死循环,一旦有视频数据可读,则调用函数读取数据。本文中以线程的方式实现该功能,首先从输出队列中取出一个buffer,判断是否是应用程序申请的buffer,如果是,则读取buffer内的数据,最后将buffer放回输入队列。

5)关闭设备:

包括三项内容:停止采集视频数据、释放资源,最后使用close()关闭/dev下的video设备文件。

视频采集流程如图3。

图3 视频采集流程图

2.2.3 无线传输程序设计

视频数据经无线网络传输至客户端,鉴于WIFI技术已经非常成熟,IEEE 802.11n标准经物理层和MAC层的技术改进,传输速率从54 Mbps提升到320 Mbps。因此本文采用WIFI网络进行无线传输[8-9]。

服务器运行时,须有一个线程监听客户端的连接请求,客户端通过服务器的IP地址与设定的端口号,与服务器建立Socket连接,而后服务器将视频数据经无线网络发送至客户端,客户端从RTP包中取出视频数据进行显示,同时还可以进行回显、图像保存等操作,当停止监控时,客户端向服务器发送断开连接的命令。

传输过程用到RTP协议、RTCP协议、RTSP协议[10]:

RTP-实时传输协议,建立在UDP之上,使用UDP包传送数据。其优势在于能够为视频数据传输提供实时的技术支持。

RTCP-实时传输控制协议,能够实时地根据当前状况对传输过程进行调控。

RTSP-实时流协议,位于RTP协议和RTCP协议之上,使用TCP和RTP协议完成数据的传输。

无线传输流程如图4。

图4 无线传输流程图

注意:在实际应用中,服务器和客户端应首先接入WIFI网络,而当前WIFI网络普遍使用WPA2加密,故而须运用wpa_supplicant工具,修改配置文件wpa_supplicant.conf,在其中添加网络SSID和psk密码,之后运行wpa_supplicant命令才能接入WIFI网络。

3 客户端设计

PC客户端负责接收视频数据进行显示和保存,并与服务器进行命令交互。

客户端无线接收程序按照2.2.3节所述设计;显示和保存程序采用自由软件ffmpeg完成,ffmpeg可以运行音频和视频多种格式的录影、转换、流功能,包含libavcodec(音视频的解码库)和libavformat(音视频的格式转换库)。客户端的总体结构如图5。

图5 客户端结构框图

4 硬件实验结果

按照上述方法进行设计,由服务器采集视频数据经无线网络发送至客户端,服务器与客户端能够同步显示图像。

该程序以4个按键实现4种功能,分别是:视频显示、图像保存、视频录制、视频无线传输。输出分辨率为640×480,每秒12帧。

客户端程序界面以3个按键实现3种功能,分别是:视频数据接收与显示、图像保存、视频录制。输出分辨率为320×240,每秒12帧。

经测试,在分辨率为640×480的情况下,网络通畅时,本系统的平均传输速度为8 Mb/s,平均传输距离为15米,视频传输清晰流畅;网络繁忙时,平均传输速度为6 Mb/s,视频稍有卡顿。而在320×240的分辨率下,无论网络繁忙与否,视频传输均能做到清晰流畅。

通过以上的数据分析,本系统客户端程序设置接收分辨率为320×240,在此条件下该系统运行稳定,视频清晰流畅,能够满足日常视频监控要求。

5 结束语

本文以当前移动视频监控的需求为切入点,设计并实现了一种基于C/S模式的嵌入式无线视频监控系统,该系统以A20-ArmPC一体板作为服务器,以UVC图像传感器作为视频采集设备,通过无线网络传输视频数据,最后以PC作为客户端接收数据并予以显示。结果证明本设计稳定可靠,视频清晰流畅。以此为基础,在程序中添加特定功能的代码,可以实现该系统在视频监控领域的灵活应用,具有推广和使用价值。

[1] 吴 群,王 田,王汉武,等. 现代智能视频监控研究综述[J]. 计算机应用研究,2016(6):1-7.

[2] 陈恒鑫,林 威,张钦宇.基于Mjpg-streamer的移动视频监控系统设计[J]. 计算机测量与控制,2014(11):3597-3599.

[3] 刘 泽,陈 洋,陈 林. 基于cortexA8的V4L2视频采集驱动设计[J]. 电视技术,2015,23:106-109.

[4] 张素英,杨铁梅,叶 牛. 基于B/S架构的嵌入式网络视频监控系统[J]. 电脑开发与应用,2015(3):13-16.

[5] 汪 洋,李 垚,黄 鲁. 基于Qt和OpenCV的无线视频监控系统[J]. 微型机与应用,2015,10:67-69.

[6] 董国通,周子健. 基于嵌入式Linux的视频采集系统设计[J]. 仪表技术,2015,11:14-16.

[7] 卫建华,邓云兵,高 燚,等. 基于ARM的嵌入式视频采集系统的设计与实现[J]. 现代电子技术,2016(3):30-34.

[8] 朱 鸽,郑 杰,肖宇峰. 基于UVC协议的ROS视频监控系统设计[J]. 微型机与应用,2015,19:14-16.

[9] 叶学程,郑 霖. 嵌入式Linux的USB-Chirp无线网卡驱动设计[J]. 单片机与嵌入式系统应用,2014(7):53-56.

[10] 孙文华,何荣高. 基于USB接口的无线网卡驱动研究与实现[J]. 微型机与应用,2015,21:9-12.

Design of Embedded Image Acquisition System Based on Wireless C/S Mode

Li Jiangbo,Ma Chunting, Yang Fan,Chen Zhiwei

(Ordnance Engineering College,Shijiazhuang 050000,China)

To increase the variety of video surveillance, an embedded image acquisition system is designed and realized based on wireless C/S mode. This system chooses A20-ArmPC as a sever, and selects UVC image sensor as a video capture device, then transmits video data through wireless network. Finally, the system chooses PC as a customer to receive video data and display. The practice proofs that the operation of the system is stable and reliable, wireless video transmission is clear and smooth. The system possesses certain value on the spreading and use in the field of video surveillance.

embedded system; image acquisition; C/S; A20; UVC; WIFI

2016-04-18;

2016-05-24。

李江波(1985-),男,山东莱州人,硕士研究生,助理工程师,主要从事嵌入式系统方向的研究。

1671-4598(2016)09-0261-03

10.16526/j.cnki.11-4762/tp.2016.09.073

TP3

A

猜你喜欢

嵌入式客户端无线
《无线互联科技》征稿词(2021)
如何看待传统媒体新闻客户端的“断舍离”?
无线追踪3
基于ARM的无线WiFi插排的设计
县级台在突发事件报道中如何应用手机客户端
孵化垂直频道:新闻客户端新策略
大枢纽 云平台 客户端——中央人民广播电台的探索之路
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
ADF7021-N在无线寻呼发射系统中的应用