科技進步飛快,電子產品也持續升級,最常見的升級就是手機收到的軟體升級通知。如果要讓我們製作的設備也像手機一樣可以持續更新,跟上市場或客戶的需求,建立現場韌體更新(Bootloader)機制必不可少。
Bootloader 的主要用途是更新設備的韌體,但不需要使用傳統的燒錄器,並且可以最大程度地減少設備停機時間。為了做到這一點,設備需要具備某種通訊方式,使其能夠在目標設備(需要更新的設備)與主機應用程式{包含新韌體的 PC 或其他設備(Host Device)}之間進行資料傳輸(見圖一)。這意味著,現場的設備不僅需要運行應用程式(Application Code),還需要另一個程式(Bootloader Code)來管理應用程式的 載入和卸載。這項技術可用於遠端韌體更新,提升產品維護的便利性並減少成本。
Microchip 的 8-bit Microchip Device Firmware Update(MDFU)Client Library(客戶端庫)可用於建立 8 位元微控制器(MCU)的 Bootloader。該解決方案使用 Microchip Firmware Image Builder(pyfwimagebuilder)工具來生成應用程式映像檔 (.img),並透過 MDFU(pymdfu)主機工具使用全新設計的 檔案傳輸協定(FTP)來更新韌體(見圖二)。目前支援 UART、I2C 和 SPI 這三種通訊協定。
MDFU最大的特色是在更新開始前不需取得目標設備的資訊。隨著設備日益多樣化,特別是 MCU 在設備進化過程中的更迭,這種設計可避免頻繁更新主機應用程式,大幅提升相容性。
MDFU 客戶端庫的主要功能:
●採用全新設計的 檔案傳輸協定(FTP)來與主機進行通訊
●MDFU 主機可用於更新任何支援 FTP 的設備韌體
●提供更好的程式架構,以擴展功能支援並提升 8 位元設備之間的程式移植性
●在更新開始前,不需要任何目標設備的資訊
●包含GUI介面,提供下拉選單式操作(見圖三及圖四)
●最大限度減少 Bootloader 程式所需的記憶體空間
●透過 MPLABR Code Configurator(MCC)介面輕鬆設定(見圖五)
產生的原始碼將具備以下功能:
●判斷是否已載入有效的應用程式
●判斷是否運行 Bootloader 或應用程式
●與主機通訊
●擦除(Erase)並重寫(Rewrite)設備應用程式韌體
●移交控制權給應用程式
●偵測 Bootloader 更新失敗並回報錯誤
●防止 Bootloader 程式遭受意外覆寫
這個軟體庫讓韌體更新更加簡單、高效且靈活,適用於 8 位元 MCU 的開發需求!
MDFU相關資料:
● Microchip Device Firmware Update(MDFU)Protocol Specification 1.0.0
● PIC18F56Q24加入MDFU實例
除了MDFU外,Microchip還提供了其他系列的Bootloader範例程式:
● Microchip Bootloaders
如需了解更多有關的應用技術資訊,歡迎連繫Microchip各個銷售據點。
本文作者為:Microchip主任應用工程師 賴惠君