嵌入式Linux应用开发教程课程设计(论文)视频采集程序设计_第1页
嵌入式Linux应用开发教程课程设计(论文)视频采集程序设计_第2页
嵌入式Linux应用开发教程课程设计(论文)视频采集程序设计_第3页
嵌入式Linux应用开发教程课程设计(论文)视频采集程序设计_第4页
嵌入式Linux应用开发教程课程设计(论文)视频采集程序设计_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、辽 宁 工 业 大 学 嵌入式linux应用开发教程 课程设计(论文)题目: 视频采集程序设计 院 (系): 电子与信息工程学院 专业班级: 计算机081班 学 号: 080401014 学生姓名: xxxxxx 指导教师: xxxx 教师职称: 讲师 起止时间: 11-01-05至11-01-09 课程设计(论文)任务及评语院(系):电子与信息工程学院 教研室:计算机科学与技术学 号080401014学生姓名专业班级计算机081课程设计(论文)题目视频采集程序设计课程设计(论文)任务课设主要内容:视频采集(video capture)把通过摄像头采集视频资料,然后将模拟视频转换成数字视频。而

2、数字视频既可以实时播放,也可以按照一定的格式保存起来以作将来观看。视频采集依然是当今社会上被广泛应用的技术,无论是企业,商店,医院,学校,甚至是街道,视频采集都无处不在。一、 目的根据实验平台所附带的摄像头,设计向应得驱动程序实现视频采集。而视频转换格式可以应用社会上已经成熟的技术。二、 要求l 了解相关摄像头的硬件和视频转换的相关资料l 设计视频采集模块工作流程,编写摄像头视频采集程序l 将程序和其他相关的视频处理模块下载到实验平台尝试运行指导教师评语及成绩平时成绩: 论文质量: 答 辩: 总成绩 : 指导教师签字: 年 月 日目 录第1章 需求分析11.1引言11.2可行性研究前提11.3

3、 对现有系统的分析21.4 对所建系统的分析21.5具体需求分析3第2章 工作原理52.1 实验箱工作原理52.2摄像头工作原理6第3章 硬件设计72.1硬件原理7第4章 软件设计94.1 usb摄像头驱动程序设计94.2基于vide04linux的视频采集模块设计11第5章 总结14参考文献15辽 宁 工 业 大 学 课 程 设 计 说 明 书 (论文)第1章 需求分析1.1引言背景:多媒体通信技术的发展为信息的获取和传输提供了丰富的手段,视频采集是其中不可缺少的重要组成部分。视频采集的手段多种多样,随着人们对降低系统成本和提高可靠性的迫切需求,基于嵌入式的视频采集系统成为新的研发热点。本方

4、案以s3c2410 微控制器作为硬件平台,通过移植具有实现硬件功能的linux 操作系统,实现了对视频数据的实时采集和存储。随着计算机技术及网络技术的迅猛发展,公安、安防行业的发展趋势必然是全面数字化、网络化。传统的模拟闭路电视监控系统有很多局限性:传输距离有限、无法联网, 而且模拟视频信号数据的存储会耗费大量的存储介质( 如录像带) , 查询取证时十分烦琐。基于个人计算机的视频监控系统终端功能较强,但稳定性不好,视频前端(如电压耦合元件等视频信号的采集、压缩、通讯)较为复杂, 可靠性不高。基于嵌入式linux视频的网络监控系统不需要用于处理模拟视频信号的个人计算机, 而是把视频服务器内置一个

5、嵌入式we b服务器,采用嵌入式实时多任务操作系统。基于嵌入式web监控系统由于把视频处理和web功能集成到一个体积很小的设备内,可以直接连入以太网,达到即插即看,省掉很多复杂的电缆,安装方便,用户无需专用软件。这些优点将使得基于嵌入式视频监控系统获得更广泛的应用。1.2可行性研究前提要求功能:这是一个远程视频采集与传输系统,主要负责对监控区域的监控,视频采集与传输,并在客户端对视频进行保存方便日后查看。目标克服传统视频监控系统的传输距离近,反应慢,故障率高和成本高的缺点,开发出新一代的基于网络的远程视频采集和传输,使之具有传输距离远,反应快,故障率低,成本低,易于安装和维护的特点。限制条件1

