魏光杏,李 华
(滁州职业技术学院,安徽 滁州 239000)
随着电子与计算机技术的发展,视频监控这一传统的安全防范手段,在工业控制和商业管理领域有着广泛地应用,为这些行业的安全防范和环境监控起到了重要作用。数字图像监控系统主要是基于嵌入式图像监控。视频监控具有直观、方便、信息内容丰富等优点,向用户提供高质量的监控图像和便捷的监控方式。视频监控为社会生产的顺利进行和人民生活的安全提供了保障,它已经成为我们生产上中必不可少的重要组成部分。本文给出了一个基于ARM和Linux系统实现方案,采用ARM和软件压缩相结合实现视频图像采集,此系统具有低成本、高性能、可扩展等优点,有着广泛的应用前景。
本系统基于TX2440A开发板和嵌入式操作系统制作。TX2440A是一款低价实用的ARM9开发板,是目前国内性价比最高的一款学习版。它采用Samsung S3C2440为微处理器,并采用专业稳定的CPU内核电源芯片和复位芯片来保证让那个系统运行时的稳定性。本系统功能框架图如图1所示。
图1 ?系统功能框架图
TX2440A有众多先进特性:可以支持万能驱动的开发板,支持USB烧写更新Linux和windowsCE的开发板,并且支持Nand Flash备份到PC,还可以使用CMOS摄像头预览并拍照的开发板等。
1.2.1 TX2440A开发板硬件资源特性
CPU处理器:Samsung S3C2440A,主频400MHz,最高533MHz;
SDR内存:在板64M SDRAM;
接口资源:1个100M以太网RJ-45接口,3个串口行,4个USB Host,1个SD卡存储接口,1个2.0mm间距20pin摄像头接口;
系统时钟源:12M无源晶振。
1.2.2 -TX2440A开发板系统软件支持
支持嵌入式linux操作系统,支持万能USB摄像头驱动(Linux系统自带的gspca驱动程序),支持客户端访问,可以在PC机上使用web浏览器或其他的客户端程序。
在Red Hat Linux官方网站下载适合S3C2440处理器的Linux内核源代码压缩文件s3c2440_kernel2.6.13.tar.bz2到/tmp/目录下,对该文件进行解压缩,然后进入该文件目录,进行编译内核,具体过程如下:
#tar-jxvf s3e2440_kemel2.6.13.tar.bz2#cd s3c2440_kernel2.6.13_rel
#makedistclean
#makemenuconfig
此时弹出系统菜单配置界面。
在弹出的系统菜单配置界面中选择“Load on Alternate Configuration File”菜单载入配置文件,然后在输入框中写入“arch/arm/def-configs/smdk2440”,选择“OK”按钮,这样就载入了目标板所需的常用配置选项。打开菜单各个页,查看配置文件的默认选项。该内核针对本系统设计的要求需要配置的内核选项,主要包括CPU、LCD、USB、V4L、USB摄像头、网卡、SD卡、键盘、串口、文件系统等,其他暂时不需要的选项即可裁减以减小内核镜像的体积。
2.2.1 安装USB驱动
在Red Hat Linux官方网站上下载usb.rar软件包,将其拷贝到/linux-2.6.31/kernel/drivers/usb/目录中,并进行解压,操作过程如下:
#cd/linux-2.6.31/kernel/drivers/usb/
#tar-zxvf usb.rar
修改目录/drivers/usb/的Makefile文件,在obj-$(CONFIG_USB_W9968CF)+=media/语句后添加一行obj-$(CONFIG_USB_SPCA5XX)+=media/
修改目录/drivers/usb/media/的Kconfig文件,在该文件最后添加config USB_SPCA5XX/
语句。保存并退出后,对USB驱动进行编译,编译无误后即USB驱动就安装完成。
2.2.2 安装CMOS摄像头驱动
在TX2440A开发板光盘中找到CMOS摄像头驱动源码的5个文件:S3c2440_ov9650.c、S3c2440_camif.c、S3c2440_camif.h、sccb.c与sccb.h。将这5个文件复制到/drivers/media/video目录下,修改/drivers/media/目录下Kconfig文件,在101行加入:
Config S3C2440_CAMERA
Tristate“OV9650 on the S3C2440 driver”
Depends on VIDEO_DEV&&ARCH_S3C2440
Defaulty if(VIDEO_DEV&&ARCH_S3C2410)
修改/drivers/media/video目录下Makefile文件,在第15行加入:
s3c2440_camera-objs:=s3c2440_ov9650.o s3c2440_camif.o sccb.o
在第165行加入:
obj-$(CONFIG_S3C2440_CAMERA) +=s3c2440_camera.o
保存后,使用make menuconfig命令进入菜单模式,进行选择系统模块与驱动。在调入已保存的内核配置文件选项中,将.config改为arch/arm/configs/s3c2410_defconfig,在选择多媒体驱动选项中,选择OV9650on the S3C2440 driber(NEW),在GSPCA based webcams选择窗口中,选中所有选项,如图2所示。
图2 GSPCA based webcams选择窗口
添加完成后,保存退出菜单,对所选内核进行编译与加载,如图3所示。
图3 驱动加载成功
在Linux终端中输入make zImage命令,进行zImage镜像编译,当终端中出现“zImage is ready”信息时,表示zImage镜像编译成功,如图4所示。这就是我们生成最新的内核,将此内核通过终端下载到研发板中。
图4 zImage镜像编译成功
通过网络访问来进行视频监控,需要配置servfox和spcaview服务器。
2.4.1 配置servfox服务器
将视频服务器软件servfox.tar.gz拷贝到/linux-2.6.31这个内核的目录中。
2.4.2 配置spcaview服务器
系统镜像文件移植是利用TX2440A开发板上ARM公司提供的DNW进行的。先对DNW进行USB驱动加载,并设置波特率、串口、地址位数等参数(保持默认值)。重启TX2440A开发板后,在主界面上选择“[2]下载Linux内核镜像”,再选择DNW终端任务栏上“USB Port”下拉菜单中的“Transmit”选项,浏览到zImage这个文件,单击打开,弹出移植对话进程窗口,如图5所示。
图5 烧写zImage文件
在客户机XP系统下安装java插件jre-6u10-windows-i586-p-s.exe,插件安装完成后,打开IE浏览器,在地址栏中输入http://192.168.1.10/index-sample.html,就可以访问视频监控网页,监控效果如图6所示,图像分辨率为640×480。
本文给出了一个基于TX2440A开发板和Linux操作系统视频监控方案,经过测试,系统各个硬件模块都能够安全稳定地工作,操作系统也能够稳定的运行在TX2440A硬件开发板平台上,监控的视频效果较好。本系统视频监控很好地体现体积小、成本低、使用方便等特点,可用于学校、家居以及小型企业等领域,具有广泛的市场前景。
图6 监控测试图
[1]邓建伟,杨明川,李文杰.网络视频监控关键技术的发展[J].通信世界,2007(34):17-18.
[2]刘春成.基于嵌入式Linux的USB摄像头驱动开发[J].计算机工程与设计,2007,28(8):1885-1888.
[3]周强,费章君,王强,等.基于H.264的嵌入式网络视频服务器的设计与开发[J].计算机应用,2010,30(2):555-559.
[4]沈进棋,阮锋,诸静.基于Web的视频图像的实时传输[J].计算机工程,2005,31(1):187-188,198.
[5]王学龙.嵌入式Linux系统设计与应用[M].北京:清华大学出版社,2001.