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

发布者:塞上老马最新更新时间:2009-10-26 来源: 电子技术关键字:ARM9  红外检测 手机看文章 扫描二维码
随时随地手机看文章

  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可读写文件系统存储数据文件,从而既可以使系统文件得到可靠保护,又可以方便前期调试工作和图像数据文件的读写。这也是本设计的一个特点。

  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命令发送上传文件的请求。

  在收到连接成功的回应后,作为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  红外检测 引用地址:基于ARM9的无线可移动红外监测报警系统

上一篇:NXP低功耗LPC1000系列六大突出优势
下一篇:Cortex内核独揽大局,MCU内核之争升级

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

解析ARM9和Linux在机器人控制系统的应用
引 言 现有智能机器人用直流电机作为驱动轮时一般都是用单片机或者高速的DSP等进行控制,智能机器人之所以叫智能机器人,这是因为它有相当发达的“大脑”。在脑中起作用的是中央计算机,这种计算机跟操作它的人有直接的联系。最主要的是,这样的计算机可以进行按目的安排的动作。正因为这样,我们才说这种机器人才是真正的机器人,尽管它们的外表可能有所不同。而且同一机器人往往需用多个CPU来实现各自的功能,但随着对机器人的智能化要求越来越高,需要一种新的控制器(使用一个处理器)来满足机器人的各种行为要求,例如视频采集、无线通信。本文介绍的利用ARM实现的智能机器人平台,为智能机器人的开发提供了一个新方法。Linux的引入使其他智能模块都以设备的形式
[单片机]
解析<font color='red'>ARM9</font>和Linux在机器人控制系统的应用
嵌入式Linux下基于ARM9的媒体播放的设计
现在大多数嵌入式设备都要求实现音视频的播放功能。ARM9+Linux在嵌入式系统中应用广泛,因此,这里提出一种嵌入式Linux下基于ARM9的多媒体播放系统。 1 播放器系统平台 播放器的嵌入式Linux系统的层次结构如图1所示。硬件上电后,CPU的程序指针首先指向一个特定的存储器地址,该地址一般存放Boot-loader,Bootloader在CPU和内存初始化后,把Linux内核从ROM设备中解压到内存,然后程序指针跳转到内核在内存的起始位,由Linux内核继续完成剩下的系统引导。内核在重新初始化系统后,就加载根文件系统,运行用户应用程序。图2为开发系统硬件设计框图。 系统硬件平台的核
[单片机]
嵌入式Linux下基于<font color='red'>ARM9</font>的媒体播放的设计
基于嵌入式ARM9的USB通信设计与实现
引 言 USB(Universal Serial Bus)是通用串行总线的缩写,因其具有方便易用,动态分配带宽,容错性优越和高性价比等特点,现已成为计算机的主流接口。 随着嵌入式系统的广泛应用,各种小型终端需要开发出与外界联系的USB接口。目前,常用的技术有两种。基于单片机的USB接口,特点是需要外置芯片,电路复杂,留下的 CPU资源不多;基于ARM的USB接口,特点是资源丰富,但ARM系列产品较多,如果选型不当,还需要搭接较多的外围电路,且不能很好地发挥CPU性能。该设计采用三星公司ARM9核的S3C2440A芯片作为CPU,因为该芯片内部集成了控制USB的所有部件,外围电路简单,易于实现。 1 S3C2440A特点
[单片机]
基于嵌入式<font color='red'>ARM9</font>的USB通信设计与实现
基于ARM微控制器 延伸USB产品组合【恩智浦】
中国上海,2011年4月13日 —— 恩智浦半导体NXP Semiconductors N.V. 今日宣布推出基于ARM® Cortex™-M0的低成本微控制器LPC11U00系列,该系列采用高度灵活的全新USB架构和智能卡接口。LPC11U00配备了高度可配置的全速USB 2.0设备控制器,为消费者的电子产品和移动设备提供了无与伦比的设计灵活性和可靠的USB连接性。 恩智浦半导体副总裁兼微控制器产品线总经理Geoff Lees表示:“LPC11U00系列为8位和16位USB微控制器提供了卓越的替代方案,以低于1美元的价格水平实现了可靠的USB性能。我们在LPC11U00中采用的高度灵活的USB架构是一种更佳的USB方案
[单片机]
基于ARM微控制器 延伸USB产品组合【恩智浦】
基于ARM9的寻址方式
啥是寻址:处理器指令系统中规定的寻址操作数所在地址的方式;或者说通过什么样的方式找到操作数; 指令和指令格式 ARM指令格式: 操作码 { 条件 } {S} 目的寄存器 , 第一个操作数 {,第二个操作数} :内容表示必不可少; {}:代表可以省略; { 条件 }:指令的执行条件;若没有条件,表示默认AL(无条件执行); 栗子: ADDEQS R0,R1,#8 ADDEQS是操作操作码; EQ是指令执行的条件域,EQ表示相等时执行; S是后缀,决定指令的执行结果是否影响CPSR的值; R0是目标寄存器,即储存操作结果的寄存器,可以是R0~R15在内的任何一个 R1是第一个操作数,这里是一个寄存器,可以是R0~R15在内的任何一
[单片机]
基于<font color='red'>ARM9</font>的寻址方式
基于ARM9的高速数据采集系统的实现
1 引 言 在科研、生产和人们的日常生活中,模拟量的测量和控制是很常见的。为了对温度、压力、流量、速度、位移等物理量进行测量和控制,通过传感器把上述物理量转换成能模拟物理量的电信号,即模拟电信号,将模拟电信号经过处理并转换成计算机能识别的数字量,送入计算机,这就是数据采集。 数据采集的主要问题是采集速度和精度。采集速度主要与采样频率、A/D转换速度等因素有关,采集精度主要与A/D转换器的位数有关。高速数据采集系统的设计需要解决系统在速度、精度、数据存储等方面的矛盾。 2 数据采集系统的结构 本文介绍的数据采集系统采用Samsung公司的S3C2410微处理器。数据采集系统按照功能可分为以下几个部分:模拟信号调理
[单片机]
ARM9 mini2451裸机学习——NAND flash驱动学习 2
上一篇文章主要学习了NAND Falsh的基础知识,今天则来总结NAND Flash的初始化,以及块擦除,页的读写操作,以及芯片id号的获取。 6. NAND FLASH 的操作接口 我们知道,函数在调用时需要使用栈,当项目的函数调用关系复杂时,尤其是存在多级 函数调用时,容易导致栈溢出,此处函数调用的开销也会逐渐加大。 为了更好的解决上述问题,一般使用宏的形式来实现规模较小的函数,因为宏调用时在 预处理阶段,由预处理器对源程序中的宏进行展开,所以宏展开不占用运行时间。 因为每一次宏调用都需要进行宏展开,所以会加大程序的代码量,因此规模较大的函数 不宜使用宏的形式来实现 ① NAND FLASH 使
[单片机]
<font color='red'>ARM9</font> mini2451裸机学习——NAND flash驱动学习 2
基于ARM9处理器S3C2410的LCD显示系统设计
引言 S3C2410是三星公司生产的基于ARM920T内核的RISC微处理器,其主频可达203MHz ,适用于信息家电、PDA、手持设备、移动终端等领域,本文介绍了基于S3C2410的显示系统的硬件电路及驱动软件设计方法。 TFT-LCD模块的时序要求 本显示模块选用的LQ080V3DG01是Sharp公司的TFT-LCD器件,该器件的分辨率为640%26;#215;480,控制时序图如图1所示,时间参数如表1所列 。    硬件电路设计 在该显示系统的硬件电路中,S3C2410与LCD模块的连接是关键,S3C2410内部自带一个LCD驱动控制器,其接口可以与单色、
[电源管理]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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