一、问题现象
客户产线上,10台样品逐台测试,首次定位全部小于5秒,报告看起来非常漂亮。但出货后,终端用户反馈:约5台里就有1台,上电后要等40多秒才能输出位置。
客户第一反应是GNSS模组批次一致性问题:同一批货,为什么有的快、有的慢?
我们介入后,先排除模组:同一批次模组在标准环境下裸板复测,TTFF分布一致,没有离群点。问题不在模组本身,而在集成方式和测试判据。根因可以归结为一句话:
冷启动、温启动、热启动是三种不同的物理过程,产线和现场给设备的"前提条件"不同。
二、冷/温/热启动的判定与典型TTFF
GNSS定位依赖四类信息:星历、历书、时间、位置。启动模式主要由星历和历书是否有效决定:
-
星历有效:热启动;
-
星历无效、历书有效:温启动;
-
星历和历书都无效:冷启动。
典型TTFF如下:
| 启动模式 | 星历 | 历书 | 时间 | 位置 | 典型TTFF |
|---|---|---|---|---|---|
| 冷启动 | 无 | 无 | 无/不准 | 未知 | 20--40 s |
| 温启动 | 无 | 有 | 有 | 有 | 10--20 s |
| 热启动 | 有 | 有 | 有 | 有 | 1--5 s |
实践中常被低估的有两点:
1. 星历有效期很短。
星历最佳精度通常约2小时,不同厂商固件策略不同,一般2--4小时。设备深度休眠超过该窗口后,热启动性能会下降,可能退化为温启动;如果主电源和备份电池都被切断,星历、历书、时间、位置全部丢失,上电就只能冷启动。
2. 时间和位置不是"可选的辅助",而是搜索的前提。
只有知道大致位置和卫星轨道数据,接收机才能计算当前可见卫星,并预测每颗卫星的多普勒频移,把二维的码相位/频率搜索空间压缩到可处理范围。缺少任一条件,接收机只能全天空、全频段搜索,耗时不是线性增加,而是跳变式上升。
三、为什么产线"全过",现场却"翻车"
产线测试时,测试工具还连着,时间和位置正确,设备实际处于热启动。到了最终用户手里,这些前提条件缺失或过期,行为自然完全不同。
因此,一份只写"TTFF ≤ 5 s"、不标注启动模式的测试报告,严格来说既不可复现,也不可比较。这个案例的触发点正是如此:不是模组一致性有问题,而是测试判据没有按启动模式区分结果。
四、现场TTFF偏大的根因,按频率排序
结合该案例和售后支持经验,实际产品中TTFF升高通常集中在以下几类:
1. 星历过期(最常见)
设备从产线到用户手里可能闲置2--3周,其中部分时间断电,星历早已过期。更常见的是:深度休眠超过星历有效期后,固件仍按热启动条件处理,没有降级,UI一直显示"定位中"。这类问题不需要硬件缺陷,时间流逝本身就能触发,占我们案例中最大比例。
2. 产线注入的位置离实际部署地太远
产线工位写入的是工厂坐标,设备却卖到几千公里外。接收机按错误位置计算可见卫星,优先搜索的卫星和频率与当前天空不匹配,浪费一轮搜索后才回退到全天空扫描。
存在但错误的位置,比没有位置更糟。
没有位置时,接收机会直接走全天空策略,不会走错路。跨地区、跨国出货的产品尤其要注意。
3. RTC累计时间误差
断电期间RTC维持时间。普通32.768 kHz晶振的±20--50 ppm误差,折算约每天2--4秒;闲置一个月,累计误差可达分钟级,低温下偏差更大。一旦时间误差超过多普勒预测可覆盖的范围,预测失效,接收机仍会回退到宽范围搜索。这就是典型的"工厂明明注入过时间,为什么又慢了?"
4. 定位时信号差
产线测试通常在开阔天空工位进行。整机合壳、天线安装、装车后,整体C/N0基线可能下降5--10 dB-Hz;再叠加树荫或地下车库入口,信号接近捕获门限,就会反复"捕获→失败→重试",拉长TTFF。此时模组本身不差,是产品RF环境吃掉了指标,而产线测试环境根本看不出来。
5. A-GNSS辅助数据不可用(辅助类产品)
工厂有网络,现场网络差异很大,有些还是专线。如果辅助数据下载超时,接收机会回退冷启动;如果回退路径没有超时保护,UI可能一直等待。产线和现场网络不同,这类问题几乎必然出现。
补充说明:VBAT在换电池或掉电时跌到0、RTC一并丢失,这类属于硬件缺陷。常规产线操作(换电池、掉电测试)几乎每次都能抓到,不是典型现场问题,因此不列入上面的频率排序。固件强制上电冷启动也是同样逻辑,一次产线测试就会暴露。
五、推荐排查SOP
-
检查休眠时长和星历时间戳,确认是否超过有效期。
-
对比断电前后时间戳,评估RTC误差,包括低温条件。
-
对比产线注入位置和实际部署位置,确认位置信息是否仍有效。
-
抓取首次定位前30秒的C/N0曲线和捕获重试日志,确认信号余量。
-
检查辅助数据时间戳和下载日志,确认有效期覆盖上电时刻。
-
用示波器看VBAT上电和复位波形,排除备份域塌陷(常规项,多数产线测试已覆盖)。
-
控制实验:向模组写入准确UTC时间和现场坐标,重启,观察TTFF变化。
第7项是决定性实验。如果注入时间和位置后,TTFF从40秒降到5秒,天线和RF链路立即被排除,问题必然是启动状态信息缺失;然后按1--5逐项排查。本案例中,该实验3分钟就定位到根因。
这类问题不能靠猜,需要能一次隔离一个变量的测试序列。
六、出货前整改建议
-
产线注入时间和坐标,并保证坐标有效:写入准确UTC时间和工位坐标,可让每台出货设备至少达到温启动,只需修改治具脚本。但坐标只对单一区域发货有效;跨区域发货建议只注入时间,并让固件自动作废长时间未更新的位置。错误位置比没有位置代价更高。
-
启动时自检时间有效性:对比RTC与标准时间的误差,超过阈值直接规划冷启动搜索,不要用错误时间跑多普勒预测,浪费搜索资源。存储时间未知的产品,可使用温度补偿RTC或网络同步时间。
-
整机装配后做RF基线验收:合壳、装天线后重新测量C/N0基线,和裸板状态对比,设置最低验收阈值,在出货前拦截"现场信号差"问题。开阔天空工位通过,不代表整机通过。
-
在现网条件下验证A-GNSS链路:下载失败要有超时保护和冷启动回退,应用层不能无限等待。产线网络和客户现场网络必须分别验证。
-
掉电类硬件异常交给常规产线测试:换电池、深度放电下的RTC/星历保持,已有常规操作覆盖;设计评审时检查参考设计中的VBAT保持电路即可,不必作为调试优先项。
-
修订验收标准:冷启动、温启动、热启动分开报告,并按P95判定,而不是看均值。均值会出现"5台好、1台坏,平均仍合格",把坏样本隐藏掉。
七、总结
这个案例不是模组批次一致性问题,而是启动条件不同导致的现场表现差异。产线看到的是热启动,用户拿到的是冷启动或温启动;如果测试报告不区分启动模式,TTFF数字就失去工程意义。
对GNSS产品来说,规格只有和测试条件一起发布,才具备工程意义。