基于ARM9视频监控系统的设计课程设计论文文档格式.docx

上传人:b****3 文档编号:7965708 上传时间:2023-05-09 格式:DOCX 页数:30 大小:1.04MB
下载 相关 举报
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第1页
第1页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第2页
第2页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第3页
第3页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第4页
第4页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第5页
第5页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第6页
第6页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第7页
第7页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第8页
第8页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第9页
第9页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第10页
第10页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第11页
第11页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第12页
第12页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第13页
第13页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第14页
第14页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第15页
第15页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第16页
第16页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第17页
第17页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第18页
第18页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第19页
第19页 / 共30页
基于ARM9视频监控系统的设计课程设计论文文档格式.docx_第20页
第20页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

基于ARM9视频监控系统的设计课程设计论文文档格式.docx

《基于ARM9视频监控系统的设计课程设计论文文档格式.docx》由会员分享,可在线阅读,更多相关《基于ARM9视频监控系统的设计课程设计论文文档格式.docx(30页珍藏版)》请在冰点文库上搜索。

基于ARM9视频监控系统的设计课程设计论文文档格式.docx

S3C2440A

图1-1ARM监控系统整体设计原理框图

视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。

视频监控以其直观、方便、信息内容丰富而广泛应用于许多场合。

嵌入式视频监控系统是以应用为中心、软硬件可裁减的、适应应用系统对功能、可靠性、成本、体积等综合性严格要求的专用计算机系统,亦即为监控系统量体裁衣的专用计算机系统。

嵌入式视频监控系统主要由嵌入式处理器、相关支撑硬件、嵌入式操作系统及应用软件系统等组成,它是集软硬件于一体的可独立工作的“器件”。

在视频监控上的嵌入式应用将是视频监控领域的一个重要发展方向。

该系统的处理器采用的是三星公司的ARM9芯片S3C2440,它采用ARM920T内核的32位处理器。

主频为400MHz,最高可频率可达到533MHz,通过在目标机上运行Linux操作系统,搭建嵌入式视频服务器,接收摄像头采集的视频数据,进行数据压缩和编码,再由DM9000E以太网控制器发送至远程客户端,实现视频数据的网络传输。

1.3ARM监控系统所需的硬件及软件

1.3.1硬件配置

1.串行接口:

一个五线异步串行口、一个UART扩展接口

2.SamsungS3C2440A(CPU处理器)

3.在板64MSDRAM

4.一个USBHost接口

5.一个USBSlaveB型接口

6.JTAG接口

7.USB摄像头接口

8.IIC接口

9.DA1961E以太网接口

10.USB摄像头

1.3.2软件配置

1.VWware虚拟机软件

2.linux操作系统

2.交叉编译(cross-compilation)环境

3.linux设备驱动程序

4.bootloader(引导加载程序)

第二章ARM监控系统实现步骤及部分截图

2.1在PC机Windows操作系统下安装VWware虚拟机

虚拟机是指通过软件模拟的具有完整硬件系统功能,并且能运行在一个完全隔离的环境中完整的计算机系统。

通过虚拟机软件,可以在一台物理计算机上模拟出一台或多台虚拟的计算机,这些虚拟机完全就像真正的计算机,可以在虚拟机中安装操作系统、应用程序、也可以通过虚拟机访问网络资源等等。

对于用户而言,它只是运行在个人PC上的一个应用程序,而对于在虚拟机中运行的应用程序而言,它就是一台真正的计算机。

安装宿主机上的操作系统可以有两种方式。

第一种方式是直接在“裸机”上安装FedoraCore10,安装完成后计算机上只有FedoraCore10操作系统。

这种方式下FedoraCore10直接操控计算机的硬件,系统的任何反应都是FedoraCore10的直接反应。

但是,对于习惯Windows的用户而言,这种方式操作起来会有些困难,毕竟FedoraCore10与Windows是两种完全不同的操作系统。

第二钟方式是现在计算机上安装Windows操作系统,再在Windows下安装虚拟计算机软件,如VWware等,然后在虚拟机下安装FedoraCore10。

这种方式安装完成后,FedoraCore10只隶属于Windows下的一个软件,启动虚拟机之前的所有操作与Windows下的其他操作都是一样的。

鉴于Windows的盛行,本文选择后一种方式。

具体步骤:

新建虚拟机→自定义→workstation6→linux:

otherlinux2.6.XKernel→命名该虚拟机并选择安装位置→处理器数量:

1→内存大小推荐512M→使用桥接网络→I/O适配器的选择→创建两个新的虚拟磁盘→选择磁盘类型:

IDE→设定磁盘大小:

8G/5G→设定磁盘文件的名字→完成。

此事就完成了VMware[12]的安装。

本文以2.6版本的linux为平台安装fedora10操作系统,安装完成后如图2-2

所示:

图2-1安装虚拟机

图2-2虚拟机安装完成后的界面

2.2安装及配置操作系统FedoraCore10

完成虚拟机安装后,选择Linux平台开发工具包中的文本文档readme并选择如图2-3中的两行粘贴到Redhat9的下载列表中。

启动虚拟机,如图2-4。

向虚拟机中倒入Linux。

如图2-5选择适当linux版本作为目标平台,如图2-6选择适当虚拟机内存,设置网络为桥接。

在虚拟机设置完成后会进行linux自动安装,但要终止安装进行其他设置。

在新建一磁盘用于存放数据如图2-7,之后启动虚拟机进行FedoraCore10的安装。

添加所有系统自带软件,添加完成后会出现如图2-8所示界面。

图2-3选择位置

图2-4启动虚拟机界面

1.将所需要的工具instsrv.exe和srvany.exe放在一个文件夹内,在这我放在d:

\tools中吧。

2.需要了解vmware.exe的安装路径,以本机为例:

D:

\VMwareWorkstation\vmware.exe

要启动的虚拟机配置文件路径,我的2003虚拟机的配置文件windows2003.vmx的路径是D:

\vmare\windows2003\windowsserver2003.vmx

3.新建服务

假设服务名为vm_autostart,所以我的命令行是:

instsrvVM_AutoStartD:

\tools\srvany.exe

4.注册服务

在注册表中,定位到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\vm_autostart

新建项:

"

Parameters"

在"

项里面,新建字符串"

Application"

字符串的值:

\VMwareWorkstation\vmware.exe"

-x"

\vmare\windows2003\windowsserver2003.vmx"

图2-5选择linux:

otherlinux2.6版本

本系统选择linux:

otherlinux2.6版本,如图2-5,点击下拉菜单,找到linux:

otherlinux2.6版本,选择该版本。

图2-6设置虚拟内存

图2-6用于设置虚拟机管理的磁盘大小。

为了给虚拟机留出足够的磁盘空间,我们设定磁盘大小为20G,设置情况如图2-6.

注意:

内存:

为虚拟机设置的内存大小不要小于实际的物理内存大小。

图2-7磁盘分区

图2-8操作系统安装完成

重新登陆后修改系统文件,如图2-8

图2-8修改系统文件

之后重新登录进行虚拟机的工具安装,如图2-9,以完成FedoraCore10与Windows之间的信息传递

图2-9虚拟机的工具安装

按如图2-9进行FedoraCore10网络功能的测试,测试完成后出现如图2-10界面,即完成FedoraCore10的安装。

图2-9网络功能的测试

图2-10FedoraCore10安装完成

2.3建立交叉编译环境

交叉编译是指在某个主机平台上(比如PC上)生成可在其他平台上(比如ARM上)运行的可执行代码

而要进行交叉编译,就必须要在宿主机平台上安装对应的交叉编译工具链(crosscompilationtoolchain),然后用安装好的交叉编译工具链编译源代码,最终生成可在目标机上运行的可执行程序。

本系统是在LinuxPC上,使用arm-linux-gcc编译器,编译出针对Linux内核的ARM平台上的可执行文件。

下面是建立交叉编译环境的步骤:

在LinuxPC上,打开终端,使用命令#tarxvfjEABI_4.3.3_EmbedSky_.tar.bz2将下载好的交叉编译工具解压,然后使用#gedit/etc/profile打开并修改profile文件,添加如图2-11的第21句,使用#source/etc/profile使交叉编译器生效:

图2-11建立交叉编译环境

2.4移植引导加载程序

bootloader(引导加载程序)是系统加电后运行的第一段代码。

嵌入式系统中的bootloader相当于PC机中的BIOS。

通过这段小程序,我们可以初始化硬件设备、建立内存空间映射图,从而将系统的软硬件环境带到一个合适状态,以便为最终调用操作系统内核准备好正确的环境。

大多数bootloader都包含两种不同的操作模式,一种是启动加载(bootloading)模式,在这种模式下,bootloader从目标机上的某个固态存储器设备上将操作系统加载到RAM中运行,整个过程并没有用户的介入。

这种模式是boot-loader的正常工作模式,另一种是下载(downloading)模式。

