徐灵飞 ,陈 斌
(1.成都理工大学工程技术学院电子信息与计算机工程系,四川 乐山 614000;2.四川金互通科技股份有限公司,四川 乐山 614000)
随着光纤入户和网络用户的增长,光交箱数量不断增加,巡检人员数量和难度也相应增加,容易出现钥匙丢失、匹配不对、光交箱安全等问题。光交箱大部分安装在户外,对工作温度、防水、防潮、抗冲击损坏能等有一定要求,面对剧变的气候和恶劣的工作环境,需要定期巡检箱体的工作状态,保障光交箱的安全工作环境。本文结合窄带物联网(narrow band internet of things,NB-IOT)技术功耗低、覆盖广的特点[1-2]和二维码技术数字化钥匙技术,设计了集电子锁、扫码功能和监控功能于一体的智能锁。使用二维码代替传统钥匙,按需分配、即用即消,结合NB-IOT 网络实现钥匙高效管理,并能够将光交箱工作环境状态的监测数据和异常状况上传服务器以供分析[3]。作为无源设备,智能光交箱锁使用电池供电,通过NB-IOT 网络进行信息传递和管理。相较于其他网络互连方式,该设计增加了系统的待机时间[4-5]和覆盖范围。
智能光交箱锁设计基于NB-IOT 网络,结合二维码实现光交箱钥匙管理和光交箱工作状态的监控。在系统服务管理平台的控制区域内,平台统一分配每个光交箱锁的ID 号,统一管理光交箱锁数字二维码钥匙的生成和取消,并接收智能光交箱锁上传的监控信息(包括箱内温度、湿度[6-7]、水浸、振动、倾斜和电池工作状态)。监控系统结构如图1 所示。
图1 监控系统结构图Fig.1 Monitoring system structure diagram
结合NB-IOT 和二维码技术实现的数字钥匙管理系统状态如图2 所示。在需要对光交箱进行巡检时,管理系统生成数字二维码钥匙,并下发到巡检员的手机上。巡检员到达现场后,点击光交锁上的按键,启动一次NB-IOT 通信,向服务器请求光交锁数字钥匙。光交锁终端获取数字钥匙后,通过LED 灯提示开始二维码扫描功能,通过扫码行匹配以决定是否打开电子锁。在扫码匹配不一致时,可以反复操作四次。如四次结果都不匹配,则冻结电子锁,待服务器解锁后才能进行下一次的扫码开锁操作。在成功使用一个二维码之后,光交锁通过NB-IOT 网络将锁的开关状态上传到服务器,并回收使用过的二维码。在光交箱的数字化管理下,避免了钥匙复制、丢失、错位带来的安全问题,实现了智能化巡检,保证了资产的安全性。
图2 数字钥匙管理系统状态图Fig.2 Digital key management system status diagram
智能光交箱锁在正常工作期间,检测箱内状态,并定时将状态值上传到服务器,用于光交箱日常工作状态的后期分析。在出现突发情况(如水浸、振动和大角度倾斜等事件)时,蜂鸣器报警提示,并实时上传状态数据,缩短上传间隔时间,增加报警数据检测量,细化记录异常状态变化过程。在服务器发现异常后,及时将相关信息通知给管理员,以分派巡检员及时进行巡检维护。
如图1 所示,智能锁终端硬件系统主要包括6 个部分:主控器模块、电子锁模块、扫码模块、通信模块、传感器模块以及电源管理模块。智能锁终端安装在光交箱内,可以实现扫码、电子锁开关控制、采集光交箱工作状态、与服务器通信以及电源管理等功能。由于光交箱通常为无源工作环境,因此需要整个硬件系统能够以低功耗形式进行工作。在硬件设计中,通过选择低功耗主控器、低功耗NB-IOT 控制器,设计扫码模块、电子锁电源控制开关,以及设计电源管理电路等方法,实现整个硬件系统的低功耗运转。在没有外界触发信号(电子锁触发开关、NB-IOT 通信信号或异常信号触发)的情况下,整个系统全速运行,所有模块的电源控制开关闭合;反之,终端工作在低功耗模式,必须切断非必模块电源控制开关,以降低终端工作功耗。
为实现硬件低功耗控制,首先选用超低功耗STM32L152RCT6 作为主控器。STM32L152RCT6 内置高性能ARM Cortex-M3 32 位RISC 内核、多种增强型输入/输出(input/output,I/O)接口、外设和超低功耗比较器,可以实现功能强大的外围电路设计,降低硬件设计复杂度。同时,STM32L152RCT6 具有低功耗运行、睡眠、低功耗睡眠、停止、待机等低功耗模式,可使系统在非全速工作期间运行于低功耗模式。在光交锁终端空闲状态时,STM32L152RCT6 进入停止低功耗模式,此时,可使用STM32L152RCT6 的外部输入中断0-3(external interrupt line 0-3,EXTI_Line0-3)和实时时钟(real time clock,RTC)的报警中断(EXTI_Line20)作为唤醒信号。STM32L152RCT6 的外部输入中断信号由电子锁触发按键、水浸报警信号、振动信号等异常信号产生。在STM32L152RCT6 进入低功耗模式前,配置RTC 的30 min 的报警中断,以实现光交锁终端的定时状态检测。当检测到异常状况时,缩短RTC 的报警时间,以增加异常状况检测的细化程度。
NB-IOT 模块具有三种工作模式:Active、IDLE 和省电模式(power saving mode,PSM)。NB-IOT 模块会根据激活模式(Active)→空闲模式(IDLE,持续时间为T3324 设定时间)→PSM(持续时间为T3312 设定时间,期间可以外部激活)的顺序在三种模式之间切换。根据实际需求,通过AT+CPSMS 指令,可设定T3324和T3312 两个定时器的定时长度。NB-IOT 模块选用BC28,工作电压范围为3.1~4.2 V。在PSM 状态,BC28 最大消耗电流为5 μA。STM32L152RCT6 的通用同步/异步串行接收/发送器1(universal synchronous/asynchronous receiver/transmitter 1,USART1)与BC28模块主串口(17、18 引脚)链接,向BC28 模块发送AT指令,实现BC28 模块的初始化和数据的收发。BC28模块在数传工作中,确保电源跌落不低于模块最低工作电压3.1 V。在3.3 V 的工作电压下,为了提高电源的供电性能,可在靠近模块电源输入端并联一个低等效串联电阻(0.7 Ω) 的100 μF 的钽电容,以及100 nF、100 pF 和 22 pF 的滤波电容。原则上,当VBAT 引脚走线越长,线宽应越宽。BC28 模块大部分时间处于的PSM 状态,比较适合无源光交箱电池供电的工作应用场景。
BC28 模块硬件电路如图3 所示。
图3 BC28 模块硬件电路图Fig.3 Hardware circuit diagram of BC28 module
本文设计使用电磁形式控制电子锁把手的闭合和弹开[8-10],通过干簧管检测电子锁的开关状态(LOCK_DEC)。电子锁控制电路如图4 所示。
图4 电子锁控制电路Fig.4 Electronic lock control circuit
电子锁把手下方内置一个触发按键。在把手闭合时,点击把手可以触发电子锁按键(S1),LOCK_KEY引脚状态由低电平变为高电平唤醒STM32L152RCT6,通过扫码进行钥匙匹配。当巡检员钥匙和服务器下发钥匙匹配成功时,STM32L152RCT6 置LOCK_CTL 引脚为高电平,使得开关MOS 管Q2和Q1漏-源极导通,从而电磁铁M1通电,并通过弹开把手、旋转把手的方式开门。当电磁铁M1通电产生磁力时,可以使得干簧管开关(S2)闭合,LOCK_DEC 引脚上电平由高电平变为低电平,为STM32L152RCT6 提供电子锁开关状态。在电子锁开通时,STM32L152RCT6 通过LOCK_LED 引脚点亮LED 灯D1。当钥匙不匹配时,LED 灯D1闪烁。当钥匙被回收或匹配失败四次后,LED 灯D1熄灭。
GM65 扫码输出数据格式如图5 所示。
图5 GM65 扫码输出数据格式Fig.5 GM65 scan output data format
服务器向巡检员下达巡检任务,将当前巡检二维码钥匙同步下发到需要巡检的智能光交箱锁终端。巡检员到达现场,点击电子锁按键唤醒STM32L152RCT6,开始二维码识别。扫码模块使用GM65,二维码使用快速反应(quick response,QR)码。
扫码成功后,STM32L152RCT6 通过USART1获取GM65 的扫码结果,对扫码结果和服务器下发的数字钥匙进行匹配,并在匹配成功后开锁。GM65 扫码输出数据由前缀、钥匙编码数据、后缀三部分组成,以GBK 格式进行编码。扫码输出数据中的钥匙编码数据由地区码、光交箱编号和随机码组成。
传感器模块实现温湿度、水浸、振动和倾斜等参数的定时测量和异常报警。相关信息可通过NB-IOT 网络上传到服务器。
选用Si7021 作为温湿度传感器,内置了温度(热敏电阻)和湿度(湿敏电容)传感器元件、模拟数字转换器、信号处理、校准数据和集成电路(inter-integrated circuit,I2C)总线主机接口。Si7021 在-10~+85 ℃具备±0.4 ℃温度测量精度,在0~80%相对湿度(relative humidity,RH)范围具备±3%测量精度,满足设计需要。STM32L152RCT6 通过I2C 接口发送温度测量(0xE3)和湿度测量(0xE5)命令给Si7021,启动相关测量工作。Si702 对温湿度的测量需要一定的时间,因此在STM32L152RCT6 发送测量命令后,需要等待12 ms 之后读取测量结果。在非测量周期,Si7021 处于待机模式,待机电流60 nA,符合低功耗需求。Si7021 的I2C数据传输顺序如图6 所示。
图6 Si7021 的I2C 数据传输顺序Fig.6 I2C data transmission sequence of Si7021
滞回水浸检测报警电路由低功耗比较器TLV7032和双极性水浸传感器组成。水浸传感器电路和检测滞回区间如图7 所示。
图7 水浸传感器电路和检测滞回区间Fig.7 Immersion sensor circuit and detection hysteresis interval
传感器阳极接入TLV7032 阴极,比较器输出连接STM32L152RCT6,通过检测两个电极之间的阻值变化产生报警信号。当出现水浸现象时,传感器阳极和阴极之间的阻值发生变化。在水浸处于安全范围时,TLV7032 输出高电平(图7(b)中①)。当水浸超出安全范围时,TLV7032 输出低电平(图7(b)中②)。在排除水浸危害后,TLV7032 输出信号经7(b)的③、④路径返回高电平。STM32L152RCT6 每30 min 检测一次水浸信号。
为防止人为破坏和光交箱倾斜,使用加速度传感器LIS3DHTR 进行检测和预警[11-12]。LIS3DHTR 内置算法可以处理运动检测、翻转等事件。根据需要配置对应寄存器初始化,一旦检测到目标事件,LIS3DHTR的INT_1 引脚会产生中断信号,并通知主控器。将LIS3DHTR 寄存器INT1_CFG 的AOI 和6D 两个位分别设置为0 和1 使能6D 方向上的运动检测,并设置中断使能、加速度变化阈值等参数。当出现任意方向的强烈振动时,会在INT_1 引脚上产生中断信号,以触发中断实时处理。终端每30 min 读取一次LIS3DHTR 在X、Y、Z三个方向的重力加速度分量,并计算光交箱的倾斜角度。
整个智能光交箱锁终端可由锂电池或普通干电池供电。为保证系统长时间工作的电源稳定性,设计由电源电池分压电路和TLV7032 组成的比较电路。在电源电池电压降到报警点时,TLV7032 输出电压发生反转并触发终端上传报警信号,提示及时进行维护。为保证电源电池能够在宽电压范围为终端提供稳定工作电源,选用TPS63070 升降压DC-DC 电源芯片产生统一的3.3 V 终端工作电源。TPS63070 可保证电源电池在2~16 V 的输入电压范围输出3.3 V,并提供最大3.6 A 的工作电流,满足系统要求。在采用4 节南孚干电池供电时,电池电源电压报警值设置为3 V。
终端控制程序流程如图8 所示。
图8 终端控制程序流程图Fig.8 Flowchart of terminal control program
终端控制程序实现电子锁控制、服务器通信、扫码模块控制、温湿度检测、水浸检测、振动检测、倾斜检测以及电池电压检测等功能。在终端上电启动后,首先进行STM32L152RCT6 片上外设的初始化配置,包括通用输入输出(general-purpose input/output,GPIO)接口、外部中断、USART、I2C、模数转换器(analog-to-digital converter,ADC)、RTC 等。然后,对扫码模块、各种传感器模块NB-IOT 模块进行初始化,并开始连接NBIOT 网络。在NB-IOT 连接服务器成功后,进行一次光交箱状态检测,并将数据上传到服务器。然后STM32L152RCT6 进入停止低功耗模式,等待下一次定时电路的唤醒触发信号。如果出现异常状况(如温湿度超标、振动或倾斜报警等),对应电路可实时唤醒STM32L152RCT6,并将当前报警信号和状态通过NB-IOT 网络上传服务器。
巡检员达现场后,点击电子锁触发按键,唤醒STM32L152RCT6 开始一次NB-IOT 通信,从服务器获取当前授权的数字钥匙。然后,打开扫码模块供电开关并配置扫码模块,通过扫码功能与巡检员现场进行数字钥匙匹配。
数字钥匙匹配成功后,STM32L152RCT6 打开电子锁,并通过NB-IOT 通信上传电子锁状态、请求服务器回收已使用的数字钥匙。巡检过程中,终端都处于全运行状态,在检测到关锁动作后,STM32L152RCT6 断开扫码模块供电开关并进入休眠定时状态。
智能光交锁终端通过NB-IOT 网络上传获得的状态、报警数据以及一些请求命令,接收物联网平台下发给终端的数字钥匙和控制码,如重传控制、开锁及解除警告等。智能光交锁终端数据通信如图9 所示。
图9 智能光交锁终端数据通信示意图Fig.9 Data communication of intelligent optical interlocking terminal
状态数据中的接收信号强度指示(received signal strength indication,RSSI)值是NB-IOT 模块的射频信号接收强度,通过AT+CSQ 命令获取。水浸、振动以及非授权电子锁开关状态报警封装在报警码中。下发的数据包括数字钥匙和控制码。数字钥匙格式如图5 所示,控制码功能包括数据重传、开锁、解除报警等。
本文针对传统机械式光交箱锁使用和管理存在的问题,设计了一个智能光交锁终端。测试表明,终端设备上电后可以正常连接到物联网平台,终端各个模块工作正常,并能够将检测到的状态数据上传到服务器,各状态数据和现场实测值基本一致。通过电子锁扫码功能,可以使用二维码正常开锁,在异常状况(如超温、水浸、振动、大角度倾斜等状态)下能够及时唤醒主控器并上传相关报警数据。使用NB-IOT 网络和二维码数字钥匙替代传统钥匙,提高了钥匙分配、使用和管理过程的效率,保障了光交箱门锁开关的安全性,降低了人工巡检的工作量,具有广阔的应用前景。