LoRa Basics Modem-EとLoRa Cloud

現行のThe Things Network V2からThe Things Stack V3への全面マイグレーションは今年末までとなります。 しかし、ゴールデンウィーク明けくらいからは、The Things Network V3も限定ではありますが、ご利用になります。

そこで、The Things Stack V3から新たにSEMTECH社のLoRa Cloudサービスも全面的に採用されますので、ご参考までにLoRa Basics Modem-EとLoRa Cloudに関して簡単に触れておきます。

*オリジナルソース「Understanding_LoRa_Basics_Modem-E_Sept2_Approvd-Final」

https://lora-developers.semtech.com/uploads/documents/files/Understanding_LoRa_Basics_Modem-E_Sept2_Approvd-Final.pdf

LR1110 - 1つのチップで2つの "フレーバー"

LoRa Edge™ LR1110は、デフォルトではトランシーバーとして構成されています。トランシーバーのコア機能は、超長距離スペクトル拡散通信と高い干渉耐性を実現しながら、消費電流を最小限に抑えるLoRa®機能を備えています。 SX127X、SX126X、LR1110デバイスで使用されているSEMTECHの特許取得済みLoRa変調技術は、低コストのクリスタルと部品を使用して、 -148dBm以上の電波感度を達成することができます。この高感度に内蔵された+20dBmのパワーアンプとの組み合わせにより、業界トップクラスのリンクバジェットを実現しています。 これにより、通信長距離や堅牢性を必要とするあらゆるアプリケーションに最適です。 LoRaは従来の無線変調技術と比較してブロック性と選択性の両方において大きなメリットがあり、従来の設計における距離、干渉耐性、エネルギー消費の妥協点を解決します。

トランシーバーのファームウェア

LoRaWAN®用トランシーバを採用する場合のエンドノード設計のアーキテクチャは、アプリケーションプロセッサがLoRaWANスタック(LoRaWAN MACをサポートするロジック)およびアプリケーションロジック(センサーの読み取り、アップデートの送信、スリープ、ウェイクなど)をホストします。 LoRaWANスタックとLoRaWANネットワークサーバーとのやりとり(ジョインとデータトランスポートを含む)は、アプリケーションプロセッサが担当します。しかし、同じLR1110をLoRa BasicsTM Modem-Eのファームウェアスタックで変更することができます。

LoRa Basics Modem-E ファームウェア

Modem-Eファームウェアは、トランシーバー機能の動作を抽象化するための多くの機能を追加しています。Modem-Eファームウェアにより、開発者は、LR1110をハイレベルに扱うことができ、LoRaWANプロトコルの詳細や全ての通信ファームウェアに任せることができます。 Modem-Eファームウェアは、単一のAPIコマンドを使用してネットワークのための全てのインタラクションを実行します。 Modem-Eインターフェースを介した単一コマンドの例としては、ネットワークへの参加、データパケットの送信、Wi-Fiスキャンの完了などがあります。 Modem-Eファームウェアは、LR1110チップへのシンプルなシリアルインターフェースを介して利用でき、LoRa CloudTMによって実現される他の多くの自動化されたサービスのロックも解除します。これにより、エンドノードの開発者は、アプリケーション自体の重要な側面だけに集中し、LoRa Basics Modem-Eファームウェアを使用して通信機能をLR1110に割り当てることができます。

次の2つのセクションでは、LoRa Basics Modem-Eファームウェアの機能を確認し、トランシーバーとModem-Eファームウェアのバージョン間の比較を行います。

LoRa Basics Modem-Eの機能一覧

