1、定位模块选型指南:主流GNSS模块对比
做嵌入式定位项目,第一步就是选模块。这事儿我踩过不少坑。早些年我图便宜,随便挑了个模块就往板子上焊,结果项目交付时定位飘得离谱,最后连夜换方案,差点没赶上 deadline。所以这一章,咱们把选型这件事彻底聊透。
说白了,GNSS 模块选型就三个维度:性能够不够用、成本能不能接受、好不好开发。下面我按这个逻辑展开。
1.1 主流GNSS模块厂商概览
目前市面上能打的就三家:UBLOX、中科微、华大北斗。我个人的习惯是,高端项目用 UBLOX,性价比项目选中科微,国产替代看华大北斗。
| 厂商 | 代表型号 | 定位精度 | 冷启动时间 | 灵敏度 | 参考价格 |
|---|---|---|---|---|---|
| UBLOX | NEO-M8N / ZED-F9P | 2.5m / 0.01m(RTK) | 26s | -167dBm | ¥80~¥600 |
| 中科微 | ATGM336H / ATGM332D | 2.5m | 32s | -162dBm | ¥25~¥50 |
| 华大北斗 | HD8020 / HD8040 | 2.0m | 28s | -165dBm | ¥35~¥80 |
你可能会问,为什么 UBLOX 贵那么多?嗯,这里有个关键点:UBLOX 的固件算法和抗干扰能力确实强。我在一个无人机项目中用过 NEO-M8N,在强电磁干扰环境下依然能保持稳定输出,换成中科微的模块就偶尔会丢星。但话说回来,如果你做的是车载定位器或者共享单车,中科微完全够用,没必要多花那个钱。
1.2 核心性能参数解读
很多新手拿到模块 datasheet,看到一堆参数就懵了。其实你只需要盯住三个:灵敏度、定位精度、冷启动时间。其他的比如更新率、协议类型,按项目需求选就行。
1.2.1 灵敏度
灵敏度决定了模块在弱信号环境下能不能定位。单位是 dBm,数值越低越灵敏。比如 -167dBm 就比 -162dBm 强。
我在一个地下车库的定位项目里吃过亏。当时选了灵敏度 -160dBm 的模块,结果在地下车库深处完全搜不到星。后来换成 -165dBm 的模块,虽然还是有点飘,但至少能定位了。所以我的建议是:室内或遮挡环境,灵敏度至少 -165dBm 起步。
1.2.2 定位精度
定位精度分两种:单点定位精度和差分定位精度。单点定位就是模块自己算出来的位置,一般 2~3 米。差分定位需要基站或者星基增强,可以做到厘米级。
你想想看,如果你的项目只是显示个大概位置,2.5 米精度完全够用。但如果是自动驾驶或者精准农业,那就得上 RTK 了。我记得有个做割草机器人的客户,一开始用单点定位,结果机器人总是割到邻居家的草坪……后来换了 ZED-F9P 加 RTK,问题才解决。
1.2.3 冷启动时间
冷启动时间是指模块从完全断电到首次定位的时间。这个参数很关键,尤其是做电池供电的设备。冷启动时间越短,用户体验越好。
为什么冷启动时间有差异?说白了,模块内部有没有保存星历和历书。冷启动时模块啥都不知道,得从头下载卫星轨道数据,这个过程很慢。热启动就快得多,因为数据还在内存里。
1.3 选型决策矩阵
光看参数还不够,你得把参数和项目需求对应起来。下面这个矩阵是我自己总结的,每次选型我都会过一遍。
| 项目类型 | 推荐模块 | 关键考量 | 预算范围 |
|---|---|---|---|
| 消费级车载定位 | 中科微 ATGM336H | 成本优先,精度够用 | ¥25~¥35 |
| 工业级资产追踪 | 华大北斗 HD8020 | 国产化要求,灵敏度高 | ¥40~¥60 |
| 无人机/机器人 | UBLOX NEO-M8N | 抗干扰,稳定性 | ¥80~¥120 |
| 高精度测绘/农业 | UBLOX ZED-F9P | RTK 厘米级定位 | ¥400~¥600 |
| 共享单车/电动车 | 中科微 ATGM332D | 低功耗,小尺寸 | ¥30~¥45 |
这个矩阵不是死的。比如你做一个高端共享单车,也可以上华大北斗的模块,毕竟国产化是趋势。我的建议是:先定预算,再定性能,最后选模块。
1.4 选型流程框架图
下面这张图是我做选型时的思考路径,你可以直接拿来用。
这个流程我用了好几年,基本没出过大的选型失误。核心就是:别只看参数,一定要打样测试。我曾经在选型阶段跳过测试,直接按 datasheet 设计,结果量产时发现模块在低温环境下冷启动时间翻倍,差点造成批量召回。
1.5 选型时的几个常见坑
- 只看精度不看环境:城市峡谷、高架桥下、隧道里,精度会急剧下降。选型时一定要考虑最差场景。
- 忽略天线匹配:模块再好,天线不匹配也是白搭。我见过太多人花大价钱买 UBLOX 模块,结果配了个 10 块钱的陶瓷天线,定位效果还不如中科微。
- 不关注功耗:电池供电的项目,模块的跟踪功耗和休眠功耗比冷启动时间更重要。中科微的模块在低功耗模式下表现不错,UBLOX 的功耗控制也做得很好。
- 忘记固件升级:有些模块支持通过 UART 升级固件,有些不行。如果你的产品需要长期维护,选支持固件升级的模块会省很多事。