基于S3C2410嵌入式视频监控系统的研究

2011-02-15 17:55:34来源: 微计算机信息

1 系统硬件结构

  本系统采用模块化的结构设计思想,将设备分为主控模块和各个功能模块。主控模块和各功能模块之间有统一的或者特定的接口形式,用户可根据不同的需要选用不同的功能模块,各种类型的数据可以同时传输而不相互干扰,同时也可根据市场的需求继续扩展其它功能模块。远程无线视频监控系统是由以下几个模块组成:嵌入式 ARM2410 核心控制模块、自动报警模块一面使嵌入式模块上的蜂鸣器发出警报声,同时发送报警信号通过GPRS 网络及时的传回远端的监控管理中心,以便管理人员及时发现并处理火情、传感器数据处理模块、USB 摄像头视频图像采集处理模块、GPRS 无线数据传输模块、远程监控软件模块。

图1 系统结构图

  1.1 USB摄像头驱动

  USB核心在系统中起着重要的作用,它提供了一些专用的API供设备驱动层操作,而对主控制器的操作则由系统完成了,USB核心层对主控制器层的数据结构和操作进行了封装。在编写USB驱动时,只需要和USB核心层进行交互。对于具体设备的驱动编写主要也是设备层驱动的编写。Linux系统中USB结构如图2所示:


  在Linux内核中,设备驱动程序是一个个独立的“黑盒子”,使某个特定硬件响应一个定义良好的内部编程接口,这些接口完全隐藏了设备的工作细节。用户的操作通过一组标准化的调用执行,设备驱动负责将这些调用映射到作用于实际硬件设备特有的操作上。

  在Linux系统中,设备驱动程序编译好后,有两种实现方法:一种是修改系统内核源码,把驱动静态编译进内核,使其成为内核的一部分;另一种则是编译成可以动态加载的模块,由管理员动态的加载。如果把驱动程序译进内核,那么内核的大小会增加,内核的源文件也需要改变,并不能动态地释放,不利于系统的调试,所以在本系统中,为方便调试,把摄像头驱动程序编译成动态加载的模块。

  1.2 视频采集

  视频采集程序的流程如图3所示:


图3 视频采集流程图

  USB摄像头驱动成功后,需要编写视频采集的程序,这就需要了解Linux内核中关于视频设备的部分代码Video For Linux(简称V4L)。它为应用程序提供了一系列的接口函数,通过这些函数,可以执行打开、读写、关闭等基本的操作。设备驱动提供了read、write、open、dose等函数的具体实现,在内核中这些函数都可以调用。

  1.3 GPRS无线数据传输

  GPRS模块是具有登陆GPRS网络功能的芯片,只要外接SIM卡,通过串行协议与ARM处理器通信,将视频图像采集模块得到的JPEG数据以资料包的形式,先通过PPP和运营商的Internet接入服务器连接,然后把资料包发送到Internet上。

  GPRS无线数据传输模块软件结构设计总体可分为三个部分: 参数配置部分, 处理器将接收视频图像采集模块从串口输入的数据,同时对远程监控中心主机IP地址,串口通信参数等加以配置;连接远程监控中心主机, 在这一部分,系统将发起一个TCP或UDP连接;数据传输,首先处理器将判断接收的数据为远程配置数据,视频图像数据还是报警信号,如果是报警数据,则立刻停止视频图像数据的传输,将报警数据迅速发送出去。如果是JPEG图像数据,则GPRS模块将接收到的所有数据都发送出去。

