APP下载

基于S3C2410的嵌入式视频监控系统的设计

2014-05-30许敏

电脑知识与技术 2014年8期
关键词:视频监控嵌入式

许敏

摘要:针对工业生产、交通、智能办公、银行等场所对以视频监控的广泛使用,设计一种基于S3C2410为核心芯片搭建硬件平台,采用嵌入式Linux软件操作开发系统,通过 Liunx软件操作平台,实现视频数据的采集、图像编码、传输和保存。使用USB摄像头视频图像采集处理模块、GPRS无线数据传输等硬件模块模块。通过Interne网络传输,通过网络与远程终端设备的通信,对视频进行远程监控,实时性强、成本底、性能稳定。

关键词:视频监控;嵌入式;S3C2410

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2014)08-1802-02

随着计算机和网络技术的迅速发展,采用嵌入式网络摄像机,具有数字化、智能化,必然是视频监控系统发展的必然趋势[1]。设计基于以S3C2410为核心的ARM嵌入式平台,结合图形采集模块,实现视频数据的采集、压缩以及传输。视频监控设备体积小、通讯便利,可以实现对各种移动终端设备或者以太网的直接接入。传统的视频监控系统采用数字芯片集成技术,信号处理速度低,导致系统的稳定性不过稳定,而嵌入式视频监控系统更具有网络化程度高、性能稳定的特点[2]。

1 硬件系统设计

系统的结构组成采用模块化设计,设备分为主控模块和各个功能模块,各个模块的组成通过特定的接口方式连接起来。远程实时监控系统采用Samsung公司的处理器S3C2410作为主控器件,S3C2410芯片支持Linux,有多个功能寄存器和常用接口,控制系统协议的转化,可以通过以太网控制器控制物理层的芯片[3]。实现对视频的采集,外围电路的配置扩展了64 Mbyte的16 bit FLASH和64 Mbyte的32 bit SDRAM,通过GPIO与以太网控制芯片CS8900A的连接扩展为网络接口。视频的获取使用与Linux兼容性好、图像流畅、清晰图高的,有视频压缩编码芯片的ZC0301P摄像头,实现JPEG压缩,通过USB口将摄像头连接到处理器上,来进行对视频数据的采集和处理,然后通过GPRS无线数据网络将视频传输到远程移动终端上显示。系统的硬件结构如图1。

2 系统的总体架构

该嵌入式视频监控系统主要由服务器端和客户端组成。服务器端有图像采集模块、视频图像网络传输GPRS模块组成,将图像数据进行压缩、编码后输出JPEG格式的二进制位流,然后将采集的一帧JPEG图像的耳机去位流通过接口发送到远程终端设备上[4]。客户端的功能是实现远程终端设备的视频显示。①视频采集:在硬件系统中,摄像头ZC0301与S3C2410通过USB接口相接,进行接口通信需要在Linux内核中安装支持和加载ZC0301的USB硬件驱动模块。摄像头捕获的图像数据通过USB接口传输到S3C2410处理器中,S3C2410对采集到的图像进行实时的编码和压缩,编码后传输到缓冲区,等待发送。②网络无线数据传输:采用CS8900A作为网络接口,S3C2410通过地址、数据、控制线和内部寄存器的设置对CS8900A网络芯片进行控制和通信[5]。CS8900A以太网控制芯片通过DMA通道进行数据的传输。GPRS模块是具有网络功能的芯片,通过串行协议的通信方式,将采集得到的JPEG数据打包成资料包,通过Internet接入服务器连接。③远程移动终端设备通过以太网连接到网络服务器,将视频实时显示出来,实现远程监控。系统总体架构如图2。

3 软件设计与实现

嵌入式视频监控系统的主要部分是有软件程序设计来实现,软件部分的设计主要包括视频采集程序、视频传输程序以及客户端网络连接程序。

使用常用的Video4Linux接口函数访问USB摄像头设备,捕获生成实时的视频流[6]。Video4Linux是Linux对视频设备的内核级驱动,是Linux下的一个统一的用于获取视频和音频数据的API接口,因此在编译内核的时候,在内核的/kernel目录下输入make menuconfig命令进行相应的选择,在Multimedia devices选项下选择【*】Video For Linux。使用ZC0301P芯片摄像头,Linux内核对此不支持,要对其驱动进行加载。采用Linux下通用的摄像头驱动spca5xx。下载对应的内核的驱动补丁,然后将其放倒内核源码的/driver/usb目录下解压、打补丁。内核编译后将生产摄像头驱动模块:spca5xx.o文件,使用insmod命令加载spca5xx.o文件,最后系统便会在/dev/下生成video 文件。使用Video4Linux支持的structv4_struct数据结构[7],成员结构的定义如下

Struct vdIn{

int fd; /*设备描述符*/

struct video_channel ; /*各个信号源的属性*/

struct video_picture; /*设备采集图像各种属性*/

struct video_mbuf ; /*摄像头存储器缓冲的帧信息*/

struct video_mmap; /*用于内存映射*/

int hdrheight;

……

视频图像采集程序分为频采集设备的初始化、打开视频设备、获取设备信息3个部分。

初始化采集设备函数: if (init_videoIn(videoIn, dev, width, height, fps, format, 1) < 0) { IPRINT("init_VideoIn failed\n");

closelog();

exit(EXIT_FAILURE); }

②打开视频设备函数:if ((vd→fd = open(vd→videodevice, O_RDWR)) == -1) { perror("ERROR opening V4L interface"); return -1; }

③获取图像信息函数:int input_run(void) { pglobal→buf = malloc(videoIn→framesizeIn);

if (pglobal→buf == NULL) { fprintf(stderr, "could not allocate memory\n");

exit(EXIT_FAILURE); }

4 结束语

基于嵌入式的视频监控系统,使用S3C2410芯片和ZC0301视频处理芯片,应用Linux操作系统,设计基于ARM平台的嵌入式视频监控系统,使视频传输流畅、稳定性高,功耗低,构建成本低廉,能够被多种移动终端设备应用,实现实时的视频监控,实现对现场监测的智能化。

参考文献:

[1] 郑鹭斌,纪景清,陈华云.嵌入式网络摄像机的设计与实现[J].计算机技术与发,2012,22(1):168-169.

[2] 许刚.基于ARM11的嵌入式视频采集系统设计[J].测控技术,2013,32(4):37-38.

[3] 照敏,杨恢先,汤安平.基于S3C2410的嵌入式Linux系统移植的研究[J].电子器件,2008,31(6):1947-1948.

[4] 张敏海,吴新开,张婷婷.基于JPEG压缩编码算法的数字图像处理系统[J].计算机系统应用,2012,10(22):135-136.

[5] 常锋,孟传良.基于ARM-Linux的网络驱动程序设计[J].通信技术,2012,45(6):32-33.

[6] 钱鹰,陈胜利.基于嵌入式平台的USB摄像头图像采集及显示[J].电子设计工程,2013,21(3):140-141.

[7] 趙春媛,李萌,韩会山.基于ARM9的无线视频监控系统设计与实现[J].计算机工程与设计,2012,33(2):531-532.

猜你喜欢

视频监控嵌入式
TS系列红外传感器在嵌入式控制系统中的应用
嵌入式系统通信技术的应用
搭建基于Qt的嵌入式开发平台
嵌入式软PLC在电镀生产流程控制系统中的应用
基于视频图像采集移动目标检测系统的设计
数字化监控系统的企业应用
基于嵌入式Linux的视频监控系统的设计与实现
基于HTML5的视频监控微课设计浅析
智能视频检索技术在校园安防建设中的发展应用
Altera加入嵌入式视觉联盟