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 |
您的留言或需求: