基于嵌入式Linux的视频监控系统设计开题报告_第1页
基于嵌入式Linux的视频监控系统设计开题报告_第2页
基于嵌入式Linux的视频监控系统设计开题报告_第3页
基于嵌入式Linux的视频监控系统设计开题报告_第4页
基于嵌入式Linux的视频监控系统设计开题报告_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

本科毕业设计本科毕业设计( (论文论文) )开题报告开题报告 题目: 基于嵌入式 Linux 的 视频监控系统 课 题 类 型: 科研 论文 模拟 实践 学 生 姓 名: 学号: 专 业 班 级: 教 学 单 位: 指 导 教 师: 开 题 时 间: 2010 年 3 月 1 日 一、毕业设计(论文)内容及研究意义(价值) 1.研究内容 本课题主要研究嵌入式 Linux 应用系统的开发过程。其主要包括: (1) 、交叉编译环境的搭建; (2) 、嵌入式 Linux 的移植; (3) 、文件系统的制作; (4) 、USB 摄像头的驱动设计; (5) 、视频图像的采集、压缩、传输等技术。 (6) 、嵌入式 WEB 服务器的建立 2.研究意义 为了更加高效地对监控现场进行实时监控和远程监控, 同时考虑到各方面的成本因 素而提出基于嵌入式 Linux 的视频监控系统。 该系统可应用于各种小区、商场、医院看护等公共场所的领域,实现视频监控的网 络化,数字化,相比传统的监控模式,使监控现场的管理更加便捷,效率更高。 二、毕业设计(论文)研究现状和发展趋势(文献综述) 嵌入式 Linux(EMBEDED LINUX)是指对标准Linux 经过小型化裁剪处理之后,能够 固化在容量只有几 KB 或者几 MB 字节的存储器芯片或者单片机中, 是适合于特定嵌入式 应用场合的专用 Linux 操作系统。在目前已经开发成功的嵌入式系统中,大约有一半使 用的是 Linux,这与它自身的优良特性是分不开的。嵌入式 Linux 同 Linux 一样,具有 低成本、多种硬件平台支持、优异的性能和良好的网络支持等优点。另外,为了更好地 适应嵌入式领域的开发,嵌入式Linux 还在 Linux 基础上做了部分改进,如改善了内核 结构,提高了系统的实时性等。目前国内外不少大学、研究机构、和知名公司都加入了 嵌入式 Linux 的研究开发工作,较成熟的嵌入式 Linux 产品也不断涌现。 视频监控系统在电信、银行、交通、电力、水利、石化、智能大厦等诸多领域有着 广泛的应用。随着计算机技术、多媒体技术和网络技术的发展,视频监控系统正向数字 化、网络化、集成化和智能化方向发展。 以嵌入式视频 Web 服务器为核心的视频监控系统是视频监控系统中主流的研究现 状,把视频压缩和 Web 服务器集中到一个很小的设备中,可以方便地接入计算机网络, 用户只要通过Web访问就可以方便地观看Web服务器上的摄像机图像。 以嵌入式视频web 服务器为核心的视频监控系统布控区域广阔,系统扩展能力强, 可组成非常复杂的监控 网络。采用基于嵌入式Web 服务器为核心的监控系统,在组网方式上与传统的模拟监控 和基于 PC 平台的监控方式有极大的不同。基于 Web 服务器输出己完成模拟到数字的转 换并压缩,采用统一的协议(如 TCP/IP 协议)在网络上传输,因此支持跨网关、跨路 由器的远程视频传输,性能稳定可靠,无需专人管理。 数字视频监控系统设备中具有图像识别和特征提取的功能,通过图像分析实现运动 探测和报警,使其更具视频数字化、系统的网络化、应用的多媒体化、管理的智能化, 这将成为今后数字视频监控系统的主要发展趋势。 另外,新的视频监控系统的研究也受到关注,比如对于一种新的录像监控系统数 字硬盘录像机 (DigitalvideoRecord,DvR)的研究阳】 。数字硬盘录像机摒弃了传统的 模拟数据,采用了数字化的方式记录数据。具有存储量大,成本低,检索方便的特点, 在许多领域受到重用。 三、毕业设计(论文)研究方案及工作计划(含工作重点与难点及拟采用的途径) 1、设计思路: 系统的主体设计思想是将视频终端和嵌入式 Web 服务器整合在一起,摄像头传送来 的视频信号经过压缩后,通过内部总线传送到内置的Web 服务器。该服务器可直接接上 Internet,网络上用户可以直接用浏览器(如 IE 浏览器)观看服务器上的监控图像。 这种方案是当前应用较为广泛的方法,使用了近来发展迅速的嵌入式技术、网络化 技术以及图像处理的技术,具有较高的技术水平。由于把视频采集压缩和Web 功能集成 到一个设备内直接连入网络,达到即插即看,省掉很多复杂的电路,安装也很方便 (仅 需设置 IP 地址),用户无需使用专用软件,在具有网络接口的地方都可以直接使用。这 种视频监控系统除应用于远程网络实验系统中,也可以应用在其它如小区,医院病床监 护等各种设备之间距离较大的情况。 本文将设计一个基于嵌入式 Linux 的嵌入式视频监控系统,即对嵌入式 Linux 在视 频监控系统中的应用展开研究。 本系统的主要硬件组成为基于三星 S3C2440 的 mini2440 开发系统和 USB 摄像头。操作系统采用在嵌入式技术中流行的嵌入式 Linux。系统将实 现实验现场的网络化实时视频监控,同时具有网络化远程控制功能。当然在此基础上也 可实现对多个视频前端的访问和控制。 本文将对嵌入式 Linux 在 ARM 开发平台上内核、文件系统的开发和移植,视频前端 设备(USB 摄像头)驱动程序的开发,视频图像的采集和压缩,服务器的建立及视频图像 的网络传输等研究内容进行了详细的论述, 并对系统建成后在实际中的应用进行了测试 和实验。 2、应用的技术分析: 集计算机技术、通信技术、微电子技术等多种技术为一体的嵌入式技术进入到了一 个飞速发展的阶段,嵌入式系统已被广泛应用到了航空、消费电子、信息家电、网络通 信等各个领域。ARM9 S3C2440 是嵌入式处理器是性价比较优秀的芯片,在各个领域的开 发应用有着广阔的应用前景。同时 ARM9 S3C2440 微处理器与 Linux 的结合越来越紧密, 逐渐在嵌入式领域得到广范的应用。目前,在便携式消费类电子产品、无线设备、汽车、 网络、存储产品等都可以看到 S3C2440 与 Linux 相结合的身影。 Samsung S3C2440A 是一个很不错的嵌入式微处理器, 价格相当较便宜、 内部资源多、 最主要的是国内很多人使用,相关的资料比较多。基本参数:ARM920T 内核, 400M 主 频,最高可达到 533M,支持 NAND FLASH、NORFLASH、SDRAM、支持 STN/TFT LCD、4 通 道 DMA、3 通道 UART、2 通道 SPI、IIC 总线、IIS/AC97 音频控制器、SD/MMC 控制器、2 通道 USB HOST 1通道 USB DEVICE、4 通道 PWM、8 通道 A/D 转换、触摸屏控制器、RTC、 CMOS 摄像头、多功能 I/O 及多种电源管理 在众多嵌入式操作系统中,Linux 目前发展最快、应用最为广泛1。性能优良、源 码开放的 Linux 具有体积小、内核可裁减、网络功能完善、可移植性强等诸多优点,非 常适合作为嵌入式操作系统。一个最基本的Linux 操作系统应该包括:引导程序、内核 与根文件系统三部分。 USB 设备驱动程序的设计包括主机端设备驱动程序设计、主机控制器驱动程序设计 和设备端驱动程序设计三部分组成。主机端设备驱动程序就是通常说的设备驱动程序, 它是主机环境中为用户应用程序提供一个访问 USB 外设的接口。Linux 为这部分驱动程 序提供编程接口,驱动程序设计者只要按照需求编写驱动程序框架,通过调用操作系统 提供的 API 接口函数可以完成对 USB 外设的特定访问。 视频采集是基于 Video4Linux 的视频采集模块来实现,Linux 系统中的视频子系统 Video4Linux为视频应用程序提供了一套统一的API,视频应用程序通过调用即可操作各 种不同的视频捕获设备,包括电视卡、视频捕获卡和USB 摄像头等。对于摄像头的视频 采集, 需要使用Video4Linux提供的设备接口/dev/video0,若文件中没有这个设备文件, 则先建立该设备节点文件。 要实现监控现场,除了完成视频采集的编程,还需要把视频图像数据通过网络传输 出去,因此需要在完成视频读取的基础上建立 WEB 服务器,一是为了实现对硬件设备的 扩展和访问,二是为了实现客户端和服务器之间的数据通讯 3、技术方案比较: 本课题的主要要方案选择是在操作系统的选择。除了WinCE 的实时性稍差外,大多 数嵌入式操作系统的实时性都很强,所以也可称为实时操作系统 Real Time Operating System.目前最重要的 RTOS 主要包括: (1) 、传统的经典 RTOS:最主要的便是 Vxworks 操作系统,以及其 Tornado 开发平 台。Vxworks 因出现稍早,实时性很强(据说可在1ms 内响应外部事件请求) ,并且内核 可极微(据说最小可 8K) ,可靠性较高等,所以在北美,Vxworks 占据了嵌入式系统的 多半疆山。 特别是在通信设备等实时性要求较高的系统中, 几乎非Vxworks莫属。 Vxworks 的很多概念和技术都和 Linux 很类似,主要是C 语言开发。但Vxworks 因价格很高,所 以一些小公司或小产品中往往用不起。不适合我做课题。 (2) 、 Windows CE 嵌入式操作系统:Microsoft 也看准了嵌入式的巨大市场,MS 永远是最厉害的,WinCE 出来只有几年时间,但目前已占据了很大市场份额,特别是在 PDA、 手机、 显示仪表等界面要求较高或者要求快速开发的场合, WinCE 目前已很流行 (据 说有一家卖工控机的公司板子卖得太好,以至来不及为客户裁减WinCE) 。WinCE 目前主 要为 5.0 版(.NET),开发平台主要为 WinCE Platform Builder,有时也用 EVC 环境开 发一些较上层的应用, 虽然有着良好的性能,但开发成本过高不适宜我们学习。 (3) 、嵌入式 Linux 操作系统:Linux 的前途除作为服务器操作系统外,最成功的 便是在嵌入式领域的应用,原因当然是免费、开源、支持软件多、呼拥者众,这样嵌入 式产品成本会低。Linux 本身不是一个为嵌入式设计的操作系统,不是微内核的,并且 实时性不强。目前应用在嵌入式领域的Linux 系统主要有两类:一类是专为嵌入式设计 的已被裁减过的 Linux 系统,最常用的是 uClinux(不带 MMU 功能) ,可在 ARM7 上跑; 另一类是跑在 ARM 9 上的,一般是将 Linux 2.4 内核系列或者 Linux2.6 系列内核移植 在其上,可使用更多的 Linux 功能(当然 uClinux 更可跑在 ARM 9 上) 。很多人预测, 嵌入式 Linux 预计将占嵌入式操作系统的 50%以上份额,非常重要。由于开源免费等等 的优势,适合本课题实现,是理想的方案选择。 4、设计重点难点: 本课题重点和难点在于交叉编译环境的搭建,Linux 内核的编译,根文件系统的制 作,视频采集的实现,视频图像的压缩和传输等知识要点。 5、总体描述与系统框架: 系统描述如图 1 所示: 服务器 /mini2440 用户浏览器 WEB 服务器 视频压缩 文件系统 Inernet Linux 内核 设备驱动 USB 摄像头 图 1. 总体描述 系统框架如图 2 所示: WWW 浏览器视频监控应用软件 TCP/IP 网络系统文件系统Linux 内核 板级支持包(BSP)以太网驱动USB 驱动其他驱动 Mini2440 开发板USB 摄像头 图 2. 系统框架 6、各子模块的实现方法: (1) 、建立嵌入式 linux 开发环境:在 XP 系统中虚拟一个 linux 开发环境,在 linux 系统下载 arm-Linux-gcc 交叉编译工具并配置交叉编译环境。 (2) 、Linux 内核的移植:配置标准的 Linux 内核,编译,下载至开发板中。 (3) 、文件系统的制作:用 busybox 编译一个根文件系统,创建映像文件。 (4) 、USB 驱动设计,修改配置 Linux 内核并编译。 (5) 、视频压缩:将 USB 摄像头传来的每一帧图像压缩成 JPEG 格式的图片。 (6) 、嵌入式 WEB 服务器的设计:用 Boa 配置编译并移植到开发板中。 (7) 、用户浏览器访问服务器实现监控:通过局域网设置 IP 地址与嵌入式 Linux 系统的 IP 地址属同一网段即可访问服务器。 7、预期结果: 制作出一个能实际应用的基于嵌入式 Linux 的视频监控系统。USB 摄像头能捕获现 场视频并传至WEB服务器, 同时客户端的浏览器能访问服务器对监控现场进行实时监控。 8、工作计划: 第 1 周毕业实习(1) 第 2 周毕业实习(2) 第 3 周需求分析,并开始撰写毕业设计说明书 第 4 周系统可行性分析 第 5 周Linux 操作系统的安装与使用 第 6 周开发环境的搭建,并练习操作 第 7 周嵌入式 Linux 内核编译移植 第 8 周文件系统制作移植 第 9 周linux 环境下编程练习 第 10 周驱动编写准备练习 第 11 周USB 摄像头驱动编写 第 12 周分析实现视频压缩技术 第 13 周分析实现视频传输技术 第 14 周嵌入式 WEB 服务器的实现与移植 第 15 周应用系统的实现 第 16 周整机功能调试 第 17 周修改调试,并完善设计说明书(1) 第 18 周修改调试,并完善设计说明书(2) 四、主要参考文献 1 廖日坤. ARM 嵌入式应用开发技术白金手册M.北京:中国电力出版社,2005. 2 郑灵翔.嵌入式 Linux 系统设计M.北京:北京航空航天大学出版社, 2008. 3 孙琼. 嵌入式 Linux 应用程序开发详解 M.北京:人民邮电出版社, 2006. 4 薛圆圆.USB 应用开发技术大全M.北京:人民邮电出版社,2007. 5 华清远见嵌入式培训中心.嵌入式 Linux C 语言应用程序设计.北京:人民邮电出版 社,2007. 6 Brian W.Kernighan and Dennis M.Ritchie.The C Programming Language(2nd Edition)M.美国:Prentice Hall,1988. 7 W. Richard Stevens, Stephen A. Rago. Advanced Programming in the UNIX Environment 2nd EditionM. 美国:Addison Wesley,2005. 8 郭耸. 基于嵌入式Linux 和Web 服务器的网络视频监控系统J. 哈尔滨商业大学 学报(自然科学版),2005. 9 梅飞. 嵌入式 Linux 网络视频监控系统设计J. 现代电子技术,2007. 10 谭晓. 嵌入式 Linux 平台的网络视频监控系统J.电子技术,2006. 11 詹亮. 基于嵌入式Linux的远程视频监控系统研究J. 成都纺织高等专科学校学 报,2008. 12 孙江波. 基于嵌入式 Linux 的视频监控系统设计J. 武汉工业学院学报,2006. 13 孙健. 基于嵌入式 Linux 的视频监控系统的设计J. 电脑知识与技术,2008. 14 张倩. 基于嵌入式 Linux 的视频监控系统J. 天津工业大学学报,2007. 15 郝卫东. 基于 Linux 的嵌入式网络视频监控系统研究与设计J, 计算机系统与应 用,2008. 附录附录 1 1 外文文献外文文献 File I/O 3.3 open Function3.3 open Function A file is opened or created by calling the open function. #include int open(const char *pathname, int oflag, . /* mode_t mode */ ); Returns: file descriptor if OK, 1 on error We show the third argument as ., which is the ISO C way to specify that the number and types of the remaining arguments may vary. For this function, the third argument is used only when a new file is being created, as we describe later. We show this argument as a comment in the prototype. The pathname is the name of the file to open or create. This function has a multitude of options, which are specified by the oflag argument. This argument is formed by ORing together one or more of the following constants from the header: O_RDONLYOpen for reading only. O_WRONLYOpen for writing only. O_RDWR Open for reading and writing. Most implementations define O_RDONLY as 0, O_WRONLY as 1, and O_RDWR as 2, for compatibility with older programs. One and only one of these three constants must be specified. The following constants are optional: O_APPEND O_CREAT Append to the end of file on each write. We describe this option in detail in Section 3.11. Create the file if it doesnt exist. This option requires a third argument to the open function, the mode, which specifies the access permission bits of the new file. (When we describe a files access permission bits in Section 4.5, well see how to specify the mode and how it can be modified by the umask value of a process.) Generate an error if O_CREAT isalso specified andthe file already exists. This test for whether the file already exists and the creation of the file if it doesnt exist is an atomic operation. We describe atomic operations in more detail in Section 3.11. If the file exists and if it is successfully opened for either O_EXCL O_TRUNC O_APPENDAppend to the end of file on each write. We describe this option in detail in Section 3.11. write-only or readwrite, truncate its length to 0. O_NOCTTYIf the pathname refers to a terminal device, do not allocate the device as the controlling terminal for this process. We talk about controlling terminals in Section 9.6. O_NONBLOCK If the pathname refers to a FIFO, a block special file, or a character special file, this option sets the nonblocking mode for both the opening of the file and subsequent I/O. 3.5 close Function3.5 close Function An open file is closed by calling the close function. #include int close(int filedes); Returns: 0 if OK, 1 on error Closing a file also releases any record locks that the process may have on the file. When a process terminates, all of its open files are closed automatically by the kernel. Many programs take advantage of this fact and dont explicitly close open files. 3.7 read Function 3.7 read Function Data is read from an open file with the read function. #include ssize_t read(int filedes, void *buf, size_t nbytes); Returns: number of bytes read, 0 if end of file, 1 on error If the read is successful, the number of bytes read is returned. If the end of file is encountered, 0 is returned.There are several cases in which the number of bytes actually read is less than the amount requested: When reading from a regular file, if the end of file is reached before the requested number of bytes has been read. For example, if 30 bytes remain until the end of file and we try to read 100 bytes, read returns 30. The next time we call read, it will return 0 (end of file). When reading from a terminal device. Normally, up to one line is read at a time. (Well see how to change this in Chapter 18.) When reading from a network. Buffering within the network may cause less than the requested amount to be returned. When reading from a pipe or FIFO. If the pipe contains fewer bytes than requested, read will return only what is available. When reading from a record-oriented device. Some record-oriented devices, such as magnetic tape, can return up to a single record at a time. When interrupted by a signal and a partial amount of data has already been read. We discuss this further in Section 10.5. The read operation starts at the files current offset. Before a successful return, the offset is incremented by the number of bytes actually read. POSIX.1 changed the prototype for this function in several ways. The classic definition is int read(int filedes, char *buf, unsigned nbytes); First, the second argument was changed from a char * to a void * to be consistent with ISO C: the type void * is used for generic pointers. Next, the return value must be a signed integer (ssize_t) to return a positive byte count, 0 (for end of file), or 1 (for an error). Finally, the third argument historically has been an unsigned integer, to allow a 16-bit implementation to read or write up to 65,534 bytes at a time. With the 1990 POSIX.1 standard, the primitive system data type ssize_t was introduced to provide the signed return value, and the unsigned size_t was used for the third argument. 3.8 write Function Data is written to an open file with the write function. #include ssize_t write(int filedes, const void *buf, size_t nbytes); Returns: number of bytes written if OK, 1 on error The return value is usually equal to the nbytes argument; otherwise, an error has occurred. A common cause for a write error is either filling up a disk or exceeding the file size limit for a given process For a regular file, the write starts at the files current offset. If the O_APPEND option was specified when the file was opened, the files offset is set to the current end of file before each write operation. After a successful write, the files offset is incremented by the number of bytes actually written. 附录附录 2 2 译文译文 文件文件 I/OI/O 3.3 open3.3 open函数函数 调用o p e n函数可以打开或创建一个文件。 #include #include #include int open(const charp a *t hname, int oflag,./*, mode_t mode */ ) ; 返回:若成功为文件描述符,若出错为- 1 我们将第三个参数写为. . .,这是ANSI C说明余下参数的数目和类型可以变化的方法。 对于o p e n函数而言,仅当创建新文件时才使用第三个参数。(我们将在稍后对此进 行说明。)在函数原型中此参数放置在注释中。 pathname是要打开或创建的文件的名字。oflag参数可用来说明此函数的多个选择项。 用下列一个或多个常数进行或运算构成o f l a g参数(这些常数定义在 头文件中): O_RDONLY 只读打开。 O_WRONLY 只写打开。 O_RDWR读、写打开。 很多实现将ORDONLY定义为0,OWRONLY定义为1,ORDWR定义为2,以与早期的系统兼容。 在这三个常数中应当只指定一个。下列常数则是可选择的: O_APPEND 每次写时都加到文件的尾端。3.11节将详细说明此选择项。 O_CREAT 若此文件不存在则创建它。使用此选择项时,需同时说明第三个参数m o d e, 用其说明该新文件的存取许可权位。( 4.5节将说明文件的许可权位,那时就能了解如 何说明mode,以及如何用进程的umask值修改它。) O_EXCL 如果同时指定了OCREAT,而文件已经存在,则出错。这可测试一个文件是 否存在, 如果不存在则创建此文件成为一个原子操作。 3.11节将较详细地说明原子操作。 O_TRUNC 如果此文件存在,而且为只读或只写成功打开,则将其长度截短为0。 O_NOCTTY 如果pathname指的是终端设备,则不将此设备分配作为此进程的控制终端。 9.6节将说明控制终端。 O_NONBLOCK 如果pathname指的是一个F I F O、一个块特殊文件或一个字符特殊文件, 则此选择项为此文件的本次打开操作和后续的 I / O 操作设置非阻塞方式。 3.5 close3.5

温馨提示

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

评论

0/150

提交评论