基于Linux的视频监控系统构建方法

发布者:星空行者最新更新时间:2013-10-23 来源: eefocus关键字:Linux  视频监控系统  ARM 手机看文章 扫描二维码
随时随地手机看文章
目前,嵌入式系统在视频监控中的应用越来越广泛。伴随着网络的强大功能,视频监控更侧重网络监控方案,要求体积小、远程化、成本低、功耗小、操作界面人性化等。本系统基于嵌入式Linux 平台上利用USB 摄像头采集视频图像,通过视频图像压缩及结合网络进行视频图像传输,使远程监控成为可能。
 
1 系统概述
 
视频图像监控系统由4 部分组成, 分别为视频图像采集、视频图像处理、视频图像传输、视频图像显示。视频图像采集部分由数字摄像头、USB 通道和嵌入式处理器构成、视频图像处理主要是视频图像压缩,由算法实现、视频图像传输主要利用视频服务器来实现、视频图像显示主要是在远程的主机上实现视频图像的浏览、保存和处理等,Linux 主机上由应用程序实现,Windows 主机上通过浏览器上的JAVA 程序实现。系统原理框图如图1 所示。
 
图1 系统框图
 
2 系统硬件
 
CPU 处理器使用Samsung S3C2440A, 主频400 MHz,最高533 MHz;64 M SDRAM、32 bit 数据总线、SDRAM 时钟频率100 MHz;256 M/1 GB Nand Flash, 掉电非易失、2 M NorFlash,掉电非易失;统宝3.5 真彩LCD,屏集成4 线电阻式触摸屏, 屏幕分辨率可以达到1024×768 象素;100 M 以太网RJ-45 接口(采用DM9000 网络芯片)、串行口、USB Host、USB Slave B 型接口、SD 卡存储接口、路立体声音频输出接口, 麦克风接口、JTAG 接口、4 USER Leds、6 USER buttONs(带引出座)、I2C 总线AT24C08 芯片、20 pin 摄像头接口;摄像头用良田,兼容SN9C20X 系列芯片的驱动,本系统的内核中集成了该驱动。
 
3 系统软件
 
3.1 Linux 内核的移植
移植新内核主要是为了给LCD 以及摄像头添加相应的驱动支持,在Fedora 9 中打开内核的目录,使用缺省配置文件进行配置:在内核中添加V4L 支持、添加万能USB 摄像头驱动GSPCA。
3.2 基于V4L2 的图像采集程序
系统使用的交叉编译工具为arm-linux-gcc-4.3.2.设计使用到的应用程序都要通过该编译器编译后下载到开发板上运行。将编好的应用程序V4L2.c 交叉编译后下载到板。
V4L(Video for Linux)是Linux 下提供的一个音视频接口规范,所有的音视频驱动编写都要用到这些接口。
V4L 从2.4.1.x 的内核版本中开始出现, 设计使用的Video for Linux2(简称V4L2)是V4L 的改进版,修复了第一代中的部分BUG。
设计的图像采集及处理程序主要基于V4L2 架构, 通过对一些ioctl 函数的调用来实现视频设备的打开,图像的采集处理,图像的显示等。几个主要的ioctl 函数的简介:
1)ioctl(fd,VIDIOC_S_FMT, &fmt):用于设置图像的格式。
2)ioctl(fd, VIDIOC_REQBUFS, &req):向内存申请缓冲区,申请的buffer 个数存在count 中。
3)ioctl(fd, VIDIOC_QUERYBUF, &buf):查询已经分配的V4L2 的视频缓冲区的相关信息, 包括视频缓冲区的使用状态、在内核空间的偏移地址、缓冲区长度等。
4)ioctl(fd, VIDIOC_QBUF, &buf):放一个空的视频缓冲区到视频缓冲区输入队列中,函数执行成功后,指令的视频缓冲区进入视频输入队列,在启动视频设备拍摄图像时,相应的视频数据被保存到视频输入队列相应的视频缓冲区中。
5)ioctl(fd, VIDIOC_STREAMON, &type):启动视频采集命令,应用程序调用VIDIOC_STREAMON 启动视频采集命令后,视频设备驱动程序开始采集视频数据,并把采集到的视频数据保存到视频驱动的视频缓冲区中。[page]
图像采集处理流程图如图2 所示。
 
