首页
|
新闻
|
新品
|
文库
|
方案
|
视频
|
下载
|
商城
|
开发板
|
数据中心
|
座谈新版
|
培训
|
工具
|
博客
|
论坛
|
百科
|
GEC
|
活动
|
主题月
|
电子展
注册
登录
论坛
博客
搜索
帮助
导航
默认风格
uchome
discuz6
GreenM
»
MCU 单片机技术
» 基于S3C2410嵌入式视频监控系统的研究
返回列表
回复
发帖
发新话题
发布投票
发布悬赏
发布辩论
发布活动
发布视频
发布商品
基于S3C2410嵌入式视频监控系统的研究
发短消息
加为好友
我是MT
当前离线
UID
1023166
帖子
6651
精华
0
积分
3328
阅读权限
90
来自
燕山大学
在线时间
230 小时
注册时间
2013-12-19
最后登录
2016-1-5
论坛元老
UID
1023166
性别
男
来自
燕山大学
1
#
打印
字体大小:
t
T
我是MT
发表于 2015-11-6 20:30
|
只看该作者
基于S3C2410嵌入式视频监控系统的研究
视频监控
,
嵌入式
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。
收藏
分享
评分
回复
引用
订阅
TOP
返回列表
电商论坛
Pine A64
资料下载
方案分享
FAQ
行业应用
消费电子
便携式设备
医疗电子
汽车电子
工业控制
热门技术
智能可穿戴
3D打印
智能家居
综合设计
示波器技术
存储器
电子制造
计算机和外设
软件开发
分立器件
传感器技术
无源元件
资料共享
PCB综合技术
综合技术交流
EDA
MCU 单片机技术
ST MCU
Freescale MCU
NXP MCU
新唐 MCU
MIPS
X86
ARM
PowerPC
DSP技术
嵌入式技术
FPGA/CPLD可编程逻辑
模拟电路
数字电路
富士通半导体FRAM 铁电存储器“免费样片”使用心得
电源与功率管理
LED技术
测试测量
通信技术
3G
无线技术
微波在线
综合交流区
职场驿站
活动专区
在线座谈交流区
紧缺人才培训课程交流区
意见和建议