沈阳航空航天大学 杜 航 王 旭
伴随着经济的快速发展,小康社会的建设和城镇化的不断推进,城市越来越朝着人口密集、资源与财富集中的趋势发展。这导致城市所面临的火灾风险不断加大,火灾监控与防治环境日趋复杂。在此背景下,智慧消防的建设逐步提上日程。智慧消防是以大数据、云计算、物联网等多种先进技术为一体的综合性预警与决策平台,其核心就是对海量数据的智能分析与决策。数据的完整性和规范性对于智慧消防系统数据分析和决策起到至关重要的作用。消防物联网作为智慧消防体系的重要组成部分,是各类消防数据信息的重要来源之一。消防物联网异构网络之间数据的整合对于智慧消防系统大数据分析决策有着重要意义。消防物联网各类火灾自动报警与灭火系统传输通信协议不一致,系统与系统之间数据信息交互与共享存在障碍,是消防物联网异构网络之中最为突出的问题,也是大系统数据融合存在难点。本文将介绍一种基于嵌入式linux的消防系统协议采集与传输装置,实现数据的采集和各类报警与灭火系统之间协议数据的转换与传输,为各类报警与灭火系统之间传输数据的整合提供参考与帮助。
数据采集与传输以S3C2440为主控芯片,外部拓展有RAM和Flash存储器。同时设计实现了RS232/CAN数据采集接口、调试接口和以太网输出接口。其功能结构图如图1所示。
为了满足采集传输系统的高性能设计,节点设备的主控芯片采用工民两用的高性能ARM-Cortex-M3内核的处理器S3C2440芯片。内部包含16/32位ARM920T RISC处理内核,片内带有MMU 内存管理单元,16KB的指令Cache和16KB的数据Cache,55个中断源,3个异步串行口,其中一个可设置成红外口,SPI串行口,可编程看门狗定时器等,支持包括Windows CE、嵌入式Linux和EPOC32在内的多种嵌入式操作系统。
图1 采集与传输装置功能结构框图
为了将所有数据采集和解析的实时信息上传至监控中心,信息采集与传输装置必须与监控中心建立网络连接。网络传输主控芯片为DM9000A以太网控制芯片。内嵌以太网控制器,采用10/100Mbps的快速、低功耗物理层芯片DM9000A作为以太网收发器,通过媒体独立接口连接到媒体访问控制层,可确保不同产品间的高兼容性。通过RJ45网络接口可实现完整的以太网功能。同时与3G数据透传模块相连,实现了无线网络的硬件构成.
本文存储模块电路的设计,采取NAND Flash、SDRAM和 NOR Flash配合使用。为了适应系统高带宽、高性能存储要求,存储芯片选取K4S561632N芯片作为SDRAM的存储芯片。K4S561632N采用高性能CMOS工艺制造,54脚TSOP2封装,是一款268,435,456bits高速SDRAM。其同步设计在配合系统时钟I/O,使得每个时钟周期里的精细周期控制成为可能。NAND Flash采用Samsung公司生产的512 Mb(64M×8位)NAND Flash存储器。该存储器的工作电压为2.7~3.6V,内部存储结构为528字节×32页×4 096块,页大小为528字节,块大小为(16KB+512字节);可实现程序自动擦写、页程序、块擦除、智能的读写和擦除操作,一次可以读写或者擦除4页或者块的内容。
其他接口如RS-232、RS-485、CAN接口的设计比较简单,限于篇幅不再赘述。
协议转换与传输装置的软件是基于嵌入式Linux操作系统开发设计的应用程序。按照软件功能和多线程设计思想在初始化程序主界面后分别建立多个线程。各自完成各自的功能并相互通信。程序主要功能包括协议数据的采集、解析、存储与传输。当设备启动后,程序会不断扫描数据输入端并采集数据,并按照一定的规约进行数据的解析。解析成功之后,程序会返回一个与之对应的标示符。程序会根据这个特定的标示符到指定的内存地址找到相应的解包封包函数,将其协议数据封包成标准协议(GB/T 26875.3-2011《城市消防远程监控系统第3部分:报警传输网络通信协议》)类型进行存储与发送。程序流程图如图2所示。
图2 数据解析流程图
协议数据的解析就是从数据中甄别出哪些数据段组合在一起是个完整的协议数据。在解析协议数据时,我们主要关注协议头(起始帧)、协议长度、协议尾。在协议解析的过程中,主要是通过多次判断验证来甄别数据真伪。数据被采集上来后,程序会逐字节的连续多次比较,判断协议的起始数据帧,然后用同样的方法判断协议尾。完成这两步之后,程序初步识别协议类型和型号。最后在根据协议长度等信息来判断校验数据的真伪和完整性。如果一切顺利,那么解析函数会返回一个标识符(一个函数地址指针)并根据这个标示符到内存地址找到对应的解包封包函数,实现协议数据的转换。
经过处理好的数据,程序会将它存放在内存的指定位置,供给我们读取和其他操作。经过封包好的数据,程序一方面进行存储,另一方面会通过以太网发往上层应用中心进行数据的分析与决策。实现数据发送的过程主要包括:调用socket函数建立套接字、调用bind函数绑定指定IP地址,最后通过connect函数链接,用write函数将数据包写到相应的IP地址。
模拟测试以沈阳消防研究所某型火灾自动报警控制系统前置机通信的协议为例进行转换测试,其协议结构如下表1。经处理转换后,输出数据将以GB/T 26875.3-2011《城市消防远程监控系统 第3部分:报警传输网络通信协议》所规定的协议结构进行传输。
表1 协议数据结构
测试前置机的传输通信协议数据长度为30字节,由上至下依次排列。起始标志占三个字节,内容为FF FF FF,报警类型包括火警、故障和故障恢复。火警标识码为第4个字节,内容为0A。故障标识码为第4个字节,内容为0B。故障恢复标识码为第4个字节+第10个字节,内容为0B 01。控制器地址号数据位置为第11个字节;回路号数据位置为第12个字节;部件号数据位置为第13个字节。报警时间数据位置为第14~18个字节。第5~9字节和第19~30字节为预留空间。
当前置机接入系统协议数据采集与传输装置后,前置机会主动向控制器发送正常巡检命令数据:FF FF FF 09 00 00 01 6E 01 0A 00 83,发送间隔1000ms。当前置机发送非正常信号时,传输终端会采集信号并处理。例如,当发送信号为FF FF FF(起始标识)0A(火警标识)01 01 6E 04 13 00 04(主机号) 01(回路号)03(部件号)14 08 0B 11 0A 0A(日期时间)A3 00 00 00 00 00 00 00 00 01 88 时,信号表示为:01回路003号部件位置发生火警,时间为2008/11/17 11:17。经过传输终端的处理后,往监控中心发送的信号为:02 01 01 01 19 01 01 6E 04 13 00 0400 01 00 03 00 73。
基于嵌入式linux的消防系统协议转换与传输设备综合运用多种信息技术,实现了对于火警、消防设备设施状态数据信息的采集、协议转换、传输。经测试终端运行稳定,传输数据可靠,达到了预期。
[1]徐斌.当前嵌入式LINUX分析与应用[J].电子制作,2015,13:73.
[2]叶棽,谢捷如.基于SoC和嵌入式Linux的数据采集系统设计[J].计算机技术与发展,2015,08:1-6.
[3]史小明.嵌入式系统关键技术分析与开发应用[J].电子技术与软件工程,2015,11:224.
[4]丁康.浅析物联网技术在消防装备管理方面的应用[J].通讯世界,2015,09:42.
[5]王兆国,王辉,王坤.物联网在消防领域的应用前景分析[J].中国公共安全(学术版),2015,02:35-38.
[6]权向科.浅谈物联网技术在建筑火灾防控中的应用[J].四川建材,2015,01:256-257.
[7]马飞.谈城市消防远程监控系统应用[J].消防技术与产品信息,2010,07:66-68.