|
|
|
|
|
|
视频监控终端的ARM实现方法 |
|
日期:2009-6-6 10:57:46 |
本文介绍了一种基于ARM的视频监控系统的设计方案,随着半导体技术的飞速发展和多媒体视频编解码技术的日益成熟,高性能、复杂的视频流压缩算法在嵌入式系统中的应用成为了现实。如今监控系统多采用专用处理器或RISC嵌入式处理器与DSP相结合的方法实现,本系统采用软压缩算法,讨论了系统的硬件和软件设计。 整个视频监控系统采用C/S结构,从主体上分为两部分:服务器端和客户端。服务器端主要包括S3C2410平台上运行的采集、压缩、传输程序,客户端是PC机上运行的接收、解压、回放程序。视频监控终端从现场的摄像头捕获实时的视频信息,压缩之后通过以太网传输到视频监控服务器上。视频图像采集和打包发送在服务器端完成,图像的接收解包和回放将在客户端完成。系统采用模块化设计方案,主要包括以下几个模块:主控制器模块、储存电路模块、外围接口电路模块、电源和复位电路。 主控器模块是整个系统的核心,采用的S3C2410处理器是基于ARM920T处理器核的16/32位微控制器,提供了丰富的片内资源,支持Linux,是本系统的合适选择。它能完成整个系统的调度工作,在系统上电时配置所有需工作的芯片的功能寄存器,完成视频流的编码,并通过以太网控制器控制物理层芯片发送视频码流。主控器还需一些外围存储单元,SDRAM读写速度快,系统运行时把它作为内存单元使用。设计采用了64M的Nand Flash和64M的SDRAM。本设计用到的外设有USB接口,网卡接口,RS232接口和JTAG接口。视频监控终端的USB主控制器模块通过专用的USB集线器与多个USB摄像头相连。 本设计采用CS8900A扩展网络接口,它是通过内部寄存器的设置来适应不同的应用环境。S3C2410通过地址、数据、控制线以及片选信号线对CS8900A网络芯片进行控制和通信。CS8900A以太网控制芯片通过DMA通道进行数据的传输。RS-232接口与PC机串行总线相连,通过PC机对嵌入式系统进行相关信息显示和控制。而JTAG接口主要是对系统进行调试,还可将程序烧写到Flash中。 在硬件上搭建一个软件平台,搭建嵌入式Linux软件开发平台需要完成UBOOT移植、嵌入式Linux操作系统内核移植以及嵌入式Linux操作系统的设备驱动程序的开发等工作。在软件平台的基础上,开发系统的应用程序。借助交叉编译工具,开发视频监控终端上运行的采集、压缩、传输程序。本设计采用USB外置摄像头,在内核配置时要求以模块形式加载。把USB驱动程序编译成可以动态加载的模块,这样摄像头就可正常工作了。视频监控终端软件按功能分为三部分:视频采集、压缩、传输。这个软件的开发都是基于先前配置好的嵌入式内核。 使用Video4Linux接口函数访问USB摄像头设备,捕获实时的视频流。本文采用MPEG-4编码标准进行数据压缩。在网络上可以下载到开源的xvidcore软件作为视频压缩的核心算法,xvidcore是一个高效的、移植性很强的多媒体编码软件,将它在PC机上进行交叉编译,生成的文件拷贝到目标系统下。传输模块的作用在于把压缩之后的视频流传送到远程的PC机客户上,视频流数据的传输是基于TCP/IP协议。视频传输采用了标准的RTP传输协议。RTP是目前解决流媒体实时传输问题的最好办法,在Linux平台上进行实时流媒体编程。
|
|
|
|
|
|
|