1. 程式人生 > >LoRa學習筆記_彙總

LoRa學習筆記_彙總

LoRa在今年(2016年)應該是最火的物聯網技術,Semtech不停攻城略地,七大洲,哦,除了南極洲,所有地區都宣佈要建立國家級的LoRa網路。雖然,我大中國的運營商要做NB-IoT,但是不乏中興、富士康、鵬博士等企業野心勃勃,要在NB-IoT正式商用之前就部署出一個類運營商的LoRa網路。

在市場為低功耗廣域網開始造勢時,我們技術人員就要開始跟上了。IoT小能手在ZigBee、藍芽、WiFi之後,也終於開始接觸LoRa技術,學習過程記錄梳理了一些筆記。將LoRa節點端的學習分成了開發環境、LoRa應用、LoRaWAN協議學習三大部分,循序漸進。

第一部分 ST微控制器及開發環境

為什麼要用CoIDE來開發LoRaMac-Node,最主要的原因是現在接觸的LoRaMac及新唐等工程都預設提供了這個工程,跟著潮流試試它。何況更重要的它是免費的。

上一篇筆記學習了CoIDE,這一篇筆記講講LoRaWan協議棧預設支援的另一個IDE工具。

LoRaMac工程作為開源專案還是很趕時髦的,它採用了ST在15年逐步推出的STMCube,它比早期的ST標準庫更加抽象化。熱心網友們還在標準庫上玩耍時,我們要知道STMCube才是未來的大勢所趨。也就是要玩STM32,就得開始玩STMCube啦。

關於STM32的學習,初學者很容易被晶振這個東西給坑了。要在一個新平臺上開發,先要把晶振搞定。

Semtech的串列埠驅動 uart-board 略有不足,一旦有奇偶校驗,得給WordLength+1處理。

第二部分 LoRa調製基礎

這部分的筆記特別接地氣,基本是按照 官方資料+梳理解析+相關原始碼 的方式來寫,看完能知道怎麼應用了。

RSSI訊號強度是無線網路中特別被人關注的一個點,尤其是工程部署中。

發射功率也是射頻基礎指標,目前SX1278可以支援最大20dBm。

空中喚醒是個特別酷的功能,這裡由淺入深地對技術原理做了講解,另外針對SX1276/SX1278中對該技術的應用做了研究。

看過這篇文章將會對FSK調製的空中耗時有個大致概念,耗時的計算就是簡單的 資料量/速率 = 時長。瞭解了基本計算原理,以後可以自己動手來計算咯。

LoRaWAN標準中,終端的通道接入方法是純ALOHA機制,終端不進行通道檢測,直接傳送,這樣隨著終端數量增多或傳送包數量增多時,多個終端的包在通道上發生碰撞的概率就大大增加。

第三部分 LoRaWAN協議研究

這部分主要是學習《LoRaWAN102》,即LoRaWAN協議規範 V1.0.2 版本(2016年7月定稿),可點此下載。正在陸續更新譯文,有需要可關注此貼。

經過幾個月的學習,對LoRaWAN的知識做了一個大體梳理。本文先從橫向介紹下LoRaWAN的背後勢力和網路部署情況,然後縱向講解了網路架構和具體的協議內容,幫助LoRa從業者系統地瞭解LoRaWAN協議。

這部分的筆記是按照 章節譯文 + 章節解析 + 原始碼分析 的方式來記錄。

CLASS A - ALL END-DEVICE 所有終端

所有的LoRaWAN終端都必須滿足Class A的規定。

LoRaWAN第3章,主要是講了接收視窗這回事。特意做了一張原始碼的邏輯導圖,幫助梳理下幾個相關的介面。

LoRaWAN第4章,主要講述了MAC幀格式,對所有涉及的欄位都做了解釋。幀格式是大家隨手都能看到的東西,本尊作為IoT小能手,如果不能提出一些稍有深度的資訊增量,就對不起這個稱號了。所以,在這篇協議解析中還分享對協議設計層面的心得。

LoRaWAN第5章,LoRaWAN出於網路管理需要,提出了9條MAC命令,這個章節是對9條命令進行具體的描述。

LoRaWAN第6章,主要對節點加網做了描述,它有兩種方式:如果是空中啟用,則需要準備 DevEUI,AppEUI,AppKey來join。如果是ABP啟用,則直接配置 DevAddr,NwkSKey,AppSKey。

這個章節主要講了LoRaWAN在全球各地區的具體物理層引數,不單單是頻段有區別,細化到通道劃分,甚至是資料速率,發射功率,最大資料長度等等都有區別。這章基本是LoRa從業者都應該學習的,不管是開發者還是市場銷售,屬於基礎的知識儲備。
搭配原始碼來梳理協議,風味更佳。

CLASS B - BEACON 信標

Class B在當前協議版本中還僅作實驗性參考。

CLASS C - CONTINUOUSLY LISTENING 持續接收

作者其他精彩文章:

歡迎大家留言交流,前進的路上不孤單。