基于嵌入式Linux的数字家庭监控系统研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:wwyufo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:本文设计了一套经济实用的数字家庭监控系统。该系统以装有嵌入式Linux的ARM为开发平台,以廉价的USB摄像头为图像采集设备。一旦获得图像,就可以通过GPRS发送,然后在监控中心复原图像,以实现远程的安全监控。整个系统开发成本低,运行可靠,使用方便。
  关键词:嵌入式Linux;GPRS;USB
  中图分类号:TP338文献标识码:B文章编号:1009-3044(2007)03-10819-02
  
  1 引言
  
  随着宽带的普及和提速,以及3G的呼之欲出,视频监控在个人用户市场,特别是家庭安全监控领域的需求也开始冒头。
  以前家庭监控采用的是有线网络监控,这样不但在组建监控系统时布线比较麻烦,在拆迁的时候也给用户带来巨大的工作量。
  而无线监控系统与有线监控系统相比,具有很大的优势。如:综合成本低;组网灵活,可扩展性好,安装快速;系统功能强大、利用灵活、方便于保存和检索;安全性较高,无线网络可以具有多重加密手段。
  本研究正是基于这一需求而相应提出。在网络传输上,采用了无线网络传输的方式,让监控点可以随时“移动”。同时,采用了USB摄像头技术,在实现即插即用和可移动功能的同时,也降低了生产成本。
  
  2 系统组成及工作原理
  
  本系统采用Samsung 公司的S3C2410 芯片为微处理器。这是一款ARM920T芯片,集成了MMU单元,能够在203MHz的频率下达到101BogoMIPS 的处理能力。芯片内部集成了符合OHCI 标准的USBHOST控制器,以及串口等输入输出接口,符合本系统的要求。
  操作系统采用ARM - LINUX。它提供对MMU 的支持,能够最大限度的发挥S3C2410 的各种特性。并且它集成了很多网络协议,让网络传输变的更加容易实现。
  USB 摄像头种类众多,但是对于Linux 应用来讲,主要的区别是其中的USB 桥芯片。目前市场上较为通用的是OmniVision 公司的OV511 + 。该芯片符合USB1.1 标准,提供I2C 接口,能够控制许多Sensor 。本系统使用的USB摄像头即采用了该芯片。
  GPRS模块采用西门子公司提供的MC35 GPRS 模块。他的优势在于:永久在线连接、快速数据存储和数据下载速度。接口为标准的RS232双向接口。系统的结构框图如图1所示。
  本系统传输的是静态图像,在降低了无线传输成本的同时尽可能地获取了有效的信息。在无线网络方面,采用了目前较为稳定又以流量来计费的GPRS方式,经济而且实用。
  本系统可以设计成多种运行方式,如报警监控、定时监控和询问式监控。
  在报警监测方式下,如有异常状况发生,则系统驱动USB摄像头拍摄图片,然后经压缩保存后由GPRS传输图像,并在监控中心上复原图像,处理异常情况。
  在定时监控下,终端每隔一定时间发送图片到中心,让监控者随时了解家中情况。
  在询问式监控方式下,监控者可以通过监控中心发送命令到终端,令其拍照并将结果反馈监控中心。
  本系统中的监控中心,既可以是家用的个人电脑,也可以是现在正火速发展的智能手机,后者可以更加方便地实现“可移动”式监控,并可第一时间掌握情报以采取及时的行动。
  2006年,上海试运行了无线测控网,它广泛用于城市应急防灾、防盗、家庭安全监控等领域。因此这里还指出了一种通过测控网专网传输的方案作为补充,这样和定位结合起来,就可以更好地发挥监控的作用。
  
  3 基于V4L的USB图像截取
  
  USB 摄像头因其灵活、小巧、方便的特性,正成为越来越多的监控应用的首选设备,在嵌入式Linux上要使USB摄像头工作起来,首要问题是解决驱动程序的问题,然后在驱动提供的API接口函数的基础上,编写应用程序来实现图像的截取等操作。
  3.1 USB摄像头驱动程序的实现
  驱动程序是内核和外设之间的接口。在Linux 下,设备驱动程序相当于一个个独立的“黑盒子”,使某个特定的硬件设备响应一个定义良好的内部编程接口,同时完全隐藏了设备的工作细节。
  在嵌入式Linux系统中,USB驱动程序和内核的关系图如图2所示。由于在Linux系统中已经内置了USB Core, 而主控制器的驱动生产模块芯片的厂商一般都会提供,因此我们仅需考虑针对USB设备端的驱动模块。由于Linux操作系统本身支持OV511的摄像头,所以,只要修改驱动的一部分代码使之适合ARM体系结构,在运行的时候动态地加载在内核中就可以顺利地驱动我们的摄像頭了。
  在OV511的驱动中,我们发现它有许多种输出格式,最后我们选择了RGB565的输出方式,在不严重影响图像质量的前提下尽可能地减小图片占用的空间。
  3.2 用V4L获取图像
  V4L(Video4Linux)是Linux中关于视频设备的内核驱动,他为针对视频设备的应用程序编程提供一系列接口函数,在Linux下,视频采集设备的正常使用依赖于对Video4 Linux标准的支持。
  对于USB口摄像头,其驱动程序中需要提供基本的I/O操作接口函数open、read、write、close的实现。对中断的处理实现,内存映射功能以及对I/O通道的控制接口函数ioct1的实现等,并把它们定义在struct file_operations中。这样当应用程序对设备文件进行诸如open、close、read、write等系统调用操作时,Linux内核将通过file_operations结构访问驱动程序提供的函数。
  图3 采集任务程序流程
  采集任务的软件程序实现流程如图3所示,由于采集得到的图像为BMP格式,因此需要将其进行压缩,这里我们用比较流行的JPEG方式来压缩图像。采集后的图像大小只有几K,大大缩减了占用的空间。
  
  4 GPRS传输与Socket编程实现
  
  PPP(点对点协议)是在串行线路上运行IP以及其他网络协议的一种机制,使用PPP拨号上网,我们可以顺利地让我们的嵌入式系统访问Internet网络,进行数据交换。
  4.1嵌入式Linux系统中的PPP拨号
  我们在Linux 中,通过在数据链路层上使用PPP 协议,就可使用Modem连接上Internet 。PPP包含三部分:在串行链路上封装IP 数据包;建立、配置及测试链路的LCP;针对不同网络层协议的NCP 体系。
  嵌入式Linux 网络系统支持两个实体之间的网络连接和Sockets 通信模型。它实现了两种类型的Sockets,即BSDSockets 和INET Sockets。BSD Sockets 是用INET Sock2ets实现的。
  Sockets 的建立和管理是通过Socket系统调用实现,数据的发送和接收是用Read 和Write 系统调用实现的。整体结构如图4所示。
  从图中可以看到,PPP协议处于比较低的数据链路层,它在内核中实现了一个网络接口PPP0。PPP的实现实际上注册了一个网络接口。通过该接口可以向IP层提供接收和发送数据的服务。同时PPP也注册了一个虚拟的驱动程序代替TTY终端例程,它使用串口驱动连接Modem 进而连接Internet,这样PPP 可在物理层与Internet 进行数据交换。
  在PPP连接过程中和网络层数据包发送及接收中,要用到PPP 虚拟驱动程序,即PPP 例程,它负责PPP帧的发送和接受。
  在发送时,在传输前根据需要对PPP 帧的开头和结尾加上标志序列,使用256 位的异步传输转义位图对PPP帧中的特殊字符进行转义处理,转义字符为0x7D;转义编码完成后,PPP帧的16 位CRC校验码被添加到输出流末尾。这些工作完成后,就调用串口驱动通过Modem 发送到Internet 。
  4.2 GPRS发送图像
  GPRS(General Packet Radio Service)是一种基于GSM 的新型移动分组数据承载业务,支持基于标准数据协议,尤其是TCP/IP 协议的应用,从而保证移动互联网的实现,还可以实现与外部数据网的互联。嵌入式Linux 下GPRS 数据传输系统的结构原理如图5。
  图5 GPRS传输过程
  待传输的数据由嵌入式Linux操作系统传给GPRS通信模块,GPRS通过移动通信网络将其传输给Internet,并由服务控制端接收。我们在通过PPP拨号上网以后,GPRS 数据传输主要通过Linux 环境下的网络编程实现,即TCP 套接字编程。套接字描述了一个连结的一个端点,提供网络应用程序中所用到的网络地址和端口号信息,对所包含的数据量没有限制。目前大多数网络应用程序在编写时都采用客户—服务器模式,假定一端是客户,另一端是服务器,让服务器提供给客户一定的服务内容。一个TCP连结的建立开始于TCP 客户机创建一个套接字,然后调用connect函数启动TCP协议的三段握手操作,并与远程服务器建立连接。在服务器方面,当套接字建立以后,调用函数bind绑定自己的公认端口号,然后调用listen准备接收客户端请求,最后调用accept 完成接收,结束一次通信。这样就实现了GPRS的数据传输。
  
  5 监控服务器设计
  
  通信服务器软件采用可视化开发环境VB 6.0编程实现。VB的Winsock控件可以与远程计算机建立连接,并通过TCP或UDP进行数据交换。作为通信服务器端,需设置该控件的Bind属性,使该控件绑定到本机IP地址和某一端口并使用Listen方法将其设置为侦听模式。通过以上方法就可以使应用程序工作于服务器模式,当客户端有服务请求时,控件会自动在该事件中使用Accept方法接受新连接,服务器与客户端握手成功。在双方建立连接后,服务器就可以接收客户端发送过来的数据信息,使用该控件的GetData方法读取接收缓冲区的数据,作出相应的处理。
  
  6 结束语
  
  随着无线通信技术以及嵌入式开发技术的飞速发展,家庭安防产品也将出现新的变化,本研究正是基于这一发展潮流而提出的。USB摄像头的小巧廉价,嵌入式Linux的强大功能,还有GPRS的稳定和按流量计费,不管是在轻便性还是节约成本方面都提供了一个不错的选择。同时,系统还实现了报警监控、定时监控等功能。我们可以想象,在不久的将来,人们可以很方便的实现“出门在外,心中有数”。
  参考文献:
  [1]钟章队,蒋文怡,李红军.等.GPRS 通用分组无线业务[M].人民邮电出版社,2004.
  [2]邹思轶.嵌入式LINUX 设计系统与应用[M].清华大学出版社,2001.
  [3]戴元军.Linux系统下的网络编程技术[J].应用科技, 2001.(6): 29-31.
  [4]黄德强.采用嵌入式LINUX 技術与GPRS 网络实现无线数据采集与传输[J].电子器件,2003,(6).
  [5]邓晓艳,吴荣泉,李双全.等.基于Linux 移动终端的GSM/GPRS 无线通信的原理与实现[J].计算机工程,2003,(2).
  [6]W Simpson. The Point To Point Protocol RFC1661.1994(1).
  [7]林宇,郭凌云. L inux网络编程[M].北京:人民邮电出版社, 2000.
  [8]OmniVision Tecnologies,Inc OV511 + Data Sheet,2000.
  本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