6、.3 对现有系统的分析1.模拟监控系统:主要有摄像头、视频矩阵监视器、录像机等组成,有视频电缆、控制电缆等连接。监视系统以模拟方式传输,一般传输距离不能太远,主要用于小范围内的监控,监控图像一般只能在控制中心查看。模拟监控系统的缺点是:通常只适合小范围的区域监控,系统的扩展能力差,无法形成有效的报警联动,由于各部分独立运作,相互之间的控制协议很难互通。2.数字监控系统:在这一代监控系统中,将各个摄像机获得的视频信号利用专门的压缩算法进行压缩,然后通过内部网络联到一个pc 机或工业计算机上,在这台作为核心的计算机上进行视频解压,提供视频监控服务。这一代的视频监控系统较模拟视频监控系统相比,无论在

7、图像质量、保存时间以及可靠性商均有了大幅度提高。但是视频数据的传输距离任然不远,还是达不到现在人们对视频监控的需求。所以说开发新一代远程视频采集与传输系统是相当有必要的。3处理流程和数据流程派专人在监控室内进行监控,要时时刻刻地看着监控器,没有主动报警功能。1.4 对所建系统的分析在监控区域进行视频采集,压缩后用网络进行传输到监控端,经过解压缩后显示视频图像。1.工作负荷:只需一人负责即可,有异常情况会触动警报器,工作量小。2.改进之处:提高了监控的距离和反应时间,智能化,无需时时刻刻观看监视器。3.技术条件方面的可行性互联网技术都已经很成熟,基于v4l 的视频采集技术也已经很成熟。1.5具体

8、需求分析1外部接口需求用户界面提供可视化的监控界面:一个视频窗口,一个ip 地址输入框,一个连接按钮,一个开始按钮,一个停止按钮和一个保存按钮。硬件接口支持各种常用摄像头和常用开发板。软件接口支持windows 和linux 操作系统,支持gcc 和c 编译器2 软硬件需求硬件系统客户端:普通pc中心服务器:处理能力较强的服务器监控端:arm s3c2410 开发板+usb ov511 芯片摄像头网络传输:双绞线网络连接设备:二层交换机软件系统客户端:运行在linux 操作系统下的基于qt3.3.8 版本开发的客户端程序中心服务器:运行在linux 操作系统下的基于qt3.3.8 版本开发的服

9、务端程序arm 摄像头服务端:运行在linux2.6.26 内核下的c 语言开发的服务端程序3 性能需求根据软件工程领域的技术水平和开发者的经验技术水平,可达到以下要求:监控距离:利用有线网络可实现远程和超远程监控,利用无线网络可实现几百米的健康响应时间:3 秒左右容量需求:存储器:至少1g视频清晰度:可清楚地区分不同的人和物体4 安全需求可在监控端设置访问权限第2章 工作原理2.1 实验箱工作原理1 samsung s3c2410微处理器本系统的嵌入式视频监控智能终端选用韩国samsung公司设计生产的一款 1632位risc微处理器$3c2440an钔汹,。$3c2410a采用了arm92

10、0t的内核,实现了mmu、iba总线,采用哈佛高速缓存体系结构,这一结构具有独立的16kb指令cache和16kb数据cache,其低功耗、高集成、全静态设计的特点非常适用于嵌入式视频监控系统。3c2440a微处理器提供一套完整的通用系统外设,使$3c2440a减少了整体 系统成本并且无需配置额外的组件,所包含的片上功能包括。”: 内核工作电压为12v,存储器供电电压为18v25v33v,部io设备供电电压33v,具备16kb icache、16kb dcache和mmu; 外部存储控制器(sdram控制和片选逻辑); 2通道usb主机控制器l通道usb设备控制器(11版); 4通道pwm1通

