基于ARM的火灾信息传输网关设计
摘要:针对城市消防远程监控系统中火灾自动报警系统的联网问题,提出一种利用Internet实现火灾自动报警系统与城市监控中心的联接方案,设计了系统的关键设备——基于ARM的嵌入式网关。设备中采用经过剪裁、内核版本2.6的linux系统,提高了信息处理和传输的实时性和可靠性,并在嵌入式操作系统的基础上,利用多线程及管道编程,实现了火灾探测信息的处理传输及上层监控中心和下层网关的信息交互。设备实际运行后的结果表明,该火灾信息传输网关能够顺利地对相关信息进行处理和转发,在广域网内实现了数据的实时、高速、可靠传输,满足基于互联网的城市消防远程监控系统要求。
关键词:嵌入式网关;火灾探测;消防;信息传输;ARM
O 引言
火灾是城市灾害中的一种主要形式,它已经日益成为影响社会经济发展和人民生活的一个重要灾害,而目前城市在预防火灾方面主要采用的就是在建筑物内安装火灾自动报警系统及其联动消防装置,虽然这种装置在及早发现火情和控制火势方面发挥了重要作用,但是在目前这种消防设备管理和监督体系下,很多建筑物的所有方不能够及时地对建筑物内的消防设施进行检查维修,导致很多火灾自动报警系统故障误报频发,极大地影响了建筑物内的人员的工作和生活;同时,大部分消防主控室主要通过人工值班、电话报警方式,因受到电话线路、报警方式方法以及报警人情绪的影响,往往造成接警调度处理速度较慢;消防部门在接警时也是依靠电话来传递信息的,极易受到报警人或值班员听觉的影响而导致接传火警信息有误,造成不应有的错误和无法估量的损失,所以建立基于互联网的城市消防监控系统具有很重要的实践意义。在这项工程中,最关键的就是处于网络与自动报警联动装置之间的接入网关的设计和研制。利用这种专门的硬件设备以及在这之中
的程序,可以把各个建筑物的消防自动化及其联动装置接入Internet,通过互联网连接到城市中的监控中心。
1 基于互联网的城市消防远程监控系统结构
该系统由三层组成,系统框图如图1所示。第一层是建筑物内的消防自动报警及其联动装置以及其他一些用户的消防设施,它们由很多不同厂家和类型的火灾探头、消防主机、手动消防设备组成;第二层是火灾信息收集管理处置中心、政府消防部门信息接口、互联网普通用户查询接口等信息使用单位。
2 火灾信息传输网关的硬件设计
该嵌入式网关的中央处理单元采用三星公司的16/32位RISC处理器S3C2440A,它基于ARM920T内核,运算速度高达400 MHz,适用于需要联网应用的嵌入式电子设备。其中的NOR FLASH用于存储bootloader启动代码,NAND FLASH用于存储操作系统的内核映像和根文件系统映像,SDRAM用于加载操作系统内核及应用程序等可执行代码和数据,为其运行提供空问。外围电路包括以太网模块、串口模块、人机接口模块等,如图2所示。
3 火灾信息传输网关的软件设计
3.1 软件总体设计
软件总体设计如图3所示。
3.2 总体概述
网关软件系统按照功能分为4个模块。
(1)网络通信模块
主要负责信息往网络上的传递,将该网关获取的火警,故障等信息依照特定的网络协议准确无误地传递给上层的应用服务器,同时还要负责接收来自服务器的数据,如配置信息,控制指令等。具体来说,网络通信模块又可以分为两个子模块:数据通信和数据处理。数据通信的工作只是负责从网络上获取数据或者将数据发送到网络。数据处理主要负责组包和解包,涉及到通信协议。当数据区有数据需要网络通信模块处理时,数据处理子模块会首先从数据区取出数据,并分析、判断数据类型,根据数据类型组包,然后将包交给数据通信子模块发送。
(2)串口采集模块
主要负责通过串口获取消防主机的状态,并进行分析,分离出有用信息,并将其写入数据区,供其他模块使用,它是信息传输网关的核心。
由于消防主机众多,而且协议又各不相同,因此串口采集模块需要根据消防主机定制。在此,同样将串口采集模块分为两个子模块:数据采集和数据加工。数据采集通过特定的对话方式(和具体的消防主机有关)从消防主机获取数据,数据加工读取这些数据,并按照消防主机协议进行解析,提取初步的信息,如消息类型(火警还是故障),探头地址(内部编码地址)。然后依照内部协议组包,并写入数据区,以后的工作就交由网络通信模块。
(3)系统控制模块
主要用于控制信息传输网关的硬件设备,如指示灯、按键、灯等。它从数据区读取控制指令,根据控制指令执行特定的硬件控制。控制指令可能由网络通信模块产生,如上层服务器发送查岗请求,网络通信模块经过数据处理转化为响喇叭指令,写入数据区。当然,控制指令可以由任何模块产生。系统控制模块可以返回硬件状态信息,也是通过写状态信息到数据区来实现信息传递的。
(4)系统维护模块
主要负责确保系统各个模块的正常运行,同时记录及上传工作日志,供系统维护人员参考,同时收集上来的数据经过分析和挖掘,可以作为产品性能指标制定的依据。各模块在建立之初将会在数据区注册,维护模块通过这个注册信息实现心跳应答机制来判断各个模块的工作状态。同时,还将数据区中的日志信息提取出来写入日志文件,并提出发送日志文件请求给网络通信模块。
每个模块依照分工完成职能之内的工作,不属于职能内的工作通过写入数据区交由职能模块去完成。数据区是各个模块传递信息的媒介,通过格式化的数据写入和读取,实现模块间的信息共享和职能分工。
3.3 各模块详细设计
3.3.1 流程分析
核心管理模块是嵌入式网关入口,当嵌入式网关加电启动,嵌入式网关的操作系统负责启动核心管理模块。此时,其他模块还未启动。核心模块首先为其他模块启动初始化系统环境,如创建管道,共享内存等。接着,核心模块启动其他模块。这时,系统将启动完成。接着,核心模块建立定时器,创建定时器是为了定时地检测其他模块,以判断其他模块的状态,称这个过程为“心跳”。
当以上过程完成后,核心管理模块开始监视所有管道,当管道有数据时,他读取定长的数据并分析,找出源地址、目的地址及命令字。根据命令字类型的不同做不同的处理。程序流程图如图4所示。
ARM 相关文章:
- Linux嵌入式系统开发平台选型探讨(11-09)
- 基于ARM体系的嵌入式系统BSP的程序设计方案(04-11)
- 在Ubuntu上建立Arm Linux 开发环境(04-23)
- 达芬奇数字媒体片上系统的架构和Linux启动过程(06-02)
- SQLite嵌入式数据库系统的研究与实现(02-20)
- 革新2410D开发板试用手记(04-21)