基于WiFi的矿用人员定位卡的设计
2019-08-17褚超群
褚超群
(内蒙古机电职业技术学院,内蒙古 呼和浩特 010070)
0 引言
矿井人员定位系统是井下工作人员日常考勤管理和突发事件预防、救援的重要工具。随着我国对煤矿安全生产监管的不断重视,全国大小煤矿基本都安装了矿井人员定位系统[1]。国内常见的矿井人员定位系统多基于RFID或ZigBee技术实现,而国外一些发达国家采用的技术比较全面,如蓝牙、WiFi、GIS等技术,井下人员的定位和跟踪效果良好[2]。
WiFi技术以传播速度快、组网能力强、系统成本低的优势受到越来越多的青睐[3]。井下的WiFi环境不但可以满足视频、语音、传感器检测信息等大量数据的传输需求,还可以满足人员定位需求,且系统组成稳定[4]。针对我国煤矿数量多、巷道分布复杂等情况,利用井下现有WiFi网络,研究一种基于WiFi的人员定位卡,对煤矿安全生产意义重大。
1 矿井人员定位系统工作原理
基于WiFi的矿井人员定位系统主要由三部分组成,包括WiFi基站组成的无线通信网络、用于井下信号采集和数据交换的WiFi定位卡、保存所有数据的服务器。服务器装有定位软件,能完成井下信息的录入、查询和安全管理,并能在电子地图上显示井下人员位置。系统总体示意图如图1所示。
图1 基于WiFi的矿井人员定位系统示意图
井下工作人员佩戴的WiFi定位卡负责采集所在位置WiFi基站名称、MAC地址、信号强度等数据,同时通过井下WiFi实现与控制中心PC间的数据交互,接收PC的呼叫信息,并发送井下报警信息[5]。
2 WiFi定位卡系统构成
WiFi定位卡是基于WiFi的矿井人员定位系统中需要被进行定位的节点,其在井下位置不断变化。在定位区域内,把接收到的无线基站信息通过无线局域网传到地面控制中心服务器中,供服务器中的PC软件处理。每个下井的矿工都需携带一个WiFi定位卡,当发生危险时,按定位卡上的报警按钮发送报警信息。定位卡同时具备电量、报警、运行、系统指示灯,分别指示WiFi定位卡的电量情况、报警状态、通信状态和系统工作状态。具体的WiFi定位卡系统构成如图2所示。
图2 WiFi定位卡系统框图
3 硬件设计
WiFi定位卡硬件设计以STM32F103VCT6为控制核心,外围电路包括WiFi通信电路、按键和指示电路、配置调试电路、仿真电路和电源电路。WiFi通信电路完成与井下无线网络的组网,同时实现与控制中心PC间的数据通信。按键和指示电路中,按键采集电路实现报警功能,指示电路完成对电量情况、报警状态、运行状态和系统工作状态的指示。配置调试电路完成对WiFi定位卡卡号、网络连接参数的配置。仿真电路负责WiFi定位卡系统的软件调试和代码下载。
3.1 WiFi通信电路
WiFi定位卡的WiFi通信电路选择加密联网控制芯片CO2128,主处理器通过发送AT+i指令实现对CO2128的控制,数据的传输使用透明传输模式。WiFi芯片采用WM-G-MR09-REF2,CO2128与WM-G-MR09-REF2间的连接采用SPI接口。LED6是通信指示灯,当WM-G-MR09-REF2进行无线数据交换时,LED6亮;不进行无线数据交换时,LED6灭。
3.2 按键和指示电路
按键和指示电路包括按键采集电路、指示灯电路和蜂鸣器电路三部分。按键采集电路为报警按键输入,与STM32F103VCT6的GPIO口连接,低电平触发。指示电路包括电量指示、报警指示、运行指示、系统指示四部分。电量指示灯中,当电池电量低于3 V时,指示灯显示红色;高于3 V时,显示绿色。电量指示灯电路设计如图3所示。系统指示灯、报警指示灯和运行指示灯分别与STM32F103VCT6的三个GPIO口相连,当相应GPIO为低电平信号时,指示灯亮。当WiFi定位卡故障或收到危险信息时,会触发其蜂鸣器报警,高电平触发蜂鸣器响。
图3 电量指示电路图
3.3 配置调试电路
配置和调试使用STM32F103VCT6的UART0接口,供WiFi定位卡卡号、IP地址、组网方式、信道、网络连接密码参数配置和代码运行时设备的调试。
3.4 仿真电路
为方便编程时对STM32F103VCT6调试,在Keil软件编程时采用JTAG进行实时仿真,接口的设计采用2×5排针以节省印制电路板空间。
3.5 电源电路
WiFi定位卡使用DC 3.6 V锂电池供电,主处理器STM32F103VCT6、CO2128,外置Flash芯片和WM-G-MR09-REF2工作电压均为DC 3.3 V,电量检测需要DC 1.2 V的参考电压,设计DC 3.6 V转DC 3.3 V,DC 3.3 V转DC 1.2 V两个直流转换电路。DC 3.6 V转DC 3.3 V直流转换采用TLV70033DDC芯片,如图4所示;DC 3.3 V转DC 1.2 V直流转换采用TLV70012DDC芯片,如图5所示。
图4 DC 3.6 V转DC 3.3 V电路原理图
图5 DC3.3 V转DC1.2 V电路原理图
4 软件设计
4.1 WiFi定位卡主程序设计
WiFi定位卡软件采用C语言编程,Keil软件进行编译,围绕其功能设计了主程序、按键和指示子程序、配置调试子程序、数据采集子程序、WiFi通信子程序几个部分。任务调度采用时间片轮转法,以提高CPU利用率,软件主程序流程如图6所示。WiFi定位卡和服务器端上位机软件间通信采用标准的TCP/IP协议,编程方便,系统的扩展性强。
图6 软件主程序流程图
4.2 按键与指示子程序设计
软件上分别控制报警按键和报警、运行、系统三个指示灯,蜂鸣器与报警指示灯执行相同的逻辑。
系统指示灯每隔1 s亮灭一次,如果CPU运行正常,则系统指示灯正常亮灭;如果系统进入死循环,则系统指示灯会常亮或常灭。
当发生危险时,井下人员按报警键通知井上控制中心人员。长按报警键1 s,报警指示灯会亮红灯,蜂鸣器响,同时发送报警信息到控制中心;长按报警键5 s,表示报警解除,报警灯灭,蜂鸣器停,同时发送停止报警信息到控制中心。
运行指示灯为指示WiFi定位卡无线通信工作状态使用。正常工作时,WiFi定位卡每正常发送一个数据包,会收到一个PC端软件发来的响应包。如果定位卡软件对响应数据包解析正确,说明该WiFi定位卡通信正常,运行指示灯亮绿灯;如果三次发包未收到响应包,则说明无线通信错误,运行指示灯灭。
4.3 参数配置调试子程序设计
参数配置调试为方便WiFi定位卡参数配置和调试使用,使用串口线将UART0与PC连接,采用secureCRT 4.0软件。通过secureCRT 4.0显示或配置WiFi定位卡的连接基站名称、连接基站密码、加密方式、设备IP地址、设备标号、连接端口、组网协议等信息。在代码调试时,通过secureCRT 4.0显示系统运行状态。参数配置调试子程序流程图如图7所示。
图7 参数配置调试子程序流程图
4.4 数据采集子程序
数据采集子程序负责采集AP相关数据,使用CO2128中AT+iRP20指令。当CO2128接收到AT+iRP20指令时,会返回周围AP或AD-HOC网络信息,包括基站名称(SSID)、加密类型、信道、接收信号强度(RSSI)等。基于RSSI定位算法的矿井人员定位系统,主要根据定位卡接收到无线基站的RSSI值,通过PC端软件定位算法计算得出井下人员位置。
AP相关数据采集时STM32F103VCT6每100ms向CO2128发送AT+iRP20指令。CO2128返回数据信息后先判断其SSID是否与串口配置的SSID相同,如果不同则丢弃该行信息;如果相同,则存储在缓存区中,同理收集前4条AP信息值,打包存放在缓存区中,等待发送。数据采集子程序流程图如图8所示。
图8 数据采集子程序流程图
4.5 WiFi通信子程序设计
WiFi通信子程序主要完成WiFi定位卡无线通信任务,负责WiFi定位卡与PC端软件间的双向通信。使用前先配置好WiFi通信模块的网络参数,使CO2128进入透明传输模式。
储存配置信息参数到STM32F103VCT6的内置Flash中,设备上电后自动检测CO2128是否配置成功。若没成功,则从Flash中读取默认配置,对CO2128进行配置;若配置成功,则可以使用CO2128进行无线数据传输。
5 通信测试
通信测试主要验证WiFi网络环境中定位卡与PC之间的通信质量。用网线连接PC与无线基站,用串口线将WiFi定位卡配置调试接口与笔记本连接。通信试验采用循环应答模式,由WiFi定位卡与笔记本建立Socket连接后,先由WiFi定位卡给笔记本发数据包,笔记本收到WiFi定位卡的数据包后,给WiFi定位卡发一个响应数据包,利用配置调试接口将WiFi定位卡给PC的发包数据和接收数据都经串口在secureCRT 4.0软件上打印出来,并统计发包数和收包数。
10 m、20 m、30 m、40 m、50 m五个距离段通信测试结果如表1所示。测试结果表明,WiFi定位卡与无线基站间可以满足空旷环境50 m内,8%以内的丢包率,通信效果良好,完全满足矿下人员定位应用。
表1 WiFi定位卡通信测试记录
6 结论
采用嵌入式微处理器STM32F103VCT6和WiFi联网芯片CO2128设计的矿用人员定位卡,具有成本低廉、结构简单、网络兼容性好等特点,可实现在WiFi覆盖下的井下人员定位需要,具有广阔的应用前景。