11、道内部定时器看门狗定时器; 8通道10比特adc和触摸屏接口;具有日历功能的rtc; 数码相机接口(支持最大4096x4096像素的输入、2048x2048像素的可缩 放输入);ac97解码器接口; 130个通用i/o,24路外部中断; 具有普通、慢速、空闲和掉电模式;带有pll片上时钟发生器。2存储器的设计嵌入式系统存储器一般包括sdram和flash两部分,flash是一种可进行电 擦写,掉电后信息不会丢失的存储器,用于存放程序代码、常量表以及一些系统掉电后需要保存的用户数据等,而sdram是系统的内存,它不具有掉电保持数据的特性,但其存取速度大大高于flash存储器,在系统中主要用作程序

12、的运行空间、数据及堆栈区,当系统启动时,cpu首先从复位地址(一般是ox00000000地址)读取启动代码,在完成系统的初始化后,程序代码被调入sdram中运行以提高系统的运行速度。 本系统的存储模块采用两片32m的sdram和一片64m的nand flash相结合, 完成系统存储电路的设计。$3c2410a的存储控制器提供了访问外部设备所需的信号,$3c2440a共有8个bank,每个bank可以连接128m的存储器,复位后代码总是从banko开始启动,$3c2440a支持两种启动模式:从nand flash引导启动和从nor flash引导启动。3 usb接口设计usb是通用串行总线(un

13、iversal serial bus)的简称,是一种可以同时处理 主机与具有usb接口的外设之间通信的电缆总线。usb的分时处理机制真正在硬 件意义上实现了外设的即插即用。 usb系统被定义为三个部分:usb集线器(usb hub),usb设备(usb device) 和usb主机(usbhost)。在一个完整的usb拓扑上,仅可以有一个主机,一个或 多个us8集线器和设备。为usb器件连接主机系统提供主机接口的部件被称为 usb主机控制器,它是由硬件、软件和固(firmware)组成的复合体。$3c2440a 处理器有2个usb主机接口和1个usb设备接口,因此电路设计相对简单,不需要扩展u

14、sb控制器。2.2摄像头工作原理景物通过镜头(lens)生成的光学图像投射到图像传感器表面上,然后转为电信号,经过a/d(模数转换)转换后变为数字图像信号,再送到数字信号处理芯片(dsp)中加工处理,再通过usb接口传输到开发板中处理,通过流媒体传输到internet中,远程用户通过打开web页面就可以看到图像了。第3章 硬件设计2.1硬件原理本文使用的系统平台硬件功能框图如图1所示。该平台采用samsung公司的处理器s3c2410。该处理器内部集成了arm公司arm920t处理器核的32位微控制器,资源丰富,带独立的16kb的指令cache和16kb数据cache、lcd控制器、ram控制

15、器、nand闪存控制器、3路uart、4路dma、4路带pwm的timer、并行i/o口、8路10位adc、touch screen接口、i2c接口、i2s接口、2个usb接口控制器、2路spi,主频最高可达203mhz。在处理器丰富资源的基础上,还进行了相关的配置和扩展,平台配置了16mb 16位的flash和64mb 32位的sdram。通过以太网控制器芯片dm9000e扩展了一个网口,另外引出了一个host usb接口。通过在usb接口上外接一个带usb口的摄像头,将采集到的视频图像数据放入输入缓冲区中。然后,或者保存成文件的形式,或者运行移植到平台上的图像处理程序,对缓冲的图像数据直接

16、进行相关处理,再保存并打成udp包。最后,通过网络接口将图像发送到internet上。本文只讨论其中视频采集部分的具体实现。图1 硬件框图图2 samsung $3c2410a芯片结构图图2.2数字音乐盒硬件电路图 第4章 软件设计4.1 usb摄像头驱动程序设计usb主机控制器驱动(hcd)是usb主机驱动程序中直接与硬件交互的软件模块;usb驱动(usbd)是usb主机驱动的核心,实现了与usb主控制器通信和控制usb主控制器的一些根本细节,并且它对系统软件的其他部分是隐蔽的。而usb设备类驱动则是与应用软件交互的软件模块,它主要实现特定的usb设备的访问、为应用程序提供访问接口等。usb

