嵌入式系统项目设计_第1页
嵌入式系统项目设计_第2页
嵌入式系统项目设计_第3页
嵌入式系统项目设计_第4页
嵌入式系统项目设计_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

1、期末课程考核 嵌入式系统项目设计 项目名称:项目名称: 基于基于 ARMARM 的移动视频监控系统的移动视频监控系统 年级班级:年级班级: 20102010 计科物联计科物联 1 1 班班 姓姓 名:名: 孟孟 琦琦 学学 号:号: 二一三年 一 月 八 日 基于基于 ARMARM 的移动视频监控系统的移动视频监控系统 基于 ARM 的移动观频监控的设计与实现,设计了一种专门功能、结构简单的流媒体服 务器;采用 Boa 作为 Web 服务器, 并通过浏览器来监控,实现跨平台监视;采用双缓冲技 术,确保用户能够得到较好、较稳定的播放质量;利用 USB 无线网卡实现无线上网,免去 布线的烦恼,方便

2、 地实现了移动视频监控的功能。 一、引言 传统的视频监控系统一般采用 PC 服务器的 CS(ClientServer)结构,视频服务器 由计算主机和许多存放视频的磁盘陈列组成,专门用于视频的存储和传输。流式传输采用 的是边接收边播放的原则,这需要将多媒体的编、解码和传输技术很好地结合在一起。目 前多媒体的编解码技术如 MPEG- 4,H264 等,可以以较小的带宽开销来实现较高质量的 视频传输,然而目前的传输技术却无法满足移动视频监控的需求,因为设备的移动速度和 所在位置都会严重影响到传输。传统流媒体系统体积大、成本高、可靠性低且移植性差, 不能满足这种特殊场合的应用要求。本系统主要就是针对传

3、统监控技术的不足而设计的。 二、系统总体介绍 将嵌入式 Linux 和无线网络引入到视频监控系统,阐述了系统的硬件组成;介绍了 USB 无线网卡驱动实现的过程;从嵌入式 Linux 开发环境的搭建、嵌入式流媒体服务器的 设计和动态网页的设计等方面介绍了软件系统的具体实现过程;对动态网页设计所涉及到 的双缓冲技术进行了详细介绍。实现结果表明,该系统具有可靠性高、体积小、成本低和 使用便利等特点,适用于移动视频监控等实际场合。 三、系统硬件设计 硬件平台是整个系统运作的基础。本系统主要由流媒体服务单元、USB 无线网卡、无 线路由、摄像头和监控端组成。流媒体服务单元是整个系统的核心,主要由嵌入式

4、Linux、嵌入式处理器和外围器件组成。 嵌入式处理器采用 Intel XScale 结构的 PXA27 嵌入式微处理器,最高主频可达 624 MHz;加入 wireless MMX 技术,大大提升了多媒体处理能力;加入 Intel SpeedStep 动态 管理电源技术,在保证 CPU 性能的情况下,最大限度地降底移动设备的功耗。在处理器丰 富资源的基础上,本系统扩展了 64 MB Nand FLASH,64 MB SDRAM,16 MB Nor FLASH,4 个 USB 主接口以及一个从接口。USB 一主接口接摄像头,用于采集视频数据;USB 一主接口 接无线网卡,用于发送视频数据。无线

5、网卡采用了 TCPIP、NETBEUI 传输协议,传输速 率为 11 Mbs,55 Mbs,2 Mbs,1 Mbs。其最大覆盖范围为 35100 m(室内)、 100300 m(室外),能较好地满足移动视频监控的要求。本系统硬件组成图如图 1 所示。 以 PXA270 为核心接收摄像头采集到的视频数据,经过编码后通过无线网卡发送,再经 由无线路由接入以太网,用户通过 Internet 接收到视频信息。 四、软件设计 移动视频监控软件完成的主要功能有:设计流媒体服务器采集并传输摄像头拍摄的视 频信息;构建嵌入式 Web 服务器 Boa;动态网页的设计以及流媒体服务器、web 服务器与浏 览器之间

