新しい種類のワイヤレスMCUおよびモジュールによりIoTアプリケーションへの接続が可能に
DigiKeyのヨーロッパ担当編集者の提供
2016-08-16
モノのインターネット(IoT)ベースのビジネスモデルはすべて、多数のエッジノードから、クラウドベースの分析やコントロールアプリケーションとの間で、信頼性が高くセキュアなワイヤレス通信を必要とします。 マイクロコントローラベースのセンサやアクチュエータを設計するとき、開発者は各種のMCU開発プラットフォームと、ツールチェーンを利用できます。 従来は、ワイヤレス通信の設備を整えることは簡単ではありませんでした。 地域的な規制に対するワイヤレスの承認、独自に検証されたワイヤレスプロトコルスタックを使用または構築する必要性、RFに関するすべての複雑性といった問題点から、設計エンジニアは多くの場合に、個別の設計を構築する課題に直面することを避け、認定済みのワイヤレスモジュールを使用します。
新しい種類のワイヤレスMCUおよびモジュールの特長は、ワイヤレス接続性と、IoTのエッジノードやセンサにおける比較的低い計算力への要求を満たすことで、このために追加のMCUホストは必要ありません。 これらのホストを持たない、スタンドアロンのデバイスやモジュールにより、設計プロセスの全体が高速化され、簡素化されます。 ただし、開発者の要求に応えるためには、適切なモジュールを利用できるだけでは十分ではありません。 今日の製品開発環境においては、組み込み機器のエンジニアはモジュールの能力すべてを最初から学習する時間がありません。 ソフトウェアドライバ、コードスニペット、評価プラットフォームはますます、デバイスの能力自体と同様に重要になってきています。 開発者がデバイスとクラウドとの通信を短時間に達成できれば、早期に市場投入して商業的に成功する可能性が高くなります。
あらゆる要求に対応可能なワイヤレスMCUの例として、Texas Instruments製のCC3200 SimpleLink™シリーズのデバイスが挙げられます。 SimpleLinkデバイスを補完するため、評価ボード、サンプルコード、包括的なSDKの完全なエコシステムが用意されています。 CC3200には、80MHzで動作するARM® Cortex®-M4アプリケーションマイクロコントローラが内蔵され、802.11 b/g/n Wi-Fiネットワークプロセッササブシステムが搭載されており、各種のパッケージサイズで利用可能です。 この2番目のサブシステムには専用のARM MCUコアが内蔵され、Wi-Fi通信スタックのすべての負荷をアプリケーションMCUから取り除くことができます。

図1:CC3200ハードウェアの概略ブロック図
CC3200はバッテリ駆動のIoT設計に最適化され、バッテリ管理機能や、GPIO、UART、SPI、PWM、および4チャンネルの12ビットADCを含む包括的な一連のペリフェラルインターフェースなど、他の多くの機能も搭載されています。 主な機能セットの図解を図1に示します。 CC3200は256kBのRAMを内蔵し、256ビットのハードウェア暗号化エンジンによりAES、DES、3DES暗号化とともにSHA2およびMD5認証機能を高速に処理できます。 独自の電力管理サブシステムと、内蔵のDC/DCコンバータにより、広い範囲の電源電圧に適応できるだけでなく、低消費電力モードを制御できます。最低のモードでは、デバイスはRTCを実行したままハイバネートモードへ移行します。 このモードでの消費電力は4μA未満です。

