您的当前位置:首页基于单片机的报警系统设计

基于单片机的报警系统设计

2024-07-12 来源:小侦探旅游网


基于单片机的报警系统设计

摘要 本文提出一种基于单片机技术的新型报警系统的设计方案,通过对报警系统的设计,数据路由算法的制定,完成防灾报警功能。实践证明,该方案可以满足现场监控中的实时性、可靠性等要求,具有安装方便、不需大量布线、不损坏室内外装潢、网络的冗余度高、安全性能好和误报率低的特点。

关键词 单片机;无线;报警系统;设计

0 引言

近年来,随着人民生活水平的提高,各类小区拔地而起,高档别墅鳞次栉比,人们对住宅安全,如防盗、防火、防水、防煤气中毒等的要求越来越高。随着无线网络设备与无线标准的日益成熟,将无线通信技术引入到传感器技术中,无线传感器网络应运而生,并以其特有的优势成为一个研究的热点。

随着单片机技术的不断创新,具有体积小、能够在其上采集数据和处理复杂的数据,能够不受限制地与后台数据库服务器进行大量的数据交互传输,并与各种DRP、MIS、ERP系统交换数据,进行数据资源共享,从而可用作为报警系统的处理终端,实时对监控区域的安全情况进行查询、检查。它除具有传感器网络中节点的自适应、网络的自组织等特点外,同时还能够对火灾、盗窃、燃气泄漏等进行声音和电话报警功能。

1 无线报警网络节点的组成与功能

无线报警网络由许许多多个功能相同或不同的无线传感器节点组成。无线报警网络按其功能可分为两类:一类是传感器数据采集节点;另一类是报警节点。通常由五大部分组成:无线传送模块、微处理器、电源、存储器、传感器或报警电路等,如图1所示。

微处理器:是网络节点的“大脑”,对整个系统的灵活性与可靠性起着至关重要的作用,因此,我们使用的是一个低功耗,功能相对强大的处理器,它能与无线数据传输模块进行数据的交换;实现数据的采集和数据的处理;从节点间的点对点通信的控制到网络路由算法的实现;能够完成对电源节能管理到整个节点运行状态检测等。

存储模块:包含在线可读可擦的RAM、ROM、EEPROM等3种类型的存储器。RAM主要是用来存放采集来的数据;给发送和接收的数据开辟缓冲区;实时对网络和其它节点状态进行记录等。ROM主要存储所编写的程序和传感器节点的固有特征量如传感器节点ID、传感器的类型等。EEPROM一般为保存现场的重要数据,这些数据一般是下一次无线传感器节点启动、运行时所必需的。

传感器电路:是无线传感器节点感知客观世界和获取数据的主要模块。为了满足设计节点方便、降低整个无线传感器网络费用的需要,调理电路和处理器的接口电路采用标准化,一般调理电路的电压输出为0V~5V之间,电流输出为4mA~20mA之间。

无线传输模块:在无线传输模块中,我们应用了蓝牙技术。蓝牙技术是一种新型的技术,它是在每台机器设备中植入一块芯片,使各种设备可以互相通信、交换数据,不再需要大把的电缆,也不需要辨别是并口、串口,还是USB口等,具有广阔的应用前景。我们采用了挪威Nordic公司生产的一款蓝牙芯片nRF903,将其作为无线传输模块的重要组成部分,实现数据的无线传输,用户接口如图2所示。

无线传送模块是网络接口,它在处理器的控制下能与其它与其相邻近的网络节点传递数据,同时,无线传送模块的物理特征决定了整个网络的物理特征。电源是为整个节点提供能量。它容量的高低在很大程度上决定了传感器节点的工作寿命。特别是网络节点在无法得到能量补给的情况下,更要注意选取合适的电源容量及对电源进行有效的管理。报警模块是网络节点中的一个特有的模块,设计有与电话线相连的接口,它的主要任务是在发生特殊的情况下通过电话报警。

2 无线报警网络通信算法

在设计无线报警网络节点的基础之上,制定了一个简单实用的通信算法,保证报警系统数据通信的准确性与可靠性。

2.1无线报警网络路由表的建立

无线报警器网络节点按所处在的位置关系可分为相邻节点和可达节点。可用结构体给以分别描述。

ID:网络节点的编码,用于区分其它网络节点的唯一标识符。

Level:主要是反应数据从发送节点到目的节点将需要其它节点转发的次数,数值大小是在网络节点初始化中求出的。它是网络路由中十分常重要的参量。通过它参与到数据路由算法,可以尽可能缩小数据在网络传送过程,实现数据传送的最优路经。

Struct network_link * :是指向结构体network_link的指针,在结构体中用last_link,next_link,可组成一个双向链表。

结构体network_link组成的可达节点双向链表:链表表头的节点可以把数据传送到达链表中的任何节点,并且这种可达情况是经过证实的。它仅要求数据可达性,不管节点传输数据的先后顺序。

Struct neighbour_link * :是指向结构体neighbour_link的指针,在结构体中用

neighbour_last_link,neighbour_next_link,可组成一个双向链表。

结构体neighbour_link组成的相邻节点双向链表, 链表中的节点是链表头节点的相邻节点,链表头节点可以与链表中其它节点进行点对点的数据传输。用结构体neighbour_link连成一个以本身节点为链表头,与这个节点相邻节点链成一个相邻双向链表,再以这个双向链表中每个节点为链表头,用结构体network_link连接一个可达节点的双向链表。这样,即可完全构成一个以数据发送节点为中心的节点的网络路由表。

2.2 节点路由表的建立和level值求取

路由表在网络开始启用时形成,但在整个网络运行期间都会不断的更新其内容。路由表的形成过程如下:新的报警节点加入到网络中,首先通过网络的广播地址呼叫它所在网络相邻节点,网络中相邻节点得到新节点的呼叫后,向网络新节点发送相邻节点确认信号,从而建立起新节点的相邻链表,然后网络新节点通过相邻的节点来搜寻可达节点,建立新节点的可达的链表。防止数据在网络路由时的死循环,同时排除所搜寻可达节点中包含的相邻节点。在可达链表的建立中确定level的值,在确认为搜寻的是可达节点后,相应的level值是在原来的基础之上加1,作为当前的level值并保存。它所表达的实际物理意义是数据在传输过程中将会被节点多进行一次数据的转发,如图3所示。

参考文献

[1]MSDN Library(Embedded Developer Documentation)[M].Microsoft Corporation,2001.

因篇幅问题不能全部显示,请点此查看更多更全内容