主页(http://www.pttcn.net):基于ARM及GPRS的智能家居系统的实现(2)
图像抓拍器的主要作用是当有盗情发生时,进行现场抓拍。目前在国内市场上已经有很多该类型的产品。我们选择了深圳安信阳光科技有限公司的彩眼 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.结束语
本系统实现了对住宅小区内多用户室内安全状况的集中监控与管理,还实现了对用户家中的水表、电表、煤气表的远程无线抄送。该系统在实用性、可靠性以及成本等方面取得了较为满意的效果。目前,本系统已经完成最后调试,即将进入现场试运行。由于系统在硬件设计上充分考虑到了不同的应用场合,留有较大的扩展空间,因此相信该系统将会有较为广阔的应用前景。
(中国集群通信网 | 责任编辑:陈晓亮) |