BLE対応スマホの増加で周辺機器開発の自由度が高まった ―― ウェアラブル端末がスマホと直接つながる
いまウェアラブル端末が話題になっています.ウェアラブル端末とは,装飾性が重視される腕時計,指輪,メガネなどにハイテク機能を加えることで,体温計,血圧計,走行距離計などの役割を持たせる製品のことです.ウェアラブル端末は,Bluetooth Low Energyを通じて情報をスマホに送ります.ここでは,Bluetooth Low Energyを使う方法を解説します.
またBLE周辺機器を開発するにあたり,マイコンを中心に見た場合,Bluetooth Low Energyモジュールをどのように使えばいいのかを知るため, ロームグループのラピスセミコンダクタ株式会社 LSI商品開発本部 無線通信LSI開発ユニット 野田 光彦氏からお話を伺いました.
ラピスセミコンダクタの野田 光彦氏
■スマホ用OSは制限を少なくして,BLE通信がより自由に
● スマホ側のBluetooth Low Energyの動作概要
Bluetooth Low Energy(以下BLE)ではOS(AndroidやiOSなどスマホ用のOS)からの指示を受けずに,デバイスの検出,接続,データ通信,切断などをアプリケーション側が処理するようになりました.またペアリング操作をするしないも,アプリ側の判断によります.従来のBluetoothはスマホ用OSの制限が多くありましたが,BLEでは少なくなりました(図1).
図1 OS側の壁が薄くなり,アプリの自由度が増えた,アプリとファームウェアが直接つながるイメージ
たとえば,アップル社のiBeaconでは,お店に設置したBLE周辺機器が,来店したお客さんのスマホにデータを一方的に送信することも可能にしています.
BLE ではセントラルとペリフェラルという2つの役割があります.ここでは便宜的に,セントラル(中央装置側)をスマホと,ペリフェラル(心拍計+BLEモジュール+ホスト・マイコン)をBLE周辺機器と呼ぶことにします.
●スマホ側のアプリ開発環境
スマホ側のアプリ開発環境を見ていきましょう.またテスト用のスマホ・アプリがラピスセミコンダクタから「BLE TOOL」として提供されています. 「BLE TOOL」は,Google playからインストールできます.
▼iPhone向け
iPhone(iOS5以降)はいち早くBLEに対応しました.iOS6からはiPhoneがスマホとBLE周辺機器の両方に対応しています.
iPhone用の統合開発環境としてAppleの提供するXcodeがあります.Xcodeの拡張としてBLE用のCore Bluetoothフレームワークも用意されています.
▼Android向け
Android 4.3 (API Level18) からBLEを扱うAPIが提供されました.ただしセントラル(スマホ)のみ対応です.
Android用の統合開発環境としてgoogleの提供するEclipse ADT(Android Development Tool)があり,現在Android Studio(BETA版)へ移行途中です.
● スマホ・アプリが動作を決定
スマホと周辺機器のやりとりを,スマホを中心に示します(図2).
Step1 検出 BLE周辺機器からの呼び出しを検出
Step2 接続 BLE周辺機器と接続
Step3 調査 BLE周辺機器のサービス内容と特性
(プロファイル)を取得
Step4 要求 BLE周辺機器の特性値(データ)を取得
Step5 切断 BLE周辺機器との接続を切断
スマホとの通信量や通信頻度が多いと,BLE周辺機器側の送信時間が増え,消費電力が増えます.低消費電力を実現するためにはスマホ・アプリ側の工夫も必要です.もちろん電波が途切れたときなど,エラー処理も必要です.
図2 スマホとBLE周辺機器のやりとりの基本
■BLE周辺機器側で必要なこと
● BLEモジュールを使えば開発が容易に
ラピスセミコンダクタ社のBLEモジュールMK71050(写真1)を例にホスト・マイコンとBLEモジュールの関係をみていきましょう.BLEモジュールは,BLE対応無線通信IC(ML7105),アンテナ,EEPROM,マスタ・クロックで構成されています.もちろん電波法の技術基準適合証明は取得済みです.
ML7105はBLEを実現する下位層のスタックを提供するので,あとは,アプリケーションやプロファイルなど上位層を開発するだけです(図3).
写真1 BLEモジュールMK71050
10.7mm×13.6mmの表面実装タイプ.モジュールの利用で,アンテナ設計,技適取得が省略できる
図3 BLE周辺機器のプロトコルスタック
上位層の開発をすれば周辺機器が完成
● ホスト・マイコンとはSPI接続が基本
BLEモジュールMK71050の回路ブロックを図4に示します.
図4 BLEモジュールMK71050の回路ブロック
Switchの切り替えで低消費電力を実現
▼インターフェースは,SPI,3つの専用端子,UART
ホスト・マイコンと無線LSIはSPIで接続し,専用コマンド,データで制御します.このとき,3つの専用端子を併用します.RF Active端子は無線の通信状態を示す信号です.IRQ端子はML7105からホスト・マイコンにデータ転送要求あるいはデータ受信可能を示す信号です.WAKEUP端子はホスト・マイコンからML7105へのデータ転送要求あるいはデータ受信可能を示します.
UART経由でもSPIと同じ制御が可能ですが,通信速度が遅く,その分スリープ時間が短くなるため,消費電力の観点からSPI接続を推奨しています.
▼EEPROMの中身
EEPROMには無線LSIの基本動作を決める設定パラメータ,アプリケーション用ROM領域,CODE_RAM(内部コード)領域があります.
設定パラメータとは送信出力設定やBluetoothのパブリック・アドレス,ランダム・アドレスなどです.たとえば,低消費電力を実現する仕組みの一つとして,送信出力を,0dBm,-6dBm,-12dBm,-18dBmの4つから選択できます.ホスト・マイコンはアプリケーション用ROMを揮発性メモリとして利用できます.CODE_RAMはオプション機能でホスト・マイコンなしで動作させるときの内部コードを格納します.
■BLE開発の評価版も充実
BLEモジュールMK71050と8ビット・マイコン(ML610Q482)を搭載した評価キットが用意されており(写真2),サンプルプログラムが添付されています.さらに評価目的としてMK71050を搭載したArduinoシールドを計画中とのことです.手軽に実現性の評価ができそうです.
写真2 評価キットは2台1セットで販売中
8ビット・マイコン(ML610Q482)搭載,PCとはUSB接続
おのでら やすゆき
◆ご参考:
●Bluetooth全般に関しての日本語ページは下記があります
https://www.bluetooth.org/ja-jp
●規格を決めているBluetooth SIG, Inc. によるBLE関連のページです
http://www.bluetooth.com/Pages/Bluetooth-Smart.aspx
https://developer.bluetooth.org/TechnologyOverview/Pages/BLE.aspx
http://www.bluetooth.com/Pages/Bluetooth-Home.aspx
◆お薦め関連記事「スマホとコンビを組み始めたBluetooth Low Energyの低消費電力を支える技術」
―― 送信受信時のピーク消費電力を,既存品の3割以上削減!
◆お薦め関連記事「920 MHz帯を知る」
―― 今話題のスマートメータやHEMSなどで注目の通信技術!!
この記事に関するお問い合わせ先
![]() |
ローム株式会社 http://www.rohm.co.jp/
〒615-8585 京都市右京区西院溝崎町21 TEL(075)311-2121 FAX(075)315-0172