Energy)の開発依頼は、フィールドデザインまでお気軽にお問い合わせください。]ここでは、セントラル機器とペリフェラル機器の、接続、切断について説明します。接続ペリフェラルの機器がビーコンを出している状態で、セントラルの機器が接続に行くことで、セントラルがマスターになり、ペリフェラルがスレーブになります。このとき、アドバータイズチャネルからデータチャネルに移動します。接続が確立されると、マスター側のタイミングで定期的にパケットを出し、それにスレーブが応答するというやり取りが切断されるまで続きます。Packet)を送ります。Packet)を送ります。1つのセントラルは複数のペリフェラルと接続することができます。Energyの仕様としては、1つのセントラルは、無限の数のペリフェラルと接続が可能です。Bluetoothでは、7台に制限されていましたが、そのような制限はありません。ペリフェラルとしては、1つのセントラルにしか接続できません(複数の相手では受信のタイミングが重なったら通信できなくなるため)。Energyの半導体のメモリや処理速度の制限があり、1つのセントラルは、ペリフェラル8台までなどの仕様になっています。Eventといいます。Intervalといいます。値は、7.5ms〜4secの間で設定ができます(1.25ms単位)。Intervalは、マスターとスレーブで共有しています。Intervalごとに、送る内容が有る無しに関わらず、必ず通信しなければなりません。どちらかがデータパケットを送らない時間が続くと切断とみなされてしまいます。Intervalが短いと、反応速度は上がり、通信速度も上がりますが、消費電力が上がってしまいます。Intervalは長いと、反応速度が落ち、通信速度も落ちますが、消費電力は抑えられます。利用するアプリケーションによって、決まってきます。Intervalパラメータは、通信中にも変更できますので、最初は高スループットで、途中から低消費電力にしたいという切り替えも可能です。Eventで、どれくらいのデータパケットがやり取りされるかは、マスターによって決まってきます。Eventで6パケットのやり取りができます。Eventの間は、チャネルは変更してはいけない(ホッピングしてはいけない)ことになっており、同じチャネルですべてのデータパケットをやり取りします。Eventでどれだけデータパケットを送ってくるかによって、スレーブ側からの通信容量が決まってしまいます。スレーブ側にどんなに処理能力があっても、マスターに依存してしまうのが、特徴です。切断には、明示的にTERMINATEパケットを送って切断するケースと、相手のデータパケットが届かないことにより自分の判断で切断するケースの2つがあります。Timeの間を待っても、相手のデータパケットが届かない場合に実施されます。Timeはマスターとスレーブで接続時に共有されています。通常は、4secくらいに設定されています。このケースが起こる原因は、相手のプログラムが停止した場合もありますし、相手との距離が遠くなってデータパケットを受信できなくなった場合もありますし、無線環境が悪くデータエラーが発生している場合などさまざまです。再送データパケットは、CRCによってパケットが正しいかのチェックをしています。データパケットが壊れていて、CRCが正しくない場合は再送をします。Energyは上限がありません。Timeに達するまで、再送を続けます。それでもエラーの場合は切断となります。マスター/スレーブ、セントラル/ペリフェラルBluetoothでは、ver1.0からマスター、スレーブという役割が使われてきました。2つのデバイス間で、マスターがパケットを出し、その直後にスレーブがパケットで応答するというやりとりをひたすら続けることで、接続を保っています。Energy以降も同じです。マスター、スレーブという役割は、接続状態でのみ使われるものです。Energyでは、セントラル、ペリフェラルという役割が追加されました。Energyでは、接続前にビーコン(アドバータイズ)を出すものをペリフェラルといい、そのビーコンをスキャンするものをセントラルと呼んでいます。接続後は、セントラルが先にパケットを出して、ペリフェラルがそれに応答する形になるため、セントラルが必ずマスターとなり、ペリフェラルが必ずスレーブになります。SIGでは、いずれ、マスターをセントラル、スレーブをペリフェラルと統一するようにするみたいです。Energyでは、GATTより上のプロファイルで、クライアントとサーバという役割も出てきます。クライアントは、セントラルが成っても、ペリフェラルが成っても構いません。同様に、サーバは、セントラルが成っても、ペリフェラルが成っても構いません。通常は、ペリフェラル側がサーバになり、セントラル側がクライアントになります。