TWI722514B - Ic韌體更新方法 - Google Patents

Ic韌體更新方法 Download PDF

Info

Publication number
TWI722514B
TWI722514B TW108127118A TW108127118A TWI722514B TW I722514 B TWI722514 B TW I722514B TW 108127118 A TW108127118 A TW 108127118A TW 108127118 A TW108127118 A TW 108127118A TW I722514 B TWI722514 B TW I722514B
Authority
TW
Taiwan
Prior art keywords
usvdm
circuit
request
response
protocol
Prior art date
Application number
TW108127118A
Other languages
English (en)
Other versions
TW202105179A (zh
Inventor
李俊毅
章叢餘
林能賢
Original Assignee
瑞昱半導體股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 瑞昱半導體股份有限公司 filed Critical 瑞昱半導體股份有限公司
Publication of TW202105179A publication Critical patent/TW202105179A/zh
Application granted granted Critical
Publication of TWI722514B publication Critical patent/TWI722514B/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/654Updates using techniques specially adapted for alterable solid state memories, e.g. for EEPROM or flash memories
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30181Instruction operation extension or modification
    • G06F9/30189Instruction operation extension or modification according to execution mode, e.g. mode flag
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Stored Programmes (AREA)
  • Information Transfer Systems (AREA)

Abstract

本發明揭露了一種IC韌體更新方法,是由一中介電路來執行,包含:與一目標電路進行通訊,以進入一預設模式;依據一主機電路的一狀態詢問訊息,傳送一狀態回覆訊息給該主機電路,以表示進入該預設模式;於傳送該狀態回覆訊息後,接收該主機電路的一第一協定要求命令;將該第一協定要求命令轉換為N個要求端非結構化供應商定義訊息(Unstructured Vendor Defined Message, USVDM),並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數;接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM;以及將該N個回應端USVDM轉換為一第一協定回應命令,並傳送該第一協定回應命令給該主機電路。

Description

IC韌體更新方法
本發明是關於IC韌體更新方法,尤其是關於利用非結構化供應商定義訊息(Unstructured Vendor Defined Message, USVDM)的IC韌體更新方法。
對採用USB Type-C介面的USB電力傳輸(USB Power Delivery, USB PD)IC而言,更新韌體之最方便的方式是依據USB PD 3.0 協定,透過USB Type-C埠執行韌體更新;若利用其他介面對該USB PD IC執行韌體更新,會遇到各種限制。舉例而言,若欲藉由系統管理匯流排(System Management Bus, Smbus)/積體電路間(Inter-Integrated Circuit, I2C)介面或者傳統USB介面(非USB Type-C介面)來執行韌體更新,該USB PD IC可能因不支援這樣的介面而無法執行韌體更新。
據上所述,對於不支援USB PD 3.0協定但需要通過USB Type-C介面之組態通道(Configuration Channel, CC)來執行韌體更新的USB PD IC而言,該USB PD IC需要一種適當的韌體更新方法。
本發明之一目的在於提供一種IC韌體更新方法,以避免先前技術的問題。
本發明之IC韌體更新方法的一實施例是由一中介電路來執行,該實施例包含下列步驟:與一目標電路進行通訊,以進入一預設模式;依據一主機電路的一狀態詢問訊息,傳送一狀態回覆訊息給該主機電路,以表示進入該預設模式;於傳送該狀態回覆訊息後,接收該主機電路的一第一協定要求命令;將該第一協定要求命令轉換為N個要求端非結構化供應商定義訊息(Unstructured Vendor Defined Message, USVDM),並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數;接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM;以及將該N個回應端USVDM轉換為一第一協定回應命令,並傳送該第一協定回應命令給該主機電路。
本發明之IC韌體更新方法的另一實施例是由一目標電路來執行,該實施例包含下列步驟:與一主端電路進行通訊,以進入一預設模式;接收N個要求端USVDM,其中該N為正整數;以及依據該N個要求端USVDM執行一韌體更新操作,以產生N個回應端USVDM,並傳送該N個回應端USVDM至該主端電路。
本發明之IC韌體更新方法的又一實施例是由一主機電路來執行,該實施例包含下列步驟:與一中介電路進行通訊,以確定該中介電路進入一預設模式;依據一韌體更新程序產生X個第一協定要求命令,並傳送該X個第一協定要求命令至該中介電路,以供該中介電路據以存取一目標電路,該X為正整數;以及從該中介電路接收X個第一協定回應命令,該X個第一協定回應命令的內容源自於該目標電路。當該韌體更新程序所關聯的存取資料量大於K個位元組時,前述產生該X個第一協定要求命令的步驟包含:依據該韌體更新程序產生複數個第一協定要求命令作為該X個第一協定要求命令,使得該X個第一協定要求命令的每一個所關聯的存取資料量不大於K個位元組。
本發明之IC韌體更新方法的再一實施例是由一主機電路來執行,該實施例包含下列步驟:透過一USB Type-C介面與一目標電路進行通訊,以進入一預設模式;依據一韌體更新程序產生N個要求端USVDM,並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數;以及接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM,其中該N個要求端USVDM與該N個回應端USVDM符合USB電力傳輸(USB Power Delivery, USB PD)2.0協定。
有關本發明的特徵、實作與功效,茲配合圖式作較佳實施例詳細說明如下。
本揭露包含一種積體電路(IC)韌體更新裝置與一種IC韌體更新方法。該裝置與方法能夠基於USB電力傳輸(USB Power Delivery, USB PD)2.0協定,利用非結構化供應商定義訊息(Unstructured Vendor Defined Message, USVDM)以透過USB Type-C介面之組態通道(Configuration Channel)來執行韌體更新;然而,在實施為可能的前提下,該裝置與方法的實施並不限於上述協定、訊息、與介面類型。
圖1顯示本揭露之IC韌體更新裝置的一實施例。圖1之IC韌體更新裝置100包含一主機電路110、一中介電路120、與一目標電路130。主機電路110是一已知或自行開發之裝置(例如:電腦)的電路,支援一第一介面(例如:非USB Type-C介面)符合一第一協定;主機電路110用來依據一韌體更新程序產生一第一協定要求命令,並傳送該第一協定要求命令至中介電路120;該第一介面的一範例為下列介面的其中之一:一USB Type-A介面;一USB Type-B介面;一USB Mini-A介面;一USB Mini-B介面;一USB Micro-A介面;一USB Micro-B介面;以及一系統管理匯流排(System Management Bus, SMBUS)介面。中介電路120用來將該第一協定要求命令轉換為N個要求端USVDM,並傳送該N個要求端USVDM至目標電路130;中介電路120的細節說明於後。目標電路130是一已知或自行開發之裝置(例如:電子裝置的供電器)的電路,支援一第二介面(例如:USB Type-C介面)符合一第二協定(例如:USB PD 2.0協定);目標電路130依據該N個要求端USVDM執行一韌體更新操作包含讀/寫操作,並產生N個回應端USVDM,接著傳送該N個回應端USVDM至中介電路120;本實施例中,目標電路130不支援USB PD 3.0協定,然此並非本發明的實施限制。韌體更新裝置100的操作細節見於後述的方法實施例中。
圖2顯示圖1之中介電路120的一實施例,包含:一第一傳收電路210,用來透過該第一介面接收主機電路110的一第一協定要求命令,並透過該第一介面傳送一第一協定回應命令給主機電路110;一第一轉換電路220,用來依據該第一協定以及該第二協定將該第一協定要求命令轉換為N個要求端USVDM,其中該N為正整數;一第二傳收電路230,用來透過該第二介面傳送該N個要求端USVDM給目標電路130,以及透過該第二介面接收目標電路130的N個回應端USVDM;以及一第二轉換電路240,用來依據該第二協定以及該第一協定將該N個回應端USVDM轉換為該第一協定回應命令。中介電路120的操作細節見於後述的方法實施例中。
圖3顯示本揭露之IC韌體更新裝置的另一實施例。圖3之IC韌體更新裝置300包含一主機電路310與一目標電路320。主機電路310是一已知或自行開發之裝置(例如:電腦)的電路,支援一第二介面(例如:USB Type-C介面)符合一第二協定(例如:USB PD 2.0協定);主機電路310用來依據一韌體更新程序產生N個要求端USVDM,並傳送該N個要求端USVDM至目標電路320。目標電路320是一已知或自行開發之裝置(例如:電子裝置的供電器)的電路,支援該第二介面;目標電路320依據該N個要求端USVDM執行一韌體更新操作包含讀/寫操作,並產生N個回應端USVDM,接著傳送該N個回應端USVDM至主機電路310;本實施例中,目標電路320不支援USB PD 3.0協定,然此不是本發明的實施限制。韌體更新裝置300的操作細節見於後述的方法實施例中。
圖4顯示本發明之IC韌體更新方法的一實施例。本實施例可由一中介電路(例如:圖2的中介電路120)來執行,包含下列步驟: 步驟S410:與一目標電路進行通訊,以進入一預設模式。該目標電路的一範例為圖1的目標電路130。於一實作範例中,該預設模式為一模態操作(Modal Operation)模式;為了進入該模態操作模式,與該目標電路進行通訊的過程如圖5所示,包含:查明身分之要求(Discover Identity (request));查明身分之回覆(Discover Identity (ack));查明標準/供應商身分(Standard or Vendor ID, SVID)之要求(Discover SVID (request));查明標準/供應商身分之回覆(Discover SVID (ack));查明模式之要求(Discover Mode (request));查明模式之回覆(Discover Mode (ack));進入模式之要求(Enter Mode (request));以及進入模式之回覆(Enter Mode (ack))。 步驟S420:依據一主機電路的一狀態詢問訊息,傳送一狀態回覆訊息給該主機電路,以表示進入該預設模式。該主機電路的一範例為圖1的主機電路110。於一實作範例中,該狀態詢問訊息為一USB/SMBUS狀態要求命令(USB/SMBUS CMD (Get IC Status request))以及該狀態回覆訊息為一USB/SMBUS狀態回應命令(USB/SMBUS CMD (Get IC status response))如圖5所示,其中該用語“USB”在此是指非USB Type-C的傳統USB。由於本領域具有通常知識者能夠依據該中介電路與該主機電路之間的已知通訊協定(例如:USB/SMBUS協定)和已知通訊技術(例如:依據協定產生封包的技術)來處理該狀態詢問訊息以及產生該狀態回覆訊息,冗餘的說明在此省略。 步驟S430:於傳送該狀態回覆訊息後,接收該主機電路的一第一協定要求命令。於一實作範例中,該第一協定要求命令為一USB/SMBUS要求命令(USB/SMBUS CMD (request))如圖5所示,用來要求資料寫入/讀取。由於本領域具有通常知識者能夠依該中介電路與該主機電路之間的已知通訊協定(例如:USB/SMBUS協定)和已知通訊技術(例如:依據協定產生封包的技術)來處理該第一協定要求命令,冗餘的說明在此省略。 步驟S440:將該第一協定要求命令轉換為N個要求端USVDM,並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數。於一實作範例中,該N個要求端USVDM為符合USB PD 2.0協定的USVDM(PD USVDM (request)),如圖5所示。 圖6顯示該N個要求端USVDM的每一個用於寫入操作時之格式的範例,包含一要求端USVDM表頭(USVDM header)用來攜帶訊息資訊、一要求端第一供應商定義資料物件(Vendor Defined Data Object, VDO)用來攜帶寫入參數、以及M個VDO用來攜帶寫入資料。於圖6的一實作範例中,該要求端USVDM表頭的長度為四個位元組(bytes),其中第16~31個位元用來表示供應商身分(Vendor ID),第15個位元用來表示供應商定義訊息類型(VDM Type),第8~14個位元為保留位元(Reserved Bits),第0~7個位元用來表示寫入該目標電路之儲存電路(例如:快閃記憶體)的要求命令;該要求端第一VDO的長度為四個位元組,其中第24~31個位元用來表示寫入資料的長度(Length),第0~23個位元用來表示開始寫入的位址;該M個VDO的每一個的長度為四個位元組,該M為正整數,例如為不大於五的正整數,從而M個VDO的長度不大於20個位元組以符合USB PD 2.0的規範。 圖7顯示該N個要求端USVDM的每一個用於讀取操作時之格式的範例,包含一要求端USVDM表頭用來攜帶訊息資訊、以及一要求端第一VDO用來攜帶讀取參數。於圖7的一實作範例中,該要求端USVDM表頭的長度為四個位元組,其中第16~31個位元用來表示供應商身分(Vendor ID),第15個位元用來表示供應商定義訊息類型(VDM Type),第8~14個位元為保留位元(Reserved Bits),第0~7個位元用來表示讀取該目標電路之儲存電路(例如:快閃記憶體)的要求命令;該要求端第一VDO的長度為四個位元組,其中第24~31個位元用來表示讀取資料的長度(Length),第0~23個位元用來表示開始讀取的位址。 步驟S450:接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM。於一實作範例中,該N個回應端USVDM為符合USB PD 2.0協定的USVDM(PD USVDM (response)),如圖5所示。 圖6顯示該N個回應端USVDM的每一個用於寫入操作時之格式的範例,包含一回應端USVDM表頭用來攜帶訊息資訊、以及一回應端第一VDO用來攜帶寫入參數。於圖6的一實作範例中,該回應端USVDM表頭與前述用於寫入操作之該要求端USVDM表頭相仿,差別僅在於該回應端USVDM表頭的第0~7個位元用來表示寫入該目標電路的回應命令;該回應端第一VDO的長度為四個位元組,其中第8~31個位元為保留位元,第0~7個位元用來表示寫入結果。 圖7顯示該N個回應端USVDM的每一個用於讀取操作時之格式的範例,包含一回應端USVDM表頭用來攜帶訊息資訊、一回應端第一VDO用來攜帶讀取參數、以及M個VDO用來攜帶讀取資料。於圖7的一實作範例中,該回應端USVDM表頭與前述用於讀取操作之該要求端USVDM表頭相仿,差別僅在於該回應端USVDM表頭的第0~7個位元用來表示讀取該目標電路的回應命令;該回應端第一VDO的長度為四個位元組,其中第24~31個位元用來表示讀取資料的長度(Length),第8~23個位元為保留位元,該0~7個位元用來表示讀取結果;該M個VDO的每一個的長度為四個位元組,該M為正整數,例如為不大於五的正整數,從而M個VDO的長度不大於20個位元組以符合USB PD 2.0的規範。 步驟S460:將該N個回應端USVDM轉換為一第一協定回應命令,並傳送該第一協定回應命令給該主機電路。於一實作範例中,該第一協定回應命令為一USB/SMBUS回應命令(USB/SMBUS CMD (response))如圖5所示,用來回應資料寫入/讀取的要求;該主機電路收到該第一協定回應命令後,可準備開始下一個程序。由於本領域具有通常知識者能夠依該中介電路與該主機電路之間的已知通訊協定(例如:USB/SMBUS協定)和已知通訊技術(例如:依據協定產生封包的技術)來產生該第一協定回應命令,冗餘的說明在此省略。
請參閱圖4~5。於一實作範例中,該中介電路透過一USB Type-C介面的組態通道以與該目標電路進行通訊,上述通訊的編碼為雙向標記碼(Bi-Phase Mark Code),因此,該N個要求端USVDM與該N個回應端USVDM的編碼為雙向標記碼。於一實作範例中,當該第一協定要求命令所關聯的存取資料量大於K個位元組(例如:20個位元組)時,為了令該N個要求端USVDM的每一個所關聯的存取資料量不大於K個位元組以符合該目標電路與該中介電路之間的協定(例如:USB PD 2.0協定),該中介電路除執行圖4之步驟外,進一步執行下列步驟:分拆該第一協定要求命令以產生複數個局部命令;再將該複數個局部命令分別轉換為該N個要求端USVDM,其中該K大於一,該複數個局部命令的每一個所關聯的存取資料量不大於K個位元組,該N為大於一的整數,該N個回應端USVDM分別對應該N個要求端USVDM。於一實作範例中,該目標電路不支援USB PD 3.0協定,但支援USB PD 2.0協定;該中介電路與該目標電路分別作為一下行資料流向埠(Downstream Facing Port, DFP)以及一上行資料流向埠(Upstream Facing Port, UFP)。
圖8顯示本發明之IC韌體更新方法的另一實施例。本實施例可由一目標電路(例如:圖1或圖3的目標電路130)來執行,包含下列步驟: 步驟S810:與一主端電路(例如:圖1的中介電路120或圖3的主機電路310)進行通訊,以進入一預設模式(例如:模態操作模式)。 步驟S820:接收N個要求端USVDM,其中該N為正整數。 步驟S830:依據該N個要求端USVDM執行一韌體更新操作,以產生N個回應端USVDM,並傳送該N個回應端USVDM至該主端電路。
圖9顯示本發明之IC韌體更新方法的又一實施例。本實施例可由一主機電路(例如:圖1的主機電路110)來執行,包含下列步驟: 步驟S910:與一中介電路(例如:圖1的中介電路120)進行通訊,以確定該中介電路進入一預設模式(例如:模態操作模式)。 步驟S920:依據一韌體更新程序產生X個第一協定要求命令,並傳送該X個第一協定要求命令至該中介電路,以供該中介電路據以存取一目標電路,該X為正整數。當該韌體更新程序所關聯的存取資料量大於K個位元組時,產生該X個第一協定要求命令的步驟包含:依據該韌體更新程序產生複數個第一協定要求命令作為該X個第一協定要求命令,使得該X個第一協定要求命令的每一個所關聯的存取資料量不大於K個位元組。 步驟S930:從該中介電路接收X個第一協定回應命令,該X個第一協定回應命令的內容源自於該目標電路。
圖10顯示本發明之IC韌體更新方法的再一實施例。本實施例可由一主機電路(例如:圖3的主機電路310)來執行,包含下列步驟: 步驟S1010:透過一USB Type-C介面與一目標電路(例如:圖3的目標電路320)進行通訊,以進入一預設模式(例如:模態操作模式)。值得注意的是,為了進入該模態操作模式,與該目標電路進行通訊的過程如圖11所示,該過程同於圖5中從「查明身分之要求(Discover Identity (request))」至「進入模式之回覆(Enter Mode (ack))」的過程。 步驟S1020:依據一韌體更新程序產生N個要求端USVDM要求,並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數。於一實作範例中,該N個要求端USVDM為符合USB PD 2.0協定的USVDM(PD USVDM (request)),如圖11所示。 步驟S1030:接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM,其中該N個要求端USVDM與該N個回應端USVDM符合USB PD 2.0協定。於一實作範例中,該N個回應端為符合USB PD 2.0協定的USVDM(PD USVDM (response)),如圖11所示。
由於本領域具有通常知識者能夠參酌圖1~7之實施例的揭露來瞭解圖8~11之實施例的細節與變化,亦即圖1~7之實施例的技術特徵可合理應用於圖8~11的實施例中,因此,重複及冗餘之說明在此省略。此外,本說明書之部分用語(例如:USVDM、組態通道、SMBUS、模態操作、VDO、雙向標記碼、DFP、UFP等等)是本技術領域中已知且已定義的用語,細節可見於USB PD 2.0/3.0規格書及其相關文獻。
值得注意的是,在實施為可能的前提下,本技術領域具有通常知識者可選擇性地實施前述任一實施例中部分或全部技術特徵,或選擇性地實施前述複數個實施例中部分或全部技術特徵的組合,藉此增加本發明實施時的彈性。
綜上所述,本發明能夠基於USB PD 2.0協定,利用本發明自行定義的USVDM以透過USB Type-C介面之組態通道,來為不支援USB PD 3.0協定的目標電路進行韌體更新。
雖然本發明之實施例如上所述,然而該些實施例並非用來限定本發明,本技術領域具有通常知識者可依據本發明之明示或隱含之內容對本發明之技術特徵施以變化,凡此種種變化均可能屬於本發明所尋求之專利保護範疇,換言之,本發明之專利保護範圍須視本說明書之申請專利範圍所界定者為準。
100  IC韌體更新裝置 110  主機電路 120  中介電路 130  目標電路 210  第一傳收電路 220  第一轉換電路 230  第二傳收電路 240  第二轉換電路 300  IC韌體更新裝置 310  主機電路 320  目標電路 S410~S460  步驟 Discover Identity (request)  查明身分之要求 Discover Identity (ack)  查明身分之回覆 Discover SVID (request)  查明SVID之要求 Discover SVID (ack)  查明SVID之回覆 Discover Mode (request)  查明模式之要求 Discover Mode (ack)  查明模式之回覆 Enter Mode (request)  進入模式之要求 Enter Mode (ack)  進入模式之回覆 USB/SMBUS CMD (Get IC Status request)  USB/SMBUS狀態要求命令 USB/SMBUS CMD (Get IC status response)  USB/SMBUS狀態回應命令 USB/SMBUS CMD (request)  USB/SMBUS要求命令 PD USVDM (request)  N個要求端USVDM PD USVDM (response)  N個回應端USVDM USB/SMBUS CMD (response)  USB/SMBUS回應命令 S810~S830  步驟 S910~S930  步驟 S1010~S1030  步驟
[圖1]顯示本揭露之IC韌體更新裝置的一實施例; [圖2]顯示圖1之中介電路的一實施例; [圖3]顯示本揭露之IC韌體更新裝置的另一實施例; [圖4]顯示本發明之IC韌體更新方法的一實施例; [圖5]顯示圖4之方法的流程圖; [圖6]顯示圖4之N個要求端/回應端USVDM用於寫入操作時之格式的範例; [圖7]顯示圖4之N個要求端/回應端USVDM用於讀取操作時之格式的範例; [圖8]顯示本發明之IC韌體更新方法的另一實施例; [圖9]顯示本發明之IC韌體更新方法的又一實施例; [圖10]顯示本發明之IC韌體更新方法的再一實施例;以及 [圖11]顯示圖10之方法的流程圖。
S410~S460  步驟

Claims (10)

  1. 一種IC韌體更新方法,是由一中介電路來執行,包含:與一目標電路進行通訊,以進入一預設模式;依據一主機電路的一狀態詢問訊息,傳送一狀態回覆訊息給該主機電路,以表示進入該預設模式,其中該主機電路與該中介電路為不同電路;於傳送該狀態回覆訊息後,接收該主機電路的一第一協定要求命令;將該第一協定要求命令轉換為N個要求端非結構化供應商定義訊息(Unstructured Vendor Defined Message,USVDM),並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數;接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM;以及將該N個回應端USVDM轉換為一第一協定回應命令,並傳送該第一協定回應命令給該主機電路。
  2. 如申請專利範圍第1項所述之方法,其中該中介電路透過一USB Type-C介面以與該目標電路進行通訊,以及該中介電路透過一非USB Type-C介面以與該主機電路進行通訊。
  3. 如申請專利範圍第1項所述之方法,進一步包含:當該第一協定要求命令所關聯的存取資料量大於K個位元組(bytes)時,分拆該第一協定要求命令以產生複數個局部命令;再將該複數個局部命令分別轉換為該N個要求端USVDM,其中該K大於一,該複數個局部命令的每一個所關聯的存取資料量 不大於K個位元組,該N為大於一的整數,該N個回應端USVDM分別對應該N個要求端USVDM。
  4. 如申請專利範圍第1項所述之方法,其中當該N個要求端USVDM為寫入訊息時,該N個要求端USVDM的格式包含一要求端USVDM表頭(header)、一要求端第一供應商定義資料物件(Vendor Defined Data Object,VDO)用來攜帶寫入參數、以及M個VDO用來攜帶資料;以及該N個回應端USVDM的格式包含一回應端USVDM表頭以及一回應端第一VDO用來攜帶寫入參數,其中該M為正整數。
  5. 如申請專利範圍第1項所述之方法,其中當該N個要求端USVDM為讀取訊息時,該N個要求端USVDM的格式包含一要求端USVDM表頭(header)以及一要求端第一供應商定義資料物件(Vendor Defined Data Object,VDO)用來攜帶讀取參數;以及該N個回應端USVDM的格式包含一回應端USVDM表頭、一回應端第一VDO用來攜帶讀取參數、以及M個VDO用來攜帶資料,其中該M為正整數。
  6. 一種IC韌體更新方法,是由一目標電路來執行,包含:與一主端電路進行通訊,使得該目標電路與該主端電路進入一預設模式;接收N個要求端非結構化供應商定義訊息(Unstructured Vendor Defined Message,USVDM),其中該N為正整數;以及依據該N個要求端USVDM執行一韌體更新操作,以產生N個回應端USVDM,並傳送該N個回應端USVDM至該主端電路。
  7. 如申請專利範圍第6項所述之方法,其中當該N個要求端USVDM為寫入訊息時,該N個要求端USVDM的格式包含一要求端USVDM表頭 (header)、一要求端第一供應商定義資料物件(Vendor Defined Data Object,VDO)用來攜帶寫入參數、以及M個VDO用來攜帶資料;以及該N個回應端USVDM的格式包含一回應端USVDM表頭以及一回應端第一VDO用來攜帶寫入參數,其中該M為正整數。
  8. 如申請專利範圍第6項所述之方法,其中當該N個要求端USVDM為讀取訊息時,該N個要求端USVDM的格式包含一要求端USVDM表頭(header)以及一要求端第一供應商定義資料物件(Vendor Defined Data Object,VDO)用來攜帶讀取參數;該N個回應端USVDM的格式包含一回應端USVDM表頭、一回應端第一VDO用來攜帶讀取參數、以及M個VDO用來攜帶資料,其中該M為正整數。
  9. 一種IC韌體更新方法,是由一主機電路來執行,包含:與一中介電路進行通訊,以確定該中介電路進入一預設模式,其中該主機電路與該中介電路為不同電路;依據一韌體更新程序產生X個第一協定要求命令,並傳送該X個第一協定要求命令至該中介電路,以供該中介電路據以存取已進入該預設模式的一目標電路,該X為正整數;以及從該中介電路接收X個第一協定回應命令,該X個第一協定回應命令的內容源自於該目標電路,其中當該韌體更新程序所關聯的存取資料量大於K個位元組時,產生該X個第一協定要求命令的步驟包含:依據該韌體更新程序產生複數個第一協定要求命令作為該X個第一協定要求命令,使得該X個第一協定要求命令的 每一個所關聯的存取資料量不大於K個位元組,以符合該中介電路與該目標電路之間的一協定。
  10. 一種IC韌體更新方法,是由一主機電路來執行,包含:透過一USB Type-C介面與一目標電路進行通訊,使得該主機電路與該目標電路進入一預設模式;依據一韌體更新程序產生N個要求端非結構化供應商定義訊息(Unstructured Vendor Defined Message,USVDM),並傳送該N個要求端USVDM至該目標電路,以供該目標電路執行一韌體更新操作,其中該N為正整數;以及接收該目標電路的N個回應端USVDM,該N個回應端USVDM對應該N個要求端USVDM,其中該N個要求端USVDM與該N個回應端USVDM符合USB電力傳輸(USB Power Delivery,USB PD)2.0協定。
TW108127118A 2019-07-19 2019-07-31 Ic韌體更新方法 TWI722514B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201910655055.9 2019-07-19
CN201910655055.9A CN112241277A (zh) 2019-07-19 2019-07-19 Ic固件更新方法

Publications (2)

Publication Number Publication Date
TW202105179A TW202105179A (zh) 2021-02-01
TWI722514B true TWI722514B (zh) 2021-03-21

Family

ID=74167449

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108127118A TWI722514B (zh) 2019-07-19 2019-07-31 Ic韌體更新方法

Country Status (3)

Country Link
US (1) US11144305B2 (zh)
CN (1) CN112241277A (zh)
TW (1) TWI722514B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113326057B (zh) * 2021-06-30 2023-04-14 安克创新科技股份有限公司 主控程序升级方法、装置、系统和电子设备
CN115686164A (zh) * 2021-07-26 2023-02-03 瑞昱半导体股份有限公司 供电端装置、供电系统以及非暂态电脑可读取媒体

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1630851A (zh) * 2002-02-11 2005-06-22 英特尔公司 用于在预存储器执行环境中链接固件模块的方法和系统
TWI306193B (en) * 2004-09-30 2009-02-11 Intel Corp Self-monitoring and updating of firmware over a network
TW200923902A (en) * 2007-11-22 2009-06-01 Realtek Semiconductor Corp Firmware updating method and system
TW201327389A (zh) * 2011-12-22 2013-07-01 Hon Hai Prec Ind Co Ltd 具有韌體更新功能的系統、電子裝置及其韌體更新方法
US20160259746A1 (en) * 2015-01-27 2016-09-08 Richtek Technology Corp. Usb type-c cable and method for reading/writing a chip in a usb type-c cable
TWI578233B (zh) * 2015-11-05 2017-04-11 廣達電腦股份有限公司 統一韌體管理系統、非揮發電腦可讀取媒體以及統一韌體管理方法
TWI587124B (zh) * 2016-06-03 2017-06-11 台達電子工業股份有限公司 USB Type-C轉接模組及其啟動方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104220958B (zh) * 2012-02-29 2017-04-19 华硕科技(苏州)有限公司 计算机装置及其通用串行总线连接器的工作模式转换方法
US9690955B2 (en) * 2014-06-18 2017-06-27 Texas Instruments Incorporated Tunneling messages over an USB to control power delivery
US9952996B2 (en) * 2014-10-15 2018-04-24 Icron Technologies Corporation Devices and methods for providing concurrent superspeed communication and four-lane displayport communication via a USB type-C receptacle
CN104391811B (zh) * 2014-11-28 2018-03-16 成都中远信电子科技有限公司 一种微型机载数据记录装置及其数据记录和卸载方法
US20160306616A1 (en) * 2015-04-20 2016-10-20 Microsoft Technology Licensing, Llc Firmware update by usb cc
TWI609271B (zh) * 2015-10-23 2017-12-21 群光電能科技股份有限公司 具識別碼更新功能之供電系統
TWI604372B (zh) * 2016-11-14 2017-11-01 瑞昱半導體股份有限公司 用於記憶卡存取之中介電路
WO2019015681A1 (zh) * 2017-07-20 2019-01-24 青岛海信电器股份有限公司 一种终端设备及其控制方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1630851A (zh) * 2002-02-11 2005-06-22 英特尔公司 用于在预存储器执行环境中链接固件模块的方法和系统
TWI306193B (en) * 2004-09-30 2009-02-11 Intel Corp Self-monitoring and updating of firmware over a network
TW200923902A (en) * 2007-11-22 2009-06-01 Realtek Semiconductor Corp Firmware updating method and system
TW201327389A (zh) * 2011-12-22 2013-07-01 Hon Hai Prec Ind Co Ltd 具有韌體更新功能的系統、電子裝置及其韌體更新方法
US20160259746A1 (en) * 2015-01-27 2016-09-08 Richtek Technology Corp. Usb type-c cable and method for reading/writing a chip in a usb type-c cable
TWI578233B (zh) * 2015-11-05 2017-04-11 廣達電腦股份有限公司 統一韌體管理系統、非揮發電腦可讀取媒體以及統一韌體管理方法
TWI587124B (zh) * 2016-06-03 2017-06-11 台達電子工業股份有限公司 USB Type-C轉接模組及其啟動方法

Also Published As

Publication number Publication date
TW202105179A (zh) 2021-02-01
US11144305B2 (en) 2021-10-12
CN112241277A (zh) 2021-01-19
US20210019140A1 (en) 2021-01-21

Similar Documents

Publication Publication Date Title
USRE46488E1 (en) Direct data transfer between slave devices
JP5551193B2 (ja) エンハンスドワイヤレスusbプロトコル及びハブ
KR101832797B1 (ko) Usb 디바이스와의 mctp 통신을 수행하기 위한 방법, 장치 및 시스템
US7895385B2 (en) Establishing communication over serial buses in a slave device
TWI722514B (zh) Ic韌體更新方法
US8291146B2 (en) System and method for accessing resources of a PCI express compliant device
JP2018523217A (ja) ペリフェラルコンポーネントインターコネクトエクスプレス(pcie)システムにおけるトランザクション固有属性の伝達
WO2018112942A1 (zh) 设备认证方法、装置、电子设备及从设备
US6779052B2 (en) Electronic apparatus, system and method for controlling communication among devices coupled through different interfaces
JPWO2019031295A1 (ja) カード装置、ホスト装置および通信方法
JP2010039616A (ja) デバイス、情報処理システム、情報処理方法
US20150350014A1 (en) Networking implementation using a converged high speed input/output fabric technology
US10521385B2 (en) Inter-device digital audio
WO2016054898A1 (zh) 数据传输方法及终端、计算机存储介质
KR20160147373A (ko) 광 신호를 이용한 sata 호스트 버스 어댑터 및 sata 저장소 연결 방법
US20160291987A1 (en) Programmable cable and programming method thereof
CN110069422B (zh) 基于mips多核处理器的内存缓冲区回收方法
CN106713521B (zh) 一种基于广播方式来查找i2c设备地址的方法
JP6298534B2 (ja) 経路制御装置及び経路制御方法並びにコンピュータシステム及びプログラム及びプログラムを格納した記憶媒体
JP2004062347A (ja) Usbデバイスおよびusbシステム
CN116756078B (zh) pcie数据包的通知方法、装置及存储介质
CN111045632B (zh) 音频播放装置及其运行方法
KR20100100136A (ko) 엔드 포인트를 복수개로 분할 가능한 반도체 장치
CN118819647A (zh) 通用串行总线接口的驱动方法、装置、电子设备、存储介质及计算机程序产品
CN117435534A (zh) 基于外围总线的数据传输电路、方法及处理器