产品中心
卫星导航模组
卫星通讯模组
卫星授时模组
Wi-Fi模组
蓝牙模组
天线产品
UWB模组
智慧方案
时间:2026-10-22
发布者:天工测控
浏览数:93
GPS/北斗模块是怎么定位的?从卫星信号到经纬度的 5 步

  模块不是“接收一个坐标”,而是先测出到4颗以上卫星的距离,再用法方程解出自己的经纬度、高度和时钟偏差。整个过程分五步:收信号、捕获跟踪、测伪距、解算、输出。


  第1步:卫星信号里到底有什么


  导航卫星持续向外广播无线电信号,信号上调制了三类信息:

  • 星历(Ephemeris):这颗卫星当前精确的轨道位置,用来算“卫星在哪”。

  • 历书(Almanac):所有卫星的粗略轨道,用来判断“天上大概有哪些星”。

  • 时间戳:信号发出的精确时刻,用来算“信号飞了多久”。

  模块要定位,先得知道卫星在哪、信号什么时候发出。星历和时间的有效性,直接决定了首次定位的快慢——这也是冷启动和热启动差距的来源。


  第2步:捕获与跟踪,为什么至少要4颗星


  卫星距离地面两万多公里,信号到达地面时已经非常微弱,通常低于热噪声底。模块要在噪声里把特定卫星的伪随机码“相关”出来,这个过程叫捕获;锁定之后持续跟住相位和频率,叫跟踪。

  定位解算需要解4个未知数:经度、纬度、高度、接收机时钟偏差。每颗卫星提供一个距离方程,所以至少需要4颗卫星。实际使用中,可见卫星越多,几何分布越好,解算越稳——城市高楼间只有5到6颗星时,精度和可靠性都会明显下降。

  这也是SKG122S这类模块强调“可同时跟踪40颗卫星”的原因:不是为了数字好看,而是为了在遮挡环境下仍有足够的可用星参与解算。


  第3步:测伪距,把时间换成距离


  模块测出信号从卫星到自己的传播时间,乘以光速,得到距离。但这个距离不是真实距离,因为接收机时钟不可能和卫星原子钟一样准,所以叫伪距。

  伪距里包含三类误差:卫星钟差、接收机钟差、传播路径延迟。其中接收机钟差正好作为第4个未知数,和解算一起求出来;卫星钟差可以用播发的改正数修正;传播路径延迟则是最麻烦的部分。


  第4步:解算,把4个方程解成一组坐标


  有了4颗以上卫星的伪距和卫星位置,就得到一个超定方程组。模块内部用最小二乘或卡尔曼滤波求解,输出经度、纬度、高度、速度、时间。

  解算不是一次性的:模块每秒都在重新解算,并用历史结果做平滑。这也是为什么刚定位时坐标会“跳几下”,几十秒后才稳定下来。


  第5步:输出,NMEA语句和1PPS


  解算结果通过串口按NMEA0183协议输出,常见语句包括:

  • GGA:时间、经纬度、定位质量、卫星数、海拔。

  • RMC:时间、日期、位置、速度、航向。

  • GSA:卫星使用情况与精度因子(DOP)。

  • GSV:可见卫星及其信噪比。

  需要授时的设备,还会同时输出 1PPS 秒脉冲,用作整机的时间基准。


  误差从哪来:一张图看清五类来源

 

1113


  对硬件设计的三个启示

  1.天线比模块更影响体验。 同样的模块,天线增益、驻波比、净空不同,实际精度能差出一倍。

  2.电源纹波会变成定位噪声。 GNSS 信号极弱,DC-DC 的开关噪声一旦耦合进射频前端,表现就是漂移和丢星。

  3.不要指望室内定位。 GNSS 需要天空视野,室内、地下、金属机箱内基本无法工作,这类场景要靠惯导、蓝牙或UWB补位。

  参数示例(SKG122S,开阔天空)


 228


  一句话总结:定位的本质是“用时间换距离,用距离解位置”,四颗星是下限,天线和电源决定上限。

业务

咨询

联系

电话

热线

客服