嵌入式系统课程设计.docx

上传人:b****5 文档编号:7506045 上传时间:2023-01-24 格式:DOCX 页数:14 大小:1.07MB
下载 相关 举报
嵌入式系统课程设计.docx_第1页
第1页 / 共14页
嵌入式系统课程设计.docx_第2页
第2页 / 共14页
嵌入式系统课程设计.docx_第3页
第3页 / 共14页
嵌入式系统课程设计.docx_第4页
第4页 / 共14页
嵌入式系统课程设计.docx_第5页
第5页 / 共14页
点击查看更多>>
下载资源
资源描述

嵌入式系统课程设计.docx

《嵌入式系统课程设计.docx》由会员分享,可在线阅读,更多相关《嵌入式系统课程设计.docx(14页珍藏版)》请在冰豆网上搜索。

嵌入式系统课程设计.docx

嵌入式系统课程设计

 

嵌入式系统课程设计

------视频监控系统设计与实现

 

学院:

专业:

小组成员:

指导老师:

 

一:

前言

随针对当前国内国外嵌入式服务器技术研究和发展情况的分析,本报告提出了将WEB服务器、嵌入式系统以及当前的一些嵌入式实验板板载功能进行融合的设计思想。

设计了结合WEB服务器技术的嵌入式监控系统。

该系统具有浏览交互式网页,对嵌入式平台进行监视和控制等功能。

通过本套嵌入式WEB服务器系统,用户可以通过HTTP协议方便的访问相应的嵌入式平台进行有效监视的同时还可以进行实时的有效控制。

该系统对硬件要求极低、响应速度快、安全性好、可扩展性强等优点,具有较高的实际应用价值。

该系统在智能家居、嵌入式组网等方面的应用将有较广阔的发展前途。

Linux和嵌入式系统都是计算机学术领域中的技术热点,两者的结合,为它们开辟了新的发展空间。

嵌入式视频监控系统充分利用大规模集成电路和网络的科技成果,实现体积小巧,性能稳定,通讯便利的监控设备。

该课程设计是在ARM微处理器平台上,移植嵌入式Linux操作系统,并完成视频采集的任务,在此基础之上,借助Linux下的开源软件,构建了嵌入式视频监控系统。

系统采用ARM微处理器2410作为主处理器,用USB摄像头作为视频采集设备,达到实时监视的目的。

报告首先简要介绍了视频监控系统的发展现状和,阐述了嵌入式视频监控系统的原理,给出了以2410微处理器为核心的视频监控系统的硬件和软件方案。

随后详细分析了嵌入Linux系统的设计与实现,并讨论了嵌入式Linux下USB摄像头设备驱动,然后设计并实现了嵌入式视频监控系统软件部分:

视频采集模块。

视频监控是利用机器视觉和图像处理的方法对图像序列进行运动检测、运动目标分类、运动目标跟踪以及对监视场景中目标行为的理解与描述。

视频监控技术的发展大致可分为四个阶段:

闭路电视系统构建的模拟系统、数字信号控制的模拟视频监控系统、数字硬盘录像设备为核心的视频监控系统和现在的数字网络视频监控系统。

视频监控系统的应用非常广泛,在我们身边随处可见。

设计的主要工作

设计一个视频监控系统设备,捕捉即时影像

同时,本系统又要具有网络服务器,通过口连入局域网,用户可以在pc端对目标区域进行在线监控;用户也可以通过浏览器直接访问视频服务器端。

为开发研究本嵌入式视频监控系统,本文主要在2410处理器上移植实现嵌入式Linux操作系统、USB摄像头驱动,接下来在ann9处理器上完成了视频采集,其后设计了视频监控的软件部分。

经过多次试验,,对其进行了调试。

课程设计的意义

随着生活节奏的加快,人们呆在家里的时间越来越少,而这样一个嵌入式设备可以让用户随时随地了解自己家里客人来访情况,以安排自己的行动计划;并且现在犯罪手段越来越多,安装在家门口的视频监控系统就承当了一个好管家的角色,不论主人身在何地,它都可以在实时监控,以采取下一步措施,避免财产损失.

总之,研发这样一个嵌入式视频监控设备,可以应用到各种场合,对保护人民财产,维护社会治安等有积极意义。

 

二:

嵌入式系统开发

本次课程设计所做的视频监控系统本身可以看做是一个典型的嵌入式系统,它融合了嵌入式微处理器和嵌入式操作系统,并且具备网络功能,可以划归第四代嵌入式系统。

嵌入式系统

首先,从嵌入式系统本身的组成来定义,它是以应用为中心、以计算机技术为基础、软/硬件可裁剪,功能、可靠性、成本、体积、功耗严格要求的专用计算机系统。

嵌入式视频监控系统实验平台简介

硬件实验平台介绍

本实验设备包含了嵌入式系统开发应用所需的大部分设备,如串口、以

太网口、USB口、音频输出、LCD及TSP触摸屏、5*4的小键盘、固态硬

盘、大容量的Flash和SDRAM等等。

调试工具

目前世界上有几十多家公司提供不同类别的ARM开发工具产品,根据功能的不同,分别有编译软件、汇编软件、链接软件、调试软件、嵌入式操作系统、函数库、评估板、J1AG仿真器、在线仿真器等。

比较流行的ARM开发工具包括ARMSDT、ARMADS、Multi200lo、EmbestIDEforARM等集成开发环境以及PENicc32.A900仿真器与Multi.ICE仿真器等。

 

三.基于嵌入式Linux的视频监控总体方案

在嵌入式处理器上移植嵌入式操作系统,不仅提高了开发效率,还可以大大提升视频监控的灵活度和扩展性,使得视频监控系统的后续应用程序开发便于实现。

前端USB摄像头负责视频采集:

带有嵌入式操作系统的ARM9控制模块控制USB摄像头的视频采集和传输;Ethernet接口作为网络传输模块。

视频监控系统硬件设计方案

硬件电路的构成框图如图所示。

ARM9处理器2410

视频监控系统的核心处理器选用ARM2410系列处理器。

由ARMTDMI、存储管理单元(MMU)和高速缓存三部分组成。

其中,MMU可以管理虚拟内存,高速缓存内独立的16KB地址和16KB数据高速Cache组成。

Java虚拟机的配置

本次视频通过PC机浏览器实现监控,因此在主机上必须进行Java虚拟机的安装。

具体的安装步骤如下:

首先下载jdk(javadevelopmentkit),,安装之后再我的电脑->属性->高级系统设置->环境变量中在做两处改变:

a..在Path中添加;C:

\ProgramFiles\Java\jdk1.6.0_13\bin

b.新建环境变量ClassPath,添加内容:

C:

\ProgramFiles\Java\jdk1.6.0_13\jre\lib\rt.jar;C:

\ProgramFiles\Java\jdk1.6.0_13\lib\tools.jar;C:

\ProgramFiles\Sun\JavaDB\lib;C:

\ProgramFiles\Sun\JavaDB\lib\derby.jar;C:

\ProgramFiles\Sun\JavaDB\lib\derbyclient.jar;C:

\Programs\apache-tomcat-6.0.18\lib\servlet-api.jar;.

其他外围单元电路设计方案

1.USB设备及摄像头接口电路

2.供电电路及复位电路

视频监控系统软件设计方案

无线网络传输

实时视频监控

以太网传输模块

GUI

接口

嵌入式Linux操作系统内核

嵌入式操作系统的选用

虽然嵌入式操作系统并不总是必须的,因为程序完全可以在裸板上运行但对于复杂的系统,为使其具有任务管理、定时器管理、存储器管理、资源管理、事件管理、系统管理、消息管理、队列管理和中断处理的能力,提供多任务处理,更好的分配系统资源的功能,很有必要针对特定的硬件平台和实际应用移植操作系统。

本项目意在设计一个价格低廉,应用灵活的视频监控系统。

嵌入式系统引导程序bootloader的选用

Bootloader(引导装载器)是用于初始化目标板硬件,给嵌入式操作系统提供板上硬件资源信息,并进一步装载、引导嵌入式操作系统运行的固件。

它是操作系统和硬件的枢纽,相对于操作系统内核来说,它是一个硬件抽象层。

它负责初始化硬件,引导操作系统内核,检测各种参数给操作系统内核使用。

嵌入式Linux源代码结构分析

在嵌入式系统中,Kernel要做小型化处理,根据硬件及系统功能要求对内核进行裁减,同时,还要增加对外围接口的硬件驱动支持及协议支持。

要配置裁减内核,必须逐一对源代码各个模块进行分析,确定其依赖关系,考虑到功能扩展的同时再剔除掉无关的模块。

根文件系统

文件系统是基于被划分的存储设备上的逻辑上单位上的一种定义文件的命名、存储、组织及取出的方法。

如果一个Linux没有根文件系统,它是不能被正确的启动的。

因此,我们需要为嵌入式Linux系统创建合适的根文件系统,以便存储所移植的引导程序、内核、图形用户界面、busybOX的镜像以及所开发应用软件等。

