基于ARM的嵌入式移动图像监控系统研究

2017-07-06 03:01刘浩森
科技尚品 2017年6期

刘浩森

摘 要:当今社会,监控是一种非常常见而且重要的装置,但是现在很多监控都需要有人一直坚守,既浪费了大量的资源,也难取得良好的效果。随着嵌入式系统技术的发展为我们解决这一难题提供了帮助。本文设计了一种基于S3C2440的ARM嵌入式Linux移动图像监控系统,通过中星微ZC301摄像头来捕捉运动图像,实现当检测到有物体移动时自动报警的功能。

关键词:ARM9;linux;ZC301;移动图像监控系统

1 移动图像监控系统框架介绍

整个系统是基于TQ2440开发板来实现的,基本思路就是:通过USB摄像头来捕捉移动图像,然后将拍摄到的图像保存并通过音响来报警,同时可以远程登录网页来查看所拍摄到的图像。整个系统由图像采集模块、报警模块、传输模块和相关服务器组成。

2 移动图像监控系统开发

2.1 系统前期准备

因为整个系统都是基于linux,所以系统开发之前首先要搭建好正确的linux系统开发环境,比如虚拟机安装、linux操作系统安装,搭建好samba服务器、tftp服务器、NFS服务器等。

2.2 Uboot、内核以及文件系统的制作与移植

2.2.1 Uboot制作与移植

(1)运行命令:tar xvzf uboot_tq2440.tar.gz解压;(2)运行命令:make TQ2440_config对uboot进行配置;(3)运行命令:make ARCH=arm CROSS_COMPILE=arm-linux-得到u-boot.bin文件。

2.2.2 Linux内核文件的制作与移植

(1)运行命令:tar xvzflinux-tq2440.tar.gz解压;(2)运行命令:make uImage ARCH=arm CROSS_COMPILE=arm-linux-得到映像文件。

2.2.3 文件系统的制作与移植

(1)运行命令:mkdirrootfs创建文件系统目录;(2)然后在rootf目录下依次创建bin dev etc lib/modules proc sbin sys usr/bin usr/sbinusr/lib mnttmpvar目录;(3)创建设备文件:在rootfs/dev目录下分别运行命令:mknod–m 666 console c 5 1和mknod–m 666 null c 1 3;(4)加入设备文件:将etc.tar.gz解压,然后将解压之后的所有内容拷贝到rootfs/etc目录下;(5)添加内核模块;(6)编译/安装busybox;运行命令make menuconfig配置busybox,注意选中“Build busybox as a static binary”和“Dont use /usr”,然后运行make和make install命令;(7)根文件系统的挂载:这里选择NFS即网络文件系统。

2.3 声卡驱动移植

(1)将目录切换到linux内核目录;(2)保证SoC Audio for the Samsung S3C24XX chips和SoC I2S Audio support UDA134X wired to a S3C24XX被选中,同时保证OSS Mixer API、OSS PCM(digital audio)API、OSS PCM(digital audio)API-Include plugin system和Support old ALSA API 4项被选中;(3)运行命令:make uImage ARCH=armCROSS_COMPILE=arm-linux-scripts/kconfig/conf–s arch/arm/Kconfig重新编译内核;(4)加载内核并运行。

2.4 嵌入式播放器移植

(1)嵌入式播放器的移植需要用到4个文件,依次为:libid3tag-0.15.1b.tar.gz、libmad-0.15.1b.tar.gz、madplay-0.15.2b.tar.gz、zlib-1.1.4.tar.gz。将这4个文件依次解压、配置、修改、编译和安装;(2)将madplay应用程序拷貝到/rootfs/sbin目录下;(3)添加4个库文件,依次为:libmad.so.0、libid3tag.so.0、libm.so.6、libc.so.6;(4)madplay haojiubujian.mp3即可播放音乐。

2.5 摄像头驱动移植

(1)进入到内核目录,选中Video For Linux,然后将选中ZC3XX USB Camera Driver;(2)编译内核并下载,并插上USB摄像头;(3)查看ls dev/目录下USB摄像头在系统里创建的设备文件,比如video0,然后将camera.c里面的内容改成“char*dev_name=″/dev/video0″”;(4)拷贝camera应用程序到rootfs根文件系统里面去;(5)运行命令:./camera即可启动摄像头。

2.6 移动监控系统主系统设计与开发

(1)运行命令:tar xvzf motion-3.2.12.tar.gz解压;(2)运行命令:tar xvzfffmpeg-0.5.1.tar.gz解压;(3)运行命令来完成ffmpeg配置;(4)拷贝_install/bin/目录下的motion应用程序到rootfs根文件系统目录下;(5)拷贝_install/etc/目录下的motion-dist.conf文件到rootfs根文件系统目录下;(6)通过Samba打开motion-dist.conf文件,完成相关内容的设置;(7)运行命令:make,make install来完成motion编译和安装;(8)运行命令:motion–c motion-dist.conf来启动motion进程。

3 远程监控开发

3.1 BOA嵌入式服务器移植

(1)運行命令:tar xvzfboa-0.94.13.tar.gz解压;(2)修改Makefile文件,将里面的gcc全部改成arm-linux-gcc;(3)运行命令:make完成编译工作;(4)拷贝boa应用程序到rootfs/sbin目录下;(5)拷贝boa.conf文件到rootfs/etc/boa目录下;(6)修改boa.conf文件;(7)运行命令:make完成编译;(8)运行命令boa来启动boa服务器。

3.2 HTML网页界面设计

该系统要求通过网页登录系统IP地址来查看摄像头拍摄到的图像。本次设计的网页界面的标题是:基于ARM的嵌入式移动图像监控系统研究,包括两个标签页,分别是查看监控图片和监控视频。

4 网页登录

在CRT中通过运行命令ifconfig命令查看到板子上linux系统的IP地址,然后打开浏览器,在搜索栏中直接输入IP地址,即可打开网页。

参考文献

[1]孙戈.基于S3C2440的嵌入式Linux开发实例[M].西安电子科技大学出版社,2010.

[2]宋宝华.Linux设备驱动开发详解[M].北京人民邮电出版社,2010.

(作者单位:电子科技大学成都学院)