6、的通信等任务。因此系统软件框架如图2所示。 1 1、 流媒体服务器的设计流媒体服务器的设计 流媒体服务器主程序用于开放某个视频服务器端口,并不断监听端口,如有连接请求 则建立连接,建立后流媒体服务进程将不断向端口提供采集到的视频数据流同时也接收客 户端发送过来的视频调节命令参数。流媒体服务器主程序流程图如图3所示。 (1)采集视频数据 系统是在嵌入式 Linux 系统平台上采用 Video4Linux 编程来采集视频的。一般摄像头 是直接读视频设备,采集到视频数据并存在文件中。对文件进行操作,这样程序运行效率 会很低。本系统摒弃这种方法,采用 mmap(内存映射)方式截取视频数据。mmap()

7、系统调用 使得进程之间通过映射同一个普通文件实现共享内存。普通文件被映射到进程地址空间后, 进程可以向访问普通内存一样对文件进行访问,不必再调用 read(),write()等操作。采 用共享内存通信的一个显而易见的好处是效率高,因为进程可以直接读写内存,而不需要 任何数据的拷贝。 (2)传输视频数据 本系统通过网络传输视频数据,用套接字(Socket)编程实现。 (3)采集线程与传输线程同步 流媒体服务器的设计有个关键点:保证连续不断的视频流。针对这一点,本系统采用 多线程编程,采集和传输并行执行。用互斥量和标志位来实现采集线程和传输线程的同步。 采集数据时给互斥量加锁,直到当前帧采集完并填

8、充完当前帧头结构体才解锁互斥量, 再开始传输。同理,传输当前帧时采集线程等待,直到当前帧传输完。采集完 两帧数据传 输第二帧。传输完成后,采集完第三帧传输第三帧。依此循环,采集完第 N 帧传输第 N 帧。 此时实际只传输了第2帧到第 N 帧,即 N-1帧。 用户的视觉反应需要时间,此丢弃第一帧的设计思想并不会使画面失真。反而连续不 断的视频流传输到客户端为用户能够获得良好的视频质量打下了基础。 采集线程: 2 2 、动态网页的设计、动态网页的设计 嵌入式 Web 服务器是 Web 服务器简化后的专用系统。本系统选用适合嵌入式系统的 Boa Web 服务器。Boa 是一个单任务的 HTTP 服务

9、器,支持能够实现动态 Web 技术的 Java Script 技术,源代码开放,性能高。同时服务器本身所占空间很小,因而十分适用于嵌入 式系统。 鉴于 Boa 移植技术已经很成熟,故不详细讨论。 Applet 是能够嵌入到一个 HTML 页面中,且可通过 Web 浏览器下载和执行的一种 Java 类。它是 Java 技术容器(container)的一种特定 类型。Applet 可以通过网络传输,由浏 览器自动装载并执行。这恰恰非常符合本系统的要求,因此选用 Applet 来很好地实现动态 网页,打开网页就可以 看到视频数据,方便快捷。 (1)设计流程 Applet 不能单独运行,需要嵌入在网页

10、中借助浏览器的解释。必须要创建一个 HTML 文件来告诉浏览器需装载什么以及如何运行它。其执行顺序如下: 浏览器装入 URL; 浏览器装入 HTML 文档; 浏览器装入 Applet 类; 浏览器运行 Applet。 本系统 Java Applet 实现三个功能:视频数据通过 Socket 传送到客户端显示;将客户 端调节视频带参数发送到服务器;将客户端点击的运动控制参数发送到服务器。 其中 init 和 start 函数在 Applet 开始执行时调用,通过 start 创建2个线程:用于 socket 通 信;提供用户界面显示视频和相应用户操作。 用户界面设计用到 Sun 的 SwingW

