视频监控系统在智能家居中的应用
中国安防行业网    2013/10/22 15:02:00    关键字:视频监控系统,智能家居      浏览量:

  Linux内核支持多种处理器,包括Intel x86、ARM、MIPS、M68k、PowerPC、Alpha、IA64、S/390、SuperH等处理器体系结构,很多处理器都可以应用在嵌入式领域。Linux可以支持实时扩展,目前有数个版本的实时Linux系统,同时Linux还具有网络功能,满足嵌入式系统对网络越来越多的需求。相比较其它的嵌入式系统,嵌入式Linux具有以下的优势:

  1.实时性高:

  管理和驱动中断的机制必须保证实时要求。根据这个要求,大多数嵌入式系统并不具备严格的实时性,而Windows CE基本上不具备实时性的特点。但是,嵌入式Linux可以很好得满足实时性要求。对Intel x86处理器,实时扩充可以在Linux系统中很容易进行,RT-Linux就是很好的例子。它主要是把Linux的任务作为自己的一个任务,因此实时性要求很高的任务不受非实时的Linux的干扰,可以得到满足。另外还提供了实时任务和Linux的基本核心和其他任务间的接口。

  2.适应与稳定性高:

  和其他运行于PC的系统相比,因为Linux继承了Unix优点,在适应和稳定方面性能是非常突出的。而嵌入式的Linux也是如此,嵌入式Linux不仅支持x86芯片,而且是一个跨平台的系统,到目前为止可以支持二、三十种CPU。同时,嵌入式Linux内核的结构在网络方面是非常完整的。提供了包括十兆、百兆、千兆的以太网络以及无线网络、Token Ring(令牌环)、光纤甚至卫星的支持。所以Linux很适于做通信设备的开发。此外,高可靠性是嵌入式Linux领先于其他嵌入式操作系统最明显的地方。

  3.开发便利:

  Linux应用于嵌入式系统另外一个显著的优势是可以使用主机模拟的环境进行开发。一般嵌入式的目的平台不允许安装或者没有足够的资源运行需要编译器,通过交叉编译,就可以在一个平台上生成另一个平台上的可执行代码,这里所谓的平台包括两个概念:体系结构和操作系统,即所谓不同的平台既可以是同一个体系结构运行不同的操作系统,也可以使同一个操作系统运行在不同的体系

  结构上。这对应用程序的开发提供了很大的便利。开发者可以在主机平台上编写和调试程序,测试完成后经过交叉编译生成可执行程序,之后直接将其放到嵌入式设备中,大大提高了开发效率,并且使得嵌入式系统的开发拥有大量的资源可以利用。并且,Linux作为开源软件的代表,在达到同样性能的前提下带来的成本的节省也是巨大的。

  本系统的开发环境为:

  ■宿主机为普通PC:

  硬件配置为:CPU--Celeron(R)3.6GHz、内存一512MB、硬盘--60GB;操作系统为:LinuxFedora7.0(内核2.6.22)

  ■

  目标板为嵌入式系统:

  硬件配置为:CPU—Intel XScale为内核的PXA255 400MHz、ROM--32MBFlash、RAM一64M SDRAM:操作系统为:嵌入式Linux(内核2.4.19)

  ■交叉编译工具为:

  交叉编译器(arm.1inux.gcc)、交叉链接器(arm.1inux.1d)

  3.1.2摄像头驱动的加载

  和传统嵌入式开发一样加载过程也采取了宿主机和目标板的加载模式。由于Linux内核对本项目中使用的ZC0301摄像头并不支持,所以需要自行加载驱动模块。由于摄像头的厂商开发产品时驱动基本上是基于Windows平台的,在Linux下只能选择开源的驱动源码,本系统选择的是SPCA5xx摄像头通用驱动,在下面的驱动网址:http://mxhaard.flee.f.r可以下载到针对embeded环境的驱动源码而且,由于开发Stargate下的驱动应用程序需要配置和此Stargate相匹配的模拟环境,还对PC机的Linux内核做了~些更改。

  ●摄像头驱动编译环境的配置步骤

  1.在linux平台下新建一个目录,用于配置环境及开发应用程序,比如在个人目录下建立armlinux目录(xxxx为个人用户名对应的目录)mkdir/home/xxxx//armlinux

  2.将linux.2.4.19.tar.gz复$1]至iJ/home/xxxx//armlinux目录下,提取出源代码tar-xvzf linux-2.4.19.tar.gz

  3.将patch.2.4.1 9-rink7.gz放入解压后的linux一2.4.19目录,解压gunzip patch-2.4.19一rmk7.gz

  4.为linux.2.4.1 9打补丁patch—pl<>

  6.为linux.2.4.19打补丁patch-pl

  7.将patch.2.4.1 9.rmk7.pxa2.star7.2.tar放入解压后的iinux.2.4.19目录,解压tarxvfpatch一2.4.19一rmk7一pxa2一star7.2.tar

  8.为linux.2.4.19打补丁patch—pl<>

  至此,视频驱动开发编译环境已经配置完成,下面就可以编译适合Stargare平台下的驱动程序了。

  摄像头驱动的编译与安装

  下载驱动usb-2.4.31LE06.patch.tar.gz软件包,编译步骤如下:

  1.修改配置文件:把usb-2.4.31LE06.patch.tar.gz复制到/armlinux/linux.2.4.19/driver/usb下,解压,执行如下操作。tar-xvzfusb-2.4.31.patch.gzpatch-pl

  2.动态编译:

  (1)进入armlinux/linux.2.4.19,执行下面命令makemenuconfig

  (2)选择当前目录下Loadablemodulesupport,进而选择允许模块加载r]EnableLoadable modulesuppon

  (3)退回到上以及目录,进入General setup,然后在Multimediadevice下选中[M]Videofor linux

  (4)选中r】V4Linformation inproc filesystem

  (5)然后USB support,选择

  【M]suppoafor USB

  (6)在USB Multimediadevices选项下应该有USB SPCA5XXSunplusVimicro Sonix Cameras把它配置成模块module。

  (7)编译

  makedep make modules

  在/armlinux/linux.2.4.19/driver/usb/spca5xx中生成spca5xx.O,spcadecoder.o,spca cole.o,驱动就此生成。

  (8)将三个.o文件拷贝到Stargate的以下目录下/lib/modules/2.4.19一rmk7一pxa2一star/kemel/dfivers/usb/或/lib/modules/linux/kemel/drivers/usb/目录下。

  (9)加载这三个.0文件(可以不用加载spcadecoder.o)

  insmod-f/lib/modules/2.4.19-rmk7-pxa2一star/kemel/drivers/usb/spca5xx.o

  insmod·f/lib/modules/2.4.19一rmk7-pxa2一star/kemel/drivers/usb/spea_core.0

  hasmod-f/lib/modules/2.4.19·rmk7-pxa2一star/kemel/drivers/usb/spcadeeoder.o

  Oo)查看驱动模块是否挂载成功lsmod

  在终端控制上查看是否有spca5xx.0,spcacore.o模块,有表明成功加载。

  (11)开创字符设备入口,主设备号为8l,次设备号0mknod/dev/videoO c引0

  (12)再查看一下设备/dev/videoO是否存在ls.1h/dev/videoO

  (13)摄像头驱动就加载完成,用下面命令可以查看驱动能否使用(插上摄像头)

  cat/dev/videoO>test.ppm

  将test.ppm上传到PC机下用常用看图软件查看即可。

  至此,开发板Stargate上嵌入式Linux系统的摄像头驱动加载成功。

  3.2 C/S架构视频服务器的设计与实现

  传统嵌入式系统都是单机运行的控制系统,而随着嵌入式系统的广泛应用和用户对数据处理及管理需求的不断提高,单机运行控制系统无论在处理速度和处理能力方面都已经远远达不到人们的需求。特别在本视频监控系统中,单一的嵌入式系统不能很好的完成基于图像处理技术的入侵检测、实时访问及证据缓存等功能模块。因此本文结合嵌入式系统的具体软硬件结构特点提出嵌入式系统中建立C/S软件体系结构户下面先对C/S软件体系结构做一个简单的介绍。C/S结构,即Client/Server(客户机/服务器)结构,是一种两层结构的系统。第一层是客户机系统,即用户界面(Client)结合业务逻辑,接受用户的请求,并向服务器提出请求;第二层是服务器系统,进行数据管理并根据客户机端请求提交给客户端。C/S结构主要技术特点是交互性强、具有安全的存取模式、网络通信量低、响应速度快、有利于处理大量数据。

[1] [23 [4] [5] [6