OTAアップデートプロセス(Bluetooth Low Energy)



OTAアップデートプロセス(Bluetooth Low Energy)

このトピックでは、EchoデバイスとガジェットがBluetooth Low Energy(BLE)経由で通信してOTA(ワイヤレス)アップデートを実行するプロセスについて説明します。

OTAアップデートのためにガジェットが満たすべき要件については、OTAアップデートの前提条件を参照してください。

概要

次の図はOTAプロセスの概要を示しており、その下に各手順の説明があります。このプロセスでは、制御ストリーム、Alexaストリーム、OTAストリームという3つのストリームを使います。

Bluetooth Low Energy経由のAlexa Gadget OTAアップデート

BLEを使った接続

まず、EchoデバイスとガジェットがBLEを介してハンドシェイクまで(ハンドシェイクを含む)の手順をすべて実行します。手順は、従来のペアリングと接続再接続のフローと同じです。

ガジェットファームウェアのバージョン確認

Echoデバイスとガジェットが接続されると、EchoデバイスはガジェットにDiscoverディレクティブを送信します(これは、Echoデバイスとガジェットが接続されるたびに行われます)。 ガジェットは、ガジェットの現在のファームウェアバージョンを含むDiscover.Responseイベントとその他の情報で応答します。Alexaサービスはこの情報を使って、どのガジェットにファームウェアアップデートが必要かを判断します。Alexa.DiscoveryはAlexa Gadgets Toolkitのインターフェースなので、DiscoverディレクティブとDiscover.ResponseイベントはAlexaストリームを使用します。

OTAアップデートの開始

Alexaサービスがガジェットにファームウェアアップデートが必要と判断した場合、Echoデバイスは制御ストリーム経由でガジェットにUpdateComponentSegmentメッセージを送信します。UpdateComponentSegmentメッセージを含むトランザクションの最終パケットには、ヘッダーにACKフラグがセットされるため、ガジェットはトランザクションの最終パケットへの応答としてACK/NACKパケットを送信する必要があります。

ファームウェアイメージの転送

Echoデバイスは、OTAストリームを使って1つ以上のUpdateComponentメッセージを送信することにより、チャンクとしてガジェットにファームウェアイメージを転送します。チャンクサイズは、ガジェットがプロトコルバージョンパケットでレポートした最大転送データサイズ以内です。たとえばファームウェアイメージのサイズが540 KBで最大転送データサイズが100 KBの場合、Echoデバイスはガジェットに6個のUpdateComponentメッセージ(100 KBのチャンク5個と40 KBのチャンク1個)を送信します。

アップデートの適用

ガジェットがファームウェアイメージ全体を受け取ったら、制御ストリームを使ってUpdateComponentSegmentメッセージに応答します。次に、Echoデバイスが制御ストリーム経由でガジェットにApplyFirmwareメッセージを送信し、ガジェットに新しいファームウェアを使うよう指示します。

EchoデバイスからのApplyFirmwareメッセージを含むパケットのヘッダーにはACKフラグがセットされているため、ガジェットはトランザクションの最終パケットへの応答としてACK/NACKパケットを送信する必要があります。

ガジェットが最後の応答ApplyFirmwareコマンドに送信すると、アップデートは完了です。