發布日期:2022-05-25 點擊率:65
ie
LoRa Server是一個開源的LoRaWAN Server。它能完成Server最主要的任務:處理來自1個或多個GW的上行RF數據包,調度最優的GW回復下行RF數據包。
很明顯,LoRa Server基本遵循LoRaWAN對Server的4層架構,它們的對應關系如下。
loraserver
lora-app-server
lora-controller
application
LoRaWAN規定GW和NS的接口協議是JSON,而本項目使用的是MQTT格式,因此它設計了一個 lora-gateway-bridge 層,它負責JSON和MQTT的轉換。
Class | 支持 | 說明 |
A | √ | 完全支持Class-A,NS采用poll方式從AS獲取下行RF數據包,這樣可以支持最低速率下最大應用數據的發送。 |
B | – | 不支持 |
C | – | 不支持 |
支持確認報文(/confirm/iedframe)。如果是下行確認報文,LoRaServer將在隊列中緩存該數據包,直到End Node回復ACK為止。
支持ABP(Activation By Personalization)和OTAA(Over The Air Activation)。
ABP:application server提供End Node的Addr和Key給LoRa Server;
OTAA:LoRa Server回復join-accept給End Node,并通知application server.
支持ADR(Adaptive Data Rate,速率自適應),這需要End Nodes設置ADR interval和margin。
ADR interval:設置End Nodes發送多少個上行RF數據包后,重新計算速率和發射功率。
margin:調整ADR的無線信號強度余地,默認推薦值為5dB。
提供LoRa Server管理無線網絡的能力,它通過MAC命令獲取或設置End Nodes的網絡參數和射頻性能。
支持調整RX1和RX2窗口的空中速率和延時。
ABP入網模式的End Nodes有一個問題,一旦設備重啟后,FCnt的值將歸零;NS接收該報文后,會發現FCnt小于或等于上一個報文,將會拒絕接收該報文。LoRa Server解決了這個問題,它放寬了對FCnt的檢測。
目前支持的地區和頻段包括:
地區 | AS | AU | CN | CN | EU | EU | KR | RU | US |
起 | 923 | 915 | 470 | 779 | 433 | 863 | 920 | 864 | 902 |
止 | 928 | 510 | 787 | 780 | 923 | 869 | 928 |
現代服務器的環境依賴較多,特別提出的是,因為免費和UNIX文化,絕大部分服務器都部署在UNIX / Linux機器上,而非我們常見的Window。
LoRa Server的環境如下:
語言=Go
系統=Linux,已經在 Debian / Ubuntu上測試和運行;
中間件=MQTT broker、Redis datastore;
軟件=LoRa Server,需要編譯和運營。
配置上述環境是一件“繁瑣”的工作,為此,該項目強烈推薦使用Docker,打包上述應用和依賴包,生成在不同Linux平臺上可移植的容器件。
另外,applicationserver需要用戶自行實現,它與AS的API接口為“api/as/as.proto”。所有API都由基于Go語言的gRPC框架實現,包括:
api/ns/ns.proto: network-server interface
api/as/as.proto: application-server interface
api/nc/nc.proto: network-controller interface
用戶可以在啟動loraserver時,添加參數來取得不同的配置,這包括:
NetID、Band、Dwell Time、Repeater Compatibility、Redis Connection String。
下一篇: PLC、DCS、FCS三大控
上一篇: LoRaWAN介紹20 中國地