基于嵌入式linux的图像监控系统_毕业论文(编辑修改稿)内容摘要:

器。 (2)扩展性强,可适用市场上的通用 USB 摄像头,可适用通用的浏览器实现网络传输和远程控制。 (3)通过分析采集到的视频进行图片环境监控,只需进行有意义的图片的分析,不需要存储大量视频信息。 (4)成本和功耗低,采用开源的 linux 系统,使用功耗极低但性能优越的 ARM9 处理器,使系统的成本和功耗降到了最低。 2 系统设计和硬件平台 的建立 系统总体设计 错误。 链接无效。 图 21 系统总体设计 整个系统总体设计如图 21 所示,整体分为两大部分:系统前台和系统后台。 系统前台包括用户、客户端主机(浏览器)、服务器网页这三部分;剩下的都划分为系统后台。 服务器以 Linux 内核 作为视频服务器核心,内有三个主要服 务组件,其中 APACHE 服务器负责与用户通过 HTTP 通信,用户要使用浏览器 处理视频,只需要登录浏览器便可,在这里最好是使用 FIRFOX,因为它对 HTTP 视频流支持最好。 MJPGSTREAMER 视频服务器主要负责架设服务,进行配置(端口,各种显示参数等),而摄像头的识别则由相应的驱动程序完成。 硬件选型 系统硬件整体设计 本系统选择三星公司的 S3C2440 作为核心处理器,负责整个系统的运行,采用 USB摄像头实现数据采集,通过网络进行图像的实时传输,系统硬件整体结构如图 22 所示。 错误。 链接无效。 图 22 系统硬件整体结构图 贺州学院本科毕业论文 5 硬件模块选型 微处理器采用三星公司的 S3C2440, S3C2440 是一款内部集成了 ARM 公司 ARM920T内核的 16/32 位 RISC 嵌入式处理器,主要面向高性能、低功耗的应用。 带有内存管理单元( MMU),采 用 微米工艺和 AMBA 新型总线结构。 为了处理图像数据, CPU 工作频率可达 400MHz。 有完善的网络功能。 硬件接口设计 SDRAM 和 FLASH 接口设计 (1) SDRAM:系统 外接了两片 64M bytes 的 SDRAM 芯片(型号为 HY57V561620FTP) ,一般称之为内存,并接在一起形成 32bit 的总线宽度,其物理启始地址为 0x30000000。 其接口电路如图 23所示。 图 23 SDRAM 接口图 (2)FLASH:系统采用 NAND Flash,型号为 K9F1G08,大 小为 128M。 NAND Flash 不具有地址线,它有专门的控制接口与 CPU 相连,数据总线为 8bit。 其接口电路如图24所示。 莫炳全 基于嵌 入式 Linux 的图像监控系统 6 图 24 NAND Flash 接口图 网络模块接口设计 系统采用 DM9000 网卡芯片,它可以自适应 10/100M 网络,使用内部包含耦合线圈的 RJ45 连接头,不必另接网络变压器,使用普通网线连接即可。 100M 网络接口如图25所示。 图 25 DM9000 的 100M 网络接口图 USB 模块接口设计 系统采用 USB Host 接口,使用 协 议 ,与普通 USB 接口一致。 USB Host 接口如图 26所示。 贺州学院本科毕业论文 7 图 26 USB Host 接口图 电源模块和 RS232 模块接口设计 (1)电源模块:本系统电源系统设计简单,直接使用外接 5V 电源,分别通过降压芯片 LM11173 、 MAX8860EUA18 产生整个系统所需的三种电压: 、。 (2) RS232 模块 :直接从 CPU 引出后,使用 RS232 进行电平转换,使用直连线与 PC机相互通信,用于下载调试程序使用。 本章小结 在本章中,首 先从 总体 上架构了整个监控系统的框架图,并针对 系统硬件 做出了整体设计 以及各个外围模块之间的联系,最后一一介绍了系统外围六个模块的接口电路设计。 3 嵌入式 LINUX 系统平台的搭建 交叉编译环境的建立和 Bootloader 的移植 交叉编译环境的建立 由于嵌入式系统不是通用的计算机系统,硬件资源受到很大的限制,因此运行于嵌入式系统裁剪和定制之前,需要在强大的宿主机上建立一个 交叉编译环境 ,用于目标机 [5]。 本系统采用的 交叉编译环境 为。 下载源代码并解压到根目 录下,运行 gedit /root/.bashrc,然后把编译器路径加入系统环境变量中。 Bootloader 的移植 BootLoader 就是在操作系统内核运行之前运行的一段小程序。 通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。 由于 BootLoader 的实现莫炳全 基于嵌 入式 Linux 的图像监控系统 8 依赖于 CPU 的体系结构,因此 Bootloader 在 stage1 和 stage2 需要做的工作如下。 (1)stage1 通常包括以下步骤 (以执行 的先后顺序 ): ① 硬件设备初始化。 ② 为加载 Boot Loader 的 stage2 准备 RAM 空间。 ③ 拷贝 Boot Loader 的 stage2 到 RAM 空间中。 ④ 设置好堆栈。 ⑤ 跳转到 stage2 的 C 入口点。 (2)stage2通常包括以下步骤 (以执行的先后顺序 ): ① 初始化本阶段要使用到的硬件设备。 ② 检测系统内存映射 (memory map)。 ③ 将 kernel 映像和根文件系统映像从 flash 上读到 RAM 空间中。 ④ 为内核设置启动参数。 ⑤ 调用内核。 本系统采用 的 BIOS 是基于三星公司原来的 bootloder 修改而来的 Supervivi。 内核的移植 本系统采用 内核。 本系统的核心电路和 SMDK2440 基本一样,而 内核对 SMDK2440 的支持已经十分丰富,所以只需根据我们的目标平台做细微的差别调整即可。 以下是移植内核的步骤 (1)获取 linux 内核源代码,解压内核源代码。 (2)指定交叉编译变量:修改总目录下的 Makefile 原来为: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= $( SUBARCH) CROSS_COMPILE ?= 修改为: export KBUILD_BUILDHOST := $(SUBARCH) ARCH ?= arm CROSS_COMPILE ?= armlinux 其中, ARCH 是指目标平台为 arm, CROSS_COMPILE 是指交叉编译器。 然后执行 : make s3c2410_defconfig make (3)克隆建立自己的目标平台: ①修改机器码:进入 贺州学院本科毕业论文 9 码修改为 1999。 ② 修 改 时 钟 源 频 率 : 进 入 文件中的原 SMDK2440 目标版上的晶振从原来的 改为12MHz。 ③ 修改 Nand Flash 分区: gedit arch/arm/plats3c24xx/ static struct mtd_partition smdk_default_nand_part[] = { [0] = { .name = supervivi, ;这里是 bootloder 所在分区 .size = 0x00040000, .offset = 0, }, [1] = { .name = param, ;这里是 supervivi 参数区 .size = 0x00040000, .offset = 0x00020xx0, }, [2] = { .name = Kernel, .offset = 0x00060000, ;内核所在分区,大小为 5M .size = 0x00500000, }, [3] = { .name = root, ;文件系统分区,本系统用来存放 yaffs2 文件系统内容 .offset = 0x00560000, .size = 1024*1024*1024, } [4] = { .name = nand, ;此区域代表整片 nand flash,做预留使用 .offset = 0x00000000, .size = 1024*1024*1024, 莫炳全 基于嵌 入式 Linux 的图像监控系统 10 } }。 ④从 SMDK2440 到 MINI2440:使用批处理命令修改 中的字样为mini2440。 ⑤编译测试:在根目录下执行: make mini2440_defconfig make zImage。 编译内核,最后生成 zImage。 (4)配置内核:针对配置内核做主要的作为介绍。 执行 make menuconfig General setup ;配置目标版体系 S3C2440 Machines MINI2440 development board Device Drivers ;配置 DM9000 网卡驱动 Network device support Ether(10 or 100Mbit) DM9000 Device Drivers ;配置 USB 摄像头 Multimedia devices Multimedia support Video capture adapters ( NEW) V4L USB devices (NEW) GSPCA based webcams。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。