APP下载

基于NB-IoT技术的智能井盖锁系统的设计

2020-09-04孙钢灿赵传勇张宁宁

计算机工程与设计 2020年8期
关键词:井盖低功耗标签

孙钢灿,赵传勇,张宁宁

(郑州大学 信息工程学院,河南 郑州 450001)

0 引 言

城市化进程加快,井盖事故和被盗事件频发[1,2],而且城市井盖数量巨大,传统的人工巡检不能做实时监测,并且很多都是公共窖井,各方打开井盖无记录,不能对窖井进行有效的管理。近年来有人提出了很多种解决方案,文献[3]的方案虽然能解决实时监测问题,但存在中继网关的安装和维护成本较大等缺点,且ZigBee没有专用频段,通信干扰较大[4],大多数的方案如文献[5]只是实现了监测,安全性没有得到提高。在研究和分析已有井盖监控系统优缺点的基础上,设计并实现了基于窄带物联网[6](narrow band internet of things,NB-IoT)技术集监测和锁定于一体的智能井盖锁管理系统,系统采用STM32L051系列低功耗芯片作为控制器,NB-IoT为通信方式,结合近场通信(near field communication,NFC)标签、电机驱动、电源转换电路的设计,可以实现低功耗、可靠性通信,运用NFC读写工作模式设计了开关锁协议,详细介绍了系统的工作原理,最后通过安装测试验证了系统的有效性和可靠性。

1 系统总体设计

设计一个智能井盖锁系统主要实现两大功能:一是实现机械锁的锁定功能,通过驱动电机配合特定的机械结构实现开锁和关锁,只有专用开锁设备得到授权才能打开锁,并对开锁信息进行记录;二是实现对井盖状态的监测,井盖如有倾斜实时报警,方便管理人员及时处理问题。

智能井盖锁系统基于NB-IoT技术实现,系统总体设计如图1所示,根据物联网分层模型将系统分成感知层、网络层和应用层,感知层获取井盖倾斜及开锁数据通过网络模块进行上传;网络层负责传递和处理感知层获取的数据,并将这些数据上传到物联网管理平台;应用层负责将井盖锁相关数据呈现到电脑或手机端。从而实现井盖锁通过NB-IoT网络与云服务器的远程连接,异常及开锁信息及时上传到云服务器,达到对井盖锁的实时监测。该系统包含两大部分:井盖锁终端和云服务器。井盖锁终端主要由控制芯片、NFC标签、NB-IoT通信、电机驱动、倾斜监测等模块组成,井盖锁与专用开锁设备之间通过NFC进行通信,实现开关锁。

图1 系统总体设计框架

2 硬件电路设计

2.1 NFC标签模块

M24LR04是意法半导体公司推出的一款新型无线存储器芯片,工作频率为13.56 MHz。该芯片拥有4 Kbit EEPROM,具有支持ISO 15693和ISO 18000-3协议标准的射频通信接口和400 Kb/s速率的标准IIC串行有线接口[7]。可通过无线射频接口模式和有线IIC接口模式两种方式对NFC标签读写。在无线射频接口的模式下,以接收到的射频载波信号为工作电源,存储器结构为位,一次可以写入32 bit的数据;在有线IIC接口模式下,接收处理器发来的IIC读写信号,并通过VCC电源线供电,工作电压选择3.3 V,其存储结构为位。M24LR04的电路连接如图2所示,M24LR04芯片的SCL、SDA引脚接控制芯片的I2C1_SCL和I2C1_SDA引脚。

图2 NFC标签模块电路

2.2 NB-IoT模块

相较于ZigBee和远距离无线电(long range radio,LoRa)等短距离无线通信技术,NB-IoT优势明显[8],NB-IoT是在长期演进技术(long team evolution,LTE)基础上对其进行减小信令开销和优化功耗推出的一种无线通信技术,是低功耗广域网的代表。可直接借助现有的运营商基站搭建NB-IoT网络,可采取带内、保护带及独立载波3种部署方式,无需重新组网。由于井盖分布比较分散,采用NB-IoT作为系统通信方式,能够有效降低部署网络的成本,同时节省了大量的人力物力。

NB-IoT模块采用稳恒科技生产的WH-NB73模块,该模块基于华为Boudica 120芯片,支持3GPP Release 13标准协议,工作在B5频段,支持IP、UDP和CoAP这3种协议,相较于GPRS,有20 dB的信号强度增益,并且Boudica 120芯片集成了AP+CP+SP这3个ARM内核,采用低功耗设计,能够满足系统功能的需求。NB-IoT模块电路设计如图3所示,工作电压为3.6 V,通过串口与控制芯片通信,模块UART0_RXD和UART0_TXD引脚分别接主控芯片的USART2_TX和USART2_RX引脚。为防止静电对USIM卡及芯片造成损坏,须要增加TVS管进行静电保护,作为(electro-static discharge,ESD)防静电措施。

2.3 电机驱动模块

