電池駆動のBluetooth 5認証マルチセンサIoTデバイスの迅速なデプロイ
DigiKeyの北米担当編集者の提供
2019-11-13
開発の現場は今、幅広い市場で急速に高まる、Bluetooth対応のポータブルなマルチセンサ設計の需要に直面しています。しかし、有効なソリューションを見つけるのは容易ではありません。めまぐるしく変化する機会を活用するためには、超低電力性能という基本要件に加えて、デバイスツークラウドのモノのインターネット(IoT)アプリケーションの試作、評価、カスタマイズを迅速に行えることが不可欠です。
この記事では、ON Semiconductorの超低電力Bluetoothプロセッサシステムオンチップ(SoC)を詳しく紹介し、このSoCやそのシステムインパッケージ(SiP)版が電池駆動設計の基本要件をどのようにして満たしているかを説明します。対応評価ボードとIoT開発環境を使用することで、デバイスツークラウドのマルチセンサアプリケーションの開発プロセスは、さらに大幅に簡素化されます。
低電力Bluetoothアプリケーション
Bluetooth対応の電池駆動デバイスは、フィットネスウェアラブルをはじめ、医療用監視装置、照明、施錠器具、家電、自動車など、幅広いスマート製品アプリケーションにおいて、接続機能と処理機能を提供します。ユーザーの期待と競合のプレッシャーから、必要性をますます高めているのが、多数のセンサを使用することで得られる正確なデータを活用した、より総合的なアプリケーションです。マルチセンサ対応が不可欠となっている分野もあります。たとえば産業用アプリケーションでは、作業者の安全や機器の状態の管理、または基本的な資産管理のために、動き、振動や衝撃、温度、湿度などのデータを検知する必要があります。
ユーザーは日々活動するため、これらのデバイスは複数のセンサからのデータを確実に伝達するだけでなく、電池の交換や充電を必要とする頻度を少なくする必要もあります。満足して使っていただくために、これは非常に重要です。それと同時に、その基礎となるソリューションは、電池駆動Bluetooth製品の設計につきまとうコストや複雑性を低減するものでなければなりません。
そのようなソリューションの1つが、ON SemiconductorのNCH-RSL10-101WC51-ABG RSL10 SoCです。超低電力動作という要件を満たしているだけでなく、SiP用のハードウェア基盤と評価ボードが用意されており、最終製品開発までの時間が短縮されます。また、RSL10ベースの統合ソリューション開発に、ON Semiconductorのカスタム設計用ソフトウェアか、スピード開発を支援するDigiKeyのDK IoT Studioを使用すれば、超低電力マルチセンサアプリケーションのデプロイと評価を迅速に行うことができます。
RSL10 BluetoothワイヤレスSoCの中身
RSL10は、ウェアラブルやモバイル製品などのコネクテッド製品において高まる超低電力設計ニーズに対応するために開発された、Bluetooth 5認証ワイヤレスSoCです。RSL10には幅広いサブシステム群と機能ブロック群が統合されており、一般的なBluetooth対応IoTデバイスやウェアラブルの要件をシングルチップソリューションで満たすことができます(図1)。
図1:ON SemiconductorのRSL10 SoCには、プロセッサと無線のサブシステムが統合されています。Bluetooth 5認証デバイス向けに、すべてを備えた超低電力ソリューションを提供します。(画像提供:ON Semiconductor)
RSL10の主な処理ブロックとして、Arm® Cortex®-M3コア、独自のLPDSP32コア(32ビットのデュアルハーバード型アーキテクチャのデジタル信号処理(DSP)コア)、すべてが備わったBluetooth 5認証無線サブシステムがあり、すべてに専用および共有メモリ領域があります。コードとデータの保護については、RSL10のオンチップフラッシュ、ランダムアクセスメモリ(RAM)コアに対する外部からのアクセスを防ぐメカニズムをIPブロックで実現しています。また、標準的なシリアルペリフェラルすべてと、4チャンネルのアナログ-デジタル変換回路(ADC)、汎用IO(GPIO)、オーディオインターフェースを装備しています。そして、複数の電圧レギュレータが個々に内部電源ドメインへ給電することで、1.1~3.3Vの電圧源1つでの動作を可能にしています。
RSL10は、802.15.4低速ワイヤレスパーソナルエリアネットワーク(WPAN)プロトコル各種に対応できますが、組み込みハードウェアとソフトウェアを組み合わせて、Bluetoothを包括的にサポートしています。ハードウェアサポートは、統合型無線周波数(RF)フロントエンド上に構築されます。ここにはBluetoothの物理レイヤ(PHY)が実装されています。ベースバンドコントローラはRFフロントエンドと連携して、Bluetoothプロトコルスタックのパケットおよびフレーム処理レイヤのハードウェアサポートを提供します。ここにある小さな組み込みソフトウェアカーネルは、RFトラフィック管理、メッセージ交換、タイマ機能に使用するイベントおよびメッセージの処理サービスを提供します。また、Bluetoothライブラリと関連プロファイルライブラリがArm Cortex-M3プロセッサ上で実行され、アプリケーションソフトウェアのBluetoothフルスタックを構成しています(図2)。
図2:ON SemiconductorのRSL10 SoCは、Arm Cortex-M3コアと専用ハードウェア(ベースバンドコントローラと、ベースとなっているRFフロントエンドを含む)で実行されるソフトウェアを組み合わせることで、Bluetoothのフルスタックを構成しています。(画像提供:ON Semiconductor)
RFフロントエンドとベースバンドプロセッサのハードウェアサポート上に構築されるソフトウェアスタックは、下位のBluetooth Low Energy(BLE)プロトコルサービスレイヤ(Logical Link Control and Adaptation Protocol(L2CAP)、Attribute Protocol(ATT)、Security Manager Protocol(SMP)など)、接続の定義に使用するGeneric Access Profile(GAP)、サービスと特性に基づいたデータ交換の定義に使用するGeneric Attribute Profile(GATT)で構成されています。
このBluetoothプロトコルスタックに加えて、RSL10のプロファイルライブラリでは、ウェアラブルアプリケーション(心拍数、グルコース監視、血圧など)でよく使用される標準的なBluetoothプロファイル各種、Rezenceワイヤレス充電プロファイル、ヒューマンインターフェースデバイス(HID)のほか、位置、ランニング、サイクリングなどのプロファイルもサポートしています。
効率性能
RSL10に関して、設計者にとって最も重要なことはおそらく、データレート62.5~2000kbpsのBluetooth接続ができるのに、消費する電流が比較的少ないという点でしょう。給電1.25V(VBAT)におけるピーク受信(Rx)電流は5.6mAであり、VBATが3Vの場合はわずか3.0mAです。またピーク送信(Tx)電流は、VBATが1.25Vで8.9mA、送信電力は0dBm(デシベルミリワット)であり、VBATが3Vで4.6mA、送信電力は0dBmです。
RSL10はそのアーキテクチャをいかして高いエネルギー効率を実現しており、EEMBC ULPMark Core Profileは3Vで1090、2.1Vで1260という、業界最高水準のスコアを認定されています。
RSL10がフル実行モード時に一部のハードウェアブロックを無効化するか、アイドル時に低電力スタンバイモードかディープスリープモードにすることで、さらにエネルギー効率を高めることができます。特筆すべきは、トランシーバイベントの間にもBLE接続を維持するために、RSL10が自動的にこの電力モードメカニズムを使用するという点です。その結果、RSL10は3つのBluetoothアドバタイジングチャンネルすべてにおいて、Bluetoothアドバタイジング動作を5秒間隔で実施しながら、1.1mAしか消費しません。
スタンバイモードにすることで、活動の少ない時間が数百~数ms(ミリ秒)続いたときに電力を節約することができます。
スタンバイモード中、RSL10はロジックとメモリに対してクロックゲーティングを行い、供給電圧を下げてリーク電流を減らします。その結果、多くの場合に電力消費を30mAまで抑えられます。オンチップの電源回路はアクティブなままなので、比較的速くアクティブな動作状態に戻れます。
ディープスリープモードには、外部イベントに応答可能なまま、電力消費レベルを大幅に下げるためのオプションが複数用意されています。このモードでRAMを8Kbyte維持した場合、VBATが1.25Vでは300nA、VBATが3Vでは100nAしか消費しません。最もディープなスリープモードにした場合、1.25Vでわずか50nAしか消費しなくなります(VBATが3Vでは25nA)。その間でも、専用WAKEUPピンに信号を受信すると復帰できます。
統合型設計
RSL10の幅広い機能性により、性能やBluetooth接続を損なうことなく、消費電力を最適化して設計できます。統合レベルが高いため、シンプルなハードウェア設計が可能です。キャパシタの統合をはじめとする特長により、リアルタイムクロック(RTC)に32kHz水晶、またはRFフロントエンドとメインシステムクロックに48MHz水晶発振器という、外部キャパシタのよくある要件から解放されます。その結果、RSL10の設計を完成させるために必要とする外部コンポーネント数を最低限に抑えられます(図3)。
図3:ON SemiconductorのRSL10 SoCは、この降圧モードの構成が示すとおり、その統合レベルの高さにより、比較的少ない数の外部コンポーネントで設計を完成させることができます。(画像提供:ON Semiconductor)
RSL10には複数のプログラマブル電圧レギュレータが統合されており、デジタルブロック、メモリブロック、RFフロントエンドブロックに給電します。また、チャージポンプにより、アナログブロックとフラッシュメモリが必要とする高い電圧を供給します。この統合型電源システムのおかげで、RSL10は1.1~3.3Vの電力供給源1つでの動作が可能です。
電圧が1.4Vより低い場合、内蔵の低ドロップアウト(LDO)レギュレータを使用して、RSL10に給電することができます。これより高い電圧の場合、インダクタを追加する必要はありますが、RSL10に統合されている降圧コンバータによって高い効率が得られます。この2つの電源構成の回路設計における違いは、LDOモード動作の場合にVCCピンとVDCピンの間の追加インダクタが不要かどうかという点のみです(図3)。RSL10を使用したプリント回路基板のコンポーネント配置と物理設計については、ON Semiconductorからガイドラインが提供されています。
RSL10を使用したシステム設計
このようなハードウェアインターフェースを構築する時間やリソースがない場合、ON SemiconductorのNCH-RSL10-101S51-ACG RSL10 SiPは、カスタムハードウェア実装に代わる効果的なシステム設計の手段となります。寸法6 x 8 x 1.5mmのRSL10 SiPは、RSL10 SoCや無線アンテナをはじめとする必要なコンポーネントすべてを1つのパッケージに統合しています。RSL10 SiPを使用すれば、すべてを備えた超低電力Bluetooth認定ハードウェアソリューションを設計に採り入れ、ハードウェアのカスタム要件に注力して設計することができます。
同じくON SemiconductorのRSL10ソフトウェアパッケージも、カスタム要件のソフトウェア開発に注力するために役立ちます。ON SemiconductorのRSL10ソフトウェア開発キット(SDK)は、Arm Cortex Microcontroller Software Interface Standard(CMSIS)ハードウェア抽象化レイヤ(HAL)上に構築されています。RSL10 CMSIS-Packとして、ドライバ、ユーティリティ、サンプルコードが配布されます(図4)。
図4:ON SemiconductorのRSL10ソフトウェア環境では、ベースラインパッケージとして幅広いサービスとユーティリティを提供し、さらに追加パッケージでBluetoothメッシュネットワークとBluetooth IoT開発をサポートします。(画像提供:ON Semiconductor)
このパッケージには、Bluetoothサポート、FreeRTOSリアルタイムオペレーティングシステム(RTOS)、Firmware Over The Air(FOTA)のアップデートユーティリティ、さまざまな特殊サービスが含まれています。さらに特殊な機能として、BluetoothメッシュネットワークとBluetooth IoT開発(B-IDK)が別途パッケージでサポートされています。たとえば、B-IDK CMSIS-PackではIoT関連のサービスが提供されており、センサドライバ、クラウド接続サポート、アプリケーションレベルの関連ソフトウェアサンプルが含まれています。
ソフトウェア開発者がカスタム開発をする際には、ベースラインパッケージとオプションのパッケージを統合開発環境(IDE)にロードするだけです。RSL10ソフトウェアディストリビューションは、ON Semiconductorの独自IDEのほか、Arm Keil µVision環境とIAR Embedded Workbench環境もサポートしています。パッケージをロードしたら、サンプルアプリケーションを見て、主要機能の実装を学ぶことができます。
そのままデプロイできるBLEマルチセンサボード
RSL10 SiPとRSL10 SDKを組み合わせれば、カスタムBluetooth対応デバイスの開発をすぐに始められ、超低電力動作の厳しい要件を満たすことができます。それでも一部のアプリケーションでは、カスタムソリューションの開発をする時間とリソースを確保できなかったり、少なくとも確保する必要が生じたりするかもしれません。
たとえば、産業用のマルチセンサ監視装置や、スマートロック、照明スイッチは、電池持ちが良く、なおかつさまざまな種類のセンサからデータを伝達できるBluetooth対応の小型デバイスを必要とする場合があります。このようなアプリケーションに対し、ON SemiconductorのRSL10-SENSE-GEVKマルチセンサ評価キットは、すぐに利用できるハードウェアソリューションを提供します。国際的な認証を取得しているこの評価キットのボードは、超低電力アプリケーションにそのままデプロイできる状態で提供されます。
RSL10-SENSE-GEVKのボードには、RSL10 SiP、複数のセンサ、ON Semiconductorの64Kbyte近距離無線通信(NFC)EEPROMであるN24RF64DWPT3G、RGB LED、プログラマブルボタンが搭載されています。このボードの設置面は円形で、直径は30mm以下という、CR2032コイン電池よりもわずかに大きい程度のサイズです。柔軟なNFCアンテナもキットに含まれています(図5)。
図5:ON SemiconductorのRSL10-SENSE-GEVK評価ボードには、RSL10 SiPのほか、ウェアラブルやIoTデバイスでよく必要とされる多様なセンサが搭載されています。(画像提供:ON Semiconductor)
このボードには以下のとおり複数のセンサが搭載されており、その動作デモを行うためのファームウェアが複数プリロードされています。
- 周囲光センサ(ON Semiconductor NOA1305)
- 慣性計測ユニット(Bosch Sensortec BHI160) - 3軸加速度計と3軸ジャイロスコープ付き
- 3軸デジタル地磁気センサ(Bosch Sensortec BMM150)
- 環境センサ(Bosch Sensortec BME680) - ガス、圧力、湿度、温度センサなど
- デジタルマイクロフォン
センサからのデータ収集とRSL10の性能をRSL10-SENSE-GEVKボードで迅速に評価できるよう、ON Semiconductorはモバイルアプリ「RSL10 Sense and Control」を提供しています。AndroidおよびiOSのアプリストアから入手可能です。
このアプリをBluetooth対応のモバイルデバイスで実行すると、センサ構成、サンプリング間隔および周期、RSL10の電力モードなど、各種のパラメータを変えて、電力消費を監視できます。評価したいセンサ構成をアプリで設定すると、結果が一連のペインに表示されます(図6)。
図6:ON SemiconductorのRSL10 Sense and Controlモバイルアプリは、RSL10-SENSE-GEVK評価ボードのマルチセンサ性能評価に即使用できるソリューションです。(画像提供:ON Semiconductor)
CMSIS-Packディストリビューションと、先ほど挙げた対応IDEを使用して、デモのコードを表示および変更できます。新しいファームウェアを生成したら、Tag-Connect TC2050-IDC-NLなどのアダプタに10ピンニードルヘッダを使用して、そのイメージをロードする必要があります。このアダプタはRSL10-SENSE-GEVKマルチセンサ評価キットに含まれていませんが、このキットのデバッグ版であるRSL10-SENSE-DB-GEVKには、はんだ付けされた10ピンデバッグプラグと、このプラグに接続するSegger Microcontroller SystemsのJ-Link LITE Cortexデバッガが付属します。
DK IoT Studioによる迅速な開発
RSL10-SENSE-GEVKマルチセンサ評価ボードにより、電池持ちの良さを必要とするさまざまなマルチセンサアプリケーションのハードウェア開発が不要になります。こうしたアプリケーションでは多くの場合、DigiKeyが別途提供しているオンライン開発ツールを使用すると、ソフトウェアコーディングも不要になり、プロトタイプや、さらには実稼働システムの開発を迅速化できます。RSL10-SENSE-GEVK評価ボードとともにDK IoT Studioを使用すると、コード不要の開発アプローチが実現でき、すべてを備えたセンサツークラウドのアプリケーションを迅速にデプロイできます。
DK IoT Studioのグラフィカルインターフェースでは、IoTアプリケーションで使用されるさまざまなハードウェアおよびソフトウェアの要素を表すエレメントをドラッグアンドドロップできます。ハードウェアエレメントは、個々のGPIOピンから、完成されたセンサデバイスにまで及び、RSL10-SENSE-GEVK評価ボード上のエレメントも含まれています。ソフトウェアエレメントは、どんなプログラムでも使用されるループや条件など一般的な低レベル機能から、クラウドサービスインターフェースまで、すべてが含まれます。
DK IoT Studioグラフィカルインターフェースのさまざまなタブで、これらのエレメントを組み合わせて使って、RSL10、連携したDK IoT Studioアプリ、クラウドで実行するオペレーションを定義します。このすべてを、ソフトウェアコードを書かずに行うことができます。
このアプローチのベースになるのが、各エレメントに関連付けられたさまざまな「アビリティ」と「イベント」です。たとえば、BME680という統合環境センサは、温度、圧力、湿度を読み取るアビリティを備えています。その他の機能エレメントとして、たとえばインターバルというエレメントは、定期的にイベントをトリガするというアビリティを備えており、それにより何らかのエレメントのアビリティを実行させます。スマートフォンをはじめとするBluetooth対応モバイルデバイスのBluetooth通信を表すエレメントもあります。
このアプローチによるアプリケーション開発は単純明快です。またDigiKeyでは、RSL10-SENSE-GEVK評価ボード用に複数のデモプロジェクトを提供しています。たとえば、BME680のデモプロジェクトでは、インターバルエレメントが1000msごとに、温度、圧力、湿度を読み取るというBME680のセンサアビリティをトリガします。すると、各センサ出力に関連付けられたBluetoothエレメントにより、センサの読み取り値をBluetoothデバイスへ送信させます(図7)。
図7:DigiKeyのDK IoT Studioのデバイスタブで各種エレメントを使用して、RSL10-SENSE-GEVK評価ボードの環境センサから定期的にデータを読み取り、センサデータをBluetooth接続経由で連携先のモバイルアプリへ送信します。(画像提供:DigiKey)
アプリケーションタブでは、Bluetoothで受信したデータをDigiKeyモバイルアプリ内で表示するためのユーザーインターフェースを構築できます。BME680デモプロジェクトのアプリケーションでは、温度、圧力、湿度を表示するだけでなく、各センサの読み取り値をクラウドエレメントへ送信します(図8)。
図8:DigiKeyのDK IoT Studioのアプリケーションタブには、関連付けられたモバイルアプリ内のセンサデータを表示するキャンバスのほか、表示データの生成や、その他のモバイルアプリでのオペレーション(クラウドへのデータ送信など)を行うためのペインがあります。(画像提供:DigiKey)
このように中間的なアプリを使用してセンサデータをクラウドアプリケーションへリレーすると、IoTデバイスとクラウドを直接接続せずに済むため、よく行われます。もちろんWi-Fi通信機能が組み込まれたデバイスを使用すれば、センサデータを直接クラウドへ送信できます。DK IoT StudioにはWi-Fiエレメントなども用意されており、このアプローチに対応しています。いずれの場合も、クラウドオペレーションはクラウドタブで設定します。ここでは、DK IoT Studioに付属するクラウドデータストレージに温度、圧力、湿度の計測結果を保存しています(図9)。
図9:DK IoT Studioのクラウドタブでは、クラウドベースのオペレーション(センサデータをクラウドストレージに保存するなど)を定義できます。(画像提供:DigiKey)
デバイス、アプリケーション、クラウドロールの定義が終わったら、コンパイルアイコンをクリックすることで、DK IoT Studio内のプロジェクトをコンパイルできます。コードが生成されたら、できあがったファームウェアをRSL10-SENSE-GEVKにロードできます。このとき、ユーザーのシステム上で実行されている小さなユーティリティが、DK IoT Studioから、ユーザーのシステムに接続された評価ボードへの転送を行います。アプリケーションとクラウドコードのセットは自動的にDK IoT Studioのクラウド環境へ保存されます。
このアプローチではアプリケーションコード開発が不要になりますが、各エレメントに関連付けられたイベントとアビリティは、DK IoT Studio開発環境内で実行されるEmbedded Element Library(EEL)というソフトウェアルーチン群で定義されています。
たとえば、BME680の「Read Temperature(温度読み取り)」アビリティは、BME680のC言語モジュールで定義された抽象機能bme680_get_sensor_()を呼び出します(リスト1)。
BME680_Status_t BME680_GetTempData( float *tempC )
コピー
{
_BME680_StartMeasurement();
struct bme680_field_data data;
int8_t retval = bme680_get_sensor_data( &data, &_BME680_DriverConfig );
if ( retval != 0 )
{
ATMO_PLATFORM_DebugPrint( "Error getting sensor data!%d\r\n", retval );
*tempC = 0;
}
else
{
*tempC = data.temperature / 100.0;
}
_BME680_Sleep();
return BME680_Status_Success;
}
リスト1:各エレメントに関連付けられたコードには具体的な機能が実装されており、これがDK IoT Studioのグラフィカルインターフェースのベースとなっています。その一例であるこの関数は、「Read Temperature(温度読み取り)」アビリティがトリガされたときに呼び出されます。(コード提供:DigiKey)
同じモジュール内の下位ルーチンには、ビット操作のオペレーションが実装されています。さらに下位のルーチンbme680_get_regs()によって読み取ったセンサレジスタの対象データを抽出するために必要となるオペレーションです(リスト2)。
コピー
static int8_t read_field_data( struct bme680_field_data *data, struct bme680_dev *dev )
{
int8_t rslt;
uint8_t buff[BME680_FIELD_LENGTH] = { 0 };
uint8_t gas_range;
uint32_t adc_temp;
uint32_t adc_pres;
uint16_t adc_hum;
uint16_t adc_gas_res;
uint8_t tries = 10;
rslt = null_ptr_check( dev );
do
{
if ( rslt == BME680_OK )
{
rslt = bme680_get_regs( ( ( uint8_t ) ( BME680_FIELD0_ADDR ) ), buff, ( uint16_t ) BME680_FIELD_LENGTH,
dev );
data->status = buff[0] & BME680_NEW_DATA_MSK;
data->gas_index = buff[0] & BME680_GAS_INDEX_MSK;
data->meas_index = buff[1];
adc_pres = ( uint32_t ) ( ( ( uint32_t ) buff[2] * 4096 ) | ( ( uint32_t ) buff[3] * 16 )
| ( ( uint32_t ) buff[4] / 16 ) );
adc_temp = ( uint32_t ) ( ( ( uint32_t ) buff[5] * 4096 ) | ( ( uint32_t ) buff[6] * 16 )
| ( ( uint32_t ) buff[7] / 16 ) );
adc_hum = ( uint16_t ) ( ( ( uint32_t ) buff[8] * 256 ) | ( uint32_t ) buff[9] );
adc_gas_res = ( uint16_t ) ( ( uint32_t ) buff[13] * 4 | ( ( ( uint32_t ) buff[14] ) / 64 ) );
gas_range = buff[14] & BME680_GAS_RANGE_MSK;
data->status |= buff[14] & BME680_GASM_VALID_MSK;
data->status |= buff[14] & BME680_HEAT_STAB_MSK;
if ( data->status & BME680_NEW_DATA_MSK )
{
data->temperature = calc_temperature( adc_temp, dev );
data->pressure = calc_pressure( adc_pres, dev );
data->humidity = calc_humidity( adc_hum, dev );
data->gas_resistance = calc_gas_resistance( adc_gas_res, gas_range, dev );
break;
}
dev->delay_ms( BME680_POLL_PERIOD_MS );
}
tries--;
}
while ( tries );
if ( !tries )
{
rslt = BME680_W_NO_NEW_DATA;
}
return rslt;
}
リスト2:DK IoT Studio内の各エレメントに関連付けられたコードは、より上位のサービスからの抽象関数呼び出しを具体的なオペレーション(環境センサレジスタからのデータ抽出など)に変換します。(コード提供:DigiKey)
先ほどお伝えしたように、エレメントには、ソフトウェア開発でよく使われる条件などのメソッドや、ハードウェア開発でよく使われるGPIO制御などのメソッドがあります。DK IoT Studio環境では、対応エレメントをシンプルにドラッグアンドドロップするというアプローチで、条件判定をしたり、しかるべきアクションを実行したりできます。たとえば、別のデモプロジェクトでは、RSL10-SENSE-GEVKボードの周囲光センサからの出力が特定の値を超えたときに、ボード上のLEDを点灯させる方法を提示しています(図10)。
図10:DK IoT Studioには、抽象度の高いロジック(値のチェックなど)だけでなく、低レベルのオペレーション(ON SemiconductorのRSL10-SENSE-GEVK評価ボード上のLEDにGPIOを関連付けるなど)の実行に必要なエレメントも用意されています。(画像提供:DigiKey)
クラウド側では、同様の条件判定を使用して、モバイルアプリ用のメタデータを生成できます。ここで、このメタデータをアプリ内で使用し、センサが問題を検出したことを示すアラートアイコンを設定することもできます(図11)。
図11:DK IoT Studioは、クラウドおよびモバイルアプリにおける、より高度なオペレーションもサポートしています。たとえばここでは、条件によってアプリにステータスメタデータを設定し、そのデータをクラウドストレージに保存しています。(画像提供:DigiKey)
LEDのオン/オフ切替を行う下位コードが実行される前に、まず下位環境のイベントに関連付けられた上位関数が呼び出され、そして一連の呼び出しが行われます。この上位関数SetPinStateは関数ポインタであり、初期化中に下位関数ATMO_ONSEMI_GPIO_SetPinState()をポイントするよう設定されます。この下位関数には必要な機能が実装されており、最終的にON SemiconductorのRSL10 SDKライブラリ関数Sys_DIO_Config()を呼び出し、これが指定されたピンの設定をします(リスト3)。
コピー
ATMO_GPIO_Status_t ATMO_GPIO_SetPinState( ATMO_DriverInstanceHandle_t instance, ATMO_GPIO_Device_Pin_t pin,
ATMO_GPIO_PinState_t state )
{
if ( !( instance < numberOfGPIODriverInstance ) )
{
return ATMO_GPIO_Status_Invalid;
}
return gpioInstances[instance]->SetPinState( gpioInstancesData[instance], pin, state );
}
リスト3:DK IoT Studioには、汎用的な抽象機能群があります。これらを下位のサービスレイヤで具体化し、GPIOビット設定などのハードウェア固有のオペレーションを実装します。(コード提供:DigiKey)
DK IoT Studioはシンプルにもかかわらず、柔軟性の高い開発環境です。開発者は、エレメントのEELコードをそのまま使うことも、アプリケーションに合わせて必要に応じて変更することもできます。開発時、DK IoT Studioのデバイスタブにあるペインの1つに、タブのキャンバス(図7参照)に配置されたエレメントに関連付けられた、ベースとなるハイレベルコードが表示されます。特別な処理が必要なアプリケーションの場合、このペインで即座にコードを変更できます。その他にできることとして、たとえば「function」エレメントを使用すると、コードに空白の関数定義を追加できます。開発者は、環境に応じた機能を利用して、実行内容を補足することが可能です。
現実に、DK IoT Studioのアプローチは、コード不要のドラッグアンドドロップ開発というシンプルさを持ちながら、柔軟さと、使用するハードウェアデバイスのメモリ量とプロセッサ能力の限り発揮される性能を兼ね備えています。このアプローチをRSL10-SENSE-GEVKボードとともに使用することで、デバイスツークラウド接続が可能でモバイルアプリにも対応した、完全に機能するプロトタイプを迅速にデプロイできます。
まとめ
コンシューマ、自動車、産業分野など幅広い市場で、マルチセンサデバイスの新たな用途が次々と現れています。こうした用途の多くにおいて、Bluetooth接続と電池持ちの良さは最重要です。同時に、迅速な市場投入も常に求められており、それに対応するためには、柔軟な設計アプローチを可能とするエコシステムによる支援も必要です。このような課題に対応するため、ON SemiconductorのRSL10 SoC、RSL10 SiP、RSL10-SENSE-GEVK評価ボードは、カスタム設計、統合モジュール、すべてを備えたマルチセンサソリューションという各要件に応える一連のソリューションを提供します。これらのハードウェアプラットフォームを使用する際には、RSL10のソフトウェア開発キットと対応ソフトウェアディストリビューションパッケージを利用して、カスタムアプリケーションを実装できます。
デバイスツークラウドのマルチセンサアプリケーションを迅速に開発するために、ON SemiconductorのRSL10-SENSE-GEVK評価ボードとDK IoT Studio IDEの組み合わせで、すべてを備えたデバイスツークラウドアプリケーションに超低電力マルチセンサソリューションを実装できる強力かつ迅速な開発プラットフォームを提供します。RSL10ハードウェアと対応ソフトウェアオプションを使用することにより、柔軟性の高いプラットフォームで、電池持ちのニーズを満たすBluetooth認証デバイスを開発およびデプロイできます。

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