LORA / LORAWAN 第十六節
LoRaWAN Device activation — OTAA and ABP
這個章節我將會介紹 LoRaWAN Device activation : Over-The-Air-Activation (OTAA) and Activation-By- Personalization (ABP)
LORAWAN 1.0.2 SPECIFICATION
標準
- 理論上LoRaWAN的使用方式與頻率都可以網路提供商自行設定。
- 但是根據標準來實作產品會讓之後的連接與通訊方便很多。
- 而大部分的函式庫也都按照標準來開發。這樣才不用重複造輪子
- LORAWAN 1.0.2 規範連結
LoRaWAN Device activation
LoRaWAN節點端活化入網
- LoRaWAN 裝置要先活化才能接入LoRaWAN網路內
Activation Methods
活化入網方式有兩種
- Over-The-Air Activation (空中接入)
- Activation by personalized (專屬接入)
- 在活化之後節點端(Node端)會儲存下面四項資料,運用這四個資料發送與接收訊息:
- Device address (DevAddr),
- Application identifier (AppEUI),
- Network session key (NwkSKey)
- Application session key (AppSKey)
ABP
Activation by personalized (專屬接入)
- 使用ABP(專屬接入)方式接入,節點端(Node)將只專屬於特定的LoRaWAN網路
- 使用ABP節點端(Node)將直接在硬體上給定這三個參數:
- Device address (DevAddr)
- Network session key (NwkSKey)
- Application session key (AppSKey)
- 使用ABP節點端將無法漫遊到其他的LoRaWAN網路,並且無法與未來網路應用更新。
- LoRaWAN 不建議使用此方式接入
- Node 節點憑藉 NwkSKey 與 AppSKey 接入LoRaWAN網路,當然它還要一個專屬的編號DevAddr供Network server 與Application Server辨識
OTAA
Over-The-Air Activation(空中接入)
- 使用OTAA方式接入,節點端(Node)可以彈性的轉移LoRaWAN網路服務(可以漫遊)
- 使用OTAA節點端(Node)將直接在硬體上先給定這三個參數:
- globally end-device identifier (DevEUI)
- globally application identifier (AppEUI)
- AES-128 key (AppKey) (不是AppSkey)
- LoRaWAN網路將使用這三個參數動態產生剛剛ABP直接給訂的(DevAddr)(NwkSKey)(AppSKey)。
- LoRaWAN 推建使用此方式接入
OTAA : Step 1
Node 與 Application 已經註冊好AppKey,DevEUI,AppEUI ,DevEUI 與 AppEUI 都是 globally 唯一碼,這樣Node才能夠漫遊!
OTAA : Step 2
由Node端提出加入請求Join Request,“加入請求(不加密)封包”裡面包含
- DevNonce (亂數-這之後會用來生成金鑰)
- AppEUI (跟Network server 講:它想加入那個Application Server)
- DevEUI (跟Network server 講:它是誰)
OTAA : Step 3
Network Server 跟Application Server 確認這個節點是屬於他的服務,Network Server 拿著Node端給的 DevNonce與自己生成的AppNonce生成金鑰 NwkSKey與AppSkey。
OTAA : Step 4
Network Server回覆Join Accept,“請求核准(加密)封包”,此封包已經使用AppKey(不是AppSKey)加密了。此封包包含以下訊息:
- AppNonce (亂數-這就是剛剛Network Server會用來與DevNonce結合生成NwkSkey與AppSkey金鑰的亂數)
- DevAddr (由Network Server產生,基本上就是 Network Server 用自己ID與連接 Network Server自己的節點的流水號接合而成的!)
- NetID與network setting (Network server 跟node講:在我的地盤我的規則是什麼.. .)
OTAA : Step 5
Node 端拿到請求核准後,使用AppKey(不是AppSkey)取得AppNonce ,與自己的DevNonce生成NwkSKey與AppSkey。
OTAA : Step 6
Network Server 將生成的DevAddr 與 AppSkey給Application Server
OTAA : Step 7
這時候Node 跟Application Server 取得如同ABP 傳輸方式一樣的狀態各自都都有DevAddr,NwkSKey,AppSkey。這樣就可以開始傳輸了!
最終的加密方式Network server 擁有AppSkey,這代表Network Server 可以取得傳輸資料!所以以LoRaWAN傳輸方式必須假定Network Server 是可信的服務商!