基于ARM的视频采集系统的设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

摘要
随着经济的飞速发展,人们的安防意识不断增强,视频检测系统越来越广泛地被应用于各行各业。

如今,许多商场、银行和智能小区中都安装了红外探头或基于PC机的视频监测系统,由于其价格高昂,可靠性不高,传输距离短、需要有人值守等。

针对这种情况,寻求一种方法来改进这一状况,具有很大的实际意义。

近几年,随着嵌入式技术的快速发展,采用嵌入式系统的视频设备已在各领域中被广泛应用。

采用DSP嵌入式系统的视频设备设计的视频检测系统,实现了视频图像的采集、处理和网络传输,该系统具有体积小、功耗低、性能高、可便携等优点。

关键词:TCP/IP;ARM;视频采集系统
数字视频监控系统是以计算机或嵌入式系统为中心、视频处理技术为基础,是符合图像数据压缩的国际标准。

综合利用图像传感器、计算机网络、自动控制和人工智能等技术的一种新型监控系统。

由于数字视频监控系统对视频图像进行了数字化,所以与传统的模拟监控系统相比,数字监控具有许多优点。

数字化的视频系统可以充分利用计算机的快速处理能力,对其进行压缩、分析、存储和显示。

数字化视频处理技术提高了图像的质量与监控效率,使系统易于管理和维护。

整个系统是模块化结构,体积小,易于安装、使用和维护。

正是由于数字视频监控技术具有传统模拟监控技术无法比拟的优点,而且符合当前信息社会中数字化、网络化和智能化的发展趋势,所以数字视频监控技术正在逐步取代模拟监控技术,广泛应用于各行各业。

嵌入式系统以体积小、实时性强、性价比高、稳定性好等特点在社会的各个领域中得到了广泛应用。

笔者设计的一种嵌入式系统,以WinCE操作系统和ARM硬件平台为核心实现了对现场的实时监控,并通过无线网络把视频图像传输到主机端,以实现分析、存储和显示等功能。

2 设计要求
输入信号为1路A V视频信号,要求系统能对1路输入信号进行实时采集、数字化处理、压缩、存储,要保证一定的录像质量。

根据设计题目的要求,选择确定ARM芯片型号、视频采集芯片型号,完成系统硬件设计和程序设计。

3.1设计原理
ARM7 系列微处理器为低功耗的32 位RISC 处理器,最适合用于对价位和功耗要求较高的消费类应用。

ARM7 微处理器系列具有如下特点:
-具有嵌入式ICE-RT 逻辑,调试开发方便。

-极低的功耗,适合对功耗要求较高的应用,如便携式产品。

-能够提供0.9MIPS/MHz 的三级流水线结构。

-代码密度高并兼容16 位的Thumb 指令集。

-对操作系统的支持广泛,包括Windows CE、Linux、Palm OS 等。

-指令系统与ARM9 系列、ARM9E 系列和ARM10E 系列兼容,便于用户的产品升级换代。

-主频最高可达130MIPS,高速的运算处理能力能胜任绝大多数的复杂应用。

ARM7 系列微处理器的主要应用领域为:工业控制、Internet 设备、网络和调制解调器设备、移动电话等多种多媒体和嵌入式应用。

3.2视频监控系统总体设计
首先需要对系统进行总体规划,将系统划分成几个功能模块,确定各个模块的实现方法。

整个视频监控系统采用C/S结构,从主体上分为两部分:服务器端和客户端。

服务器端主要包括S3C4510平台上运行的采集、压缩、传输程序,客户端是PC机上运行的接收、解压、回放程序。

视频监控终端从摄像头捕获实时的视频信息,压缩之后通过以太网传输到视频监控服务器上。

如系统结构图(图1)所示,视频图像采集和打包发送在服务器端完成,图像的接收解包和回放将在客户端完成。

图1系统结构图
3.3系统的硬件设计
系统采用模块化设计方案,主要包括以下几个模块:主控制器模块、储存电路模块、外围接口电路模块、电源和复位电路,如图2所示
图2系统硬件结构图
S3C4510主控器模块
主控器模块是整个系统的核心,采用的S3C4510B处理器。

Samsung 公司的S3C45 10B 是基于以太网应用系统的高性价比16/32位RISC微控制器,内含一个由ARM 公司设计的16/32位ARM7TDMI RISC 处理器核,ARM7TDMI为低功耗、高性能的16/32核,最适合用于对价格及功耗敏感的应用场合。

S3C4510B的引脚分布图与结构图如图3,图4所示。

图3 S3C4510B的引脚分布图
图4 S3C4510B结构图
S3C4510B 的特性描述如下;
体系结构
—用于嵌入式以太网应用的集成系统
—全16/32 的RISC 架构
—支持大、小端模式。

内部架构为大端模式,外部存储器可为大、小端模式—内含效率高、功能强的ARM7TDMI 处理器核
—高性价比、基于JTAG 接口的调试方案
—边界扫描接口
系统管理器
—支持ROM/SRAM、FLASH、DRAM 和外部I/O 以8/16/32 位的方式操作
—带总线请求/应答引脚的外部总线控制器
—支持EDO/常规或SDRAM 存储器
—可编程的访问周期(可设定0~7 个等待周期)
— 4 字的写缓冲
—高性价比的从存储器到外围的DMA 接口
系统存储电路模块
主控器还需一些外围存储单元如Nand Flash,和SDRAM。

