搜救器系统设计
搜器系统主要由电源模块、主控制器模块、2.4GHz无线通信模块、红外通信模块、FLASH存储器模块、OLED显示模块和触摸按键模块组成,系统框图如图1所示。
系统电源
采用锂电池做为系统电源,电池充电管理芯片选用CN3083,图2所示是以500mA电流4.2V电压进行恒压充电的电路图。图2中发光二极管D5发光时表明充电正在进行,D6发光时表明充电已经结束。锂电池通过LDO芯片MD73R30向系统提供稳定的3.3V电压,该芯片有使能控制引脚CE,可以通过将图中POWER_EN置为低电平关闭MD73R30以节省电能。
主控制器
选用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,整个模块的结构简单,采用单芯片进行数据的处理。nRF24L01只要用很少的外围元件就可以进行正常的工作。无线通信模块电路主要是由nRF24L01、数字衰减器(HMC274)、天线、晶振电路组成,框图如图3所示。
在功能上,主要用于搜救器和目标识别卡之间的数据收发。nRF24L01和STM32F103VE通过SPI口进行数据交换。
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米。