摘 要:针对部队枪械管理自动化、智能化程度不高等问题,设计了基于STM32单片机的智能枪柜系统。该系统基于可靠的指纹识别技术实现了对取/还枪流程的管理,利用视频监控技术实现对全过程的实时监控,采用以太网通信技术实现与上位机枪柜管理系统的数据信息交互,并在μC/OS-III操作系统下实现了软件开发。应用结果表明,系统运行稳定,具有推广价值。
关键词:智能枪柜;STM32;μC/OS-III;以太网
实现枪支智能化管理是当前部队信息化建设的重要方面。但部队枪支管理现阶段仍处于“机械式枪柜+人工手动操作”的模式,不仅操作过程繁琐、效率低下,而且不能实现对枪支的有效监管。目前,许多新技术被引入到枪支管理中,如参考文献[1]中采用RFID技术,通过在枪体上附着电子标签来识别枪支;参考文献[2]中采用ZigBee技术,通过在枪支上安装无线传感器来实现枪支定位等。但是由于部队有不得对枪体进行改变的使用规定,因而限制了这些方法的使用。
针对上述方法的不足,本文基于功能强大的STM32-F107VCT6[3]单片机设计了枪柜系统。系统充分利用单片机片上资源,结合指纹识别技术、视频监控技术和网络通信技术等多种技术实现了智能化枪柜管理,不仅提高了枪支存取的效率,而且保证了对枪支的有效监管。同时软件部分嵌入高性能的实时操作系统μC/OS-III,用于不同任务之间的调度,极大地提高了系统的可靠性与实时性。
1 系统总体结构
智能枪柜系统由嵌入式枪柜控制器和3路摄像头(1路针孔摄像头用于监控指纹录入过程、2路半球摄像机用于监控取/还枪过程)、硬盘录像机、电动枪/门锁、震动探测器、压力开关、门磁、声光报警器、状态灯、指纹仪、UPS、以太网接口等外围设备组成,如图1所示。
嵌入式枪柜控制器作为下位机系统核心,独立工作时可实现枪支存取过程的安全、可靠、自主的管理,包括通过指纹权限自动控制枪支存取,生成和存储开枪锁、开柜门和报警3种记录,自主完成防盗防爆检测和视频监控取/还枪过程等功能。同时系统配备UPS电源,可保证在断电情况下工作2 h。当与上位机连接后,控制器可以通过以太网上传实时生成的记录。上位机智能枪柜管理系统也可实时视频监控取枪过程、检索硬盘录像机中保存的历史视频记录、抓拍指纹录入人员图像、查看枪支实时在位情况和柜门状态、远程开启柜门和指定枪锁、进行枪支使用和枪柜管理授权、下载控制器保存的历史记录、生成报表、命名枪柜和枪支、设置枪柜IP地址等。
2 枪柜控制器硬件设计
2.1 总体硬件设计
枪柜控制器分为信号检测板、核心控制板和信号输出板三部分,如图2所示。信号检测部分主要用于信号输入,来源包括震动探测器、压力开关、门磁、硬盘录像机和指纹仪。由于输入信号均为5 V电平,而单片机管脚支持CMOS电平,因此输入信号经光耦隔离后,需要使用74LS245进行电平转换才能送入单片机。输出控制板主要是用于驱动继电器,单片机输出信号经74HC640隔离后,通过ULN2803芯片驱动12 V继电器。通过将继电器串联在电路中实现对电动枪/门锁、声光报警器和状态指示灯的控制。
核心控制板主要功能是与上位机通信、根据输入信号进行相应动作等。为充分利用单片机内部资源,系统采用芯片内部RTC模块进行计时,主要外围电路包括以太网通信和Flash存储两部分。
2.2 以太网通信电路设计[4]
STM32F107芯片内部集成了高性能以太网模块,通过外接PHY芯片可以实现以太网数据收发功能。该模块灵活可调,符合IEEE802.3标准,支持MII和RMII 2种模式,数据传输速率可达10/100 Mb/s,能够满足不同设计需求。该部分电路采用高性价比的DM9161A作为以太网PHY芯片,采用RMII接口进行连接,极大地节约管脚资源。同时为简化电路设计,利用单片机的PA8管脚代替外部晶振来提供时钟输入,用于驱动PHY芯片。电路设计如图3所示。
2.3 Flash存储电路
当枪柜独立工作时,控制器需要保存开门、开锁、报警3种记录和部分设置参数。而单片机内部虽然具有256 KB Flash,但远远不能满足存储需要,因此需要外挂存储芯片。本设计中采用W25X16芯片,该芯片工作电压为2.7~3.6 V,具有2 MB的存储容量;支持标准的SPI和双输出的SPI,最大时钟可以达到75 MHz;芯片擦写周期为10 000次,具有20年的数据保存周期。STM32-F107VCT6单片机SPI接口允许半/全双工同步串行通信,可按8或16位帧格式传输,支持主从模式选择,可进行CRC校验和DMA数据收发。本设计采用SPI总线管脚PA5、PA6、PA7、PB9设计电路,如图4所示。
3 软件设计
由于系统要完成与上位机的数据交换、解析指纹、检测报警信号、修改下位机参数、读写3类记录等多项任务,因此为提高可靠性,系统软件部分基于嵌入式多任务实时操作系统μC/OS-III[5]进行开发。如图5所示。系统共调度8个任务,主要完成以太网数据交互、取/还枪流程管理、报警监测三大功能。
3.1 以太网数据交互
本模块主要是解析上位机操作指令来完成不同任务,并在网络连接情况下上传实时记录。
网络通信通过移植轻量级的TCP/IP协议栈LwIP来实现。LwIP[6]特点是有利于减少内存使用率和代码尺寸,因而适于在嵌入式系统中应用。系统在LwIP协议栈下通过构建基于UDP协议的稳定通信机制实现网络数据的可靠传输。
同时,为了提高网络通信的实时性,减少系统开销,下位机网络通信部分采用中断方式实现。当接收到数据后,下位机进入网络通信中断子程序,根据接收到的数据中操作码的不同来执行不同的操作,如人员权限设定、通信参数设置、查询记录、远程开枪/门锁、时间同步、查询枪支实时在位情况等,同时在网络连接建立的情况下,下位机能将实时生成的开门、取枪、报警记录上传到上位机,否则保存在下位机Flash中。具体流程图如图6所示。
3.2 取/还枪流程管理
本模块主要是识别指纹并进行开门和取枪权限管理,同时自动生成相应记录。系统通过接收指纹仪产生的韦根信号来识别不同的指纹。由于韦根信号实时性要求较高,因而采用中断方式接收。
根据部队枪支管理使用规定,具备取/还枪过程操作权限的人员分为超级管理员、管理员和业务员三类。超级管理员和管理员中任意两人组合并同时录入指纹具备开柜门权限;柜门开启后,业务员具备开启一把枪锁的权限,超级管理员具备开启全部枪锁的权限。取枪流程如下:依次录入具有开门权限的人员指纹,如果两次录入间隔超时30 s则必须重新录入,并根据下位机保存的指纹信息验证指纹,成功后开启柜门,并生成开门记录。然后录入开枪锁指纹并进行验证,成功后区分是业务员指纹还是超级管理员指纹,并根据权限进行相应操作。在开启柜门和枪锁后启动开门超时和取枪超时检测,一旦操作过程超时立即报警信号。还枪过程与取枪过程类似,均需要开启柜门和相应枪锁,具体取/还枪流程如图7所示。
3.3 报警检测模块
本模块主要是根据报警信号生成对应报警记录并启动声光报警器。系统的报警信号主要来自两类:一类是外部报警信号,包括震动探测器产生的报警和硬盘录像机产生的监控画面遮挡、硬盘满两类报警;另一类是内部报警信号,包括开门超时报警和取枪超时报警。针对两种信号的不同特点,系统采用不同方式进行检测。由于外部报警信号的产生时间具有不确定性,因而系统采用中断方式进行检测,确保能及时检测到信号。对于内部超时报警信号,由于它是在程序执行过程中由系统做出判断后产生的,因而可以只在开门和取枪动作执行后采取循环查询方式进行检测,既能保证准确检测到报警信号,又可以省去不必要的系统开销。
4 智能枪柜实现
经设计、安装后,反复对系统进行指纹开门取枪、报警检测和与上位机管理系统进行数据交互等多种调试。最终实现了智能枪柜系统,如图8所示。系统结构分上下两层,可放置15把枪支。目前系统运行良好,工作稳定可靠。
本文利用STM32单片机资源丰富、功能强大的优势,结合部队枪械管理现状,设计了智能化的枪柜系统。系统综合运用指纹识别技术和视频监控技术保证枪械存取的安全性,同时采用网络通信技术将枪械存取和环境安全等相关信息及时上传远端枪柜管理系统,实现了枪械管理的自动化与智能化。目前系统运行稳定,状态良好,有效加强了部队的枪支管控。
参考文献
[1] 陈慧.基于RFID及组态软件的智能枪支管理系统研发[J].制造业自动化,2013(35):114-117.
[2] 丁影,邹涛,喻勇辉.ZigBee技术在枪支定位系统中的应用[J].传感器技术,2010(12):150-152.
[3] 丁凡,周永明.基于STM32和ZigBee的无线校园火灾报警系统设计[J].微型机与应用,2012,31(6):43-49.
[4] 王涛,范寒柏,王磊,等.STM32F207和DM9161A的以太网实现方案[J].单片机与嵌入式系统应用,2012(12):42-44.
[5] LABROSSE J J.嵌入式实时操作系统μC/OS-III[M].邵贝贝,译.北京:北京航空航天大学出版社,2012.
[6] 韩德强,杨淇善,王宗侠,等.基于μC/OS-III的LwIP协议栈的移植与实现[J].电子技术应用,2013,39(5):18-21.