マルツTOP > APPLICATION LAB TOPページ おすすめ技術記事アーカイブス > グローバルセルラー無線モジュールを使いIoTデバイスをクラウドに迅速かつ安全に接続

グローバルセルラー無線モジュールを使いIoTデバイスをクラウドに迅速かつ安全に接続

著者 Jens Wallmann 氏
DigiKeyのヨーロッパ担当編集者の提供
2023-12-12

マルツ掲載日:2024-05-13



 ポータブルデバイスやリモートのネットワークエンドデバイスをIoTに接続したり、マシンツーマシン通信(M2M)を使用して機械を遠隔制御したりするには、クラウド経由でデータ交換を行う移動無線接続が良い選択肢になります。

 しかしこの方法は、設計者が世界中で要求されるデータスループットにどの無線ネットワークが対応できるかや、ワイヤレスモデムはどのプロトコルに対処する必要があるかを決定しなければならないという難題があります。また、システムのスケーラビリティ、データセキュリティ、コスト、市場投入までの時間、ユーザーが負担する取得コストや運用コストも考慮する必要があります。

 この記事では、LTE Cat 1がIoTやM2Mアプリケーションの開発者に何をもたらすかを簡単に説明します。そして、ユニバーサルコネクティビティと信頼性の高い性能を提供するu-bloxのLARA-R6シリーズの無線モジュールを紹介します。最後に、開発者が評価ボード(EVB)を使用してATコマンドでモジュールを簡単に設定・制御し、ライブラリ関数でATコマンド文字列を生成する方法を紹介します。

LTE Cat 1とLTE Cat 1bis、LTE Cat M、LTE Cat NBの比較

 現在、LTEセルラー無線はギガビットの伝送レートを実現していますが、LTE Cat 1、LTE Cat 1bis、LTE Cat M、LTE Cat NBなどのLPWA(低電力広域)プロトコルは、エネルギー消費、ネットワークリソース、コストの面で特に効率的に設計されています。これは、IoTデバイスにとって非常に重要です。

 全二重で最大20MHzのチャンネル帯域幅を提供するLTE Cat 1は、最大10Mbpsのダウンロードデータレートと最大5Mbpsのアップロードデータレートを実現します。2本のアンテナはRx(レシーバ)ダイバーシティが可能で、性能が向上します(表1)。LTE Cat 1bisでは1本のアンテナを使用します。


表1:LPWAプロトコルの性能比較。LTE CAT 1ではRxダイバーシティに2本のアンテナを使用し、LTE Cat 1bisでは1本のアンテナを使用します。(画像提供:Wikipedia、Jens Wallmann氏)

グローバルで利用可能なLTE Cat 1移動無線

 u-bloxのLARA-R6シリーズは、無線アクセス技術(RAT)LTE Cat 1の周波数分割複信(FDD)と時分割複信(TDD)規格向けに設計された堅牢なセルラー無線モジュールで構成されています。また、フォールバックソリューションとして、3G UMTS/HSPAと2G GSM/GPRS/EGPRSをサポートしています。これらのモジュールは、グローバル/マルチリージョンをカバーする優れたソリューションであり、26×24mmの小型LGAフォームファクタで提供されます。

 多彩なインターフェース、広範な機能、マルチバンド機能とマルチモード機能を備えたLARA-R6モジュールは、中程度のデータ速度で、シームレスなコネクティビティ、優れたカバレッジ、低レイテンシを必要とするアプリケーションに適しています。そのようなアプリケーションには、資産追跡、テレマティクス、遠隔監視、アラームセンター、ビデオ監視、コネクテッドヘルス、POS端末などがあります。

 すべてのモジュールがRxダイバーシティをサポートし、困難なカバレッジ条件やボイスオーバーLTE(VoLTE)が必要な場合に信頼性の高い性能を発揮します。プログラマは、組み込みIoTプロトコル(LwM2M、MQTT)とセキュリティ機能(TLS/DTLS、セキュアアップデート、セキュアブート)を活用することで、デバイス管理、リモートデバイス制御、セキュアなファームウェアオーバーザエア(FOTA)アップデートなど、さまざまな機能を実装できます。

 LARA-R6シリーズは、3GPP Release 10に準拠したLTE Cat 1をサポートし、以下の3つの地域バリアントでグローバルカバレッジを実現します。

LARA-R6001-00B(データと音声)、LARA-R6001D-00B(データのみ)のモジュールは、18のLTE FDD/TDD周波数帯に加え、3G/2Gフォールバックに対応し、グローバルコネクティビティを実現します。

LARA-R6401-00B(データと音声)、LARA-R6401D-00B(データのみ)のモジュールは、AT&T、FirstNet、Verizon、T-MobileのLTEバンドに対応し、北米に理想的なLTE Cat 1ソリューションを提供します。

