Internet网络视频监控在嵌入式Linux下的解决方案

2019-07-13 03:22发布

                                来源:爱问科技网   作者: 摘 要:讨论了一种基于Internet视频监控在嵌入式系统中的解决方案,并介绍了这种嵌入式设备的硬、软件组成以及实现难点。通过这套设备,便可以利用终端机的网页浏览器访问、配置挂接其上的网络摄像头,从而达到重复利用Internet资源进行视频监控的目的。

  关键词:嵌入式Linux设备;互联网;网络摄像头
  
  随着Internet的不断普及,宽带日渐盛行,使得利用Internet资源进行多样化的开发与应用不再像以前那般遥不可及。本文讨论一种利用Internet资源进行视频监控的方案,对接入Internet的网络摄像头可通过互联网资源进行远程访问和监控。

  1可行性分析

  目前,传统监视设备在各个领域发挥着重要的作用,给人们提供很大的方便,但如果视频监控两地相距较远,则需要额外铺设或租用大量的传输线路,其代价非常高,如果能够利用Internet现有的网络资源进行监视,不仅范围可以到达全球各处,而且具有方便、可靠、价格低廉等优点,普通的家庭用户也可使用。

  嵌入式系统是这几年的热门话题,广泛应用于移动计算设备、网络设备、信息电器、工控设备、车载设备、娱乐设施、仪器仪表等场合。Linux是一个优秀的操作系统,其优异的性能、源代码的公开越来越多地受到世人的瞩目。Linux在嵌入式系统中的应用,更是天作之合,掀起一场新技术应用的波澜。本系统采用了Linux嵌入式系统,正是考虑了他的稳定性、可靠行、可移植性等诸多特点。

  视频数据在传输过程中采用了JPEG编码对其进行解压缩,现有的网络速度基本上都已经达到512 kb,若将一帧压缩数据(几kB~几十kB)通过Internet传播,已有足够的带宽,能够满足实时显示的需要。

  2系统架构

  系统的核心部件是一台嵌入式Linux设备(Web Camera Watcher,WCW)。使用时先将网络摄像头的USB插头接入WCW,然后将WCW接入网络,进行适当地配置后(如访问IP、密码等),便可通过局域网或互联网访问控制WCW,完成对网络摄像头的操作,如图1所示。   2.1从局域网内部访问

  首先给WCW分配一个合适的IP,以便局域网内部的计算机和WCW在同一个网段,这时从局域网内部任意一台PC通过网页浏览器便可访问网络摄像头资源。

  2.2从互联网访问

  如果WCW拥有合法IP,直接访问这个IP即可;如果WCW并未拥有合法IP,而是通过Router的NAT进入互联网的(因为IPV4资源的短缺,目前主要通过代理服务作为IPV4到IPV6的过渡),这时可先在Router上加入适当的PortForward规则,随后通过访问Router的IP(转发到WCW)即可通讯;如果局域网内部有DMZ(Demilitarized Zone,非军事交战区),可将WCW放入DMZ区内,保持这个局域网内部原有的安全性能。

  3硬件组成

  WCW硬件系统主要由CPU、内存、Flash存储器、USB接口、网络通讯硬件等部分组成,如图2所示。   3.1中央处理器CPU

  CPU是系统的核心部件,本系统选用了Samsung针对网络通信领域的S3C2510MPU,内置一块 ARM940T。ARM(Advanced RISC Machine)体系结构目前被公认为业界领先的32位嵌入式RIS C微处理器结构。所有的ARM处理器均共享这一体系结构,确保开发者转向更高性能的ARM处理器进行软件开发时得到更多回报。

  3.2内存

  考虑到目前绝大部分网络摄像头的最大分辨率为640*480,一幅24位的BMP图片需占用内存约为640*480*3=921.6 kB, Linux系统约需要2 M左右内存空间,加上视频缓冲、JPEG缓冲以及上层应用程序运行等需要,本系统选用了Samsung 8 M内存。

  3.3FLASH存储器

  选用2 M的SST39VF320。Linux内核(含驱动)大约需要1.2 M存放空间,其余800 k空间用来存放上层应用程序、网页、Java/ActiveX控件以及参数。在Flash头部置入了一个Loader程序,该程序负责系统的加载以及升级工作。

  3.4USB接口

  由于目前的网络摄像头均采用通用USB接口传输数据,本系统为其配备了USB适配器和2个USB插槽,1个用于接入网络摄像头,1个留作扩展。

  线路板在设计时,应该注意外接电源的功率和USB插槽的负载能力,以便在加入其他扩充USB设备时(如摄像头云台等),避免出现摄像头工作不稳定的现象。

  3.5网络通讯硬件

  网络通讯硬件包括交换机芯片、RJ45插槽、无线模块(或蓝牙模块)。随着计算机技术的发展,无线技术得到了广泛的普及应用,为了适应发展要求,在WCW硬件上加入了无线模块,将其扩充为一个Wireless AP设备,可适应在一些特殊场合的应用。

  4软件组成

  WCW软件系统主要由Linux内核、硬件设备驱动、采集模块、通讯模块、访问界面组成,如图 3所示。   4.1Linux内核

  使用已去除MMU(内存管理单元)的μClinux 2.4.20。这是一个稳定的版本,系统运行可靠、对各种硬件支持的接口都非常完善,在嵌入式OS方案中,是一个极好选择。

  4.2远程访问

  WCW内部的Web Server一直监听80端口的http请求,当用户从Internet远程的计算机通过网页浏览器访问WCW时,WCW显示登录页面,当用户输入正确的用户名和密码后,返回配置页面和一个Java或ActiveX控件,通过这个控件用户可以浏览到摄像头的资源。Java/ActiveX控件负责传送用户指令并解压、显示返回的视频数据。

  4.3通讯模块

  通讯模块主要由WCW的上层应用程序Web Server和Webcam Server组成,实际上他们构成了Linux Socket的服务器端。Web Server的端口号为标准的80端口,Webcam Server可以使用预留的用户自定义端口,他们一直处于监听状态,其中Web Server负责与远端的网页浏览器互相通讯;Webcam Server负责与下载到用户计算机上的Java/ActiveX控件进行指令传递,当为数据请求指令时,调用采集模块进行视频数据的采集与处理,之后打包返回,交由Java/ActiveX控件程序处理显示;当为参数修改指令时,调用底层设备驱动接口函数修改摄像头属性(如图像大小、亮度等)。

  视频数据在传输过程中难免会碰到网络高峰期,应用程序应该能够智能判断在某一时间段内超时并重新建立连接,这样的连接方式才够健壮。故此,在编写ActiveX/Java控件和Linux Socket服务端程序时,要尽量采用非阻塞方式,当处理好各种意外情况的发生时,非阻塞方式能够实现非常强大的功能。

  4.4采集模块

  采集模块直接与USB设备驱动打交道,完成图像采集、处理、参数设置的应用层程序。

  由于是在Internet上传送视频数据,为了提高显示速度,避免出现网络阻塞,图像在传送之前一定要进行压缩。要求采用压缩率较好的算法,而且在人眼的视觉范围内不能有太大的失真。本方案使用JPEG有损压缩算法,能够得到很大的压缩率和较小的失真。

  注意:在编写Java/ActiveX控件时,每个解压、显示JPEG视频流动作后,所有资源(包括物 理内存、浏览器资源或COM组件资源)要能及时释放,否则,在长时间的连续运转过程中网 页浏览器随时会崩溃。

  4.5底层驱动

  WCW软件系统中的一个难点就是需要为很多硬件设备编写可靠的驱动程序,在每完成一个硬 件的驱动后应能及时调试其稳定性,编写一段调试代码进行长时间测试(硬件问题可在此时 一同调试解决),保证在每个独立的驱动程序正常工作后进行整体调试,否则很可能在 出现问题时需要大量时间寻找问题所在,从而降低开发效率。
