基于ARM9和GSM/GPRS的无线可移动红外监测报警系统

发布者:陈晨5566最新更新时间:2011-06-18 关键字:ARM9  GSM  GPRS  红外监测报警系统 手机看文章 扫描二维码
随时随地手机看文章

0 引言
    传统的图像监测系统往往布线复杂,通过远距离有线传输而费用高昂,并且灵活机动性小,由于GPRS(通用分组无线业务)通信技术在中低速率无线数据传输方面的突出优势,基于GPRS网络的图像监测系统打破了电缆和光纤传输的限制,在图像监控系统市场中占有很大优势。但是使用GPRS网络进行实时监控的网路费用较大,而在某些场合,比如运送重要物品的货车、无人值守的贵重设备等并不需要实时监控,仅当有入侵障碍物时才需要采集和传输现场图像并发送报警信号,以达到监测和防盗的目的。
    针对这个问题,本文设计了一种基于ARM9和GSM/GPRS网络的无线可移动红外监测报警系统,使用红外监测模块对被监测点进行监测,当探测到入侵障碍物时调用图像采集设备对现场状况进行图像采集并以JPEG格式保存在终端的存储系统中,然后使用GPRS模块将最新的现场图像通过GPRS网络传输到指定的FTP服务器上,并以短信息的方式向用户报警。本系统的红外监测触发传输图像模式可以使系统按流量计费来节省GPRS网络通信费用,它的通用性强,可行性和性价比高,在实际应用中有一定的价值。


1 系统的体系结构
    从体系结构上看,本系统由远程监测终端、GSM/GPRS及Internet无线网络、FTP服务器监控中心及用户手机组成。监控中心通过数字数据网专线与Internet互联,具有固定的IP地址。远程监测终端由终端控制单元、图像采集设备、红外监测设备及GSM/GPRS模块组成。图1所示为本系统的整体体系结构示意图。

2 终端的硬件设计
2.1 终端的硬件结构
    系统中终端使用ARM9内核的S3C2410为处理器,以TX-05D红外线反射开关作为红外监测模块,使用包含USB接口和ZC301p芯片的CMOS图像传感器作为图像采集设备,采用GSM/GPRS模块WAVECOM Q2403A作为无线传输模块。图2为远程监测终端的硬件结构框图。

2.2 终端的硬件实现
    S3C2410微处理器有丰富的外设接口,其中包括117个复用功能输入/输出端口引脚,即GPIO口,每一个端口都可以通过软件设置来满足各种系统配置和设计需求[1]。终端中使用S3C2410微处理器GPIO口中的GPG6口以输入模式连接红外监测模块的数据线,当红外监测模块探测到入侵障碍物时,数据线将向GPG6口输入高电平信号,从而被处理器识别并做出相关处理。GSM/GRPS模块WAVECOMQ2403A通过串口2连接到S3C2410实现图像传输和短信息发送。终端中图像采集设备是USB接口的、基于ZC301p芯片的CMOS图像传感器,它连接到S3C2410的USB HOST口中,实现图像的采集。终端电源模块为S3C2410及各个设备提供相应的工作电压。通过进行模拟试验,终端的硬件设计能够达到功能和性能上的要求,基本能够进行实际应用。


3 终端的软件设计
3.1 终端的软件结构
    终端的软件包括引导加载程序Bootloader、操作系统内核、设备驱动程序和应用层程序,其软件结构如图3所示。

    终端的文件系统采用了双文件系统,即以cramfs不可写文件系统存储系统文件,以jffs2可读写文件系统存储数据文件,从而既可以使系统文件得到可靠保护,又可以方便前期调试工作和图像数据文件的读写。这也是本设计的一个特点。[page]

