基于ARM及GPRS智能家居系统实现

近年来,随着网络通讯技术,电子技术,计算机技术的迅猛发展,人们对生活质量提出了更高的要求,现代化的家居环境也备受人们的关注。目前,国内的智能家居系统主要集中在对单个住宅分散的子系统的控制上,这些子系统功能上比较单一,很难实现信息共享,不便于进行集中管理。本文针对目前国内智能家居系统的局限性,提出一种基于GPRS无线技术的智能家居系统,不仅能对小区多个住宅内的安全状况进行实时监控,还实现了“三表”(即水表、电表、燃气表)的远程抄送。

1.GPRS技术简介
GPRS(General Packet Radio Service),即通用无线分组业务,是一种基于GSM系统的无线分组交换技术,面向用户提供移动分组的IP或者X.25连接。与GSM电路交换数据相比,GPRS在数据业务的承载和支持上具有非常明显的优势:资源共享,频带利用率高,用户只有在进行数据传输时才占有系统资源;数据传输率高,GPRS采用分组交换技术,每个用户能同时占用多个无线信道,同一无线信道又可由多个用户共享。理论上,GPRS最高传输率可达171.2kbit/s;支持X.25协议和IP协议,可与现有的数据网络进行互通互连;用户永远在线且按流量、时间计费,通信成本低。由此可见,将GPRS技术应用于智能家居系统的数据传输是最理想的选择。

2.系统功能及总体结构设计
2.1系统实现的功能
该系统主要是针对普通住宅小区家庭用户而设计的,它可以对小区内用户住宅内安全状况进行集中监控和管理,同时还实现了门禁及抄表功能。用户可以根据自己需要进行监控状态、监控参数的设置。系统实现了以下功能:

(1)家居安防监控:当小偷闯入住宅或者有火灾、燃气泄漏等危急事件发生时,监控终端能实时地监测到险情,向监控中心发送告警信息,监控中心则以GSM短信的方式通知户主。

(2)家居安全状况远程实时监控与查询:主人离家在外,可通过发送手机短信的方式来查询家中安全状况信息。

(3)现场图像抓拍功能:在设防状态下,当红外传感器或者门磁触发告警时,系统将启动图像抓拍器,对现场进行拍摄,所拍摄的图像通过GPRS网络发送到监控中心的主机上进行备份。用户也可以通过发送送机短信的方式来启动图像抓拍的功能。

(4)“三表”远程自动抄送与门禁功能:可以定时或主动读取用户家中的水表、电表、煤气表的用量,并根据相应价格计算费用。当有刷卡开门事件时,判断卡合法则允许进入。

2.2系统总体结构
智能家居系统由监控终端,GSM短信收发模块,监控主机三部分组成。监控终端硬件采用ARM7平台,软件采用嵌入式实时操作系统VxWorks。监控主机是一台运行监控管理软件的PC机,一般置于小区的物业管理中心。图1是整个系统架构图。

系统工作时,监控终端循环检测安装在室内的门磁、红外、烟雾、燃气监测等传感器,当检测到有异常情况发生时,终端控制警笛发出告警声音,提醒户主及物业管理人员有险情发生并采取防范措施。另外,监控终端还通过GPRS网络向监控中心发送告警信息。当终端检测到门磁或红外告警时,将启动图像抓拍器,对用户室内现场进行连续拍照,拍摄到的图像终端先进行缓存,再通过GPRS网络发送至监控主机,监控主机将图像以文件的形式进行备份。

