马 帅,鲍爱达,马游春,朱志斌
(1.中北大学 电子测试技术国家重点实验室,太原 030051;2.中北大学 仪器科学与动态测试教育部重点实验室,太原 030051)
在丛林、沙漠、戈壁等处往往荒无人烟,这些地区一般没有网络信号或者信号很差。而野外工作人员一旦在上述地区迷失了方向很容易陷入危险之中,这时如果没有移动通信网络信号就会使搜寻救援工作变的异常困难。同时,由于没有信号,救援队往往会采取大量人员地毯式搜寻或者直升机上肉眼定位的方式对遇险人员进行搜救,这样的搜救方式效率较低,不能在第一时间确定遇险人员的位置,从而贻误救援时间。
卫星定位系统可以用于荒野等环境恶劣条件下工作人员的遇险定位。ATK-S1216F8-BD GPS/北斗模块自身性能非常优异,该双模定位模块兼具GPS模块和北斗模块的优点。使用该模块可以将定位信息实现GPS系统和北斗系统的完美融合,不但提高了定位的精准度,同时还使定位的可靠性得到了加强,这样就具有了独特的定位优势[1]。
本文基于GPS/北斗双模定位系统和数据无线传输技术,设计了一款适合于荒野等环境恶劣条件下外出工作人员的小型报警定位装置,该装置体积小,便于携带,同时,改变基站上接收天线的增益和无线传输装置的空中速率的大小,可有效改变报警信息的传输距离,这为野外工作人员的安全提供了强有力的救助保障。
下面介绍GPS/北斗双模定位导航系统的定位原理与用户位置的解算过程。
设用户空间为(xu,yu,zu),用户时钟同系统时钟偏差的未知量为tu,将单一的伪距方程表示为:
f(xu,yu,zu,tu)
(1)
式(1)中,ρj是伪距观测值,j=1,2,3,4。将式(1)进行展开并化简掉不需要的高次项[2],可以得到方程组如下:
(2)
方程组(2)中的axi,ayi,azi表示由近似位置指向第i颗卫星的单位矢量的方向余弦,其中i=1,2,3,4。
可以解得:
Δx=H-1Δρ
(3)
由式(1)~(3)可得:
y=Hx+ε
(4)
y表示(m×1)维的向量,H表示观测矩阵,ε表示测量的误差向量,x表示用户此时的状态向量。由此可以写出GPS/北斗系统的观测方程:
yBD=HBDxBD+εBD
(5)
yGPS=HGPSxGPS+εGPS
(6)
整理后可得:
(7)
得到解为:
Δx=(HTH)-1HTΔρ
(8)
要获得更高精度的解,需要用加权最小二乘法对上述数据进行处理,故增加一个正定对称矩阵W,此为权系矩阵[3],将式(8)整理后可以得到:
Δx=(HTWH)-1HTWΔρ
(9)
此时,式(9)得到的Δx便为GPS/北斗双模导航定位系统得到的最终定位结果。
报警终端主要完成工作人员定位信息监测、无线数据传输、遇险报警、定时传输数据等功能。手持终端设置了红色报警按钮和绿色平安按钮,一旦遇到野外危险,或者遭遇了走失情况,荒野工作人员可以迅速按下红色报警按钮,此时GPS/北斗双模定位模块开始定位,并将定位信息通过LoRa无线传输模块将信息发送至附近的基站或者基站车上,基站的工作人员便可以通过手持终端发送的定位信息准确定位荒野遇险人员的位置信息,从而能迅速启动救援措施,保障荒野工作人员的生命安全。
同时,手持终端还设置了定时数据传输功能,具体实现步骤为预先启动数据无线传输模块的定时功能,将时间设置为半小时或者一小时等合适时间,荒野工作人员如果在设置时间到达时因为遭遇了瞬时的紧急情况没有及时按下绿色平安按钮,定位模块会迅速的自启动,完成信息的定位并通过LoRa模块发送至附近的基站或者基站车上,基站的工作人员同样会启动救援措施,这样更加可靠地保障了荒野工作人员的生命安全。
报警终端在硬件结构上主要由STM32F407、LoRa无线传输模块、GPS/北斗双模定位模块、LED(Light Emitting Diode)状态指示灯模块、功率放大器模块以及电源模块等重要模块[4]组成,整个系统如图1所示。
图1 报警终端原理图
报警终端的主控制器核心是STM32F407。STM32F407本身采用的先进的Cortex-M4内核具有超强的浮点运算能力,其单精度浮点运算单元兼容IEEE754标准。同时,Cortex-M4内核的DSP(Digital Signal Processing)处理指令进一步增强,对于16位DSP功能:相对CM3(Cortex-M3),CM4(Cortex-M4)只需30%~70%的指令周期;对于32位DSP功能:相对CM3,CM4只需25%~60%的指令周期。STM32F407具有196K字节的内嵌SRAM(Static Random Access Memory)的优点[5],同时它还有灵活的外部存储器借口:FSMC(Flexible Static Memory Controller)。FSMC连接到D-Bus,可以快速的获取数据。而连接到I-Bus,可以快速获取指令。当FSMC连接到S-Bus时,STM32F407可以同时访问三条总线,显著提高了总线访问的性能。
STM32F407具有极致的运行速度,它以168 MHz高速运行时可达到210DMIPS(Dhrystone Million Instructions executed Per Second)的处理能力。STM32F407具有更高级的外设,它新增了USB(Universal Serial BUS)高速OTG(On-The-Go)接口,并增强了通信接口速率,具备了更高的采样率[6]。
单片机和GPS/北斗双模定位模块、LoRa无线传输模块的连接如图2所示。
图2 单片机与各模块连接图
ATK-S1216F8-BD GPS/北斗模块本身性能非常优异,它不但体积小巧,便于携带,同时该模块的定位精度很高,而且我们还可以通过串口对该模块进行实验参数的设置便于进行不同参数的对比实验,使用起来很方便[7]。
双模定位模块相比于单模定位模块,其优点在于将两个系统精妙地融合了起来,它可以利用卫星之间的冗余信息,对两个系统的算法进一步改进。一方面它的精度高、容错性能更好。另一方面定位位置信息的可用性、可靠性都得到显著提升,所以选用ATK-S1216F8-BD GPS/北斗模块比之于选用单一的GPS模块或者北斗模块能更好地满足本文设计的报警终端的定位要求。
使用时,将GPS/北斗模块的串口连接在STM32F407开发板的串口3上面,此时需要用跳线帽短接P10的PB11(RX)和GBC_TX以及PB10(TX)和GBC_RX,并且GPS的PPS信号接在GBC_KEY信号上面。同时,我们可以通过USMART工具,设置GPS/北斗模块的刷新速率(最大支持20 Hz刷新)和时钟脉冲宽度的配置。
E22-230T30S是全新一代的LoRa无线模块,基于SEMTECH公司SX1262射频芯片的无线串口模块(UART),具有多种传输方式,工作在(220.125~236.125 MHz)频段(默认230.125 MHz),LoRa扩频技术,TTL电平输出,兼容3.3 V与5 V的I/O口电压。LoRa无线模块的抗干扰能力强,功耗更低。同时LoRa无线模块工作参数可根据环境需要进行自主设置,满足了不同条件下的传输需求。
该模块开发了全新的LoRa扩频调制技术,带来了更远的通讯距离,一般情况下有效距离可达5 km以上,比典型的射频传输模块CC1101的有效传输距离多了几倍甚至于十几倍,模块支持230 MHz电力频段,穿透绕射能力强于433 MHz,并且还支持自动中继组网功能,多级中继适用于超远距离通信,这为进一步扩大模块传输距离提供了思路[8]。所以选用LoRa无线传输模块比之于之前的射频传输模块能更好地满足本文设计的报警终端对传输距离的要求。除此之外,无线模块本身具有高效的看门狗设计,一旦发生异常,模块将自动重启,且能继续按照先前的参数设置继续工作。LoRa无线模块的电路原理如图3所示。
图3 LoRa无线模块的电路原理图
在无线通信中,功率放大器的作用非常重要,提高了功率放大器件的输出功率与效率,才能保证稳定高效地输出无线信号。
本文设计的报警终端选用Toshiba公司的2SK3078A功率晶体管作为无线传输模块的功率放大器芯片[9],在调制器产生无线信号后,接下来就由功率放大器将信号放大到足够功率,经过匹配网络,再由LoRa无线传输模块将信号发射出去。功率放大器电路如图4所示。
图4 基于2SK3078A的功率放大器电路
软件是整个系统极其重要的组成部分。设计手持终端和基站以及基站车上接收部分的硬件结构后,就要根据系统的功能进行相应的软件部分的设计。编写程序时主要根据C语言进行编写,C语言容易阅读并且和页面的交互性较强,故程序语言选择C语言。
野外的工作人员在迷失方向等危险情况下可以按下按键报警,或者遇到紧急情况由无线模块的定时功能自启动报警,在上述情况下电源开始供电,GPS/北斗双模定位模块、STM32F407、LoRa无线模块、功率放大模块同时开始工作,GPS/北斗双模定位模块迅速定位工作人员的位置信息,在STM32F407的控制下将定位信息通过LoRa无线模块传输到基站或者基站车上。基站或者基站车上的人员通过大功率的接收天线接收报警终端的位置信息,并在上位机上用串口助手解析出来,显示在屏幕上。用C语言将上述功能进行细分,并逐步地编写每一条指令,手持终端软件工作流程如图5所示。
图5 手持终端软件工作流程
编写GPS/北斗双模定位模块内部代码是软件设计部分的核心,而实现上述代码的关键是用C语言实现SkyTraF8-BD模组常用的3个配置:串口波特率配置、PPS输出脉冲宽度设置、输出频率设置。串口波特率设置,通过函数SkyTra_Cfg_Prt实现,该函数可以设置模块的波特率。PPS输出脉冲宽度设置,通过函数SkyTra_Cfg_Tp实现,可以设置脉冲宽度(1 μs~100 ms)。输出频率设置,通过函数SkyTraq_Cfg_Rate实现,该函数可以设置模块的测量输出频率,最快可以达到20 Hz的测量输出频率。最后SkyTraq_Send_Date函数,用于发送一批设置好的数据给串口3,完成对GPS模块的配置。
将这3个函数都加入USMART控制,方便开发和测试。需要注意的是,main函数初始化硬件之后,通过SkyTraq_Cfg_Rate函数判断模块是否在位,如果不在位,就要尝试去设置合适的模块波特率,直到检测到模块在位为止[10]。最后,等待串口3接收GPS/北斗数据。每次接收到GPS/北斗模块发送过来的数据,就将数据通过串口1发送给LoRa无线模块。至此,手持终端软件设计部分的GPS/北斗双模定位模块内部代码的编写原则和设计流程介绍完毕。
手持报警终端的硬件和软件程序配置完成后,就需要实地验证其功能。为了更贴近荒野工作的环境,我们安排两名测试人员拿着手持终端在中北大学二龙山里面进行走动,同时,再安排两名测试人员驾驶基站车行驶在中北大学到太原南站的公路上。
基站车上的接收天线有两根,一根为全向玻璃钢天线,其增益为8.5 dBi;另一根为定向天线,其增益为15.5 dBi。图6和图7分别为组装好的全向玻璃钢天线和定向天线。
图6 全向玻璃钢天线 图7 定向天线
设置LoRa无线模块不同的空中速率,可以取6个空中速率,分别为15.6 kbps、9.6 kbps、4.8 kbps、2.4 kbps、1.2 kbps和0.3 kbps。在无线模块不同空中速率的情况下,基站车上的两根天线接收手持终端报警信息的距离如表1所示。
表1 不同空中速率下两根天线的接收距离
由表1可知,在无线模块的空中速率一定的情况下,增益较大的定向天线接收报警信息的距离要比全向天线的要远。而在无线模块的空中速率由大变小的过程中,不论是全向天线还是定向天线,它们接收报警信息的距离均逐渐变远。虽然需要更远的接收距离,但是LoRa无线模块空中速率的大小与报警信息的时间延迟成反比,也就是说空中速率越大,基站车天线接收报警信息的距离越近,它接收信息的时间延迟越小;而空中速率越小,基站车天线接收报警信息的距离越远,它接收信息的时间延迟则越大。所以工作人员在荒野进行作业的情况下,需要根据实际情况来设置LoRa无线模块的空中速率,以及选择合适增益的接收天线,从而确保手持终端和基站或者基站车之间的精准通信。
通过测试可得手持终端工作电压是3.3~5.0 V,可工作于-40~+85℃,LoRa无线模块收发频段是220.125/236.125 MHz,首次定位时间温启动下是27 s,热启动是1 s,冷启动则是29 s,定位精度小于2.5米,导航数据格式是NMEA0183。
山林中的测试人员发出报警信息后,基站车上的测试人员接收到的报警信息包含了人员位置信息,需要对GPS/北斗双模系统中的卫星消息进行解析。以“GNGGA,095528.000,2318.1133,N,11319.7210,E”消息为例,可以知道野外遇险人员,地理位置为“北纬23.181133°东经113.197210°”,UTC(universal time coordinated)时间为9时55分28秒,如要换算成北京时间需加8小时。中北大学二龙山测试人员位置信息解析后的结果显示如图8所示。
图8 手持终端定位结果
利用GPS/北斗双模定位模块、LoRa无线模块和STM32F407,设计了一种实用性强、可靠性高的荒野工作人员遇险报警系统,并设计了手持终端和基站或者基站车上的天线接收系统,当荒野工作人员在野外迷失或者遇险时,利用手持终端能够及时通知基站或者基站车上的搜救人员,搜救人员依靠上位机显示的定位信息迅速作出响应,能够立刻对荒野工作人员进行救援。
测试结果表明,该系统设计合理、定位精准、操作方便,同时,还可以通过改变手持终端的无线模块上空中速率的大小,以及选择不同增益的接收天线,可以有效改变报警信息到基站或者基站车上的距离。总之,本文设计的荒野工作人员遇险报警系统能够有效降低野外工作人员的失踪风险,确保一定距离内荒野工作人员的生命财产安全。