11、orker 类库。 (2)双缓冲技术 双缓冲技术主要应用于屏幕闪烁现象的消除。在一帧图像的绘制过程中,如果一帧图 像的绘制时间大于屏幕的刷新时间,就会造成视觉上不连贯的效果。绘制时可在 内存中建 立两个图形缓冲区,其中一个缓冲区(前台)用于存放显示的当前帧,并在屏幕上显示;同 时在另一个缓冲区中完成下一帧的绘制。因为画面的绘制过程是 在用户不可见的情况下进 行,自然也就消除了这种闪烁现象。 为了保证用户的观看质量,本系统在动态网页的设计中引入这种双缓冲技术。采用 Java 语言中 component 类的一个可用于创建图形缓冲区的方法 createImage(int width,int hei

12、ght),其参数为绘制区域的大小。该方法返回一个大小为绘制区域的 Image 对象。调用该对象的 getGraphics()方法得到一个 GraphiCS 对象,将它视为后台的 Graphics 对象。此后,可调用 Graplaics 类的各种绘图方法,以绘制所需的画面。此时, 所有的操作都是 在后台的 Image 对象中进行的,并没有显示到屏幕上。当绘制完成后,再 调用前台 Graphics 对象的 drawlmage(Image img,int x,int y,ImageObserver observer)方法将已准备好的 Image 显示到屏幕上。其中 Image 参数就是 create

13、Image 方法 所返回后台的 Image 对 象,ImageObserver 参数是与前台 Graphics 对象相关的 Component 对象或其派生类对象。 3 3 、USBUSB 无线网卡驱动设计无线网卡驱动设计 在 Linux 系统中,提供了主机侧和设备侧视角的 USB 驱动框架。从主机侧角度而言, 需要编写的 USB 驱动程序包括主机控制器驱动和设备驱动两大类。主机 控制器驱动程序属 于 USB 驱动程序的核心,这部分在 Linux 内核源码中已经有很好的支持。本节将重点介绍 USB 无线网卡设备驱动的实现。 1)、USB 驱动的注册和注销 usb_ids 描述了这个 USB 驱

14、动所支持的 USB 设备列表。 2)、探测和断开函数 在编写 USB 无线网卡设备驱动时,很重要的一步是 probe()和 disconnect()函数,即 探测和断开函数,它们分别在设备被插入和拔出的时候被调用,用于初始化和释放硬件资 源。 3)、USB 请求块(URB) USB 无线网卡本身的驱动部分的读写等操作流程有其特殊性,即以 USB 请求块(URB)来 贯穿始终。URB 是 USB 主机与无线网卡设备通信的电波。 五、系统测试 1)1)、基于、基于 ARMARM 的嵌入式的嵌入式 LinuxLinux 开发平台环境开发平台环境 本方案采用了 Linux 嵌入式操作系统,以 Linu

15、x2624 为基础进行裁减定制自己的 内核,在编译内核时保留必须的文件系统、存储器、串口、 USB、以太网驱动,将摄像头、 USB 无线网卡驱动以模块的形式编译,以减少编译后内核的大小。Bootloader 采用 blob, 烧写 blob 后利用 tftp 协议实现 Linux 内核和文件系统在 Flash 上的烧写。在 Redhat 9 安装 Arm-linux-gcc。建立交叉编译环境,实现流媒体服务器和 Boa 在 PAX270 上的搭建。 鉴于现在烧写技术已经很成熟,故不详细讨论。 2)2)、测试结果、测试结果 在 PXA270 上搭建 Boa,将 Java Applet 小程序编译后生成的class 执行文件、HTML 脚本 indexhtml 及相关文件拷贝到varwww下。将编译好的流媒体服务器 的二进制 文件下载到 PXA270 上。加载摄像头和 USB 无线网卡驱动,运行 boa,再运行流媒体服务器。 在 PC 端打开浏览器输入 pxa270 的 IP 地址, 就可以看到网页监控的画面,画面清晰且视 频流畅

温馨提示

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

评论

0/150

提交评论