嵌入式Linux的根文件系统包括如下目录:

(1)/bin(binary):

包含着所有的标准命令和应用程序;

(2)/device):

包含外设的文件接口,在Linux下,文件和设备采用同种地方法访问的,系统上的每个设备都在/dev里有一个对应的设备文件,摄像头设备对应于/dev/v41/videoO这个设备文件;

(3)/etc(etcetera):

该目录包含着系统设置文件和其他的系统文件,例如/etc/fstab(filesystemtable)记录了启动时要挂载的文件系统;

(4)/home:

存放用户主目录,调试程序常在此目录下;

(5)/lib(1ibrary):

存放系统最基本的库文件以及自定义的库文件:

(6)/mnt:

用户I瞄时挂载文件系统的地方;

(7)/proc:

linux提供的一个虚拟系统,系统启动时在内存中产生,用户可以直接通过访问这些文件来获得系统信息;

(8)/root:

超级用户主目录;

(9)/shin:

这个目录存放着系统管理程序,如fsck、mount等;

(10)/tmp(1emporary):

存放不同的程序执行时产生的临时文件;

(11)/nsr(uset):

存放用户应用程序和文件。

 

四.嵌入式Linux系统设计与移植

一个小型的嵌入式Linux系统只需要三个基本元素,即引导工具、Linux微内核(包含内存管理、进程管理及事务处理)、初始化进程。

倘若要增加该系统的功能并同时保持系统小型化,则必须为嵌入式Linux系统添加相应的硬件驱动程序、应用程序。

如果此后仍要加强系统的功能,可添加文件系统、TCP/IP网络堆栈、图形用户界面支持、磁盘等。

在生成嵌入式Linux时,我们可以从标准发行版着手,裁减不需要的模块。

嵌入式开发不同于普通PC机上的开发,需要交叉编译所开发的软件。

简单地说,交叉编译就是在一个平台上生成另一个平台上的可执行代码。

交叉编译的原因有两个。

一是目标平台所需要的bootloadcr以及OS核心还没有建立时,需要作交叉编译。

二是目标机设备不具备一定的处理器能力和存储空间,即单独在目标板上无法完成程序开发,所以只好求助宿主机。

这样可以在宿主机上对即将在目标机上运行的应用程序进行编译,生成可以在目标机上运行的代码格式,然后移植到目标板上,也就是目前嵌入式程序开发的Host/Target模式。

双操作系统Pc机(WindowsxP与RedhatLinux9)与开发板,仿真器等构成了交叉开发的基础平台。

Redhat9.0Linux下开发环境建立

建立交叉编译环境

嵌入式Qt/Embedded图形用户接口开发环境建立

使用项目管理Makefile文件

嵌入式操作系统内核移植

由于嵌入式开发系统存储容量有限,在裁减和定制Linux,运用于ARM处理器前,通常需要在PC机上建立一个用于目标机(ARM开发板)的交叉编译环境,也就是将各种二进制工具程序集成为工具链,其中包括如GNU的链接器(1d)、GNU的汇编器(as)、at(产生修改和解开一个存档文件)、c编译器(gcc)、C链接库(舀ibc)以及开发软件所需的库文件等。

对嵌入式系统而言,强大的图形用户接口可以使系统的功能丰富强大起来。

目前有众多的GUI可供我们使用,考虑到授权和价格的因素,我们在Qt/Embedded基础上进行开发,完成了监控端的软件设计。

Qt/Embedded是Qt的嵌入式版本。

1.Qt简介

优点:

(1)优良的跨平台特性:

(2)面向对象特性

(3)丰富的API

(4)支持2D/3D图形渲染,支持OpenGL

(5)大量的开发文档

(6)XML支持

2.Or/Embedded交叉开发环境的建立

在linux下安装Qt/Embedded开发环境主要需要三个软件:

tmake工具安装包;Qt/Embedded安装包;Qt的Xll版的软件安装包,.以下为本设计使用的软件包及其版本号:

(1)Tmake1.11软件包(主要用来生成Qt/Embedded应用工程的Makefile文件)

(2)Qt/Embedded2.3.7(Or/Embedded的安装包)

(3)Qt2.3.2forX11(Qt的Xll版的安装包,它将产生X11开发环境所需的两个工具)

Linux操作系统上的很多软件包都使用make程序和Makefile!

文件来实现自动编译。

使用make程序的目的是自动确定一个软件包,哪些部分需要重新编译并用特定命令去编译它a准确地使用make可以大大减少编译程序所花费的时间,因为它可以消除不必要的重编译。