2 系统软件设计

  2.1 嵌入式Linux移植

  本系统中,宿主机选择LINUX操作系统,并建立好交叉编译环境。目标机选定嵌入式LINUX作为操作系统,而目标系统的LINUX内核需要结合自己的硬件电路对内核代码进行移植修改才能够运行。本系统硬件系统为基于ARM9的S3C2410开发板,在内核的arch目录下有一个为”arm”的文件夹,正是存放的与ARM体系结构相关的代码。

  编译内核需要创建内核依赖关系、创建内核镜像文件和创建内核模块。首先执行makedep命令,读取配置过程生成的配置文件,来创建对应于配置的依赖关系树,从而决定哪些需要编译而那些不需要;接着需要make clean完成删除前面步骤留下的文件,以避免出现一些错误;然后便可以生成所需要的内核文件了,用make zImage来实现得到可移植的内核。

  除了内核的移植,还需要在开发板上移植启动代码,即BootLoader,初始化硬件系统并加载移植的Linux内核,此外文件系统也不可缺少。在BootLoader,Linux内核和文件系统成功移植后,便可以在目标系统上进行程序开发了。不过针对本系统的具体要求,还需要在开发板中添加USB摄像头的驱动,这样以后,便将开发板带入到一个适合本系统应用程序的运行环境。

  2.2 视频图像的编解码

  JPEG标准中定义了三种编码系统:①基于DCT的有损编码基本系统,可以用于绝大多数的压缩应用场合;②用于高压缩比、高精度或渐进重建应用的扩展编码系统;③用于无失真应用场合的无损系统。最常用的是基于DCT变换的顺序模式,称为基本系统。

  解压过程与压缩编码过程正好是一个相反的过程,从压缩过程中可以知道,图像数据经过DCT变换再量化之后用huffman熵编码进一步压缩而得到了压缩数据。所以要对图像进行解码首先需要进行huffman解码,接着需要将墒解码的数据根据具体的量化表进行还原再进行IDCT变化可以得到原来的图像数据。

  MJPEG(Motion JPEG,动态JPEG),是动态使用JPEG算法对视频信号进行压缩,其图像视频流的基本单元就是一帧一帧的JPEG图片。它的主要特点是基本不考虑视频流中不同帧之间的变化,只单独对某一帧进行压缩。MJPEG的优点是画质比较好,能产生高质量、全屏、全运动的视频、每帧可以任意存取,可以动态调整帧率、分辨率,而且其编码相对比较容易实现。

  本系统分为两个大的部分,目标机服务器软件与宿主机客户端软件。目标机服务器是采集和视频发送程序,两个线程分别完成采集和视频发送的功能;客户端软件主要用于接受TCP服务器的视频数据,并解码显示。系统工作原理如图4所示:


3 小结:

  本文作者创新点是:结构简单,功能完善,视频的采集、压缩以及传输都集成在一个嵌入式模块中。嵌入式系统软件是基于嵌入式Linux操作系统的,开发资源丰富,有助于建立功能强大、结果复杂的大系统。在软件设计时充分采用了分层体系思想,使得系统具有很好的逻辑性,方便以后的维护和移植。由于系统采用面向对象的模块化设计,扩展灵活,易于实现系统的模块化管理,也能降低系统集成的困难和成本。

参考文献:

  [1] 汪庆年,李桂勇,元美玲. 基于S3C2410 网络视频监控系统的设计与实现.微计算机信息,2007,12-2: 161-163。

  [2] 刘富强.数字视频监控系统开发及应用.北京:机械工业出版社,2003。

  [3] 陈俊宏.Embedded Linux嵌入式系统原理与实务.北京:中国铁道出版社,2004。

  [4] 马忠梅.ARM & Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004。

  [5] 郝荣霞,徐旭东,陈文博,基于网络摄像机的第三代视频监控系统的研究信息技术,2005年总第9期:120-122。

  [6] 胡永红,智能多路视频监控系统的设计,微机发展,2001年第2期:75-76。

关键字:S3C2410  视频监控  嵌入式Linux  ARM

编辑:冀凯 引用地址:http://www.eeworld.com.cn/afdz/2011/0215/article_3491.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
S3C2410
视频监控
嵌入式Linux
ARM

小广播

独家专题更多

富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
走,跟Molex一起去看《中国电子消费品趋势》!
走,跟Molex一起去看《中国电子消费品趋势》!
 
带你走进LED王国——Microchip LED应用专题
带你走进LED王国——Microchip LED应用专题
 

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 视频监控 智能卡 防盗报警 智能管理 处理器 传感器 其他技术 综合资讯 安防论坛

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved