基于GPRS有线网络远程安防监控系统的设计与开发.doc_第1页
基于GPRS有线网络远程安防监控系统的设计与开发.doc_第2页
基于GPRS有线网络远程安防监控系统的设计与开发.doc_第3页
基于GPRS有线网络远程安防监控系统的设计与开发.doc_第4页
基于GPRS有线网络远程安防监控系统的设计与开发.doc_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

基于GPRS/有线网络远程安防监控系统的设计与开发摘要:本文提出了基于GPRS/有线远程安防系统的解决方案。该方案主要是采用GPRS/有线通信技术实现远程终端对家庭系统的远程控制;采用嵌入式系统方案搭建智能家居控制器的开发平台,并通过该平台实现对家用设备的智能管理和控制。本系统主要是在ubuntu 8.10环境系统以及韩国三星S3C2410的ARM9实验板平台为基础建立的一套关于远程安防监控系统,这也是现在趋势所需,并且能为学校,社区及个人带来一些出行的便利和提供安全防范的保障。本文对整个基于GPRS/有线网络远程安防监控系统部分功能作了一些简要的介绍和说明,并提出了基于GPRS、ARM处理器、视频数据采集处理、A/D转换,键盘驱动,蜂鸣器驱动等的远程家用安防系统。该系统可以根据需要对家里的情况进行监控,通过MMS/SMS对主人进行提示,以处理紧急事务。也设计了系统的模型和主要的实现,达到了预定的设计要求。总之,该系统能完成对家里的情况进行实时监控,有效提示家里的突发情况,并能及时的处理和预防,降低了对用户人身和财产的利益损害,也给用户远行出门带来了方便。关键词:GPRS;安防监控;ARM9;嵌入式 2010届计算机科学与技术专业毕业论文1 引言随着社会经济发展,个人收入上升,家居的安全越来越受到人们的重视。然而由于贫富两极分化,治安形势仍比较复杂,常有入室盗窃案件发生;还有家用电器的质量存在问题,容易引发火灾等等。这些危害人们财产安全的因素,对于传统的安防来说还是防不胜防。基于GPRS远程安防监控系统,以ARM9(Advanced RISC Machines)为平台,将红外线人体感应传感器、温度传感器、摄像头等信号数据传送到控制主机,主机将控制采集模块进行图像、温度、入侵者报告的采集处理,处理判断后后通过GPRS网络,以MMS或SMS的形式传送到远程户主手机,住宅主人可以更及时、更直观、更清晰的掌握家中安防的异常情况。2 用户需求分析2.1 功能需求2.1.1 火灾监控(1) 火灾探测在服务控制器主机外接火灾探测模块,并通过数据线传输探测数据,用户可以根据系统需求,可在客户端打开或者关闭火灾探测器。在火灾探测器打开的情况下,火灾探测器探测现场火灾参数(如温度),并且将探测参数实时的向控制主机端报告。 (2) 火灾实时记录和自动报警在火灾探测模块被用户使能的状态下,服务器主机接收到火灾探测器的及时火灾参数,在服务器端进行数据判断,当服务器主机探测到火灾发生时,记录火灾发生的时间,此时包含两种情况:一种是有客户端连接到服务器端时,把火灾参数(如温度)及时传送到已经登录的客户端,客户端在接收到火灾参数的同时把参数信息通过界面传达给用户,并且打开红色警报通知,服务器端进行火灾响铃报警操作,同时,按照用户制定报警方式组成火灾报警信息,通过发送短信或者响铃的方式及时地向用户发出火灾警报;另一种情况在没有客户端登录的状态下,服务器端会自动进行以上操作,但不会进行数据的网络传输至客户端。 在一般情况下,用户可在通过客户端界面查看现场温度。同时自动报警铃响后,用户可在服务端和客户端中一个进行关闭操作。2.1.2 防盗监控(1) 非法入侵者探测在服务器控制端,可根据用户系统需求外接安装红外探测器。系统通过对住宅各个重要入口实施红外探测。当有非法入侵时,红外探测器会产生一个低电平,通过数据传输线传输到控制器,控制器进行识别,然后作出相应的操作。(2) 防盗自动报警防盗系统模块在被用户使能的情况下,当系统经过探测确认有非法入侵者时,按照用户制定的警报方式进行非法入侵警报。警报方式包括有:1警铃响鸣,对入侵者进行阻吓;2组织报警信息通过发送短信及时发给用户。在有客户端登录的情况下,会将入侵警报发送到客户端,客户端会在界面向用户传达红色警报图标。在警报已经取消的情况下,用户可通过客户端和服务段其中一个,关闭警报,同时界面恢复至初始状态。2.1.3 视频监控(1) 实时监控 系统通过摄像头实时监控住宅环境状况,用户通过终端控制摄像头的开/关查看住宅环境情况。(2) 视频采集 用户可通过设置菜单启动和停止视频监控,在图形界面实时了解住宅情况.(3) 抓拍当有火灾,非法入侵时,服务端实时抓拍现场视频数据,存放在服务端.并根据是否有客户端连上将视频数据发到客户端显示. (4) 客户端显示服务器端在收到客户端视频显示操作后,将监控数据通过网络发送到已登录客户端,用户可通过界面查看监控现场环境。2.1.4 功能制定与远程监控(1) 功能制定 用户通过控制主机终端,制定自己的火警、防盗和视频采集功能。(2) 远程监控 用户通过网络连接,在客户端远程登录系统,进行火警、防盗和视频监控的相关操作。根据自身环境需求设置系统参数。所有设置参数以及监控数据通过指定网络进行数据的交互、传输。2.2 性能需求分析2.2.1 系统稳定性(1) 可持续运行监控系统可全天候24小时不间断的运行,不受到天气环境的影响。并能根据实时指令作相应的变化,且具有省电节能,操作方便简单,覆盖范围广等的功能。(2) 可扩展升级系统留有相关扩展接口,可供用户以后进行比如智能家电控制,PDA手持设备终端,多媒体设备,高清视频机顶盒等多功能扩展和匹配。此系统也提供了供日后生产方设备升级后所用的接口和相应参数。 2.2.2 支持用户远程登录系统可支持多用户远程登录,并支持多用户操作。2.2.3 警报准确性高(1) 火警低误报率火灾警报子系统要能及时准确判断火灾是否确实发生,以免产生误报。(2) 入侵低误报率 入侵警报子系统要能及时准确判断非法入侵是否确实发生,以免产生误报。2.3 其他需求分析 用户界面美观,操作简单易学,通用性强,安全性高,可用性好,为家庭出行带来便利,能及时了解所控家居的环境状况,出现危险状况时能及时报警及通知房主。能根据时代变化利用广泛使用的普通手机,通过GPRS网络结合嵌入式系统实现用户对家居安防的远程监控,具有价格便宜、传输速率高、覆盖范围广等优势。3 系统流程分析3.1 系统控制总流程一层图图 图 3-1 系统控制总流程图3.2 系统流程二层图3.2.1 火灾监控流程图 图 3-2 火灾监控流程图3.2.2 防盗监控流程图 图 3-3 防盗监控流程图3.2.3 视频监控流程图 图 3-4 视频监控流程图3.2.4 用户远程登录控制流程图 图 3-5 用户远程登录控制流程图4 系统逻辑结构分析4.1 系统分解图4-1系统整体结构图4.2 系统描述如上图,总的系统可分为八个子系统:4.2.1 火灾子系统根据用户系统检测的室内温度作出评判和探测,若室内温度超过设定限值就会发送实时消息给报警子系统,并及时向控制主机发送温度值,反映居家情况,使其及早作出防御措施。4.2.2 防盗子系统根据用户系统的红外检测设备实时判别用户门窗的红外异常情况,发送消息给报警子系统使其发出警告,并及时发送信息给户主使其及早防御或处理判别。4.2.3 警报子系统负责火灾探测及火灾发生情况下的警报产生及关闭,非法入侵者的探测及产生非法入侵时的防盗警报的产生与关闭。当发现出现异常入侵或响应事件时及时开启报警提示户主的警觉注意并能及时采取措施进行适当的处理。4.2.4 视频监控子系统根据火灾子系统或防盗子系统及时反馈的信息作出判断,负责现场视频采集数据、现场监控以及图片抓拍等流程,并实时存储相关视频或图片发送给户主及早作出预防和处理。4.2.5 GPRS信息发送/有线网络传输子系统在服务器确认产生警报情况下,根据火灾子系统或防盗子系统及时反馈的信息,负责向用户发送火灾或非法入侵警报,及时通过有线网络传输警报信息至已登录用户客户端告知户主得到预防或处理。4.2.6 服务器系统主控 调用网络连接模块,入侵模块,火灾模块,报警模块等相关初始化函数,使各模块能并行运行。 4.2.7 网络连接 提供客户端和服务器端的网络连接,及时互递双方采集的有效数据,利用TCP/IP协议进行打解包传输,使采集的数据实时有效。4.2.8 用户终端 用户输入IP 地址,若为服务器地址,并连接成功就进入菜单控制界面。5 系统开发平台5.1 系统开发平台下图为典型的嵌入式系统结构图,包括用户应用程序、操作系统(及其提供的API)、驱动程序、底层硬件。5.1.1 嵌入式系统底层硬件包括(1) ARM(Advanced RISC Machhines)开发板作为服务器端,其中有S3C2410处理器,工作频率为203MHz,可以满足嵌入式对低价、低功耗、高性能的需求,集成了NAND控制器、中断控制、功率控制、存储控制、UART、WatchDog等丰富资源;存储系统为1片64MB 8位NANDFlash、2M norflash和2片4Banks*4Mb*16b SDRAM芯片;串口使用了2路3线UART,通过MAX323芯片把3.3V转换为RS-232-C逻辑电平实现与PC通信,通过超级终端町在PC上调试;GPRS模块;10 bit电压为0 3V的A/D转换器;火警传感器,输出电压0-3V;红外传感器;以太网接口使用芯片为CS8900A,10Mbps自适应;包括音频IIS总线,IDE接口,16个按键,SD卡座,提供时钟的RTC电路,复位电路,JTAG接口,电源接口等。另外扩展配置一个摄像头。(2) 一台PC(Person Computer)作为客户端。包括以太网接口,显示器。5.1.2 嵌入式操作系统常用嵌入式操作系统有WINCE、linux、uclinux等,此处使用内核版本为linux 2.6.29,通过对硬件控制而实现为应用层提供便利。因为linux使用GPL,便于内核移植和应用程序开发,其中的许多命令和编程接口同传统的UNIX一样。并且linux内核可以经过裁剪占用很小一部分内存。可以仅使用256KB ROM和512KB RAM进行工作。Linux内核源码开放,可方便了解其功能实现方法。且linux系统有较强的实时性,使数据可以实现实时传输。文件系统为YAFFS2文件系统,为应用程序和驱动层提供服务。5.1.3 嵌入式硬件驱动层设备驱动按照操作系统给出的独立于设备的接口而设计,应用程序可使用同一的系统调用接口控制、访问底层设备。设备驱动充当了硬件和应用软件之间的纽带,它使得应用软件只需要调用系统软件的应用编程接口(API)就可以让硬件区完成要求的工作,按照具体工作方式读写设备寄存器,完成设备的轮询、中断处理、DMA通信,进行物理内存向虚拟内存映射,最终使通信设备能够收发数据,使显示设备能够显示文字和画面,使存储设备能够记录文件和数据。5.1.4 应用程序应用程序包括客户端应用程序和服务端应用程序,其中客户端应用程序提供用户与底层服务端得交互界面,进行逻辑操作,通过实现用户的操作指令,由网络设备发送命令至服务端应用程序,经过服务端应用程序的判断其指令功能,服务端应用层调用操作系统接口,进而调用驱动接口控制硬件,达到控制服务端设备的各种功能,包括摄像、报警铃声等功能的响应。以下内容由本人独立完成6 系统使用技术6.1 usb摄像头驱动基于V4L设备的检测与实现该系统是在Linux2.6.29内核中编译生成,使用到spca5xx摄像头驱动,具体安装使用和步骤如下:(1) linux2.6.29内核加载usb摄像头驱动步骤:(a)、内核目录 make menuconfig(b)、进入Device Drivers、进入 Multimedia devices、选中Video For Linux 、选中并进入 Video capture adapters 、选中并进入 V4L USB devices (NEW)(c)、选中 内核所支持摄像头驱动选项(2) 如何查找摄像头驱动(a)、插入usb摄像头(b)、打开设备管理器(右键我的电脑),图像处理设备,查看驱动VID,PID。(c)、根据PID、vid搜索产品公司(d)、成功就可以使用6.2 Video4Linux 编程获取数据系统主要是关于v4l的编程,现有的video4linux有两个版本,v4l和v4l2。利用v4l API获取视频图像一般有以下几步: 打开设备 设置设备的属性,比如图像的亮度,对比度等等 设定传输格式和传输方式 开始传输数据,一般是一个循环,用以连续的传输数据 关闭设备 6.3 国内外图片压缩存储研究发展情况嵌入式技术是一项面向应用的计算机技术。最初的嵌入式系统是由单片机组成的,实现的是相对比较简单的一些功能。随着后PC时代的到来,网络和多媒体技术成为人们需求的发展方向,对于嵌入式系统的性能以及结构提出了新的要求。目前的嵌入式技术是指采用专门设计的嵌入式处理器为控制器,并结合计算机应用技术来满足特定应用的一项技术。对于嵌入式系统的开发,可以分成两个部分,嵌入式软、硬件平台的设计以及基于嵌入式平台的针对特定应用的开发。视频采集研究的意义很重要,因为它在当今多元化社会发挥了巨大的作用,现在不仅在工业控制方面,甚至在人们的生活方面也起到了巨大的作用。压缩存储技术是数字图像采集系统的重要技术,围绕这个技术在图像采集系统中的应用,就是数字化图像采集发展的历程。数字图像采集系统发展的三个阶段按照国内外图像采集系统的相互影响关系。国内外的采集系统的数字化发展过程可划分为下述几个相互交错的阶段:第一阶段为20世纪90年代前期:国外的进口矩阵控制主机产品已经比较成熟,监控公司纷纷开发利用计算机对矩阵主机进行系统控制的软件,实现电脑对图像采集系统图像切换、音频切换、报警处理、图像抓拍等多媒体控制。国内的图像采集产品国产化进程也是在此时期起步,其特点是以传统电子制造业为基础的小规模的产业化。第二阶段是90年代中、后期:在这一时期是图像处理技术、计算机技术,网络技术飞速发展的时期。这一阶段国外电子产品制造商大规模进入中国市场,完成了大多数图像采集产品国产化过程。国内公司在完成矩阵主机、解码器、多媒体控制系统、云台等外部设备产业化生产后,发现由于受到价格的影响以及硬盘容量的限制,这一时期发展的数字图像采集系统和数字录像系统还不能够在与模拟设备的竞争中取得优势。第三个阶段是2000年以后:随着图像压缩技术的进步,特别是MPEG-I,MPEG-I图像压缩芯片的大量推广应用,2000年至今,数字图像采集产品进入了一个快速发展时期,产品也由原来的数字监控录像主机发展到网络摄像机、网络传输设备、电话传输设备、专业数字硬盘录像机等多种产品。经过这几年的发展,中国国内诞生了一批新兴的数字化图像采集产品生产企业,特别是以数字化安防产品的代表数字硬盘录像机生产企业为代表的厂家迅速崛起,使原有的图像采集市场发生了根本性的变化,传统监控产品生产企业如松下、SANYO, SONY产品在市场中的份额不断缩减,民族品牌的数字化图像采集产品逐步占据市场。在现阶段,国内在图像采集方面的技术基本上已经和国外处于同一层次,只是由于资金等方面的原因,应用方面显得相对落后。今后国内外数字化图像采集产品在技术上将会向两个方向发展,第一是高清晰度,对图像质量的追求,始终是人们努力的方向,更是图像采集业内在的要求,因此随着存储设备容量的不断增大,价格不断降低,新的存储技术的发展,采用MPEG-II和其他高画质图像标准的产品将投入市场,成为数字化图像采集的重要产品。第二个方向是基于MPEG-IV 或更新的图像压缩标准的产品,MPEG-IV 技术为数字化图像采集产品提供了新的发展空间,MPEG-IV技术尤其适合网络图像采集,它的出现和应用,将使数字化图像采集迈向一个新的时代。6.4 FrameBuffer的原理FrameBuffer 是出现在 2.2.xx 内核当中的一种驱动程序接口。Linux是工作在保护模式下,所以用户态进程是无法象DOS那样使用显卡BIOS里提供的中断调用来实现直接写屏,Linux抽象出FrameBuffer这个设备来供用户态进程实现直接写屏。Framebuffer机制模仿显卡的功能,将显卡硬件结构抽象掉,可以通过Framebuffer的读写直接对显存进行操作。用户可以将Framebuffer看成是显示内存的一个映像,将其映射到进程地址空间之后,就可以直接进行读写操作,而写操作可以立即反应在屏幕上。这种操作是抽象的,统一的。用户不必关心物理显存的位置、换页机制等等具体细节。这些都是由Framebuffer设备驱动来完成的。FrameBuffer 设备还提供了若干 ioctl 命令,通过这些命令,可以获得显示设备的一些固定信息(比如显示内存大小)、与显示模式相关的可变信息(比如分辨率、象素结构、每扫描线的字节宽度),以及伪彩色模式下的调色板信息等等。通过 FrameBuffer 设备,还可以获得当前内核所支持的加速显示卡的类型(通过固定信息得到),这种类型通常是和特定显示芯片相关的。比如目前最新的内核(2.6.29)中,就包含有对 S3、Matrox、nVidia、3Dfx 等等流行显示芯片的加速支持。在获得了加速芯片类型之后,应用程序就可以将 PCI 设备的内存I/O(memio)映射到进程的地址空间。这些 memio 一般是用来控制显示卡的寄存器,通过对这些寄存器的操作,应用程序就可以控制特定显卡的功能。PCI 设备可以将自己的控制寄存器映射到物理内存空间,而后,对这些控制寄存器的访问,给变成了对物理内存的访问。因此,这些寄存器又被称为memio。一旦被映射到物理内存,Linux 的普通进程就可以通过 mmap 将这些内存 I/O 映射到进程地址空间,这样就可以直接访问这些寄存器了。当然,因为不同的显示芯片具有不同的能力,对memio 的使用和定义也各自不同,这时,就需要针对加速芯片的不同类型来编写实现不同的加速功能。比如大多数芯片都提供了对矩形填充的硬件加速支持,但不同的芯片实现方式不同,这时,就需要针对不同的芯片类型编写不同的用来完成填充矩形的函数。FrameBuffer 只是一个提供显示内存和显示芯片寄存器从物理内存映射到进程地址空间中的设备。所以,对于应用程序而言,如果希望在 FrameBuffer 之上进行图形编程,还需要自己动手完成其他许多工作Framebuffer对应的源文件在linux/drivers/video/目录下。总的抽象设备文件为fbcon.c,在这个目录下还有与各种显卡驱动相关的源文件。6.5 压缩编码标准图像数据压缩的实现摄像头采集出来的数据为yuv 格式的原始数据,其数据量非常大,以一个像素3byte 来计算,分辨率为320240 的一张图像的数据量为3202403byte,即225k,如果采用现有的无线通信信道,传一张数据需要数2.5秒,不能满足实时的要求,所以必须经过压缩。压缩的方式有两种,一种是单帧的静态JPEG(Joint Photographic Experts Group)压缩,另一种是多帧的动态MPEG(Moving Pictures Experts Group,动态图像专家组)压缩。图像压缩编码技术的发展和广泛应用促进了许多有关国际标准的制定。这方面的工作主要是由国际标准化组织(ISO),国际电子委员会(IEC)和国际电信联盟(ITU)进行的。 对于图像数据的压缩,可以使用Linux下的Libjpeg库来实现。Libjpeg是Linux下一个标准而常用的库,它的功能是将图片以一定的压缩比率压缩成jpeg格式的图片。使用Libjpeg库体现了使用嵌入式Linux的巨大优势,即在嵌入式Linux下可以使用很多Linux平台的资源,比如Libjpeg,而且这些资源都是免费并且开发源码的。使用这些资源就减少了很多底层的和重复性的开发工作,或是避免了使用一些商用软件的费用。当然,在使用这个库之前首先需要安装和编译这个库。对于Linux,Libjpeg库己经包括在Linux的源代码包中,在配置Linux的库文件选项中选择Libjpeg,然后编译Linux即可安装并使用该库。对于开发时使用的PC系统,可以下载并安装基于标准Linux的Libjpeg库。在我们使用的图像采集程序里,数据压缩的实现如下:首先,定义必要的数据,如struct jpeg_compress_struct jpeg;这是Libjpeg用来处理压缩的结构变量,struct jpeg_error_mgr jerr;这是Libjpeg用来处理压缩错误的结构变量。jpeg_std_error、jpeg_create_compress、jpeg_set_quality等在jpeglib.h头文件里都已经定义了。下面是在程序里图像压缩的主要实现程序:这个函数的主要功能就是利用libjpeg库把RGB24格式的图片压缩成JPEG格式,然后把JPEG图片存成文件保存下来,供以后传入PC使用。6.6 GPRS概述通用分组无线服务技术(General Packet Radio Service)的简称,它是GSM移动电话用户可用的一种移动数据业务。它经常被描述成“2.5G”,也就是说这项技术位于第二代(2G)和第三代(3G)移动通讯技术之间。它通过利用GSM网络中未使用的TDMA信道,提供中速的数据传递。GPRS突破了GSM网只能提供电路交换的思维方式,只通过增加相应的功能实体和对现有的基站系统进行部分改造来实现分组交换,这种改造的投入相对来说并不大,但得到的用户数据速率却相当可观。GPRS(General Packet Radio Service)是一种以全球手机系统(GSM)为基础的数据传输技术,可说是GSM的延续。GPRS和以往连续在频道传输的方式不同,是以封包(Packet)式来传输,因此使用者所负担的费用是以其传输资料单位计算,并非使用其整个频道,理论上较为便宜。GPRS通用分组无线业务,是中国移动推出的一种新型的无线移动数据通信业务。在GSM/GPRS移动网络上,GPRS的实际传输速率多在40100kb/s左右。通过提供的TCP/IP连接,可以用于无线Internet连接和数据传输。 无线移动用户利用GPRS技术与数据网络之间的连接是一种高效的、低成本的无线分组数据业务。使用GPRS技术实现数据分组发送和接收,允许用户实时连到网上数小时而不产生费用且用户永远在线。这种经济的、按流量收费的无线解决方案,大大降低了应用服务成本而特别适合于频繁的、间歇性的中小量数据传输的应用客户。GPRS的传输速率可提升至56甚至114Kbps。而且,因为不再需要现行无线应用所需要的中介转换器,所以连接及传输都会更方便容易。如此,使用者既可联机上网,参加视讯会议等互动传播,而且在同一个视讯网络上(VRN)的使用者,甚至可以无需通过拨号上网,而持续与网络连接。GPRS分组交换通信技术:GPRS分组交换的通信方式在分组交换的通信方式中,数据被分成一定长度的包(分组),每个包的前面有一个分组头(其中的地址标志指明该分组发往何处)。数据传送之前并不需要预先分配信道,建立连接。而是在每一个数据包到达时,根据数据包头中的信息(如目的地址),临时寻找一个可用的信道资源将该数据报发送出去。在这种传送方式中,数据的发送和接收方同信道之间没有固定的占用关系,信道资源可以看作是由所有的用户共享使用。由于数据业务在绝大多数情况下都表现出一种突发性的业务特点,对信道带宽的需求变化较大,因此采用分组方式进行数据传送将能够更好地利用信道资源。例如一个进行WWW浏览的用户,大部分时间处于浏览状态,而真正用于数据传送的时间只占很小比例。这种情况下若采用固定占用信道的方式,将会造成较大的资源浪费。在GPRS系统中采用的就是分组通信技术,用户在数据通信过程并不固定占用无线信道,因此对信道资源能够更合理地应用。在GSM移动通信的发展路标中,GPRS是移动业务和分组业务相结合的第一步,也是采用GSM技术体制的第二代移动通信技术向第三代移动通信技术发展的重要里程碑。6.7 串口概述串行口是计算机一种常用的接口,具有连接线少,通讯简单,得到广泛的使用。常用的串口是 RS-232-C 接口(又称 EIA RS-232-C)它是在 1970 年由美国电子工业协会(EIA)联合贝尔系统、 调制解调器厂家及计算机终端生产厂家共同制定的用于串行通讯的标准。它的全名是数据终端设备(DTE)和数据通讯设备(DCE)之间串行二进制数据交换接口技术标准该标准规定采用一个 25 个脚的 DB25 连接器,对连接器的每个引脚的信号内容加以规定,还对各种信号的电平加以规定。传输距离在码元畸变小于 4% 的情况下,传输电缆长度应为 50 英尺。 序号信号名称符号流向功能1发送数据TXDDTEDCEDTE发送串行数据2接收数据RXDDTEDCEDTE 接收串行数据3请求发送RTSDTEDCEDTE 请求 DCE 将线路切换到发送方式4允许发送CTSDTEDCEDCE 告诉 DTE 线路已接通可以发送数据5数据设备准备好DSRDTEDCEDCE 准备好6信号地信号公共地7载波检测DCDDTEDCE表示 DCE 接收到远程载波8数据终端准备好DTRDTEDCEDTE 准备好9振铃指示RIDTEDCE表示 DCE 与线路接通,出现振铃 表 6-1 计算机串口的引脚说明6.8 建立交叉编译环境我们要在ubuntu 8.10上进行应用程序的开发调试,首先就必须在宿主机上建立交叉开发环境,使宿主机能够编译生成实验开发板能够运行的代码。所谓“交叉编译环境”,在一个平台上生成另一个平台上的可执行代码。因为开发板上只是为了测试特殊硬件环境下程序运行的效果,一旦程序通过即可实际应用。如果为之配备人性化的编译调试环境,势必使得系统冗繁庞大,不符合嵌入式的“精简实用”原则。那么,编译和调试程序就得在通用开发环境PC 即宿主机下进行了。系统软件的开发调试是在Linux的宿主机上建立ARM 的交叉编译链,通过交叉编译得到目标的可执行文件,然后将编译好的文件通过网口下载到目标板上进行调试验证。在嵌入式系统开发中,需要使用某机器(例如开发用的PC)上的编译器来编译在另外一台机器上(也就是嵌入式系统上)运行的目标代码,这种编译即所谓的交叉编译(Cross Compiling)。下面介绍交叉编译环境的建立过程:我们宿主机的开发环境采用GCC(这是一个程序编辑器)(如gcc 3.1.4)。首先我们要在宿主机上建立基本的交叉编译环境,就是在i386架构的机器上用针对ARM的工具链Ubuntu 8.10进行开发。在PC机上如果使用开发板的代码编译器和库文件,编译出来的可执行文件就只能在开发板上运行,所以要安装Ubuntu 8.10。由于嵌入式系统的特有限制不可能装备很大的设备和友好的人机交互界面,所以一般开发环境GCC都需要安装在Ubuntu 8.10上,而通过GCC生成的最终目标文件将运行在相应的目标平台上。因为Ubuntu 8.10采用的内核2.6.29同样是基于ARM 体系结构的,所以在基于ARM9的S3C2410的开发过程中必须使用GCC的交叉编译环境。对ARM9的S3C2410开发板,交叉编译环境已经在Ubuntu 8.10中安装好了,(在Linuxhomegcc_arm-linux中)以后我们就可以用“arm-linux-gcc.exe”进行程序调试,便于检查错误;如果程序通过,下载到开发板上。6.9 加载内核Kernel 和文件系统Filesystem用Jtag口下载烧写uboot.bin时很慢,一般不建议使用,现在我们一般使用usb或串口下载烧写到开发板的Nor Flash(要注意拔掉跳线帽),当uboot.bin编译生成后,就可以使用Ubuntu 8.10提供的tftp来装载kernel和filesystem了。配置开发板的运行环境,并把开发板IP改成7,启动pc上的TFTP服务器TFTP32.把编译好的内核和文件系统的映像文件放到FTP目录中。启动开发板,按PC机上任何键进入Fs2410出现提示符Fs2410执行如下命令:Fs2410tftp kernel | filesystem/设置目标板的ip为00 , 下载内核(注意内核是zImage)Fs2410tftp ramdik_rootfs.jffs2/下载rootfsFs2410go 0x30008000/将rootfs 或 kernel | filesystem 烧写到Nand Flash上Fs2410boot/重启系统6.10 内核定制Linux将它的组件分为直接的核心模块和运行时可加载的模块。Linux操作系统的基本组件包括:根文件系统、IDE/MEM驱动程序、内存管理、进程和调度管理、一些必要的I/O子系统。(1) 在arm linux的opt/kernel_2.6.29目录下make menuconfig。(2) 首先选择Multimedia device-下的Video for linux。(3) 然后在usb support-目录下选择support for usb和选择usb camera ov511 support。(4) 保存退出。(5) make zImage;然后就在/driver/usb下生成ov511.ko,同时生成的zImage手动地放在/tftpboot下。(6) 然后用新内核启动板子后insmod ov511.ko ,就可以成功加载模块到板子上。本试验采用开发板提供的内核映像zImage, 因为zImage中添加了USB控制器的等时传输功能,这是OV511驱动需要的。6.11 USB 设备驱动的基础知识通用串行总线(USB)是一个在主机和许多外设之间的连接. 最初它被创建来替代许多慢速和不同的总线-并口, 串口, 和键盘连接-有一个单个的所有设备都可以连接的总线类型.USB 已经成长超出了这些慢速连接并且现在支持几乎每种可以连接到 PC 的设备. USB 规范的最新版本增加了高速连接, 理论上到 480 MBps.拓扑结构上, 一个 USB 子系统没有如同一个总线一样分布; 它更多是一个树, 有几个点对点连接. 这些连接是 4-线 电缆(地, 电源, 和 2 个信号线)来连接一个设备和一个集线器, 如同双绞线以太网. USB 主控制器负责询问每个 USB 设备是否它有数据发送. 由于这个拓扑关系, 一个 USB 设备在没有首先被主控制器询问时从不启动发送数据. 这个配置允许一个非常容易即插即用的系统, 这样各种设备可自动被主机配置.一个 USB 设备是一个非常复杂的事物, 幸运的是, Linux 提供了一个子系统称为 USB 核, 来处理大部分复杂的工作. 这一章描述驱动和 USB 核之间的交互. 图中显示了 USB 设备如何包含配置, 接口, 和端点, 以及 USB 驱动如何绑定到 USB 接口, 而不是整个 USB 设备.USB 通讯的最基本形式是通过某些称为 端点 的. 一个 USB 端点只能在一个方向承载数据, 或者从主机到设备(称为输出端点)或者从设备到主机(称为输入端点). 端点可看作一个单向的管道.一个 USB 端点可是 4 种不同类型的一种, 它来描述数据如何被传送:CONTROL :控制端点被用来允许对 USB 设备的不同部分存取. 通常用作配置设备, 获取关于设备的信息, 发送命令到设备, 或者获取关于设备的状态报告. 这些端点在尺寸上常常较小. 每个 USB 设备有一个控制端点称为端点 0, 被 USB 核用来在插入时配置设备. 这些传送由 USB 协议保证来总有足够的带宽使它到达设备.INTERRUPT :中断端点传送小量的数据, 以固定的速率在每次 USB 主请求设备数据时. 这些端点对 USB 键盘和鼠标来说是主要的传送方法. 它们还用来传送数据到 USB 设备来控制设备, 但通常不用来传送大量数据. 这些传送由 USB 协议保证来总有足够的带宽使它到达设备.BULK :块端点传送大量的数据. 这些端点常常比中断端点大(它们一次可持有更多的字符). 它们是普遍的, 对于需要传送不能有任何数据丢失的数据. 这些传送不被 USB 协议保证来一直使它在特定时间范围内完成. 如果总线上没有足够的空间来发送整个 BULK 报文, 它被分为多次传送到或者从设备. 这些端点普遍在打印机, 存储器, 和网络设备上.ISOCHRONOUS :同步端点也传送大量数据, 但是这个数据常常不被保证它完成. 这些端点用在可以处理数据丢失的设备中, 并且更多依赖于保持持续的数据流. 实时数据收集, 例如音频和视频设备, 一直都使用这些端点.控制和块端点用作异步数据传送, 无论何时驱动决定使用它们. 中断和同步端点是周期性的. 这意味着这些端点被设置来连续传送数据在固定的时间, 这使它们的带宽被 USB 核所保留.6.12 spca5xx.c 和Video_dev.cVideo_dev是一个为了上层应用提供一个统一的接口,通过代码分析不难发现,其实就是V4L的驱动。摄像头属于视频类设备,遵循的标准为Video for linux(v4l)标准,这个标准定义了一套API接口,内核,驱动,应用程序都以这个接口为标准进行交流。目前的V4L覆盖了音视频捕捉和处理等内容,也包括USB摄像头。那么spca5xx和Video_dev到底怎么联系的:Video_dev中定义了设备struct video_dev。spca5xx中定义了设备struct usb_spca5xx,它包含了struct video_dev。Video_dev.c中实现了EXPORT_SYMBOL(video_register_device);EXPORT_SYMBOL(video_unregister_device);其中EXPORT_SYMBOL为到处符号,跟C语言的外部函数用extent一样,spca5xx.C中对设备usb_ov511的video_dev进行了注册和双许可权认证(防止内核污染)。很明显程序挂起在一个等待对列中,等待frame-grabstate= FRAME_DONE或frame-grabstate = FRAME_ERROR,后者是错误时,前者是当一帧采集完成的时候。frame-grabstate = FRAME_DONE是唯一的一个赋值在spca5xx_move_data中。而spca5xx_irq中断机制又是spca5xx_move_data的唯一调用者和唤醒者。spca5xx_irq它是一个回调函数,当主机控制器完成传输后,spca5xx驱动执行回调函数spca5xx _irq。而我们的URB已经提交给USBCORE,USBCORE应该把它提交给USB控制器,所以这里的问题就是USB控制器在处理完USB请求后没有发消息给spca5xx,这个回调函数被调用。7 测试及性能分析对本系统测试设计到对硬件测试、软件测试、网络测试,以及嵌入式系统平台测试和本系统开发程序测试,测试其功能是否正确实现以及系统反应是否及时,其中主要测试点如下:(以下测试客户端和服务端的平台电源、网络连接线都已确定正确连接)。7.1 模拟红外入侵检测测试操作:打开ARM开发板电源,客户端登录服务端,点击客户端界面上“开启防盗”,然后点击ARM开发板上的键盘按钮。出现结果:服务端迅速响起入侵防盗警报,并且已登录客户端的入侵状态栏发出警报,同时提示信息栏打印出警报发生时间。结果分析:根据点击按钮后客户端和服务端警报发生及其反应时间,可以判定此功能基本正常,性能比较好,客户端与服务端此项功能的数据交互基本正常,且连续测试多次后判定此项性能比较稳定,基本达到了实时的目的。7.2 模拟温度检测测试 操作:打开ARM开发板电源,客户端登录服务器,点击客户端界面“开启防火”,然后旋转开发板上的AD转换器改变模拟数值。出现结果:客户端界面温度显示栏的温度值跟随AD转换器值的改变而改变,当转换器值超过了报警温度值后,服务端报警铃声响起,同时在客户端的温度状态栏发出警报,同时在信息提示栏打印出警报发生时间。结果分析:根据模拟测试的出现结果,可以判断系统的温度值显示、报警功能基本得到实现,并且实时反应,系统硬件和操作系统测试正常,基本兼容。7.3 视频监控测试操作:在ARM开发板上连接好摄像头,同时启动摄像头驱动,在客户端登录服务器,点击客户端界面“开启视频”按钮。出现结果:在客户端的视频显示界面,出现摄像头采集的视频信息,并且显示清晰、流畅。点击抓拍按钮将当前显示的帧数据以图片形式保存到指定目录中。结果分析:根据视频显示情况,可以判断显示功能基本实现,能够稳定、连续显示视频帧信息。8 结束语 需求分析是用户与系统设计者的沟通桥梁,系统设计者可通过需求分析,了解用户的具体的功能需要,从而设计出符合用户的系统,使用户满意。同时编写需求分析文档的目的也在于给后来的系统设计提供参考,是系统设计者有更清晰的设计路线,从而提高效率,缩短软件的开发周期。在基于嵌入式的视频采集系统设计的过程中,主要完成了以下工作:(1)进行了整个项目的可行性报告分析,查阅了很多资料,分析了国内外图像采集与压缩及无线通信的发展和现状。(2)根据项目的需求,提出了嵌入式系统的设计思想,构建了以ARM-9 开发板为硬件处理平台、Linux 为操作系统的开发平台,建立了Arm-Linux(gcc-3.1.4) 交叉开发环境。(3)在嵌入式Linux平台上,对图像采集系统进行了研究和实现,并选择了JPEG压缩。然后完成了嵌入式系统下图像采集的硬件与软件的设计与实现,并对图像进行了JPEG压缩,最后将应用软件下载到开发板上。本论文涉及到Linux内核与嵌入式开发平台的建立、图像采集与压缩编码等几方面的内容,其中每一个方面都值得进一步学习和研究。在今后的工作中,主要有以下几个方面的工作要做:(1)进一步深入剖析Linux内核,最大限度的精简整个系统,使生成的代码尽量短小,尽量减少系统资源的占用。(2)对图像压缩算法的程序进行改进与优化,并尽量提高图像捕获效率。如果要求以视频流的方式传送数据,则需要我们充分利用CDMA的网络带宽资源与传输能力,在图像采集系统中选用更为合适的压缩算法进行压缩,为实现更大数据量的远程实时传送做好准备。总体上,基于spca5xx与Linux 的图像采集与有线通信系统实现了预定的设计目标,基本能够满足项目的系统需求,取得了阶段性的成功。参考文献1 徐雪松 章兢嵌入式 Linux 在工业控制领域中的应用J 北京:国际电子元器件,2004 年,03 期 2 宋威 周伟集散控制系统应用现状及其发展J北京:工业控制计算机,2004 年,11 期 3 郭晨鲜 费凌基于嵌入式控制器及研发平台的分析与研究J 四川:西华大学学报,2005 年,04 期 4 倪继利 编著. Qt及Linux操作系统窗口设计M. 北京:电子工业出版社.5 Jonathan corbet,Alessandro rubiniGreg kroah-hartman 魏永明 耿岳 钟书毅 译Linux设备驱动程序(第二版)MOREILLY & 北京:中国电力出版社6 Samsung Electronics Co. Ltd. S3C2410X 32-Bit RISC Microprocessor Users Manual, revision 1.27 Linux Device Drivers, 3rd Edition By JonathanCorbet,GregKroah-Hartman, AlessandroRubini8宋宝华.linux设备驱动开发详解M. 北京:人民邮电出版社,20059 W.Richard Stevens.图灵系列UNIX环境高级编程第二版M. 北京:人民邮电出版社10 Jasmin Blanchette,Mark Summerfield.C+ GUI Programming with Qt 4 Sencond EditionM. 北京:电子工业出版社,200911U-Boot官方网站. http:/www.denx.de/wiki/U-Boot/SourceCode OL.12Jim Beveridge & Robert Winer 著;侯捷 译.Win32 多线程程序设计M.武汉:华中科技大学出版社.2002RemoteSecurity Monitoring System Based on GPRS / wired network Design and DevelopmentZHENG Jian-feng(Grade 2006, Co

温馨提示

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

评论

0/150

提交评论