1.吞吐量,LoRa網關的重要性能
從廣義上講,網關是連接2個不同網絡的設備。如果一個設備,它能將LoRa無線網絡和Internet連接起來,它就是一個LoRa網關。目前,大部分的LoRa網關采用SX1301基帶芯片,也有部分使用SX1276/8單信道芯片。那么,SX1301的吞吐量是SX1276/8的多少倍呢?我們一起來探討。
2.誤解1:SX1301=48個SX1276/8
有些行業朋友認為,SX1301有8通道,每個通道可以接收6個正交(速率不同,互不干擾)LoRa信號,那么,SX1301 = 8 x 6 = 48個SX1276/8。然而,這是不正確的!下文摘自《SX1301 Datasheet》Page-18IF0 to IF7 channels
它明確地說明:SX1301能同時解調的LoRa數據包不超過8個。
如果您只需要知道結果,看完上面的數字----8,就OK了,請移步。如果您和我們一樣,喜歡探尋更深層次的原因,請接著看下面的解釋。看到下面SX1301的框架圖,很快會得到2個啟發:
1)它只有8路LoRa解調器,這才是真正的瓶頸!那怕一個通道(IF0~IF7)接收了6個正交數據包,解調器也只負責處理其中一個。
2)當一個通道接收LoRa信號后,會啟動3個工作進程:數據包仲裁MCU,分配解調器給“合適”的LoRa通道;前導碼搜索引擎,查找一個LoRa數據包的起始信號;LoRa解調器,解析該LoRa數據包。
剛才談到:數據包仲裁MCU,分配解調器給“合適”的LoRa通道。那么,什么才是合適呢?這個優先級包括:接收數據包的速率,信道(IF0~IF7),射頻通道(即,2個SX1255/7,分別對應Radio A和B),接收數據包的信號強度。
數據包仲裁MCU的優先級,是由Semtech的固件決定的,用戶無法更改。這也是芯片廠商的天生優勢----制定游戲規則,限定玩家的范圍。
3.誤解2:SX1301=8個SX1276/8
那么,SX1301是否等于8個SX1276/8呢?也不正確!因為,這忽略了SX1301的ADR技術。ADR(Adaptive Data Rate,速率自適應),如下圖所示,依賴Node和SX1301-Gateway的距離:越近,Node將采用高速率;越遠,Node將采用低速率。這可以有效地提高網絡吞吐量。
4.更真實的評估
SX1301的ADR技術能提高吞吐量,要準確計算性能的提升卻比較難,因為,它依賴實際網絡中節點的物理位置分布。因為LoRa的長距離優勢,往往基于低速率,即下表的SF12=293bps;可以看出,SF10(中速率)約為低速率的3倍,SF7(高速率)約為低速率的18倍。
為此,我們提出數學統計模型。設網絡節點的位置呈正態分布(這是最符合工程實施的概率分布)。如下圖所示:68.2%屬于常態,即ADR用不上;27.2%,ADR能提高約3倍吞吐量;4.6%,ADR能提高18倍吞吐量。
這樣一來,ADR提高吞吐量為:68.2%x 1 + 27.2% x 3 + 4.6% x 18 = 232.6%
小結:運用ADR的SX1301吞吐量相當于(8 x 232.6%) = 18.6 個SX1276/8
5.實測數據平臺
以上都屬于理論的推導,接下來,我們一起看2個實測平臺。
實測1:http://rimelink.timeddd.com/st/STS.aspx?id=66
這是一個SX1278的LoRa網關,基于TDMA(時分復用)方式組網,共7個Node,上報12字節數據(溫度,濕度,露點;每個4字節,為float類型)。細心地觀察會發現,一個Node,每隔35秒才更新一次數據。這是SX1278網關的局限性,因為是單信道,Node只能分時隙使用帶寬,因此,一個節點上報的延時,會隨節點數目線性增長。
這個SX1278網關的吞吐量為:(7x 12 x 8)b / 35s = 19bps
實測2:http://lorawan.timeddd.com/demo.aspx
這是一個SX1301的LoRaWAN網關,基于FDMA(頻分復用)方式組網,共12個Node,上報12字節數據(溫度,濕度,露點;每個4字節,為float類型)。細心地觀察會發現,一個Node,每隔5秒左右更新一次數據。這是因為SX1301有8通道,允許多個Node同時上報;當然,當Node隨機選擇信道時,可能因碰撞而失敗,成功上報概率約為0.9。
這個SX1301網關的吞吐量為:(12x 12 x 8)b / 5s * 0.9 = 207bps
拿上述2種網關的吞吐量比較:207 /19 = 10.8(倍),為什么沒有達到理論上的18.6倍呢?因為基于SX1301網關的12個Node,放置在一起,沒有使用ADR技術,并且使用了最低的速率(SF12=293bps)。
fqj
評論
查看更多