基于OV2640模块的网络视频监控系统设计*
2016-01-26熊雪艳梁光胜赖程鹏郝建红
熊雪艳,梁光胜,赖程鹏,郝建红
(华北电力大学 电气与电子工程学院,北京102206)
* 基金项目:国家级-基于微电子系统的高功率微波效应研究(61372050)。
熊雪艳,梁光胜,赖程鹏,郝建红
(华北电力大学 电气与电子工程学院,北京102206)
* 基金项目:国家级-基于微电子系统的高功率微波效应研究(61372050)。
摘要:基于OV2640摄像头模块设计了一种网络视频监控系统,由视频监控节点、服务器、PC客户端和安卓客户端组成。视频监控节点由STM32F407VE控制器、DP83848以太网模块、OV2640摄像头模块构成,控制器在程序中调用LwIP协议栈的RAW API,实现将TCP网络数据上传至服务器。PC客户端或安卓客户端通过网络登录到服务器后,即可获得实时监控视频。运行测试表明,系统具有视频质量好、占用网络带宽小、成本低、多平台和多终端监控的诸多优点。
关键词:视频监控;服务器;客户端;OV2640
引言
视频作为人类获得信息最直观有效的手段,在安防监控等领域应用非常广泛。近年来,随着物联网与移动互联网技术的飞速发展,视频监控也被广泛应用在智能家居等物联网应用系统中,因而对网络视频监控提出了更高的要求。物联网应用具有网络传输带宽小、终端设备多的特点,就需要网络视频监控系统在保证视频质量前提下,既减少带宽占用,又控制终端成本,因此,设计带宽占用少、成本低、多终端的网络视频监控系统就十分必要。本文基于STM32F407VE控制器、DP83848以太网模块、OV2640摄像头模块,设计了能与服务器通信的视频监控节点,利用C#语言设计了服务器端程序和客户端程序,采用Java语言设计了安卓手机客户端程序,从而完成了整个网络视频监控系统的设计。
1网络视频监控系统总体设计
图1 网络视频监控系统总体结构框图
网络视频监控系统总体结构框图如图1所示,由视频监控节点、服务器、PC客户端和安卓客户端组成。视频监控节点完成视频数据的实时采集处理,并通过以太网传输至服务器,PC客户端或安卓客户端通过网络登录到服务器后,可获得视频数据并显示。视频监控节点由STM32F407VE控制器、DP83848以太网模块、OV2640摄像头模块组成。OV2640摄像头模块将光学图像转化为数字信号,经STM32F407VE处理封装后,使用TCP协议通过互联网传输至服务器,完成视频信号的采集、处理和上传任务。
2网络视频监控系统硬件电路设计
2.1核心控制器的选择及其与外围模块的连接设计
本文选择意法半导体公司的STM32F407VE作为系统的核心控制器,与OV2640摄像头模块、DP83848以太网模块端口连接示意图如图2所示。
图2 控制器与外围模块的连接示意图
STM32F407VE通过I2C接口对OV2640进行配置与初始化,之后通过D0~D7共8位数据总线读取图像数据,PCLK为数据同步时钟,VSYNC为帧同步时钟。STM32F407VE通过简化媒体独立接口RMII(Reduced Medium-Independent Interface)连接到以太网PHY控制芯片DP83848,继而连接到局域网中。
2.2OV2640摄像头模块电路设计
OV2640摄像头模块具有完善的图像采集和处理功能,其图像传感器是低压CMOS器件,通过串行总线(SCCB)接口的控制,可配置多种图像大小和多种数据输出格式,其最高分辨率为1600×1200,输出帧率为15 fps以上。
OV2640可配置为JPEG格式图片数据输出,在320×240分辨率下,JPEG格式图片大小为4~7 KB,以10 fps速率输出图像时,其数据量也仅为40~70 KB/s,视频图像质量好,占用网络带宽小。
OV2640摄像头模块电路原理图如图3所示。OV2640的XCLK时钟输入来自24 MHz有源晶振,电源部分由DC-DC稳压芯片和电源滤波电路组成,采用两片DC-DC稳压芯片将3.3 V直流电源分别稳压至1.5 V和2.8 V。3.3 V、2.8 V、1.5 V 分别提供给OV2640的数字视频接口电源(推荐的电压范围为1.71~3.3 V)、模拟电路电源(推荐的电压范围为2.5~3.0 V)和核心传感器电源(推荐的电压范围为1.24~1.56 V)。
图3 OV2640摄像头模块电路原理图
OV2640图像数据输出时序如图4所示。只有当HREF信号为高电平时,在PCLK信号的上升沿或下降沿(通过寄存器可配置)读取的8位数据才是有效数据,因而电路中将PCLK信号与HREF信号经过与非门SN74LVC1G00之后输出到控制器。控制器只需在与非门输出信号的上升沿或下降沿时读取数据,而无需考虑数据的有效性。
图4 OV2640图像数据输出时序
2.3DP83848 以太网模块电路设计
DP83848以太网模块电路原理图略——编者注。STM32F407VE提供了用于以太网通信的媒体访问控制器MAC(Media Access Controler),具有媒体独立接口MII和简化媒体独立接口RMII。本文设计的网络视频监控系统使用了RMII接口与以太网PHY控制芯片DP83848连接,DP83848是美国国家半导体公司的单路10/100 Mbps以太网收发器,其时钟源由50 MHz有源晶振提供。
3网络视频监控系统软件设计
3.1STM32F407VE控制器程序设计
STM32F407VE控制器通过8位数据总线从OV2640获得图像数据,通过调用LwIP协议栈接口,以TCP客户端方式连接到服务器,并将图像数据上传至服务器。程序流程图如图5所示。
图5 STM32F407VE控制器程序流程图
程序调用LwIP协议栈的RAW API,实现TCP网络数据传输基本流程如下:
tcp_new(); //建立TCP控制块
tcp_connect(); //连接到远程主机,指定建立连接后调用的回调
//函数
tcp_recv(); //指定接收到新数据时调用的回调函数,可在回
//调函数中对接收到的数据做处理
tcp_write(); //将数据放入发送队列,由内核决定发送
tcp_output(); //发送还未发送的数据
3.2服务器程序设计
服务器程序使用C#语言多线程编程,服务器程序接收到视频监控节点传输的图像字节流数据,根据JPEG包头(0xFF,0xD8)和包尾(0xFF,0xD9)分割数据流成图片帧,JPEG格式图片的包头和包尾原始数据如图6所示。
图6 JPEG格式图像包头和包尾原始数据
获得的JPEG图片在程序界面中的PictureBox控件上实时更新显示,形成视频。若同时有其他PC客户端或者安卓客户端登录到服务器,服务器可将视频数据转发给这些客户端。服务器程序主线程流程图如图7所示,TCP监听线程流程图如图8所示。
图7 服务器程序主线程流程图
图8 TCP监听线程流程图
3.3PC客户端和安卓客户端程序设计
PC客户端和安卓客户端采用与服务器相同的通信、数据分割、视频显示原理,分别使用C#语言和Java语言进行多线程编程,客户端通过账号密码登录到服务器之后,便可以接收服务器的视频数据并在本地显示。
4网络视频监控系统运行测试
开启服务器程序之后,单击Start Server按钮,开启网络视频服务,打开网络视频监控节点电源,即可在服务器程序界面看到实时视频和当前数据传输速率与图像帧率,如图9所示。
图9 服务器端程序运行测试界面
开启PC客户端,输入服务器IP地址、端口号、帐号及密码之后,单击Login按钮即可登录到服务器,实时显示监控视频,如图10所示。
图10 PC客户端运行测试界面
手机通过WiFi连接至互联网,打开客户端,输入服务器IP地址、端口号、帐号及密码之后,单击Login按钮即可登录到服务器,实时显示监控视频,如图11所示。
图11 安卓客户端运行测试界面
结语
经过运行测试,所设计的网络视频监控系统具有以下几个特点:第一,能够长期稳定运行,单个视频监控节点产生的视频数据流量为40~70 KB/s,不仅视频质量好,而且占用网络带宽小;第二,所用核心控制器和图像传感器成本低,可大规模架设;第三,在PC和安卓手机上可实现多平台、多终端监控,在物联网和移动互联网中具有很大应用空间。
参考文献
[1] 郭耸,洪炳镕,陈凤东.基于嵌入式Linux和Web服务器的网络视频监控系统[J].哈尔滨商业大学学报:自然科学版,2005(6):736-738.
[2] 程磊,刘波,徐建省,等.基于OV2640的微型胶囊内窥镜系统设计[J].传感器与微系统,2014(2):73-76.
[3] 裘英,王库.基于RTP协议的网络视频监控系统的实现[J].微计算机应用,2006(4):436-439.
[4] 贺秋燕.一种网络视频监控系统的研究与实现[D].广州:华南理工大学,2012.
[5] 李飞霞.基于Android的移动视频监控系统的设计与实现[D].成都:电子科技大学,2013.
[6] 廖义奎.ARM Cortex-M4嵌入式实战开发精解—基于STM32F4[M].北京:北京航空航天大学出版社,2013:381-382.
熊雪艳(硕士研究生),研究方向为智能控制、嵌入式系统与物联网技术应用; 梁光胜(副教授),主要从事嵌入式系统与智能控制、集成电路及系统芯片设计与应用等的研究;郝建红(教授),主要从事高功率微波理论与应用、非线性算法控制的研究。
Xiong Xueyan,Liang Guangsheng,Lai Chengpeng,Hao Jianhong
(College of Electrical and Electronic Engineering,North China Electric Power University,Beijing 102206,China)
Abstract:A network video surveillance system based on OV2640 camera module is designed,which consists of the video surveillance node,the server,the PC client and the Android client.The video surveillance node contains the STM32F407VE controller,DP83848 Ethernet module,OV2640 camera module.The controller uploads TCP network data to the server by calling RAW API of LwIP stack in the program.The PC client or Android client obtains the real-time surveillance video after logging into the server.The operation test indicates that the system has many advantages such as good video quality,low bandwidth,low cost,multi-platform and multi-terminal monitoring.
Key words:video surveillance;server;client;OV2640
收稿日期:(责任编辑:薛士然2015-06-22)
中图分类号:TP393
文献标识码:A