図2:CC3200の組み込みソフトウェアの概要
CC3200の別の観点として、デバイスの組み込みソフトウェアの機能を図2に示します。 Wi-FiサブシステムはStation、Access Point、およびWi-Fiダイレクトモードと、WPA2パーソナルおよびエンタープライズのセキュリティ、およびWPS 2.0をサポートします。 TCP/IP、TLS/SSL、HTTPサーバースタックがオンチップに組み込まれています。
CC3200の能力の全体を図3に示します。強調されているのは、GPIOおよびペリフェラルインターフェース、電力管理、および必要な追加パッシブ部品数が比較的少ないことです。
図3:CC3200の機能ブロック図
CC3200がどのような思想で設計されているのかは、このデバイスのピン多重化機能を調べると理解できます。 ピン多重化は、多数のペリフェラルインターフェース機能を、可能な限り小さなパッケージに収納するための一般的な方法で、ペリフェラルのセットを特定のピンにマッピングします。 ピン多重化は、ハードウェア構成とレジスタ制御の組み合わせにより実現されます。 このプロセスの完全な詳細とマッピングオプションについては、TI CC3200データシートに記載されています。 設計作業を支援するため、TIは多くの異なる使用事例について、推奨されるピン多重化構成の表を作成しました(図4)。 この手法は、広範なアプリケーションについて初期段階で設計を明確化し、ペリフェラルのセットと利用可能なピン出力を十分に活用するため役立ちます。
| CC3200の推奨されるピン出力のグループ化使用例(1) | |||||||||||
| ホームセキュリティ、ハイエンドの玩具 | Wi-Fi Audio ++ 産業用 | センサタグ | ホームセキュリティ、玩具 | Wi-Fi Audio ++ 産業用 | Wi-Fi Remote、7x7キーパッドおよびオーディオ付き | センサによるドアロック、火災警報、カムなしの玩具 | 産業用家電 | 産業用家電、スマートプラグ | 産業用家電" | GPIO | |
| 外部32kHz(2) | 外部32kHz(2) | 外部TCXO 40MHz(-40~85°C) | |||||||||
| Cam + I2S(TxまたはRx) + I2C + SPI + SWD + UART-Tx + (App Logger)2 GPIO + 1 PWM + *4オーバーレイ、ハイバネーションからのウェークアップ | I2S(TxまたはRx)+ 1 Ch ADC + 1x 4線式UART + 1x 2線式UART + 1ビットSDカード + SPI + I2C + SWD + 3 GPIO + 1 PWM + 1 GPIO、ハイバネーションからのウェークアップ | I2S(TxまたはRx)+ 2 Ch ADC + 2線式UART + SPI + I2C + SWD + 2 PMW + 6 GPIO + 3 GPIO、ハイバネーションからのウェークアップ | Cam + I2S(TxまたはRX) + I2C + SWD + UART-Tx + (App Logger)4 GPIO + 1 PWM + *4オーバーレイ、ハイバネーションからのウェークアップ | I2S(TxおよびRx)+ 1 Ch ADC + 2x 2線式UART + 1ビットSDカード + SPI + I2C + SWD + 4 GPIO + 1 PWM + 1 GPIO、ハイバネーションからのウェークアップ | I2S(TxおよびRx)+ 1 Ch ADC + UART(Txのみ) I2C + SWD + 15 GPIO + 1 PWM + 1 GPIO、ハイバネーションからのウェークアップ | I2S(TxおよびRx)+ 2 Ch ADC + 2線式UART + SPI + I2C + 3 PWM + 3 GPIO、ハイバネーションからのウェークアップ + 5 GPIO SWD + | 4 Ch ADC + 1x 4線式UART + 1x 2線式UART + SPI + I2C + SWD + 1 PWM + 6 GPIO + 1 GPIO、ハイバネーションからのウェークアップ、外部の40MHz TCXO対応 | 3 Ch ADC + 2線式UART + SPI + I2C + SWD + 3 PWM + 9 GPIO + 2 GPIO、ハイバネーションからのウェークアップ | 2 Ch ADC + 2線式UART + I2C + SWD + 3 PWM + 11 GPIO + 5 GPIO、ハイバネーションからのウェークアップ | ||
| ピン番号 | ピン配列#11 | ピン配列#10 | ピン配列#9 | ピン配列#8 | ピン配列#7 | ピン配列#6 | ピン配列#5 | ピン配列#4 | ピン配列#3 | ピン配列#2 | ピン配列#1 |
図4:CC3200の推奨されるピン多重化構成
CC3200デバイスをアプリケーションに組み入れる場合、多くの開発オプションを選択できます。 アプリケーション用の独自のPCBを設計する以外に、CC3200モジュールの使用も選択できます。このモジュールには、スクリーニングされたCC3200、パッシブコンポーネントのサポート、水晶発振器、チップアンテナが、わずか20.5 x 17.5 x 1.5mmの小型のモジュールに搭載されています。
CC3200モジュールのプロトタイプ作成には、CC3200 LaunchPad XL評価ボードが役立ちます(図5)。 USB経由で直接PCへ接続でき、フラッシュプログラミング用のJTAGエミュレーション機能も内蔵されているため、このボードは幅広いユーザーのLED、プッシュボタン、加速度計、温度計の選択肢をホストできます。

図5:CC3200 LaunchPad XL評価ボード
TIはSimpleLinkファミリ専用に、製品ページ、ソフトウェア開発Wiki、クラウドエコシステムパートナー専用ページなど、多くのリソースを用意しています。 SimpleLink SDKはWikiからダウンロードでき、多くのサンプルアプリケーション、アプリケーションのソースコード、技術情報が含まれています。 TIは、このSDKとともに使用するため、業界で認知されている多くのIDEの使用を推奨しています。これには、自社製のCode Composer StudioとIAR Workbenchがあります。 includeおよびヘッダーファイルに加えて、GCC makeスクリプトやその他のライブラリ関数も提供されています。 サンプルコードには優れたドキュメントが付属しており、アプリケーションの記述、構成可能な主要なパラメータ、それらの動作について記載されています。 それぞれについて、Cのソースコードとヘッダーファイルの完全なセットが含まれています。例の1つとして、CC3200が‘openweathermap.org’というサイトと通信し、特定の都市について詳細な気象情報を要求し、接続されているハイパーターミナルにその情報を表示する方法を示しています。 この出力を、図6に示します。