LARA-R6801-00B(データと音声)、LARA-R6801D-01B(データのみ)のモジュールは、ヨーロッパ、中東(EMEA)、アジア太平洋(APAC)、日本(JP)、中南米(LATAM)の各地域で展開するように設計されています(図1)。


図1:世界中をカバーするLARA-R6モジュールの3つの地域バリアント。(画像提供:DigiKey、筆者修正)

LARA-R6の主な特長

 LARA-R6モジュールは、外部インターフェースを備えたセルラーベースバンドプロセッサ、アンプとフィルタを備えたRFトランシーバ、メモリ、電源管理ユニットを内蔵しています(図2)。


図2:LARA-R6モジュールの内部構造。(画像提供:u-blox)

 RFトランシーバは、700MHz、800MHz、850MHz、900MHz、1.7GHz、1.8GHz、1.9GHz、2.1GHz、2.6GHzの周波数帯域で動作します。セルラーベースバンドプロセッサのすべてのデータ転送プロトコルは、外部UARTおよびUSBインターフェースを使用し、ATコマンドで制御と設定ができます。

●プロトコル

・デュアルスタックIPv4およびIPv6
・組み込みTCP/IP、UDP/IP、FTP、HTTP
・組み込みMQTTおよびMQTT-SN
・組み込みLwM2M
・eSIMおよびベアラ独立プロトコル(BIP)

 LARA-R6モジュールは3.1~4.5Vの電源電圧を必要とし、アイドル時の消費電流は約1.1mAです。2G動作では、個々のTDMAタイムスロットは1mW(dBm)(2.0W超)を基準として33dBmを超えるピーク送信電力に達する可能性があり、その他すべてのRATは24dBm(0.25W超)を超えるレベルに達します。

 0.1pW未満の信号電力に対応する-100dBm未満の優れたアンテナ感度により、モバイルネットワークのエッジでの安定した無線接続が可能になります。

●評価とプログラミング

 LARA-R6モジュールの評価やプログラミングを開始する最も迅速な方法は、R6 EVB(EVK-R6)と対応する地域のプラグインLARA-R6アダプタボード(ADP-R6)を使用することです。たとえば、グローバルアプリケーション用のEVK-R6001-00Bには、プラグインアダプタボードADP-R6001-00B(音声+データ)とGNSSアダプタボードが内蔵されています(図3)。


図3:LARA-R6 EVB(EVK-R6)と付属するLARA-R6アダプタボード(下)、GNSSボード(左上)。(画像提供:u-blox)

 北米向けのEVK-R6401-00Bには ADP-R6401-00Bアダプタが内蔵され、EMEA/APAC/JP/LATAM向けのEVK-R6801-00BにはADP-R6801-00Bアダプタが内蔵されています。

 また、ADP-R6401D-00B(北米)やADP-R6001D-00B(グローバル)など、前述した音声とデータ伝送用の3つのアダプタボードも、データ伝送のみのバージョンとして別途入手が可能です。

 LARA-R6アダプタボードは、2本のアンテナと2つのMiniUSBコネクタでLARA-R6モジュールを拡張します。LARA-R6 EVBは、GNSSモジュール、SIMカードスロット、追加のプラグイン接続、ジャンパ、スイッチ、電源をモジュール周辺機器に追加します(図4)。


図4:GNSSボードとLARA-R6アダプタボードを接続したLARA-R6 EVBの機能ブロック図。(画像提供:u-blox)

 各キットには、u-bloxのLTE Cat 1 LARA-R6アダプタボードとGNSSモジュールが付属したEVBが1台、USBケーブルが1本、LTE移動無線アンテナが2本、GPS/GLONASSアンテナが1本、電源ユニットが1台含まれています。

EVKのコミッショニング

 u-bloxの使いやすく強力なEVK-R6キットは、マルチモードLTE Cat 1/3G/2Gセルラーモジュールの評価を簡素化します。LARA-R6 USBドライバをインストールしたWindows PCは、USBコネクタ経由でLARA-R6モデムを制御し、システム設定による接続設定を簡素化します。まず、開発者は以下のことを行う必要があります。

(1)SIMカードを挿入し、両方のセルラーアンテナとGNSSアンテナを接続します。
(2)EVKのジャンパとスイッチを慎重に設定します。
(3)電源電圧を印加し、EVBのメインスイッチSW400をオンにします。
(4)
 ・「メインUART」インターフェースを介し低データレートモデムとして動作させるには、PCをEVKのMiniUSBジャックJ501やRS232ジャックJ500に接続する。
 ・「2つのUART」経由で低データレートモデムとして動作させるには、PCをADPのセルラーUSBジャックJ201インターフェースに接続する。
 ・「ネイティブセルラーUSB」を介して高データレートモデムとして動作させるには、PCをADPのMiniUSBジャックJ105に接続する。
