一、使用sdr硬件实现8个以上信道以及所有sf lora调制信号的解调。
1、每个信道1个单独解调线程;
2、然后根据前导符的自相关性确定调制信号的扩频因子(SF);
3、先解调lora调制头(PHY头)确定编码率(cr)、crc等信息;
4、继续解调物理层负载;
二、使用sx126x/sx127x等lora射频芯片模组作为下行信道,并实现上下行信道直接的同步以满足LoRaWan下行接收窗口时间精度要求。
1、sdr创建一个解调信道作为同步信道,并根据采样数实时计算接收信号的时间(单位:微秒);
2、lora模组使用同步信道定时发送一个同步包,其中带模组的时间参数(单位:微秒);
3、sdr接收并解调出同步包后,计算出收发之间的时间差Tdiff;
4、sdr收到lora数据包后将根据采样数计算的微秒时间加上Tdiff作为时间戳上报ns服务器;
三、下行发送
1、将ns下发的lora下行数据及发送时间戳下发给lora模组;
2、lora模组根据时间戳等到指定的时间下发数据;
四、软件实现
根据上述理论方法基于rtlsdr硬件以及自己制作的模组硬件和程序实现了lorawan网关软件;
实际测试在无干扰情况下,SF7到SF11上行成功率基本上是100%,说明解调比较可靠,但是SF12解调时由于解调太耗时间会存在少量误码(1%左右)。
测试Class-A的下行成功率(终端按最高时间要求20us),成功率只能达到90%左右,判断可能是由于模组mcu时间偏差(晶振误差导致)和sdr硬件的采样误差(rtlsdr硬件采样频率不稳定)导致的。