図6:CC3200のGet Weatherアプリケーションからの出力
他のコードサンプルは、MQTTクライアント/サーバーアプリケーションの実装、電子メールのデモ、およびハイバーネートモードを完全に活用するセンサベースの設計についてカバーしています。
CC3200 SDKで提供されているアプリケーション例はC/C++の使用に特化していますが、多くの他のオプションも利用可能です。 使用可能な別の言語の1つはMicroPythonです。 MicroPythonは、Python 3インタープリタプログラミング言語を基礎として、Kickstarterキャンペーンの出資募集が成功した結果作成されたもので、マイクロコントローラでの使用に最適化されています。 MicroPythonのネットワーク対応版はCC3200デバイスを完全にサポートしており、そのサイトからダウンロードできます。
Wi-Fi通信およびアプリケーションプロセッサのプロビジョニングに対応するCC3200 SimpleLink手法は、IoT市場全体にわたって広い支持を得ています。 このような例の1つとして、IBMは、MQTTを使用してCC3200 LaunchPadをIBMのWatson IoT Foundation Platformへ接続する方法を提示しています。 その他のクラウドプラットフォームエコシステムパートナーとして、TembooとXivelyが挙げられます。
他の認定済みスタンドアロンWi-Fiモジュールファミリとして、Silicon Labs製のBluegiga WF121シリーズが挙げられます(図7)。 CC3200と同様に2つの主要なコンポーネント部品で構成され、アプリケーションマイクロコントローラには80MHzで動作するMicrochip PIC32シリーズの32ビットマイクロコントローラが使用され、2.4GHz 802.11 b/g/n準拠のワイヤレス機能が搭載されています。 リファレンスガイドやサンプルアプリケーションを含むシリーズの完全な詳細については、ここをご覧ください。

図7:Silicon Labs Bluegiga WF121
ホストとワイヤレストランシーバ間の通信は、図8に示すように、UART、USB、SPIを使用して行われます。 この図には、ソフトウェアのアーキテクチャも示されています。 BGLib ANSI Cホストライブラリを使用してマイクロコントローラ用のアプリケーションをプログラムすることもできますが、Bluegigaのスクリプト言語であるBGScriptを使用することもできます。 この言語はBASIC形式のプログラミング構造を基盤としており、相当に複雑で強力なアプリケーションを作成する方法を、単純かつ容易に習得できます。 この言語には、ワイヤレスリンク、セキュリティ、データ転送の設定、および利用可能なペリフェラル、GPIO、SPI、I2Cなどとの相互動作のためのコマンドや関数が用意されています。

図8:Bluegigaソフトウェア環境
BGScriptは、Bluetooth接続を提供するものも含めて、スタンドアロンのBluegigaモジュールファミリ全体にわたっても使用できます。 モジュールのADCを読み出す短いBGScriptサンプルコードを、図9に示します。

図9:ADCを読み出すBGScriptサンプル
Bluegiga DKWF121は、WF121モジュールを使用してWi-Fiスタンドアロン設計のプロトタイプを作成するための評価ボードです。 このボードは、モジュールで利用可能なすべてのピン配列をホストできるため、試験用の設計へ簡単に接続できます。 すべてのGPIOピンは、大きなプロトタイプ用領域の周囲にあるパッドに出力されています。 便利なオンラインカタログのページには、DKWF121を使い始めるため必要なすべての情報が記載されています。このカタログは、DigiKeyのサイトで入手できます。
以前に述べたように、BluegigaファミリにはBLE113などスタンドアロンのBluetoothモジュールも含まれています。 BGScriptを使用したアプリケーション開発は、小型でバッテリ駆動のアプリケーションやアクセサリを対象としており、リンクの確立やデータの転送に非常に便利で、簡単に使用できます。 Bluegiga製品ラインナップは、広範なIoT開発者や専門メーカーのコミュニティにより手厚くサポートされているため、Node.js用のbglibやPython用のbgapi_pyなど、他の開発言語をサポートするライブラリも利用可能です。 Node.jsライブラリを使用して、受信したBluetoothデータを解析して別々の変数に分離する作業が簡単に行えることを、図10に示します。

図10:Node.js用のBGLibライブラリを使用して、Bluegiga BLE113モジュールでBluetooth受信データを解析するプログラム
認定済みのワイヤレスモジュールを使用すると、IoTアプリケーションの設計が大幅に迅速化されますが、スタンドアロンのワイヤレスモジュールを使用すると、設計作業全体がさらに単純化され、総合的なBOMを減らすことができます。 この手法を検討するとき、組み込み機器のエンジニアはハードウェアの能力だけでなく、ソフトウェアツールの数、プログラミング言語の柔軟性、利用可能なサンプルアプリケーションについても確認することをお勧めします。 この手法により、スタンドアロンIoTデバイスを迅速に市場へ送り出し、貴重な設計リソースと予算を節約できます。
免責条項:このウェブサイト上で、さまざまな著者および/またはフォーラム参加者によって表明された意見、信念や視点は、DigiKeyの意見、信念および視点またはDigiKeyの公式な方針を必ずしも反映するものではありません。
