ペアリング
- 通信相手が見つかり、接続が確立された後、次に行うのがペアリングです。ペアリングは、デバイス間で安全に通信を行うためのプロセスで、暗号化キーの交換が行われます。これにより、データの盗聴や改ざんを防ぐことができ、セキュアな通信が保証されます。ペアリングは一度行えば、次回以降の接続がスムーズになります。

概要
Bluetooth Low Energy(BLE)は、現代のIoTデバイスやウェアラブル技術において欠かせない通信技術です。省電力でありながら安定した接続を提供するBLEは、スマートフォンからスマートホームデバイスまで、さまざまな場面で活用されています。しかし、その通信の仕組みを初めて学ぶ技術者にとっては、やや複雑に感じられる場合があります。本コラムでは、BLEの基本的な通信プロセスを分かりやすく解説し、初心者の方でも自信を持ってBLEの技術を理解できるようサポートします。アドバタイジングからデータ送受信までの流れについて紹介します。
BLE通信では、「チャネル」という概念がとても重要です。チャネルを簡単に言うと、データを送受信するための「通り道」のようなものです。
BLEでは、2.4GHzの周波数帯域を使って通信を行います。この周波数帯域を、全部で40個のチャネルに分けられており、1個のチャネルあたり2MHzの帯域を持っています。このチャネルを通じてデータの送受信を実現しています。
チャネルは大きく2つの種類に分かれています:
BLEは、通信の信頼性を向上させ、干渉を回避するために周波数ホッピングを利用しています。この技術は、データ送受信時に使用する周波数を一定のパターンで切り替える仕組みです。BLEは、2.4GHzのISMバンド内で40のチャネルを使用し、これらのチャネル間を迅速に切り替えることで、他の無線デバイスからの干渉を最小限に抑えます。周波数ホッピングによって、BLE通信は安定性と効率性を兼ね備え、信頼性の高いデータ送受信を実現しています。
BLE通信の第一歩は、デバイス同士が互いの存在を認識し、接続を確立することです。このプロセスは、アドバタイジング、スキャン、コネクションリクエストの3つのステップで構成されており、デバイス間の初期のやり取りを円滑に進めるために重要な役割を果たします。これらのステップを理解することで、BLEデバイスがどのように通信を開始するのか、その基本的な仕組みを学ぶことができます。
BLE(Bluetooth Low Energy)デバイスが通信を開始する最初のステップは、アドバータイジングです。これは、デバイスが自分の存在を周囲に知らせるための方法で、3チャネル(37/38/39)使って、定期的に発信しています。アドバータイジングパケットには、デバイス名や提供するサービスの情報が含まれています。これにより、他のデバイスが接続可能なデバイスを簡単に見つけることができます。アドバータイジングは定期的に行われ、デバイスが接続可能であることを示します。
スキャンは、BLEデバイスが他のデバイスを見つけるためのプロセスです。セントラルデバイスは、周囲のアドバータイジングパケットを受信し、接続可能なデバイスを特定します。このステップは、デバイスがどのようなサービスを提供しているかを知るための重要な手段です。スキャンを行うことで、デバイスは接続先の候補をリストアップし、最適な接続先を選択することができます。
スキャンによって接続したいデバイスを見つけたら、次に行うのがコネクションリクエストの送信です。これは、セントラルデバイスが特定のペリフェラルデバイスに接続を要求するプロセスです。コネクションリクエストが受け入れられると、両デバイス間で通信が確立されます。このステップを通じて、デバイス間でのデータの送受信が可能になります。
接続が確立された後、次に必要なのは、デバイス間での安全な通信とデータのやり取りを準備することです。この段階では、ペアリング、サービスディスカバリー、キャラクタリスティックの取得というプロセスを通じて、デバイス間の信頼関係を構築し、具体的なデータ交換の準備を整えます。これにより、BLE通信の基盤がしっかりと築かれ、データの送受信がスムーズに行われるようになります。
*サービスディスカバリー:ペリフェラルデバイスがどのようなデータや機能を提供しているかを確認
*キャラクタリスティックの取得:サービス内の具体的なデータ読み書き内容を確認
データの読み取りは、セントラルデバイスがペリフェラルデバイスから情報を取得するプロセスです。セントラルは読み取りリクエストを送信し、ペリフェラルは要求されたデータを返します。これにより、必要な情報をリアルタイムで取得することができます。データの読み取りは、センサー情報の取得やデバイスの状態確認に利用されます。
データの書き込みは、セントラルデバイスがペリフェラルデバイスに情報を送信するプロセスです。書き込みリクエストを送信することで、ペリフェラルデバイスの設定を変更したり、データを更新したりすることができます。これにより、デバイスの動作を制御したり、設定を調整したりすることが可能になります。