其他文献
Word是我们常用的文档编辑软件。由于笔者经常使用它来编辑文档。用的时间久了,也发现一些很方便的技巧,下面就来和大家一起分享。    用Ctrl+右键来移动文本    一般情况在Word中移动文档内容要么用剪切、粘贴的快捷方式。也可以用鼠标进行拖拽,鼠标拖拽虽然比较方便,但是移动距离不能太大。特别是跨页的时候,很容易出错。其实还有一个更简单的移动方法,那就是先选中要移动的文字,接着把鼠标移到要粘贴
期刊
几乎所有的DV用户都为这样的一个问题而苦恼,那就是原配电池使用时间过短,无法满足出门旅游拍摄的需要,而购买第二块原装DV电池价格又太昂贵,如何解决这一问题?本文告诉大家如何自己制作可随身携带的超级DV电池,让你随时随地出门旅游也可随意拍拍拍……妙哉!    一、制作原理分析    DV通常有两种供电方式:一种是电池供电方式;一种是AC(交流电源)转DC(直流电源)供电方式。一般DV上有一个DC电源
期刊
相信很多朋友平时都会使用Excel来处理数据,可能你曾遭遇过如何来删除空行的问题,手工删除既麻烦又容易出错,如果你已经用上了最新版本的Excel 2007,那么下面介绍的几招可能会帮上你的忙:    方法1:选择常量  在Excel 2007中正常打开需要处理空行的工作表,切换到“开始”选项卡,选择包含数据的所有单元格区域,单击最右侧的“查找和选择”下拉菜单中的“常量”,这样可以将选定区域中包含数
期刊
文件关联就是将某类型的文件与某程序建立起一种关联关系,例如你双击TXT文件,Win XP就会启动“记事本”打开该文件;右击TXT文件。在弹出的菜单中将鼠标移到“打开方式”。右边会显示记事本、Micfosoft Office Word、Internet Ex-ploror、写字板,表示TXT文件与这几个程序都建立一了关麟,你可以选择用某个程序(例如写字板)打开文本文件,也可以点击“选择程序”自行选
期刊
近日,微软筹备数年的Vista操作系统正式发布。TCL电脑捷足先登,率先将首批千家Vista体验店切换到中文正式版。凭借独步全球的“丽屏”实力和独有的“屏分秋色”技术,将Windows Vista演绎得淋漓尽致。TCL、微软和Intel三大跨国巨头历时1年零3个月的协作开发的“海盗V”,更是开创了PC业的“深度融合模式”,赢在了vista新时代的起跑线上。  此前,为了让广大消费者率先体验到Win
期刊
摘要:在嵌入式系统开发过程中,硬件电路设计和测试是比较麻烦的,因此我们希望能在开发初期就对其中的相应部分进行尽可能的仿真。本文简单介绍了当前比较流行的嵌入式系统仿真工具Proteus VSM及软件开发工具IAR EWARM集成开发环境,详细地介绍了在仿真过程中对Proteus VSM与IAR EWARM的接口方法。  关键词:嵌入式系统;Protues VSM;IAR EWARM;仿真  中图分类
期刊
摘要:MATLAB是当前流行应用软件和编程语言,它集数学计算、可视化和编程于一体,易学易用。本文介绍了MATLAB软件的主要特点,阐述了Mapping工具箱的主要内容以及其在数据处理及绘图中的应用。  关键词:MATLAB;mapping工具箱;可视化  中图分类号:TP319文献标识码:A文章编号:1009-3044(2007)03-10828-02    1 MATLAB简介    Matla
期刊
Windows XP防火墙是微软公司为加强安全性而在SP2中添加的一个实用功能,许多用户觉得该功能实在不够强大,属于那种“食之无味、弃之可惜”的“鸡肋”角色,于是干脆将其关闭。而改用其他的产品。其实,微软的产品应该说本身还是有一定的特色的,只要能设置好,运用得当,还是能满足一般要求的。    一、Winows XP防火墙启用与关闭    单击“开始”/“设置”/“控制面板”,在弹出的“控制面板”窗
期刊
摘要:介绍了纳西象形文在文化发展史上的重要地位及其现状。基于微软IME的基本工作原理和体系结构,阐述了纳西象形文拼音输入法的主要设计思路,并在Windows环境下采用VC++6.0实现了纳西象形文拼音输入法。  关键词:纳西象形文;IME;体系结构;拼音输入法  中图分类号:TP312  文献标识码:A  文章編号:1009-3044(2006)29-0130-01
期刊
摘要:从移动存储的角度,结合企业环境阐述如何判断Windows操作系統使用移动存储设备的痕迹问题,及有效屏蔽通用串行接口的方法。用图文的方式,论述了痕迹判断的可行性和屏蔽方法的有效性。  关键词:移动存储;通用串行总线;基本输入/输出系统;注册表  中图分类号:TP393  文献标识码:A  文章编号:1009-3044(2006)29-0131-01
期刊