zoukankan      html  css  js  c++  java
  • GPS stm32 phy

    GPS时间

    https://github.com/search?l=C&q=GPS%E6%97%B6%E9%97%B4&type=Repositories

    https://www.cnblogs.com/emouse/archive/2013/05/29/3105745.html

    GPS数据读取与处理

    GPS模块简介

    SiRF芯片在2004年发布的最新的第三代芯片SiRFstar III(GSW 3.0/3.1),使得民用GPS芯片在性能方面登上了一个顶峰,灵敏度比以前的产品大为提升。这一芯片通过采用20万次/频率的相关器提高了灵敏度,冷开机/暖开机/热开机的时间分别达到42s/38s/8s,可以同时追踪20个卫星信道。是目前市场上应用最为广泛,同时性价比也非常高的一款芯片,因此在本设计中同样采用以此芯片为核心的GPS模块。

    GPS模块的数据格式

    对GPS模块的数据处理本质上还是串口通信程序设计,只是GPS模块的输出遵循固定的格式,通过字符串检索查找即可从模块发送的数据中找出需要的数据,常用的GPS模块大多采用NMEA-0183 协议。NMEA-0183 是美国国家海洋电子协会(National Marine Electronics Association)所指定的标准规格,这一标准制订所有航海电子仪器间的通讯标准,其中包含传输资料的格式以及传输资料的通讯协议。

    以下是一组正常的GPS 数据

    $GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,,,,0000*35

    $GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,,*38

    $GPVTG,0.0,T,,M,0.00,N,0.0,K*50

    下面分别对每组数据的含义进行分析。

    GPS 固定数据输出语句($GPGGA),这是一帧GPS 定位的主要数据,也是使用最广的数据。为了便于理解,下面举例说明$GPGGA语句各部分的含义。

    例:$GPGGA,082006.000,3852.9276,N,11527.4283,E,1,08,1.0,20.6,M,,,,0000*35

    其标准格式为:

    $GPGGA,(1),(2),(3),(4),(5),(6),(7),(8),(9),M,(10),M,(11),(12)*hh(CR)(LF)

    各部分所对应的含义为:

    (1) 定位UTC 时间:08 时20 分06 秒

    (2) 纬度(格式ddmm.mmmm:即dd 度,mm.mmmm 分);

    (3) N/S(北纬或南纬):北纬38 度52.9276 分;

    (4) 经度(格式dddmm.mmmm:即ddd 度,mm.mmmm 分);

    (5) E/W(东经或西经):东经115 度27.4283 分;

    (6) 质量因子(0=没有定位,1=实时GPS,2=差分GPS):1=实时GPS;

    (7) 可使用的卫星数(0~8):可使用的卫星数=08;

    (8) 水平精度因子(1.0~99.9);水平精度因子=1.0;

    (9) 天线高程(海平面,-9999.9~99999.9,单位:m);天线高程=20.6m);

    (10) 大地椭球面相对海平面的高度(-999.9~9999.9,单位:m):无;

    (11) 差分GPS 数据年龄,实时GPS 时无:无;

    (12) 差分基准站号(0000~1023),实时GPS 时无:无;

    *总和校验域;hh 总和校验数:35(CR)(LF)回车,换行。

    GPRMC(建议使用最小GPS 数据格式)

    $GPRMC,082006.000,A,3852.9276,N,11527.4283,E,0.00,0.0,261009,,*38

    $GPRMC,<1>,<2>,<3>,<4>,<5>,<6>,<7>,<8>,<9>,<10>,<11><CR><LF>

    (1) 标准定位时间(UTC time)格式:时时分分秒秒.秒秒秒(hhmmss.sss)。

    (2) 定位状态,A = 数据可用,V = 数据不可用。

    (3) 纬度,格式:度度分分.分分分分(ddmm.mmmm)。

    (4) 纬度区分,北半球(N)或南半球(S)。

    (5) 经度,格式:度度分分.分分分分。

    (6) 经度区分,东(E)半球或西(W)半球。

    (7) 相对位移速度, 0.0 至1851.8 knots

    (8) 相对位移方向,000.0 至359.9 度。实际值。

    (9) 日期,格式:日日月月年年(ddmmyy)。

    (10) 磁极变量,000.0 至180.0。

    (11) 度数。

    (12) Checksum.(检查位)

    $GPVTG 地面速度信息

    例:$GPVTG,0.0,T,,M,0.00,N,0.0,K*50

    字段0:$GPVTG,语句ID,表明该语句为Track Made Good and Ground Speed(VTG)地

    面速度信息

    字段1:运动角度,000 - 359,(前导位数不足则补0)

    字段2:T=真北参照系

    字段3:运动角度,000 - 359,(前导位数不足则补0)

    字段4:M=磁北参照系

    字段5:水平运动速度(0.00)(前导位数不足则补0)

    字段6:N=节,Knots

    字段7:水平运动速度(0.00)(前导位数不足则补0)

    字段8:K=公里/时,km/h

    字段9:校验值

    表 1 GPS模块主要参数

    GPS模块主要参数

    GPS

    芯片组

    SiRF Star III

    工作频率

    L1, 1575.42 MHz

    粗捕获码
    (C/A)率

    1.023 MHz chip rate

    同时跟踪通道数

    20

    灵敏度

    -159 dBm

    定位精度

    5m(2维均方根, 允许广域差分系统)

    最小速度

    0.1 m/s

    时间精度

    1μS(与GPS时间同步)

    默认

    坐标系

    1984年世界大地坐标系(WGS-84)

    重获时间

    0.1S(平均值)

    热启动

    1S(平均值)

    温启动

    38S(平均值)

    冷启动

    42S(平均值)

    最高工作海拔

    18km(60000feet)

    最大

    移动速率

    515m/S(1000knots)

    最大加速度

    4g

    最大

    急冲度

    20m/S3

    电源电压

    5V±0.5V

    整机电流

    约60mA,不超过100mA

    整板外形

    61mm×49mm×17mm

    GPS

    芯片外形

    27.9mm×20mm×2.9mm

    波特率

    9600bps

    数据输出格式

    SiRF二进制格式或NMEA 0183 GGA, GSA, GSV, RMC,VTG,GLL

    数据输出电平

    同时具备TTL电平和RS232电平

    数据

    输出接口

    20pin插针(TTL电平)和DB9母座
    (RS232电平)

    天线类型

    外置有源GPS天线(3.3V/5V电压可选,
    默认为3.3V)

    后备电池

    CR1220锂电池,3V,不可充电

    工作温度

    -40ºC至+85ºC

    GPS模块的应用程序设计

    GPS模块的应用程序设计主要分为两部分,第一部分为串口的设置于数据读取,第二部分为数据的分析和需要数据的提取。

    与其他的关于设备编程的方法一样,在Linux下,操作、控制串口也是通过操作起设备文件进行的。在Linux下,串口的设备文件是/dev/ttyS0或/dev/ttyS1等。因此要读写串口,我们首先要打开串口,然后根据GPS模块的配置参数对串口的波特率、校验、流控制等进行设置,这些参数设置均通过对termios结构中c_cflag的配置实现,串口配置部分函数如下:

    STM32CubeMX系列教程27:ETH

    https://www.waveshare.net/study/article-666-1.html

    https://www.stmcu.org.cn/module/forum/thread-612677-1-1.html

    mrguoguo       g1-8

  • 相关阅读:
    easyui validatebox 验证集合
    java.io.InvalidClassException: com.master.CurrentMessages; local class incompatible:
    脏读 幻读 不可重复读
    配置spring上下文
    radio checked不起作用的原因
    org.codehaus.jackson.map.JsonMappingException: No serializer found for class org.hibernate.proxy.pojo.javassist.
    [JBPM3.2]TaskNode的signal属性详解
    JBPM具体应用之decision节点的使用
    ED/EP系列1《简单介绍》
    利用内容观察者操作系统的联系人(查询,加入)
  • 原文地址:https://www.cnblogs.com/mrguoguo/p/13954306.html
Copyright © 2011-2022 走看看