隨著嵌入式裝置在功能和連接性方面的發展,支援遠端應用程式更新的需求也在不斷成長。嵌入式連接不僅限於單一的通訊協議,而且有多種不同的形式,尤其在持續增長的物聯網(IoT)市場中至關重要。遠端韌體更新允許對現有應用程式進行簡單有效的升級,同時增加產品的使用壽命。而添加新功能可維持產品在新市場中的競爭優勢。此外,軟體的修訂與更新可以快速執行,以確保系統運行的可靠度。
為了利用這種連接性的優點,Bootloader韌體必須儲存在快閃記憶體中,以便微控制器提供自我寫入的功能。開發客製化的Bootloader程式碼可能是一個複雜且耗時的過程,為了協助 PIC24微控制器(MCU)和dsPIC33數位信號控制器(DSC)開發人員解決此問題,Microchip 提供了 MPLAB® Code Configurator(MCC)16位元Bootloader解決方案。使用簡單的圖形化人機介面,開發人員可以快速建立滿足產品應用需求的Bootloader韌體。
圖(一)是MCC 16位元Bootloader函式庫中Bootloader專案配置的示意圖。使用者只需決定應用程式的起始位址與應用程式的驗證方式,即可快速產生您的Bootloader專案。目前可選用的應用程式的驗證方式包含:Not Blank、Checksum、CRC32、SHA256與ECDSA with ATECC608等方式。
為了提供進一步的協助,Microchip還提供了應用程式的韌體配置,讓開發人員可以輕鬆地為自己的應用程式量身訂做客製化的Bootloader。
下圖(二)是MCC 16位元Bootloader函式庫中應用程式專案配置的示意圖。使用者只須將Bootloader專案中的路徑載入Application專案後,按下Generate Code按鈕即大功告成。MCC會自動將Reset Vector與IVT重新映對到應用程式新的起始位址。
另外為了搭配Bootloader Generator,Microchip還提供了Unified Bootloader Host工具程式。該工具可用於將新的應用程式碼傳送到包含Bootloader程式碼的嵌入式裝置。此圖形化人機介面應用程式可以透過任何支援的實體通訊介面使用Bootloader命令協定與目標裝置進行通訊。
MCC 16位元Bootloader可支援的16位元微控制器包含PIC24、dsPIC33等系列,而支援的通訊介面為UART,未來會納入I2C與CAN等常用通訊介面的支援。
下圖(三)是 Unified Bootloader Host Application(UBHA)工具的示意圖。使用者只需要參考Bootloader專案的配置來設定應用程式的起始位址、結束位址與UART通訊介面的正確baud rate後,接著載入欲更新的應用程式Hex檔並按下Program Device按鈕,即可進行韌體更新。韌體更新狀態可透過Tools選單中的Console功能來監看。
開發支援
PIC® IoT WG開發板 (編號:AC164164)
內建16位元微處理器PIC24FJ128GA705,配合MPLAB X IDE、MCC 16位元Bootloader函式庫與Microchip University之BTL2線上課程的詳細解說,可輕鬆為您的產品加入韌體更新的功能。此外,PIC IoT WG板還搭載ATECC608A加密認證IC與取得多國認證的ATWINC1510 Wi-Fi® 網路控制器,使用者可以用最簡單與有效的方式讓您的嵌入式裝置連結到Google IoT雲端,並且可將板上的溫度與光感測器的資訊上傳到雲端。
有關產品及開發板的相關資訊,可參考以下連結:
https://www.microchip.com/developmenttools/ProductDetails/AC164164
如需進一步瞭解此方案,歡迎與我們經驗豐富的團隊聯絡。
Microchip的名稱和徽標組合,Microchip標誌,MPLAB及PIC均為Microchip Technology Incorporated在美國和其他國家或地區的註冊商標。在此提及的所有其他商標均為各持有公司所有。© 2021 Microchip Technology Inc. 版權所有。
本文作者為:Microchip主任應用工程師 溫書賢