监控终端还循环接收监控主机下发的数据请求命令,终端对这些命令进行解析。如果是查询传感器及门磁状态,监控终端对相应传感器的状态进行检测,向监控主机返回传感器的状态信息;如果是查询水表、电表或者煤气表的用量命令,监控终端根据“三表”的RS-485协议,构造查询帧命令,发送相应的查询命令,将“三表”返回的数据按照系统的通信协议打包,通过终端上内置的GPRS模块发送到监控主机。监控主机接收到终端发送的数据后,先对数据帧进行解析。若是告警信息,则监控主机将根据不同的告警播放相应的告警提示音,提醒管理员作出处理。当有告警发生时,监控主机通过RS232接口输出AT指令,控制外置GMS模块向系统预先设置好的住宅主人的手机号码发送告警短信,通知户主家中有警情发生。同时,监控主机还将把告警事件以日志的形式记录下来,以便事后对告警信息进行查询;当接收到的数据帧是抄表命令返回的数据时,主机将把数据写入到系统数据库。同时,在显示界面上弹出一个新窗口,显示户主信息、查询时间、表的用量、相应费用等信息。

3.系统硬件设计
监控终端的原理图如图2所示。

终端硬件采用的是嵌入式硬件平台,CPU选用三星公司的基于ARM7TDMI内核的S3C440X微处理器,该处理器是三星公司专为PDA和一般应用开发提供的高性价比和高性能的解决方案。经过性能与成本的综合考虑,GPRS模块选用明基公司的 M22模块。该模块可工作在三种频率下:900/1800/1900MHz。支持语音通信,具有GPRS、USSD和CSD三种数据方式及SMS和FAX功能;内嵌TCP/IP协议,软件支持标准AT 指令并遵循3GPP 27.07/27.05规范。

S3C44B0的IO口的D口扩展了三个按键,它们是设防键、开门键、消告警键。按下设防键,CPU检测到IO口为低电平,系统进入监控状态。该状态下,系统将循检测门磁及所有已经安装的传感器。由于选用的传感器输出电平为0V或12V,而S3C44B0的外围接口电平为0V~3.3V,传感器的输出需经光耦隔离后连接至CPU的IO引脚。采用光耦隔离还有一个作用:在雷雨天气,传感器输出导线很容易引入雷电,导线上会有瞬时高压脉冲,用光耦将传感器的输出与CPU的IO口隔离后,起到保护CPU的作用。当监测到开门键按下,电控锁吸合,门将打开,此时为合法开门状态,不会产生告警。如果是在监控状态下,门被强行打开,则门磁输出由低电平变为高电平,CPU检测到门磁传感器输出高电平,产生告警,CPU控制GPD3口输出低电平,触发警铃产生告警音。告警发生时,CPU通过UART0发送AT指令来控制GPRS模块,经GPRS网络向系统监控主机发送告警信息,监控主机对告警信息进行分析处理。M22模块与CPU采用115200bps的波特率进行通信。它们之间的接口比较简单,只需要将接收和发送两个引脚进行连接。考虑到本系统运行过程中需要保存大量的事件日志,如“三表”查询的数据、告警事件日志以及告警抓拍到的50张图像等,系统扩展了大容量的外部存储器HY57V641620(容量为8MB的SDRAM),SST39VF1601(2MB的FLASH)。其中SDRAM主要负责程序运行以及中间数据的保存,2MB的FLASH主要负责源程序的保存以及一些掉电需要保存的历史数据,事件日志、图像数据等。
图像抓拍器的主要作用是当有盗情发生时,进行现场抓拍。目前在国内市场上已经有很多该类型的产品。我们选择了深圳安信阳光科技有限公司的彩眼 HRM600GJ图像抓拍器。HRM600GJ自带以太网接口。

HRM600GJ在接收到S3C44B0发来的拍照命令包后进行连续拍照,所拍摄的图像为静态JPEG格式图象,解析度为320×240,图像经过网口发送给ARM处理器等待处理。由于S3C44B0片内并不带以太网接口,因此必须扩展一片以太网接口芯片实现彩眼和 ARM处理器之间的互连。这里我们选用比较常见的也是性价比相对较高的RTL8019AS作为以太网接口芯片。

SN75LBC184是RS485驱动芯片。我们将S3C44B0的第二个串口(UART1)扩展为系统的RS485总线接口。该接口是CPU与“三表”及刷卡器等设备的通信接口。CPU按照主从模式与“三表”进行通信。CPU定义为主设备,“三表”为从设备。主从设备都有唯一的设备地址,通信时,主设备向指定地址的从设备发查询命令,从设备返回当前数据给主设备。