在这种模式下,目标机上的bootloader将通过串口或网络等通信手段从开发主机(host)上下载内核映像和根文件系统映像等到RAM中。

然后可以再被bootloader写到目标机上的固态存储介质上。

#tarxvfj/mnt/hgfs/Linux/u-boot-1.1.6.tar.bz2-C/解压u-boot源码,

在U-Boot的顶层目录的Makefile文件中定义了所有开发板的配置选项,首先应该为开发板添加新的配置选项,参照TQ2440的配置,加入如下语句:

tq2440_config:

unconfig

@$(MKCONFIG)$(@:

_config=)armarm920ttq2440NULLs3c24x0

开发板配置选项中各项的含义如下:

arm:

表示CPU的架构是ARM体系结构。

arm920t:

表示CPU的内核类型,对应cpu、arm920t子目录。

NULL:

这位用于表示开发商者或经销商。

S3c24x0:

片上系统定义。

使用#maketq2440_config配置u-boot。

配置好后使用makeCROSS_COMPILE

=arm-linux-命令编译得到u-boot.bin的镜像文件,将其烧写到开发板。

2.5移植linux内核

嵌入式操作系统Linux用C语言写成,技术上说Linux是一个内核。

“内核”指的是一个提供硬件抽象层、磁盘及文件系统控制、多任务等功能的系统软件。

一个内核不是一套完整的操作系统。

一套基于Linux内核的完整操作系统叫作Linux操作系统

Linux内核移植:

执行#tarxvfj/mnt/hgfs/Linux/Linux-2.6.30.4.tar.bz2-C/解压下载好的内核文件,其中/mnt/hgfs/Linux是虚拟机与PC的共享文件。

解压后进入到内核源码,修改Makefile文件添加对ARM的支持,具体如下:

ARCH=arm

CROSS_COMPILE=arm-linux-

CC=arm-linux-gcc

使用#makemenuconfig命令进入配置单添加对EABI的支持,修改后保存为.config文件,修改完成后执行#makezImage编译内核源码,编译完成后,在内核源码的arch/arm/boot/目录下会生成镜像文件zImage,将这个文件烧写到开发板。

Linux内核移植完成后将出现如图2-12所示界面。

图2-11Linux内核移植

2.6配置驱动程序

TQ2440开发板支持市面上常见的中芯微芯片的USB摄像头,当接入USB摄像头后。

终端会显示出如图2-12信息,同时在“/dev”目录下会出现设备名“/dev/v4l/video0”

但应该注意:

操作系统Linux使用虚拟文件系统作为统一的操作接口来处理文件和设备。

与普通的目录和文件一样,每个设备也使用一个VF-Sinode来描述。

对设备的操作也是通过对文件操作的file-operation结构体来调用驱动程序的设备服务子程序。

所以,在进行Linux内核配置时应修改相应设备管理目录下的摄像头文件,使其处于可见状态。

图2-12接入USB摄像头后出现的界面

摄像头属于视频设备,在Linux内核中,VideoforLinux(简称V4L)是关于视频设备的驱动标准[18]。

这个标准为应用程序定义了一系列的接口函数,内核、驱动和应用程序都是依靠这个标准来进行交流。

摄像头的I/O控制是依靠V4L提供的read、open、ioctl[19]等应用程序接口实现。

在编译器部分,将Linux下的摄像头驱动程序中Makefile文件中相关行修改为CC=/opt/host/armv41/bin/armv41.unknown.gcc.1inux,修改Con-fig.in文件,这样在配置内核的时候才可以看见驱动程序的名称。

同时对下列与处理器相关的部分进行修改,即可实现对S3C2440A的USB驱动的移植。

在PC的终端执行#makemenuconfig命令添加对ZC301P摄像头的支持:

<

*>

ZC3XXUSBCameraDriver

USBZC301PImagesProcessionandControlChipsupport

修改后使用#makezImage重新编译内核镜像,将内核镜像移植到开发板。

实现视频采集后,还需要把采集到的图像数据压缩后经由网络传送出去,所以还要在此基础上建立基于socket的网络服务器,用来完成客户端与服务器二者之间的数据通信。

该系统中视频数据的网络传输是基于TCP协议来实现,前端嵌入式机作为视频服务器负责视频采集并建立好TCP服务器,等待客户端的连接;

客户端做好一系列初始化工作后,主动连接服务器,得到应答后建立连接接收压缩视频数据并实时显示,同时可以根据用户的要求进行实时或定时保存图像或者视频文件。

最后,在虚拟机中打开用户终端,输入设备驱动程序后将会启动摄像头采集视频信息,即完成视频监控,如图2-13所示。

