Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

LoRaWAN v1.1仕様読解 Class A

6,160 views

Published on

LoRaWAN V1.1 specificationのClass Aの内容を中心に資料にまとめました。

Published in: Mobile
  • Be the first to comment

LoRaWAN v1.1仕様読解 Class A

  1. 1. LoRaWAN V1.1仕様読解 ~Class A編~ 2018/01/04 Ryosuke Uematsu
  2. 2. Copyright ©2018 tansokun920 LPWAとはなんぞや?  これまでの通信方式と異なるカテゴリに属するLPWA(Low Power Wide Area)の通信方式。広いエ リア、低消費電力、低通信速度が特徴である。  LoRaWANもLPWAの1方式である。 LPWA SIGFOX, LoRaWAN, NB-IoTなど 近距離無線通信 BLE, Zigbeeなど 無線LAN 3G/LTE カバレッジ 消費電力/ 通信速度 高 低 1m 100m 10km 2
  3. 3. Copyright ©2018 tansokun920 LPWA無線通信方式 現在(2017年12月)出てきている主要なLPWAの無線方式です。 日本で推されている(?)のは、SIGFOX、LoRaWAN、NB-IoTの3方式。 非セルラー系 (アンライセンスバンド) セルラー系(ライセンスバンド) SIGFOX LoRaWAN Weightless-P IEEE802.11ah Ingenu NB-IOT LTE Cat-M1 周波数(MHz) 868~870 (欧州) 902~928 (米国) 920~928 (日本) 868~870 (欧州) 902~928 (米国) 920~928 (日本) 2400 (ISM) 868~870 (欧州) 902~928 (米国) 920~928 (日本) 863~868 (欧州) 902~928 (米国) 916.5~927.5 (日 本) 2400 (ISM) LTEと同様になる 模様。事業者に よって異なる。 LTEと同様 事業者により異なる 帯域幅 100 Hz 50k/125k/250kHz 12.5~125kHz 1/2/4/8/16MHz 0.5/1/2/12MHz 200kHz 1.4MHz 無線アクセス技 術 Ultra Narrow Band (UNB) 周波数拡散 TDMA/FDMA OFDM Random Phase Multiple Access(RPMA) OFDMA/ SC-FDMA OFDMA/ SC-FDMA 通信速度 上り:100bps 下り:600bps 300bps~100kbps 上り: 625bps~10kbps 下り: 6.25~100kbps 100kbps~40Mb ps 60bps~3.8kbps 上り:62kbps 下り:21kbps 上り:1Mbps 下り:800kbps 電池寿命 10年 10年 5~10年 数年 15年 10年以上 10年以上 カバレッジ 30~50 km 15 km 2~5 km 1 km 30 km 数~20 km 数~20 km 事業者 (国内) KCCS ソラコム, SB, NTT系 etc.. - - - 国内はまだ DCM, KDDI, SB 標準化団体 SIGFOX社 (closed) LoRa Alliance (open) 3GPP (open) 3GPP (open) 参考:日経BP すべてわかるIoT大全2017 参考:http://www.keyman.or.jp/at/30009879/3
  4. 4. Copyright ©2018 tansokun920 セルラー系の方式  3GPP TS36.306において、UE Categoryなるもので端末のスペックが定義されている。これまでは大容量通信の スペックを主に定義していた。M2Mが出てきて、Cat.Mが定義され, IoTが出てきてCat.NBが定義された。  スペックを引き下げて、通信モジュールの構造を簡素化することでモジュール単価を下げることが狙い。 参照:http://businessnetwork.jp/Detail/tabid/65/artid/4775/Default.aspx UEカテゴリ別のスペック UEカテゴリ別のモジュール単価イメージ 4
  5. 5. Copyright ©2018 tansokun920 国内通信事業者(D,K,S)の動向  3社ともにNB-IoTのサービス提供はこれから。2018年中にはサービスされる模様。 参考:https://www.docomo.biz/html/m2m/lpwa/spec.html docomoのLPWA状況 参考: http://news.kddi.com/kddi/corporate/newsrelease/2017/11/16/279 7.html KDDIはCat.Mはサービス提供 SBはCat.NBの実証実験中 参考: https://www.softbank.jp/corp/group/sbm/news/press/2017/ 20171213_02/ 5
  6. 6. Copyright ©2018 tansokun920 LPWAの展開状況  SIGFOX 京セラコミュニケーションシステムがオペレータとなり既にサービスを開始。SIGFOXは既に世界 各国で展開されるグローバルなIoTに特化した通信方式。必要最小限の通信に特化し、最も安く、全 国で展開可能。が、仕様はClosedなため詳細は不明。  LoRaWAN 全国をカバーするエリア展開している事業者はいない。ソフトバンク、ドコモ、ソラコム、NTT西 日本などが特定エリアでサービス提供を行っている。必要なエリアに必要な分だけシステム構築が可 能。仕様はLoRa Allianceで策定し公開されている。  NB-IoT 既存の通信キャリアの技術の発展版として、IoTに特化した方式を策定。他の2方式より高価なIoT システム構築が可能。広いエリアでの展開に最適。 SIGFOX LoRaWAN NB-IoT カバレッジ 全国展開 2020年に人口カバー率99% サービスするエリアをス ポットで展開 既に全国カバーしている通信キャリアの ネットワーク 通信速度 上り:100bps 下り:600bps 300bps~100kbps 上り:62kbps 下り:21kbps 通信費用 (1デバイスあたり) 100円/年~ 数百円/年~ (システム構成による) ドイツテレコムが約16ユーロ/年で提供 (199ユーロで25枚のSIMを半年利用可能※) (※)https://www.mobileeurope.co.uk/press-wire/deutsche- telekom-launches-first-nb-iot-packages-in-germany 6
  7. 7. Copyright ©2018 tansokun920 LoRaWANの仕様策定  LoRa Allianceという団体が標準規格を策定しています。 主要メンバーは通信事業者、通信機器メーカーなど。  仕様は2015年7月に初版V1.0がリリースされ、その後、 2度修正版が出たが、今年大きな機能改善があり、 2017年10月にV1.1がリリースされた。併せて Backend-InterfacesとRegional Prametersについても リリースされた。  現在の仕様書はWebサイト上には公開されておらず、 なぜかメールで問い合わせると送ってくれます。 https://www.lora-alliance.org/ 時期 仕様バージョン 2015年7月 LoRaWAN™ 1.0 Specification 201?年?月 LoRaWAN™ 1.0.1 Specification 201?年?月 LoRaWAN™ 1.0.2 Specification 2017年10月 LoRaWAN™ 1.1 Specification LoRaWAN™ Backend Interfaces 1.0 Specification LoRaWAN™ 1.1 Regional Parameters 7
  8. 8. Copyright ©2018 tansokun920 LoRaWANのシステム構成 LoRaの公式サイトに載っているイメージ。構成要素は3つ。  エンドデバイス:センサー等の情報を送信する役割  Gateway:無線アクセスポイント的な役割  Network Server:デバイスの認証、データ蓄積とか [参照] https://www.lora-alliance.org/what-is-lora が、これだけじゃ意味無しおなので、 実際にはアプリケーションサーバがくっつきます 8
  9. 9. Copyright ©2018 tansokun920 LoRaWANのシステム構成  バックエンドサーバ側も含めると以下の構成となる。認証用のサーバ(Join Server)とデータ管理サーバ (Application Server)がくっつく。  認証・暗号化に使用する秘密鍵は、End-DeviceのSE(Secure Element)とJoin ServerのHSM(Hardware Secure Module)内にのみ格納される。この鍵が第三者に取得されると、情報漏洩等に悪用される可能性がある。 9 LoRaWAN Network Reference Model (NRM), End-Device at home LoRaWAN-Backend-Interfaces-v1.0 Figure.1より抜粋 HSM (ハードウェア セキュアモジュール)SE (セキュアエレメント)
  10. 10. Copyright ©2018 tansokun920 LoRaWANのクラスとプロトコルスタック  LoRaWANではデバイスのクラスがA,B,Cの3つ定義されている。ダウンリンクの使い方で定義が変わっている。  周波数は日本国内では920MHz帯が用いられている。  無線、PHY、MAC部分がLoRa独自仕様であり、1チップになっているSoCがある。  Application層は、LoRaWANの仕様のフォーカス外。ユーザ開発領域。 11 LoRaWAN Calsses LoRaWAN™ 1.1 Specification Figure.1より抜粋 双方向エンドデバイス(クラスA) 送信後の決められた時間にのみ受信が可能。 スケジュールされた受信スロットを備えた双方向性エンドデバイス (クラスB) クラスAに加えて、決められて時間に受信が可能。 受信スロットが最大の双方向エンドデバイス(クラスC) 常に受信することが可能。 LoRa SoC ユーザ開発
  11. 11. Copyright ©2018 tansokun920 Classごとの受信ウィンドウの違い 受信ウインドウ 12 End-device receive slot timing ClassA LoRaWAN™ 1.1 Specification Figure.4より抜粋 End-device receive slot timing ClassC LoRaWAN™ 1.1 Specification Figure.65より抜粋 End-device receive slot timing ClassA LoRaWAN™ 1.1 Specification Figure.4より抜粋 Class Aがベースで、Class B, Cはそこに受信 仕様が拡張されているようなイメージ
  12. 12. Copyright ©2018 tansokun920 LoRaWANの無線技術 LoRaWANの無線技術はスペクトラム拡散方式の独自 方式をとっている。 残念ながら仕様は公開されていない。 13
  13. 13. Copyright ©2018 tansokun920 LoRa SoC/モジュール LoRa変調はフランスのCycleo社が開発した技術。現在は、米国の Semtech社が買収し、LoRa無線チップを開発。特許を保有しているた め、現状LoRa無線チップはSemtech社のみが開発している。 MAC層まで含めたLoRaWANモジュールは複数社が提供している。 LoRa Allianceで認証されたデバイスは以下に掲載されている。 https://www.lora-alliance.org/certified-products 14 LoRa RF IC SX1276 Semtech社製 マイコン STM32L072 ST社製 (例)村田製作所提供LoRaモジュールCMWX1ZZABZ-091
  14. 14. Copyright ©2018 tansokun920 PHY Message Format PHYメッセージフォーマット 15 Preamble PHDR PHDR CRC PHY Payload CRC Preamble PHDR PHDR CRC PHY Payload Uplink Messages Downlink Messages DownlinkはCRCなし
  15. 15. Copyright ©2018 tansokun920 MAC Message Format(全体)  MAC層のメッセージフォーマット 16 Preamble PHDR PHDR CRC PHY Payload CRCPHY MHDR MAC Payload MIC MHDR Join Request or Rejoin Reqyest MIC MHDR Join Accept (MIC含む) OR OR FHDR FPort FRM Payload PHY Payload MAC Payload DevAddr FCtrl FCnt FoptsFHDR
  16. 16. Copyright ©2018 tansokun920 MAC Message Format (MHDR)  MAC Layerの詳細 17 Bit # 7..5 4..2 1..0 MHDR bits MType (Message Type) RFU(Reserved Further Use) Major Version Size 1 Byte 7~M Byte 4 Byte PHY Payload MHDR MAC Payload MIC  MHDRの詳細 MType Description 000 Join-request 001 Join-accept 010 Unconfirmed Data Up 011 Unconfirmed Data Down 100 Confirmed Data Up 101 Confirmed Data Down 110 Rejoin-request 111 Proprietary  Mtype Fieldの詳細  Major Versionの詳細 Bits Description 00 LoRaWAN R1 01~11 RFU
  17. 17. Copyright ©2018 tansokun920 MAC Message Format (MAC Payload : FHDR)  MAC Payloadの詳細 18 MAC Payload FHDR FPort FRM Payload  FHDRの詳細 Size 4 Byte 1 Byte 2 Byte 0~15 Byte FHDR DevAddr FCtrl FCnt FOpts  FCtrlの詳細 Bit# 7 6 5 4 3..0 FHDR ADR RFU ACK FPending FOptsLen Bit# 7 6 5 4 3..0 FHDR ADR ADRACKReq ACK Class B FOptsLen Downlink Uplink Parameter Description ADR データレートや送信パワーをダイナミックに変更で きる適応型データレートのOn/Off ADRACKReq ダウンリンクの応答が確認できない場合にセット ACK Confirmed Dataを受信した場合にセット FPending ダウンリンクのみ Class B Class Bモードに切り替える場合にセット FOptsLen FOptsの長さ
  18. 18. Copyright ©2018 tansokun920 MAC Message Format (MAC Payload : FPort, FRM payload)  MAC Payloadの詳細 19 MAC Payload FHDR FPort FRM Payload  FPortの詳細 FPort (1Byte) 用途 暗号化鍵 (K) 0x00 MAC commands only NwkSEncKey 0x01~0xDF application-specific AppSKey0xE0 test protocol 0xE1~0xFF RFU  FRM Payloadの詳細 Size (bytes) 1 4 1 4 4 1 1 A(i) 0x01 4 x 0x00 Downlink : 1 Uplink : 0 DevAddr FCntUp NFCntDown AFCntDown 0x00 i pld = FRMPayload : 暗号化前のデータ Ai for i = 1..k with k = ceil(len(pld) / 16 bytes) Si = aes128_encrypt(K, Ai) for i = 1..k S=S1 |S2 |.. |Sk (pld | pad16) xor S : 暗号化データ
  19. 19. Copyright ©2018 tansokun920 MAC Message Format (MIC)  MAC Layerの詳細 20 Size 1 Byte 7~M Byte 4 Byte PHY Payload MHDR MAC Payload MIC  MICの詳細 Size (bytes) 1 2 2 1 4 4 1 1 B0 0x49 ConfCnt 2 x 0x00 Downlink : 1 DevAddr NFCntDown AFCntDown 0x00 Len(msg) msg = MHDR | FHDR | FPort | FRMPayload Downlink MIC = aes128_cmac(SNwkSIntKey, B0 | msg)の上位4Bytes Size (bytes) 1 4 1 4 4 1 1 B0 0x49 4 x 0x00 Uplink : 0 DevAddr FCntUp 0x00 Len(msg) Size (bytes) 1 2 2 1 4 4 1 1 B1 0x49 ConfCnt 2 x 0x00 Uplink : 0 DevAddr FCntUp 0x00 Len(msg) Uplink cmacS = aes128_cmac(SNwkSIntKey, B1 | msg) cmacF = aes128_cmac(FNwkSIntKey, B0 | msg) MIC = cmacSの上位2Bytes | cmacFの上位2Bytes
  20. 20. Copyright ©2018 tansokun920 MAC Message Format (MAC Command)  MACコマンド デバイスを管理する用のコマンド。FPortが0x00の場合にMACコマンドをFRMPayloadに含めることができる。 CID(1 Byte)とコマンドごとのペイロードで構成される。 21 CID Command Transmitted Short Description device Gateway 0x01 ResetInd X Used by an ABP device to indicate a reset to the network and negotiate protocol version 0x01 ResetConf X Acknowledges ResetInd command 0x02 LinkCheckReq X Used by an end-device to validate its connectivity to a network. 0x02 LinkCheckAns X Answer to LinkCheckReq command. Contains the received signal power estimation indicating to the end- device the quality of reception (link margin). 0x03 LinkADRReq X Requests the end-device to change data rate, transmit power, repetition rate or channel. 0x03 LinkADRAns X Acknowledges the LinkADRReq. 0x04 DutyCycleReq X Sets the maximum aggregated transmit duty-cycle of a device 0x04 DutyCycleAns X Acknowledges a DutyCycleReq command 0x05 RXParamSetupReq X Sets the reception slots parameters 0x05 RXParamSetupAns X Acknowledges a RXParamSetupReq command 0x06 DevStatusReq X Requests the status of the end-device 0x06 DevStatusAns X Returns the status of the end-device, namely its battery level and its demodulation margin 0x07 NewChannelReq X Creates or modifies the definition of a radio channel 0x07 NewChannelAns X Acknowledges a NewChannelReq command CID Command Transmitted Short Description device Gateway 0x08 RXTimingSetupReq X Sets the timing of the of the reception slots 0x08 RXTimingSetupAns X Acknowledges RXTimingSetupReq command 0x09 TxParamSetupReq X Used by the Network Server to set the maximum allowed dwell time and Max EIRP of end-device, based on local regulations 0x09 TxParamSetupAns X Acknowledges TxParamSetupReq command 0x0A DlChannelReq X Modifies the definition of a downlink RX1 radio channel by shifting the downlink frequency from the uplink frequencies (i.e. creating an asymmetric channel) 0x0A DlChannelAns X Acknowledges DlChannelReq command 0x0B RekeyInd X Used by an OTA device to signal a security context update (rekeying) 0x0B RekeyConf X Acknowledges RekeyInd command 0x0C ADRParamSetupReq X Used by the Network Server to set the ADR_ACK_LIMT and ADR_ACK_DELAY parameters of an end-device 0x0C ADRParamSetupAns X Acknowledges ADRParamSetupReq command 0x0D DeviceTimeReq X Used by an end-device to request the current date and time 0x0D DeviceTimeAns X Sent by the network, answer to the DeviceTimeReq request 0x0E ForceRejoinReq X Sent by the network, ask the device to Rejoin immediately with optional periodic retries 0x0F RejoinParamSetupReq X Used by the network to set periodic device Rejoin messages 0x0F RejoinParamSetupAns X Acknowledges RejoinParamSetupReq 0x80~FF Proprietary X X Reserved for proprietary network command extensions
  21. 21. Copyright ©2018 tansokun920 LoRaデバイス固有情報  LoRaデバイスのActivationはOTAA(Over The Air Activation)またはABP(Activation By Personalization)によって行われる。  OTAAの場合、以下4つの情報を所有する必要がある。  JoinEUI, DevEUI, Device root keys (AppKey, NwkKey)  ただし、LoRaWAN V1.0時点ではDevice root keyはNwkKeyのみ。 22 生成タイミング Device Stored Data Format Remarks Activation前 JoinEUI IEEE EUI64 Join Serverごとにユニークな値 DevEUI IEEE EUI64 End Deviceごとにユニークな値 AppKey AES-128 Secure Elementに保管。LoRaWAN 1.0では無し。 NwkKey AES-128 Secure Elementに保管 Activation中 JSIntKey AES-128 Join AcceptのMIC生成キー JSEncKey AES-128 Rejoin Acceotの暗号化キー Activation後 DevAddr 32 bit LoRaWANネットワークによって割り当てられたエンドデバイス識別子 NwkSEncKey AES-128 MAC Commandの通信におけるペイロードの暗号化キー SNwkSIntKey AES-128 改竄検知用MIC生成キー FNwkSIntKey AES-128 改竄検知用MIC生成キー AppSKey AES-128 Applicationデータの通信におけるペイロードの暗号化キー
  22. 22. Copyright ©2018 tansokun920 LoRaWANで使用するKey情報  前頁で示した事前に保有している情報を使用して、各フェーズで使用する鍵を生成する。 一覧は下図の通り。V1.1では鍵の種類が増えている。 23 LoRaWAN 1.1 Key Derivation Scheme LoRaWAN™ 1.1 Specification Figure.49より抜粋 LoRaWAN 1.0 Key Derivation Scheme LoRaWAN™ 1.1 Specification Figure.48より抜粋 LoRaWAN 1.1 Key Derivation Scheme LoRaWAN 1.0 Key Derivation Scheme
  23. 23. Copyright ©2018 tansokun920 LoRaWANで使用するKey情報② 24  鍵の生成方法 LoRaWAN v1.1 鍵 生成方法 用途 JSIntKey aes128_encrypt(NwkKey, 0x06 | DevEUI | pad16) Join AcceptのMIC生成キー JSEncKey aes128_encrypt(NwkKey, 0x05 | DevEUI | pad16) Rejoin Acceotの暗号化キー AppSKey aes128_encrypt(AppKey, 0x02 | JoinNonce | JoinEUI | DevNonce | pad16) Applicationデータの通信におけるペイ ロードの暗号化キー FNwkSIntKey aes128_encrypt(NwkKey, 0x01 | JoinNonce | JoinEUI | DevNonce | pad16 ) 改竄検知用MIC生成キー SNwkSIntKey aes128_encrypt(NwkKey, 0x03 | JoinNonce | JoinEUI | DevNonce | pad16) 改竄検知用MIC生成キー NwkSEncKey aes128_encrypt(NwkKey, 0x04 | JoinNonce | JoinEUI | DevNonce | pad16) MAC Commandの通信におけるペイ ロードの暗号化キー
  24. 24. Copyright ©2018 tansokun920 LoRaWANのOTAAシーケンス 25 LoRaGateWayLoRaデバイス Network Server Join Server Application Server Join Request (JoinEUI, DevEUI, DevNonce) Join Req Join Ans Join Accept (JoinNonce, Home_NetID, DevAddr, DLSettings, RxDelay, CFList) ⇒詳細は次ページ Data Packet Data Packet MType Parameter Size (byte) 内容 Join-request JoinEUI 8 Join Serverごとにユニークな値 DevEUI 8 End Deviceごとにユニークな値 DevNonce 2 送信ごとに増えるカウンタ値 Join-accept JoinNonce 3 Join ServerがDeviceごとにも つカウンタ値 Home_NetID 3 LoRaWANネットワークの識別 子 DevAddr 4 LoRaWANネットワークによっ て割り当てられたエンドデバイ ス識別子 DLSettings 1 Downlinkの設定値(offsetとか) RxDelay 1 送信から受信までの間隔 CFList 16 オプションなので無くても可 MHDR (1byte) Join Request (18 byte) MIC(4 byte) Mtype(Join-request), RFU, MajorVersion JoinEUI, DevEUI, DevNonce aes128_cmac(NwkKey, MHDR | JoinEUI | DevEUI | DevNonce) の上位4 byte ※Join Requestは暗号化されていない
  25. 25. Copyright ©2018 tansokun920 Join Acceptメッセージ詳細 26  Join-AcceptのPHY payload LoRaWAN v1.1仕様 MHDR (1byte) Join Accept (12+(16) byte) MIC(4 byte) Mtype(Join-Accept), RFU, MajorVersion JoinNonce, Home_NetID, DevAddr, DLSettings, RxDelay, CFList(Option) aes128_cmac(JSIntKey, JoinReqType | JoinEUI | DevNonce | MHDR | JoinNonce | NetID | DevAddr | DLSettings | RxDelay | CFList ) の上位4 byte JoinRequestの場合はNwkKey, RejoinRequestの場合はJSEncKeyで暗号化される aes128_decrypt(NwkKey or JSEncKey, JoinNonce | NetID | DevAddr | DLSettings | RxDelay | CFList | MIC) Bit# 7 6..4 3..0 DLSetting OptNeg 1: v1.1 0: v1.0 RX1DRoffset RX2 Data rate  JoinAccept内のDLSettingの値でV1.1かどうか規定されている Join-request or Rejoin-request type JoinReqType value Join-request 0XFF Rejoin-request Type0 0x00 Rejoin-request Type1 0x01 Rejoin-request Type2 0x02  JoinAcceptのMIC内のJoinReqTypeについて
  26. 26. Copyright ©2018 tansokun920 まとめ 今回はLoRaWAN Specification V1.1をベースにMAC層Class Aの仕様 を中心にまとめた。 今後Class B, Cについても必要に応じて資料にまとめる予定。 (参考文献) LoRaWAN™ 1.1 Specification LoRaWAN™ Backend Interfaces 1.0 Specification リックテレコム社 IoTネットワーク LPWAの基礎 (著)鄭 立 27

×