4.系统软件设计
4.1终端软件
传统的单片机程序设计基本上都采用顺序结构,实时性低且CPU对资源的利用率不高。这里,我们采用了嵌入式实时操作系统VxWorks,它是美国风河(WindRiver)公司于1983年设计开发的一种嵌入式实时操作系统(RTOS)。终端软件设计包括针对系统硬件平台进行的操作系统的移植和在VxWorks平台上应用程序的设计两部分。操作系统的移植的重点也即难点是BSP(Board Support Package)的设计。VxWorks本身提供了针对许多处理器的BSP,但针对S3C44B0的BSP并未提供。在设计系统BSP时,我们首先仔细研究了其中一种BSP代码范例,了解并掌握了BSP的结构,然后在风河公司针对ARM处理器提供给用户的BSP模板的基础上设计了本系统的BSP,限于篇幅,对操作系统的移植部分本文将不作阐述。

监控终端的应用程序采用模块化的设计思想。由于VxWorks支持多任务,我们将每个功能模块以一个任务来实现。从时间上看,各个任务处于并行运行的状态,极大地提高了系统对事件响应的速度,有效地提高了CPU对资源的利用率。终端应用程序包含五个任务,分别是:消息处理任务、传感器检测任务、GPRS通信任务、RS485总线设备通信任务、按键检测及处理任务。除消息处理任务以外,其它五个任务优先级相同。VxWorks中任务优先级从0到255,0为最高优先级,255为最低优先级。我们将消息处理任务优先级设定为90,其它四个任务优先级都设定为100。这样可使消息处理任务尽快的处理其它任务发送来的消息,提高系统对外部事件的响应速度。下面分别对各个任务所实现的功能进行简要的介绍。

(1)消息处理任务
该任务循环检测自己的消息队列,当有其它任务发送来的消息时,读取消息,对消息进行解析,确定事件类型,然后调用事件相应的处理函数进行处理。本系统定义了多种事件类型,主要有如下几种事件:传感器告警事件、设置终端参数事件、传感器状态请求事件、刷卡开门事件、水表数据查询事件、电表数据查询事件、煤气表数据查询事件和按键设置事件。

(2)传感器检测任务
在任务运行的时间片内,首先判断系统当前所的处状态,如果系统处于设防状态,那么CPU将对室内所有已安装传感器进行循环检测。如果系统工作在撤防状态下,那么只对烟雾、煤气传感器进行检测。当任务检测到某一传感器的输出达到系统设定的告警阈值时,将向消息处理任务的消息队列发送一条传感器告警消息,消息中包含传感器通道编号。

(3)GPRS通信任务
此任务完成GPRS模块的初始化、终端与监控中心建立连接以及数据通信功能。

(4)RS485总线设备通信任务
任务完成“三表”数据的读取以及用户刷卡检测功能。

(5)按键检测及处理任务
该任务完成对终端上三个功能键的扫描。当其中某个按键被按下时,CPU检测到键值,向消息处理任务发送消息,消息任务将调用相应的处理函数进行处理。

4.3监控中心软件
监控中心软件采用Borland C++ Builder 6.0开发。它使用WinSock控件接收和发送数据。中心软件采用模块化的设计思想,分别实现系统参数设置、操作员权限管理、用户管理、告警事件处理、数据库的维护以及数据打印和系统帮助等功能。

5.结束语
本系统实现了对住宅小区内多用户室内安全状况的集中监控与管理,还实现了对用户家中的水表、电表、煤气表的远程无线抄送。该系统在实用性、可靠性以及成本等方面取得了较为满意的效果。目前,本系统已经完成最后调试,即将进入现场试运行。由于系统在硬件设计上充分考虑到了不同的应用场合,留有较大的扩展空间,因此相信该系统将会有较为广阔的应用前景。