红外通信
出于方便应用考虑,搜救器在与上位机进行数据交换时使用红外通信技术。由于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米。