图2-13监控系统采集到的视频信息

第三章设计总结

通过历时两周的《生产实习》这门课程的学习,给我最大的感受就是要在老师的指导下学会学习。

刚开始我觉得ARM对于我们这一组来说纯粹是零基础,以前都没有学习过。

但是在我们不断到图书馆查找相关知识和网上学习后,我们逐渐学会了嵌入式操作系统和TQ2440A的使用,并可以完成视频监控。

本文将嵌入式系统技术应用到网络视频监控系统中,设计了一款基于Linux和S3C2440A的低成本的网络视频采集传输系统,主要完成了arm开发板外围电路的设计;

Bootloader的启动分析以及在开发板上的移植;

嵌入式Linux在arm9平台上的剪裁和移植;

USB摄像头在Linux下的驱动配置;

基于V4L的视频采集程序的设计。

服务器程序和客户端程序的设计;

实现了数据的网络传输;

对视频数据进行编解码,并进行连续播放;

对系统在实验环境下进行整体测试。

Internet的发展为嵌入式系统的发展提供了一个良好的机会,也提出了许多严峻的挑战。

网络能力将会成为未来嵌入式系统的必需。

各种嵌入式的网络应用软件将会广泛使用。

嵌入式系统的发展又为嵌入式操作系统的发展提供动力[10]。

基于Internet的视频图像传输系统现在在各个领域正发挥着重要的作用,并有来越多的厂商投身于这个领域,随着视频压缩技术的发展、网络传输能力的不断增强,网络视频的优越性会逐步体现,相信嵌入式网络视频服务器的应用会更为广泛。

参考文献

[1]何鹏举,陈明,段磊强,等.基于嵌入式Web服务器的远程视频监控系统[J].测控技术,2004

[2]何梅.JavaApplet编程实例[M].北京:

清华大学出版社,2003.

[3]耿祥义.Java基础教程[M].北京:

清华大学出版社,2004.

[4]刘六彬.嵌入式视频监控系统中Linux应用的研究[J].科技广场,2005,2

(2):

4-7.

LIULiu-bin.TheresearchofuClinuxapplicationinembedded-video-system[J].ScienceMosaic,2005,2

(2):

4-7.

[5]陈俊宏.EmbededLinux嵌入式系统原理与实务[M].北京:

中国铁道出版社,2004

[6]西刹子.安防天下:

智能网络视频监控技术详解与实践[M].北京:

清华大学出版

社,2010-02

[7]吴明晖.基于ARM的嵌入式系统开发与应用[M].北京:

人民邮电出版社,2004

[8]段群杰.零基础学ARM9嵌入式Linux系统开发[M].北京:

机械工业出版社,2010-10

[9]程昌南、方强.ARMLinux入门与实践[M].北京:

航空航天大学出版社,2008-10

[10]田荣华、杨健、唐振明.ARM接口编程[M].电子工业出版社,2012-06

[11]达内IT培训集团.ARM嵌入式系统移植实战开发.[M].北京:

航空航天大学出版社,

[12]天嵌科技.基于linux的视频采集[M].2006

附录

程序源代码:

mjpg_streamer.c

#include<

stdio.h>

stdlib.h>

unistd.h>

string.h>

linux/videodev.h>

sys/ioctl.h>

errno.h>

signal.h>

sys/socket.h>

arpa/inet.h>

sys/types.h>

sys/stat.h>

getopt.h>

pthread.h>

dlfcn.h>

fcntl.h>

syslog.h>

#include"

utils.h"

mjpg_streamer.h"

/*globals*/

staticglobalsglobal;

/******************************************************************************

Description.:

Displayahelpmessage

InputValue.:

argv[0]istheprogramnameandtheparameterprogname

ReturnValue:

-

******************************************************************************/

voidhelp(char*progname)

{

fprintf(stderr,"

-----------------------------------------------------------------------\n"

);

Usage:

%s\n"

\

"

-i|--input\"

input-plugin.so>

[parameters]\"

\n"

-o|--output\"

output-plugin.so>

[-h|--help]........:

displaythishelp\n"

[-v|--version].....:

displayversioninformation\n"

[-b|--background]...:

forktothebackground,daemonmode\n"

progname);

Example#1:

ToopenanUVCwebcam\"

/dev/video1\"

andstreamitviaHTTP:

%s-i\"

input_uvc.so-d/dev/video1\"

-o\"

output_http.so\"

Example#2:

ToopenanUVCwebcamandstreamviaHTTP

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2