什么是LoRa調制
LoRa(Long Range,遠距離)是一種調制技術,與同類技術相比,提供更長的通信距離。調制是基于擴頻技術,線性調制擴頻(CSS)的一個變種,具有前向糾錯(FEC)。
LoRa顯著地提高了接受靈敏度,與其它擴頻技術一樣,使用了整個信道帶寬廣播一個信號,從而使信道噪聲和由于使用低成本晶振而引起頻率偏移的不敏感性更健壯。
LoRa 可以調制信號 19.5dB 低于底噪聲,而大多數頻移鍵控(FSK)在底噪聲上需
要一個 8-10dB 的信號功率才可以正確調制。
LoRa調制是物理層(PHY),可為不同協議和不同網絡架構所用-Mesh、Start、點對點等等。
LoRa網關
LoRa網關設計用于遠距離星型架構,并運用在LoRaWAN系統中。
他們是多信道、多調制收發、可多信道同時解調、由于LoRa的特性甚至可以同一信道上同時多信號解調。
網關使用不同于終端節點的RF器件,具有更高的容量,作為一個透明橋在終端設備和中心網絡服務器間中繼消息。
網關通過標準IP連接到網絡服務器,終端設備使用單跳的無線通信到一個或多個網關。
所有終端節點的通信一般都是雙向的,但還支持如組播功能操作,軟件升級,無線傳輸或其他大批量發布消息,這樣就減少了無線通信時間。根據要求的容量和安裝位置(家庭或塔),有不同的網關版本。
LoRa集中器是什么?
網關和集中器這兩個術語都有在使用,但在LoRa系統中他們是等效的部件。
LoRa處理干擾怎么樣
LoRa調制解調器對同信道GMSK干擾抑制可達19.5dB,換句話說,它可以接受低于干擾信號或低噪聲的信號。
因為擁有這么強的抗干擾性,所以 LoRaTM 調制系統不僅可以用于頻譜使用率較高的頻段,也可以用于混合通訊網絡,以便在網絡中原有的調制方案失敗時擴大覆蓋范圍。
LoRa數據速率
LoRa 定義了一組特定的數據速率,但終端芯片或 PHY 是可以有多種選項。SX1272 支持數據速率從 0.3到 37.5kbps,SX1276 支持 0.018 到 37.5kbps。
LoRa終端節點
LoRa終端節點是LoRa網絡的部分,進行感應或控制。
他們在遠程電池供電。
這些終端節點使用LoRa私有協議與LoRa網關建立通信。
自適應數據速率(ADR)
ADR是一種方法,改變實際的數據速率以確保可靠的數據包傳送,最優的網絡性能,容量的規模。
例如,靠近網關的節點使用較高的數據速率(縮短傳輸時間)和較低的輸出功率。只有在鏈路預算非常邊緣的節點才能使用最低的數據速率和最大的輸出功率。
ADR方法可以適應網絡基礎設施的變化,支持變化的路徑損耗。
為使中斷設備的電池壽命和總體網絡容量最大化,LoRa網絡基礎設施通過實現ADR對每個終端設備的數據速率和RF輸出分別進行管理。
碰撞丟包
在LoRa調制技術中,同一時刻不同節點給同一集中器或主機的同一通道發送數據會造成碰撞丟包,避免此問題的方式是做分時處理然后增加多通道來緩解壓力從而提高效率。
Ra-06如何進行組網?
模塊通過AT指令設置其類型,申請入網成功后,變可與網關通信。
另外模塊在class B模式下還可與網關同步。
Ra-06模塊實現點對點通信的要求
兩通信模塊的頻率,空中等級速率要想通,發送模塊的目標節點地址須為接收模塊的本地節點地址。
Ra-06與Ra-01,Ra-02最大的區別
Ra-06是帶MCU的模組(同一模組上含有127X射頻芯片和主控MCU芯片),此MCU內含有LoRa驅動固件,可以直接進行AT設置參數并進行數據透傳;Ra-01和Ra-02是SPI硬件模塊(模塊時只有一片12x射頻芯片),需要用戶自己寫LoRa驅動程序。
當兩個LoRa模塊不能相互通信時,故障檢測的步驟是什么?
先檢查SPI通信是否成功,成功的標志是讀取芯片的Version值是0x12,DIO0引腳負責通知MCU接收完成,檢查DIO0引腳配置是否正常。
LoRa的配置參數要一致,包括頻率、擴頻因子、帶寬、編碼率,前導碼長度、跳頻使能、同步自、低速率優化,以上參數有一個不同就無法通信。
LoRa網關,集中器,節點
LoRa網關:將多個節點或者集中器的LoRa數據轉換為其它信號數據并且進行收發的設備。
集中器:將多個節點的數據收集,集中發送給網關和下發網關數據的設備,具有分擔網關數據壓力和中繼的功能。
節點設備:節點設備又稱為終端設備。
LoRa網關的容量?一個網關可以連接多少個節點?
容量是在一定時間內節接受數據包數量的一個結果。一個 SX1301 有 8 個通道,使用
LoRaWAN 協議每天可以接受接近 150 萬包數據。因此,如果你的應用每小時發送一個包,那么一個 SX1301
網關可以處理大約 62500 個終端設備。
LoRa私有網關和LoRaWAN網關的區別
LoRa私有網關指對應客戶私有服務器或者私有云開發的網關,走的自定義的加密及通信協議,只適用于對應協議及加密開發的節點模塊,并且無法接入走LoRaWAN標準的物聯網平臺;
LoRaWAN 網關 L 聯盟制定的通信標準,只要符合此標準開發的網關設備都可以接入走 LoRaWAN 標準的物聯網平臺,也能對接走此標準開發
的節點設備。
LoRa設備可以頻繁地在FSK和LoRa調制之間改變模式
LoRa 模塊低功耗模式是怎樣實現的?
一種基于LoRa無線模塊的低功耗無線網絡的實現方法,該無線網絡由發送源及多個節點組成,每一個LoRa無線模塊自行維護一個計時器,節點進入休眠模式時,計時器開始計時;到達計時器預設時間后,節點被喚醒并進入CAD檢測模式;節點在CAD模式下檢測信號,如果檢測到信號進入工作模式,執行下一步,如果沒有信號則進入休眠模式;節點根據接收到的數據判斷出該信號是否是發給自己的,如果是則進入正常數據接收模式,完成與發送源的數據交互;否則,節點重新設置計時器的休眠時間后,進入休眠模式。
本發明利用LoRa無線模塊CAD模式下能耗低的特點,對接收到的數據進行判斷分析來切換工作狀態,從而實現低功耗的目的。
怎樣把LoRa終端功耗降到極致?
硬件方面:
- 選用低功耗器件終端,MCU選用STM8L151C8T6,它屬于超低功耗,不帶RTC休眠為400nA,帶RTC休眠為1.4uA。
- 終端射頻芯片選用SX1278,在休眠模式下,該芯片功耗低至忽略不計。
- 盡可能快地讓射頻模塊休眠,SX1278屬于LoRa擴頻調制技術,它的遠距離優勢得益于調制增益,不是靠增大發射功率(那將消耗更多電能)。
- 該射頻芯片的電流消耗如下:休眠<0.2uA,空閑=1.6mA,接收=12mA,發射=120mA。
- 終端MCU通過“終端+定時器超時”方式控制SX1278,一旦射頻完成發送或接收,立即進入休眠模式。
- 降低MCU的功耗首先盡可能少地開啟外設,其次盡可能地讓其休眠。
- 靜態配置MCU引腳,即使MCU和RF都進入休眠模式,如果沒有設置好MCU引腳,它們照樣會“偷偷”消耗電能。
軟件方面:
- 動態切換MCU引腳,有2類MCU引腳:MCU輸出和MCU輸入,它們需要動態進行配置。具體地說,在進入低功耗模式時,將其分別配置成:輸入上拉和輸入懸浮;在退出低功耗模式時,將配置成定義的功能狀態。
- 在動態切換時需要考慮2點:首先,動態切換引腳是需要時間的,以STM8L151C8T6為例,動態切換5個引腳需要447us,可見它一般用于休眠這種長周期的節能模式,不適合空閑停止這種短暫節能模式。
- 其次,在實際開發中引腳的連接是變化的,換句話說,今天這個引腳是空閑,下次產品升級該引腳可能設計成特定功能。為減少軟件維護成本,需要設計一種優秀的數據結構,它能描述 MCU 所有引腳,如果引腳功能改變,只需要修改數據定義,而不需要修改程序
- 一旦無事可干,MCU立即停止或休眠,在LoRa終端系統中,MCU是能源的持續消耗者,軟件設計需要盡可能快地讓MCU節能,有兩種節能模式。
- 短暫等待:如等RF發送數據幀完畢,MCU執行WFI指令,一旦RF完成發送,中斷將MCU喚醒繼續運行;
- 長期等待:如等待下一次主動上報數據幀,MCU執行HALT執行,當指定時間到達時,RTC中斷將MCU喚醒繼續運行。
- 采用高效率算法,軟件算法效率越高,MCU 計算時間更少,可以更快進入低功耗,也就更節能。在終端設計中有 2 個算法比較消耗時間:CRC16:無線傳輸易受干擾,一般通信幀需要添加 CRC16 檢測正確性,我們采用查表的方法減少 CRC16 的計算時間。
在LoRA調制技術中,我們可以做定時喚醒或者前導碼喚醒的方式做到低功耗。
前者利用主控MCU定時喚醒,后者采用前導碼喚醒的方式來促使模組進入正常收發狀態。
Preamble寄存器
x1278在接收數據期間會接收前導碼,如果在設置的時間內接收不到便進入睡眠,如果接收到前導碼則開始接收后面的數據。設置改寄存器確定接收前導碼的查長度。在LoRaWAN的模式下一步設置到8。
中斷是高電平有效。
在LoRa模式中最大數據包長度是256字節。
SX1276/77/78芯片數字IO引腳映射
SX1276/7/8的6個DIO通用IO引腳在LoRa模式下均可用。
DIO0最常用,主要是發送/接收/CAD完成的中斷產生。
在LoRa模式中如何使用DIOx引腳?所有DIOx引腳都要連接到MCU嗎?
在LoRa和FSK兩種模式中檢查DIO映射。可以在SX127x LoRa數據手冊中找到DIO映射信息。
DIO沒有像通常MCU GPIO那樣的功能。有一些特殊的中斷信息(或時鐘輸出)指示事件或芯片狀態,也可以不連接DIO引腳,那么久輪詢相關的寄存器知道狀態結果。
當然,我們建議連接DIO盡可能多地用作外部中斷功能,節省MCU的資源負載,可以很低功耗工作模式(當打包發送或接受數據包時,MCU睡眠)。
前導碼長度如何設置?
前導碼長度設置比較特殊,接收端配置的前導碼長度必須大于等于發送端的前導碼長度,接收端才能接收到數據,這就是基于前導碼長度的數據包過濾,默認長度為8個字節,最小可以設置6個字節。
LoRa數據包結構
數據包包含以下三個組成部分:前導碼、數據報頭和數據有效負載。
前導碼
前導碼用于保持接收機與輸入的數據流同步。
默認情況下,數據包含有12個符號長度的前導碼。前導長度是一個可以通過編程來設置的變量,所以前導碼的長度可以擴展。
例如,在接收密集型應用中,為了縮短接收機占空比,可縮短前導碼的長度。然而,前導碼的最小允許長度就可以滿足所有通訊需求。
對于希望前導碼是固定開銷的情況,可以將前導碼寄存器長度設置在 6 到65536 之間來改變發送前導碼長度,實際發送前導碼的長度范圍為 6+4 至 65535+4 個符號。這樣幾乎就可以發送任意長的前導碼序列。
接收機會定期執行前導碼檢測。因此,接收機的前導碼長度應與發射機一致。
如果前導碼長度為未知或可能會發生變化,應將接收機的前導碼長度設置為最大值。
顯示報頭
顯示報頭模式是默認的操作模式。
在這種模式下,報頭包含有效負載的相關信息,包括:
- 以字節數表示的有效負載長度;
- 前向糾錯碼率
- 是否打開可選的16位負載CRC
報頭按照最大糾錯碼(4/8)發送。另外,報頭還包含自己的CRC,使接收機可以丟棄無效的報頭。
隱式報頭模式
在特定情況下,如果有效負載長度、編碼率以及CRC為固定或已知,則比較有效的做法是通過調用隱式報頭來縮短發送時間。
這種情況下,需要手動設置無線鏈路兩端的有效負載長度、錯誤編碼率以及CRC。
如果將擴頻因子SF設定為6,則只能使用隱式報頭模式。
低數據速率優化
由于擴頻因子較高時,數據包的發送時間可能較長。因此可以選擇在數據包發送和接受期間提高傳輸對頻率變化的魯棒性。
有效數據速率較低時,可通過 LowDataRateOptimize 位提高
LoRa 鏈路的魯棒性。當單個符號傳輸時間超過 16 毫秒時,必須使用 LowDataRateOptimize
位。注意:發射機和接收機的 LowDataRateOptimize 位設置必須一致。
有效負載
數據包有效負載是一個長度不固定的字段,而實際長度和糾錯編碼率CR則由顯示模式下的報頭指定或者由隱式模式下載寄存器的設置來決定。