

# FUOTA 程序概觀
<a name="lorawan-fuota-mc-process"></a>

以下圖表會顯示 AWS IoT Core for LoRaWAN 如何為終端裝置執行 FUOTA 程序。若要將個別裝置新增至 FUOTA 工作階段，則可略過建立和設定多點傳送群組的步驟。您可以將裝置直接新增至 FUOTA 工作階段，接著 AWS IoT Core for LoRaWAN 會開始進行韌體更新程序。

![影像中顯示 AWS IoT Core for LoRaWAN 如何為終端裝置執行 FUOTA。](http://docs.aws.amazon.com/zh_tw/iot-wireless/latest/developerguide/images/iot-lorawan-fuota-flow.png)


若要為裝置執行 FUOTA，請先建立數位簽署的韌體映像，並設定要新增至 FUOTA 任務的裝置和多播群組。在開始 FUOTA 工作階段後，終端裝置會收集所有片段、從片段重建映像、將狀態回報至 AWS IoT Core for LoRaWAN，然後套用新的韌體映像。

以下會說明 FUOTA 程序中的不同步驟：

1. 

**使用數位簽章建立韌體映像或差異映像**

   若要讓 AWS IoT Core for LoRaWAN 為 LoRaWAN 裝置執行 FUOTA，建議您在傳送無線韌體更新時，對韌體映像或差異映像進行數位簽署。接著，接收映像的裝置便可確認其是否來自正確來源。

   韌體映像大小不得超過 1 MB。韌體大小越大，完成更新程序所需的時間就越長。若要更快速地傳輸資料，或者新映像大於 1 MB，請使用差異映像，其為新映像的一部分，即新韌體映像與上一個映像之間的差異。
**注意**  
AWS IoT Core for LoRaWAN 不會提供數位簽章產生工具和韌體版本管理系統。您可以使用任何第三方工具來產生韌體映像的數位簽章。建議您使用數位簽章工具，例如嵌入 [ARM Mbed GitHub 儲存庫](https://github.com/armmbed/mbed-os-example-lorawan-fuota)的工具，其還包括用來產生差異映像以及供裝置使用該映像的工具。

1. 

**識別和設定要進行 FUOTA 的裝置**

   識別要進行 FUOTA 的裝置後，請將韌體更新傳送至個別或多個裝置。
   + 若要將韌體更新傳送至多個裝置，請建立多點傳送群組，並使用終端裝置來設定多點傳送群組。如需詳細資訊，請參閱[建立多點傳送群組，以將下行承載傳送至多個裝置](lorawan-multicast-groups.md)。
   + 若要將韌體更新傳送至個別裝置，請將這些裝置新增至 FUOTA 工作階段，然後執行韌體更新。

1. 

**排定分發時段並設定分段工作階段**

   如果已建立多點傳送群組，則可以指定 B 類或 C 類分發時段，以便判斷裝置何時可以從 AWS IoT Core for LoRaWAN 接收片段。裝置在切換至 B 類或 C 類模式之前，可能會先在 A 類中運作。您也必須指定工作階段的開始時間。

   B 類或 C 類裝置會在指定的分發時段喚醒，並開始接收下行封包。以 C 類模式操作的裝置會比 B 類裝置消耗更多電力。如需詳細資訊，請參閱[裝置類別](lorawan-manage-end-devices.md#lorawan-device-classes)。

1. 

**終端裝置會將狀態回報至 AWS IoT Core for LoRaWAN 並更新韌體映像**

   設定分段工作階段之後，終端裝置和 AWS IoT Core for LoRaWAN 會執行以下步驟來更新裝置的韌體。

   1. 由於 LoRaWAN 裝置的資料傳輸速率低，因此若要開始 FUOTA 程序，AWS IoT Core for LoRaWAN 便會設定分段工作階段來為韌體映像分段。然後，其會將這些片段傳送至終端裝置。

   1. 在 AWS IoT Core for LoRaWAN 傳送映像片段後，LoRaWAN 終端裝置便會執行以下任務。

      1. 收集片段，再從這些片段中重建二進位映像。

      1. 檢查重建映像的數位簽章以驗證映像，並確認映像來自正確的來源。

      1. 將 AWS IoT Core for LoRaWAN 的韌體版本與最新版本進行比較。

      1. 回報已傳輸至 AWS IoT Core for LoRaWAN 的分段映像，然後套用新的韌體映像。
**注意**  
在某些情況下，終端裝置會先回報已傳輸至 AWS IoT Core for LoRaWAN 的分段映像，再檢查韌體映像的數位簽章。

您已經了解 FUOTA 程序，現在可以建立 FUOTA 任務並將裝置新增至任務來更新其韌體。如需詳細資訊，請參閱[建立 FUOTA 任務並提供韌體映像](lorawan-fuota-create-task.md)。