3.2 设备驱动程序
    设备驱动程序可以被看作操作系统的一部分,对于某个特定的硬件设备来说,其对应的设备驱动程序是不同的。操作系统本身是没有各种设备驱动的,但是它留下了扩展设备驱动的接口。本终端系统中的设备驱动程序主要包括GPIO驱动、USB接口驱动、视频设备驱动和GSM/GPRS串口驱动。
    GPIO驱动是针对GPIO输入/输出端口进行的驱动程序开发,主要的部分是GPIO端口的初始化和配置,经过测试终端采用GPIO总线中的GPG6口以输入模式来接收红外监测模块传入的高电平信号。USB接口驱动由三部分组成:主机控制器驱动程序(HCD)、USB驱动(USBD)、设备端驱动程序(Slave Device Driver),它主要是为支持USB接口的图像采集设备的使用。GSM/GPRS串口驱动是字符设备驱动,系统中选用的串口2对应的设备文件为/dev/tts/1,初始化串口2的波特率为115200 B/s,8位数据位,无奇偶校验,1位停止位,实现了GSM/GPRS模块的连接。
    本系统中使用的视频设备驱动为SPCA5XX,它是面向该ZC301p芯片的,其实现是按照标准的USB VIDEO设备的驱动框架编写的,整个源程序由三个主体部分组成:设备的初始化模块和卸载模块、上层软件接口模块、数据传输模块。此视频设备驱动程序的设计,能够取到应用程序所需要的jpeg流。在此不能不提到ioct1的作用。为了补充设备读写操作的功能,例如控制硬件等,最常用的通过设备驱动程序完成控制动作的方法就是实现ioct1方法。ioct1系统调用为驱动程序执行"命令"提供了一个设备相关的入口点。与read和其他方法不同,ioct1是设备相关的,它允许应用程序访问被驱动硬件的特殊功能一配置设备以及进入或退出操作模式。在本设计中用到的,是通过ioct1截取jpeg流和配置图像采集设备的参数。
3.3 PPP拨号脚本
    本设计中,对于处理器而言,GPRS模块就相当于一个调制解调器,处理器通过串口发送AT命令控制GPRS模块工作情况和得到GPRS模块相关信息。中国移动在GPRS网中建立了相当于ISP的GGSN,以连接GPRS网与外部的Internet网络。要使用GPRS功能首先要登录GPRS网络中的GGSN,这个工作可以通过相关AT命令完成。同时,为了能够进行IP数据包的传输,就必须首先实现数据链路层PPP协议。
    PPP是简单链路设计的链路层协议。设计目的主要是用来建立点对点连接,进行数据收发。PPP协议中主要任务有链路建立、维护、拆除、上层协议协商和认证等。在GPRS网络中一般用到的有LCP(链路控制协议)、PAP(密码验证协议)、CHAP(挑战握手验证协议)和IPCP协议(PPP IP控制协议)。为了建立点到点连接,PPP连接时的两端开始都必须发送LCP数据包来配置和测试数据连接;在连接建立后,对等实体还有可能需要认证;然后,PPP必须发送NCP数据包来选择一种或多种网络层协议来配置。一旦网络层协议被配置好后,该网络层的数据包就可以被封装在ppp 帧中在链路上传送了。PPP链路将保持可配置的状态,直到有LCP数据包和NCP数据包终止连接。在GPRS模块拨号成功后,就要进行LCP协商配置。交互过程完成后,终端将主动进行PAP认证,发出PAP数据包,进入认证鉴权阶段。
    PAP认证主要进行用户名和密码认证,其数据包仍然封装在PPP6帧内,格式和LCP一致。进入PAF认证阶段,终端主动发出Authenticate-Request数据包,由于中国移动使用的GPRS可以设置任意的用户名和密码,因此本设计中使用的用户名和密码都为"lab"。接下来进入IPCP设置阶段。
    在IPCP配置过程中,可以设置网络连接中的网络环境,主要包括协商分配IP地址、IP压缩协议和DNS服务器地址等。由于不需要进行域名的解析和IP压缩,因而只进行IP地址的配置。
    经过上述PPP协议数据交换过程,数据链路已经建立,但是要进行数据的传输,还要进行IP协议和TCP/UDP协议的实现。由于Linux内核已经支持TCP/IP协议,并且在内核配置时选中支持PPP协议,就可以完成上述的协议支持。为了完成上述的PPP协议实现过程,需要在文件系统的/et c文件夹下添加拨号脚本文件,并且在/usr/bin文件夹下添加应用程序pppd和chat。chat程序定义了计算机和modem之间的对话交互,完成拨号动作。pppd后台程序则同内核ppp驱动一起建立并维护与另一端的ppp连接,并确定连接两端的IP地址。
3.4 应用层程序
    应用层程序中包括红外监测模块、图像采集模块、GPRS无线传输模块及GSM短信息发送模块。下面主要介绍图像采集模块与GPRS无线传输模块的实现。
