嵌入式Linux技术在网络监控系统中的应用探析
2013-10-24郑普亮
郑普亮
(西安建筑科技大学)
0 引言
随着生活水平的不断提高,人们对于家庭住宅的安全意识也不断提高,视频监控系统正是计算机技术与传统建筑产业相结合的产物.作为安全防范系统的重要组成部分,视频监控系统是一种具有较强防范能力的综合性系统.视频监控系统以其直观性、易用性、信息处理量大而频繁应用于多种场合,在信息数字化的今天,受到越来越多的重视和关注.随着现代电子计算机科学技术在网络带宽、计算机处理能力和存储容量等能力上突飞猛进,各种视频信息处理技术的发明,视频监控技术发展迅猛,特别是嵌入式技术的发展,基于嵌入式技术的远程网络视频监控,取代传统的视频监控系统,在智能化、可靠性和节能上都有了极大提升,而且信息处理快,质量高.
1 监控系统总体设计
1.1 设计目标
该系统拟针对智能型住宅环境进行监控,通过安装在住宅各个区域的网络摄像机采集图像信息,一旦某个区域内有动作发生,服务器便开始采集图像信息,通过局域网或因特网用户即可在智能终端(如智能手机等)设备上查看发生动作区域内的摄像机的状况,也可以查看指定网络摄像机的实时图像和历史图像.该系统需要满足以下几个功能:
(1)网络通信.实现与摄像机的网络通信,包括局域网和因特网.
(2)图像数据采集.实现图像信息的采集、处理、传输、存储等操作,包括图像存储、图像信息分析等.
(3)历史图像数据的维护.实现对历史图像的处理,对设定时间段内的图像进行索引处理,对超出时间段的图像进行备份和删除处理.
(4)前端表示画面.实现系统与用户的交互,通过浏览器发送指令,系统处理之后能够给出相应图像(实时图像或历史图像),前端操作简易,图像显示清晰且流畅.
1.2 技术路线
该系统的硬件核心是ARM9系列微处理器,操作系统为嵌入式 Linux系统,构建嵌入式Linux系统服务器来实现对网络摄像机的管理,控制网络摄像机采集图像信息,将处理后的信息通过系统内置的Apache Web服务器,向用户提供可以实时查看图像及历史图像回放的功能.系统的整体为 B/S结构,系统构成图如图1所示[1].
图1 系统构成图
1.3 硬件设计
该系统的主要硬件模块包括:基于ARMv4T体系架构的 ARM920T系列处理器、FLASH、SD-RAM、电源模块、以太网控制器、RS232C等.具体硬件构造如图 2所示.处理器采用S3C2410处理器,是一个内含 ARM920T处理器核心,0.18um制造工艺、32位RISC微控制器,支持从该系统采用的NAND Flash启动[2].
图2 硬件物理构造图
1.4 软件设计
嵌入式操作系统是整个嵌入式系统的核心,采用B/S结构,构建嵌入式系统作为服务端,用Web浏览器作为系统的客户端界面.该系统采用组件化的设计思想,应用对象技术于系统设计,进一步的抽象化了面向对象的程序设计的实现过程[3].可以通过不断的添加功能组件来扩展系统的其他功能,同时每个组件也都可以进行修改以删除或添加相应的功能,以满足客户提出的不同需求以及不同客户提出的需求,因此,此系统的扩展性很强,同时也具备进一步的二次开发和持续开发的可能性.系统的整体架构如图3所示.
图3 软件构造图
该系统的各个组件之间的通信采用不同的方式,而且进程与进程之间的通讯由各个组件内部提供,这样可以达到隐藏监控系统内部通信方式的目的,更进一步的保护信息安全.其中:通过FIFO动态库接口来实现进程间消息传递;以Socket动态库接口来实现与网络摄像机的通信;以共享内存的方式来实现与CGI的通信;以文件的方式,实现图像信息的传递[4].
1.4.1 客户端软件功能介绍
Web/CGI模块的功能是解析用户通过Web浏览器发出的请求,根据请求由服务端相应的模块取得需要标识的数据,将取得的数据返回给浏览器.可以解析的请求包括网络摄像机基本信息、最新动作检测图像、最新动作图像的附加数据、实时快照图像、实时快照图像的附加信息、指定索引的历史图像、保存的历史图像数、网络摄像机的配置信息等.
网络摄像机管理模块的内部处理部分包括:初始化信息,终止信息和外部API消息的发送/接收处理.进程初始化包括处理包括:IPC资源的申请和初始化、根据配置文件更新共有内存、根据网络摄像机索引文件更新共有内存、打开管理用FIFO、生成网络摄像机监视进程等.终止信息包括关闭管理用FIFO和释放IPC资源等;当接收到外部API发送的信息时,判断消息类型,根据消息类型(分为两类:(1)实时图像请求;(2)网络摄像机动作通知)作对应的处理(对应两类消息的处理方式分别是:(1)检查网络摄像机ID值的范围,然后取得网络摄像机的实时图像,存入共有内存返回给 CGI调用者;(2)根据网络摄像机的IP地址在配置信息中查找网络摄像机的ID[5].生成对应 ID的网络摄像机的动作处理线程)后,向对应的外部返回信息(对应于两类消息的返回信息分别是:(1)实时图像;(2)OK).
网络摄像机管理模块的外部处理部分包括:①打开项目:需要先调用打开对象对应的函数以打开系统资源,才能使用网络摄像机管理对象提供的接口;②关闭项目:需要在结束使用网络摄像机对象提供的接口之后,调用关闭项目对应的函数关闭系统资源;③获取网络摄像机的配置信息:这个函数其中有一个OUT型参数,是一个结构体指针,其中包含网络摄像机的编号、网络摄像机的类型、网络摄像机的IP、网络摄像机认证情报、网络摄像机名称等字段,在调用成功的情况下,返回数值0;调用失败的情况下,返回数值-1;④获取网络摄像机的通信状态:这个函数其中有一个OUT型的无符号字符型参数,在调用成功的情况下,返回数值0;调用失败的情况,返回-1;⑤获取网络摄像机的最新动作图像:这个函数拥有4个参数,分别是网络摄像机的 ID、图像指针、图像的时间指针、图像的长度指针.在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1;⑥获取网络摄像机的历史图像,这个函数同样也有4个参数,分别是网络摄像机的ID、图像索引、图像的指针、图像的长度指针,在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1;⑦获取网络摄像机的历史图像张数,这个函数拥有2个参数,分别是网络摄像机的 ID和图像的张数指针,在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1;⑧获取网络摄像机的指定时间带的历史图像的张数,这个函数有3个参数,分别是网络摄像机的ID、开始时间、张数,在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1;⑨获取网络摄像机的实时图像,这个函数有3个参数,分别是网络摄像机的ID、图像指针和图像的长度,在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1;⑩获取网络摄像机的指定时间带的历史图像的张数,这个函数有2个参数,分别是网络摄像机的ID和图像附加信息结构体指针,在调用成功的情况下,返回数值0;在调用失败的情况下,返回数值-1.
1.4.2 客户端软件功能介绍
客户端采用浏览器的形式提供给客户,基本表示画面以 HTML5、CSS3、jQuery、Ajax、jQuery Mobile等开发,即可以满足智能终端的要求也能满足PC机的要求,实现了与平台的无关性[6].包括最新图像显示和历史图像查询,合理安排画面动作和布局,包括图片预览,画面切换,放大缩小等功能.
1.5 测试结果
为了及时发现在程序里的隐藏缺陷,分析原因,有针对性的对这些缺陷来进行修正,使系统达到一个相对稳定的状态,尽可能减少错误的发生,对系统的每一个组件涉及到的每一个项目都进行了一个相应的测试.这些测试中的主要项目是获取实时图像和获取历史图像这两个测试,测试过程中,均达到了预期的效果,很好地实现了既定的系统功能.根据测试结果得出结论,该系统相对稳定,基本上达到预期的效果,满足了客户的相应需求.
2 结论
针对视频监控在家庭领域应用的具体要求,提出了基于嵌入式Linux技术的视频监控方案,有机的结合了嵌入式技术、网络通信技术及智能监控技术,实现了一个简单易用、成本低廉、扩展性强的高效率嵌入式网络监控系统.为了保证了封闭和开放与效率之间的平衡,采用模块化来设计整个系统,各模块的选择和组合可以用来满足各种不同定制的需求,更有利于系统的移植和升级.通过对系统的各功能模块的全面测试,证明了该系统运行稳定可靠、操作方便,对网络监控在家庭住宅安全领域的广泛应用有着非常积极的意义.
[1] 徐叶,袁敏,李国军.嵌入式Web服务器远程监控系统的设计与实现[J].计算机与现代化,2013(2):125-126.
[2] 刘川来,范坤,张俊晶.基于嵌入式以太网的热电厂数据监控系统的设计[J].青岛科技大学学报:自然科学版,2013(1):278-279.
[3] 张文明.电力企业机房环境监控在嵌入式技术方面的运用[J].电子世界,2012(24):65-66.
[4] 王晓红.基于嵌入式Web服务器的远程家居监控系统[J].电脑开发与应用,2012(11):137-138.
[5] 田洪生.基于嵌入式Linux的网络视频监控系统的研究[J].知识经济,2012(22):361-362.
[6] 周涛.基于嵌入式平台的采油现场终端监控系统[J].油气田地面工程,2012(11):289-290.