More Related Content Similar to LoRaWAN v1.1仕様読解 Class A
Similar to LoRaWAN v1.1仕様読解 Class A (20) More from Ryosuke Uematsu
More from Ryosuke Uematsu (6) LoRaWAN v1.1仕様読解 Class A2. 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. 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. 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. 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. 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. 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
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. 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. 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はそこに受信
仕様が拡張されているようなイメージ
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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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