基于嵌入式Linux的视频采集编码系统实现一

2012-09-18 16:46:48来源: 互联网

摘要:本文设计了嵌入式远程监控系统中的视频采集端。提出了基于 ARM Linux的视频采集编码设计方案,采用 S3C2440 作为主处理器,选用 OV511+OV7650 构造USB 摄像头进行视频采集。介绍了USB 摄像头驱动程序的设计以及视频原始码流采集的实现过程。由于嵌入式Linux在各种视频设备中已经得到了广泛应用,故设计具有一定的通用性。

  关键词:嵌入式;Linux;视频采集;S3C2440

  引言

  嵌入式系统由于其体积小可便携,较 PC机而言很有优势。随着计算机技术的发展,一些基于PC机的应用也得以在嵌入式系统上实现。由于 USB 接口摄像头价格低廉,性能较好,即插即用,加上Linux下有Video4Linux标准支持对其编程,很容易集成到嵌入式系统,因此嵌入式系统视频采集设备通常用 USB 接口摄像头。

  1 芯片介绍

  S3C2440 处理器采用ARM920t内核,0.13um的CMOS 标准宏单元和存储器单元,支持高速总线和异步总线模式;具有 1G字节寻址空间;支持外部等待信号延长总线周期;支持掉电时SDRAM 自刷新模式;支持从 NAND flash存储器启动;采用 4KB 内部缓冲器进行启动引导。采用写穿式(write-through)或写回式(write-back)cache 操作来更新主存储器;写缓冲器可以保存 16个字的数据和 4 个地址[1]。

  OV511 是高性能摄像机到 USB 接口单片控制芯片,它极大的简化了单片 CMOS 图像传感器和USB 的接口,其片上增加256K DRAM 和一个 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所需的控制信号,并接受来自 OV7650的同

  步输出信号并将输入图像数据通过内置的 USB 控制器和外接的 USB 收发器经USB 总线送入ARM,然后进行压缩编码、发送等处理,其硬件框图见图 1。

  3 USB 摄像头驱动

  设备驱动程序可以看成 Linux内核与外部设备之间的接口。设备驱动程序向应用程序屏蔽了硬件实现了的细节,使得应用程序可以像操作普通文件一样来操作外部设备,可以使用和操作文件中相同的、标准的系统调用接口函数来完成对硬件设备的打开、关闭、读写和 I/O控制操作,而驱动程序的主要任务也就是要实现这些系统调用函数[4]。

  Linux 视频采集设备的正常运行依赖于对 Video4Linux标准的支持。Video4Linux设备的驱动程序需要提供基本的 I/O 操作接口函数 open ,read ,write和对中断处理的实现、内存映射功能以及对I/O 通道的控制接口函数 ioctl 的实现等,并把它们定义在 struct video_device中。所以首先在驱动程序中声明一个 video_device 结构,并为其指定文件操作函数指针数组fops 向系统注册。应用程序发出文件操作的相关命令时,Linux 内核根据这些指针调用相应函数,并将该结构作为参数传递给它们,实现驱动与内核之间的通信。

  Linux 内核是依据设备号来操作设备文件的,内核中摄像头对应的设备文件名为/dev/video,主设备号是81,次设备号根据摄像头数目来确定,本系统中仅使用一个摄像头。因此没有此设备号,所以可以通过mknod /dev/video0 c 81 0来创建节点,驱动程序原理如图2。

关键字:嵌入式  Linux  视频采集  编码系统

编辑:神话 引用地址:http://www.eeworld.com.cn/mndz/2012/0918/article_16832.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。
论坛活动 E手掌握
微信扫一扫加关注
论坛活动 E手掌握
芯片资讯 锐利解读
微信扫一扫加关注
芯片资讯 锐利解读
推荐阅读
全部
嵌入式
Linux
视频采集
编码系统

小广播


Warning: file_get_contents() [function.file-get-contents]: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /Data/webapps/cms/phpcms/libs/functions/global.func.php on line 2075

Warning: file_get_contents(http://training.eeworld.com.cn/shareCourseAPI/analog?count=5&csfl=no) [function.file-get-contents]: failed to open stream: php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution in /Data/webapps/cms/phpcms/libs/functions/global.func.php on line 2075

Warning: array_values() [function.array-values]: The argument should be an array in /Data/webapps/cms/SSI/show_training_SSI.php on line 16

大学堂最新课程更多


Warning: Invalid argument supplied for foreach() in /Data/webapps/cms/SSI/show_training_SSI.php on line 23

独家专题更多

迎接创新的黄金时代 无创想,不奇迹
迎接创新的黄金时代 无创想,不奇迹
​TE工程师帮助将不可能变成可能,通过技术突破,使世界更加清洁、安全和美好。
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
TTI携TE传感器样片与你相见,一起传感未来
富士通铁电随机存储器FRAM主题展馆
富士通铁电随机存储器FRAM主题展馆
馆内包含了 纵览FRAM、独立FRAM存储器专区、FRAM内置LSI专区三大部分内容。 
电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2016 EEWORLD.com.cn, Inc. All rights reserved