基于STM32的以太网网络视频监控系统
2017-08-11方立军陈卫松章良玉王康景
方立军,陈卫松,章良玉,王康景
(安徽师范大学 物理与电子信息学院,安徽 芜湖 241000)
基于STM32的以太网网络视频监控系统
方立军,陈卫松,章良玉,王康景
(安徽师范大学 物理与电子信息学院,安徽 芜湖 241000)
基于STM32F407芯片、LAN8720A模块以及OV2640摄像头模块,设计了一种以太网网络视频监控系统。该视频监控系统使用UCOS-Ⅱ系统,以及LwIP协议栈,利用OV2640摄像头模块采集数据。在UCOS-Ⅱ系统的调度下,使用LwIP协议栈,利用TCP/IP协议,将采集到的数据上传到PC客户端,PC端能够实时地监控。相比ZigBee传输技术而言,利用网络传输可大幅度提高数据传输的带宽,可以实现监控视频的实时传输以及高清画面的传输。
以太网;视频监控;STM32
0 引言
视频监控在我国的发展已有20多年的历史,经历了3个时代。第一代:模拟时代,视频以模拟信号方式使用同轴电缆进行传输,并进行模拟处理;第二代:半数字时代,视频以模拟信号的方式进行传输,由数字存贮器进行存储;第三代:全数字时代,视频从前端图像采集设备输出时即转换为数字信号,并以网络为传输媒介,基于TCP/IP协议,采用流媒体技术实现视频在网上的多路复用传输[1]。网络视频监控有很大的应用前景,在楼宇的视频监控及道路交通的实时监控方面得到广泛的应用[2]。
1 系统总体设计
1.1 系统构成
本远程监控系统利用OV2640摄像头模块采集模拟图像信息后,将其转化为数字图像信息,得到数字图像信息后,经过压缩将图像信息输出。压缩算法是采用OV2640内部硬件压缩,通过配置寄存器使输出的格式为JPEG格式,采用ST公司的嵌入式处理芯片STM32F407芯片,以UCOS-II操作系统为基础对图像进行传输。其中网络协议是利用LwIP协议栈将图像信息上传,它是将TCP-IP协议写成了完整的协议栈,提供给用户使用。对于不同的处理器,只需将其裁剪配置成适合处理器的格式,然后通过路由器将数据转发至电脑客户端,电脑客户端将数据解码成图像信息图并显示出来[3]。该系统可以在多个电脑终端同时运行,实现实时传输,系统的基本逻辑框图如图1所示。
图1 系统的基本逻辑
1.2 硬件电路结构及工作原理
1.2.1 STM32F4最小系统
本文采用当前用途最广泛,使用频率最高的处理器——ST公司的STM32F4系列。区别于其他文章中的所用的处理器,也是这篇文章特色之一。STM32F4系列是基于高性能的ARM©CortexTM-M4F的32位RISC内核,工作频率高达168 MHz。Cortex-M4F核心功能支持所有ARM单精度数据处理指令和数据类型的单精度浮点单元(FPU)。它还实现了一套完整的DSP指令和内存保护单元(MPU),从而提高应用程序的安全性。此外,STM32F4还具有DCMI数字摄像头接口,此接口正是为了方便处理数字摄像头数据而设置的,基于以上优点本文选择STM32F4作为核心处理器[4]。
1.2.2 OV2640摄像头模块
OV2640模块具有完善的图像采集功能,具有200万的像素图像采集清晰,摄像头通过SCCB总线可对内部的寄存器进行配置,通常情况下采用RGB格式的输出,但RGB格式的输出要达到上百KB,采用对摄像头寄存器配置,使其输出的图像为JPEG格式。分辨率为1 600*1 200 bit,数据大小为2~3 KB,以15 fps的速率传输,数据量为30~45 KB, STM32F407系列具有高速嵌入式存储器(多达1 MB闪存,高达192 KB的SRAM),完全能够实现数据的存储和处理,数据的压缩量也相当大[5]。
为了保证摄像头输出数据的正确性,需要对摄像头寄存器进行操作,利用SCCB总线,将数据写入到摄像头中,当SCL为高电平期间SDA拉低,SCCB总线开始工作传输数据,当SDA高电平期间SCL拉低,表示数据写入完成结束数据传输,其时序图如图2所示[6]。
图2 SCCB时序图
摄像头输出时序如图3所示,图中VSYNC由低电平转变到高电平时,标志着一帧数据的开始,在HREF为高电平时,便可以接收有效的数据[7]。一帧数据为1 600*1 200 bit,采用边沿检测以及同步计数的方法便可以接收完整的视频图像数据。
图3 摄像头输出时序图
1.2.3 LAN8720A模块
LAN8720A具有高性能、小尺寸、低功耗的特点。10BASE-T / 100BASE-TX专门为当今消费电子产品、工业和企业应用而设计的收发器,模块使用25 MHz晶振。LAN8720A通过可变电压的RMII标准数字接口连接到MAC层和STM32F407进行数据交互,另一端通过变压器和RJ45相连,连接到路由器上[8]。其结构如图4所示。
图4 LAN8720A模块框图
2 系统软件设计
2.1 系统软件总体结构
系统的总体架构路线,如图5所示。 当硬件的初始化完成开启了UCOS系统开始运行,系统有2个线程任务,一个是数据图像采集,还有一个数据传送的任务。
当摄像头采集到一帧图像信息并产生中断时,在中断服务函数中将DMA停止掉,防止数据过多产生堆积,将采集的数据传输到内存中,判断所采集的数据压缩方法是否正确,如果正确就通过TCP服务器发送到路由器,这样一帧数据就发送完成,继续采集下一帧数据。2个任务在系统的支持下来回调度[9]。主函数如下:
Intmain()
{
GPIO_Configuration();∥ I/O口初始化
NVIC_Configuration(); ∥中断向量表初始化
Ethernet_Configuration(); ∥网卡初始化
if(OV2640_Init()) ∥摄像头初始化是否成功
{ printf("OV2640 ERR! ");
OV2640_FLAG=0;
}
else
{ printf("OV2640 OK! ");
OV2640_FLAG=1;
}
Video_init(); ∥图像传输初始化
OSInit(); ∥操作系统初始化
LWIP_Init(); ∥协议栈初始化
tcp_server_init();∥ TCP服务器初始化
OSStart(); ∥系统开始运行
}
2.2 UCOS-II系统设计
UCOS-II是一个实时操作系统内核,它仅仅包含了任务调度、任务管理、时间管理、内存管理以及任务间的通信和同步等基本功能。将UCOS-II移植进入STM32F407,进行裁剪配置,使之能够正常运行[10]。系统的操作流程如图6所示,首先对系统的所有变量初始化,然后便可创建任务,可以同时创建多个任务,交由任务管理器。再在此基础上,创建OV2460处理线程、video线程、AT指令线程、AT指令处理线程和TCP服务器线程,由任务调度管理,这样便可实现在不同的任务之间来回调度,实现多任务同时进行[11]。本系统设计中创建的5个任务分别为:
OSTaskCreate(tcp_ov2640_thread,(void*)0,(OS_STK*)&TCP_OV2640_TASK_STK[TCP_OV2640_STK_SIZE-1],TCP_OV2640_PRIO);∥创建OV2460处理线程
OSTaskCreate(tcp_video_thread,(void*)0,(OS_STK*)&TCP_VIDEO_TASK_STK[TCP_VIDEO_STK_SIZE-1],TCP_VIDEO_PRIO);∥创建video线程
OSTaskCreate(tcp_at_thread,(void*)0,(OS_STK*)&TCP_AT_TASK_STK[TCP_AT_STK_SIZE-1],TCP_AT_PRIO);∥创建AT指令线程
OSTaskCreate(at_deal_thread,(void*)0,(OS_STK*)&AT_DEAL_TASK_STK[AT_DEAL_STK_SIZE-1],AT_DEAL_PRIO); ∥创建AT指令处理线程
OSTaskCreate(tcp_server_thread,(void*)0,(OS_STK*)&TCPSERVER_TASK_STK[TCPSERVER_STK_SIZE-1],TCPSERVER_PRIO); ∥创建TCP服务器线程
其中创建OV2460处理线程是为了获得摄像头采集的图像信号,创建video线程是为了将采集的图像信号通过DMA传输到处理器内部进行处理,创建AT指令线程是为了检测上位机发送过来的AT指令,AT指令处理线程将检测到的AT指令转换为系统的响应,最后TCP服务器线程是完成图像信息的网络传输[12]。
图6 UCOS-II系统框图
2.3 LwIP协议栈的使用
LwIP是Light Weight (轻型)IP协议,有无操作系统的支持都可以运行。LwIP 实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用,它只需十几KB的RAM和40 KB左右的ROM就可以运行,这使LwIP协议栈适合在低端的嵌入式系统中使用。LwIP协议栈主要关注的是怎么样减少内存的使用和代码的大小,这样就可以让LwIP适用于资源有限的小型平台例如嵌入式系统[13]。为了简化处理过程和内存要求,LwIP对API进行直接裁减,可以不需要复制一些数据,丢弃一些无用的设置。完成对协议栈的配置就可以正常使用TCP服务器协议,将获得的数据上传[14]。
3 网络视频监控系统检测
将系统连接完成,程序编译完成烧录到开发板中,进行系统仿真,确保系统运行成功,打开电脑的上位机界面[15],输入服务器的IP地址,在路由器设置的界面查看出开发板的IP地址,本设计中的IP地址为192.168.2.101,端口号设置为5050,点击连接,点击获取视频,上位机就会显示所采集的图片信息,所获取的像素为200万像素,清晰度高,没有延时。系统运行稳定,出现如图7所示的界面。
图7 实物演示
经过测试运行,所设计的系统具有如下的特点:第一,网络视频监控对比传统的视频监控具有灵活性和异地性,即可以随时随地监控任何一个地方;第二,视频所占用的网络带宽较小,仅为30~45 KB/s,为单片机处理数据减轻的负荷;第三,比较于传统的模拟摄像头监控系统而言,数字摄像头监控系统得到的图像清晰,节省资源,可以构成复杂的传输网络,都得到了大大的提高。
4 结束语
本文实现了基于STM32的以太网网络视频监控系统,对摄像头驱动、图像压缩、LwIP协议栈以及UCOS操作系统进行了详细的阐述及分析,并通过实验结果很好地论证了系统的性能。网络视频监控系统的应用,不仅提高视频图像传输的可靠性,而且对视频传输的效率也有很大的提高。该方法提高了产品的质量,同时降低了产品设计和维护成本,对多种视频传输和监控系统等更多领域的应用与研究具有重要意义。
[1] 信师国,刘庆磊,刘全宾.网络视频监控系统现状和发展趋势[J].信息技术与信息化,2010(1):23-25.
[2] 李灵.基于STM32的家居环境监测和家电控制系统[D].杭州:杭州电子科技大学,2014.
[3] 姚高华.基于以太网的远程监控系统设计[D].广州:华南理工大学,2013.
[4] 陶杰,王欣. 基于STM32F407和OV7670的低端视频监控系统[J]. 单片机与嵌入式系统应用,2014,14(3):60-63.
[5] 李向东.数字视频监控系统的研究与实现[D].西安:长安大学,2008.
[6] 钟久和.基于fpga视频监控终端的设计与实现[D].成都:电子科技大学,2010.
[7] 王康景,陈卫松,方立军.一种基于FPGA的多路视频合成及传输方法[J]. 无线电通信技术,2017,43(1):44-46.
[8] 萧力华.智能视频监控系统分析与设计[J]. 企业技术开发月刊,2016,35(21):64-65.
[9] 寥义奎.ARM Cortex-M4嵌入式实战开发精解——基于stm32F4[M].北京:北京航空航天大学出版社,2013.
[10]刘火良,杨森.STM32库开发指南[M].北京:机械工业出版社,2013.
[11]李维,张卫强,闫光来.WiFi-Mesh网络视频监控系统的设计[J].无线电通信技术,2015,41(5):7-10.
[12]李可先.计算机智能视频监控系统技术研究[J].信息与电脑(理论版),2016(18):64-65.
[13]朱升林.嵌入式网络那些事:LwIP协议深度剖析与实战演练[M].北京:中国水利水电出版社,2012.
[14]刘朝辉,熊建文,吴先球.视频与数据联动采集与分析系统[J]. 华南师范大学学报(自然科学版),2016,48(2):124-128.
[15]伍俭.基于ARM的网络视频监控系统的研究与设计[D].成都:电子科技大学,2010.
Video Monitoring System of Ethernet Network Based on STM32
FANG Li-jun,CHEN Wei-song,ZHANG Liang-yu,WANG Kang-jing
(School of Physicsand Electronic Information,Anhui Normal University,Wuhu Anhui 241000,China)
This paper designs an Ethernet network video monitoring system based on STM32F407 chip,LAN8720A module and OV2640 camera module. The system uses UCOS-II system and LwIP protocol stack. The OV2640 camera module is used to collect the video data. Under the scheduling of the UCOS-II system,the collected data is uploaded to the PC client by using LwIP protocol stack and TCP / IP protocol. The PC can monitor in real time. Compared with the ZigBee transmission technology,the network transmission method can greatly improve the bandwidth of data transmissions,and achieve real-time transmission of monitoring video and high-definition pictures.
Ethernet; video monitoring; STM32
2017-06-09
国家自然科学基金项目(61401004);安徽省高校自然科学研究重点项目(KJ2015A092)
方立军(1995—),男,本科生,主要研究方向:电子信息工程。陈卫松(1973—),男,博士,副教授,主要研究方向:视频及音频信号处理。
10.3969/j.issn.1003-3114.2017.05.20
方立军,陈卫松,章良玉,等. 基于STM32的以太网网络视频监控系统[J].无线电通信技术,2017,43(5):91-94.
[FANG Lijun,CHEN Weisong,ZHANG Liangyu,et al. Video Monitoring System of Ethernet Network Based on STM32 [J]. Radio Communications Technology,2017,43(5):91-94.]
TP393
A
1003-3114(2017)05-91-4