图2 图像采集处理流程图
3.3 网络服务器
系统采用Boa 服务器。Boa 是一种非常小巧的Web 服务器, 其可执行代码只有大约60 kB 左右。作为一种单任务Web 服务器,Boa 只能依次完成用户的请求,Boa 支持CGI,能够为CGI 程序fork 出一个进程来执行。板上移植该服务器,Boa 服务器默认开机自动运行,配置conf 文件。
服务器端应用程序使用servfox, servfox-R1_1_3 解压修改Makefile 文件:CC=arm-linux-gcc,编译后得到可执行文件servfox,下载到板上,输入命令chmod +x servfox 为它添加可执行属性。
客户端程序使用spcawiew, 该程序用于在Linux 主机上对服务器进行监控,无需移植。在Linux 上编译spcaview.由于此软件包依赖与libsdl,所以在安装spcaview 之前,需要安装SDL-1.2.13. 安装spcaview 软件后,在源文件目录上有3 个可执行文件,spcacat :简单图片的抓取工具,不能用于网络监视客户端,Spcaserv:流媒体服务器,Spcaview: 用来纪录数据流,也能用来播放数据,也能作为网络监视客户端用。
 
4 监控过程
 
4.1 在Linux 操作系统上的监控
正常启动运行开发板,运行服务器端程序servfox: servfox-d /dev/video0-s 320x240-w 7070。
在Linux 上运行: 。/spcaview-g-s 320x240-w 10.1.91.230:7070
其中10.1.91.230 是服务器的IP 地址,这样就可以在PC机上看见USB 摄像头采集进来的数据了。
系统是装在虚拟机中的fedora 9 linux 系统,可以流畅地观察到摄像头监控区域的情况。
4.2 Windows 操作系统上的监控
对于网络监控的客户端,能够跨平台的工具目前只有浏览器,通过浏览器来监控,无论是Linux、Windows、MacOS 或者其他的UNIX 系统,只要有图形界面的浏览器,在桌面环境下都可以对远程的摄像头所“控制”的范围进行监控。
Mini2440 上已经有Boa 服务器可供使用,Spcaview 中的http-java-applet 文件夹中已经包含了一个可以监控使用的web 页面,将该文件夹复制到Boa 服务器的主文件夹/www 下。
由于http-java-applet 文件夹内含的WEB 主页面(Index.html)包含了JAVA 控件,所以先在主机上安装JAVA 环境,让浏览器支持JAVA 插件。
安装好JRE 后, 在浏览器的地址栏上输入服务器地址,即可实现远程监控。
4.3 远程抓拍
通过web 表单提交CGI 来运行应用程序。
通用网关接口(CGI)规范允许Web 服务器执行其他的程序并将它们的输出储存在发送给Web 浏览器的文本、图形和音频中。服务器与CGI 程序的结合能够扩充World WideWeb 的能力。
CGI 程序可以由C、Perl 或者UNIX Shell 脚本等流行编程语言编写。
在本设计中,网页上的按钮shoot the picture 提交了一个名为V4L 的CGI 文件v4l.cgi,该文件是用shell 脚本编写的,用于在板上运行已编译好的图像采集程序并对抓拍的图片返回到新打开的网页中进行查看。
       Shell 脚本(v4l.cgi)内容如下:
       #! /bin/sh
       /www/http-java-applet/v4l2
       echo “Content-type: text/html; charset=gb2312”
       echo
       echo “……”
       echo “
 ”< >< src="”1.jpg“">
       exit 0
 
5 结束语
 