要正确使用make必须编写Makefile文件。

Makefile文件描述了软件包中各个文件之间的依赖关系提供了更新每个文件的命令。

通常,一个可执行文件的更新需要它所连接的目标文件的更新,两目标文件由编译源文件而更新。

由于监控终端需要完成视频采集、数据传输等工作,软件系统需要完成的功能相对复杂,且终端以ARM9芯片为核心,因而适合使用嵌入式操作系统。

内核的移植过程如下:

1.压缩内核代码起始地址修改

修改文件:

linux.2.4.18-rink7.pxal.mz5\arch/armfooot/Makefile

修改内容;ifeq($(CONFIGARCH_S3C2410),y)ZTEXTADDR=

2.处理器配置选项的修改

修改文件:

linux.2.4.18.rink7.pxal.mz5/arch/arm/config.in

3.内核起始地址的修改

ifeq($(CONFIG_ARCH_$3C2410),y)TEXTADDR=0xC0008000

MACHINE=s3c2410COREFILES:

=s3c2410/s3c2410.OEndifTeXl=fⅧDR:

内核的起始地址,通常取值:

DRAMBASE+0x8000。

vivibootloader的移植

为了使移植工作更加快捷,系统采用vivi.这使移植工作量相对减少。

1.vivi中与软件相关的修改

2.vivi中与硬件相关的初始化

3.对NANDFlash启动的修改

USB摄像头的驱动移植

要在嵌入式Linux系统中使用USB摄像头,必须向Linux系统中添加摄像头的硬件驱动。

USB摄像头在Linux系统中被视为一个设备文件。

操作系统怎样将硬件设备抽象成一个文件,实现对设备的读写等控制权限昵?

硬件驱动程序就起到了这样中间桥梁的作用。

Linux设备驱动原理

对于一个硬件,Linux是这样来进行驱动的:

首先,必须提供一个.o的驱动模块文件。

要使用这个驱动程序,首先要加载运行它(insmod*.o)。

这样驱动就会根据自己的类型向系统注册,注册成功系统会反馈一个主设备号,这个主设备号就是系统对它的唯一标识。

驱动就是根据此主设备号来创建一个一般放置在/dev目录下的设备文件。

在要访问此硬件时,就可以对设备文件通过open、read、write等命令进行。

而驱动就会接收到相应的read、write操作而根据自己的模块中的相应函数进行了。

Linux下对于一个硬件的驱动,可以有两种方式:

直接加载到内核代码中,启动内核时就会驱动此硬件设备。

另一种就是以模块方式,编译生成一个.o文件。

当应用程序需要时再加载进内核空问运行。

所以我们所说的一个硬件的驱动程序,通常指的就是一个驱动模块。

嵌入式系统中USB摄像头驱动移植

仅需要对下列与处理器相关的部分稍加修改,即可实现对USB主机器控制器的驱动。

1.PCI接口处理。

由于$3C2410的USB主机器控制器不包含PCI接口,因而需要删除在加sr/usb.ochi.c中与PCI接口楣关的代码。

2.寄存器地址设置。

在/usr/usb.ochi.c中,使用S3C2410USB主机器控制器寄存器的起始地址(0x49删)初始化ohci一>regs。

3.主机控制器中断设置。

在/usr/usb.ochi.c中,使用$3C2410USB主机控制器寄存器的中断向量初始化ohci.>irq。

4.根HUB端口数目设置。

