摘 要: 提出采用两级环形总线网络拓扑、主从通信方式的消防指示灯智能监控系统。设计了用电池提供应急电源的通信网关的总体结构。采用单片机自带的双串口构成两个独立光电隔离的RS-485接口作为下级环形总线主站,实现与智能应急标志灯之间交换数据。利用单片机的SPI接口功能和另一个单片机扩展第三个独立的光电隔离RS-485接口,作为上级环形总线网络的从站,实现与监控主机之间状态和命令信息交换。给出了系统网络拓扑结构和基于Modbus协议的通信软件结构。
关键词: 消防应急灯;智能监控系统;环形总线网络;三端口网关;串口扩展
随着社会的发展,大量高密度的特大型建筑不断涌现,导致火灾逃生通道更为复杂,加大了火灾发生时的逃生难度。对于消防疏散而言,怎样在火灾发生时使逃生更安全、更准确、更迅速,正是时代对建筑防灾提出的新课题。目前消防应急标志灯大多作为单体存在,无法依据火灾现场的变化,动态地调整逃生方向指示。此外,应急标志灯的日常维护和检修也存在严重的滞后现象。应急标志灯最主要的作用是能在发生火灾时应急启动,而应急启动的关键在于其电池充放电工作是否正常。依靠人力的维护和检修,难以及时发现产品问题,在发生火灾时往往会给逃生疏散指示带来许多盲区。越来越高的公共安全要求使得消防应急标志灯从各自独立工作发展为智能化消防应急灯监控系统。在火灾来临之时,该系统能迅速、准确地收集火警现场的信息,智能地选择最佳的逃生路线,通过集中控制消防应急灯具,以光流、语音、频闪形式,从听觉、视觉等感观上引导人们正确逃生。系统还可以不间断地巡检智能应急灯具运行状态,及时发现灯具故障,提高整个系统的可靠性和应急安全性[1-2]。
图1展示了采用双环形总线拓扑结构的消防应急灯具智能监控系统,包括上位监控计算机、中继网关和智能消防应急灯具三级,通过两级RS-485环形总线进行相互通信。所有的控制命令都由监控计算机发出,通过第一级总线环路传送到中继网关,再由中继网关通过第二级总线环路网络传递至每个灯具,灯具执行命令后,依次通过第二级、第一级环路返回执行结果。在该系统中,监控计算机从火灾报警系统(FANS)获得火源信息,智能决策选择最优逃生路线,通过总线网络将指令信息传递至中继网关,然后再由中继网关发送至各灯具,指示安全可靠的逃生通道[3]。
总线型拓扑结构简单,控制方便,易于扩展,所以目前大多数消防和门禁系统都是采用这种拓扑结构[4]。环形网络还具有较好的可靠性,如果环形总线在某处断开,则可分成两个总线网络,分别连接到主站的两个接口上,仍然能够保证主站与从站之间的信息交换,大大提高了网络传输的可靠性。两级环形总线结构的另一个优点是,多个环路可并行工作,均衡并减轻单一总线上的通信负载。
在应急状态下,应急灯及其监控系统有集中供电和独立供电两种方式。在应急状态下,集中供电系统的每个灯具以及所有中继网关都从同一个专用的应急电源获得工作电源,而独立供电系统的工作电源由每个灯具或网关自带的电池提供。因此,监控电池的储能性能及保证电池的可用性都至关重要。通过控制命令可以随时检测电池电压,也可每月每年定期检查。
1 三端口网关设计
1.1 总体结构
在图1所示的应急灯智能监控系统中,中继网关作为上下两级环路之间的联络,是监控计算机与灯具之间交换数据的中转站,其结构和功能设计是整个系统设计的重要内容。
图2为独立供电型中继网关总体结构图。在主电状态下,通过市电获得工作电源。在应急状态下,由自带电池提供工作电源。网关具有电源变换、电池充放电控制功能。在整个消防应急系统中,中继网关可以通过平常的抽样和制定灯具查询该环路灯具状态,与下位机节点通信时,将发送第一个节点ID而功能码以及它们的数据项还有校验码所形成的数据帧,通过RS-485总线发送到第一个节点上,之后变为接收状态,接收第一个节点发送过来的数据帧并进行解析。当解析出下位机节点发送故障报警时,将报警信息显示在液晶显示屏上,并启动声光报警。由于监控主机程序中设有定时器,因此,如果节点未能在一定的时间发送回数据帧,则提示异常,提醒相关人员进行检查。如果未出现报警信息,则再轮询下一个节点。
系统使用主从通信协议,两级环形网络都采用RS-485总线。在系统网络拓扑中,中继网关作为第一级环路总线网络的从站,同时又是第二级环路的主站。中继网关需要3个串口,1个负责接收监控计算机命令以及把灯具和网关本身的信息整理后回馈,另外两个串口正好形成环路主站,1个负责发送,1个负责接收,如果出现环路断线,则两个都可以作为发送。
本设计中选择具有两个串口的单片机STC12C5A32S2(以下简称STC12)作为主要控制芯片,它具有2个异步串行接口(UART),1个同步串行口(SPI),以及和普通单片机相同的256 B的内部RAM,以及扩展的1 024 B的外部RAM,还有28 KB的EEPROM。较大的存储空间方便灯具的连接以及大量数据的存储[5]。把STC12单片机自带的两个串口设计成1#和2# RS-485接口,作为第二级环路的主站,还需要扩展另一个串口构成0# RS-485接口,作为第一级环路的从站。
1.2 串口扩展
串口扩展的方式有:(1)硬件的扩展方式。使用市面上对串口进行扩展的芯片(有SP2338DP,GM8123系列)。在这里对于帧的格式是不可编程的[6]。(2)软件模拟法。可根据串行通信的传送格式,利用定时器和主机的I/O口来模拟串行通信的时序,以达到扩展串口的目的。接收过程中需要检测起始位,这可以使用查询方式或中断方式进行处理。接收和发送过程中,对定时的处理既可以使用查询方式也可以使用定时器中断方式。而这种方法需要占用大量的CPU时间,只能用于功能简单的应用中,并不适合中继网关这类功能复杂的设备。
综合考虑成本和性能等因素,本设计使用STC12单片机的同步串行口(SPI)和另一个带有串口的单片机STC11F04E(以下简称为STC11)来扩展串口,其原理如图3所示。其中TX、RX分别是串口的数据发送信号和数据接收引脚。RE用于控制MAX485的接收或发送状态。图中下部分给出了光电隔离型RS-485接口原理。3个RS-485接口使用相同的原理,但3个接口中MAX485芯片的工作电源是各自独立的。
图3中,SCK、MISO、MOSI分别是SPI接口的时钟信号、主站输入信号、主站输出信号。定义STC12的SPI接口工作在从站方式,STC11作为SPI主站。由于STC11单片机没有SPI功能,必须用软件模拟SPI主站功能,这里仅将STC11作为字节数据传输的中转站,不进行信息帧的校验、存储和转换。监控计算机发出指令经STC11的串口接收,通过SPI发送至STC12进行处理。STC11再通过SPI接收返回信息,然后通过串口发送至监控计算机。设计中,STC12通过在SPI_TX引脚的输出下降沿,告知STC11启动模拟SPI主站功能,从STC12的SPI接口寄存器中读取一个字节数据。
图4为单片机采用查询方式的程序流程图。RI、TI分别是串口接收标志和发送标志。TX_FLG=0表示STC11处于接收状态,TX_FLG=1表示发送状态。子程序SPI_BYTE实现模拟SPI主站功能。
1.3 环形总线主站软件结构
在第二级环路通信中,中继网关作为环路主站,由STC12单片机的串口1和串口2构成的两个RS-485端口实现。3个通信端口分别设有独立的接收(RX)缓冲区、发送(TX)缓冲区以及专用标志寄存器。
实现环路通信主站的软件结构如图5所示。正常工作时,两个串口一个作为发送方,另一个作接收方。比较接收方的接收数据与发送方的发送数据,若相等则环路总线是通的;否则,总线出现断路故障,用标志位LP_BRK=1表示。
在环路总线完好的情况下,在线的灯具总是既连接在串口1上,也连接在串口2上。在环路断线状态下,对每个灯具,从串口2(或串口1)发送命令,若接收到正确应答数据,则记录该灯具连接在该端口上,用标志位ON_COM2=1(或ON_COM1=1)表示;若应答信息超时或返回信息不正确,则重发相同命令数据至多3次,仍然收不到正确应答信号,则判断该灯具没有连接在该发送端口上,用ON_COM2=0(或ON_COM1=0)表示。这样,根据每个灯具所连接串口的不同,可以判断环路断线所在位置。
当环路断开时,两个串口都作为命令发送方,整个环路分为两个单总线结构,提高了网络传输可靠性。
基于两级RS485总线环形通信网路的应急灯智能监控系统,设计了三端口通信网关,实现了监控计算机与大量智能应急灯之间命令和状态信息交换,监控计算机管理整个系统,网关负责传递发送至智能应急灯的信息,同时也将从灯具接收到的信息反馈至监控计算机。此外也可不通过监控计算机直接控制该环路中的智能应急标志灯。经调试,所预设功能完全实现。
参考文献
[1] 陈映雄.消防应急灯具的技术发展趋势[C].中国科协2005年学术年会第24分会场论文集,2005:533-536.
[2] 孙涛.开放式消防系统实现关键技术分析[J].科学技术,2009,(36):156-157.
[3] 赵婉芳,于京,田伟.基于Linux系统的VoIP语音接入网关设计与实现[J].电子技术应用,2008,34(11):91-94.
[4] 庄克玉,胡继珍,张超.低压电力无线集中抄表系统数据采集终端设计[J].微型机与应用,2009,28(9):108-110.
[5] STC12C5A60S2系列单片机器件手册[Z].2009.
[6] 鲍梦,刘智萍.51系列单片机的串口扩展方案[J].软件导刊,2008(5):135-136.