3.4.1 图像采集模块
    在Linux环境下,编写获取视频音频的应用程序,都使用V4L标准,V4L(Video for Linux标准是Linux中通行的音频视频流采集标准。它为内核、驱动和应用程序的交流提供了统一的接口。在应用程序中利用V4LAPI获取视频图像按以下几个步骤进行:打开视频设备、设置设备的属性(图像的亮度、对比度、设定传输格式和传输方式)、开始传输数据,最后关闭设备。
    首先,定义与设备相关的结构体如下:

    struct vldeo_capabil i ty capabi li ty; //视频设备的属性
    struct video_window captureWindow; //包含获取到的图像的长和宽
    struct video_picture imageProperties; //包含获取到的图像属性
    结构体struct video_capabi lity包含视频设备的属性有:视频设备的规范名称、接口类、所能获取的最大图像的宽和长、所能获取的最小图像的宽和长。其次,要使用ioctl系统调用,ioctl系统调用的功能是通过打开的文件描述符对各种文件,尤其是字符设备文件进行控制,完成特定的I/O操作。V4L支持的ioctl命令大约有二十多个,在应用中主要用的是下面几个命令:
    ioctl(fd,V IDIOCGCAP,&capability); //获取视频设备的基本功能信息
    ioctl(fd,VIDIOCGPICT,&picture); //设置和获取采集图像的各种属性
    ioct l(fd,VIDIOCGMBUF,*mbuf); //获取缓冲区信息
    ioctl(fd,VIDIOCMCAPTURE,&mmap); //捕捉图像,获取图像信息
    ioctl(fd,VIDIOCSYNC,&frame); //等待捕获完成的图像
    本设计中主要设置的参数有:捕获的图像大小为320×240像素,图像帧的调色板palette值为21,图像色彩深度为8位。
    最后,使用read方法实现图像的获取,read方法则可以直接读取设备文件来获取一帧数据保存到缓冲区中。通过convertframe()函数将pFramebuffer中的数据转成完整的jpeg格式的数据保存到ptframe缓存中去,再调用fwrite()函数将pt-frame缓存中的jpeg式数据写入到指定的文件中去,即得到一幅jpeg格式的图像。另外要提到的是本设计中为了方便服务器端读取上传的图片,将图像文件重名为系统时间格式。这时需要调用Linux系统函数time和1ocaltime。综上,图像采集模块已经实现。
3.4.2 GPRS无线传输模块
    本设计中使用socket(套接字)编程技术来实现GPRS网络中FTP文件的传输,它是网络通信中应用进程和网络协议之间的接口。在Linux操作系统中,socket属于文件系统的一部分,网络通信就像文件读取一样方便。并且socket用IP地址加上端口号来唯一地标志一个进程。利用socket实现通信就像网络上大部分通信一样,是在客户机/服务器(client/server)模式下进行的。这种模式下,将请求服务的一方称为客户端,将提供服务的一方称为服务器端。和大多数的应用程序一样,客户端和服务器端使用传输协议进行通信。应用程序通过传输协议进行交互时所用的接口称为应用程序接口(Application Program Interface,API)。一个API定义了应用程序与协议软件进行交互时可以使用的一组操作。本设计中使用了FTP协议来传输图像数据文件。一次完整的FTP文件传输需要建立两种类型的连接,一种为文件传输下命令,称为控制连接,另一种实现真正的文件传输,称为数据连接。
    本系统中使用socket编程技术实现GRPS网络中无线FTP传输图像的具体步骤是这样的;首先,建立socket客户端的部分,用来发送FTP命令等参数。调用socket()创建了套接字,返回了该socket的描述符。接着,将服务端的IP地址、端口号和网络地址类型(本设计中是PF INET,表明该socket在Internet域中进行通信)填充到该socket结构体中。然后建立刚创建的套接字的连接,通过此套接字发送登录该FTP服务器的相关命令:发送登录名和密码;使用TYPE命令设置文件的传输类型为I。接着,建立作为socket服务器端的部分,用来发送数据文件。与socket客户端不同的是需要先创建socket,然后绑定本地地址(也就是由GPRS系统DHCP分配的IP地址)到该socket上。接着是监听这个socket,当监听到与socket客户端(也是FTP服务器端)连接上时,开始请求发送图像数据文件的命令。这部分实际也充当了FTP的客户端工作。在监听到连接后,使用PORT命令监听等待连接的端口,接着使用STOR命令发送上传文件的请求。[page]

    在收到连接成功的回应后,作为socket服务器端的代码,要调用accept函数,表示可以接受socket客户端,即FTP服务器端的连接请求,然后开始打开最新的图像数据文件,通过数据链路发送文件。图像文件传输完成后,需要关闭文件流,并关闭以上创建的socket连接,以免在下次传输时出现错误。如此便完成了GPRS无线传输模块的设计,GPRS无线传输模块的流程图如图4所示。

3.4.3 应用层主程序
    在各个模块的功能实现之后,终端的应用层主程序进行模块的集成,完成系统的功能,如图5即为终端的应用层主程序的流程图。
3.5 终端的软件实现
    终端的软件实现主要包括对引导加载程序和操作系统内核的定制和裁减、文件系统的配置、驱动程序和应用程序的编写和交叉编译。终端的驱动程序和应用程序在Linux宿主机上以C语言编写,以arm-linux-gcc.3.3.2完成交叉编译后随文件系统一起烧写到嵌入式终端的NAND FLASH存储系统中,驱动程序以模块方式插入系统内核,应用程序在系统加电后一直运行。经过测试,终端的软件系统能够完成红外监测、图像采集、GPRS传输图像和GSM短信息报警的功能,达到了实际应用的要求。


4 结语
    通过上述工作,完成了基于ARM9和GSM/GPRS网络的无线可移动红外监测报警系统的软硬件设计和实现。本系统可以使用在无人值守的重要场合,完成对敏感物体的监测和报警,防止外来入侵障碍物的影响,实现远程监测和报警的功能。系统有无线可移动和红外监测触发传输图像等特点,可以节省布线成本和使用时的GPRS网络费用,并且处理速度高、性能好、通用性强、可行性和性价比高,在实际应用中有一定的价值。

关键字:ARM9  GSM  GPRS  红外监测报警系统 引用地址:基于ARM9和GSM/GPRS的无线可移动红外监测报警系统

上一篇:基于ARM的煤矿瓦斯涌出量预测系统的设计
下一篇:ARM+PCL6045B的嵌入式运动控制器设计

推荐阅读最新更新时间:2024-03-16 12:37

ARM9开发板Qt环境的搭建
注意:不要使用自带或使用apt-get 安装的 QT,如有,则删除。开发板须能挂载NFS。本文采用了别人的教材,只是自己稍加上修改,因为刚开始找文件做的时候发现很多容易出错的,这里都加以说明了 所需原文件: a. arm-linux-gcc-3.4.1.tar.bz2 b. Qt-4.6.3-arm.tar.bz2 c. Qt-4.6.3-x86.tar.bz2 d. Qt-4.7.0.tar.bz2 e. Qt-sdk-linux-x86-opensource_2010.02.bin f. tslib-1.4.tar.gz 操作步骤: 1、检查电脑上有没有g++ : g++ --version, 如果没有
[单片机]
<font color='red'>ARM9</font>开发板Qt环境的搭建
网站虚拟主机+安信可A6C GPRS模块实现对stm32的远程升级
利用http协议使用普通的网站虚拟主机+安信可A6C GPRS模块实现对stm32的远程升级 步骤: 1.生成bin文件并将bin文件放到虚拟主机目录内 2.做一个php的页面分块读取该bin文件,以asc字符echo出来,并标记好头尾长度和校验。 3.GPRS协议栈连接主机路径,收到内容,将内容解析,校验,无误后保存到备份flash空间 4.全部保存完成后,做个标识在参数flash区,等待重新开机 5.做个bootloader,开机后检测是否有保存好的新版本号,如果有则覆盖旧版本,否则直接进入入口向量。 由于GPRS传输http协议的内容属于短连接,AT指令的情况多而复杂,很多需要判断处理,有较高的工作强度,这里的内容暂
[单片机]
GSM/GPS车载系统中LCD中文显示的编程方法
  目前,在许多行业(如公安、公交和银行等)中,GPS车辆调度系统已经相当普及,GPS车辆调度系统的相关研究也成为业界的一大热门课题。本文LCD中文显示的一种编码方法是笔者在设计GPS车载终端通信系统时使用的方法。   1 问题的提出   一个GPS车辆终端在硬件上主要包括以下几部分:   GPS接收模块,用于接收GPS卫星发回的GPS定位信号。   GSM通信模块,用于实现终端模块与监控中心的无线通信。   中央控制单元,对信号接收、短消息通信及人机交互等工作进行控制。   键盘、显示单元,用于人机交互,显示监控中心的命令。   在GPS车辆终端系统的开发过程中,出于系统功能和产品成本的综合考虑,大多数设计者都会选
[单片机]
<font color='red'>GSM</font>/GPS车载系统中LCD中文显示的编程方法
据外媒GSM Arena报道,与iOS相比,其他移动平台的更新速度似
    据外媒GSM Arena报道,与iOS相比,其他移动平台的更新速度似乎稍显缓慢。以Windows 10 Mobile为例,其采用率也仅为7%左右。 报告称有7%老用户升级至Windows 10 Mobile(图片来自AdDuplex)   市场调研机构AdDuplex经过调查后发现,约有7%的Windows手机用上了最新的Windows 10 Mobile,比上个月提高了1.3%,而Windows 8.1的份额为78.9%。不过考虑到微软尚未正式推送这款系统,这一数字看起来也算是可以接受。 Windows Phone在美国市场的分布情况(图片来自AdDuplex)     AdDuplex还公布了Window
[手机便携]
S2C发布基于FPGA新的Prototype Ready ARM11和ARM9模块
利用GUC的ARM测试芯片提供一个简单的原型验证环境   S2C今日宣布为其全面的Prototype Ready配件家族新增ARM1176和ARM926 GUC测试芯片模块,用于搭建基于FPGA的原型并将基于FPGA的原型验证板接到用户的目标操作环境。这两款新的ARM测试芯片模块可用于所有S2C SoC/ASIC原型验证硬件包括Virtex-7 TAI Logic Modules, Stratix-4 TAI Logic Modules, Stratix-4 TAI Verification modules, Virtex-6 TAI Logic Modules以及Virtex-6 TAI Verification Modul
[半导体设计/制造]
S2C发布基于FPGA新的Prototype Ready ARM11和<font color='red'>ARM9</font>模块
iPad 2 GSM版和CDMA版3G关键元件拆卸对比
    这里来对比一下CDMA版和GSM版的iPad 2 3G都有什么不同:      首先很明显的是GSM版iPad 2上部侧方拥有一个 microSIM 卡槽         相比之下,CDMA版iPad 2主要是依靠WWAN板来递载用户信息      这张图是比对GSM、CDMA、WiFi三款(从上到下)iPad 2的WWAN天线的,CDMA版的天线要多出一块,这和CDMA版iPhone 4是一样的(比GSM版多一块天线),而WiFi的没有此天线板。      上图是对比WiFi、GSM、CDMA(从上到下)的主板对比,尺子是6英寸(15.24厘米),3G版iPad 2的WWAN天线板连接在主板上      下图是Ve
[手机便携]
基于ARM9的电梯缓冲器复位时间测试仪的设计
   0 引言   随着《电梯监督检验规程》的发布,对检验机构的电梯检验质量提出了新的要求。但在《检规》的实施过程中,不断发现现有的检验项目缺乏必要的、科学的检测手段。为此,探索研制一些检测仪器,设法满足特种设备检验的需要势在必行。   本研究针对电梯缓冲器复位时间的检测要求而展开。《检规》中是这样描述的:"对耗能型缓冲器需进行复位试验,复位时间应不大于120s。"对应的检验方法是:"轿厢在空载情况下,以检修速度下降,将缓冲器全压缩,从轿厢开始离开缓冲器瞬间起,直到缓冲器回复原状。观察并用秒表计时。"   上述检测手段主观性太大,造成实际的检验结果不具有科学性、准确性,应当开发一套成本相对较低,但检验精度高、效率高,安装容易
[单片机]
基于DSP和ARM9的汽车纵向碰撞预警系统设计
  引言   利用图像传感器感知前方道路交通环境与障碍物位置,实现安全车距测量,对处于碰撞危险的汽车及时报警有利于减少交通事故,提高道路交通安全。由于理论计算的安全车距首先要以保障安全为前提,经常与驾驶员在行驶过程中认可的安全车距有较大的出入,导致驾驶员对预警系统的不信任感,不利于系统的推广使用。同时,作为安全辅助驾驶系统的处理平台,PC机的体积、成本及功能的冗余性是应用在车载系统中难以克服的瓶颈。   本文以图像方式测量本车与前车的车距为基础,建立汽车纵向碰撞预警模型,解决理论计算的安全距离与驾驶员认可的习惯距离不相一致的矛盾;考虑嵌入式系统处理的实时性与体积小巧性等特点,采用嵌入式方法完成汽车纵向碰撞预警系统的设计。
[单片机]
基于DSP和<font color='red'>ARM9</font>的汽车纵向碰撞预警系统设计
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved