TW202139021A - 用於usb-pd充電器的固件更新方法和裝置 - Google Patents
用於usb-pd充電器的固件更新方法和裝置 Download PDFInfo
- Publication number
- TW202139021A TW202139021A TW109114609A TW109114609A TW202139021A TW 202139021 A TW202139021 A TW 202139021A TW 109114609 A TW109114609 A TW 109114609A TW 109114609 A TW109114609 A TW 109114609A TW 202139021 A TW202139021 A TW 202139021A
- Authority
- TW
- Taiwan
- Prior art keywords
- usb
- charger
- message
- control device
- firmware update
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本發明涉及用於USB-PD充電器的固件更新方法和裝置。提供了一種由USB-PD充電器執行的方法,包括:接收由USB-PD主控裝置基於從終端設備接收到的更新指令而發送的第一消息;在基於第一消息驗證USB-PD主控裝置合法時,向USB-PD主控裝置發送第一確認消息,並且將USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間;接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息,並且將第二消息中的固件更新資料寫入使用者程式碼空間;以及向USB-PD主控裝置發送第二確認消息,並且將USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。
Description
本發明涉及充電器領域,更具體地涉及一種用於USB-PD充電器的固件更新方法和裝置。
USB-PD(USB Power Delivery,USB功率傳輸)協議是USB-IF(USB Implementers Forum,USB開發者論壇)協會提出的一項快充協定,伴隨USB-PD協定誕生的還有USB Type-C介面。通過USB-PD協定和USB Type-C介面,USB-IF協會希望統一所有廠家的快充規格,改變廠家各自為戰的局面,實現一台充電器適配所有設備的遠景。從2014年誕生以來,USB-PD充電器蓬勃發展,特別是隨著Apple終於在iPhone11引入了對USB-PD協定的支援之後,整個USB-PD充電器市場迎來了大爆發。
隨著USB-PD協議不斷地被修改完善,一款USB-PD充電器生產出來,可能過一段時間就無法相容最新的USB-PD協議。然而,對於充電器廠家來說,USB-PD IC(USB-PD Integrated Circuit,USB-PD積體電路)相對於一般充電器IC在價格上較高,並且如果早期上市的USB-PD充電器有漏洞,則很可能導致召回及賠償。因此,充電器廠家希望能夠對USB-PD充電器進行固件更新。
傳統的固件更新方法需要充電器額外提供專用的燒錄引腳,典型的是一根時鐘信號SCL,一根資料信號線SDA。然而,在USB-PD充電器中,對外只有Type-C的信號線,無法提供專用的燒錄引腳。因此,需要一種用於USB-PD充電器的固件更新方法和裝置。
本發明的實施例提供了一種用於USB-PD充電器的固件更新方法和裝置,能夠利用USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。
在第一方面中,本發明的實施例提供了一種由USB-PD充電器執行的方法,包括:接收由USB-PD主控裝置基於從終端設備接收到的更新指令而發送的第一消息;在基於第一消息驗證USB-PD主控裝置合法時,向USB-PD主控裝置發送第一確認消息,並且將USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間;接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息,並且將第二消息中的固件更新資料寫入使用者程式碼空間;以及向USB-PD主控裝置發送第二確認消息,並且將USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。
在第一方面的一種可能的實施方式中,第一消息包括加密資訊,並且其中,基於第一消息驗證USB-PD主控裝置合法包括:對第一消息中的加密資訊進行解密,並且基於解密的資訊來驗證USB-PD主控裝置合法。
在第一方面的一種可能的實施方式中,在接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息之前,方法還包括:接收由USB-PD主控裝置發送的第三消息,並且向USB-PD主控裝置發送第三確認消息,並且其中,第三消息包括固件更新資料的資料塊數量和USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。
在第一方面的一種可能的實施方式中,接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息包括:依次接收與固件更新資料的資料塊數量相對應的多個第二子消息。
在第一方面的一種可能的實施方式中,在向USB-PD主控裝置發送第二確認消息之後,並且在將USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間之前,方法還包括:接收由USB-PD主控裝置基於從終端設備接收到的校驗指令而發送的請求消息;基於請求消息,從使用者程式碼空間讀取固件更新資料並且向USB-PD主控裝置發送固件更新資料,以供USB-PD主控裝置將固件更新資料發送至終端設備用於檢測一致性;以及接收由USB-PD主控裝置基於終端設備確認固件更新資料的一致性而發送的第四消息,並且向USB-PD主控裝置發送第四確認消息。
在第一方面的一種可能的實施方式中,向USB-PD主控裝置發送固件更新資料包括:依次發送固件更新資料的各個資料塊。
在第一方面的一種可能的實施方式中,USB-PD充電器與USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且USB-PD主控裝置與終端設備之間的通信是經由UART(通用非同步接收發送器,universal asynchronous receiver transmitter)介面進行的。
在第二方面中,本發明的實施例提供了一種由USB-PD主控裝置執行的方法,包括:基於從終端設備接收到的更新指令而向USB-PD充電器發送第一消息;接收由USB-PD充電器在基於第一消息驗證USB-PD主控裝置合法時而發送的第一確認消息,以及使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間;基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息;以及接收由USB-PD充電器在將第二消息中的固件更新資料寫入使用者程式碼空間之後而發送的第二確認消息,以及使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。
在第二方面的一種可能的實施方式中,第一消息包括加
密資訊。
在第二方面的一種可能的實施方式中,在基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息之前,方法還包括:向USB-PD充電器發送第三消息,並且接收由USB-PD充電器發送的第三確認消息;並且其中,第三消息包括固件更新資料的資料塊數量和USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。
在第二方面的一種可能的實施方式中,基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息包括:依次發送與固件更新資料的資料塊數量相對應的多個第二子消息。
在第二方面的一種可能的實施方式中,在接收由USB-PD充電器在將第二消息中的固件更新資料寫入使用者程式碼空間之後而發送的第二確認消息之後,並且在使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間之前,方法還包括:基於從終端設備接收到的校驗指令而向USB-PD充電器發送請求消息;接收由USB-PD充電器從使用者程式碼空間讀取並且發送的固件更新資料,並且將固件更新資料發送至終端設備用於檢測一致性;以及基於終端設備確認固件更新資料的一致性而向USB-PD充電器發送第四消息,並且接收由USB-PD充電器發送的第四確認消息。
在第二方面的一種可能的實施方式中,接收由USB-PD充電器從使用者程式碼空間讀取並且發送的固件更新資料包括:依次接收固件更新資料的各個資料塊。
在第二方面的一種可能的實施方式中,USB-PD充電器與USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且USB-PD主控裝置與終端設備之間的通信是經由UART介面進行的。
在第三方面中,本發明的實施例提供了一種USB-PD IC模組,包括:微控制器核心、可多次擦寫記憶體、USB-PD資料緩衝器、
VBUS控制模組、USB-PD實體層介面電路、和UART/I2C介面電路,並且其中,微控制器核心分別與可多次擦寫記憶體、USB-PD協定發送接收資料緩衝器、VBUS控制模組、USB-PD實體層介面電路、和UART/I2C介面電路可通信地連接;可多次擦寫記憶體包括使用者程式碼空間和在系統程式設計程式碼空間;USB-PD資料緩衝器用於緩衝根據USB-PD協定傳輸的資料;VBUS控制模組用於充電控制;USB-PD實體層介面電路用於經由USB Type-C介面根據USB-PD協定進行通信;UART/I2C介面電路用於經由UART介面進行通信。
在第四方面中,本發明的實施例提供了一種USB-PD充電器,包括根據第三方面的USB-PD IC模組,其中,該USB-PD IC模組中的UART/I2C介面電路被封裝並且不與外部通信,並且其中,該USB-PD充電器用於執行根據第一方面的方法。
在第五方面中,本發明的實施例提供了一種USB-PD主控裝置,包括根據第三方面的USB-PD IC模組,其中,該USB-PD主控裝置用於執行根據第二方面的方法。
在第六方面中,本發明的實施例提供了一種系統,包括根據第四方面的USB-PD充電器、根據第五方面的USB-PD主控裝置、以及終端設備。
如上所述,本發明的實施例通過終端設備和USB-PD主控裝置來對USB-PD充電器進行固件更新。具體地,終端設備可以向USB-PD主控裝置發送固件更新資料,並且USB-PD主控裝置可以將固件更新資料轉發給USB-PD充電器,使得僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。此外,USB-PD充電器還可以將固件更新資料經由USB-PD主控裝置發送回終端設備,使得由終端設備進行一致性檢測以校驗USB-PD充電器中的固件更新資料。通過以上方式,在不需要對USB-PD充電器進行拆分並且不需要提供專用燒錄引腳的情況下,可以實現對USB-PD充電器進行固件更新,並且確保固件更新資
料的一致性。
1~18,S401~S404,S501~S504:步驟
400,500:方法
CC,CC 1,CC 2:通道配置
GND:接地線
VBUS:供電線
VDM 1:第一消息
VDM 2:第二(子)消息
VDM 3:第三消息
VDM 4:第四消息
從下面結合圖式對本發明的具體實施方式的描述中,可以更好地理解本發明,其中:
圖1是USB-PD充電器和移動設備的充電示意圖。
圖2示出了根據本發明的實施例的USB-PD充電器的固件更新示意圖。
圖3示出了圖2中的USB-PD IC模組的示意圖。
圖4示出了根據本發明的實施例的由USB-PD充電器執行的方法400的流程圖。
圖5示出了根據本發明的實施例的由USB-PD主控裝置執行的方法500的流程圖。
圖6示出了根據本發明的實施例的USB-PD充電器的固件更新時序圖。
下面將詳細描述本發明各個方面的特徵和示例性實施例。下面的描述涵蓋了許多具體細節,以便提供對本發明的全面理解。但是,對於本領域技術人員來說顯而易見的是,本發明可以在不需要這些具體細節中的一些細節的情況下實施。下面對實施例的描述僅僅是為了通過示出本發明的示例來提供對本發明更清楚的理解。本發明絕不限於下面所提出的任何具體配置,而是在不脫離本發明的精神的前提下覆蓋了相關元素或部件的任何修改、替換和改進。
圖1是USB-PD充電器和移動設備的充電示意圖。在圖1中,USB-PD充電器的硬體介面可以是USB Type-C介面,該USB Type-C介面可以包括VBUS(供電線)、CC(CC1或CC2)(Channel Configuration,通道配置)和GND(接地線),其中,VBUS和GND可以提供充電回路,而CC可以用於傳輸源與接收點之間的協定資訊。USB-
PD充電器可以通過USB Type-C介面經由USB Type-C線纜與移動設備連接。
在本發明的實施例中,在不增加額外資源的情況下,充分利用USB-PD充電器的USB Type-C介面以及USB-PD協定,提供了一種用於USB-PD充電器的固件更新方法和裝置。具體地,定義了USB-PD IC模組,通過運行有USB-PD固件更新軟體的終端設備,利用具有該USB-PD IC模組的USB-PD主控裝置,來對具有該USB-PD IC模組的USB-PD充電器進行固件更新。因此,實現了通過USB Type-C介面直接對USB-PD充電器進行固件更新。
圖2示出了根據本發明的實施例的USB-PD充電器的固件更新示意圖。根據本發明的實施例,USB-PD充電器可以包括USB-PD IC模組,USB-PD主控裝置可以包括USB-PD IC模組,並且終端設備可以運行有USB-PD固件更新軟體。在實施例中,終端設備可以是主機PC。終端設備與USB-PD主控裝置可以經由UART介面進行通信,並且USB-PD主控裝置與USB-PD充電器可以經由USB Type-C介面進行通信。
圖3示出了圖2中的USB-PD IC模組的示意圖。根據本發明的實施例,USB-PD IC模組可以包括MCU(微控制器,Microcontroller Unit)核心、可多次擦寫記憶體、USB-PD資料緩衝器、VBUS控制模組、USB-PD實體層介面電路、和UART/I2C介面電路。在實施例中,微控制器核心可以分別與可多次擦寫記憶體、USB-PD協定發送接收資料緩衝器、VBUS控制模組、USB-PD實體層介面電路、和UART/I2C介面電路可通信地連接。
根據本發明的實施例,可多次擦寫記憶體可以包括使用者程式碼空間和在系統程式設計程式碼空間。在實施例中,使用者程式碼空間可以用於存儲使用者程式資料,包括固件更新資料等等。在系統程式設計程式碼空間可以用於固件更新時的在系統程式設計。在實施例中,USB-PD資料緩衝器可以用於緩衝根據USB-PD協定發送的資料,例如,
固件更新資料等等。在實施例中,VBUS控制模組可以用於充電控制。
根據本發明的實施例,USB-PD實體層介面電路可以用於經由USB Type-C介面根據USB-PD協定進行通信。例如,USB-PD實體層介面電路可以用於USB-PD充電器與USB-PD主控裝置之間的通信。在實施例中,UART/I2C介面電路可以用於經由UART介面進行通信。例如,UART/I2C介面電路可以用於USB-PD主控裝置與終端設備之間的通信。
在實施例中,USB-PD充電器中的USB-PD IC模組的UART/I2C介面電路可以被封裝並且不與外部通信。此外,USB-PD充電器中的USB-PD IC模組的USB-PD實體層介面電路可以用於與外部設備進行通信,例如,由於USB-PD充電器的硬體介面僅為USB Type-C介面。在實施例中,USB-PD主控裝置中的USB-PD IC模組的UART/I2C介面電路可以用於與終端設備進行通信,而USB-PD主控裝置中的USB-PD IC模組的USB-PD實體層介面電路可以用於與USB-PD充電器進行通信。
圖4示出了根據本發明的實施例的由USB-PD充電器執行的方法400的流程圖。在實施例中,由USB-PD充電器執行的方法400可以包括以下步驟。在步驟S401中,接收由USB-PD主控裝置基於從終端設備接收到的更新指令而發送的第一消息。在實施例中,第一消息可以是根據USB-PD協定定義的VDM(Vendor Define Message,供應商定義消息)1。例如,第一消息VDM 1可以具有以下消息格式。
VDM 1消息格式
在步驟S402中,在基於第一消息驗證USB-PD主控裝置合法時,向USB-PD主控裝置發送第一確認消息,並且將USB-PD充電器
的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間。在實施例中,第一消息可以包括加密資訊,例如,如上所述第一消息VDM 1中的26個位元組的標識資料可以是加密資訊。
在實施例中,基於第一消息驗證USB-PD主控裝置合法可以包括:對第一消息中的加密資訊進行解密,並且基於解密的資訊來驗證USB-PD主控裝置合法。在實施例中,通過對標識資料進行加密,可以保證USB-PD充電器能夠識別合法的USB-PD主控裝置。此外,在其他非法裝置向USB-PD充電器發送消息並且試圖篡改USB-PD充電器的USB-PD IC模組時,USB-PD充電器可以發送拒絕消息,並且阻止這些非法操作。
在步驟S403中,接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息,並且將第二消息中的固件更新資料寫入使用者程式碼空間。在實施例中,在接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息之前,方法400還可以包括:接收由USB-PD主控裝置發送的第三消息,並且向USB-PD主控裝置發送第三確認消息,並且其中,第三消息包括固件更新資料的資料塊數量和USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。
在實施例中,第二消息可以是根據USB-PD協定定義的VDM 2。例如,第二消息VDM 2可以具有以下消息格式。
VDM 2消息格式
在實施例中,一個資料塊可以具有256個位元組的資料。此外,當USB-PD充電器接收到第三消息之後,USB-PD充電器可以根據
第三消息中的更新起始位址以及總資料塊數量,對USB-PD充電器中的USB-PD IC模組的記憶體進行設置,以便能夠預留出相應的存儲空間,從而接收固件更新資料。
在實施例中,接收由USB-PD主控裝置基於從終端設備接收到的固件更新資料而發送的第二消息包括:依次接收與固件更新資料的資料塊數量相對應的多個第三消息。在實施例中,第三消息可以是根據USB-PD協定定義的VDM 3。例如,第三消息VDM 3可以具有以下消息格式。
VDM 3消息格式
在實施例中,USB-PD充電器可以根據資料塊編號來依次接收多個第三消息VDM 3,並且將第三消息VDM 3中的固件更新資料依次寫入記憶體的使用者程式碼空間。在實施例中,通過將固件更新資料分資料塊來進行發送,可以實現更有效並且更準確的資料傳輸。
在步驟S404中,向USB-PD主控裝置發送第二確認消息,並且將USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。在實施例中,當USB-PD充電器將所有固件更新資料寫入記憶體的使用者程式碼空間之後,可以發送第二確認消息,並且可以將用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。這樣,USB-PD充電器可以完成更新,並且實現僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。
在實施例中,在向USB-PD主控裝置發送第二確認消息之後,並且在將USB-PD充電器的USB-PD IC模組用於執行程式的指標從
在系統程式設計程式碼空間跳轉到使用者程式碼空間之前,方法400還可以包括:接收由USB-PD主控裝置基於從終端設備接收到的校驗指令而發送的請求消息;基於請求消息,從使用者程式碼空間讀取固件更新資料並且向USB-PD主控裝置發送固件更新資料,以供USB-PD主控裝置將固件更新資料發送至終端設備用於檢測一致性;以及接收由USB-PD主控裝置基於終端設備確認固件更新資料的一致性而發送的第四消息,並且向USB-PD主控裝置發送第四確認消息。例如,第四消息VDM 4可以具有以下消息格式。
VDM 4消息格式
在實施例中,通過將USB-PD充電器存儲的固件更新資料發送回終端設備,並且由終端設備對固件更新資料進行一致性檢測,來確保USB-PD充電器接收到的固件更新資料是正確的。在實施例中,向USB-PD主控裝置發送固件更新資料包括:依次發送固件更新資料的各個資料塊。例如,可以通過如上所述的第三消息VDM 3來將固件更新資料按照資料塊編號依次發送至USB-PD主控裝置並且再轉發回終端設備。在實施例中,終端設備可以依次對固件更新資料的各個資料塊進行一致性檢測。例如,終端設備可以在相應資料塊具有一致性時,繼續接收和檢測下一個資料塊,並且可以在相應資料塊不具有一致性時,報告錯誤。當固件更新資料的所有資料塊都完成一致性檢測時,可以驗證USB-PD充電器接收到的固件更新資料是正確的。
在實施例中,USB-PD充電器與USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且USB-PD主控裝置與終端設備之間的通信是經由UART介面進行的。這樣,可以實
現僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。
圖5示出了根據本發明的實施例的由USB-PD主控裝置執行的方法500的流程圖。在實施例中,由USB-PD主控裝置執行的方法500可以包括以下步驟。在步驟S501中,基於從終端設備接收到的更新指令而向USB-PD充電器發送第一消息。在實施例中,第一消息可以是如上所述的VDM 1,並且具有如上所述的消息格式。
在步驟S502中,接收由USB-PD充電器在基於第一消息驗證USB-PD主控裝置合法時而發送的第一確認消息,以及使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間。在實施例中,第一消息可以包括加密資訊,例如,如上所述VDM 1中的26個位元組的標識資料可以是加密資訊。
在步驟S503中,基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息。在實施例中,在基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息之前,方法500還包括:向USB-PD充電器發送第三消息,並且接收由USB-PD充電器發送的第三確認消息;並且其中,第三消息包括固件更新資料的資料塊數量和USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。在實施例中,第三消息可以是如上所述的VDM 3,並且可以具有如上所述的消息格式。在實施例中,USB-PD主控裝置可以初始化資料塊計數器N=0。
在實施例中,基於從終端設備接收到的固件更新資料而向USB-PD充電器發送第二消息包括:依次發送與固件更新資料的資料塊數量相對應的多個第二子消息。在實施例中,第二子消息可以是如上所述的VDM 2,並且可以具有如上所述的消息格式。此外,USB-PD主控裝置可以在發送一個第二子消息之後,對資料塊計數器N進行遞增操作,直到所有第二子消息發送完畢,並且資料塊計數器N等於固件更新資料的資料塊數量。
在步驟S504中,接收由USB-PD充電器在將第二消息中的固件更新資料寫入使用者程式碼空間之後而發送的第二確認消息,以及使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。在實施例中,當USB-PD主控裝置接收到第二確認消息之後,可以完成對USB-PD充電器的固件更新,並且因此,可以實現僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。
在實施例中,在接收由USB-PD充電器在將第二消息中的固件更新資料寫入使用者程式碼空間之後而發送的第二確認消息之後,並且在使得USB-PD充電器的USB-PD IC模組用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間之前,方法500還包括:基於從終端設備接收到的校驗指令而向USB-PD充電器發送請求消息;接收由USB-PD充電器從使用者程式碼空間讀取並且發送的固件更新資料,並且將固件更新資料發送至終端設備用於檢測一致性;以及基於終端設備確認固件更新資料的一致性而向USB-PD充電器發送第四消息,並且接收由USB-PD充電器發送的第四確認消息。
在實施例中,通過將USB-PD充電器存儲的固件更新資料發送回終端設備,並且由終端設備對固件更新資料進行一致性檢測,來確保USB-PD充電器接收到的固件更新資料是正確的。在實施例中,接收由USB-PD充電器從使用者程式碼空間讀取並且發送的固件更新資料包括:依次接收固件更新資料的各個資料塊。例如,USB-PD主控裝置可以通過如上所述的第三消息VDM 3來按照資料塊編號依次接收固件更新資料並且再轉發回終端設備。在實施例中,終端設備可以依次對固件更新資料的各個資料塊進行一致性檢測。例如,終端設備可以在相應資料塊具有一致性時,繼續接收和檢測下一個資料塊,並且可以在相應資料塊不具有一致性時,報告錯誤。當固件更新資料的所有資料塊都完成一致性檢測時,可以驗證USB-PD充電器接收到的固件更新資料是正確的。
在實施例中,USB-PD充電器與USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且USB-PD主控裝置與終端設備之間的通信是經由UART介面進行的。這樣,可以實現僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。
圖6示出了根據本發明的實施例的USB-PD充電器的固件更新時序圖。根據本發明的實施例,在步驟1中,終端設備可以向USB-PD主控裝置發送更新指令,以指示需要更新USB-PD充電器的固件。在步驟2中,USB-PD主控裝置向USB-PD充電器發送第一消息VDM 1。在步驟3中,USB-PD充電器在基於第一消息VDM 1中的加密資訊驗證USB-PD主控裝置合法時發送確認消息,並且將用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間。在步驟4中,USB-PD主控裝置在接收到第一確認消息之後,向USB-PD充電器發送第二消息VDM 2。在步驟5中,USB-PD充電器接收第二消息VDM 2,並且向USB-PD主控裝置發送確認消息。在步驟6中,USB-PD主控裝置通知終端設備以開始發送固件更新資料。在步驟7中,終端設備向USB-PD主控裝置發送固件更新資料。在步驟8中,USB-PD主控裝置向USB-PD充電器發送第三消息VDM 3。在步驟9中,USB-PD充電器將固件更新資料寫入使用者程式碼空間,並且向USB-PD主控裝置發送確認消息。此外,步驟7~9可以重複執行,直到所有固件更新資料都被發送至USB-PD充電器。在步驟10中,USB-PD主控裝置通知終端設備所有固件更新資料已經發送完畢。
在實施例中,在步驟11中,終端設備向USB-PD主控裝置發送校驗指令,以指示要讀取USB-PD充電器中存儲的固件更新資料。在步驟12中,USB-PD主控裝置向USB-PD充電器發送請求消息。在步驟13中,USB-PD充電器從使用者程式碼空間讀取固件更新資料,並且向USB-PD主控裝置發送第三消息VDM 3。在步驟14中,USB-PD主控裝置
將固件更新資料發送回終端設備,並且終端設備檢測固件更新資料是否具有一致性。此外,步驟11~14可以重複執行,直到所有固件更新資料都被驗證。在步驟15中,終端設備向USB-PD主控裝置發送更新完成指令,以指示更新結束。在步驟16中,USB-PD主控裝置向USB-PD充電器發送第四消息VDM 4。在步驟17中,USB-PD充電器向USB-PD主控裝置發送確認消息,並且將用於執行程式的指標從在系統程式設計程式碼空間跳轉到使用者程式碼空間。在步驟18中,USB-PD主控裝置通知終端設備更新結束。
如上所述,本發明的實施例通過終端設備和USB-PD主控裝置來對USB-PD充電器進行固件更新。具體地,終端設備可以向USB-PD主控裝置發送固件更新資料,並且USB-PD主控裝置可以將固件更新資料轉發給USB-PD充電器,使得僅需要通過USB Type-C介面根據USB-PD協定來更新USB-PD充電器的固件。此外,USB-PD充電器還可以將固件更新資料經由USB-PD主控裝置發送回終端設備,使得由終端設備進行一致性檢測以校驗USB-PD充電器中的固件更新資料。通過以上方式,在不需要對USB-PD充電器進行拆分並且不需要提供專用燒錄引腳的情況下,可以實現對USB-PD充電器進行固件更新,並且確保固件更新資料的一致性。
雖然已經參考實施例對本發明進行了描述,但在不脫離本發明的範圍的情況下,可以對其進行各種改進並且可以用等效物替換其中的部件。尤其是,只要不存在結構衝突,各個實施例中所提到的各項技術特徵均可以任意方式組合起來。本發明並不局限於文中公開的特定實施例,而是包括落入申請專利範圍的範圍內的所有技術方案。
S401~S404:步驟
400:方法
Claims (18)
- 一種由USB-PD充電器執行的方法,包括:接收由USB-PD主控裝置基於從終端設備接收到的更新指令而發送的第一消息;在基於所述第一消息驗證所述USB-PD主控裝置合法時,向所述USB-PD主控裝置發送第一確認消息,並且將所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間;接收由所述USB-PD主控裝置基於從所述終端設備接收到的固件更新資料而發送的第二消息,並且將所述第二消息中的固件更新資料寫入所述使用者程式碼空間;以及向所述USB-PD主控裝置發送第二確認消息,並且將所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從所述在系統程式設計程式碼空間跳轉到所述使用者程式碼空間。
- 如請求項1所述的方法,其中,所述第一消息包括加密資訊,並且其中,基於所述第一消息驗證所述USB-PD主控裝置合法包括:對所述第一消息中的加密資訊進行解密,並且基於解密的資訊來驗證所述USB-PD主控裝置合法。
- 如請求項1所述的方法,其中,在接收由所述USB-PD主控裝置基於從所述終端設備接收到的固件更新資料而發送的第二消息之前,所述方法還包括:接收由所述USB-PD主控裝置發送的第三消息,並且向所述USB-PD主控裝置發送第三確認消息,並且其中,所述第三消息包括所述固件更新資料的資料塊數量和所述USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。
- 如請求項3所述的方法,其中,接收由所述USB-PD主控裝置基於從所述終端設備接收到的固件更新資料而發送的第二消息包括:依次接收與所述固件更新資料的資料塊數量相對應的多個第二子消息。
- 如請求項1所述的方法,其中,在向所述USB-PD主控裝置發送第二確認消息之後,並且在將所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從所述在系統程式設計程式碼空間跳轉到所述使用者程式碼空間之前,所述方法還包括:接收由所述USB-PD主控裝置基於從所述終端設備接收到的校驗指令而發送的請求消息;基於所述請求消息,從所述使用者程式碼空間讀取所述固件更新資料並且向所述USB-PD主控裝置發送所述固件更新資料,以供所述USB-PD主控裝置將所述固件更新資料發送至所述終端設備用於檢測一致性;以及接收由所述USB-PD主控裝置基於所述終端設備確認所述固件更新資料的一致性而發送的第四消息,並且向所述USB-PD主控裝置發送第四確認消息。
- 如請求項5所述的方法,其中,向所述USB-PD主控裝置發送所述固件更新資料包括:依次發送所述固件更新資料的各個資料塊。
- 如請求項1所述的方法,其中,所述USB-PD充電器與所述USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且所述USB-PD主控裝置與所述終端設備之間的通信是經由UART介面進行的。
- 一種由USB-PD主控裝置執行的方法,包括:基於從終端設備接收到的更新指令而向USB-PD充電器發送第一消息;接收由所述USB-PD充電器在基於所述第一消息驗證所述USB-PD主控裝置合法時而發送的第一確認消息,以及使得所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從使用者程式碼空間跳轉到在系統程式設計程式碼空間;基於從所述終端設備接收到的固件更新資料而向所述USB-PD充電器 發送第二消息;以及接收由所述USB-PD充電器在將所述第二消息中的固件更新資料寫入所述使用者程式碼空間之後而發送的第二確認消息,以及使得所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從所述在系統程式設計程式碼空間跳轉到所述使用者程式碼空間。
- 如請求項8所述的方法,其中,所述第一消息包括加密資訊。
- 如請求項8所述的方法,其中,在基於從所述終端設備接收到的固件更新資料而向所述USB-PD充電器發送第二消息之前,所述方法還包括:向所述USB-PD充電器發送第三消息,並且接收由所述USB-PD充電器發送的第三確認消息;並且其中,所述第三消息包括所述固件更新資料的資料塊數量和所述USB-PD充電器的USB-PD IC模組的記憶體的更新起始位址。
- 如請求項10所述的方法,其中,基於從所述終端設備接收到的固件更新資料而向所述USB-PD充電器發送第二消息包括:依次發送與所述固件更新資料的資料塊數量相對應的多個第二子消息。
- 如請求項7所述的方法,其中,在接收由所述USB-PD充電器在將所述第二消息中的固件更新資料寫入所述使用者程式碼空間之後而發送的第二確認消息之後,並且在使得所述USB-PD充電器的USB-PD IC模組用於執行程式的指標從所述在系統程式設計程式碼空間跳轉到所述使用者程式碼空間之前,所述方法還包括:基於從所述終端設備接收到的校驗指令而向所述USB-PD充電器發送請求消息;接收由所述USB-PD充電器從所述使用者程式碼空間讀取並且發送的所述固件更新資料,並且將所述固件更新資料發送至所述終端設備用於檢測一致性;以及基於所述終端設備確認所述固件更新資料的一致性而向所述USB-PD 充電器發送第四消息,並且接收由所述USB-PD充電器發送的第四確認消息。
- 如請求項12所述的方法,其中,接收由所述USB-PD充電器從所述使用者程式碼空間讀取並且發送的所述固件更新資料包括:依次接收所述固件更新資料的各個資料塊。
- 如請求項8所述的方法,其中,所述USB-PD充電器與所述USB-PD主控裝置之間的通信是經由USB Type-C介面根據USB-PD協定進行的,並且所述USB-PD主控裝置與所述終端設備之間的通信是經由UART介面進行的。
- 一種USB-PD IC模組,包括:微控制器核心、可多次擦寫記憶體、USB-PD資料緩衝器、VBUS控制模組、USB-PD實體層介面電路、和UART/I2C介面電路,並且其中,所述微控制器核心分別與所述可多次擦寫記憶體、所述USB-PD協定發送接收資料緩衝器、所述VBUS控制模組、所述USB-PD實體層介面電路、和所述UART/I2C介面電路可通信地連接;所述可多次擦寫記憶體包括使用者程式碼空間和在系統程式設計程式碼空間;所述USB-PD資料緩衝器用於緩衝根據USB-PD協定傳輸的資料;所述VBUS控制模組用於充電控制;所述USB-PD實體層介面電路用於經由USB Type-C介面根據USB-PD協定進行通信;所述UART/I2C介面電路用於經由UART介面進行通信。
- 一種USB-PD充電器,包括如請求項15所述的USB-PD IC模組,其中,所述USB-PD IC模組中的所述UART/I2C介面電路被封裝並且不與外部通信,並且其中,所述USB-PD充電器用於執行如請求項1-7中任一項所述的方法。
- 一種USB-PD主控裝置,包括如請求項15所述的USB-PD IC模組,其中,所述USB-PD主控裝置用於執行如請求項8-14中任一項所述的方法。
- 一種系統,包括如請求項16所述的USB-PD充電器、如請求項17所述的USB-PD主控裝置、以及終端設備。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010240827.5A CN111352645B (zh) | 2020-03-31 | 2020-03-31 | 用于usb-pd充电器的固件更新方法和装置 |
CN202010240827.5 | 2020-03-31 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW202139021A true TW202139021A (zh) | 2021-10-16 |
TWI765257B TWI765257B (zh) | 2022-05-21 |
Family
ID=71197504
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109114609A TWI765257B (zh) | 2020-03-31 | 2020-04-30 | 用於usb-pd充電器的韌體更新方法和裝置 |
Country Status (2)
Country | Link |
---|---|
CN (1) | CN111352645B (zh) |
TW (1) | TWI765257B (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326057B (zh) * | 2021-06-30 | 2023-04-14 | 安克创新科技股份有限公司 | 主控程序升级方法、装置、系统和电子设备 |
CN113328505B (zh) * | 2021-08-03 | 2021-10-29 | 深圳英集芯科技股份有限公司 | 充电需求适配方法、电子设备及相关产品 |
CN117667141B (zh) * | 2023-12-04 | 2024-06-28 | 珠海智融科技股份有限公司 | 充电协议软件系统和多方协同处理方法 |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1540497A (zh) * | 2003-04-21 | 2004-10-27 | 矽成积体电路股份有限公司 | Usb装置韧体程式可更新的方法 |
CN101963910A (zh) * | 2010-09-21 | 2011-02-02 | 深圳市元征软件开发有限公司 | 基于通用usb总线的设备固件升级方法 |
CN103116561A (zh) * | 2011-11-17 | 2013-05-22 | 凹凸电子(武汉)有限公司 | 数字信号收发装置和方法以及电动车系统 |
US9431831B1 (en) * | 2014-07-25 | 2016-08-30 | Google Inc. | Updating firmware for charging device |
CN111404219B (zh) * | 2014-08-05 | 2024-06-18 | 德州仪器公司 | 用于快速usb充电的方法、电子装置及充电器设备 |
US20160306616A1 (en) * | 2015-04-20 | 2016-10-20 | Microsoft Technology Licensing, Llc | Firmware update by usb cc |
US11101673B2 (en) * | 2018-03-13 | 2021-08-24 | Cypress Semiconductor Corporation | Programmable gate driver control in USB power delivery |
CN110489137B (zh) * | 2018-05-15 | 2024-04-09 | 恩智浦美国有限公司 | 用于更新无线充电器中的固件的系统和方法 |
CN110457055B (zh) * | 2019-07-29 | 2023-06-09 | 珠海一微半导体股份有限公司 | 一种面向快充协议的固件升级控制方法、系统及控制终端 |
-
2020
- 2020-03-31 CN CN202010240827.5A patent/CN111352645B/zh active Active
- 2020-04-30 TW TW109114609A patent/TWI765257B/zh active
Also Published As
Publication number | Publication date |
---|---|
CN111352645A (zh) | 2020-06-30 |
CN111352645B (zh) | 2023-08-22 |
TWI765257B (zh) | 2022-05-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TW202139021A (zh) | 用於usb-pd充電器的固件更新方法和裝置 | |
US9563368B2 (en) | Embedded multimedia card and method of operating the same | |
CN110687993B (zh) | 通过usb隧道传送消息从而控制电力输送 | |
JP2008539497A (ja) | 集積回路間におけるスレーブ装置の装置識別コーディング | |
CN102033770A (zh) | 移动终端的触摸屏固件升级方法及装置 | |
CN102736938A (zh) | Fpga配置程序的烧写方法 | |
CN110784386B (zh) | 固件更新方法及相关设备 | |
US8904094B2 (en) | Memory system in which extended function can easily be set | |
CN110727614A (zh) | Edid动态配置方法、装置及电子设备 | |
CN104333401A (zh) | 蓝牙数据发送方法、接收方法、装置及系统 | |
CN106649158B (zh) | 通过i2c接口读写内部寄存器堆的装置及方法 | |
CN110045974B (zh) | 一种显示器固件的升级方法、升级装置及终端 | |
CN109189423A (zh) | 车载显示屏升级方法、存储介质、设备和车载多媒体系统 | |
CN117687664A (zh) | 一种dsp的在线升级配置方法及装置 | |
CN112181460B (zh) | 程序固件升级方法、装置、电子设备及存储介质 | |
US11144305B2 (en) | Method for updating IC firmware | |
US20140006710A1 (en) | Memory system in which extension function can easily be set | |
US20080270816A1 (en) | Portable data storage apparatus and synchronization method for the same | |
CN102222181A (zh) | 一种在嵌入式设备中实现可信计算平台的方法 | |
CN115688120A (zh) | 安全芯片固件导入方法、安全芯片及计算机可读存储介质 | |
CN111381838B (zh) | 数据写入方法、烧录系统、数据更新方法以及储存装置 | |
KR20110089129A (ko) | 통신 인터페이스용 비트 반전을 위한 시스템, 장치 및 방법 | |
US20140013050A1 (en) | Memory system in which extended function can easily be set | |
JP4431768B2 (ja) | 携帯型電子装置、読み出し方法及び書き込み方法 | |
KR100801884B1 (ko) | 플래시 메모리, 플래시 메모리의 제어 방법 및 직렬인터페이스 장치 |