(5)EVBのセルラー電源オンボタンSW302を押します。
(6)ターミナルアプリケーションソフトウェア(m-centerなど)を実行し、COMポートのセットアップメニューから、4a、4b、4cに対応するATポートを選択して、以下の値を設定します。
 ・データレート:115,200bps、データビット:8、パリティ:N、ストップビット:1。

 詳細については、EVK-R6_UserGuide_UBX-21035387を参照してください。m-centerツールは、u-bloxのセルラー製品の評価、設定、テストに役立ち、ATコマンドターミナルを搭載しています。

Windows PCを使用したシンプルなインターネット接続

 Windows PCをEVKに接続すると、以下に示す2つの方法でワイヤレスインターネット接続を確立できます。

(1)低速パケットデータ接続
 LARA-R6モジュールのUARTインターフェースを介してWindows PCのTCP/IPスタックを使用します。PCとEVKは、メソッド4aに従って接続されます。開発者は、Windowsのコントロールパネルを使用し、[電話とモデム] > [モデム] > [追加]を選択する必要があります。次のステップでは、[モデムを検出しない]チェックボックスを選び、[標準33.6kbpsモデム]を選択し、COMポートを割り当てます。必要に応じて、[プロパティ] > [詳細設定] > [追加の初期化コマンド]を追加することができます。

(2)高速パケットデータ接続
 LARA-R6モジュールのセルラーネイティブUSBインターフェースにより、Windows PCのTCP/IPスタックを使用してインターネットにアクセスします。PCとEVKは、メソッド4cに従って接続されます。開発者は、Windowsのコントロールパネルから[ネットワークと共有センター] > [新しい接続またはネットワークのセットアップ]を選択し、[インターネットに接続します]をクリックする必要があります。次のステップでは、[ダイヤルアップ]とAT USBポートの1つを選択します。最後に、ダイヤルアップパラメータ(ダイヤルイン番号、プロバイダ名、ユーザーID、パスワード)を入力します。

携帯電話会社へのSIMカードの登録

 SIMカードとMNOパラメータが設定されると、電源投入後、セルラーモジュールは自動的にセルラーネットワークに登録されます。問題がある場合は、表2に示すATコマンドを使用して手動で登録を確認できます。


表2:AT登録コマンド。(表提供:u-blox、筆者修正)

●ATコマンドによるリモートHTTPサーバとの通信

 GitHubリポジトリ 「Firechip_u-blox_LARA-R6_Arduino_Library」には、Arduinoコントローラ用にC++で記述された、LARA-R6モジュール用ATコマンドの広範なライブラリが含まれています。ピングテスト、登録、パケットスイッチ、SMS、GNSS、IoTクラウドを含む16のアプリケーション例により、カスタムコード構造の提案を提供します。

 ATコマンドは、アクティブな接続中にリモートのHTTPサーバにリクエストを送信し、サーバの応答を受信して、その応答を透過的にローカルファイルシステムに保存することもできます。サポートされているメソッドは、HEAD、GET、DELETE、PUT、POSTファイル、POSTデータです。

 Lara_R6_Example9は、HTTP POSTまたはGETを使用して、リモートHTTPサーバ ThingSpeak.comにランダムな温度を送信します。ThingSpeakはMathWorksが提供するIoT分析プラットフォームサービスで、クラウド上のライブデータストリームを集約、視覚化、分析するのに役立ちます。表3は、HTTPコマンド「POSTデータ」の構文を示しています。


表3:「POSTデータ」はHTTPコマンド番号5で、図のようなフォーマットになっています。(表提供:u-blox、筆者修正)

 この例は、Arduinoホストコントローラでプログラムでき、ATコマンドでEVKボード上のLARA-R6モジュールを制御します。また、設定済みのSIMカードが必要です。

 プログラマはThingSpeakユーザーアカウントを作成し、メニュー項目[チャネル] > [マイチャネル] > [新しいチャネル]でランダム温度測定値のフィールド1を設定する必要があります。対応する「Write API Key」はメインプログラムに入力され、「LARA-R6_Example9_ThingSpeak.ino」は変数myWriteAPIKeyに入力されます。

 C++のメインプログラムは、ランダムな温度値を生成し、クラウド固有のデータ文字列を形成して、20秒ごとにライブラリ関数sendHTTPPOSTdataを呼び出します(リスト1)。

...
1    String myWriteAPIKey = "PFIOEXW1VF21T7O6"; // Change this to your API key
2    String serverName = "api.thingspeak.com"; // Domain Name for HTTP POST/GET
3    [...]

