ブロードキャスト型
BLE通信の接続形態(トポロジーと言います)には、ブロードキャスト型とコネクション型があります。
ブロードキャスト型は、通信相手を特定せず発信側(ブロードキャスター/Broadcaster)が、一方的に通信パケット(情報のひとかたまり)を発行します。受信側(オブザーバー/Observer)は、Broadcasterが発する電波を受信できれば、制約なくパケットを受け取ることが可能です。このあたりは、テレビ放送やラジオ放送の受信と同じですね。
クーポン配信サービスや位置情報に基づく情報配信に利用されるビーコンがこの接続形態に該当します。ビーコンがBroadcasterになり、スマートフォン等の情報端末がObserverになります。
図1 : ブロードキャスト型トポロジー |
ブロードキャスト型通信では、基本、アドバタイジングと称する情報(31オクテット※1長)が含まれる1パケットが定期的(断続的)に発せられるのみです※2。
※1 今でこそ、1Byteは8bitですが、1byteが8bitと限らない場合もありました。8ビットであることを必ず意味させる場合は、オクテットという表記を使います。通信関係では、よく使われます。
※2 厳密には、最大2パケットを発信することができます。2パケット目の情報交換を行うためのリクエストやり取りが発生するため、一時的に双方向通信(コネクション通信)となりますが、本コラムではブロードキャスト型通信として扱います。
ビーコンを利用しての情報配信においては、アドバタイジング情報だけでは、少ないことがほとんどなので、情報端末がもつ通信回線(3G/Wi-Fi)を介して、よりリッチな情報を提供する仕組みを採用しています。
図2 : ビーコン概要 |
コネクション型
もう一つの接続形態、コネクション型は、通信相手を特定した上で パケット発信 もしくは パケット受信を行う形態です。双方向に情報交換を行う必要がある、もしくはアドバタイジング情報だけでは不足する場合に利用します。
通信相手を特定して情報のやりとりを行う点においては、クラッシクBluetoothと同じなのですが、パケット長やパケット発信間隔、ひいては通信速度が異なります。省エネを意識しての仕様であり、クラッシックBluetoothとの互換性がないことは前回までの記事で紹介したところです。
ブロードキャスト型においても Broadcaster/Observerと称する役割(ロール)があったように、コネクション型においても別の名称でロールが定義されています。Central(セントラル)とPeripheral(ペリフェラル)です。
どこかで聞いた(見た)言葉ですね。そう、前回の記事の後半で触れた、手持ちの情報端末がBLEに対応しているかどうかを確認するアプリを実行した際に表示されるタームとして紹介した”あれ”です。
Centralは、定期的な情報のやりとりにおいてタイミングや通信再開等の管理を行い、主導的役割を果たします。通常、スマートフォンやタブレット等の情報端末が、この役割を担います。
Peripheralは、コネクション成立後、Central側のタイミングに従って、必要な情報を発信します。通常は、センサ等を搭載したスモールIoTモノが、この役割を担います。
図3 : コネクション型トポロジー |
1つのCentralは、複数のPeripheralとコネクションを確立することが可能ですし、Peripheralも複数のCentralとコネクションを確立することが可能です。
さらに、Bluetooth Smart Readyであるスマートフォン等の情報端末を想定した場合、BLE通信に加えてクラッシックBluetooth通信も可能となり、混合的なトポロジーが確立できます。
図4 : 混合トポロジー |
どのように区別するのか
BLEには、ブロードキャスト型とコネクション型の二つの通信形態があることを紹介しました。この二つ、どちらの接続型もサポートしているスマートフォンなどの情報端末では、どのように識別しているのでしょうか。
仕組みは、アドバタイジング情報を含むパケット(以降アドバタイジングパケット)にあります。アドバタイジングパケットは、どちらの形態でも発行されます。そのアドバタイジングパケットの中に、ブロードキャスト型なのか、コネクション型なのかを決めるフィールドがあり、その値を見て必要な接続形態を選択しています。
ブロードキャスト型の場合はブロードキャストターが、コネクション型の場合は、Peripheralがそれぞれの形態に応じたアドバタイジングパケットを発行するようにすれば、情報端末側は、必要な通信形態を確立することができるます。
ビーコンを体験してみよう
ブロードキャスト型BLE通信は、上述のように、アドバタイズパケットにブロードキャスト型トポロジーを形成する旨のリクエストを設定した上で発信すればよいだけです。ですので、Central/Peripheral ロールの対応可否に関わらず、Broadcasterになることは可能です。
事実、ブロードキャスト型通信の一つであるビーコンは、BLE対応のスマートフォン(BLE対応タブレットも)であれば、アプリをインストールすることで、ビーコン、つまりBroadcasterとして機能させることができます。そして、Observerとしてのスマートフォンを別途用意できれば、 ビーコンを、サービスを提供している店舗に行かなくとも、体験することができます
Androidスマートフォンの場合、アプリ「Beacon Scanner & Transmitter」がGoogle Playにて提供されています。 ビーコン側は、アプリのインストール&起動後、[TRANSMIT]選択、センタアイコンをタップ。Observer側は、同アプリを[SCANNING]モードで起動するだけです。
付加情報はなく、シンプルなものではありますが、電波強度に基づく、Broadcaster - Observer間の距離を確認することができます。 Broadcaster - Observer間の距離に応じて、Distance項の値が変化するはずです。値は正確ではありませんが。。。
図5 : Androidスマートフォンでのビーコン体験 |
iPhoneの場合は、アプリ「iBeacon Scanner」がApp Storeから入手可能です。
iBeacon Scannerのメニューから[Turn this device into iBeacon]を選択。表示される「Use as iBeacon」画面にて、Beacon Name/UUID/ID等を適宜設定した後、画面右上の[Turn]を押下することで、手持ちのiPhoneがビーコンとなり、アドバタイズパケットをブロードキャストします。
図6 : iPhoneアプリ Broadcaster設定画面 |
Advertising Packet 書式
本コラムの範疇を超えるので、詳細には触れませんが、アドバタイジングパケットの一例として、ブロードキャスト型の代表であるiBeaconの書式を掲載します。
アドバタイジング情報フィールド31オクテッド領域にiBeacon Dataが格納されます。PDU Typeフィールドに設定される値によって、ブロードキャスト型/コネクション型が判断されます。
著者紹介
飯田 幸孝 (IIDA Yukitaka)
- アイアイディーエー 代表 / PE-BANK 東京本社所属プロエンジニア
計測機器開発メーカ、JAVA VMプロバイダの2社を経て、2007年独立。組込機器用ファームウェア開発に多く従事。2015年より新人技術者育成にも講師として関わる。PE-BANKでは、IoT研究会を主宰。
モノづくり好きと宇宙から地球を眺めてみたいという思いが高じて、2009年より宇宙エレベータ開発に、手弁当にて参画。 制御プログラムを担当。一般社団法人宇宙エレベータ協会主催「宇宙エレベータチャレンジ2013」にて、世界最長記録1100mを達成。
宇宙エレベータ開発のご縁で静岡大学の衛星プロジェクトStars-Cに参画。2016年12月、担当ユニットが一足先に宇宙に行き、地球を眺める。