LoRa Basics Modem-Eの機能は以下の通りです。
LoRaWANプロトコルバージョン1.0.3、Class A、EU863 & US902 地域パラメータ
シングルコマンドによる加入処理
単一コマンドによるデータアップロード
全自動デバイス管理サービス (セムテック社のLoRa Cloud Device & Application Servicesを通じて提供)
アプリケーションサービス)
o デバイスの構成
ADRプロファイル
報告間隔
規制地域
アプリケーション固有のステータス
アプリケーション層のクロック同期データ
o デバイスステータス
バッテリー電圧
充電カウンタ/電池寿命予測 温度
直近のダウンリンクの強度 SNR/RSSI
最後のリセットからの時間
最後にダウンリンクしてからの時間 ファームウェア CRC
クラッシュログデータ
モデムのリセット回数
GNSSアルマナックのステータス
GNSSアルマナックのデバッグレスポンス
o シングルコマンド大容量ファイル転送アップリンク
o シングルコマンドによる信頼性の高いオクテットストリームエンコーディング(パケットロスの防止と回復) o 時計の同期
o OTAパッチアップデート(近日公開)
o FUOTAユニキャスト、FUOTAマルチキャスト (近日公開予定)
シングルコマンドGNSSスキャン
シングルコマンドでのパッシブWi-Fiスキャン
アルマナックとタイミング情報を含む自動GNSSアシスト(GNSSスキャン時間の短縮
リモートリセット、リキー
LoRaWANのLBT対応(日本国内のみ)
将来的にはLoRaWAN仕様へのアップグレードやその他の新機能にも対応

比較:トランシーバーとLoRa Basics Modem-Eの比較

以下の表は、「トランシーバー」と「LoRa Basics Modem- E」のファームウェアの機能の違いを示しています。

図2は、トランシーバーを使用した場合と、Modem-Eファームウェアを使用した場合の典型的なエンドノードの主な要素を示しています。

LoRa Basics Modem-E を LoRaWAN ネットワークに接続するための準備

LoRa Basics Modem-Eは、LoRa Edgeトランシーバーとして構成された状態で工場から出荷されます。このトランシーバー機能には、LoRaのコア機能がすべて含まれており、LoRaWAN用チップのプロビジョニングキーを安全に保管しています。しかし、LoRa Cloud APIに統合されたすべての機能を自動的に活用するためには、トランシーバーを製品として出荷する前に、LoRa Basics Modem-Eのファームウェアにアップデートする必要があります。

LoRa Edge LR1110トランシーバーのLoRa Basics Modem-Eへのアップグレード

トランシーバーのアップグレードは、最終製品の組み立て工程の中で、デバイスの生産ラインで行うのが一般的です。LoRa Basics Modem-Eのフルエンベデッドファームウェアイメージが付属しています。LR1110をトランシーバーモードからModem-Eに変換するには、図2に示すように、トランシーバーのホストコントローラからSPIインターフェースを介して、Modem-Eファームウェアを動作中のLR1110トランシーバーにロードする必要があります。LR1110のブートローダがファームウェアを認証し、以降の実行を許可します。LR1110で実行できるのは、SEMTECHが提供するファームウェアイメージのみです。LR1110は、通常、フィールドでのメンテナンスのためのパッチアップデートにも対応しています。

DevEUI、AppEUI、PINへのアクセス:2つの方法

LoRa Basics Modem-Eは、シンプルで安全なプロビジョニングのために特別に設計されています。LoRa Cloud Device Joinサービスで事前に設定されています。このサービスにアクセスするには、プロビジョニング情報をLoRa Basics Modem-Eから直接抽出する必要があります。この情報はいつでも抽出することができますが、プロビジョニング情報を収集して使用するための論理的なタイミングは、デバイスのファームウェアが更新されたとき(またはその直後)です。

基本的なプロビジョニング情報は、DevEUI(これはChipEUIでもある)とPIN/Claim Codeです。また、この値を必要とするアプリケーションには、AppEUI/JoinEUIを指定することができます。

このデータを抽出する最初の方法は、DevEUI/ChipEUIに対してはGetChipEUI APIコマンドを、PIN/Claim Codeに対してはDeriveRootKeysAndGetPinコマンドを使用してLR1110のSPIインターフェースを介して行います。 また、(LoRa Basics Modem-Eのファームウェアをロードした後は)Modemコマンドを使用し、DevEUIとPIN/Claim Codeに対してそれぞれGetChipEuiとGetPinコマンドを使用して、モデム・インターフェースを介してデータを抽出することもできます。

いずれの方法でDevEUI/ChipEUIとPIN/Claim Codeを抽出しても、LoRa Cloud Device Joinサービスでデバイスをプロビジョニングする際には、このデータが必要となります。

LoRa Basics Modem-E デプロイメント

LR1110を開発した主な動機は、LoRaデバイスのプロビジョニングプロセスを簡素化し、安全にすることでした。LoRaWANの仕様には、エンド・ツー・エンドのセキュリティが組み込まれていますが、デバイスのセキュリティキーの取り扱いには混乱や不安がつきまといます。 業界最高水準のセキュリティをチップに直接組み込むことで、LoRaWANネットワーク上のデバイスのアイデンティティと、デバイスとの間で送受信されるトラフィックの両方を保護するために使用されるキーが、セキュアなネットワークシステムの外に露出することはありません。

そのため、ファイルやデータベース、プリントアウトなど、鍵を配布するための堅牢性の低い方法は必要ありません。プロビジョニング情報は、LoRa Basics Modem-Eインターフェースを介して直接アクセスされ、LoRa Cloud Device Joinサービスを介してデバイスのプロビジョニングに使用されます。デバイスがLoRa Cloud Device Joinサービスを介して主張されると、ネットワークはデバイスを認証し、LoRaWANトラフィックが指定されたLoRaWANネットワークサーバーに安全に流れるようになります。

LoRa Basics Modem-Eファームウェアを搭載したエンドノードを導入する手順は以下の通りです。

  1. LoRa Cloud Portalのアカウントを作成する。
  2. アカウントにアプリケーションIDを作成する
  3. DevEUIとClaim/PINコードを使ってデバイスを請求する
  4. アプリケーションとデバイスのためのLoRaWANネットワークサーバーを選択する

新しいLR1110チップセットの大きな特徴の1つは、LoRaWAN用の鍵がデバイスに安全に埋め込まれており、製造や展開の過程で決して露出しないことです。

ネットワークサーバーをアプリケーションIDにマッピングする目的は、そのネットワークサーバーで運用する際にデータを扱うための特定のパラメータを設定できるようにするためです。各アプリケーション定義に共通する設定は、ネットワークサーバーとラップキーの2つです。ネットワーク・サーバーは、このアプリケーション・オーナーの設定に関連付けられるLoRaWANネットワーク・サーバーの識別子です。

ラップキーは、LoRaWANセッションからAppSKeyを暗号化するために使用される特定のトークンです。(暗号化されていないAppSKeyは、LoRaWANにおけるデバイスとアプリケーションサーバー間のLoRaWANペイロードデータの暗号化に使用されます) ラップキーは、AppSKeyが暗号化されずにLoRaWANネットワークサーバーからアプリケーションサーバーに渡されることを示す、NULLを指定することができます。AppSKeyの扱いについての詳細は、LoRa Cloud Device Joinのドキュメントを参照してください。

ネットワークサーバーが、LoRa Cloud Device Server上のアプリケーションIDに設定されると、Device Joinプロセスを実行することができます。請求されたデバイスからのJoinリクエストを確認したネットワークサーバーは、そのリクエストをLoRa Cloud Device Joinサービスに転送します。デバイスジョインサービスは、デバイスのルートキーに安全にアクセスし、ハードウェアセキュリティモジュール(HSM)1で処理し、セッションキーを導き出し、ジョインレスポンスとともにネットワークサーバーに返します。ネットワークサーバに関連するアプリケーションにラップキーが定義されている場合、AppSKeyは暗号化されて返されます。 そうでない場合は、AppSKeyはプレーンテキストになります。ネットワーク・サーバーは、デバイスに結合レスポンスを送信します。参加応答を受信した後、デバイスからネットワークサーバーにデータメッセージが送信されると、参加が完了し、デバイスはそのネットワークサーバーで動作するように設定されます。図3に「デバイスの参加」プロセスを示します。

LoRa Basics Modem-E の操作方法

LoRa Basics Modem-E は、LoRa クラウドサービスとの連携を考慮して設計されています。LoRaクラウドサービスは、クラウドベースのインターフェースを提供し、LoRaを搭載したデバイスで利用できる最も便利なタスクのいくつかを自動化、簡略化するために使用されます。ここまでは、LoRa Cloud Device Joinサービスについて説明してきました。この他にも、LoRa Cloud Device & Application ServicesとLoRa Cloud Geolocation Serviceの2つのLoRa Cloudサービスがあります。

The LoRa Cloud デバイス&アプリケーションサービス

これらのサービスは、以下の機能で構成されています。

  1. 以下のような情報メッセージを定期的に通信します。
    システムの状態、ファームウェアのバージョン
    充電量、電圧、温度
    ダウンリンクの信号品質
    アップタイム、最後にダウンリンクしてからの時間
    デバイスEUI、ジョインEUI
    アプリケーション固有のステータスバイト

  2. クライアントが起動する管理コマンドのトリガー
    ミュート、リジョイン
    ソフトリセット、ファクトリーリセット
    クラッシュログの取得
    リージョンの変更
    ADRプロファイルの設定
    周期的情報メッセージの報告間隔の変更

  3. LoRaWANの一般的なユースケースを解決する、高度なアプリケーション層プロトコルの実行
    といったものです。

デバイス&アプリケーションサービスの目的は、大規模なIoTデバイスのグループを管理するための最も重要な機能をすべて1つのサービスにまとめることです。バッテリー残量の監視やファームウェアの管理などの機能に単一のインターフェースを提供することで、1つのネットワーク上にある数千~数百万台のデバイスの運用を大幅に簡素化します。この機能により、開発者やシステムインテグレーターは、特定のお客様に必要となる大容量ファイルをデバイスからネットワークに転送する機能など、必要なサポート機能をすべて最初に開発することなく、アプリケーションの真の価値に集中することができます。

デバイス&アプリケーションサービスは、LoRa Basics Modem-Eの機能と完全に互換性があります。つまり、LoRa Basics Modem-Eは、これらの機能を利用するために、お客様がデバイスやネットワーク上でアプリケーションコードを開発する必要がありません。

図4は、LoRa Basics Modem-EデバイスからLoRaWANネットワークサーバーへのデータの流れを示しています。ネットワークサーバーは、すべてのトラフィックをアプリケーションプロバイダーに転送します。そのトラフィックの中には、特別なアプリケーションポート番号(199)を持つものがあり、これはデバイス&アプリケーションサービスにルーティングされます。ポート199を経由しない通常のトラフィックは、そのままアプリケーション・ロジックに渡されます。

信頼性の高いオクテットストリームエンコーディング(ROSE)
大容量ファイルのネットワークへのアップロード
アプリケーション層のクロック同期(ALCSYNC)

オーナーとトークン

特定のLoRa Basics Modem-Eデバイスでデバイス&アプリケーションサービスを利用するためには、アプリケーションオーナーを作成し、デバイス&アプリケーションサービスにデータを送信するためのトークンを作成する必要があります。

デバイス&アプリケーション・サービスを利用できるアプリケーション・オーナーを作成するには、まずLoRa Cloudアカウント(https://www.loracloud.com)にログインし、「LoRa Cloud Device and Application Services」を選択します。デバイス&アプリケーションサービスのランディングページから、Manage Ownersを選択します。オーナーの管理」ページでは、オーナーを作成し、現在アクティブなオーナーを設定します。

デバイスの追加

デバイスは、デバイス&アプリケーション・サービスのAPIを介して、またはLoRa Cloudデバイス&アプリケーション・サービスのウェブ・ポータルから直接管理されます。デバイスの管理」リンクは、特定のアプリケーション・オーナーのデバイスを追加するために使用します。管理対象デバイスのリストにデバイスを追加するために必要な情報は、DevEUIです。デバイスは1つずつ追加することも、追加するデバイスのリストを提出して一括で追加することもできます。

データのルーティング

トークンが作成されると、デバイス&アプリケーション・サービスへのAPIで、サービスとの間のデータ転送に使用されるようになります。ポート199が表示されたら、トークンをデバイス&アプリケーションサービスに送ります。

デバイス&アプリケーション・サービスのAPIは、GET、PUT、POST、DELETEをサポートするHTTP RESTfulインターフェースとして実装されています。ほとんどのレポートは、現在のステータスを返します。デバイス&アプリケーションサービスへの入力の中には、大きなファイルのアップロードなど、完全な結果を返すまでに複数のアップロードを必要とするものがあります。複数回のアップロードが必要なケースでは、データを含まない単純な「UPLINK_RESPONSE」が返されます。詳細については、LoRa Cloud Device & Applicationサービスのドキュメントをご参照ください。

LoRa Cloudジオロケーションサービス

LoRa Basics Modem-Eは、ジオロケーション機能を内蔵しています。この情報をLoRa Cloud Geolocation APIに送信することで、デバイスの位置を推定することができます。ゲートウェイは、LoRa Basics Modem-Eデバイスが送信したデータパケットを受信すると、受信信号強度、信号対雑音比、到着時刻(TOA)または到着時刻差(TDOA)などのメタデータを生成します。これらのメタデータを適切なクエリにまとめ、LoRa Cloud Geolocation APIを介して送信すると、サービスはデバイスの位置を計算することができます。

サービスの種類

ローカライズ技術には3種類あります。LoRa方式、Wi-Fi方式、GNSS方式です。LoRa方式は、デバイスの信号から、信号強度や信号タイミングなどのメタデータを用いて位置を算出します。同様に、Wi-Fi方式では、デバイスの範囲内にあるWi-Fiアクセスポイントの信号強度を利用して、デバイスの位置を推定します。 最後に、LoRa Basics Modem-Eは、複数のGNSS衛星ソースからのタイミング情報を測定し、それらの信号に基づいてデバイスの位置を推定することができます。

サブスクリプション・レベルとトークン

LoRa Cloud Geolocation サービスには、様々なサブスクリプション・レベルがあります。お客様のニーズに最適なサブスクリプションは、特定のアプリケーションで使用される毎月のトラフィックレベルによって異なります。例えば、サブスクリプション・レベルに関わらず、各アカウントにはプライマリとセカンダリの2つのデフォルト・トークンがあります。 両方のトークンに関連する合計トラフィックが蓄積されます。 蓄積された合計値は、毎月の合計値にカウントされます。 無料の入門レベルでは、毎月1,000ロケーションまで計算できます。 1ヶ月に1,000箇所以上の計算が必要な場合は、有料プランをご利用いただけます。有料プランの契約レベルは、数十万ロケーションの計算から数百万ロケーションの計算まで多岐にわたります。有料プランの詳細については、LoRa Cloud Portal にログインし、LoRa Cloud Geolocation エリアの Manage Subscriptions ページをご覧ください。

位置情報の取得

LoRa Cloud Geolocation APIを利用するには、LoRa Basics Modem-Eが提供するLoRa信号、Wi-Fiスキャン、GNSS測定のスキャン情報が必要です。 LoRa信号とWi-Fiスキャンの結果は、v2 APIのプライマリートークンまたはセカンダリートークンとともにAPIに渡されます。 LoRa信号については、TDOA情報だけでなく、RSSIやSNRの情報も含まれます。暗号化されたソースからのTDOA情報が処理のためにAPIに渡される場合は、Geolocation APIに送られる前に復号化される必要があります。

GNSS測定値は、Geolocation API v3インターフェースを介してGeolocation Serviceに渡されます。 ジオロケーションサービスは、APIに渡された測定値を位置情報として処理します。GNSSパフォーマンスは、タイミングと衛星アルマナックの精度の両方に対するGNSSアシスタンスによって強化することができます。このGNSSアシスタンス情報は、LoRa Cloud Device & Application Serviceを通じて提供されます。

GNSS支援のためのアルマナックデータの取得

GNSSは、衛星から受信機(ここではLoRa Basics Modem-Eデバイス)までの測距を利用して動作します。 GNSS衛星と現在の地域の状況に関する情報を提供することで、信号の取得を改善することができます。 LoRa Cloud Device & Application Servicesでは、クロック同期プロトコルを介してタイミング情報をLoRa Basics Modem-Eに提供することができます。

さらに、GNSS衛星の予測を提供するために、2つのレベルのアルマナック・アシスタンスがサポートされています。 2つのアルマナックとは、フルアルマナックと「効率的」(つまりコンパクト)なアルマナックです。完全なアルマナックは、その名の通り、アルマナックのデータをすべて含んでいます。効率的なバージョンは、より低い通信帯域に最適化されています。 どのアルマナックを使用しているかに関わらず、時間の経過とともに真の衛星位置は固定されたアルマナックのパラメータから乖離していきます。これは、アルマナックを定期的に更新する必要があることを意味します。デバイス&アプリケーションサービスは、このような更新を定期的に行えるように設計されています。

結論: LoRa Basics Modem-Eの価値

LoRa Basics Modem-Eは、新世代のIoT製品を利用・管理するための高度に統合されたネットワークアーキテクチャを用いた、新しい運用パラダイムです。デバイスのプロビジョニング、管理、運用、ローカリゼーションを、LoRa Basics Modem-Eデバイスで有効な単一のAPIセットにシームレスに統合しています。 この統合された機能により、エンドデバイスへの統合が容易になるだけでなく、ネットワークインフラ内でのスケーラブルなソリューションが可能となり、これらすべてを最小限の開発で実現することができます。このソリューションは、最新の低消費電力かつ長距離のLoRaWANインフラを用いて開発されたため、相互運用性を確保し、イノベーションのための強力なエコシステムを実現しています。