电机驱动模块采用直流减速电机,配合特定的机械结构实现开关锁的,驱动芯片为MX113L芯片,电机驱动模块电路设计如图4所示,MX113L芯片的工作电压为2 V-8 V且待机电流小于0.1 μA,能够满足低功耗的需求。驱动电路必须添加对地去耦电容[9]C20,其目的有两个:一是吸收马达向电源释放的能量,稳定电源电压,避免电路因为过压而被击穿;二是在马达起动或者快速正转、反转切换的瞬间,马达需要瞬间大电流才能迅速启动,由于电池不能立即输出瞬态大电流,故需要添加电容。由于电机模块电压不高,故选择4.7 μF的电容。当芯片引脚IN1和IN2输入低电平时,驱动模块处于待机模式;当芯片引脚IN1输入高电平、IN2输入低电平时,驱动电机正转;反之则电机倒转。

2.4 电源和倾斜监测模块

整个锁体电路采用3.6 V ER34615型锂电池供电,由于MCU和NFC标签需要3.3 V电压,故通过低压差线性稳压器输出固定3.3 V电压。倾斜监测采用BL-108 20°倾斜滚珠开关,接控制芯片GPIO口,当倾斜度数超过20°时,为通路状态,能够实现360°全方向倾斜触发。滚珠开关在常通状态容易产生误触发,在使用时应让开关是断开状态,倾斜导通才能触发动作。故滚珠开关一脚可接高电平,控制芯片外部中断设置为上升沿触发。

图3 NB-IoT模块电路

图4 电机驱动模块电路

2.5 控制芯片

通过对实现功能分析和物联网低功耗的特点,智能井盖锁终端控制芯片采用STM32L051C8T6芯片,该芯片基于32位的ARM Cortex-M0+内核,最高主频为32 MHz,有8 KB RAM和64 KB FLASH[10]。片上资源丰富,能够满足倾斜监测、电机驱动、NB-IoT通信和NFC标签读写等需求,而且物联网终端控制芯片大多处于待机模式等待唤醒的状态,STM32L051系列能够在满足功能设计的情况下,提供更低的功耗。控制芯片及各功能模块之间协同工作如图5所示。

图5 智能井盖锁锁体控制

3 软件设计

3.1 无线通信设计

NB-IoT模块负责井盖锁终端和应用服务器之间的通信问题。NB-IoT模块配置通过AT指令完成,主要包括初始化USIM卡,搜索网络信号、绑定IP地址、建立数据链接等。智能锁终端控制芯片将采集到的钥匙开锁和倾斜异常等数据按照表1所示的帧格式进行编码,通过串口以AT命令的形式将数据发送至NB-IoT模块,为降低功耗,串口波特率设置为9600。然后NB-IoT模块通过CoAP协议将数据发送至物联网管理平台;物联网平台收到数据后自动寻找编解码配置文件,将CoAP协议包解析为Json格式的数据并存储;应用层软件通过物联网平台提供的北向接口获取数据。为满足低功耗的设计,在控制芯片进入休眠模式,会通过IO口发送关机脉冲,关闭通信模块。当需要上传数据时,控制芯片会发送开机脉冲给NB-IoT模块,将接收到的数据发出。

表1 数据帧格式

3.2 开关锁软件设计

开关锁是由电机驱动机械结构实现的,锁体与钥匙设备之间通过NFC读写模式进行通信,采用ISO 15693标准协议。NFC技术由无线射频技术(RFID)发展而来[11],其技术的基本工作原理并不复杂。一般要经过侦测标签,读取标签和数据处理等。

系统的NFC通信流程如图6所示,主要包括系统初始化和开关锁协议设计两个部分,首先,NFC标签大部分时间处于休眠状态,当有NFC阅读器天线靠近标签由磁场耦合获得足够的能量时,NFC标签被唤醒进入准备状态,同时通过外部中断引脚唤醒锁体控制芯片切换至正常工作状态,完成系统近场通信的初始化。

图6 NFC通信流程

开关锁的设计流程如图7所示,主要通过控制无线射频接口和IIC接口读写NFC标签EEPROM实现的。M24LR04提供一个特殊的密码式保护机制,每个扇区都配有一个安全状态字节[7],具体见表2。b0设置为1,开启扇区锁保护,b2和b1设置为10,只有提交密码时扇区才可以读写,b4和b3设置为01,采用密码1保护各个扇区。钥匙设备向NFC标签发送密码,若校对密码正确,然后进行权限验证,其设计思想是,每个锁NFC标签的EEPROM的Block 0中存储锁的16位ID信息,若授权钥匙设备开锁,将其ID信息写入钥匙设备的FLASH中,钥匙设备读取该锁的ID信息,并与FLASH存储的ID信息进行校验。当权限通过时,需要读取该锁的状态标志位,以便发送开锁或关锁命令,即对EEPROM 的Block 1中写入开锁标志位或关锁标志位。锁体控制芯片通过IIC接口读取该标志位,从而发送驱动电机命令,实现开关锁。开关锁完成后,控制芯片发送命令擦除该标志位,并且将开锁信息通过NB-IoT网络发送到物联网管理平台。

图7 开关锁流程

表2 扇区安全状态字节结构

3.3 低功耗方案设计

本系统选择STM32L051C8T6芯片作为智能井盖锁终端电路控制芯片,STM32L051系列是意法半导体公司推出的低功耗芯片,STOP模式下最大待机电流仅为0.8 μA,并且3.5 μs即可被唤醒。在低功耗设计的思路上,采用的是终端无数据传输时,将除SWD调试接口外的所有IO设置成模拟输入模式,关闭所有外设的时钟,然后控制芯片进入STOP模式。唤醒采用RTC定时唤醒或外部中断唤醒,唤醒后重新配置要使用的IO和外设,发送数据。当智能井盖锁安装完成后,位置固定,故其网络信号基本不会变化,电量信息和信号强度每3个小时上传一次,电量预警、设备掉线、井盖发生倾斜以及开锁时,会触发外部中断唤醒终端。实际待机的电流仅为20 μA,达到了低功耗的设计要求。

3.4 云服务器软件设计

应用层软件采用Java语言开发,工程由主流的Spring+Spring MVC+Mybatis框架搭建。该部分主要实现的是通过物联网平台北向接口获取数据以及进行处理显示,方便管理人员查看。软件接入百度地图,将每个智能锁安装的位置标注在地图上,鼠标点击标识点可以显示该智能锁的电量和网络信号信息,并且设置标识点颜色表示智能锁正常工作、电量不足和掉线3种状态。为了方便管理人员,应用层主要包括以下各模块:①授权中心:该模块负责添加钥匙设备,并对钥匙开锁进行授权。②站点管理:根据窖井的类型或者分布区域对井盖进行分类或分区管理,方便管理人员查看分管的井盖。③锁具中心:包含钥匙管理和智能锁管理两部分,主要负责对井盖锁和钥匙设备进行删除和重命名,以及显示钥匙授权信息。④消息中心:包括授权消息列表、设备信息和开关锁日志3种消息。授权消息列表主要包含授权钥匙设备、授权锁具、授权开始和结束时间;设备信息负责显示井盖的状态信息包括信号、电量是否倾斜等信息;开关锁信息是对每次开锁、关锁的时间和钥匙设备进行记录。⑤报表中心:该模块是对每天井盖锁的状态进行一个宏观的查看,可以分站点显示出设备最近一周的运行状况,以日期为横轴,以正常、打开、异常3种状态的井盖数量为纵轴做一个实时的折线图,整体运行状况清晰可见。

4 系统测试

在安装智能井盖锁终端之前要对其进行初始化,用手机APP工具将编写的锁16位ID通过NFC功能写入到NFC标签的EEPROM中,并将开关锁状态标志位写入,默认为开锁状态。锁体装置由锁芯、圆形孔、锁盒和连杆组成,锁芯通过圆心孔连接连杆,通过锁定锁芯的转动实现开关锁,NFC标签线圈固定在锁芯上部设计的凹槽内,该装置可直接在原有井盖上打孔安装,极大节省了成本。安装时调整锁舌磁铁极性使其与标志位匹配。每个井盖锁通过NB-IoT平台和云服务器通信,保证了信号安全可靠的传输。实地安装完成后,在应用层软件中添加井盖锁信息,并在接入的百度地图中进行位置标注。运行界面如图8所示。

图8 系统测试运行效果

经过半年多的实地测试,每个智能井盖锁终端都能够及时反馈报警信息,并且可以实现井盖倾斜、电量不足和设备掉线报警,以及开锁关锁信息及时上传,能够有效帮助管理人员对井盖进行监测与管理。

5 结束语

本文基于NB-IoT物联网技术设计了一个智能井盖锁系统,结合电机驱动模块、滚珠开关、NFC标签实现井盖锁智能化,同时可通过电脑端实时监测井盖的状态。

本文首先整体分析了智能井盖锁系统的功能,然后详细阐述了各个模块的基本原理和硬件设计,根据NFC技术的特点,设计了一种开关锁协议,介绍了软件实现流程,给出了低功耗解决方案,并设计了管理软件。实验测结果表明,该系统具有工作稳定、组网简单、实时性响应良好等特点,能够防止井内设备被盗,及时反馈井盖倾斜信息。配合设计的锁体装置,可直接在原来井盖上安装。代替了人工巡检,提高了管理人员的效率,为智慧城市的建设打好基础。

该系统尚在研发测试阶段,以后的研究方向将是进一步实现比如温度、气体等监测功能,优化功耗,通过复杂的环境测试系统工作的稳定性,以及设计手机APP利用手机NFC功能实现开关锁,以便于管理人员进行高效的管理。

猜你喜欢

井盖低功耗标签
井盖上面智慧多
一种高速低功耗比较器设计
一种宽带低功耗四合一接收机设计
小井盖学问大
无惧标签 Alfa Romeo Giulia 200HP
不害怕撕掉标签的人,都活出了真正的漂亮
低功耗便携智能翻译手套系统
低功耗技术在驾驶行为管理模块中的应用
这条路上的下水道井盖都被我承包了
让衣柜摆脱“杂乱无章”的标签