基于嵌入式ARM9Linux网络视频监控系统的设计与实现陈平.docx
- 文档编号:26787964
- 上传时间:2023-06-22
- 格式:DOCX
- 页数:9
- 大小:187.61KB
基于嵌入式ARM9Linux网络视频监控系统的设计与实现陈平.docx
《基于嵌入式ARM9Linux网络视频监控系统的设计与实现陈平.docx》由会员分享,可在线阅读,更多相关《基于嵌入式ARM9Linux网络视频监控系统的设计与实现陈平.docx(9页珍藏版)》请在冰豆网上搜索。
基于嵌入式ARM9Linux网络视频监控系统的设计与实现陈平
收稿日期:
2011-11-12
基金项目:
河南省教育厅,高职高专嵌入式应用开发项目(项目编号:
2008C520005。
作者简介:
陈平(1982-,男,甘肃平凉人,济源职业技术学院教师,在读硕士,研究方向为嵌入式应用技术。
基于嵌入式ARM9-Linux网络视频监控系统的设计与实现
陈
平,程亚维
(济源职业技术学院,河南济源459000
摘要:
基于ARM9和嵌入式Linux操作系统,对Linux内核gspca驱动程序进行了移植,配置了支
持mjpg-streamer和uvcvideo的基础连接库,编译、移植mjpg-streamer软件包,实现了一个易搭建,易配置,通用性好,能让客户机通过浏览器实时监控远程目标的网络视频监控系统,可以用在无人值守的仓库、大规模的森林以及高速的交通工具。
关键词:
ARM9;Linux内核;浏览器;视频监控
DOI:
10.3969/j.issn.1672-0342.2011.04.006中图分类号:
TP316.8
文献标识码:
A
文章编号:
1672-0342(201104-0017-04目前国内网络视频监控方面存在着应用不够
广泛、功能简单、形式单一、应用软件普及率低等缺陷。
这些问题存在的主要原因有以下几点:
一
是可用的软件和有效搭建服务器的方法不多,难度过高;二是因为服务器负荷大,投资大回报少,
服务商不提供相应支持,而且搭建的服务器扩展性不好,灵活性不高,不同型号的摄像头不能很好
的支持[1]
。
针对以上特点,提出了以性能高、功耗低、易搭建平台的ARM9微处理器S3C2440作为主处理器,在嵌入式内核配置上使用可以支持市场上各种USB接口的摄像头作为视频采集设
备,并借助Linux开源系统,构建了一个网络视频监控系统。
一、视频监控系统方案设计(一系统硬件方案设计
系统硬件设计总体分为现场视频采集、数据传输、远程视频监测三个部分。
现场视频采集采用USB接口的任意型号高
清摄像头,
处理器采用内核操作频率Fclk:
400MHz,Hclk:
136MHz,Pclk:
68MHz的S3C2440
处理器ARM9系统,它集成有SDRAM、NORFLASH及NANDFLAHS,外设有RS-232串
口、USBHOST接口、自适应以太网接口及下载引导程序的JTAG接口,可以满足现场视频采集硬
件配置的需要
[2,3]
。
数据传输通过10/100M自适应以太网传输到远端。
远程监控端实时接收和显
示图像,
采用可以接入以太网的普通PC机即可,系统硬件平台如图1所示
。
图1
系统硬件平台结构图
7
1陈平,程亚维:
基于嵌入式ARM9-Linux网络视频监控系统的设计与实现
(二软件设计方案
通过对嵌入式Linux操作系统结构分析,结合ARM处理器及其外围设备的特性,本系统将软件体系分为两层:
Linux内核层和用户层。
Linux内核层完成Linux内核、视频采集以及相关协议栈的移植。
用户层即应用软件,当USB摄像头驱动加载之后,视频采集模块采集摄像头的视频数据,然后通过网络传送到客户端。
系统的整体软件架构如图2所示。
图2软件系统架构图
二、软件系统的设计实现
基于嵌入式Linux开发环境一般由运行嵌入式Linux操作系统、用户系统应用程序的目标硬件和进行嵌入式系统Bootload移植、内核编译、文件系统制作、应用程序开发调试等的主机平台组成。
双方通过串口、并口或者以太网口等建立连接。
本文主要针对USB摄像头内核驱动移植,视频采集模块,数据传输及远端能够实现视频监控文件系统进行设计说明。
(一USB摄像头内核驱动移植
本系统采用USB接口市场上销售的任意摄像头,在进行Linux-2.6.31内核驱动移植时,应选择所需要的USB摄像头驱动,当然也可以选择所有的USB摄像头驱动支持,但这样编译出的内核会比较大。
进入CSPCAbasedwebcams选择万能摄像头驱动程序[4]。
移植步骤如下:
执行makemenuconfig,在菜单栏里选择DeviceDrivers--->
<*>Multimediasupport--->
<*>VideoForLinux
[*]EnableVideoForLinuxAPI1(DEPRECATED
[*]Videocaptureadapters--->[*]V4LUSBdevices--->
<*>USBVideoClass(UVC
[*]UVCinputeventsdevicesupport[*]GSPCAbasedwebcams--->进行配置,编译出镜像烧写到S3C2440嵌入式平台上,插入USB摄像头,提示以下一些信息:
usb1-1.2:
newfullspeedUSBdeviceusings3c2410-ohciandaddress5
input:
SaturnUSB2.0Camera.as/class/input/input1
这样摄像头就可以正常工作了,对内核的USB摄像头的配置,可以满足对任意型号的摄像头的支持,既方便了用户,又提高了操作性。
接下来对图像采集进行设计实现。
(二视频采集模块的实现
在内核加载了摄像头驱动之后,系统就能识别并支持该摄像头,但还需设计视频采集程序才能工作。
视频采集应用程序的设计是通过Linux内核中的Video4Linux实现。
在视频采集Video4Linux中,应用程序通过intioctl(intfd,indcmd,…和设备进行“对话”。
如果驱动程序提供了对ioctl的支持,就可以在用户程序中使用ioctl函数控制设备的I/O通道。
用Open(”/dev/video0”,vdàfd打开视频,用Close(”/dev/video0”,vdàfd关闭视频设备。
在本系统中,视频图像的获取采用mmap(的方式,此方法省去了再调用read(、write(等操作,进程通信效率高,不需要拷贝任何数据。
(三视频网络传输模块的实现
要实现现场监控,除了完成视频采集设计,还需要把视频图像数据通过网络传输出去,因此需要在完成视频采集的基础上建立网络服务器,实现客户端和服务器之间的数据通信。
本系统视频网络传输基于TCP协议实现,Linux系统通过其协议提供的套接字(socket进行网络编程。
通过HTTPserver进行网络传输,用到的关键套接口操作函数有:
创建指定类型的套接口并返回套接口描述符的socket(函数、使套接口与IP地址、端口绑定的bing(函数、与远程端服务器建立连接的connetc(函数、当socket与某一端绑定后就需要监听端口的listen(函数及接受连接队列里的服务请求,并返回新的socket描述符的accept(函数[5]。
例如HTTPserver在80端口监听,当客
81第10卷第4期济源职业技术学院学报Vol.10No.42011年12月JournalofJiyuanVocationalandTechnicalCollegeDec.2011
户向80端口发出连接请求时,服务器将接受请求并派生出子程序和新的套接口与客户连接并通信。
将采集的原始视频图像数据压缩成JPEG格式,当客户端有连接时,通过子进程向客户端发送JPEG图像数据。
if(size=(*_to_jpeg(&imagebmp,imageptr,640,480,20<0
{
Printf(“ERROR”;
}
if(!
fork(
{
if(revbuf[5]==''
send(nsockfd,imagebmp,size,0;
}
这样,当系统运行时,在PC机的IE浏览器内输入以下IP地址:
http:
//192.168.1.10:
8080,将看到图像格式为JPEG的图片,实现了视频网络的传输。
(四远程视频监测端向文件系统添加应用程序
采用VirtualBox-4.1.4和ubuntu-10.10制作Busybox视频文件系统时,需要添加移植一个依赖于SDL和libjpeg的视频服务器mjpg-streamer软件包,在移植编译基础链接库SDL时需要配置#./configure
--prefix=/opt/toolchains/arm920t/arm-angstrom-linux-gnueabi
--exec-prefix=/opt/toolchains/arm920t/arm-angstrom-linux-gnueabi
--enable-shared--enable-static
修改makefile指定交叉编译器,把其中的CC=GCC改为CC=arm-linux-gcc、AR=arac改为AR=arm-linux-arac、AR2=ranlib改为AR2=arm-linux-ranlib,然后#make编译、#makeinstall安装即可。
在移植编译基础链接库libjpeg时也需要配置#./configure
--prefix=/opt/toolchains/arm920t/arm-angstrom-linux-gnueabi
--host=arm-linux--build=i386--disable-esd--disable-joystick
解压mjpg-streamer源码包,进入源码目录,源码目录下有三个文件夹:
mjpeg-client、mjpg-streamer、uvc-streamer,#cdmjpg-streamer进入mjpg-streame目录,#make编译后生成需要的input_uvc.so、output_http.so这两个模块和可执行程序mjpg-streamer,将input_uvc.so、output_http.so这两个文件复制到根文件系统的/lib目录下,将mjpg-streamer复制到根文件系统的/usr/sbin目录下。
#cduvc-streamer进入uvc-streamer目录,然后#make生成的可执行程序uvc-streamer复制到根文件系统的/usr/sbin目录下。
把jpeg、SDL库从交叉编译器的lib目录拷贝到根文件系统的/lib目录下,重新制作文件系统镜像,将其下载到开发板Nandflash的文件系统分区。
进入测试阶段:
运行mjpg-streamer,在开发板的串口终端中输入如下命令格式:
#mjpg-streamer-i“/lib/input_uvc.so”-o“/lib/ouptput_http.so-w192.168.1.10:
8080”。
如果需要使用Web登录服务器,要先制作网页,把网页文件放在一个文件夹下,如制作好的网页文件(webcam文件夹,将它放到文件系统的某个目录下,比如:
/var目录。
其功能包括捕捉单帧图像、交换式远程控制。
在开发板的串口终端中输入命令格式如下:
#mjpg-streamer-i“/lib/input_uvc.so”-o“/lib/ouptput_http.so-w/var/webcam”。
若连接成功,则串口终端输出如下信息:
MJPG-streamer[1724]:
MJPGstreamerversion.:
2.0
MJPG-streamer[1724]:
Format……..:
MJPEGMJPG-streamer[1724]:
www-folder-path…:
/var/webcam
MJPG-streamer[1724]:
strartinginputpluginMJPG-streamer[1724]:
startingoutput
plugin:
/lib/output_http.so(ID:
00
三、实验测试
打开IE浏览器,在地址栏输入http:
//192.168.1.10:
8080,这样就可以访问制作好的网页了。
远程视频监控运行效果图如下图3所示。
91
陈平,程亚维:
基于嵌入式ARM9-Linux网络视频监控系统的设计与实现
图3远程视频监控运行效果图
通过实验测试,发现图像传输效果实时,画面
质量清晰、流畅,很好地实现了网络远程视频监控。
四、结语
设计实现的嵌入式Linux的网络视频监控系
统,
是一种低成本、通用性好、支持不同型号的摄像头的网络视频监控方案,而且可以直接连入IP网络(LAN/WAN/Internet,通过浏览器即可观看,
画面流畅,简易方便,有一定的创新性,具有广泛的应用价值。
参考文献:
[1]中国智能家居网.发展智能小区是住宅建设的必然趋
势[
EB/OL].http:
//www.smarthomecn.com.[2]倪勇,陈沉.嵌入式系统应用[
M].北京:
电子工业出版社,
2010.[3]刘洪涛,孙天泽.嵌入式系统技术与设计[
M].北京:
人民邮电出版社,
2009.[4]韦东山.嵌入式Linux应用开发完全手册[M]
.北京:
人民邮电出版社,
2009.[5]付聪,王志良.Linux嵌入式视频直播监控系统[
J].微计算机通信,
2008,(2.[责任编辑赵冬玲]
NetworkVideoMonitoringSystemDesignand
ImplementationBasedonEmbeddedARM9-Linux
CHENPing,CHENGYa-wei
(JiyuanVocationalandTechnicalCollege,Jiyuan459000,Henan
Abstract:
BasedonembeddedLinuxoperatingsystemARM9anddesignofLinux,kernelgspcadriveristransplanted,configurationsupportsMJPG-streameranduvcvideobasicconnectionoflibrary,MJPG-streamersoftwarepackageiscompiledandtransplantedsothatvideoanetworkmonitorsystem,whichiseasytobuild,easytoconfigurate,versatileandcanbereal-timemonitoredthroughthebrowser.Thissystemcanbeusedintheunattendedwarehouse,forestsandexpressways.Keywords:
ARM9;Linuxkernel;browser;videomonitoring
2第10卷第4期济源职业技术学院学报
Vol.10No.4
2011年12月JournalofJiyuanVocationalandTechnicalCollege
Dec.2011
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 嵌入式 ARM9Linux 网络 视频 监控 系统 设计 实现