4    void loop()
5    {
6         // Create a random temperature between 20 and 30
7         float temperature = ((float)random(2000,3000)) / 100.0;
8
9
10        // Send data using HTTP POST
11        String httpRequestData = "api_key=" + myWriteAPIKey + "&field1=" + String(temperature);
12
13        Serial.print(F("POSTing a temperature of "));
14        Serial.print(String(temperature));
15        Serial.println(F(" to ThingSpeak"));
16
17        // Send HTTP POST request to /update. The reponse will be written to post_response.txt in the LARA's file system
18        myLARA.sendHTTPPOSTdata(0, "/update", "post_response.txt", httpRequestData, LARA_R6_HTTP_CONTENT_APPLICATION_X_WWW);
19
20
21        // Send data using HTTP GET
22            ==> see original code on Github
23
24        for (int i = 0; i < 20000; i++) // Wait for 20 seconds
25        {
26            myLARA.poll(); // Keep processing data from the LARA so we can catch the HTTP command result
27            delay(1);
28        }
29    }
...
リスト1:このメインプログラムは、ランダムな温度値を生成し、20秒ごとにライブラリ関数sendHTTPPOSTdataを呼び出します。(コード提供:Firechip on Github)

●ライブラリ関数を呼び出すATコマンド文字列の生成

 ライブラリヘッダ「Firechip_u-blox_LARA-R6_Arduino_Library.h」は、関数呼び出しsendHTTPPOSTdataをライブラリプロシージャ「Firechip_u-blox_LARA-R6_Arduino_Library.cpp」に転送し、そこで完全にフォーマットされたATコマンド文字列が生成されて送信されます(リスト2)。

...
1    LARA_R6_error_t LARA_R6::sendHTTPPOSTdata(int profile, String path, String responseFilename, String data,
                                                                              LARA_R6_http_content_types_t httpContentType)
2    {
3         LARA_R6_error_t err;
4         char *command;
5
6         if (profile >= LARA_R6_NUM_HTTP_PROFILES)
7             return LARA_R6_ERROR_ERROR;
8
9         command = lara_r6_calloc_char(strlen(LARA_R6_HTTP_COMMAND) + 24 + path.length() + responseFilename.length()
                             + data.length());
10        if (command == nullptr)
11            return LARA_R6_ERROR_OUT_OF_MEMORY;
12        sprintf(command, "%s=%d,%d,\"%s\",\"%s\",\"%s\",%d",
                      LARA_R6_HTTP_COMMAND, profile, LARA_R6_HTTP_COMMAND_POST_DATA,
                      path.c_str(), responseFilename.c_str(), data.c_str(),
                      httpContentType);
13
14        err = sendCommandWithResponse(command, LARA_R6_RESPONSE_OK_OR_ERROR, nullptr, LARA_R6_STANDARD_RESPONSE_TIMEOUT);
15
16        free(command);
17        return err;
18    }
...
リスト2:このC++ライブラリプロシージャは、完全にフォーマットされたATコマンド文字列を生成して送信します(12行目)。(コード提供:Firechip on Github)

 ライブラリプロシージャLARA_R6::sendHTTPPOSTdata(リスト2)は、関数呼び出しmyLARA.sendHTTPPOSTdata()(リスト1)の渡されたパラメータとライブラリヘッダから追加宣言された変数を使用し、表3に従って完全なHTTPコマンド文字列を生成します。最後に、LARA-R6モデムは結果のATコマンド文字列をThingSpeakのリモートHTTPサーバに送信します。

AT+UHTTPC=0,5,"/update","post_response.txt","api_key=PFIOEXW1VF21T7O6&field1=21.54",0

まとめ

 低電力IoTやM2Mアプリケーションのグローバルネットワーキングにおいて、LARA-R6シリーズのLTE Cat 1マルチモード無線モジュールは効率的で費用対効果に優れています。上述したように、開発者はEVKを使用してすべてのインターフェースにすぐにアクセスでき、ATコマンドでモジュールのプロトコルや機能を簡単に設定・制御できます。それにより、PCモデムとして動作し、クラウドにデータを送信し、ライブラリ関数を介してATコマンド文字列を生成するための簡単なオプションが提供されます。




免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKey Electronicsの意見、信念および視点またはDigiKey Electronicsの公式な方針を必ずしも反映するものではありません。

 

このページのコンテンツはDigiKey社より提供されています。
英文でのオリジナルのコンテンツはDigiKeyサイトでご確認いただけます。


DigiKey社の全製品は 1個からマルツオンラインで購入できます

※製品カテゴリー総一覧はこちら



ODM、OEM、EMSで定期購入や量産をご検討のお客様へ【価格交渉OK】

毎月一定額をご購入予定のお客様や量産部品としてご検討されているお客様には、マルツ特別価格にてDigiKey社製品を供給いたします。
条件に応じて、マルツオンライン表示価格よりもお安い価格をご提示できる場合がございます。
是非一度、マルツエレックにお見積もりをご用命ください。


ページトップへ