LoRaWAN介绍12 唤醒误差
“我若数点,比海沙更多; 我睡醒的时候,仍和你同在。”-- (诗篇139:17-18)
理想情况下,Gateway和End Nodes在精确的时间点完成唤醒通信,然而,晶振的误差,使End Nodes会在该“理想时刻”点徘徊。为保证唤醒通信的成功率,End Nodes需要根据晶振误差,打开一个时间窗口与Gateway“幽会”。
1 唤醒窗口
LoRaWAN的Class B规定,Gateway发送的数据帧包含8个symbols的preamble(前导码),End Nodes至少需要5个symbols的preamble来同步接收。换一句话说,Gateway和End Nodes需要5个symbols的时间窗口是重叠的,才能保证本次唤醒通信成功。
如下图所示,一次成功的唤醒通信有3个重要的参数:
RxOffset:Gateway开始发送与End Nodes最佳启动接收的时间差;
RxWindow:End Nodes开启接收的时间窗口长度;
RxError:End Nodes因晶振误差带来的时钟漂移。
2 最早与最迟时刻点
以Gateway开始发送时刻为基准,End Nodes有2个边界时间值:T_RX_early和T_RX_late,至少需要5个symbols的重叠,因此有如下公式:
T_RX_late = 3 x Tsymb (1)
T_RX_early = 5 x Tsymb – RxWindow (2)
因晶振误差导致的RxError,落在T_RX_early和T_RX_late之间,因此有公式:
T_RX_late – T_RX_early = 2 x RxError (3)
为了达到最佳唤醒成功率,EndNodes的开启接收时刻,应位于T_RX_early和T_RX_late的中心,因此有:
RxOffset = (T_RX_late + T_RX_early) / 2 (4)
在上述时间中,RxError是已知的(它依赖于晶振的固有误差和温度的变化…),需要求解的是:
RxWindow:它的值决定End Nodes开启多长时间的接收窗口;
RxOffset:它的值决定End Nodes是“提前”还是“推后”开启接收。
拿公式(1)减公式(2),结合公式(3),则有如下公式(4):
RxWindow= 2 x Tsymb + 2 x RxError (5)
拿公式(1)加公式(2),结合公式(5),则有如下公式(6):
RxOffset= 4 x Tsymb – RxWindow / 2 (6)
3 应用实例
实例1
某End Node的晶振误差在睡眠1秒后可达到+/- 1.5ms,它工作在SF7/125kHz无线条件下,试推导RxWindow和RxOffset的值。
已知RxError =1.5ms;SF7/125kHz下,Tsymb = 1ms;根据公式(5)和(6)有:
RxWindow = 2 x Tsymb + 2 x RxError = 2 x 1+ 2 x 1.5 = 5ms
RxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 1– 5 / 2 = 1.5ms
小结:该End Node应该“推迟”1.5ms开启接收,窗口时间值为5ms.
实例2
某End Node的晶振误差在睡眠1秒后可达到+/- 20ms,它工作在SF7/125kHz无线条件下,试推导RxWindow和RxOffset的值。
已知RxError = 20ms;SF7/125kHz下,Tsymb = 1ms;根据公式(5)和(6)有:
RxWindow = 2 x Tsymb + 2 x RxError = 2 x 1+ 2 x 20 = 42ms
RxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 1– 42 / 2 = -17ms
小结:该End Node应该“提前”17ms开启接收,窗口时间值为42ms.
实例3
某End Node的晶振误差在睡眠1秒后可达到+/- 20ms,它工作在SF10/125kHz无线条件下,试推导RxWindow和RxOffset的值。
已知RxError = 20ms;SF10/125kHz下,Tsymb =8.2ms;根据公式(5)和(6)有:
RxWindow = 2 x Tsymb + 2 x RxError = 2 x 8.2+ 2 x 20 = 56.4ms
考虑RxWindow需要取symbol的整数倍,且大小或等于56.4ms,有:
RxWindow = 7 x Tsymb = 7 x 8.2 = 57.4ms,
RxOffset = 4 x Tsymb – RxWindow / 2 = 4 x 8.2– 57.4 / 2 = 4.1ms
小结:该End Node应该“延迟”4.1ms开启接收,窗口时间值为57.4ms.
4 常用误差与窗口
RxError = +/- 1.5ms, BW = 125kHz | ||||
SF | Tsymb (ms) | RxOffset (ms) | RxWindow | |
Symbols | Ms | |||
7 | 1.0 | 1.5 | 5 | 5.1 |
8 | 2.0 | 3.1 | 5 | 10.2 |
9 | 4.1 | 6.1 | 5 | 20.5 |
10 | 8.2 | 12.3 | 5 | 41.0 |
11 | 16.4 | 24.6 | 5 | 81.9 |
12 | 32.8 | 49.2 | 5 | 163.8 |
RxError = +/- 20ms, BW = 125kHz | ||||
SF | Tsymb (ms) | RxOffset (ms) | RxWindow | |
Symbols | Ms | |||
7 | 1.0 | -17.0 | 42 | 42.0 |
8 | 2.0 | -14.0 | 22 | 44.0 |
9 | 4.1 | -8.2 | 12 | 49.2 |
10 | 8.2 | 4.1 | 7 | 57.4 |
11 | 16.4 | 24.6 | 5 | 82.0 |
12 | 32.8 | 49.2 | 5 | 164.0 |
下载经典的LoRaWAN资料,请链接:http://www.rimelink.com/nd.jsp?id=48&_np=107_316