在/usr/usb.ochi.h中定义根HUB的下行端口数目为2(#defineMAX_ROOT.PORTS标2),MAX_ROOT_PORTS的默认值为15。

 

五.视频监控的实现

嵌入式系统建立起来之后,就可以利用嵌入式操作系统内核提供的接口来开发视频监控软件模块了。

视频监控模块设计主要包括两个任务,第一是视频采集,主要是利用Linux提供的VideoForLinux接口来实现的,第二是网络视频视频监控的实现,实时视频的编解码传输问题。

视频采集模块设计

视频采集模块的任务是从USB摄像头设备中读取视频帧数据,并将获取的视频数据压缩成一定格式保存。

它是后边图像处理,视频监控的基础。

USB摄像头属于视频类设备,在目前的Linux核心中,视频部分的标准是VideoforLinux。

这个标准其实定义了一套接口,内核、驱动、应用程序以这个接口为标准进行交流。

目前的VideoforLinux涵盖了视、音频流捕捉及处理等内容,USB摄像头也属于它支持的范畴。

网络视频监控实现

网络化的嵌入式视频监控系统作为第四代视频监控系统,不受时间和空间的限制,本身可以做为视频流媒体服务器,突破了监控的时空限制,使客户端用户通过网络中的任何一台电脑来观看、录制和管理实时的视频信息。

通过网络传输实时影像,监控方式、监控距离等各方面都不受限制。

实验具体步骤

1.编译boa

2.重新烧写有boa配置文件的根文件系统

1.制作根文件系统:

mkcramfsrootroot.cramfs

2.烧写根文件系统用超级终端,进入vivi

3.Loadflashrootx

4.传送root.cramfs

3.制作视频监控服务器servfox

5.挂载boa和servfox

6.mount–tnfs–ointr,nolock,rsize=1024,wsize=1024虚拟机IP:

/arm2410cl/mnt/nfs

7.在var下创建boa的目录文件

8.将spcaview-20061208文件夹中的http-java-applet文件夹的内容(不是目录)拷贝到ARM系统端的

4./var/www/目录下,将生成的servfox下载到开发板上

5./var/www这个是我们的html文件存放的目录

6./var/www/cgi-bin这个是CGI程序存放的目录

7./var/log/boa/error_log这个是boa服务器存放错误日志的地方

8.挂载摄像头驱动

9.建立设备节点

9.mknod/dev/video0c810

10.运行boa

10../boa,输入ps查看boa是否运行成功

11.运行servfox

11../servfox–g–d/dev/video0–s640x480–w7070

12.开发板上服务器运行完毕,打开浏览器192.168.0.121(主机上必须安装java运行环境,没有的话就得安装喽)

12.不一定使用浏览器可以自己编译客户端。

13.注:

root.cramfs

i.boa

ii.servfox见文件夹

实验截图及代码

上图实现主要的功能是:

挂载boa和servfox,在var下创建boa的目录文件。

 

上图主要实现的功能是:

挂载摄像头驱动,建立设备节点等。

上图主要实现的功能是:

运行boa和servfox

 

实时视频监控效果

提供基于嵌入式WEB的视频监控,可以直接连入以太网,能够即插即看,用户无需使用专用软件,用浏览器或者视频播放器均可观看实时观看监控视频的效果。

下面两张截图分别为Web跟视频播放器下看到的视频效果。

1.下图为web下的视频效果。

开发板上服务器运行完毕,打开浏览器192.168.0.121

2.下图为在播放器下的视频效果。

与其他监控系统比较

本视频监控系统在嵌入式Linux基础上完成了视频监控等功能,体积小巧,性能可以根据用户不同需要来设定,因而在某些场合可以做为很多昂贵监控设备的替代品。

总的来说,与其他监控方式比较来说,该系统有如下的特点:

1.系统采用一般的USB摄像头作为系统视频采集前端,大大节省了成本,USB摄像头的价格非常低,USB摄像头几十元就可以买到,因此,其利用的前景可观;

2.与其他监控系统相比,基于Linux的嵌入式视频监控系统凭借Linux操作系统丰富的驱动接口优势,其功能的扩展性非常高。

3.系统具有网络在线监控功能,如果安装在办公室或机房等其他监控场所,可使领导主管无须亲临监控中心,通过内部联网电脑(在授权范围内)可以在线监控显示相关视频,使监管工作更加方便、快捷、准确,必要情况下可以将部分图像通过互联开放给特定的机构部门同步共享。

总之,本视频监控系统不同于传统视频监控,是一个低成本,多功能的小型监控设备,但目前还只是一个初步尝试的阶段,许多工作有待细化完成。

六、课程总结

这个学期我们学习了嵌入式这门课程,本次课程设计是实现视频远程监控,课程知识的实用性很强,因此实验就显得非常重要,实验过程中培养了我们在实践中研究问题,分析问题和解决问题的能力以及培养了良好的工程素质和科学道德,例如团队精神、交流能力、独立思考、测试前沿信息的捕获能力等。

通过这次嵌入式课程设计,使我们学到了不少实用的知识,提高了自己动手能力,培养理论联系实际的作风,增强创新意识。

在这次实验中,我们学到很多东西,加强了我们的动手能力,并且培养了我们的独立思考能力。

还有这次设计,使嵌入式这门课的一些理论知识与实践相结合,更加深刻了我们对测试技术这门课的认识,巩固了我们的理论知识。

更重要的是,做实验的过程,思考问题的方法,这与做其他的实验是通用的,真正使我们受益匪浅。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > PPT模板 > 国外设计风格

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1