新闻中心

EEPW首页 > 消费电子 > 设计应用 > 基于ARM的视频监控终端的设计与实现

基于ARM的视频监控终端的设计与实现

作者:武汉理工大学自动化学院 苏义鑫 胡 杰时间:2008-07-29来源:中电网收藏

系统的软件设计

本文引用地址:http://www.eepw.com.cn/article/86355.htm

  视频监控终端的软件设计主要完成两方面的工作:

  (1)在硬件上搭建一个软件平台,搭建软件开发平台需要完成UBOOT移植、操作系统内核移植以及操作系统的设备驱动程序的开发等工作。

  (2)在软件平台的基础上,开发系统的应用程序。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。

  构建基于S3C2410的Linux平台
  Linux具有许多优点,如开放源码;功能强大的内核,支持多用户、多线程、多进程、实时性好、功能强大稳定;大小功能可定制;支持多种体系结构。

  构建嵌入式Linux开发平台需要先构建交叉编译环境,如图4所示。一套完整的交叉编译环境包括主机和目标机。在开发中主机是一台装有红帽公司的FedoreCore 2操作系统的PC机,目标机是基于S3C2410的视频监控终端。选用的交叉编译器是GCC3.3.4 for 版,嵌入式Linux内核源代码包版本号为2.6.8RC。

 

  2.6.8RC版的Linux内核源代码包中包含了所有的功能模块。系统中只用到了其中的一部分。因此,编译内核之前首先要配置内核,裁减掉冗余的功能模块,经过定制的内核才符合系统设计。具体步骤如下:

  (1)键入命令make menuconfig,对内核进行配置,选择YAFFS文件系统,支持NFS启动,系统使用的是USB接口的摄像头,故要启用USB设备支持模块,包括USB设备文件支持模块、USB主控制器驱动模块等。此外,USB摄像头属于视频设备,为了使应用程序能够访问它,还需要启用Video4Linux模块。

  (2)用make dep命令生成内核程序间依赖关系。

  (3)make zImage命令生成内核映像文件。

  (4)make modules和make modules_install命令生成系统可加载模块。

  这样就生成了zImage内核映像文件,把它下载到目标平台的Flash中。

  本设计采用USB外置摄像头,在内核配置时要求以模块形式加载。首先要完成驱动程序,驱动中需要提供基本的I/O操作接口函数open、read、write、close的实现,对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioctl等,并把他们定义在struct file_operations中。这样当应用程序对设备文件进行诸如open、close、read、write等,系统调用操作时,嵌入式Linux内核将通过file_operations结构访问驱动程序提供的函数。接着把USB驱动程序编译成可以动态加载的模块,这样摄像头就可正常工作了。

  视频监控终端软件的设计
  视频监控终端软件按功能分为三部分:视频采集、压缩、传输。这个软件的开发都是基于先前配置好的嵌入式内核。

  (1)视频采集部分

  使用Video4Linux接口函数访问USB摄像头设备,捕获实时的视频流。首先完成v4l_struct数据结构的定义,如设备基本信息,图像属性,各个信号源属性等;采集模块一方面通过USB集线器采集USB摄像头中的图像,另一方面启动多个采集线程,分别在不同的端口上监听,一旦有请求连接,采集线程立即从设备缓冲区中把视频流数据读出,放入到视频处理缓冲区中进行下一步的处理。

  (2)视频数据的压缩部分

  在视频监控系统中,大量的数据需要通过网络传输,为了保证传输质量和传输实时性,就需要在传输之前进行编码压缩以减少数据量,本文采用MPEG-4编码标准进行数据压缩。在网络上可以下载到开源的xvidcore软件作为视频压缩的核心算法,xvidcore是一个高效的、移植性很强的多媒体编码软件,将它在PC机上进行交叉编译,生成的文件拷贝到目标系统下。

  (3) 视频数据传输部分

  传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP/IP协议。视频传输采用了标准的RTP传输协议。RTP是目前解决流媒体实时传输问题的最好办法,在Linux平台上进行实时流媒体编程,需要使用一些开放源代码的RTP库,如LIBRTP、JRTPLIB等。定义一种较为简单的握手协议:PC机端的采集程序不停地发请求数据包到采集终端,采集终端把已经捕获的图像打包返回给主机。每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中发送出去。接收方自动组装接收到的数据帧,还原成视频数据。

结束语

  本文介绍了一种基于的视频监控系统的设计方案,采用软压缩算法,讨论了系统的硬件和软件设计。本系统和市场上其它视频监控系统相比,开发周期短,价格低廉,适用于对视频图像要求不太高的场合。

linux操作系统文章专题:linux操作系统详解(linux不再难懂)

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