Nand Flash 中包含Lin ux 的Bootloader、系统内核、文件系统、应用程序以及环境变量和系统配置文件等;S DRAM读写速度快,系统运行时把它作为内存单元使用。

如图5.6所示。

图5 SDRAM
图6 RAM
外围电路模块
外围电路主要是以下几个电路,复位电路图,电源电路图以及JTAG电路,如图7,8,
9所示
图7 复位电路
图8 电源电路
图9 JTAG电路
3.4 系统的软件设计
视频监控终端的软件设计主要完成两方面的工作:
(1)在硬件上搭建一个软件平台,搭建嵌入式Linux软件开发平台需要完成UBOO T移植、嵌入式Linux操作系统内核移植以及嵌入式Linux操作系统的设备驱动程序的开发等工作。

(2)在软件平台的基础上,开发系统的应用程序。

借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。

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

构建嵌入式Linux开发平台需要先构建交叉编译环境,如图4所示。

一套完整的交叉编译环境包括主机和目标机。

在开发中主机是一台装有红帽公司的FedoreCore 2操作系统的PC机,目标机是基于S3C2410的视频监控终端。

选用的交叉编译器是GCC3.3.
4 for ARM版,嵌入式Linux内核源代码包版本号为2.6.8RC。

2.6.8RC版的Linux内核源代码包中包含了所有的功能模块。

系统中只用到了其中的一部分。

因此,编译内核之前首先要配置内核,裁减掉冗余的功能模块,经过定制的内核才符合系统设计。

具体步骤如下:
(1)键入命令make menuconfig,对内核进行配置,选择YAFFS文件系统,支持N FS启动,系统使用的是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、clos e、read、write等,系统调用操作时,嵌入式Linux内核将通过file_operations结构访问驱动程序提供的函数。

接着把USB驱动程序编译成可以动态加载的模块,这样摄像头就可正常工作了。

视频监控终端软件的设计
视频监控终端软件按功能分为三部分:视频采集、压缩、传输。

这个软件的开发都是基于先前配置好的嵌入式内核。

(1)视频采集部分
使用摄像头设备,捕获实时的视频流。

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

图10图像采集模块流程
(2)视频数据的压缩部分
在视频监控系统中,大量的数据需要通过网络传输,为了保证传输质量和传输实时性,就需要在传输之前进行编码压缩以减少数据量,本文采用MPEG-4编码标准进行数据压缩。

在网络上可以下载到开源的xvidcore软件作为视频压缩的核心算法,xvidco re是一个高效的、移植性很强的多媒体编码软件,将它在PC机上进行交叉编译,生成的文件拷贝到目标系统下。

(3) 视频数据传输部分
传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP/IP协议。

视频传输采用了标准的RTP传输协议。

RTP是目前解决流媒体实时传输问题的最好办法,在Linux平台上进行实时流媒体编程,需要使用一些开放源代码的RTP库,如LIBRTP、JRTPLIB等。

定义一种较为简单的握手协议:PC机端的采集程序不停地发请求数据包到采集终端,采集终端把已经捕获的图像打包返回给主
机。

每个RTP信息包被封装在UDP消息段中,然后再封装在IP数据包中发送出去。

接收方自动组装接收到的数据帧,还原成视频数据。

总结与致谢
本次设计设计设计了基于ARM的视频监控系统的设计方案,采用软压缩算法,讨论了系统的硬件和软件设计。

本系统和市场上其它视频监控系统相比,开发周期短,价格低廉,适用于对视频图像要求不太高的场合
通过本次课程设计,使我加强了对ARM的掌握和理解,巩固了我在《嵌入式系统及应用》课程中所学的基本理论知识和实验技能,使我对《嵌入式系统及应用》课程有了更深入的了解,进一步激发了我对所学专业学习的兴趣;提高了我的动手能力以及检索资料的能力。

对于以后的学习与工作都是极大的帮助。

在设计的过程和设计说明书的撰写过程中,高焕兵老师给予了我热心的帮助和大力的支持,给我提了诸多的宝贵意见,拓宽了我的思路。

在此我向老师致以崇高的敬意和衷心的感谢!
参考文献
[1] 杜春雷.ARM体系结构与编程[M].北京:清华大学出版社,2003.
[2] 周立功.ARM嵌入式Linux系统构建与驱动开发范例[M].北京:北京航空航天大学出版社,2006.
[3]斯洛斯(Sloss,A.N.).ARM嵌入式系统开发:软件设计与优化[M].北京:北京航空航天大学出版社,2005.
[4] ARM&Linux嵌入式系统教程.北京:北京航空航天大学出版社,2004.
[5] 陈赜.ARM9嵌入式技术及Linux高级实践教程[M] .北京:北京航空航天大学出版社,2005.
[6] 孙天泽,袁文菊.嵌入式设计及Linux驱动开发指南——基于ARM9处理器[M] .第2版.北京:电子工业出版社,2007.
[7] 田泽.ARM9嵌入式Linux开发实验与实践[M] .北京:北京航空航天大学出版社,2006.
[8] 于明.ARM9嵌入式系统设计与开发教程[M] .北京:电子工业出版社,2006.
[9] 赵星寒.ARM开发工具ADS原理与应用[M] .北京:北京航空航天大学出版社,2006.。

相关文档
最新文档