4.6扩展功能
  在此基础上可外加一个USB接口的摄像头云台,用于在远端控制摄像头反馈各方位的现场情 况(如上所提需要2个USB控制接口)。同样也需要相应的USB驱动和上层应用程序,也可根 据实际需要添加其他USB设备。
  UPNP(Universal Plug and Play)通用即插即用,是这几年的发展趋势,他是一种不依附 于任何操作系统或应用程序的协议。连接在网络上的所有UPNP设备可以互相告知对方自己的 资源和修改方法,他们可以智能地完成许多配置工作。WCW上只需要编写UPNP客户端的代码 ,当他的上层路由器也支持UPNP时(UPNP Server),就不需要用户自己手动修改ROUTER的 参数,而是由WCW和ROUTER协调完成,这对用户来说是透明的,也是对WCW软件组成的进一步 扩展。

  5结语

  目前该系统已经投入使用,可以使用网页浏览器(如IE)在多个平台上(Windows,Linux 等)进行管理和监控,运行情况良好。在家庭娱乐、多媒体教室、跨国办公等领域有较好的 应用前景。

  参考文献

  [1]张念淮.USB总线接口开发指南[M].北京:国防工业出版社,200 2 .
  [2]陈莉君.深入分析Linux内核源代码[M].北京:人民邮电出版社,2002.
  [3][美]Alessandro Rubini.Linux设备驱动程序[M].第2版.魏永明 ,骆刚,姜君译.北京:中国电力出版社,2002.
  [4]张益贞.Visual C++.实现MPEG/JPEG编解码技术[M].北京:人民邮 电出版社,2001.