基于Linux的嵌入式网络摄像机设计
- 格式:doc
- 大小:73.50 KB
- 文档页数:4
a基于ARM的嵌入式网络视频监控系统设计与实现目录基于ARM的嵌入式-1 -网络视频监控系统设计与实现.................................................................................... -1 -目录 ............................................................................... -1 -一、绪论............................................................................ -1 -1.1研究意义-1 -1.2市场需求-1 -1.3目前视频监控系统国内外常见方案设计-2 -1.4系统设计目标-3 -1.5技术可行性-4 -二、嵌入式系统介绍................................................................ -5 -2.1嵌入式系统定义-5 -2.2嵌入式系统特点-5 -2.3嵌入式系统的组成-6 -三、视频编解码和网络协议的选择73.1网络传输协议的分析选择73.1.1网络传输协议的分析73.1.2网络协议的选择和设计'123.1.3视频数据传输方式的选择.13 3.2图像压缩算法的分析选择133.2.1压缩的必要性和可能性.133.2.2系统视频压缩方法的选择.14四、监控系统方案设计154.1监控系统总体方案选择154.2监控系统硬件方案设计164.2.1嵌入式处理器的选择164.2.2Flash 的选择184.2.3网卡的选择.184.2.4摄像头的选择184.2.5存储硬盘接口的选择19五、硬件平台设计205.1网络视频监控系统的硬件架构205.2各模块及接口设计215.2.1存储系统模块及接口设计.215.2.2串口电路设计285.2.3调试接口电路305.2.4USB HOST 接口设计315.2.5监控系统硬件整体方案设计315.3监控系统软件整体方案设计325.3.1软件开发平台及开发工具的选择.325.3.2构建嵌入式软件平台335.3.3BootLoader 移植.345.3.4移植Linux2.6.14 内核.405.3.5CGI 简介.435.3.6监控系统软件方案.44六、系统的设备驱动程序移植456.1网卡驱动移植466.1.1核心板网卡移植.466.1.2主板网卡移植486.2摄像头驱动移植54七、监控系统软件的设计及实现557.1监控系统功能模块作用及设计557.2Linux下多线程编程技术571.2.1系统视频压缩方法的选择.587.3视频采集模块软件设计597.3.1关于Video4Linux607.3.2多路图像采集的实现647.4视频编码和解码模块设计647.4.1JPEG 标准657.4.2JPEG 解码677.4.3动态图像解码的优化677.4.4获取压缩后每一帧大小677.4.5WEB服务器搭建687.4.6PC上显示模块设计.727.4.7保存视频文件的设计n7.4.8FTP服务器的设计167.4.9系统运行性能77一、绪论1.1研究意义嵌入式是当今最为热门的概念之一,其应用领域也非常之广泛,无论是在工业控制、交通管理、信息家电、安防,还是个人手持设备,都有着非常广泛的应用。
《基于ARM-Linux的嵌入式移动计算系统的研究与实现》一、引言随着信息技术的发展和智能设备的普及,嵌入式系统以其小型化、高集成度的优势逐渐在各领域发挥重要作用。
ARM作为主要的嵌入式系统架构,其结合Linux操作系统的移动计算系统成为了研究热点。
本文将就基于ARM-Linux的嵌入式移动计算系统的相关技术进行探讨,并对系统的实现进行详细分析。
二、ARM-Linux嵌入式移动计算系统概述ARM-Linux嵌入式移动计算系统是以ARM架构为核心,结合Linux操作系统构建的移动计算平台。
该系统具有高集成度、低功耗、可扩展性强等特点,广泛应用于移动设备、智能家居、工业控制等领域。
三、关键技术研究(一)ARM架构研究ARM架构作为嵌入式系统的核心,其性能和功耗的平衡是关键。
通过对不同ARM内核的比较分析,本文选取了适用于移动计算系统的内核类型,以满足高效率和低功耗的需求。
(二)Linux操作系统研究Linux操作系统作为系统软件的基础,为硬件提供了丰富的接口和良好的兼容性。
本文对Linux内核进行了优化,以适应嵌入式系统的资源限制,提高系统的运行效率和稳定性。
(三)系统硬件设计研究系统硬件设计是实现嵌入式移动计算系统的关键。
本文对硬件设计进行了详细规划,包括处理器选择、内存分配、存储方案等,以确保系统的高效运行和稳定性。
四、系统实现(一)系统架构设计系统架构设计是系统实现的基础。
本文设计了一种基于ARM-Linux的嵌入式移动计算系统架构,包括硬件层、操作系统层和应用层。
硬件层负责与硬件设备进行交互,操作系统层负责管理硬件资源和提供系统服务,应用层则负责实现具体的应用功能。
(二)系统开发环境搭建为便于开发,本文搭建了基于ARM-Linux的嵌入式开发环境。
包括交叉编译环境的搭建、开发工具的安装等,为后续的系统开发提供了良好的支持。
(三)系统软件设计与实现在软件设计方面,本文对Linux内核进行了裁剪和优化,以适应嵌入式系统的资源限制。
嵌入式系统以其占用资源少、专用性强、功耗低的特点使其广泛应用在移动通信、工业生产、安全监控等领域。
针对人们对高效、舒适、安全、便利、环保的居住环境的要求,提出了以Arm-Linux为平台的智能家居控制系统的设计。
1 智能家居控制器的总体设计Arm-Linux嵌入式系统以其在性能、体积及功耗等方面的优势在智能家居领域得到越来越广泛的应用。
系统采用基于ARM的嵌入式linux方案,系统分为五层分别为硬件层,系统引导层,系统层,应用支撑层及应用层。
如图1所示应用层在Qtopia图形系统、SQLite 数据库等的支撑下完成了电话报警、照明控制、安防控制、门禁控制以及网络浏览等应用。
2 系统硬件的设计CPU处理器选用Samsung S3C2440A,其主频为400 MHz,资源丰富功能强大。
内存为64M SDRAM,数据总线32bit,时钟频率高达100MHz。
存储器为128 M掉电非易失NANDFLASH。
LCD显示部分为具有4线电阻式触摸屏接口的35英寸真彩色液晶屏。
网卡芯片为DM9000可自适应10/100 M网络,通过RJ45连接头可连接控制器至路由器或者交换机。
智能家居控制模块通过RS485总线与主控制器进行通信。
其硬件结构图如图2所示。
3 软件平台的构建开发环境选取的是虚拟机Vmware6.5+fedora9Linux系统+arm-linux-gcc 4.3.2编译器。
系统与软件的编译采取交叉编译的方式进行。
表1是构建控制系统所需移植开发的一些主要软件。
Uboot是专门针对嵌入式Linux系统设计的开源bootloader,其任务是初始化处理器及外设硬件资源并引导操作系统。
内核为linux2.6.3 2,这版提供了更多的驱动程序以及API,调用起来更加的方便。
在内核中要添加对帧缓存frambuffer的支持,图形系统需要它的支持。
文件系统使用Yaffs2,以配合2 K每页的大页存储器。
根文件系统选用Busvbox1.13.3,配置编译完之后会生成bin和sbin目录以及linuxrc文件,从而系统就具备了系统以及文件管理的相关命令。
基于嵌入式系统的视频监控系统实现马兵东,温向明北京邮电大学通信网络综合技术研究所,北京 (100876)E-mail:iammadong@摘要:针对交通路况和广场楼宇监控等视频监控特定环境,我们设计并实现了一套新的视频监控系统。
该系统采用嵌入式技术,将操作系统和应用程序固化在FLASH芯片上,以保证其运行稳定性,将摄像机采集的视频信号经过MPEG-4压缩和打包后,通过其网络通讯端口上传到传输网络,同时有效地减少了视频监控系统中的视频数据传输量和存储量。
关键词:视频监控,嵌入式1.引言视频监控系统是安全防范系统的组成部分,它是一种防范能力较强的综合系统。
随着网络技术、嵌入式处理器的飞速发展以及数字视频监控系统的迅速崛起,出现了网络数字视频监控系统[1],在实际工程应用中得到广泛应用,特别是在大、中型视频监控工程中的应用尤为广泛;数字视频监控系统是以计算机通信技术及图像视频压缩为核心的新型视频监控系统。
针对交通路况和广场楼宇监控等视频监控特定环境,我们设计并实现了一套新的视频监控系统。
该系统采用嵌入式技术,将操作系统和应用程序固化在FLASH芯片上,以保证其运行稳定性,将摄像机采集的视频信号经过MPEG-4压缩和打包后,通过其网络通讯端口上传到传输网络。
2.系统介绍2.1系统功能描述本系统用于移动目标的实时视频监控,分为远端设备(移动图像监视器)和近端设备(监控中心)两部分。
远端设备可将监控画面(视频/图像)通过移动公网、因特网传至近端设备,即监控中心。
同时,监控中心可以远程控制移动图像监视器的工作方式,从而达到良好的监控效果。
远端和近端也可以不通过因特网相连,实现监控中心的移动化。
2.2系统总体设计本系统基于Motorola i.MX系列处理器和Motorola ADS开发板,采用嵌入式Linux技术[2],实现了远程视频监控功能。
系统总体设计如图1所示,远端和近端可以通过互联网相连。
图1系统总体设计图2.2.1系统各部分功能简介(1) 远端(移动图像监视器)整个远端部分以Motorola i.MX系列处理器和Motorola ADS开发板为核心,包括一个云台控制器用于控制云台转动、摄像头开/关和拍摄范围,一个模拟视频/JPEG转换卡,一个云台,以及一个置于云台之上的摄像头。
基于Linux的嵌入式监控系统软件平台研究与设计【摘要】进入二十一世纪,全球电子技术得到了快速发展,尤其是大规模集成电路的产生,给现代工业带了一次全新的技术革命,应用大规模集成电路制成了微型机,电脑,平板电脑等,这些都对人们的生活、工作学习产生了深远的影响。
linux嵌入式监控系统软件作为一种新的技术,被人们广泛采用工作生活的各个领域中,那么下面我们就来探讨一下linux的嵌入式监控系统软件平台研究与设计相关问题。
【关键词】linux的嵌入式;监控系统软件平台;研究与设计随着全球经济的发展,生活水平不断提高,新的科学技术成果不断被研发出来,同时这些新的科技成果不断应用到工业生产中,这就使得我们生活发生了翻天覆地的变化:人们的手机越来越精致,功能越来越强大,应用越来越方便。
电脑已经从传统台式过渡到平板形式,操作和应用更为方便、快捷。
科学技术取得到了很大的进步,尤其是在计算机领域,计算机和网络系统现在已经走进了人们的生活,成为了人们生活、工作、休闲的一部分。
对于那些办公室人员,再也不用每天整理办公桌上那些成堆的文件了,只需要用鼠标在计算机上处理就可以了,对于车间那些工人,有了工业机器人的帮助,他们的工作更轻松,再也不要做哪些对身体有害的工作了。
嵌入式linux的嵌入式监控系统软件系统以其自身的特点,被广泛应用到人们的生活中,每一个人都或多或少接触过利用嵌入式系统所制成的电子产品,我们比较常见的mp3、mp4、mp5等,还有些智能家电、工业机器人、数字机床等。
利用嵌入式图像采集系统制成的电子产品给我们的生活带来了便利,提高了人们的工作效率。
一、嵌入式系统概念嵌入式,顾名思义,就是人们说的将软件嵌入到某个硬件设备中,在硬件程序功能是固定的情况下,在将软件嵌入过程中,就需要一些相应的软件程序同时嵌入,以达到和硬件相连接作用。
二、嵌入式系统的的应用范围应用嵌入式系统研制的电子产品已经走进了人们的生活,从开始的mp3、手机,智能电视机,再到工厂中大规模应用的机器人。
基于同轴电缆的视频监控系统结构复杂、稳定性差、可靠性低且价格昂贵,因而出现了嵌入式网络摄像机等远程Web视频监控系统。
本嵌入式网络摄像机,采用高性能的ARM9芯片作微处理器,内置嵌入式Web服务器—Boa,通过嵌入式多任务操作系统—Linux采集摄像机视频数据;摄像机采集的视频信号数字化后经MJPEG算法压缩,压缩后的视频流再通过内部总线送到内置的Web服务器;通过在网页中嵌入图像播放器,用户可以直接通过浏览器观看Web服务器上的摄像机图像;通过通用网关接口CGI,授权用户还可以控制摄像机、云台和镜头的动作或直接通过Web实现对系统进行配置。
1嵌入式网络摄像机系统原理及组成结构嵌入式网络摄像机的基本原理:在嵌入式Linux操作系统中内置Web服务器Boa,摄像机采集视频信号并将其数字化,经MJPEG压缩后,传送到内置的Web 服务器,通过Web页面将视频信息发布到Internet。
由于嵌入式网络摄像机是视频采集终端和Web服务器的融合,因此,用户可以直接通过浏览器观看摄像机拍摄的视频图像,达到远程监控的目的。
整个系统由视频采集模块、视频压缩模块、Web服务器、通用网关接口、Web 页面等5个部分组成。
其硬件结构如图1所示:图1嵌入式网络摄像机硬件结构图视频采集模块包括以S3C2410X为核心的中央控制和数据处理中心,以及USBCamera数据采集单元。
中央控制和数据处理中心主要完成视频采集终端的控制和视频图像的压缩;Web服务器完成基本服务器的功能,负责响应HTTP请求,配合视频采集、压缩模块完成图像信息发布;通用网关接口—CGI,可以根据用户输入的数据信息,控制摄像机、云台和镜头的动作或直接通过Web实现对系统进行配置。
嵌入式微处理器是嵌入式系统的“硬核”。
微处理器的选择将对整个嵌入式系统的成本和性能产生决定性的影响。
目前,比较流行的处理器主要有:PowerPC、MIPS、Intel、ARM等。
ARM(AdvancedRISCMachines)公司是一家全球领先的嵌入式微处理器IP(IntellectualProperty)核提供商,它设计了一系列高性能、低功耗、低成本和高可靠性的RISC处理器核、外围部件和系统级芯片应用解决方案。
当前,ARM系列微处理器核广泛应用于便携式通讯设备、手持终端、多媒体数字消费产品等嵌入式系统解决方案中。
本设计选用以ARM920T为核心的S3C2410X32位微处理器,该处理器集成了LCD控制器、USBHost、USBSlave、NAND 控制器、中断控制、功率控制、UART、SPI、SDI/MMC、IIS、GPIO、RTC、TIMER/PWM、ADC等丰富的资源。
操作系统是嵌入式系统的“软核”。
早期的嵌入式系统,由于当时还没有操作系统的概念,系统的主要功能都是用汇编语言实现的,其兼容性、通用性及扩展性都很差。
随着硬件性能不断提高,在嵌入式系统中使用通用操作系统已成为现实。
在嵌入式系统中引入操作系统后,利用软件工程的思想指导嵌入式系统开发,其开发效率和资源可重用率都将得到很大的提高。
目前较为流行的嵌入式操作系统有:VxWorks、Neculeus、WindowsCE、Linux等。
相对其它商业操作系统,Linux这个开源网络操作系统有以下独特优势:(1)价格低廉。
在保证产品性能的前提下,价格永远都是系统设计时必须考虑的重用因素之一。
由于Linux来源于开源社区,相对于其它商业操作系统,其价格几乎为零。
(2)文档丰富。
全世界的Linux程序员都是技术顾问,任何人都可以在开源社区得到其系统所需要的文档和帮助。
(3)网络性能优良。
与Unix一脉相承的Linux支持多种网络协议,并能够使系统长期稳定运行。
(4)知识创新。
在国产操作系统中,嵌入式操作系统被认为是唯一可以赶超国外同行的操作系统。
而Linux是操作系统中的佼佼者,任何人都可以遵照GPL规则发布包含自己知识产权的产品,可以高效地进行知识创新,少走弯路。
为此,本设计选用高性能ARM9芯片和嵌入式Linux操作系统。
2视频采集模块设计与实现视频采集模块是嵌入式网络摄像机的核心模块之一。
它通过嵌入式Linux操作系统调度V4L(video4linux)和影像设备驱动程序来完成视频捕获。
V4L是Linux影像系统与嵌入式影像的基础,是Linuxkernel里支持影像设备的一组APIs,配合适当的视频采集卡与视频采集卡驱动程序,V4L可以实现影像采集、AM/FM无线广播、影像CODEC、频道切换等功能。
目前,V4L主要应用在影像串流系统与嵌入式影像系统里,其应用范围相当广泛,例如:远程教学、远程医疗、视频会议、视频监控、可视电话等。
V4L为2层式架构,最上层为V4L驱动程序,最下层则是影像设备驱动程序。
在Linux操作系统中,外部设备都作为设备文件来处理,因此,对外部设备的操作就转变成对设备文件的操作。
视频设备文件位于/dev/目录下,一般情况下为video0。
当摄像机通过USB接口连接到视频采集终端后,在程序中调用V4LAPIs 对设备文件video0的读操作即可实现摄像头视频数据采集。
其主要过程如下:1)打开设备文件:intv4l_open(char*dev,v4l_device*vd){}打开影像源的设备文件;2)初始化picture:intv4l_get_picture(v4l_device*vd){}获取输入的影像信息;3)初始化channel:intv4l_get_channels(v4l_device*vd){}获取每个channel 的信息;4)对channel设置norm:intv4l_set_norm(v4l_device*vd,intnorm){}对所有的channel设置norm;5)设备地址映射:v4l_mmap_init(v4l_device*vd){}返回存放图像数据的地址;6)初始化mmap缓冲区:intv4l_grab_init(v4l_device*vd,intwidth,intheight){};7)视频捕获同步:intv4l_grab_sync(v4l_device*vd){};8)视频捕获:intdevice_grab_frame(){}。
通过以上操作,即可将摄像机视频数据采集到内存。
采集到内存的视频数据既可采用文件的形式保存,也可将其压缩后通过网络发布到Internet。
本设计采用后一种处理方法,即:将采集的视频数据经MJPEG压缩,生成视频数据流并发布到Internet。
3视频压缩模块设计由于摄像机采集到的视频数据信息量较大,如果直接将其处理成视频,将会给视频处理和网络数据传输带来很大的负担。
因此,本设计采用高性能ARM9处理器对采集到的数据进行MJPEG压缩。
JPEG(JointPhotographicExpertsGroup)—联合图像专家组的简称,它的主要目标是研究具有连续色调图像(包括灰度和彩色图像)的压缩算法,是MJPEG 的基础。
JPEG算法被确定为静态数字图像压缩的国际标准,不仅适用于静止图像压缩,而且适用于电视图像序列的帧内图像压缩。
由于JPEG压缩采用的是全彩影像标准,其主要处理过程包括:色彩模型转换、离散余弦—DCT变换、重排DCT结果、量化、编码等。
MJPEG是MotionJPEG的缩写,即动态JPEG。
它将动画播放与JPEG结合,按照25帧/秒的速度使用JPEG算法压缩视频信号,完成动态视频的压缩。
4Web服务器设计在资源有限的嵌入式设备中可以使用的轻量级WebServer有:httpd、thttpd、boa等。
本设计选用开源的、支持CGI的BoaWebServer,其主要移植过程如下:(1)到下载最新软件包并解压到相关目录。
(2)在目录boa/src下的defines.h文件顶部设置默认的SERVER_ROOT路径。
(3)选择交叉编译工具。
在boa目录下使用./configure--host=i686-pc-Linux-gnu--target=arm-Linux完成对boa的配置。
(4)执行make编译boa后即在src/目录下生成可执行文件boa。
(5)对boa.conf文件进行配置。
主要完成对boa运行的端口号、Server根目录、logfiles、html文件、cgi文件目录及可读写的temp目录的属性的设置。
5浏览器与服务器之间的通信—通用网关接口CGI(CommonGatewayInterface)是外部应用扩展程序与WWW服务器交互的一个标准接口。
按照CGI标准编写的外部扩展程序能够处理客户端浏览器输入的数据,从而完成客户端与服务器的交互、实现动态Web技术。
在本设计中,当用户通过浏览器向网络摄像机发送控制信息(比如控制摄像机云台的动作等)时,服务器守护进程启动CGI模块,CGI模块通过串口将控制命令传送给云台,使云台执行相应的动作。
其流程图如图2所示:图2CGI控制云台动作原理流程图6Web页面的设计在本嵌入式网络摄像机中,Web页面的主要功能是显示Web页面及动态视频信息。
由于标准的html网页只具有显示文字和图片的功能,因而无法在标准的html网页里嵌入一个窗口来“实时”观看视频图像。
解决这个问题的一种方法是将“实时”视频监控软件嵌入到网页中。
Microsoft制定了ActiveX规范,只要符合这个规范的软件都可以嵌入到网页中。
为了能满足多人同时“实时”观看视频图像,在本设计中选用标准ActiveX控件—VgPlayerObject来实现这一功能。
7结束语本文提出了一种基于ARMS3C2410X和Linux的嵌入式网络摄像机设计。
采用嵌入式Linux操作系统进行视频采集、压缩并通过ActiveX控件显示动态视频,通过嵌入式WebServer和CGI技术融合整个系统,形成一套完整的网络摄像机系统解决方案。
由于系统采用高性能嵌入式处理器完成主要控制、压缩和Web处理工作,因此该系统具有结构简单、性能稳定、成本低廉等优点,在油田、油气井现场视频实时监控、智能小区、移动监控等领域具有广阔的应用前景。
本文作者创新点:成功将CGI技术应用到嵌入式网络摄像机中,利用简单的方法实现了用户和嵌入式系统的交互,本网络摄像机在智能监控和移动监控中有广阔的应用前景。