GPS传感器中数据解析电路的设计
2018-06-25贾海云
贾海云,余 庚
(1.合肥财经职业学院,安徽合肥 230601;2.福州理工学院,福建福州 350506)
随着大规模集成电路技术在航空领域的应用,无人机正以独到的优势在民用以及军用领域扮演着不可或缺的角色。比如,当前兴起的共享电动汽车和共享单车产业,出于防盗考虑,对移动目标即时导航定位越来越受到厂家的关注;当下旅游业盛行的无人航拍机等实时导航定位技术也受到消费者的青睐。解决GPS的通信问题并使导航信息更加精准可靠已然成为研究热点。GPS因可提供定位、时间、高度、速度等丰富信息而成为无人机不可或缺的部分。无人机需要数据采集模块与GPS接收机进行通信,以完成导航信息的采集,而单片机便是扮演数据采集模块的角色。本次设计的数据解析电路采用的是异步串行通信的方式,利用单片机与GPS接收机进行数据通信并解析出所导航的信息。
1 系统原理
图1 无人机GPS导航结构
图1为无人机GPS导航结构图。GPS即本次设计所指的GPS接收机传感器,PIC16F877A单片机则对应图中的导航数据采集模块。将采集的数据发送给飞控CPU,飞控CPU对数据进行分析处理后再发给地面站。地面站的数据传输模块收到信号后传给MCU模块。PC机通过RS232串行接口不断采集MCU模块数据并显示同时判断对比接收到的数据,进而实现对无人机的导航。
2 系统硬件设计
GPS通信系统在工作状态下的耗电仅50mA。本次设计采用PIC16F877A单片机[1]基于9600bps的波特率与GPS接收机进行串行通信。其电路图如图2所示。
图2 系统硬件电路图
2.1 GPS模块
GPS接收机记录GPS信号并对信号进行解调和滤波处理,还原出GPS卫星发送的导航电文,再求出信号在无人机与卫星间传播的时间和载波相位差,进而实时获得导航数据,同时还可通过两个串口与外部通信。如图3所示,串口1为主串口(对应TXA和RXA)全双工模式,串口2为辅助串口(提供修正量,对应TXB和RXB)半双工模式。通过这两个串口同外设连接,也可用软件编程或硬件设置来配置串口特性。通过软件编程配置串口的波特率为9600bps,利用串口1与单片机进行通信。其6个管脚分别为TXB、GND、RXA、TXA、VDD、RXB。将GND、VDD分别接电源地和5V电压,将TXA与单片机的RX相连,以建立GPS[2]接收机与数据采集模块间的数据通信。
图3 GPS模块图
图4 单片机模块图
2.2 单片机模块
为了使异步通信时获得更稳定的波特率9600bps,便于与GPS接收机进行数据通信,选择11.0592MHz作为晶振。端口MCLR/VPP/TWV具有系统复位功能,如图4所示。当其为低电平时系统复位,R1为上拉电阻,使单片机在正常工作时,MCLR/VPP/TWV端口为高电平。按键S1为系统的复位键,按下时MCLR/VPP/TWV端口为低电平,即对单片机进行复位操作,R1、S1为单片机复位电路。VDD、VSS管脚分别接电源的正(+5)负(GND)极。
2.3 电源模块
GPS接收机和PIC16F877A单片机的工作电压均为5V,因此本设计的电源模块采用LM7805集成稳压器,如图5所示。LM7805具有三个管脚,分别为输入端、公共端和输出端。输入端可接大于等于5V的直流电压的正极,公共端接GND,输出端便可得到稳定的5V电压。电容C3用于抵消导线传输引起的电感效应。电容C4可改善负载的瞬态响应。C4较大,在稳压器输入端断开时,C4会通过稳压器放电,易造成稳压器损坏。为此,接一只1N4007续流二极管起保护作用。电源开关锁住时电源接通,反之电源断开。LED灯是上电指示灯,当它亮时说明已上电,电源接通;反之则电源模块没有提供工作电压。
图5 电源模块图
图6 调试模块图
2.4 调试模块
PIC16F877A单片机将接收到的GPS数据进行解析后通过TX口输出到PC调试,在PC上打开串口调试工具软件即可显示无人机导航到的GPS数据,进而进行验证。如图6所示,单片机串口输出的是TTL电平,而PC的串口电平是RS232标准电平:TTL电平是逻辑“0”为0V,逻辑“1”为5V或3.3V;RS232电平是逻辑“0”为3~15V,逻辑“1”为-3~-15V。为了使两者的电平相匹配,采用MAX232电平转换芯片将TTL电平转换成RS-232电平。MAX232接上所需的外围器件:T1in脚与单片机的TX管脚相连,T1out接到串口座的第2管脚,串口座的第5管脚接电源地。
3 GPS数据解析格式
无人机需要的GPS数据有:经纬度、速度、高度、时间、可用卫星数。GPS接收机可提供$GPRMC、$GPGGA、$GPVTG等格式的GPS数据,从GPRMC数据中解析出经纬度、时间数据;从GPVTG数据中解析出速度数据(公里/小时);从GPGGA数据中解析出可用卫星数和高度数据(米),然后从PIC单片机输出三种GPS数据帧结构。
3.1 C数据帧格式
C,<1>时<2>分<3>秒,<4>,<5>度<6>分,<7>,<8>度<9>分,<10>,<11>日<12>月<13>年<14>
各数据区的含义如下:
字母C为起始标志符
<1>时间hh(GPS接收的是UTC时间。北京时间比UTC时间早8小时,此处是经过转换后的北京时间)
<2>时间mm
<3>时间ss
<4>定位状态,A=有效定位,V=无效定位
<5>纬度dd
<6>纬度mm.mmm
<7>纬度半球N(北半球)或S(南半球)
<8>经度ddd
<9>经度mm.mmm
<10>经度半球E(东经)或W(西经)
<11>日期dd
<12>日期mm
<13>日期yy
<14>回车换行
3.2 S数据帧格式
S,<1>km/h<2>
各数据区的含义如下:
<1>速度(公里/小时)
<2>回车换行
3.3 H数据帧格式
H,<1>个,<2>m<3>
各数据区的含义如下:
<1>可用卫星数
<2>高度(米)
<3>回车换行
4 系统程序设计
图7 数据解析流程图
本次设计的系统程序包括串口初始化程序、串口收发程序、数据处理程序。串口初始化程序对PIC16F877A的串口[3]通信相关寄存器进行设置。串口收发程序以9600bps的波特率接收来自GPS接收机的数据并将经过数据处理程序处理的数据以同样的波特率发送出去。数据处理程序指PIC16F877A把接收到的GPS数据进行解析,获得相应的导航数据,并以新的格式封装起来。相应流程如图7所示。
5 系统测试
本次测试点的经纬度是东经119度28分,北纬26度08分,平均海拔高度为几十米。使用轿车模拟无人机进行调试,除了无法效仿无人机变化的飞行高度外,其他数据参数的变化性均可高度模拟无人机。在轿车内将设计的电路设备与PC[4]连接后,打开串口调试工具软件,显示来自PIC16F877A单片机发送的解析后的GPS数据。分别记录同一时刻电子手表上的北京时间(精确到秒)与调试所得的北京时间(精确到0.001秒),如表1所示。
轿车加速或以某个速度匀速行驶。选取表1的时刻对轿车仪表上显示的速度值进行记录,如表2所示。调试所得数据如图8所示。
表1 时间对照表
表2 时间与行速信息表
图8 测试数据
根据表1相关数据可知,经PIC16F877A解析得到的时间与调试所用的电子手表上的实际时间相符,验证了时间的正确性。表2里的5个时刻的速度值与图8的对应时刻的速度值也非常接近,这说明PIC16F 877A单片机从GPS接收机上采集到的速度是准确的。
从图8可知,时间为11点15分43秒到11点15分53秒,调试地点的经纬度为:北纬26度01分左右;东经119度25分左右。可用卫星数为9个,海拔高度为32~38米,速度为26~31km/h。其中,时间和经纬度属于C数据,可用卫星数和海拔高度属于H数据,速度属于S数据。
根据调试地点的经纬度、海拔高度信息及表1和表2所记录的时间和速度数据,与图8所示数据进行对比,可知调试值与实际值接近。
6 结语
在电路设计中,将PIC16F877A作为数据采集模块,通过异步串行通信方式对无人机GPS导航到的信息进行数据解析。经过实地测验,将收集到的几组动态参数数据解析后与实际数值比对均保持了高度的近似,证实了本次电路设计的正确性。该解析电路的GPS数据通信技术除了应用在无人机[5]上,也可应用到任何基于空间的作业,如野外采样、物流管理、智慧交通、公安巡逻等领域。
[参考文献]
[1]王思明,张金敏,苟军年,等.单片机原理及应用系统设计[M].北京:科学出版社,2015:176-189.
[2]刘毅科.UBX协议格式的GPS原始数据解码与转换[J].全球定位系统,2016(6):80-84.
[3]孙卫喜.单片机在C语言串口通信中的应用解析[J].计算机技术与发展,2016(7):160-163.
[4]韩雁,徐煜明.微机原理与接口技术[M].北京:电子工业出版,2015:240-247.
[5]李德仁,李明.无人机遥感系统的研究进展与应用前景[J].武汉大学学报:信息科学版,2016(5):50-53.