17、设备使用usb核心提供函数与设备通信, 所以它应该是与平台无关的。 本系统采用的是基于zx301p芯片的usb摄像头,采用michel xhaard主持 的一个开源的linux下的摄像头驱动项目spca5xx来开发该usb摄像头的驱动程 序。usb摄像头驱动制作过程:由于2.4.18的内核还不支持我们所要使用的usb摄像头驱动,所以先要安装补丁。下载补丁,我的补丁版本是usb-2.4.31.patch。打补丁的时候可能会出现问题,首先我们将补丁解压缩到/usr/pjf/kernel/drivers/usb 打补丁 patch -p1 usb-2.4.31.patch 这里可能会出现这样的错误:

18、rootlocalhost usb# patch -p1 usb multimedia devices -usb spca5xx sunplus vimicro sonix cameras,要把它配置成module。(即选m)。内核配置中默认的都是针对本开发板定制的选项,我们再根据实际情况对内核的功能进行添加修改即可,然后保存退出,产生.config文件。在编译内核的时候,make命令会按照这些变量来选择编译内核。如果变量的值为y,则说明需要编译此项功能。1首先运行命令make clean 这条命令是在正式编译内核之前把环境清理干净,保证没有不正确的.o文件存在。2然后是make dep 这条

19、命令是编译相关依赖文件,linux2.6之前的内核版本在编译的时候,必须建立依存关系。3最后是make modules 这条命令就是最终的编译命令。生成的内核映象文件zimage将会在/arch/arm/boot/目录下 4.2基于vide04linux的视频采集模块设计在linux系统下,视频采集设备的正常使用依赖于对vide04linux模块的支持。vide04linux(v4l)是linux的影像串流系统与嵌入式影像系统的基础。linux 在tv、多媒体上的应用是目前相当热门的研究领域,而其中最关键的技术则是 linux的vide04linux。它是linux系统中关于视频设备的内核驱动

20、,为linux 系统所支持的usb芯片摄像头提供统一的编程接口。一般来说,vide04linux设备的驱动程序中提供了基本的i0操作接口函数 open、read、write、close的实现,对中断处理的实现,内存映射功能的实现以及对io通道的控制接口函数ioctl的实现等,这些实现统一保存在结构体struct video device中,这样,应用程序对设备文件进行诸如open、close、read、write 等系统调用操作时,linux内核将通过video device结构访问vide04linux提供 的接口函数。在内核includelinuxvideodevh文件中,定义了在vide

21、04linux设备的驱动程序中所使用的一些通用的结构和符号。 在 driversmediavideovideodevc文件中,提供了一些内核接口函数,其中主要的接口函数和结构如下: int video_register_device(struct video_device*,int type,int 11r); 函数功能:实现linux视频设备在内核中的注册。 参数含义:struct video_ device*表示要注册的video _device结构; type表示注册的设备类型;nr表示需要注册的设备号。 extem void video_unregisterdevice(structv

22、ideo_device*); 函数功能:实现linux视频设备在内核中的注销。 参数含义:struct video _device*表示要注销的video _device结构; 关键数据结构struct video_ device的定义如下: struct video_device strcut module*owner; char name32; int type; int type2; int hardware; int minor; int(*open)(struct video_device*,mmode); void(*close)(struct video_device*); lo

23、ng(*read)(structvideo_device*,char*,unsigned long,int noblock); long(*write)(struct video_device,const char幸,unsigned long, int mnoblock); unsigned int(*poll)(structvideo_device*,struct file*,poll_table*); int (*ioctl)(stmct video_device*,unsigned int,void*); int(*mmap)(struct vm_are_strcut*vma,stru

24、ct video_device*,const char*, unsigned long); int (*initialize)(struct video_device*); ; 而在vide04linux应用程序中常用的数据结构如下: struct video capability grab_cap;voide_capability包含摄像头的基本信息,例如设备名称、支持的最大最小分辨率、信号源信息等,分别对应着结构体中的成员变量narne32、maxwidth、maxheight、minwidth、minheight、channels(信号 源个数)、type等。 struct video_picture grab_pic;video_picture包含设备采集图像的各种属性, 例如brightness(亮度)、hue(色调)、contrast(对比度)、whiteness(色度)、depth(深度)等。 truct video_mmap grab_buff video_mmap用于内存映射。 struct videombuf grab_vrn;videombuf利用mmap进行映射的帧信息,实际上是输入到摄像头存储器缓冲中的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论