编辑: You—灰機 | 2022-11-04 |
1 目录 1.
特性参数
2 2.使用说明
3 2.1 模块引脚说明.3 2.2 模块使用说明.6 2.2.1 NMEA-0183 协议简介
6 2.2.2 模块与单片机连接.11 2.2.3 u-center 软件使用简介
11 Openjumper GPS
2 1. 特性参数 OpenJumper GPS 是一款高性能GPS定位模块.该模块特点包括: (1)模块采用 U-BLOX NEO-6M 模组,体积小巧,性能优异. (2)模块自带陶瓷天线及 MAXIM 公司 20.5dB 高增益 LNA 芯片,搜星能强. (3)模块可通过串口进行各种参数设置,并可保存在 EEPROM,使用方便. (4)模块自带 IPX 接口,可以连接各种天线,适应能力强. (5)模块兼容3.3V/5V电平,方便连接各种单片机系统. (6)模块自带可充电后备电池,可以掉电保持星历数据1. 注1:在主电源断开后,后备电池可以维持半小时左右的GPS星历数据的保存,以支持温启动或热启动, 实现快速定位. 模块通过串口与外部系统连接,串口波特率支持
4800、
9600、
19200、38400 (默认)、
57600、
115200、230400等不同速率,兼容5V/3.3V单片机系统,可以 非常方便的与您的产品进行连接. 该模块各参数如表1.1和表1.2所示: 项目 说明 接口特性 TTL,兼容3.3V/5V单片机系统 接收特性 50通道,GPS L1(1575.42Mhz) C/A 码SBAS:WAAS/EGNOS/MSAS 定位精度 2.5 mCEP (SBAS:2.0mCEP) 更新速率 最大5Hz 捕获时间 冷启动1:27S(最快) 温启动:27S 热启动:1S 捕获追踪灵敏度 -161dBm 通信协议 NMEA(默认)/UBX Binary 串口通信波特率
4800、
9600、
19200、38400(默认)、
57600、
115200、230400 工作温度 -40℃~85℃ 模块尺寸 25.5mm*31mm 表1.1 OpenJumper GPS 基本特性 注1:冷启动是指模块所有保存的GPS接收历史信息都丢失了(相当于主电源和后备电池都没电了), 这种情况下重启,称之为冷启动.温启动是指模块保存了GPS接收历史信息,但是当前可视卫星的信息和保 Openjumper GPS
3 存的信息不一致了,这样的条件下重启,称之为温启动.热启动则是指在模块保存了GPS接收历史信息 且与当前可视卫星信息一致,这样的条件下重启,称之为热启动. 项目 说明 工作电压(VCC) DC2.7V~5.0V 工作电流 45mA1 Voh VCCX2-0.4V(Min) Vol 0.4V(Max) Vih 0.7*VCC(Min) Vil 0.2*VCC(Max) TXD/RXD阻抗3 510欧表1.2 OpenJumper GPS电气特性 注1: 此电流为连续工作模式下的电流,可以选择省电模式(Power Save Mode)以节省用电. 注2: 当VCC大于3.3V时VCCX=3.3V,否则VCCX=3.3V. 注3: 模块的TXD和RXD脚内部接了510欧电阻,做输出电平兼容处理,所以在使用的时候要注意, 导线电阻不可过大(尤其是接USB转TTL串口模块的时候,如果模块的TXD、RXD上带了LED,那就会有问 题),否则可能导致通信不正常.OPENJUMPER GPS GPS模块支持多种通信波特率,通过串口进行设置, 并可以保存在模块自带的EEPROM里面,模块默认波特率为:38400(8位数据位,1位停止位,无奇偶校 验),详细的设置方法,我们会在后面的2.2.3.1节介绍. 2.使用说明 2.1模块引脚说明 OpenJumper GPS模块非常小巧(35.5mm x 25mm),模块通过5个2.54mm 间距的排针与外部连接,在模块的下方有4个安装孔,方便大家安装到自己 的设备里面,模块外观如图2.1.1所示: Openjumper GPS
4 图2.1.1 OpenJumper GPS模块外观图 图2.1.1中,从右到左,依次为模块引出的PIN1~PIN5脚,各引脚的详细描述如表 2.1.1 序号 名称 说明
1 PPS(TP) 时钟脉冲输出脚
2 RXD 模块串口接收脚 (TTL电平, 不能直接接RS232电平!) , 可接单片机的TXD
3 TXD 模块串口发送脚 (TTL电平, 不能直接接RS232电平!) , 可接单片机的RXD
4 VCC 电源(3.3V~5.0V) Openjumper GPS
5 5 GND 地表2.1.1 OpenJumper GPS模块各引脚功能描述 其中,PPS/TP引脚同时连接到了模块自带了的状态指示灯:PPS,该引 脚连接在UBLOX NEO-6M模组的TIMEPULSE端口,该端口的输出特性可以通过 程序设置. PPS指示灯 (即PPS/TP引脚) , 在默认条件下 (没经过程序设置) , 有2个状态:
1 常亮,表示模块已开始工作,但还未实现定位.
2 闪烁(100ms灭,900ms亮),表示模块已经定位成功. 这样,通过PPS指示灯,我们就可以很方便的判断模块的当前状态,方 便大家使用.另外,图2.1.1中,左上角的IPX接口,可以用来外接一个有源 天线,从而进一步提高模块的接收能力,通过外接有源天线,我们就可以把 模块放到室内,天线放到室外,实现室内定位.一般GPS有源天线都是采用 SMA接口, 我们需要准备一根IPX (IPEX) 转SMA的连接线, 从而连接OpenJumper GPS模块与天线 图2.1.2 OpenJumper GPS外接天线 Openjumper GPS
6 注:图2.1.2中是使用的的IPX的接口天线 2.2模块使用说明 OpenJumper GPS模块同外部设备的通信接口采用UART(串口)方式,输出的 GPS定位数据采用NMEA-0183协议(默认),控制协议为UBX协议(该协议的详细 介绍请看u-blox6_ReceiverDescriptionProtocolSpec_GPS.G6-SW -10018-C.pdf这个文档). 这里,我们将向大家介绍NMEA-0183协议、模块与单片机的连接方法、并结 合ublox提供的u-center软件介绍OpenJumper GPS模块的使用. 2.2.1 NMEA-0183协议简介 NMEA 0183是美国国家海洋电子协会(National Marine Electronics Association)为海用电子设备制定的标准格式.目前业已成了GPS导航设备统一 的RTCM(Radio Technical Commission for Maritime services)标准协议. NMEA-0183协议采用ASCII码来传递GPS定位信息,我们称之为帧. 帧格式形如:$aaccc,ddd,ddd,…,ddd*hh(CR)(LF) (1) $ :帧命令起始位 (2)aaccc:地址域,前两位为识别符(aa),后三位为语句名(ccc) (3)ddd…ddd:数据 (4) * :校验和前缀(也可以作为语句数据结束的标志) (5)hh:校验和(check sum),$与*之间所有字符ASCII码的校验和(各 字节做异或运算,得到校验和后,再转换16进制格式的ASCII字符) (6)(CR)(LF):帧结束,回车和换行符 NMEA-0183常用命令如表2.2.1.1所示: 序号 命令 说明 最大帧长
1 $GPGGA GPS定位信息
72 2 $GPGSA 当前卫星信息
65 3 $GPGSV 可见卫星信息
210 4 $GPRMC 推荐定位信息
70 5 $GPVTG 地面速度信息
34 6 $GPGLL 大地坐标信息
7 $GPZDA 当前时间(UTC1)信息 表2.2.1.1 NMEA-0183常用命令表 Openjumper GPS
7 注1: 即协调世界时,相当于本初子午线(0度经线)上的时间,北京时间比UTC早8个小时.接下来 我们分别介绍这些命令. 1,$GPGGA(GPS定位信息,Global Positioning System Fix Data) $GPGGA语句的基本格式如下(其中M指单位M,hh指校验和,CR和LF代 表回车换行,下同): $GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12) *hh(CR)(LF) (1) UTC时间,格式为hhmmss.ss;
(2) 纬度,格式为ddmm.mmmmm(度分格式);
(3) 纬度半球,N或S(北纬或南纬);
(4) 经度,格式为dddmm.mmmmm(度分格式);
(5) 经度半球,E或W(东经或西经);
(6) GPS状态,0=未定位,1=非差分定位,2=差分定位;
(7) 正在使用的用于定位的卫星数量(00~12) (8) HDOP水平精确度因子(0.5~99.9) (9) 海拔高度(-9999.9到9999.9米) (10) 大地水准面高度(-9999.9到9999.9米) (11) 差分时间(从最近一次接收到差分信号开始的秒数,非差分定位, 此项为空) (12) 差分参考基站标号(0000到1023,首位0也将传送,非差分定位, 此项为空) 举例如下: $GPGGA,023543.00,2308.28715,N,11322.09875,E,1,06,1.49,41.6,M, -5.3,M,,
*7D 2,$GPGSA(当前卫星信息) $GPGSA语句的基本格式如下: $GPGSA,(1),(2),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3),(3 ),(4),(5),(6)*hh(CR)(LF) (1) 模式,M = 手动,A = 自动. (2) 定位类型,1=未定位,2=2D定位,3=3D定位. Openjumper GPS
8 (3) 正在用于定位的卫星号(01~32) (4) PDOP综合位置精度因子(0.5-99.9) (5) HDOP水平精度因子1(0.5-99.9) (6) VDOP垂直精度因子(0.5-99.9) 举例如下: $GPGSA,A,3,26,02,05,29,15,21,,
,,
,,
,2.45,1.49,1.94*0E 注1: 精度因子值越小,则准确度越高. 3,$GPGSV(可见卫星数,GPS Satellites in View) $GPGSV语句的基本格式如下: $GPGSV,(1),(2),(3),(4),(5),(6),(7),...,(4),(5),(6),(7)*hh(CR)(LF)
1 GSV语句总数.
2 本句GSV的编号.
3 可见卫星的总数(00~12,前面的0也将被传输).
4 卫星编号(01~32,前面的0也将被传输).
5 卫星仰角(00~90度,前面的0也将被传输).
6 卫星方位角(000~359度,前面的0也将被传输)
7 信噪比(00~99dB,没有跟踪到卫星时为空). 注:每条GSV语句最多包括四颗卫星的信息,其他卫星的信息将在下一条$GPGSV语句中 输出. 举例如下: $GPGSV,3,1,12,02,39,117,25,04,02,127,,
05,40,036,24,08,10,052,*7E $GPGSV,3,2,12,09,35,133,,
10,01,073,,
15,72,240,22,18,05,274,*7B 4,$GPRMC(推荐定位信息,Recommended Minimum Specific GPS/Transit Data) $GPRMC语句的基本格式如下: $GPRMC,(1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12)*hh(CR)( LF) (1)UTC时间,hhmmss(时分秒) Openjumper GPS
9 (2)定位状态,A=有效定位,V=无效定位 (3)纬度ddmm.mmmmm(度分) (4)纬度半球N(北半球)或S(南半球) (5)经度dddmm.mmmmm(度分) (6)经度半球E(东经)或W(西经) (7)地面速率(000.0~999.9节) (8)地面航向(000.0~359.9度,以真北方为参考基准) (9)UTC日期,ddmmyy(日月年) (10)磁偏角(000.0~180.0度,前导位数不足则补0) (11)磁偏角方向,E(东)或W(西) (12)模式指示(A=自主定位,D=差分,E=估算,N=数据无效) 举例如下: $GPRMC,023543.00,A,2308.28715,N,11322.09875,E,0.195,,
240213,,
,A*78 5,$GPVTG(地面速度信息,Track Made Good and Ground Speed) $GPVTG语句的基本格式如下: $GPVTG,(1),T,(2),M,(3),N,(4),K,(5)*hh(CR)(LF) (1)以真北为参考基准的地面航向(000~359度,前面的0也将被传输) (2)以磁北为参考基准的地面航向(000~359度,前面的0也将被传输) (3)地面速率(000.0~999.9节,前面的0也将被传输) (4)地面速率(0000.0~1851.8公里/小时,前面的0也将被传输) (5)模式指示(A=自主定位,D=差分,E=估算,N=数据无效) 举例如下: $GPVTG,,
T,,
M,0.195,N,0.361,K,A*2A 6,$GPGLL(定位地理信息,Geographic Position) $GPGLL语句的基本格式如下 $GPGLL,(1),(2),(3),(4),(5),(6),(7)*hh(CR)(LF) (1) 纬度ddmm.mmmmm(度分) (2) 纬度半球N(北半球)或S(南半球) Openjumper GPS
10 (3) 经度dddmm.mmmmm(度分) (4) 经度半球E(东经)或W(西经) (5) UTC时间:hhmmss(时分秒) (6) 定位状态,A=有效定位,V=无效定位 (7) 模式指示(A=自主定位,D=差分,E=估算,N=数据无效) 举例如下: $GPGLL,2308.28715,N,11322.09875,E,023543.00,A,A*6A 7,$GPZDA(当前时间信息) $GPZDA语句的基本格式如下: $GPZDA,(1),(2),(3),(4), (5), (6)*hh(CR)(LF) (1) UTC时间:hhmmss(时分秒) (2) 日(3) 月(4) 年(5) 本地区域小时(NEO-6M未用到,为00) (6) 本地区域分钟(NEO-6M未用到,为00) 举例如下: $GPZDA,082710.00,16,09,2002,00,00*64 NMEA-0183协议命令帧部分就介绍到这里, 接下来我们看看NMEA-0183协议的 校验,通过前面的介绍,我们知道每一帧最后都有一个hh的校验和,该校验和是 通过计算$与*之间所有字符ASCII码的异或运算得到, 将得到的结果以ASCII字符 表示就是该校验(hh). 例如语句:$GPZDA,082710.00,16,09,2002........