嵌入式视频监控系统设计方案

发布者:pengbinyyy最新更新时间:2013-02-19 来源: dzsc关键字:视频监控系统  S3C2440  网络化程度 手机看文章 扫描二维码
随时随地手机看文章

    引言
  
    相比传统视频监控系统,嵌入式视频监控系统具有体积小、实时性强、性价比高、可靠性高、组网方便、可远程监控等优点,因而更适用于工业控制、银行、政府部门的安防系统中。本文提供的这套系统,采用的s3C2440具有更高的性价比,并且基于B/S架构来构建网络进行数据传输,用户可直接通过浏览器访问,相比C/S架构,本系统更符合客户对网络化的要求。

    1 嵌入式视频监控系统方案

    采用模块化设计方法,将系统分为3个功能模块,分别是:前端视频采集及警报模块、嵌入式Web服务器模块、后端用户监视模块。前端视频采集及警报模块负责视频的采集、存储、处理及传输,并实时监控现场环境温度,提供火险预警。嵌入式Web服务器模块则负责处理监控端发来的请求并为用户提供实时监控数据;后端用户监视模块实现对远程的实时监控,并与web服务器交互。整个系统结构框图如图1所示。

    2 系统前端部分的实现

    2.1 前端软件平台的搭建

    首先,在PC上建立交叉开发环境。然后进行Boot—loader的移植,本系统使用U-Boot一1.16,它支持10种处理器,214种开发板Ⅲ。然而对于本系统所选用的S3C2440开发板,它并没有直接支持,但由于其支持s3c24lo开发板,因而只需对代码修进行少量的修改,即可实现对本系统的支持。主要工作包括修改SDRAM的配置;分频比(FCLK、HCLK、PcLK);系统时钟获取函数(get’PCLK()、get_HCLK()、get一PLLCLK()等);实现对NAND Flash、yaffs文件系统烧写的支持等。完成Boot—loader的移植后,即可进行Linux内核的移植,其主要任务是添加本系统相关硬件的驱动程序,如USB、网卡等,并对其进行相应的修改,使其支持S3C2440平台,然后静态编译入内核。针对本系统摄像头驱动采用动态加载的方式,在进行内核配置的时候需要选中“L0adable modulesupport”选项。最后利用Busybox来构建根文件系统。

    现场报警功能部分的实现,采用温度传感器Dsl8820实时采集现场温度,温度预警值设为50℃,当温度超过该预警值,立即驱动前端机上的蜂鸣器,提醒现场人员环境出现异常,可能有火情。

    2.2 前端视频采集的实现

    Vide04“nux(简称V4L)是Ljnux中关于视频设备的内核驱动,它为针对视频设备的应用程序编程提供了一系列接口函数印]。本系统使用UsB口摄像头采集视频数据,首先要开发相应的驱动程序,即针对usB摄像头设备/dev/videoo,进行视频图像采集方面的程序设计。要完成针对基于V4L的USB视频数据采集,首先要获取视频设备的设备信息,初始化采集窗口、色度模式、帧状态,然后才能进行视频图像的采集。视频采集流程如图2所示。

    在获取到设备信息并设置完摄像头参数后,即可进行数据采集,本系统使用mmap()把设备文件映射到内存中,从而绕过内核缓冲区,加速I/O访问速度。具体操作如下:

    首先,使用ioctl(vide伊>fd,VIDIocGMBuF,&(vide扩>videombuf)函数获得摄像头存储缓冲区的帧信息(其中、,id∞为struct vdIn*),之后修改、,ideo—map中的设置。然后将摄像头对应的设备文件映射到内存区,使用video->pFramebuffer一((unsigned char*)mmap(0,、,ide0->、,ideombu£si距,PROT—READ I PROT—WRITE,MAP-SHARED,、rideo->fd,o)。该映射内容区可读可写,并且不同进程间可共享。接着就可进行视频的截取了,使用函数ioctl(video->fd,VIDIOCMCAPTURE,&(video->mmap)),若成功,便开始截取一帧视频数据,最后调用VDlOcsYNC等待一帧截取结束。[page]

    2.3 视频流网络传输的实现

    本系统视频的网络传输是基于面向连接的TCP协议来实现。TcP/IP协议数据传输可分为3个阶段:建立连接,传输数据,断开连接[6]。首先服务器通过socket()函数创建套接字,使用bind()函数将创建好的套接字与端口绑定,然后调用listen()函数使服务器处于监听状态,等待客户端应用程序的连接请求。客户端应用程序通过打开一个socket即套接字,来使用TCP服务。当服务器接收到用户的连接请求后,服务器调用accept()函数建立双方连接,响应客户的请求,并创建新线程,该线程负责把数据发送给用户。

    3 嵌入式Web服务器的设计

    目前,B/S模式的网络结构因其具有先进的开发技术、优越的可管理性和可维护性,以及模式简单方便等优点而成为最流行的应用方式"]。本系统采用的正是该结构,因而用户通过嵌入式Web服务器,使用IE浏览器即可远程访问嵌入式设备,实现对现场的远程监。

    Boa是Linux支持web服务器之一,它是一个单任务的http服务器,具有代码结构简单、支持动态CGI、“p服务,并且源代码开放等优点,因而特别适合在嵌入式系统中用做web服务器n]。从网上下载其源代码Boa—o.94.13.tar.gz,其在本系统上的移植主要包括2个部分:src下的文件修改和config文件修改。

    boa—o.94.13/src文件的修改:首先设置boa—o.94/Makefile文件中的编译器变量:CC=/arm一1inux-gcc,CPP一/arnl_linux—gcc_E;并修改编译方式:LDFLAGS=一g—static。然后在文件compat.h中找到宏定义#defineTIMEz0NELOFFSET(foo)foo##一>tm—gmtoff并修改为#define TIMEZONE一0FFSET(foo)f00->tm—gmtoff。接着便可在boa—o.94/src/下执行make进行编译,从而得到的可执行程序为boa,使用串口将其下载到目标机上,完成移植。

    boa—O。94/boa.conf文件的修改,由于boa必须以root身份启动,所以将User nobody修改为User mot,Groupnogroup修改为Group r00t,即赋予管理员权限;修改服务器名字,即将ServerName www.your.org.here修改为serverName sm2440;修改DocumentRoot/var/www为
DocumentRoot/home/web,即设置HTML文档的主目录为/home/web;最后指明nime.types文件位置为Mime—Types/etc/milne.types;其他采用默认设置即可。最后将boa-0.94/boa.conf拷贝到/etc/boa/目录下,配置好Web服务器,就可以进行远程访问了。

    4 实现客户端视频数据接收应用程序

    本系统的web客户端采用Java Applet为用户提供一个管理人口和显示界面,Java Applet程序嵌入于HTML文档并能在标准的浏览器中显示运行,这种方式不用专门的开发软件与网络接口,是基于web网络应用程序的理想选择。本系统需要在显示页面中嵌入播放器程序实时播放前端获取的监控视频。其中视频数据接收是客户端软件设计的关键,其实现如下:

    首先建立网络通信,即创建套接字,输入输出流。然后分配接收缓冲区,即:byte[]buffer—new byte[5 12*1024];

    之后读取图像的头信息,并确认图像数据的正确性,即:int n=in.r∞d(bu“er,O,HDRLEN);

    其中HDRLEN为信息头长度,设置为50 B大小,通过对头信息中包含的约定字符进行判断,以确定是进一步接收图像数据,还是重新接收头信息。如果能正确读取图像头信息,就证明此次接收的视频数据流是正确的,接着就可以把头信息后的图像数据写入缓冲区,供播放显示:
n=HDRLEN;

    r—in.read(buffer,n,buffer.1ength-n);由于视频流缓冲区内接收的幅静态图像数据包含了图像头信息,因此需要将图像数据拷贝到另一缓冲区内,以获得单独的图像数据:

    byte[]buffeLimage=new byte[n];.
    for(int i一0;i    buffer.image[i]=buffer[i+HDRLEN]I

    接着从缓冲区buffer-image中读人数据:

    BufferedImage imagedata=
    Imagel0.read(new ByteArrayInputStream(buffer—image)),
    ImageIcon image—icon=new Image Icon(imageedate m-label.set Icon(image—icon),

    系统通过循环,实现不断读取,显示图像数据,用户便可从主页面上获取前端采集到的实时视频监控数据,画面流畅,无明显延时和画面停滞现象,达到监控目的。

    5 结束语

    目前,嵌入式产品方兴未艾口”。本文提出的这套嵌入式视频监控系统设计方案,采用性价比很高的ARM处理器与开源操作系统Linux相结合,具有高稳定性、低成本、低功耗等诸多优点,并且基于B/S模式,直接接入以太网,大量节省电缆开销,即插即用,实现跨平台监控,为用户提供了极大便利。本系统很好地体现了智能化、集成化、网络化、跨平台等优点,可广泛用于智能家居、智能交通、工厂等制造单位及需实时监控场所。

关键字:视频监控系统  S3C2440  网络化程度 引用地址:嵌入式视频监控系统设计方案

上一篇:基于S3C2410微处理器的触摸屏设计
下一篇:基于S3C44B0的布拉格光纤光栅传感信号处理系统的设计与实现

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

S3C2440与NAND FLASH(K9F1208)的接线分析
一、SDRAM(HY57V561620F)连线分析 1、 S3C2440 有27根地址线ADDR ,8根片选信号ngcs0-ngcs7,对应bank0-bank7,当访问bankx 的地址空间,ngcsx引脚为低电平,选中外设。 2^27=128MByte, 8*128Mbyte = 1Gbyte,所以S3C2440 总的寻址空间是1Gbyte。但市面上很少有32位宽度的单片SDRAM,一般选择2片16位SDRAM 扩展得到32位SDRAM. 2、这里选择的SDARM是HY57V561620F,4Mbit * 4bank *16I/O,共32Mbyte。 首先了解下SDRAM 的寻址原理。 SDRAM 内部是一个存储阵列,
[单片机]
<font color='red'>S3C2440</font>与NAND FLASH(K9F1208)的接线分析
(6)s3c2440用I2C接口访问EEPROM
在前面阅读理解了I2C的官方协议文档后,就拿s3c2440和EEPROM来验证一下. 本来是想用s3c2440的SDA和SCL管脚复用为GPIO来模拟的,但在没有示波器的情况下搞了一周,怎么都出不来,最后还是放弃了.甚至参考了linux下i2c-algo-bit.c和i2c-gpio.c,依然没调出来.如果有示波器,可能很快就能找到原因,现在完全不知道问题出在哪里.其实想用GPIO模拟I2C的目的很简单,以一种简单而又深刻的方式来理解I2C. 既然这条路暂时没法走,退而求其次,用s3c2440的I2C接口来访问EEPROM,只要按照datasheet的来做,基本上不用考虑时序咯. 从s3c2440和AT24
[单片机]
(6)<font color='red'>s3c2440</font>用I2C接口访问EEPROM
基于S3C2440的Linux内核移植和yaffs2文件系统制作--启动系统
第三章 启动系统 将前面两章生成的内核映像文件和根文件系统映像文件下载到mini2440开发板,查看启动信息。我成功移植启动信息如下: VIVI version 0.1.4 ( root@capcross ) (gcc version 2.95.3 20010315 (release)) #0.1.4 Mon Oct 27 10:18:15 CST 2008 MMU table base address = 0x33DFC000 Succeed memory mapping. DIVN_UPLL0 MPLLVal CLKDIVN:5h +------------------------------------------
[单片机]
S3C2440—2.裸机开发步骤及工具使用
一.裸机开发步骤简介 1.在X86架构的Windows系统中 1.建立工程 2.编辑源代码 3.编译(VC6.0) 4.运行 2.在X86架构的Ubuntu系统中 1.编辑源代码(vim) 2.编译(gcc) 3.运行 3.ARM裸机开发 1.编辑源代码(Windows:Source insight或者Notepad++) 2.编译(涉及到交叉编译:arm-linux-gcc) arm-linux-gcc是基于Linux系统的arm编译器,功能强大、稳定、支持qrm芯片多。 3.烧写 4.运行 注意: 使用ads(停止更新)、MDK编译器,是win系统的编译器,功能很弱,只适合个
[单片机]
<font color='red'>S3C2440</font>—2.裸机开发步骤及工具使用
测试系统数字稳压电源的实现
  引 言   直流稳压电源是一种比较常见的电子设备,一直被广泛地应用在电子电路、实验教学、科学研究等诸多领域。数字稳压电源是用脉宽调制波(PWM)来控制MOS管等开关器件的开通和关闭,从而实现电压电流的稳定输出。数字稳压电源还具备自诊断功能,能实现过压过流保护、故障警告等。   通过对所需求电源的分析,结合嵌入式控制技术,提出了一种基于S3C2440的测试系统数字稳压电源解决方案,以及实现该方案所采用的方法。该系统基于ARM 控制技术,对数据进行采样,运用适当的算法进行电压调节和电路保护,以达到为测试系统提供稳压电源的目的。设计的系统经过实际应用,所提供的电源稳定可靠,满足芯片测试所需电源的要求。在此给出了系统的硬件构架和软
[单片机]
测试系统数字稳压电源的实现
S3C2440硬件连接解析
S3c2440是三星公司推出的一款基于ARM920T的处理器,采用ARM内核,不同于单片机,无片上rom与ram,必须搭配相应的外围电路进行使用,现在,让我们从零开始进行这一块MCU的学习,为了入门简单方便,前期我不会搭载任何操作系统,本手册写到哪算哪. 1. 什么是nor flash启动和nand flash启动 在任何视屏教程里面,都会告诉你一个开关左右选择就能norflash启动或者nand flash启动,norflash启动能直接运行代码,nand flash启动不能直接运行代码,可是为什么呢? 要知道这一点,首先要明白nandflash和norflash的区别,首先,norflash是随机存储介质,也就是说,
[单片机]
<font color='red'>S3C2440</font>硬件连接解析
S3C2440裸机之用查询方式按键控制LED
前言 本文基于JZ2440开发板 一、思维导图 二、代码 1.key_led.c 代码如下(示例): /************************************************************************ * * 文件名:key_led.c * * 功能: 用EINT0(GPF0)按键控制D12(GPF6), 用EINT2(GPF2)按键控制D11(GPF5), 用EINT11(GPG3)按键控制D10(GPF4) * * 创建人:LiZhenhao * * 时间:2021年10月9日16:49:52 * * 版本号:1.0 * * 修改记录:无 * ********
[单片机]
<font color='red'>S3C2440</font>裸机之用查询方式按键控制LED
基于ARM-Linux和CDMA的远程视频监控系统
0 引言 CDMA(码分多址)无线网络具有覆盖面广,高效、低成本的特点,CDMA网络的数据传输速率可达200kb/s,这里开发的嵌入式远程视频监控系统就是充分利用CDMA无线网络技术和嵌入式系统的特点而搭建的数据传输系统,特别适合边远偏僻或不具备常规网络传输条件的地方使用,例如车载视频监控系统、交通路口(车牌实时监视)及城市路灯的监控等。 1 嵌入式Linux系统 嵌入式系统是以应用为中心、以计算机技术为基础、软件硬件可裁剪、适应对功能、可靠性、成本、体积、功耗要求严格的专用计算机系统,目前嵌入式系统已经无处不在,从汽车、家用微波炉、PDA(个人数字助理)、电视机、到工控生产现场、通信、仪器、仪表、汽车、船舶、航空、航天、军事装备
[嵌入式]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved