引言
在煤矿生产自动化中,人员定位系统发挥了越来越大的作用。现在国内外大多数煤矿使用的人员定位系统都是基于2.4GHz" title="2.4GHz">2.4GHz工业无线" title="工业无线">工业无线通信标准设计的,该定位系统主要由装在矿井巷道的定位分站和配戴在工人身上的目标识别卡协同工作来完成人员定位。然而定位分站并不是在每一个巷道都安装,在没有安装定位分站的巷道就不能实现人员定位;而且由于事故原因引起的定位分站不能正常工作导致的被困人员不能正常定位,以致营救困难等现象也屡见不鲜。鉴于以上客观原因,本设计就显得具有明显的实际意义。
搜救器系统设计
搜器系统主要由电源模块、主控制器模块、2.4GHz无线通信模块、红外通信模块、FLASH存储器模块、OLED显示模块和触摸按键模块组成,系统框图如图1所示。
系统电源
采用锂电池做为系统电源,电池充电管理芯片选用CN3083,图2所示是以500mA电流4.2V电压进行恒压充电的电路图。图2中发光二极管D5发光时表明充电正在进行,D6发光时表明充电已经结束。锂电池通过LDO芯片MD73R30向系统提供稳定的3.3V电压,该芯片有使能控制引脚CE,可以通过将图中POWER_EN置为低电平关闭MD73R30以节省电能。
主控制器
选用STM32F103VE" title="STM32F103VE">STM32F103VE做主控制器。STM32F103VE增强型系列使用高性能的ARM Cortex-M3 32位的RISC内核,内置高速存储器(高达512k字节的闪存和64k字节的SRAM),丰富的增强I/O端口和联接到两条APB总线的外设。器件包含3个12位的ADC、4个通用16位定时器和2个PWM定时器,还包含标准和先进的通信接口: 2个I2C、3个SPI、2个I2S、1个SDIO、5个USART、一个USB和一个CAN。STM32F103VE具有DMA功能,可以在外设和内存之间、内存和内存之间提供高速数据传输。STM32F103VE具有FSMC(静态存储控制器),本设计用FSMC功能实现控制具有Intel8080总线模式的OLED显示屏。
FLASH存储器
搜救器要存储大量的人员信息,所以在主控制器外部扩展了8M字节的FLASH。M25P64是一个8M×8的串行FLASH存储器,具有写保护机制,通过高速SPI兼容总线应用。存储器由128个块组成,每个块包含256页,每页256个字节。M25P64具有高性能的编程功能,用页编程指令每次可编程1至256字节。整个存储器可以通过块擦写指令擦除,也可以由块擦除指令一次一块的擦除。
红外通信
出于方便应用考虑,搜救器在与上位机进行数据交换时使用红外通信技术。由于STM32F103VE的USART可以设置成IrDA模式,所以本设计选用Vishay的红外芯片TFDU4300。TFDU4300是一个对于低电压IO接口有独立逻辑参考电压的红外收发模块,它与快速红外数据通信的最新IrDA物理层标准完全兼容,IrDA的速度最高支持115.2kbit/s并且支持基带远程控制。收发模块由PIN二极管,一个红外发送器和一个低功耗控制IC构成,提供一个完全的单芯片前端到后端的解决方案。器件覆盖扩展的近于1米IrDA范围,通过一外部限流控制电阻可以调到更近的范围。
无线通信
无线通信模块通信芯片采用的是工作在2.4GHzISM频段的nRF24L01" title="nRF24L01">nRF24L01,整个模块的结构简单,采用单芯片进行数据的处理。nRF24L01只要用很少的外围元件就可以进行正常的工作。无线通信模块电路主要是由nRF24L01、数字衰减器(HMC274)、天线、晶振电路组成,框图如图3所示。
OLED显示屏
选用奇晶光电的OLED显示模块C0283QGLC-T。该显示模块带有2.8英寸OLED显示屏并且集成OLED显示屏驱动芯片S6E63D6,S6E63D6支持intel
8080总线模式。S6E63D6与STM32F103VE的FSMC接口相连,通过将FSMC设置成16位的PSRAM控制器,结合FSMC提供的时钟信号、控制信号以及数据总线可以把S6E63D6看成外部存储器来操作。
触摸按键
选用PIC基于mTouch技术的电容触摸专用单片机PIC16F724,该单片机最多提供8个触摸按键输入。与PIC16F724相连的6个触摸按键定义为所需要的功能键。
软件设计
软件采用主从结构,程序采用C语言编写。STM32F103VE收到PIC单片机的发送的数据后,根据通信协议取出命令字和键码,然后根据键码完成相应的操作。软件基于模块化思想设计,主要包括主控制器程序和触摸按键感应程序。
主控制器程序
主控制器程序完成STM32F103VE初始化、OLED显示屏初始化、nRF24L01初始化,nRF24L01数据处理,红外数据数据处理和显示内容更新等工作。其中nRF24L01数据接收,红外数据交换,按键键码的获取是通过中断方式完成的。
触摸按键检测程序
键值判断程序包括主程序和中断服务程序。单片机上电后进入主程序先完成初始化工作(包括I/O端口、定时器、电容传感模块和USART的设置),然后开全局中断,依次查询按键标记(KeyFlag)的值,如果按键标记置位(KeyFlag的值等于1)则将按键标记清零并调用USART发送函数将相应的键码发送给主MCU(STM32F103VE)否则查询下一个按键标记直到8个按键标记查询完后进入休眠等待中断程序的到来。中断程序唤醒单片机后,先将定时器1的TMR1值读出,接下来将TMR1值与0.85倍的平均值做比较。如果TMR1的值小于0.85倍的平均值则将按键标记KeyFlag置1,接着设置成下一个触摸传感器;如果TMR1的值大于或等于0.85倍的平均值则将TMR1的值代入程式计算新的平均值,接着设置成下一个触摸传感器。最后重启定时器并退出中断服务程序。退出中断服务程序后进入主程序进行新的一次按键标记查询。程序流程图如图4所示,左图是主程序流程图,右图为中断服务程序流程图
结语
本仪器采用STM32F103VE作为主控制器,成本低,系统运行稳定,各项指标达到了技术要求。通过煤炭科学院抚顺分院的鉴定,已交付用户使用。在井下没有安装定位分站的巷道中进行的模拟营救中,营救距离达到规定的60米。