一、 nRF91系列支持的模式
nRF91系列支持LTE - M、NB-IOT和GPS。
二、 GPS 服务
1、GPS的基本概念
卫星的星历数据和共享的年历数据:
- 星历数据:提供了发射它的卫星的轨道信息。这些数据在四小时内有效,之后就会变得不准确。
- 年历数据:为每个卫星在星座中提供粗略的轨道和状态信息。每个卫星都会广播所有卫星的年历数据。
- 接收器的时钟偏差:GPS接收器内部时钟与GPS卫星的原子时钟之间的时间差,由于GPS接收器通常使用的是晶体振荡器,其精度远低于卫星上的原子时钟,因此会存在一定的时钟偏差。
所以,在寻找GNSS定位时,有四个未知数 - 纬度、经度、海拔和时钟偏差。这就导致了需要解决一个有四个未知数的方程系统,因此至少需要追踪四颗卫星才能获得定位。
图:GPS的定位原理
卫星的信噪比(Carrier-to-Noise Density Ratio)是衡量卫星信号强度的一个重要指标。在GNSS接收器中,通常认为当信噪比大于30 dB/Hz(对应的cn0
值为300)时,该卫星被认为是“健康”的,可以用于定位计算。
如何看懂GPS数据呢?
GPS数据通常以NMEA(National Marine Electronics Association)格式进行传输。NMEA是一种ASCII表示的GNSS数据,是所有GPS制造商支持的标准数据格式。它具有标准化的消息结构,以下是nRF9160支持的所有NMEA消息及其包含的内容:
- NMEA GGA – 全球定位系统修复数据
- NMEA GLL – 地理位置
- NMEA GSA – GNSS DOP和活动卫星
- NMEA GSV – 视野中的卫星
- NMEA RMC – 推荐的最小特定GNS数据
例如: $GPGGA,123519,4807.038,N,01131.000,E,1,08,0.9,545.4,M,46.9,M,,*47
对上面的NMEA,可以如下理解:
- "latitude": 37.7749,
- "longitude": -122.4194,
- "altitude": 50.0, // Altitude in meters above sea level
- "velocity":
- "horizontal": 20.0, // Horizontal velocity in meters per second
- "vertical": -5.0 // Vertical velocity in meters per second (negative indicates descent)
- "timestamp": "2024-02-20T10:54:32Z" // UTC timestamp
图:NRF91xx GPS的主要性能
2、GPS 的定位模式
(1) single shot 模式
Single shot 模式就是GPS定位一次后,modem进入sleep模式。GPS定位时间,也被称为首次定位时间(Time to First Fix,TTFF),主要取决于以下几个因素:
- 冷启动: GNSS在长时间断电的情况下,对时间、当前位置或者卫星轨道需要重启计算。
- 热启动:时间、当前位置或者卫星轨道存在本地,只需搜星就可以快速定位。
- 温启动(warm start):GNSS距离上次定位时间不长,对时间,当前位置和卫星轨道有粗略的估算。
要启用Single Shot模式,需要将间隔设置为0,超时时间参数为非零。那么如果没有产生有效的PVT,GNSS将在超时时间结束后停止。如果超时时间参数设置为零,GNSS将被允许无限期运行,直到产生有效的PVT估计。
以下是如何在代码中设置Single Shot模式的示例:
err = nrf_modem_gnss_fix_interval_set(0);
...
err = nrf_modem_gnss_fix_retry_set(180);
在这个例子中,GNSS被设置为Single Shot模式,并且如果在180秒内没有产生有效的PVT估计,它将停止运行。
(2) 周期性定位模式(Positioning fix in interval)
其中GNSS接收器在设定的时间间隔内重复产生位置、速度和时间(PVT)。在每个定位间隔之后,GNSS接收器会自动关闭以节省电源,然后在下一个定位间隔开始时自动重新启动。要启用周期性定位模式,需要设置一个大于0的定位间隔和定位延时参数。如果定位延时参数为非零,那么如果在定位延时时间内没有产生有效的PVT,GNSS将在定位延时时间结束后停止,以达到省电的目的。如果定位延时时间参数设置为零,GNSS将被允许在整个定位周期间隔内运行。
以下是如何在代码中设置周期性定位模式的示例:
err = nrf_modem_gnss_fix_interval_set(600);
...
err = nrf_modem_gnss_fix_retry_set(0);
在这个例子中,GNSS被设置为周期性定位模式,每10分钟(600秒)产生一次有效的PVT估计。如果在10分钟内没有产生有效的PVT估计,GNSS将继续运行,直到产生有效的PVT估计。
(3) 持续定位模式 (Continuously positioning)
在GPS定位中,持续定位模式是一种操作模式,其中GNSS接收器会持续运行并以1Hz的频率产生位置、速度和时间(PVT)估计。在此模式下,超时参数即使设置为非零值也不会产生任何效果。
要启用持续定位模式,需要将修复间隔设置为1。以下是如何在代码中设置持续定位模式的示例:
err = nrf_modem_gnss_fix_interval_set(1);
...
err = nrf_modem_gnss_fix_retry_set(0);
在这个例子中,GNSS被设置为持续定位模式,并且会持续产生PVT估计,无论是否成功。
3、LTE与GPS共存
GPS和LTE在 NRF91中,是时分复用的模式,LTE活动具有更高的优先级。GPS通常工作在以下几种情况:
(1) eDRX的sleep状态下
eDRX的周期需要设置一定大小,GPS才能正常工作,否则GPS可能会被LTE事件打断。
eDRX模式是一种低功耗模式,允许设备在不断开网络连接的情况下进入低功耗状态。在eDRX模式下,设备会在预定的时间窗口(eDRX周期)内唤醒并监听网络,其余时间则处于休眠状态。这种模式可以显著降低设备的功耗,但可能会影响GPS的性能,因为GPS需要在LTE不活动的时间窗口内运行。
如果eDRX周期过短(例如10.24秒),可能会很难在没有实施辅助GPS增强功能(如A-GPS或P-GPS)的情况下获得有效的定位。对于冷启动,GNSS接收器需要在eDRX间隔之间下载所有的卫星数据,当所有数据都下载完毕后,它才能开始尝试获得有效的定位。所以要根据实际的应用场景设定eDRX的周期。
如下图例中,eDRX的周期为40.96秒,GPS在热启动中TTFF为1~2秒左右。
图:eDRX下的GPS工作
(2) PSM 模式下
类似eDRX模式,LTE相对于GPS有更高的优先级。在PSM模式下,绝大部分时间内,LTE是休眠状态,此时GPS就可以正常工作。
图:PSM下的GPS工作
(3) LTE disable的模式下
当LTE没有被开启时,GPS可以独立占用时间,正常工作。
4、辅助定位
(1)A-GPS和P-PGS
A-GPS辅助全球定位系统(A-GNSS)是它通过网络连接(例如,通过蜂窝网络)来获取星历和历书数据,从而缩短首次定位时间(TTFF)。与使用GNSS卫星的数据链路相比,连接到具有星历和历书数据的互联网服务器的速度要快得多。
A-GNSS还提供了电离层校正数据,这可以提高定位精度。电离层校正使GNSS能够估计每颗卫星的电离层延迟,使位置数据更准确。
图:A-GPS数据流程图
(2)P-PGS
P-GPS即预测GPS, 设备可以下载长达两周的预测卫星星历数据, P-GPS使设备能够确定卫星的精确轨道位置,而无需每两小时连接一次网络,但随着时间的推移,计算位置的准确性会降低。请注意,P-GPS需要比常规A-GPS更多的储存。在P-GPS中,nRF Cloud提供包含32个GPS卫星预计轨道(星历)信息的数据,长达两周。每组星历数据适用于特定的四小时时段。P-GPS设计用于经常与云断开连接但需要进行周期性定位,以节省电力的设备。
Nordicsemi nRFCloud提供了A-GPS, P-GPS服务,从省电角度和定位的精度相比,请参考如下图。
图:不同定位方式的比较
图:比较不同定位模式的的精度与功耗
三、 LTE
低功耗网络模式有以下几种
图:超低功耗的制式
NB-IOT 和CAT-M 的性能参数如下:
图:LTE-M与NB-IOT性能比较
1. LTE-M 省电模式
LTE-M,也被称为Cat-M1,是一种开放标准,最适合需要低功耗、低延迟和/或移动性的中等吞吐量应用,如资产跟踪、可穿戴设备、医疗、POS和家庭安全应用。主要包括c-DRX, i-DRX, e-DRX和PSM等几种省电模式。
图:在网络中设备状态图
(1)c-DRX
在RRC连接模式下,数据传输后,用户设备(UE)会保持在RRC连接模式,直到inactive timer超时,在这个期间成为i-DRX状态,在此期间,UE可以短暂关闭其无线电,而不是持续监听,而是以间隔方式监听网络。
图:c-DRX的网络时序图
(2)i-DRX
在RRC空闲模式下,用户设备(UE)不频繁监听网络,因此它会关闭其射频以节省电力,并在特定的间隔内监听传入的下行消息。这被称为空闲模式DRX(iDRX),是一种基本的省电功能。
iDRX模式下的功耗:
图:nRF9160的iDRX功耗
(3)e-DRX
延长iDRX周期是一个让用户设备(UE)睡眠更长时间并节省更多功耗,这就是eDRX的目的,它通过延长DRX周期进一步减少UE的唤醒时间。
在eDRX周期内,UE可以更少地监视来自网络的下行寻呼消息,从而通过不定期打开其射频来省电。UE仍然附着并注册到网络;
下图显示了eDRX连接状态的两种不同场景。在左边,UE唤醒以监视没有任何消息的寻呼消息。在右边,UE唤醒以响应需要数据传输的寻呼事件。因此,UE切换到RRC连接模式进行所需的数据传输。然后它开始RRC不活动计时器。如果在RRC不活动计时器耗尽之前,UE没有收到更多的消息,UE将转换到RRC空闲模式并再次在eDRX中运行。
图:eDRX模式下的网络时序图
eDRX在不同配置下,实际网络中的测试结果。
图:Cat-M 模式下,PTW = 1.28s , eDRX = 81.92s 功耗
(4)RAI
如前所述,无论实施了哪种省电技术,用户设备(UE)在RRC连接模式下总是会进行数据传输,然后等待一个RRC不活动计时器周期(inactive timer),然后进入RRC空闲模式。
网络决定RRC不活动计时器周期,UE无法协商。因此,如果这个计时器值很长,它可能会在等待切换到RRC空闲模式时不必要地增加电力消耗。这个计时器可以持续5秒,或者最坏的情况下,长达60秒,如果UE需要在每次处于RRC连接模式时额外开启无线电60秒,这可能会严重降低电池寿命。
AS-RAI赋予UE通知网络它已经完成数据传输(没有更多的上行数据)的能力,并请求网络释放无线电资源(RRC释放),从而允许UE更早地转入RRC空闲模式。这意味着UE跳过了从网络监控寻呼消息的期间(RRC不活动计时器)。
这对功耗产生了巨大影响,因为如果没有使用AS-RAI,UE将需要在RRC不活动计时器的期间不必要地保持其射频开启。
AS-RAI在3GPP 14版中引入,适用于LTE-M和NB-IoT,如果得到网络的支持,它可以大大节省电力消耗。
图:没有RAI情况下,网络时序图
图:使能RAI情况下,网络时序图
在实际网络中,nRF9160的UDP的功耗测试结果:
图:RAI没有使能的情况下,在实际网络中,nRF9160的UDP的功耗测试结果
图:RAI使能的情况下,在实际网络中,nRF9160的UDP的功耗测试结果
(5)PSM
PSM (Power Saving Mode) 提升了电源节省到一个新的水平,通过将UE (User Equipment) 置入深度睡眠状态。这意味着处于PSM的UE不会像在eDRX模式下那样定期监控RX寻呼消息。相反,它会进入一个更长时间的深度睡眠。
然而,UE保持注册并附加到网络以在唤醒时便于数据传输。为了实现这一点,UE必须定期唤醒并向网络发送跟踪区域更新(TAU)。这个周期由周期性TAU计时器决定。处于PSM的UE会因为两个原因之一而唤醒,要么由周期性TAU计时器触发以发送TAU,要么由应用程序触发以发送UL消息。尽管设备可以在常规的周期性TAU间隔之外唤醒并发送UL消息,但等到下一个间隔发送UL数据更能节省电源。
UE可以与网络协商一个名为Active Timer的计时器。在RRC连接一段时间后,当RRC Inactivity Timer耗尽时,UE进入空闲模式。然而,如果启用了PSM,一旦UE处于空闲模式,Active Timer就开始计时。当Active Timer计时结束时,UE进入PSM。如果启用了eDRX,UE可以在Active Timer的时间内在eDRX模式下操作。
图:PSM下的网络时序图
在实际网络中,nRF9160的PSM功耗大概2uA, 下图是在CAT-M网络中的实测功耗。
图:nRF9160在PSM模式下功耗
四、 nRF9160的开发与设计
nRF9160的软件开发使用nRF Connect SDK,这是一个用于Bluetooth Low Energy,Wi-Fi,蜂窝物联网,Bluetooth mesh,Thread,Zigbee和Matter的通用软件开发套件。它支持所有的nRF52,nRF53,nRF70和nRF91系列无线设备。
nRF Connect SDK,包括应用层协议,外设驱动,提供了丰富的蜂窝例子。Nordicsemi也提供了Visual studio code IDE开发套件,也提供了nRFCloud的云服务。 在nRFCloud云服务中,包括定位服务(多基站,单基站,wifi,A-GPS, P-GPS)、fota服务、设备管理和数据管理等服务。除此之外,nordicsemi 也提供了抓取modem log的Celluar monitor。
图:Nordic 提供的资源
下面以跟踪器的nRF9160开发为例, 开发流程。
首先在开发板上评估产品的性能、功能,根据实际产品的应用场景,进行硬件设计。在做板之前,建议给nordic审核。
做板后,需要做硬件性能测试,包括功耗测试, 射频测试(CMW500)。在功耗测试中,可用PPK2进行功耗测试。当遇到软件或者硬件问题时,可在开发板Nrf9160DK板进行验证和评估,并可以在论坛上提交所遇到的问题。根据产品终端的目标市场,查询所需要的论证,并在官网上查询NRF9160已经过的论证。
当开发完成后进行生产中,可能需要批量烧录modem 固件、写入证书还有硬件的快速校验。Nordicsemi提供完善的生产指导,比如烘烤、产线硬件校验和批量烧录指导等服务。当样机在世界各地现网测试中,遇到问题时,可与nordic协商,寻求当地支持。
图:nRF 9160的产品开发流程
图:nRF9160 论证