系统采用开源的Linux 系统,降低了开发成本,可以任意裁剪和制定内核,方便移植。与传统PC 机的监控系统相比,本系统具有体积小、成本低、可靠性强等优势。本系统还具有一定的扩展性,可以增加适当的功能扩展来满足用户更高的要求, 如在图像采集端加入设置入侵检测或者报警等控制功能。
关键字:Linux  视频监控系统  ARM 引用地址:基于Linux的视频监控系统构建方法

上一篇:嵌入式Linux Kernel错误跟踪技术
下一篇:基于安卓的非标准驱动程序设计

推荐阅读最新更新时间:2024-03-16 13:29

基于ARM核的AT91SAM7X256的TWI接口控制方法
1 前 言 I2C(Inter-Integrated Circuit)总线是由PHILIPS公司开发的两线式串行总线,用于连接微控制器及其外围设备。是微电子通信控制领域广泛采用的一种总线标准。它是同步通信的一种特殊形式,具有接口线少,控制方式简单,器件封装形式小,通信速率较高等优点。AT91SAM7X256是Atmel公司于2005年推出的基于ARM7的工业级芯片,他以体积小、功耗低、连接方式广泛、处理资源丰富、控制灵活等特点受到嵌入式领域开发人员的重视。本文介绍AT91SAM7X256的I2C控制器TWI接口(two-wired interface)的使用方法,并以I2C设备E2PROM和日历时钟芯片为例,实现AT91S
[单片机]
基于<font color='red'>ARM</font>核的AT91SAM7X256的TWI接口控制方法
基于ARM的I2C设备控制方法的实现研究
1 引 言 I2C总线是由Philips公司开发的2线式串行总线,由于其简单、高效、互联成本小而被广泛地用于微控制器与外围设备的连接。AT91SAM7X256是Atmel公司于2005年推出的基于ARM7的工业级芯片,他以体积小、功耗低、连接方式广泛、处理资源丰富、控制灵活等特点受到嵌入式领域开发人员的重视。本文介绍AT91SAM7X256的I2C控制器TWI接口(two-wired interface)的使用方法,并以I2C设备E2PROM和日历时钟芯片为例,实现AT91SAM7X256对时间数据的读取与存储。同时,为了验证时间数据的读取与存储是否正确,使用AT91SAM7X256的在线仿真器J-LINK将E2PROM
[工业控制]
基于<font color='red'>ARM</font>的I2C设备控制方法的实现研究
ARM嵌入式系统的异常及裸机开发设计
1、ARM的异常 异常在嵌入式开发中是很常见的事件,它也是非常重要的事件。简单来说,异常就是一种会打断程序正常执行的事件。异常通常又称为“中断”。 异常的种类大致可分为如下几种: 1、中断 IRQ / FIQ 由外部硬件触发的中断。 2、软中断 soft interrupt 由系统调用的中断事件,由软件产生的中断事件。 3、复位 Reset 4、未定义指令 5、数据异常 例如数据越界等。 中断: ARM 有两级外部中断:1、FIQ;2、IRQ。 但大多数的嵌入式系统都有多于两个的外部中断源,为了能正常响应所有的外部中断事件,就需要一个“中断控制器”。 嵌入式系统的中断响应架构大致如下图所示: 当在短时间内产生大量中断事件时
[单片机]
<font color='red'>ARM</font>嵌入式系统的异常及裸机开发设计
ARM正为下一波辉煌打下基础 风险不小
据《华尔街日报》网站报道,随着全球智能手机浪潮逐渐退去,芯片设计商ARM正在为其下一波辉煌打下基础。   ARM每年向苹果、三星等公司收取巨额的许可和授权费用,全球95%的智能手机中都用到了它的基础架构。这样的业绩使得 ARM成为了股市宠儿和业界中一家少有的来自欧洲的科技巨头。自2010年以来,ARM的市值已经膨胀了六倍以上,目前大约为246亿美元。   由于智能手机市场走向饱和,ARM正在酝酿其24年公司历史以来最为激进的一次转型。这家公司试图开启所谓的连接设备市场,这些设备包括健身手环和恒温器。另外,它还计划在利润丰厚的服务器市场从英特尔手中分得一杯羹。   一年多之前,ARM成立了 物联网 部
[单片机]
德州仪器推最新 C6A816x Integra™ DSP + ARM® 处理器可实现超高集成度与高性能
日前,德州仪器 (TI) 宣布在现有数字信号处理器 (DSP) + ARM® 产品的成功基础上推出 C6A816x Integra™ DSP + ARM 系列处理器。C6A816x Integra DSP + ARM 处理器不但可提供高达 1.5 GHz 的业界最快单内核浮点与定点 DSP 性能,而且还集成性能高达 1.5 GHz 的业界最快单内核 ARM Cortex™-A8 内核。Integra DSP + ARM 的组合架构堪称理想架构,因为 DSP 可专门用于处理密集型信号处理需求、复杂的数学函数以及影像处理算法,而 ARM 则可用于实现图形用户界面 (GUI)、网络连接、系统控制以及多种操作系统下的应用处理。这些操
[嵌入式]
德州仪器推最新 C6A816x Integra™ DSP + <font color='red'>ARM</font>® 处理器可实现超高集成度与高性能
基于ARM9嵌入式的RS485总线接口设计
随着ARM处理器应用的范围的不断深入,根据需求的不同ARM提供的外设也越来越丰富,常用的通信接口有RS232、RS485、CAN、以太网等。RS485总线凭其传输距离远、抗干扰能力强、价格低廉等优点在各种工业场合得到广泛的应用。设计使用ARM9处理器S3C2440内部集成的UART外设和RSM485模块构建具有电源隔离、电气隔离、总线保护的RS485总线接口,通过对嵌入式Linux系统RS232驱动程序的修改,使的在通过该修改后的串口驱动程序发送数据时,自动控制IO来实现RS485通信的方向控制,从而简化了RS485通信的控制流程,Linux下RS485通信程序通过对该串口的读写,实现与RS485总线上的其他设备通信。 1.通
[单片机]
基于<font color='red'>ARM</font>9嵌入式的RS485总线接口设计
如何用低成本的ARM Cortex-M微控制器让家电变得更安全
  自2007年起,家电厂商的所有新设计必须遵守IEC60335安全标准。为确保家电设备安全可靠,特别是设备故障不能威胁用户的人身安全,这套新标准涉及十分广泛的内容,从机械系统到嵌入电子元器件均有明确规定。   电子部分参照另一个标准,即适用于各种应用领域的IEC60730自动电子控制标准。对于嵌入式系统开发人员,附件H对于嵌入式系统开发人员尤为重要,因为该附件是关于可编程器件。白色家电通常使用多个微控制器:一个微控制器负责管理控制台,另一个管理阀门和电机控制。   根据设备故障导致的危险程度,该标准将软件分为A、B、C三类。如果家电安全不依靠软件,则该家电属于A类,如室内温控器或照明控制器。相反,如果软件用于防止安全隐患,如电子
[单片机]
如何用低成本的<font color='red'>ARM</font> Cortex-M微控制器让家电变得更安全
Cadence宣布推出用于进行基于ARM片上系统的性能分析与验证
 亮点: · Cadence Interconnect Workbench优化整合了ARM® CoreLink™ 、CCI-400™、NIC-400™、NIC-301™及ADB-400™系统知识产权(IP)的片上系统的性能。 · 使设计团队能快速生成性能分析测试台,这些测试台之前用手工需要数周时间才能建立。 Cadence设计系统公司今天宣布推出Cadence® Interconnect Workbench。Interconnect Workbench是一种软件解决方案,在整个片上系统设计过程对互连进行周期精确的性能分析,能在关键流量状况下快速识别出设计问题,并帮助用户改进器件性能、加快产品上市。Interconnec
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
热门活动
换一批
更多
设计资源 培训 开发板 精华推荐

最新单片机文章
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved