《基于ARM的远程监控系统设计(毕业论文).doc》由会员分享,可在线阅读,更多相关《基于ARM的远程监控系统设计(毕业论文).doc(69页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 (2013届)本科毕业设计(论文)资料 题 目 名 称: 基于ARM的远程视频监控系统 学 院(部): 理 学 院 专 业: 电子信息科学与技术 学 生 姓 名: 班 级 学 号: 指导教师姓名: 职 称: 副教授 最终评定成绩: 2013届本科毕业设计(论文)资料第一部分 毕业论文(2013届)本科毕业设计(论文)学 院(部): 理 学 院专 业: 电子信息科学与技术学 生 姓 名: 班 级: 学号:指导教师姓名: 职称: 副教授最终评定成绩: 2013年6月本科毕业论文(设计)诚信声明本人郑重声明:所呈交的毕业论文(设计),题目基于ARM的远程视频监控系统是本人在指导教师的指导下,进行研
2、究工作所取得的成果。对本文的研究作出重要贡献的个人和集体,均已在文章以明确方式注明。除此之外,本论文(设计)不包含任何其他个人或集体已经发表或撰写过的作品成果。本人完全意识到本声明应承担的责任。作者签名:日期:摘 要 针对网络视频监控设备的实际应用需求,本文设计了一种基于ARM嵌入式技术的网络视频监控系统,其结合图像采集压缩编码、嵌入式系统和网络技术,设计了一套嵌入式网络视频监控系统,用以实现图像视频数据的采集、压缩与网络传输。该系统基于S3C2440的ARM920t芯片和嵌入式Linux操作系统,采用USB数码摄像头捕捉视频,经压缩编码,然后直接与网络相连,把采集到的数据传送到指定PC机上。
3、论文首先阐述了该课题的背景意义,对该设计系统的主要实现过程做了简介;然后对ARM硬件平台和Linux软件平台做了基本介绍,分析了其外围电路设计以及Linux系统内核结构;最后,也是本文重点设计部分-视频数据采集的实现,这部分在基于Video4Linux驱动模块的基础上,主要是用软件实现对视频数据的实时采集、传递;后面还简单的介绍了视频信号编码的实现以及网络数据传输的实现。本文的研究结果具有一定的工程实际意义,对基于IP技术的各种视频数据传输具有一定的参考价值。关键词: 嵌入式系统;ARM;视频监控系统:LINUX系统:图像采集与传输IABSTRACT Practical application
4、 demand of the network video surveillance equipment, this paper designs a network video monitoring system based on ARM embedded technology, the combination of image acquisition compression, embedded systems and network technology, design a set of embedded network video monitoring system, to realize
5、image video data collection, compression and network transmission. The system based on S3C2440 ARM920t chip and embedded Linux operating system, use USB digital camera to capture video, after compression, and then directly connected to the network, sends the collected data to the specified PC. Paper
6、 first describes the background significance of the subject, for the main implement process of the design system to do the introduction; Then the ARM hardware platform and to introduce the basic Linux software platform, analyzes its peripheral circuit design as well as the Linux kernel structure; Fi
7、nally, and this article focuses on the design part - the implementation of the video data collection, this part based on the Video4Linux drivers module on the basis of the main is to use the software realization of video data real time acquisition, transfer; Behind also simply introduces the realiza
8、tion of video signal coding and the realization of network data transmission. In this paper, the research results have certain practical significance, for all kinds of video data transmission based on IP technology has certain reference value. Keywords:Embedded system;ARM; video monitoring system;th
9、e LINUX system;Image acquisition and transmission III湖南工业大学本科毕业设计(论文) 目 录摘 要IABSTRACTII目 录IV第1章 绪论11.1 课题背景11.2 选题目的、意义11.3 系统设计内容21.4 系统方案设计2第 2 章 基于S3C2410的硬件开发平台42.1 ARM体系结构简介42.2 嵌入式系统的选取原则42.3 基于S3C2440A的开发系统52.4 开发平台的硬件模块介绍82.5 视频监控系统硬件电路设计11第3章 视频监控系统软件总设计143.1 视频监控系统软件总流程图设计143.2 视频监控系统软件各模块
10、功能设计15第4章 视频采集系统软件设计164.1视频采集系统的软件平台设计164.1.1 Bootloader的选择164.1.2 嵌入式Linux的编译174.1.3 建立根文件系统184.1.4 加载摄像头驱动程序19III4.2 视频采集系统的应用程序设计194.2.1 Video4Linux设备驱动加载194.2.2 视频采集流程214.2.3视频采集程序的实现22第5章 视频编码、传输程序设计255.1 视频编码程序设计255.2 视频网络传输程序的设计28第6章 视频采集模块的编译与仿真336.模块加载336.2程序仿真调试34结 论36参考文献38致 谢39附 录40附录一:设
11、计总流程图40附录二:视频采集系统的应用程序设计411 湖南工业大学本科毕业设计(论文) 第1章 绪论1.1 课题背景在当今社会是一个快速发展的社会,信息获取方便的能使我们领先一步,创造巨大的利润,信息也许是我们的一个重要的眼睛。图像在图像的客观事物,传神的描绘,是直观的和详细的信息表达,是一种重要的信息载体的人类。与科学技术的迅速发展和提高人民的物质生活水平,视频监控系统,以其直观、方便、信息内容的特征丰富,越来越受到人们的青睐,并已广泛应用于各行各业。有电梯监控、门禁、车库监控等等。电信行业有一个基站监控、银行系统和ATM监控、林业部门的消防监控,交通监控、交通监视非法等等。因为摄像机和电
12、视的出现,最初的模拟监控系统出现。经过长时间的发展和应用,它已经非常成熟,性能非常稳定,但由于模拟图像信息系统为主,对于图像处理和传输是采用模拟技术,不紧图像质量差,严重浪费系统资源,不容易形成一个复杂的网络结构,主要是单一功能的一种方式,单向的、集中的网络信息采集、监控功能可扩展性。所以,虽然系统已经发展到一个很高的水平,没有潜在的可以发现,和局限性。近几年来,伴随着计算机技术、通信技术等一系列技术的飞速发展,技术微型化和专业化逐渐成为信息技术发展的新趋势,而此时嵌入式产品恰好成为信息产业的主流。由于Linux 系统源代码开放、可以随意定制、易于在不同开发板上移植等一系列优点,使得它在嵌入式
13、系统中获得了越来越广泛的应用。越来越多的企业和研发机构都目标转向了嵌入式Linux的开发和研究上。1.2 选题目的、意义 近几年来,在人民生活水平普遍提高、国民经济快速发展的背景下,伴随着实时传送视频、音频、多媒体动画等数字模拟文件的技术、互联网的普及和多媒体技术在互联网上的应用成为了热点。与此同时,图像处理技术、计算机技术、视频压缩等飞速发展,视频监控系统开始广泛的应用于医院、政府、商场、交通、学校、银行等地方,并且呈现个性化的发展趋势,越来越多的实时化、网络化、数字化、多功能化等特性。传统的视频监控系统是伴随着电视机、电脑等电子产品的出现而出现,它出现后被广泛的应用于超市、银行、安保、学校
14、等公共场所。它一般采用模拟方式传输,通过视频电缆传送给控制中心,由于模拟技术所限,它具有以下缺点:通常只限于小范围的区域监控、系统扩展能力差、不利用实习控制等。然而伴随着互联网的普及、多媒体技术、和在互联网上的应用,实时传输多媒体动画、视频、音频、等数字媒体文件成为热点。而具有综合性强、低成本、高可靠性、和的嵌入式系统成为了实现这一目的的最佳载体。嵌入式系统因为具有实时性好、稳定性强等特点,所以在视频监控中得到快速发展。本文的主要介绍了数码摄像头采集数据、使用编码软件FFmeg、利用基于TCP/IP协议的网络来传输图像数据。其中使用数码摄像头,能避免对模拟数据的处理,能节约设计成本和设计时间;
15、使用编码软件FFmpeg,使图像压缩不需要依赖硬件实现,可移植性强;利用TCP/IP协议传输比传统的Modem串口传输速度快,出错率低。1.3 系统设计内容该系统主要目的在于实现对远程画面的实时监控,主要研究内容应该包括以下几方面:视频监控系统硬件平台的选取、视频监控系统软件平台设计、视频监控系统信号的采集,对采集到的信息进行压缩编码处理处理,把压缩后的信息通过网络传输给控制台PC机,在控制台对接收到的信息进行解码,得到现场视频监控图像,从而达到远程监控的目的。在本系统中将会着重介绍视频采集系统的软件模块功能实现。1.4 系统方案设计该系统主要设计内容包括视频采集系统的软硬件实现、视频压缩程序
16、、视频网络传输程序设计,把以上几个模块设计完整后,在基于ARM+Linux的平台上运行,即可达到远程画面的实时监控。该设计方案的整体结构框图如图1.4所示:视频压缩程序设计视频采集系统的软硬件实现远程监控端(视频监控)视频网络传输程序设计ARM硬件平台+Linux软件操作系统数码摄像头(前端数据采集)图1.4 方案整体结构图()视频采集系统的软硬件实现本设计中视频采集并未采用专用的视频采集卡去实现,而是通过加载Linux系统支持的Video4linux驱动程序,通过软件编程来实现对视频数据的采集,这样做不仅可以节省成本还可以缩短开发周期。并且,本设计中选取了带USB接口的数码摄像头来做前期采集
17、设备,可以避免对模拟数据的处理,并且ARM开发平台可以实现对USB接口的兼容。(2)视频编码系统设计对于采集到的视频数据,必须对其进行编码处理后再通过网络传输到主控机上。本文的视频编码部分主要依赖于Linux操作系统下的FFpmeg编码软件来实现,这样就不需要再使用专用的编码芯片,可以节省成本,并且能实现在不同开发平台上的移植与再利用。()视频网络传输程序设计嵌入式Linux系统具有完整的TCP/IP协议,因此,在本设计中,采用socket编程建立一个基于TCP/IP的网络传输程序。本文利用TCP/IP协议传输比传统的Modem串口传输速度快,出错率低。 第 2 章 基于S3C2410的硬件开
18、发平台2.1 ARM体系结构简介ARM(Advanced RISC Machine)处理器是由总部在英国的一家名为ARM公司设计的一款微机处理器,其实ARM公司本身不直接生产,其靠转让设计许可证来由与其合作的公司生产各具特色的处理器芯片,这使得世界上很多大半导体生产商直接从ARM公司购买其设计的微处理器核,然后根据各自不同的适用范围,加入合适的的外围电路,以此形成自己的独特特色的ARM微处理器芯片从而进入消费市场。就现在看来,ARM微处理器的使用十分广泛,其适用范围涵盖通信系统领域、遍及工业控制领域、消费类电子产品以及现在流行的智能家居、还有广泛使用的网络系统、无线通信技术系统等各类领域,占据
19、了32位RISC微处理器的70%以上的市场份额的ARM处理器技术正在快速渗入到我们日常生活的各个方面。其中,ARM处理器有以下特点:(1):大量使用寄存器,这使得指令执行速度更快,系统反应速度快;(2):大多数数据操作都在寄存器中完成,可以加快数据传输速度;(3):寻址方式灵活简单,使得程序的执行效率高。(4):试用范围广,能在恶劣环境下面使用。ARM处理器目前有多个系列,主要包括系列、ARM9系列、ARM10系列、SecuCore系列。本文是使用了ARM9系列的,它主要有以下有点:提供1.1MIPS| MHZ的哈弗结构;采用五级流水线,这使得执行指令的效率更高;全性能的MMU,支持Windo
20、ws CE、Linux、Palm Os 等多种主流嵌入式操作系统;支持数据Cache 和指令Cache ,具有更高的数据和指令执行能力,可以拓展多种外围部件。 2.2 嵌入式系统的选取原则在这个设计中最关键的第一步就是硬件平台和软件平台的选取,因为选取平台的好坏直接影响着本设计实现阶段的任务完成效率。而硬件和软件的选择主要包括硬件处理器、硬件外围部件、软件开发工具、软件操作系统、编程软件、编程语言、硬件调试工具、软件组件等,在这中间最重要的是处理器和操作系统的选择。(1)处理器选择在本设计中选用的是ARM920T微处理器,由于其具有高执行速度、低功耗能耗、价格相对较低等优点而在我们日常生活中得
21、到了广泛的应用,它主要应用于以下领域: 无线通信领域、常用消费电子、智能家居、各种成像设备等产品提供可运行的复杂操作系统的开放应用平台。 在海量存储、汽车电子电力、大型工业控制和各种网络应用等领域提供实时嵌入式应用。(2)操作系统的选择当系统越来越大、应用越来越多,使用操作系统很有必要。操作系统的作用有:统一管理系统资源、为用户提供访问硬件的接口、调度多个应用程序、管理文件系统等。在嵌入式领域可以选择的操作系统很多,比如:嵌入式Linux、VxWorks、Windows CE等。期中Linux是遵循GPL协议的开放源码的操作系统,使用时无需缴纳许可费用,内核可以任意裁剪,几乎支持所有的32位、
22、64位CPU;内核支持的硬件种类繁多,几乎可以从网络上找到所有的硬件驱动程序。这也是本设计中选择该操作系统的一个主要原因。2.3 基于S3C2440A的开发系统三星公司设计出的16/32位RISC微处理器S3C2440A,为我们常用的手持设备等小型家用器件提供了价格低、耗能低、性能高的小型微控制器的解决方案。为了降低整体系统使用成本,S3C2440A为使用者提供了丰富的内部设备。S3C2440A采用了ARM920t的内核,0.12um的CMOS标准宏单元和存储单元。其低功耗,简单且全静态设计特别适合于对成本和功率敏感型的应用。S3C2440A的杰出的特点是其核心处理器(CPU),是一个由Adv
23、anced RISC Machines 有限公司设计的16/32位ARM920T的RISC处理器。ARM920T实现了MMU、AMBA BUS和Harvard高速缓冲体系结构。这一结构具有独立的16KB指令Cache和16KB数据Cache,每个都是由具有8字长的行组成。通过提供一套完整的通用系统外设,S3C2440A减少整体系统成本和无需配置额外的组件。该芯片的内部结构图如图2.12.4所示,并且在图形下面附上芯片引脚相关说明,如表2.1-2.4所示:图2.1芯片的内部结构图一表2.1芯片引脚图一管脚模块功能简介UART实现串行口数据的输入输出JTAG支持ARM标准的嵌入式在线仿真与下载LC
24、D CTRL控制模块编程图2.2 芯片的内部结构图二表2.2芯片引脚图二管脚模块功能简介Address27路地址总线,地址总线是专门用来传送地址的,其可寻址空间227位图2.3 芯片的内部结构图三表2.3芯片引脚图三管脚模块功能简介Data数据总线,用于实现ARM板与外界数据信号的传输图2.4 芯片的内部结构图四图2.4 芯片引脚图四管脚模块功能简介VD电源接口,本开发板的电源可选范围较广,并且多出用到开发板电源,所以电源接口相对较为丰富GPCPC端口,输入输出数据传输端口USB本开发板有两个USB接口,可以接USB摄像头、USB键盘、USB鼠标 图2.5为本系统开发板的实物图:图2.5 系统
25、开发板的实际俯视图2.4 开发平台的硬件模块介绍本设计中使用的硬件平台是Samsung公司的S3C2440开发板,其主要包含如下几个模块:CPU处理器、SDRAM存储器、FALSH存储器、电源系统及接口、复位系统、网络接口等,接下来就对以上几个模块做简要介绍。(1)CPU处理器本开发板使用的是Samsung公司的S3c2440A处理器,主频400MHZ,最 高可达到533MHZ。S3C2440A采用了ARM920t的内核,其功耗低、结构简单, 且全静态设计,使它特别适用于对成本和功率敏感型的应用。S3C2440A突 出优点是其核心处理器是由Advanced RISC Machines有限公司设
26、计的 16/32位ARM920t的RISC处理器。(2)电源系统及接口本开发板的电源系统结构相对比较简单,其直接使用外接的5V电源,然后通过降压芯片来得到所需的3.3V、1.25V、1.8V电压。具体电路结构如图2.6-2.7所示: 图2.6 1.8V电源产生电路图2.6 3.3V电源产生电路(3)复位系统在该设计中用到的开发平台其使用的是专用复位芯片MAX811,来实现低电平复位,其电路结构如图2.5所示:图2.5 复位系统电路结构图(4)网络接口本开发板在在设计时,拓展了一个DM9200网卡芯片,用以实现对网络的支持,它可适应10M/100M网络,在使用时可以直接用普通的网线连接,即可实现
27、与开发板的网络连接。拓展DM9200网卡电路结构如图2.6所示:图2.6 拓展DM9200网卡电路结构图2.5 视频监控系统硬件电路设计本设计系统的硬件架构大致如图2.7所示:FLASH JTAG CPU S3C2440A 以太网控制器 DM9200远程客户端数码摄像头 USB SDRAM 图2.7 系统的硬件架构图在设计中,主要有用到开发板的JTAG接口、FLASH存储器、SDRAM存储器及DM9200网卡部分,下面就对这几个部件做个详细的介绍。(1)JTAG接口在本设计中,JTAG的主要功能是用来实现对开发板进行相关程序的调试与下载。JTAG接口主要包括4线,TDI、TDO、TCK、TMS
28、等,分被为数据输入线、数据输出线、时钟线、模式选择。其电路结构简图如图2.8所示:图2.8 JTAG接口电路结构简图(2)FSLAH在本设计中选用FSLAH型号为K9F1208,K9F1208是Samsung公司生产的512 Mb(64M8位)NAND Flash存储器。该存储器内部存储结构为块大小为(16 KB+512字节),页大小为528字节,528字节32页4 09块,可实现程序自动擦写、页程序、块擦除、智能的读写和擦除操作一次可以读/写或者擦除4页或者块的内容,内部有命令寄存器。其内部有很多寄存器,可以通过控制各类寄存器来实现对K9F1208的控制。其电路结构图如图2.9所示: 图2.
29、9 FSLAH电路结构图(3)SDRAMSDRAM型号为HY57V561620BT,HY57V561620B是一个268435456位CMOS同步DRAM,理想情况下适合对于这个主要内存应用哪一个需要大内存密度和高带宽。HY57V561620B是提供完全同步 操作引用一个积极边缘的这个时钟。所有输入和输出同步免疫与这个上升边缘的这个时钟输入。这个数据路径部流水线到实现非常高带宽。所有输入和输出电压水平是兼容与LVTTL。其电路结构如图2.10所示:图2.10 SDRAM电路结构图(4) DM9200网卡功能介绍DM9200是一款由DAVICOM公司生产的高度集成、低功耗的快速以太网控制器,该芯
30、片配有一个标准的10M/100M网络适应功能,物理层支持以太网数据接口。为达到低功耗目的,其支持3.3V供电,根据具体需求可以提供八位、十六位、三十二位三种不同的连接方式,从而支持多种型号的机器。DM9200的主要寄存器包括数据读写寄存器、DM9200状态寄存器、DM9200状态存储器等。其中数据读写寄存器主要用来控制数据的读写、DM9200状态寄存器主要是用来表征DM9200的工作状态、DM9200状态存储器存储这个时候DM9200工作状态等。下面给出设计中拓展的的DM9200芯片的结构图2.11。图2.11 DM9200芯片的引脚结构图 第3章 视频监控系统软件总设计3.1 视频监控系统软
31、件总流程图设计 视频监控系统软件总流程图如图3.1所示:视频采集系统的应用程序设计视频网络传输程序的设计视频编码程序设计视频监控系统软件平台设计视频网络传输流程图视频编码流程图Video4Linux设备驱动加载烧写Bootloader内核移植视频编码模块软件实现建立根文件系统视频网络传输软件实现视频采集程序的实现(流程图以及源程序设计)加载摄像头驱动程序 图3.1 视频监控系统软件总流程图3.2 视频监控系统软件各模块功能设计(1) 视频监控系统软件平台设计 本文设计的是一个基于ARM+Linux平台下的远程视频监控系统,在这个过程中合理的去选择软件平台十分重要,这个软件平台也为后续程序的运行
32、提供一个保障。Linux操作系统由于其适用平台广泛、源代码开放(用户可任意修改)、可移植性强等优点而被选作我们软件平台,并且后面将要介绍的视频采集以及视频编码、视频传输都将依赖Linux操作系统的存在。要实现Linux操作系统在ARM开发板上的移植就必须向ARM开发板烧写Bootloader引导程序,在Bootloader程序的引导下,可实现Linux操作系统的移植,最后还需为嵌入式Linux添加根文件系统。(2)视频采集系统的应用程序设计该模块主要功能是实现对视频采集端数据的采集、存储本文在这一块弱化了对硬件的需求,没有选择专用的视频采集卡,而是通过Linux系统支持的Video4linux
33、驱动,用编程软件来实现整个功能。(3)视频编码程序设计视频编码是视频图像处理的一个重要研究领域,其最重要的目的是在保证图像质量的前提下尽可能少的表征视频信息。在这个设计中,采用的是MPEG-4编码器,MPEG-4是一套广泛用于视频、音频的图像编码软件,其中支持MPEG-4编码标准的编码软件重要有FFmpeg、OpenDIVX、Xvidcore等,在本研究中使用的是基于linux操作系统的FFmpeg编码器。FFmpeg编码器是一个基于Linux操作系统的开源免费软件,其包含了非常先进的音频/视频编码库Libavformat和Libavcodec,前者采用常用的音/视频格式文件的生成和解析,后者
34、包含了所有的编码解析函数。(4)视频网络传输程序设计经过采集、处理后的数据,最终需想办法传输到控制机端,本文没有采取传统串行传输,而是采用了内建视频流媒体服务器,从而将视频信号传递给远端用户,它以TCP/IP协议栈为基础构建,需要实现TCP和UDP等协议,有IP地址,使任何一个客户机都能访问这些数据信息。第4章 视频采集系统软件设计 4.1视频采集系统的软件平台设计视频采集系统软件平台设计主要包括Bootloader的选择,嵌入式Linux的编译,建立根文件系统,加载摄像头驱动。4.1.1 Bootloader的选择本设计中使用的是韩国MIZI公司专门为三星S3C2440A芯片设计的一款boo
35、tloader,作为一款专门针对特定芯片开发的bootloader,vivi有着其自身的局限性,下面介绍如何将u-boot在S3C2440A芯片上移植: (1)在board目录下创建smdk2440目录,主要包括smdk2440.c、flash.c、memsetup.s、u-boot.lds和config.mk等; (2)在cpu目录下创建arm920t目录,主要包括start.s、interrupts.c、cpu.c、serial.c和speed.c等文件; (3)在include/configs目录下添加smdk2440.h,它定义了宏定义; (4)修改u-boot根目录下的Makefil
36、e文件; (5)运行make.如果没有错误,就可以开始进行与硬件相关的代码移植工作了。连接开发板后,就可以得到如下界面图4.1:图4.1 连接开发板后的界面图4.1.2 嵌入式Linux的编译本文选择的是Linux2.4.20版本内核,其编译过程主要如下所示:1、拷贝Linux.2.4.20内核压缩包到fedora 14虚拟操作系统中,在命令窗口中执行如下命令::# cd desktop# tar xvzf Linux.2.4.20.tgz -C/待解压成功后,进入Linux2.4.20内核包中,找到Makefile文件,对Makefile进行如下修改:ARCH?= $(SUBARCH) 修改
37、为ARCH ?=armCROSS_COMPILE?= 修改为 CROSS_COMPILE ?=arm-linux-gcc 2、 编译内核代码 # cd Linux.2.4.20 # make clean # make S3C2410dk_defconfig3、 以菜单形式配置源代码,主要包括对个驱动程序的添加于卸除,执行如下命令# make menuconfig4、 内核最终编译# make uImage 最终得到的uImage文件就是我们最终用来下载到开发板上的内核代码。下载成功后,给开发板上电,Linux编译成功,即可得到如下界面4.2:图4.2 编译成功界面图4.1.3 建立根文件系统L
38、inux内核在系统启动时的最后操作是加载根文件系统,根文件系统里面装载有很多我们需要的应用程序、和其它一些用得到的库函数、服务等。对于嵌入式Linux来说,它绝大部分的文件都保存在flash中,所以本设计中将建立一个与flash相对应的JFFS2文件,过程如下: 1、开辟一个文件系统并挂载# dd if=/dev/zero of=fs bs=1024 count=6000# mount -o loop fs ramfs 2、 文件系统制作挂载后,拷贝busybox生成的_install下面的所有命令到挂载点,并且在挂载点下新建文件夹:# mkdir bin home lib proc tmp
39、root user tools usr etc构建根文件系统的目的是为了使不同的文件能够存储在不同的目录下。根文件系统编译通过后,下载到开发板指定内存,这样重启开发板,就可在终端机上显示如下信息,如图4.3,标示着根文件系统加载成功。图4.3 终端机上显示图4.1.4 加载摄像头驱动程序前面在选择数码摄像头时提到本系统使用的是OV511+芯片,因为Linux.2.4.20对采用OV511+芯片的摄像头能够提供良好的驱动支持,我们在使用时,只需在内核编译阶段添加数码摄像头驱动程序,就可以实现对数码摄像头的各种操作。并且在这个阶段,应该添加能够支持主机的USB控制器OHCI,以及内核中Video4
40、Linux的支持,在编译内核时,只需添加对这些内核的选项支持。4.2 视频采集系统的应用程序设计4.2.1 Video4Linux设备驱动加载Video4linux,是linux中的内核驱动,主要是关于视频设备的,视频设备的正常使用很大程度上依赖于对Video4Linux模块的支持,它是Linux系统中关于视频设备的内核驱动,它为所用到的USB芯片摄像头提供统一的编程接口。在使用时,我们只需在内核编译初期阶段添加对Video4Linux设备驱动的支持,配置过程过下所示:在终端使用make menuconfig命令打开Linux内核编译的Main Menu窗口,并进入“Multimedia de
41、vices -”菜单选项,然后将Video For Linux配置为模块,配置OV511驱动,如图 4.4所示:图4.4 配置图返回主菜单(Main Menu),再进入“USB support -” 菜单选项,然将USB OV511Camera support设置为模块,如图 4.5所示。图4.5 模块设置设置成功后,Video4linux驱动选取成功,在后面的采集过程中,可以直接调用视频采集的相关函数。4.2.2 视频采集流程视频采集流程图如图4.6所示开始视频采集 设备相关数据初始化( 设置采集窗口、幁状态、图像参数等信息) 视频设备、视频采集窗口初始化 设定采集方式是否停止采集N 视频设
42、备被关闭Y 结束视频采集图4.6 视频采集流程图4.2.3视频采集程序的实现(1)视频采集系统参数的初始化视频点阵格式和大小的设置:主要是对v4l2_format结构体的设置,其主要包括一个enum和一个type的设置,来构成视频当前的数据格式和行为。设置程序如下: struct v4l2_format *f = (struct v4l2_format *)arg; enum v4l2_buf_type type=f-type; /* FIXME: Should be one dump per type */dbgarg (cmd, type=%sn, prt_names(type,v4l2_
43、type_names_FIXME); memset(&f-fmt.pix,0,sizeof(f-fmt.pix); /*设置图形格式*/f-type=type;视频采集窗口属性设置:视频采集窗口设置主要是指对图像采集窗口大小的设置,使取景限定在一个范围内,主要是对结构体v4l2_crop的设置,处理程序如下所示: scrn.rgb.width=scrn.width /窗口长宽高的设置 scrn.rgb.bpp=scrn.bpp scrn.rgb.pitch=scrn.width*4 scrn.rgb.height=scrn.height scrn.rgb.bmask=0x00ff00ff /scrn.rgb.gmask=0x000000ff scrn.rgb.rmask=0x00ff0000 scrn.rgb.amask=0x000000ff scrn.rgb.pixels=(unsignedchar*)malloc(scrn.rgb.pixels_num) /图像分辨率设置 scrn.rgb.pixels_num=scrn.width*s