1 概述
GPS (global positioning system)全球定位系统是利用美国24颗GPS地球卫星所发射的信息而进行导航、定位、授时等服务的系统。自1993年GPS系统向世界免费开放以来,得到了世界各地各行业的广泛应用。这种全球定位系统可以用于航空导航、航海导航、大地测量、石油地质勘探、地震预报、授时校准、自动校时、高程测量、时间同步、输变电工程、疏浚工程测量验收、车辆定位、车辆跟踪、车辆导向及防盗等领域。
Rockwell公司的“Jupiter”GPS/OEM接收机具有尺寸小、性能稳定等优良特征。可方便、自主地开发出各种GPS应用系统。
它具有如下特点:
●极其紧凑的GPS接收机尺寸:71mm×41mm×11mm;
●其射频输入为1575.42MHz,范围为-130dBw~-163dBw;
●具有12个并行卫星轨迹通道,能快速识别和再识别当前位置;
●支持真正的NEMA-0183数据格式;
●直接微分的RECMSC-104数据动态提供定位精确度;
●自适应门限检测,提高微弱信号的检测能力;
●其于SA的静态导航能力;
●可与过去的天线兼容,花费很小;
●3D到2D导航时能自动保持纬度;
●可以基于SPS获得最佳导航精确度;
●无初始化数据时可以自动开启冷启动程序;
●通过串行通讯,用户有很大的操作空间和配置能力;
●可接受用户通过主串口写入的初始化数据;
●具有三种启动方式:热启动、初始化、冷启动;
●用户可以选择卫星;
●用户可以选择卫星表面角;
●具有可选的RF连接头;
●最大测速可达500m/s;
●工作温度范围为-40℃~+85℃。
2 内部结构和引脚说明
图1 所示是“Jupiter”GPS/OEM接收机的内部结构图,它主要包括天线部分、接收部分、数据处理部分。这种接收器是通过两个串口与外部通讯的,串口 1为主串口,串口2为辅助串口(提供修正量)。其中,串口1为全双工方式,串口2为半双工方式。系统通过这两个串口同其外部器件或设备连接,也可以用软件编程或硬件设置来配置其串口特性。
接收数据的用户可以选择的存储方式有三种:SRAM、ROM、EEPROM。
接收机内部的一个10kHz的参考时钟输出和一个1pps(每秒一个脉冲)的时钟标输出可用来进行时钟同步,也可用于进行时钟校准。
系统可以通过RESET进行复位。
“Jupiter”GPS/OEM接收机采用20脚DIP封装,常用管脚的说明如表1所列。
表1 “Jupiter”GPS/OEM接收机主要管脚说明
管 脚 | 说 明 | 备 注 |
2 | PWRIN_5 | 5V主电源 |
5 | M_RST | 复位输入(低电平有效) |
7 | GPIO2 | NMEA协议选择 |
8 | GPIO3 | ROM缺省选择 |
11 | SDO1 | 串口1输出 |
12 | SDI1 | 串口1输入 |
15 | SDI2 | 串口2输入 |
18 | GND | 地 |
19 | TMARK | 1PPS时钟标记输出 |
20 | 10kHz | 10kHz时钟输出 |
3 数据格式和通讯设置
3.1 数据格式
“Jupiter”GPS/OEM接收机具有两种数据格式,一种是二进制方式,另一种是(也为ASCII码)方式,可通过设置GPIO2和GPIO3来选择不同的数据格式。选择不同的数据格式所对应的形式不同,消息长度和内容也不同。
二进制方式消息格式共有31种消息(其中14种输出消息,17种输入消息),每种消息必有一个消息头,且以“0xFF81”开始,数据段可选;NEMA方式消息格式共有11种消息(其中7种输出消息,4种输入消息),每种消息以“$”开头,以<CR><LF>结束。前者消息长度比后者长,后者比前者消息种类少,可根据实际需要来选择。
3.2 通讯设置
“Jupiter”GPS/OEM接收机与外设连接,用串口来进行通讯。其串口设置如表2所列。
表2 串口设置
GPIO2 | GPIO3 | 消息格式 | 主串口波特率(BPS) | 奇偶 | 数据位 | 停止位 | 存储方式 |
0 | 0 | NMEA | 4800 | 无 | 8 | 1 | ROM |
0 | 1 | NMEA | 4800 | 无 | 8 | 1 | SRAM/EEPROM |
1 | 0 | 二进制 | 9600 | 无 | 8 | 1 | ROM |
1 | 1 | 二进制 | 9600 | 无 | 8 | 1 | SRAM/EEPROM |
4 典型应用
4.1 典型电路
由于“Jupiter”GPS/OEM接收机的串口与TTL电平兼容,故可直接与单片机的串口连接,具体连接电路如图2所示。
4.2 程序流程图
程序流程图如图3所示(假定为NEMA格式,即选择GPIO2=GPIO3=0)。
4.3 初始化程序
单片机初始化主要对串口初始化,设置波特率和串口工作方式。假定选择GPIO2=GPIO3=0,可将串口初始化为,串口方式1,定时器1置方式2,波特率为4800BPS,允许接收。其初始化程序如下:
MOV SCON,#50H;
MOV TMOD,#20H;
MOV TH1,#0FAH;
MOV TL1,#0FAH;
SETB TCON.6;
SETB EA;
SETB ES;
4.4 中断服务程序
单片机可以采用中断方式接收GPS消息,收到中断后,为了挑选出有用的消息,可以先进行消息头识别。不同消息具有不同的消息头,可根据需要来选择,如RMC消息格式为:
$GPRMC,hhmmss.ss,a,llll.ll,a,yyyyy.yy,a,x.x,x.x,xxxxxx,x.x,a*hh<CR><LF>
例如,接收到的消息如下:
$GPRMC,185203,A,3339.7332,N,11751.7589,W,0.000,121.7,160496,13.8,E*55<CR><LF>
此消息共分13个部分,前面为消息头,接着是时间,经纬度,速度,高度,日期等消息。可以先判定消息头是否正确,然后再接收,既可局部接收某个量,也可全部接收下来再选择所需参量。
识别消息头程序如下:
JB 21H.5,WORD6;
JB 21H.4,WORD5;
JB 21H.3,WORD4;
JB 21H.2,WORD3;
JB 21H.1,WORD2;
JB 21H.0,WORD1;
CJNE A,#24H,WORDCLR;
SETB 21H.0; ;识别“$”
SJMP ENDT;
WORD1:CJNE A,#47H,WORDCLR;
SETB 21H.1; ;识别“G”
SJMP ENDT;
WORD2:CJNE A,#50H,WORDCLR;
SETB 21H.2; ;识别“P”
SJMP ENDT;
WORD3:CJNE A,#52H,WORDCLR;
SETB 21H.3; 识别“R”
SJMP ENDT;
WORD4:CJNE A,#4DH,WORDCLR;
SETB 21H.4; ;识别“M”
SJMP ENDT;
WORD5:CJNE A,#43H,WORDCLR;
SETB 21H.5; ;识别“C”
SJMP ENDT;
WORD6;
......;数据接收与处理程序
WORDCLR:MOV 21H,#00H;
ENDT:RETI;
5 结束语
“Jupiter”GPS/OEM接收机具有较高的准确度。由于城市的高层建筑比较多,信号多径传输明显,因而没有顶盖或运动的运动媒体上运行效果很好。城市有些高层方位会出现接收盲区(很小范围),使用时应该注意。
这种GPS接收电路可以由硬件来设定模式,部分参数还可通过主串口送到接收电路进行设定,操作方便、灵活。本文介绍的电路及设定参数都经过了实践检验,数据接收稳定,误差小。