摘要:本文设计了嵌入式远程监控系统中的视频采集端。提出了基于ARMLinux的视频采集编码设计方案linux重启命令,采用S3C2440作为主处理器,选用OV511+OV7650构造USB摄像头进行视频采集。介绍了USB摄像头驱动程序的设计以及视频原始帧率采集的实现过程。因为嵌入式Linux在各类视频设备中早已得到了广泛应用,故设计具有一定的通用性。
关键词:嵌入式;Linux;视频采集;S3C2440
序言
嵌入式系统因为其容积小可便携,较PC机而言很有优势。随着计算机技术的发展,一些基于PC机的应用也得以在嵌入式系统上实现。因为USB插口摄像头价钱低廉,性能较好,即插即用,加上Linux下有Video4Linux标准支持对其编程,很容易集成到嵌入式系统,因而嵌入式系统视频采集设备一般用USB插口摄像头。
1芯片介绍
S3C2440处理器采用ARM920920t内核,0.13um的CMOS标准宏单元和储存器单元linux 视频采集 软件,支持高速总线和异步总线模式;具有1G字节轮询空间;支持外部等待讯号延长总线周期;支持掉电时SDRAM自刷新模式;支持从NANDflash储存器启动;采用4KB内部缓冲器进行启动引导。采用写穿式(write-through)或写回式(write-back)cache操作来更新寻址储器;写缓冲器可以保存16个字的数据和4个地址[1]。
OV511是高性能摄像机到USB插口单片控制芯片,它极大的简化了单片CMOS图象传感和USB的插口,其片上降低256KDRAM和一个USB收发器,可以很容易构成基于USB的视频子系统。OV511最大视频传输设计使系统还能以愈发实时的形式获取大量的视频信息[2]。
OV7650是高集成度高帧率的COMS图象传感,它将所有摄像功能和矩阵处理功能都集成在片上。其像矩阵位640*480象素(30万象素),支持VGA,QVGA,CIF,QCIF四种帧率,可进行编程控制[3]。
2摄像头硬件
视频采集部份由OV511和OV7650组成。通过SCCB总线初始化OV7650和OV511,将OV7650设置为CIF采集,输出YUV422数据流;将OV511配置为YUV422格式输入,输出为YUV420数据流。OV511提供OV7650所需的控制讯号linux运维博客,并接受来自OV7650的同
步输出讯号并将输入图象数据通过外置的USB控制器和外接的USB收发器经USB总线送入ARM,之后进行压缩编码、发送等处理linux 视频采集 软件,其硬件框图见图1。
3USB摄像头驱动
设备驱动程序可以看成Linux内核与外部设备之间的插口。设备驱动程序向应用程序屏蔽了硬件实现了的细节,致使应用程序可以像操作普通文件一样来操作外部设备,可以使用和操作文件中相同的、标准的系统调用插口函数来完成对硬件设备的打开、关闭、读写和I/O控制操作,而驱动程序的主要任务也就是要实现这种系统调用函数[4]。
Linux视频采集设备的正常运行依赖于对Video4Linux标准的支持。Video4Linux设备的驱动程序须要提供基本的I/O操作插口函数open,read,write和对中断处理