一种强实时性煤矿安全监控系统分站通信方案
2020-06-08于晓珉
丁 远,刘 鹏,于晓珉
(1.煤科集团沈阳研究院有限公司,辽宁 抚顺113122;2.煤矿安全技术国家重点实验室,辽宁 抚顺113122;3.辽宁经济干部管理学院 信息工程系,辽宁 沈阳110122)
煤矿安全监控系统,作为煤矿6 大系统之首,在煤矿安全中起着重要作用。现有的煤矿安全监控系统通常存在数据通信传输抗干扰弱,实时性差,误码率高等问题,导致传感器发生故障或甲烷超限时断电时间过长,不符合AQ 6201—2006[1]标准规定的断电时间,极大的影响了煤矿安全。针对上述现有问题,在结合调研实际环境与分析研究多种通信方案后,设计了基于CAN 无主通信技术[2]的煤矿安全监控系统[3],对模拟量与开关量传感器参数进行实时监测,当传感器发生故障或者数据超限时,及时切断相应的非本质安全型电源或风机闭锁,使煤矿企业能够及时进行险情处理,避免安全事故发生,对煤矿安全生成具有重大意义。
1 CAN 总线技术与无主通信原理
1.1 CAN 总线技术原理
Controller Area Network(CAN),即控制器局域网络,是目前国际上现场总线应用最多的总线之一。CAN 总线是一种有效支持分布式控制系统的串行通信网络。CAN2.0B 根据帧标识符长度定义了标准帧、拓展帧2 种帧格式[4],其中标准帧含有11 位标识符,拓展帧含有29 位标识符,每一位标识符有显性、隐性2 种互补的逻辑数值表示。当CAN 总线的CAN_H 与CAN_L 的电位差为0 V 时,CAN 总线为隐性逻辑,当CAN_H 与CAN_L 电位差时2.0 V 时,CAN 总线为显性逻辑。CAN 通信采用短帧结构,为了保证通信的实时性,1 帧数据传输时间短,受干扰率低,为了保证帧数据的正确性,传输出错率低,每一数据帧均有CRC 校验。CAN 总线使用串行通信方式[5],总线上的节点通过广播形式将数据发送到总线,对于总线上每个节点,接收所有数据,只要总线空闲,任何节点都可以向总线发送报文。如果有2个或2 个以上的节点同时发送报文,就会引起总线访问碰撞,标识符的逐位仲裁可以解决这个碰撞,仲裁的机制确保了报文和时间均不损失。当具有相同标识符的数据帧和远程帧同时发送时,数据帧优先于远程帧。仲裁期间,每一个发送器都对发送位的电平与被监控的总线电平进行比较。如果电平相同,这个单元可以继续发送,如果发送的是“隐性”电平而监视到的是“显性”电平,那么这个单元就失去了仲裁,必须退出发送状态。
1.2 无主通信原理
标准帧与拓展帧是CAN 总线2 种数据帧格式,两者异处在于标识符长度,2 种帧格式根据应用分为4 种不同的帧类型:数据帧、远程帧、错误帧、过载帧,帧类型应用表见表1。
表1 帧类型应用表Table 1 Frame type application table
用户只能配置CAN 帧是数据帧或者远程帧,设计的方案中使用标准帧格式数据帧。节点CAN 控制器发送数据时,先发送1 个显性帧起始位来通知总线其他节点做好接收数据准备。CAN 控制器在发送数据的同时检测数据总线的电平是否与发送电平相同,如果不同进入总线仲裁阶段,本阶段是CAN 实现无主通信的硬件核心阶段。3 个节点发送仲裁过程如图1。
图1 仲裁过程Fig.1 Arbitration process
假设总线上A、B、C 3 个节点同时发送数据帧,如图1 第1 个虚线处,节点B 的ID 位时隐性位,节点A 与节点C 的ID 位是显性,总线电平为显性,故节点B 退出当次总线竞争。在下1 个虚线处,节点C的ID 位是隐性,节点A 是显性,总线电平显性,故节点C 退出总线竞争,所以节点A 获得本次发送数据帧权,本次没有获取发送权限的子节点,在总线空闲时自动重发。当总线出现远程帧与数据帧时,由于数据帧的RTR 位是显性,远程帧是隐性,在同等帧ID 时,优先发送数据帧。
帧ID 越小优先级越高,标识符ID 并非报文的目的地址,所以用户可以通过对标识符的自定义以及设置CAN 控制器的寄存器与可屏蔽寄存器实现基于CAN 总线无主通讯方式的单播、组播、广播。可见CAN 总线上节点间的数据通信实时性高,并且容易构建冗余结构,提高可靠性。
2 强实时性设计
设计的煤矿安全监控系统采用无主通信模式,传感器主动上传数据于监控分站,监控分站整合数据后主控上传中心站,全程无轮询机制,当井下传感器超限或故障,本地断电可2 s 内完成,监控分站间的异地控制在井下组网,无需中心站控制,异控时间可以控制在5 s 内。监控分站硬件结构图如图2,主控制器选用ARM 内核32 位芯片LPC2194, 此芯片内部带有4 个CAN 2.0B 控制器,4 个CAN 分别与下层传感器层通信,数据整合后通过网口接口进入环网交换机。此外监控分站具有8 路开关量输入与8 路开关量输出。
图2 硬件结构图Fig.2 Hardware structure diagram
传感器层可以配节甲烷、一氧化碳、风量等数字式模拟量传感器以及局部通风机开停、断电器等数字式开关量传感器。这些传感器实时采集井下环境参数与设备工作状态、参数,以及执行监控分站下发的控制指令。通过设计特定的协议,传感器可实现即插即用,无需人为设定类型,通过使用CAN 总线,有效解决原频率型系统中传感器因为电磁干扰产生异常数据与误报警,井下设备可以将自诊断信息主动上传中心站,由用户使用。
实现强实时性系统,软件上需设计稳定、可靠、实时性强。设计软件采用Freertos[6]作为软件的操作系统,此系统开源,可免费用于商业,且结构简单,问题修复及时。软件上设计的任务与中断系统(ISR)要保证数目合理、简单,遵循低内聚、高耦合的软件工程规范,软件设计[7]的任务与ISR 之间的同步需要使用操作系统提供的方法,如共享内存、信号量、互斥锁等,减少全局变量作为共享资源。经过过系统地分析,软件结构图如图3。
图3 软件结构图Fig.3 Software structure diagram
软件系统设计主任务1 个,接收任务1 个,数据上传任务1 个,状态变换任务1 个,环网发送任务1个以及环网接收任务1 个,共6 个任务。主任务完成系统配置以及建立其他子任务,数据上传任务周期性上传传感器数据,状态任务只有当传感器状态改变时触发,CAN 接收处理任务负责将CAN 中断接收到的数据处理后加入共享内存,因为系统具有4 路CAN 接口,为了保证数据不丢帧,以及遵循中断处理“短、平、快”的规范,当CAN 中断接收到数据后,不在中断函数处理,将数据加入freertos 系统自带的数据队列后,触发信号量通知处理任务,处理后的数据根据协议规定会存放到共享内存后通知相应的任务来取数据,这样保证了系统的实时性。环网[8]发送与接收任务属于触发性任务,只有信号量触发,才进行数据上传工作。
保证强实时性[9],任务优先级分配至关重要,根据系统分析,接收中心站消息的任务优先级最高,处理下层传感器数据的CAN 接收任务次高,下层传感器状态改变时,需要立即通知上位机,所以状态上传任务优先级较高,环网发送随后,因为数据上传任务属于周期性任务,所以优先级比较低,因为主任务创建子任务后,负责将数据显示到屏幕上,所以优先级最低,故优先级从高到低为:环网接收,CAN 接收处理、状态上传、环网发送、数据上传、主任务。
此外,为了降低更换程序的难度,系统内的各个部件需要增加IAP[10]功能,方便后续实现程序远程在线更新。
3 仿真试验
在实验室利用仿真线搭建环境后,模拟大型煤矿所需设备量,系统接入32 台监控分站,每台监控分站接入16 台传感器与断电器。使用CAN 总线分析仪对总线通信状态监测,使用Wireshark 软件工具在PC 端进行以太网异常数据监测。在系统不间断运行40 d 后,查看相应监测软件,无异常中断与数据,进行传感器断电实验,本地断电与异地断电实测时间均达到AQ 6201—2006 行标要求。
4 结 语
针对目前煤矿安全监控系统存在实时性低、通信不稳定易中断、传感器故障或超限时断电控制时间过长等问题,对CAN 总线特点、软件工程、煤安监函[2016]5 号《煤矿安全监控系统升级改造技术方案》以及煤矿井下真实环境等进行了详细调研与分析研究,设计了一种强实时性通信方案,并进行了系统软硬件设计。采用设计的强实时性煤矿安全监控系统,各个节点可任意时间主动发送数据,无需轮询,可以任意单播、组播、广播,不仅提高了系统实时性,还增加了系统的稳定性与通信可靠性,减少了因通信问题导致的煤矿安全事故。