資料介紹
介紹
LoRa (Lo ng Range的縮寫)是火星這一側最令人驚嘆的物聯網通信技術。隨著 Semtech 對法國公司 Cycleo 的收購,LoRa 在 2012 年嶄露頭角,作為低功耗、低成本物聯網傳感器設備的首選無線通信方法,LoRa 的人氣持續上升。
在本教程中,我們將簡要概述 LoRa 的特殊之處,并提供使用最新的 LoRa 無線電 IC SX1262 以及使用IoT.Keystone Innovator Board 發送和接收 LoRa 數據包的實踐示例。
關于 SX1262 的一些信息
SX1262 于 2018 年推出,能夠以高達 22 dBm 的功率輸出在全球所有主要的 sub-GHz ISM 頻段中運行。在 sub-GHz 頻段(例如 868 或 915 MHz)中運行是在城市室內、室外和工業環境中實現遠距離傳輸的關鍵。它有一個微控制器友好的接口,由 4 線 SPI、BUSY 信號和 RESET 線組成。固件驅動程序是開源的也很棒。
羅拉
在我們看來,LoRa 的偉大之處在于它不僅提供比傳統調制技術更遠的范圍和更強的抗干擾性,而且它以用戶友好的方式描述其操作特性。那是什么意思呢?
使用 LoRa,只需轉動 3 個參數或旋鈕即可控制傳輸范圍、數據速率和能耗等關鍵特性。如您所料,當您配置更長的范圍時,您的數據速率會下降并且能耗會增加,反之亦然。
您需要了解的主要參數是擴頻因子、帶寬和編碼率。
擴頻因子(SF)。從 SF5 到 SF12 只有 7 個級別,SF7 是中短距離設置的典型設置。隨著擴頻因子的增加,范圍增加,數據速率下降,空中時間增加(即發送數據包的時間,這會消耗更多能量)。很酷的是,這些設置中的每一個都是彼此“正交”的,這意味著您可以設置 7 個不同的發射器和接收器對,以在同一頻段同時運行而不會受到干擾!
帶寬 (BW). 這里只有 3 個主要設置:125 kHz、250 kHz 和 500 kHz,盡管對于一些非常特殊的低比特率應用,無線電將支持低至 7.81 kHz 的一些較低帶寬。應該注意的是,LoRaWAN 是一種流行的 MAC 層,在 LoRa 之上工作,僅使用 3 個帶寬 125、250 和 500 KHz。您可以通過更高的帶寬推送更多數據,從而提高有效比特率。結果,播出時間隨著能源消耗而減少。但是,您會在射程上受到一些影響。我會提到術語“比特率”在物聯網中有點用詞不當,因為許多物聯網解決方案對能夠連續發送數據不感興趣。比特率只是影響每次傳輸的空中時間(通常只在長時間睡眠期間很少發生)以節省電池電量。
編碼率(CR)。LoRa 數據包引擎將對您的數據執行“前向糾錯”編碼,以便接收方可以實際處理傳輸中的一些錯誤,而不會損壞您的數據。此功能實質上為您的數據負載增加了一些冗余。這里有 4 個可能的級別:4/5、4/6、4/7 和 4/8。這意味著對于每 4 位真實數據,LoRa 數據包引擎將創建 5、6、7 或 8 個用于傳輸。所以正如你所看到的,實際傳輸的數據量可能是你想象的兩倍。隨著編碼率的增加,您將獲得更遠的距離,因為接收器可以容忍傳輸中的更多錯誤。最常見的編碼率是最低設置 4/5。
物聯網.Keystone
我們認為 LoRa 非常酷,因此我們構建了自己的名為IoT.Keystone的硬件和固件平臺,以便輕松地將 LoRa 技術集成到低功耗物聯網傳感器設計中。
配置
在GitHub 上提供的開源固件中,我們有一個名為LoRa-Radio的應用程序,它提供對電路板及其 SX1262 無線電的命令行控制。借助IoT.Keystone創新板的“USB 記憶棒”外形,我們只需將其插入可用的 USB 端口即可。操作系統將注冊一個串行/COM 端口,我們可以將我們最喜歡的終端應用程序調整到它。確保它在 115、200 波特率 N、8、1 下工作。還要確保終端應用程序終止使用 LF(換行符)或 CR-LF 輸入的命令。這是IoT.Keystone固件描述命令所必需的。當在空行上按下回車鍵時,我們會看到這樣的提示:
#0012.4b00.18a7.f322>
玩弄
您需要兩個運行 LoRa-Radio 固件應用程序的 IoT.Keystone 板。這里我們有一個 ID為f319的節點設置為發送器,一個 ID為f322的節點設置為接收器。
我們將從在兩者上設置相同的參數開始:
選擇任意頻率 915000 kHz。從技術上講,這里可以使用任何東西,但天線系統當然會針對特定頻段進行調諧。我們的設置適用于涵蓋 902 - 928 MHz 的 915 MHz ISM 頻段。
#0012.4b00.18a7.f319> lora set freq 915000 Command OK. Radio mode=STBY_RC status=RFU
將擴展因子設置為 7。
#0012.4b00.18a7.f319> lora set sf 7 Command OK. Radio mode=STBY_RC status=RFU
然后在我們進入 RX listen 模式之前檢查當前設置:
#0012.4b00.18a7.f322> lora set frequency: 915000000 Hz bandwidth: 0 -> 125 spreading factor: SF7 coding rate: 1 -> 4/5 tx power: 20 dBm tx size: 0 bytes tx payload: [ ] tx timeout: 3000 ms preamble length: 8 symbols IQ invert: false Command OK. Radio mode=STBY_RC status=RFU
在一個節點上進入 RX偵聽模式,然后在另一個節點上重復參數設置:
#0012.4b00.18a7.f322> lora rx Running RX on freq 915000000 kHz at SF7 CR:1 BW:0 preamble:8 IQ invert:false ... Command OK. Radio mode=RX status=RFU
在另一個節點上,設置相同的 SF 后,輸入傳輸的有效負載。我們將使它成為 64 個字節,但只指定前 4 個字節 (0xA 0xB 0xC 0xD):
#0012.4b00.18a7.f319> lora set tx 64 A B C D Command OK. Radio mode=STBY_RC status=RFU
完成后,是時候發送它并查看接收者是否捕獲它了:
#0012.4b00.18a7.f319> lora tx TX 64 bytes on freq 915000000 kHz at SF7 CR:1 BW:0 PWR:20 dBm airtime:119 ms timeout:3000 ms preamble:8 IQ invert:false ... Command OK. Radio mode=TX status=RFU #0012.4b00.18a7.f319> [INFO: lora-rf ] Tx completed.
這個 64 字節的 LoRa 傳輸在 SF7、BW 0 (125 kHz) 和 CR 1 (4/5) 下花費了 119 毫秒。
如果我們查看另一個監聽節點 (ID:F322),我們會看到這條消息:
#0012.4b00.18a7.f322> [INFO: lora-rf ] RxDone: size:64 rssi:-52 snr:9 payload:[ 0A 0B 0C 0D 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ]
當功耗是設計中的一個因素時,無線電通常是功耗最高的。在這些情況下,我們希望減少無線電發射器開啟的時間。讓我們快速了解一下參數如何影響播出時間。
當我們將帶寬增加到 500 kHz 時,廣播時間會發生什么變化?當我們在 SF7 傳輸相同的 64 字節數據包時,空中時間從 119 毫秒下降到 30 毫秒,與帶寬增加成比例 (120/30 = 500/125 = 4)。
#0012.4b00.18a7.f319> lora tx TX 64 bytes on freq 915000000 kHz at SF7 CR:1 BW:2 PWR:20 dBm airtime:30 ms timeout:3000 ms preamble:8 IQ invert:false ... Command OK. Radio mode=TX status=RFU #0012.4b00.18a7.f319> [INFO: lora-rf ] Tx completed.
當我們增加擴頻因子時,廣播時間會發生什么變化?將帶寬設置回 125 kHz(與大多數 LoRaWAN 上行鏈路通道相同)并將擴頻因子設置為 10,我們發現廣播時間從 119 毫秒躍升至 699 毫秒。
TX 64 bytes on freq 915000000 kHz at SF10 CR:1 BW:0 PWR:20 dBm airtime:699 ms timeout:3000 ms preamble:8 IQ invert:false ... Command OK. Radio mode=TX status=RFU #0012.4b00.18a7.f319> [INFO: lora-rf ] Tx completed.
我們為什么要這樣做?簡而言之,增加擴頻因子只會將數據包錯誤率降低到可接受的水平。換句話說,如果您的消息沒有到達您的接收器,您可以轉動 SF 旋鈕直到它們到達為止。結果,您的廣播時間和功耗將會增加。值得注意的是,LoRaWAN,一個位于 LoRa 之上的 MAC 層,包括自動向下調整節點擴頻因子的規定。顯然,如果消息一開始就無法到達網關,那么從網絡的角度來看,就沒有什么可以拒絕的了。因此,LoRa 節點可能會在與它們交談的實體告訴它們將其調低(具有適當高的擴頻因子響應)之前,在初始消息上以更高的擴頻因子傳輸設置開始!
最后,此 LoRa-Radio 固件應用程序還可以直接訪問 SX1262 無線電寄存器,如圖所示。在 LoRa 模式下沒有很多,這是一件好事!
#0012.4b00.18a7.f319> lora reg get Content of lora registers: name address value -------------------- ------- ----- LoRa Sync Word MSB 0x0740 0x34 LoRa Sync Word LSB 0x0741 0x44 RandomNumberGen[0] 0x0819 0x08 RandomNumberGen[1] 0x081A 0xA5 RandomNumberGen[2] 0x081B 0x45 RandomNumberGen[3] 0x081C 0x49 Rx Gain 0x08AC 0x94 OCP Configuration 0x08E7 0x38 XTA trim 0x0911 0x05 XTB trim 0x0912 0x05 Command OK. Radio mode=STBY_RC status=RFU #0012.4b00.18a7.f319>
概括
借助 LoRa,您可以發送和接收少量數據——非常適合物聯網——在更遠的距離上更可靠。它有一個友好的用戶界面,描述了它在帶寬、擴頻因子和編碼率方面的主要特性。
我們剛剛談到了 LoRa 無線電通信的主要用戶界面元素,但沒有深入了解太多細節。Internet 上有許多深入研究細節的重要資源,例如比特率和廣播時間實際上是如何受到擴頻因子、帶寬和編碼率設置的影響的。
如果您有興趣,我們正在使用的這款IoT.Keystone板還在相同的 sub-GHz 頻段提供支持 IPv6 的網狀網絡,但使用不同的、標準化的和非專有的調制技術 (FSK) 以獲得更高的比特率命令和控制應用程序。還有一些板載傳感器用于測試 IoT.Keystone 使用 LoRa+LoRaWAN 或 6LoWPAN 的完整傳感器到云功能。
?
- 數據包的生命周期 0次下載
- 基于RIOT OS的LoRa信號的被動數據包嗅探應用程序
- 在MCU中,如何實現串口的不定長數據包接收?
- 訪問數據庫必備工具包labSQL數據包下載 153次下載
- 基于弱狀態下車載網數據包傳輸算法 0次下載
- Netfilter架構下數據包信息存儲的應用_吳良敏 0次下載
- 基于數據包長度的網絡隱蔽通道
- 移動IPV6在改進數據包發送路徑模型下性能分析 35次下載
- 深度數據包檢測技術研究 31次下載
- 高速數據包處理硬件加速技術 0次下載
- 基于FPGA的IPV6數據包的拆裝
- 基于Jpcap的數據包捕獲器的設計與實現
- 網絡數據包捕獲機制研究
- 以太網數據包捕獲與轉發技術
- 基于數據包標記的偽造IP DDoS攻擊防御
- 二代LoRa模組CAD檢測常見異常處理 371次閱讀
- 請問高端網絡芯片如何處理數據包呢? 668次閱讀
- DPDK在AI驅動的高效數據包處理應用 997次閱讀
- Linux如何操作將數據包發送出去 1062次閱讀
- 全局數據包通信簡介 900次閱讀
- 簡述Linux系統收發網絡數據包的過程 651次閱讀
- UART接收數據和解析的常見方式 2515次閱讀
- 如何使用數據包錯誤檢查來保護您的溫度讀數 1863次閱讀
- 介紹一種基于數據包交換的互連體系結構RapidIO 1345次閱讀
- wireshark導入數據包進行分析 2156次閱讀
- 網絡數據包分析軟件wireshark的基本使用 3059次閱讀
- SRT協議的工作流程、數據包結構及Wireshark抓包分析 3552次閱讀
- 基于XC2VP20—FF896CGB0345 FPGA實現IPV6數據包的拆裝 1757次閱讀
- Lora數據包的關鍵參數分析 9774次閱讀
- Accolade推出的第三代ANIC-200Ku數據包處理功能與應用領域分析 6140次閱讀
下載排行
本周
- 1山景DSP芯片AP8248A2數據手冊
- 1.06 MB | 532次下載 | 免費
- 2RK3399完整板原理圖(支持平板,盒子VR)
- 3.28 MB | 339次下載 | 免費
- 3TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 4DFM軟件使用教程
- 0.84 MB | 295次下載 | 免費
- 5元宇宙深度解析—未來的未來-風口還是泡沫
- 6.40 MB | 227次下載 | 免費
- 6迪文DGUS開發指南
- 31.67 MB | 194次下載 | 免費
- 7元宇宙底層硬件系列報告
- 13.42 MB | 182次下載 | 免費
- 8FP5207XR-G1中文應用手冊
- 1.09 MB | 178次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33566次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6656次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537798次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420027次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191187次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多