TW202014904A - I3c上的低等待時間虛擬通用輸入/輸出 - Google Patents
I3c上的低等待時間虛擬通用輸入/輸出 Download PDFInfo
- Publication number
- TW202014904A TW202014904A TW108128730A TW108128730A TW202014904A TW 202014904 A TW202014904 A TW 202014904A TW 108128730 A TW108128730 A TW 108128730A TW 108128730 A TW108128730 A TW 108128730A TW 202014904 A TW202014904 A TW 202014904A
- Authority
- TW
- Taiwan
- Prior art keywords
- vgi
- bit
- transmitted
- state
- serial bus
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/16—Handling requests for interconnection or transfer for access to memory bus
- G06F13/1605—Handling requests for interconnection or transfer for access to memory bus based on arbitration
- G06F13/161—Handling requests for interconnection or transfer for access to memory bus based on arbitration with latency improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
- G06F13/4291—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/20—Handling requests for interconnection or transfer for access to input/output bus
- G06F13/24—Handling requests for interconnection or transfer for access to input/output bus using interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/14—Handling requests for interconnection or transfer
- G06F13/36—Handling requests for interconnection or transfer for access to common bus or bus system
- G06F13/362—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
- G06F13/364—Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F13/00—Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F13/38—Information transfer, e.g. on bus
- G06F13/42—Bus transfer protocol, e.g. handshake; Synchronisation
- G06F13/4282—Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0058—Bus-related hardware virtualisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/0064—Latency reduction in handling transfers
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/24—Interrupt
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2213/00—Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
- G06F2213/36—Arbitration
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Systems (AREA)
Abstract
描述了用於在多個源設備和多個消費設備之間傳達虛擬GPIO(VGI)資訊的系統、方法和裝置。一種用於促進在串列匯流排上的VGI狀態通訊的方法包括以下步驟:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的多個設備傳輸的位元,以及將VGI狀態的複數個位元中的至少一個位元映射到實體GPIO引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸被抑制。
Description
本專利申請案主張於2018年8月13日提出申請的題為「LOW LATENCY VIRTUAL GENERAL PURPOSE INPUT/OUTPUT OVER I3C
(I3C上的低等待時間虛擬通用輸入/輸出)」的非臨時申請案第16/101,836的優先權,該申請案已被轉讓給本案受讓人並由此經由援引明確納入於此。
本案大體而言係關於串列通訊,尤其係關於在串列通訊鏈路上促進在多個源設備處產生並定向到多個目的地設備的虛擬通用輸入/輸出資訊的通訊。
行動通訊設備可包括各種各樣的元件,包括電路板、積體電路(IC)元件及/或晶片上系統(SoC)元件。各元件可包括處理元件、使用者介面元件、儲存和經由共享資料通訊匯流排(其可包括串列匯流排或平行匯流排)進行通訊的其他周邊元件。在一些例子中,共享資料通訊匯流排可使用標準化通用序列介面(諸如,積體電路間(I2C或I2
C)串列匯流排和由行動行業處理器介面(MIPI)聯盟定義的I3C介面)來實現。
積體電路(IC)元件中提供的通用輸入/輸出(GPIO)使得IC設計者能夠定義和配置可為特定應用定制的引腳。例如,取決於使用者需要,GPIO引腳可被程式設計為用作輸出引腳或者輸入引腳。GPIO模組或者周邊設備可控制能基於介面要求而變動的引腳群組。GPIO引腳通常被包括在微處理器和微控制器應用中,因為微處理器和微控制器提供靈活性和可程式設計性。例如,行動設備中的應用處理器可以使用數個GPIO引腳來進行交握信號傳遞,諸如與數據機處理器的處理器間通訊(IPC)。
在許多例子中,採用數個命令和控制信號來連接行動通訊設備中的不同元件設備。該等連接消耗行動通訊設備內寶貴的通用輸入/輸出(GPIO)引腳,並且用在現有串列資料連結上傳輸的資訊中攜帶的信號來代替實體互連將是合乎期望的。然而,串列資料連結與可阻止將實體命令和控制信號轉換成虛擬信號的等待時間相關聯,尤其是在行動通訊設備所支援的定義嚴格傳輸時限的即時嵌入式系統應用中。
隨著行動通訊設備持續包括更高級的功能性,需要改良的串列通訊技術來支援周邊設備與應用處理器之間的低等待時間傳輸。
本案的某些態樣係關於可促進在多個源設備處產生並定向到多個目的地設備的虛擬GPIO資訊的通訊的系統、裝置、方法和技術。
在本案的各個態樣中,一種用於在串列匯流排上促進虛擬通用輸入/輸出(VGI)的通訊的方法在耦合至串列匯流排的設備上被執行,並且包括以下步驟:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及將VGI狀態的複數個位元中的至少一個位元映射到實體GPIO引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸被抑制。
在一態樣,該方法包括以下步驟:在VGI狀態的交換期間傳輸VGI狀態的一或多個位元。
在一態樣,將VGI狀態的複數個位元中的至少一個位元映射到實體GPIO引腳包括基於該至少一個位元的值來定義實體GPIO引腳的電壓狀態。
在某些態樣,複數個設備中的第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在串列匯流排上傳輸的時鐘信號中時鐘脈衝的第一數目來定義的時槽大小。第一設備可被配置具有該時槽中相對於設備位址的第一位元的位置,該位置根據時鐘信號中時鐘脈衝的第二數目來定義。VGI狀態資訊的第一位元可指示該時槽是否包括VGI狀態的有效位元。該方法可進一步包括以下步驟:當VGI狀態資訊的第一位元指示該時槽不包括VGI狀態的有效位元時,抑制在該時槽中傳輸第一數目個時鐘脈衝中的所有時鐘脈衝。
在一些態樣,該方法包括以下步驟:在設備位址的第一位元已被傳輸之後配置將主設備耦合至串列匯流排的一或多個線驅動器用於推挽操作模式。當該一或多個線驅動器處於開汲操作模式時,設備位址的第一位元可由從設備傳輸。該方法可包括以下步驟:當設備位址的第一位元正由從設備傳輸時,在串列匯流排上傳輸具有第一頻率的第一時鐘信號,以及在設備位址的第一位元已被傳輸之後,在串列匯流排上傳輸具有第二頻率的第二時鐘信號。第二頻率可以大於第一頻率。第二時鐘信號可提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的交換的歷時。
在本案的各個態樣,一種裝置具有複數個GPIO引腳,調適成將該裝置耦合至串列匯流排的介面以及所配置的處理電路。該處理電路可被配置成:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及將VGI狀態的複數個位元中的至少一個位元映射到實體GPIO引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸被抑制。
在本案的各個態樣,一種處理器可讀取儲存媒體維護資料及/或處理器可讀取指令,在由一或多個處理器執行時該資料及/或處理器可讀取指令可使得該一或多個處理器:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及基於VGI狀態的複數個位元中的至少一個位元的值來定義實體GPIO引腳的電壓狀態。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸可被抑制。
在本案的各個態樣,一種裝置包括:用於決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言的構件,其中該裝置被配置成當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,用於在VGI狀態的交換期間接收VGI狀態的複數個位元的構件,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及用於基於VGI狀態的複數個位元中的至少一個位元的值來定義實體GPIO引腳的電壓狀態的構件。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸可被抑制。
以下結合附圖闡述的詳細描述意欲作為各種配置的描述,而無意表示可實踐本文所描述的概念的僅有配置。本詳細描述包括具體細節以提供對各種概念的透徹理解。然而,對於熟習此項技術者將顯而易見的是,沒有該等具體細節亦可以實踐該等概念。在一些例子中,以方塊圖形式圖示眾所周知的結構和元件以便避免湮沒此類概念。
現在將參照各種裝置和方法提供本發明的若干態樣。該等裝置和方法將在以下詳細描述中進行描述並在附圖中由各種方塊、模組、元件、電路、步驟、過程、演算法等(統稱為「元素」)來圖示。該等元素可使用電子硬體、電腦軟體,或其任何組合來實現。此類元素是實現成硬體還是軟體取決於具體應用和加諸於整體系統上的設計約束。概覽
包括多SoC的設備和其他IC元件通常採用可包括串列匯流排或其他資料通訊鏈路的共享通訊介面以將處理器與數據機和其他周邊設備相連接。串列匯流排或其他資料通訊鏈路可根據所定義的多個標準或協定來被操作。在一個實例中,串列匯流排可根據I2C,及/或I3C協定來被操作。根據本文所揭示的某些態樣,GPIO引腳和信號可被虛擬化成可在資料通訊鏈路上傳輸的GPIO狀態資訊。在最終減少的輸入/輸出(RIO)實現中,虛擬GPIO狀態資訊可在各種通訊鏈路(包括包含有線和無線電通訊鏈路的鏈路)上被傳輸。例如,虛擬GPIO狀態資訊可被封包化或以其他方式被格式化以供在無線電存取網路(諸如藍芽、WLAN、蜂巢網路及/或其他網路)上進行傳輸。本文描述了涉及有線通訊鏈路的實例以促進對某些態樣的理解。
本文揭示的某些態樣提供了I3C協定的調適,其使VGI狀態能夠在共用、多點串列匯流排上以低等待時間進行通訊。現有協定具有良好定義且不可改變的結構,因為其結構不能被改變以基於使用情形中的變動及/或與其他協定、設備和應用的共存來最佳化傳輸等待時間。即時嵌入式系統要求必須滿足某些時限。在某些即時應用中,滿足傳輸時限是最為重要的。
本文所揭示的某些態樣係關於通訊鏈路,包括其中根據I3C協定對資料進行序列化和傳輸的實現。可以可在一根或多根導線上傳輸的信號中傳輸的位元、位元組、字元及/或符號來傳達資料。某些態樣係關於在帶內中斷被服務時VGI狀態的交換。
在序列介面中,資料可被序列化以獲得在有效負荷中可與鏈路管理資料一起被傳輸的一系列順序位元,該鏈路管理資料可辨識有效負荷中攜帶的資料的源、目的地及/或性質。在串列鏈路的一或多條導線上以信號傳輸的有效負荷資料可被分類攜帶,包括由協定定義的訊框及/或事務。協定可將其他資料前附於有效負荷,包括例如標頭資料(例如,起始位元或起始序列)、匯流排管理資料(例如,帶內中斷的辨識符、匯流排交遞等)。有效負荷資料可被稱為從發送方設備傳輸至接收方設備的「應用資料」。例如,有效負荷資料可包括由感測器、控制器、應用軟體或其他元件產生的資料,並且有效負荷資料可被定向到不同感測器、控制器、應用軟體或其他元件。有效負荷資料之後可以是包括同位或循環冗餘檢查位元的差錯保護資料,以及包括停止位元或停止序列的結尾及/或腳資料。管理資料在本文中可被稱為被傳輸以實現匯流排管理的控制和命令資訊。管理資料可與各功能(諸如匯流排仲裁、帶內中斷以及用於控制匯流排的操作模式的命令和信號傳遞、協定選擇等)有關。
在I3C匯流排的實例中,管理資料包括共用命令碼(CCC)和辨識某些匯流排管理功能的位元、位元組或字。事務可包括由在前起始位元和結尾停止位元限定的管理及/或有效負荷資料。事務可包括多個訊框,其中訊框可以是事務的子部分。例如,有效負荷資料可被劃分並被攜帶在幾個訊框上。在一些實例中,訊框可包括封包或協定單元,該封包或協定單元包括被封裝在因協定而異的管理資料中的有效負荷資料,其中傳輸方應用程式將有效負荷資料封裝在管理資料中,並且接收方應用程式剝離管理資料以獲得有效負荷資料。
本文所揭示的某些態樣提供調適於促進在帶內中斷服務期間傳達虛擬GPIO資訊的方法、電路和系統,並且可交換在多個源設備處產生並定向到多個目的地設備的虛擬GPIO狀態。每個源設備可被分配一或多個時槽以供傳輸虛擬GPIO狀態資訊。虛擬GPIO狀態資訊的接收方在適恰的時槽中擷取有關的虛擬GPIO狀態資訊。
在一個實例中,一種用於促進在串列匯流排上的VGI通訊的方法包括以下步驟:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及將VGI狀態的複數個位元中的至少一個位元映射到實體GPIO引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸被抑制。串列匯流排可根據I3C協定來操作。採用串列通訊鏈路的裝置的實例
根據某些態樣,串列通訊鏈路可被用於互連作為裝置的子元件的電子設備,該裝置諸如是蜂巢式電話、智慧型電話、通信期啟動協定(SIP)電話、膝上型設備、筆記本、小筆電、智慧型電腦、個人數位助理(PDA)、衛星無線電、全球定位系統(GPS)設備、智慧家用設備、智慧照明、多媒體設備、視訊設備、數位音訊播放機(例如,MP3播放機)、相機、遊戲控制台、娛樂設備、車載元件、可穿戴計算設備(例如,智慧手錶、健康或健身追蹤器、眼鏡等)、電器、感測器、安全設備、自動售貨機、智慧電錶、無人機、多旋翼直升機,或任何其他類似的功能設備。
圖1圖示了可採用串列通訊匯流排的裝置100的實例。裝置100可包括具有可在一或多個特殊應用積體電路(ASIC)中或在SoC中實現的多個電路或設備104、106,及/或108的處理電路102。在一個實例中,裝置100可以是通訊設備,並且處理電路102可包括在ASIC 104中提供的處理設備、一或多個周邊設備106,以及收發機108,收發機108使得該裝置能夠與無線電存取網路、核心存取網路、網際網路及/或另一網路進行通訊。
ASIC 104可具有一或多個處理器112、一或多個數據機110、板載記憶體114、匯流排介面電路116及/或其他邏輯電路或功能。處理電路102可由可提供應用程式設計介面(API)層的作業系統來控制,該API層使得該一或多個處理器112能夠執行常駐在板載記憶體114或在處理電路102上提供的其他處理器可讀取儲存122中的軟體模組。軟體模組可包括儲存在板載記憶體114或處理器可讀取儲存122中的指令和資料。ASIC 104可存取其板載記憶體114、處理器可讀取儲存122,及/或在處理電路102外部的儲存。板載記憶體114、處理器可讀取儲存122可包括唯讀記憶體(ROM)或隨機存取記憶體(RAM)、電子可抹除可程式設計ROM(EEPROM)、快閃記憶卡,或可以在處理系統和計算平臺中使用的任何記憶體設備。處理電路102可包括、實現或存取本端資料庫或其他參數儲存,該本端資料庫或其他參數儲存可維護用於配置和操作裝置100及/或處理電路102的工作參數和其他資訊。本端資料庫可使用暫存器、資料庫模組、快閃記憶體、磁性媒體、EEPROM、軟碟或硬碟等來實現。處理電路102亦可以可操作地耦合至外部設備,諸如顯示器126、操作者控制項(諸如開關或按鈕128、130及/或整合或外部按鍵板132),以及其他元件。使用者介面模組可被配置成經由專用通訊鏈路或經由一或多個串列匯流排與顯示器126、外部按鍵板132和其他此類設備一起操作。
處理電路102可以提供使得某些設備104、106及/或108能夠進行通訊的一或多條匯流排118a、118b、120。在一個實例中,ASIC 104可包括匯流排介面電路116,其包括電路、計數器、計時器、控制邏輯和其他可配置電路或模組的組合。在一個實例中,匯流排介面電路116可被配置成根據通訊規範或協定來操作。處理電路102可包括或控制配置和管理裝置100的操作的功率管理功能。
圖2圖示了包括耦合至串列匯流排220的多個設備202和2220
-222N
的裝置200的某些態樣。設備202和2220
-222N
可在一或多個半導體IC元件(諸如,應用處理器、SoC或ASIC)中實現。在各種實現中,設備202和2220
-222N
可包括、支援或用作數據機、信號處理設備、顯示器驅動器、相機、使用者介面、感測器、感測器控制器、媒體播放機、收發機,及/或其他此類元件或設備。在一些實例中,一或多個從設備2220
-222N
可被用於控制、管理或監視感測器設備。設備202和2220
-222N
之間在串列匯流排220上的通訊由匯流排主控方202來控制。某些類型的匯流排可支援多個匯流排主控方202。
在一個實例中,主設備202可包括介面控制器204,該介面控制器204可管理對串列匯流排的存取,為從設備2220
-222N
配置動態位址及/或產生要在串列匯流排220的時鐘線218上傳輸的時鐘信號228。主設備202可包括配置暫存器206或其他儲存224,以及被配置成處置協定及/或較高級別功能的其他控制邏輯212。控制邏輯212可包括處理電路,諸如狀態機、定序器、信號處理器或通用處理器。主設備202包括收發機210以及線驅動器/接收器214a和214b。收發機210可包括接收器、傳輸器和共用電路,其中該等共用電路可包括時序、邏輯和儲存電路及/或設備。在一個實例中,傳輸器基於由時鐘產生電路208所提供的時鐘信號228中的時序來編碼和傳輸資料。其他時序時鐘226可由控制邏輯212和其他功能、電路或模組使用。
至少一個設備2220
-222N
可被配置成作為串列匯流排220上的從設備操作,並且可包括支援顯示器、圖像感測器的電路和模組,及/或控制量測環境狀況的一或多個感測器並與之通訊的電路和模組。在一個實例中,被配置成作為從設備操作的從設備2220
可提供包括支援顯示器、圖像感測器的電路和模組,及/或控制量測環境狀況的一或多個感測器並與之通訊的電路和模組的控制功能、模組或電路232。從設備2220
可包括配置暫存器234或其他儲存236、控制邏輯242、收發機240和線驅動器/接收器244a和244b。控制邏輯242可包括處理電路,諸如狀態機、定序器、信號處理器或通用處理器。收發機210可包括接收器、傳輸器和共用電路,其中該等共用電路可包括時序、邏輯和儲存電路及/或設備。在一個實例中,傳輸器基於由時鐘產生及/或恢復電路246所提供的時鐘信號248中的時序來編碼和傳輸資料。時鐘信號228可從接收自時鐘線218的信號中匯出。其他時序時鐘238可由控制邏輯242和其他功能、電路或模組使用。
串列匯流排220可根據RFFE、I2C、I3C、SPMI或其他協定來操作。至少一個設備202、2220
-222N
可被配置成作為串列匯流排220上的主設備和從設備來操作。兩個或更多個設備202、2220
-222N
可被配置成作為串列匯流排220上的主設備來操作。
在一些實現中,串列匯流排220可根據I3C協定來操作。使用I3C協定來通訊的設備可與使用I2C協定來通訊的設備共存於相同的串列匯流排220上。I3C協定可支援不同通訊模式,包括與I2C協定相容的單倍資料速率(SDR)模式。高資料率(HDR)模式可提供介於6百萬位元每秒(Mbps)和16 Mbps之間的資料傳輸率,並且某些HDR模式可提供更高的資料傳輸率。I2C協定可遵循提供範圍可在100千位元每秒(kbps)與3.2 Mbps之間的資料率的實際I2C標準。除了資料格式和匯流排控制態樣,I2C和I3C協定亦可定義在雙線串列匯流排220上傳輸的信號的電氣和時序態樣。在一些態樣,I2C和I3C協定可定義影響與串列匯流排220相關聯的某些信號位準的直流(DC)特性,及/或影響在串列匯流排220上傳輸的信號的某些時序態樣的交流(AC)特性。在一些實例中,雙線串列匯流排220在資料線216上傳輸資料並在時鐘線218上傳輸時鐘信號。在一些例子中,資料可被編碼在資料線216和時鐘線218的信號傳遞狀態,或信號傳遞狀態轉變中。虛擬 GPIO
行動通訊設備以及與行動通訊設備相關或相連接的其他設備日益增加地提供更強的能力、效能和功能性。在許多例子中,行動通訊設備納入了使用各種通訊鏈路來連接的多個IC元件。圖3圖示了包括應用處理器302和多個周邊設備304、306、308的裝置300。在該實例中,每個周邊設備304、306、308在根據相互不同的協定來操作的相應通訊鏈路310、312、314上與應用處理器302通訊。應用處理器302與每個周邊設備304、306、308之間的通訊可涉及附加導線,該等附加導線在應用處理器302與周邊設備304、306、308之間攜帶控制或命令信號。該等附加導線可被稱為邊頻帶通用輸入/輸出(邊頻帶GPIO 320、322、324),並且在一些例子中,邊頻帶GPIO 320、322、324所需的連接數目可超過用於通訊鏈路310、312、314的連接數目。
GPIO提供了可針對特定應用來定制的通用引腳/連接。例如,GPIO引腳可以是可程式設計的以根據應用需要而用作輸出引腳、輸入引腳或雙向引腳。在一個實例中,應用處理器302可指派及/或配置數個GPIO引腳以傳導與周邊設備304、306、308(諸如數據機)的交握信號傳遞或處理器間通訊(IPC)。當使用交握信號傳遞時,邊頻帶信號傳遞可以是對稱的,其中信號傳遞由應用處理器302和周邊設備304、306、308傳輸和接收。隨著設備複雜度增加,用於IPC通訊的增加的GPIO引腳數目會顯著地提高製造成本並且限制GPIO對其他系統級周邊介面的可用性。
根據某些態樣,GPIO(包括與通訊鏈路相關聯的GPIO)的狀態可被擷取、封包化、序列化、並在通訊鏈路上被傳輸。在一個實例中,可使用共用命令碼在I3C匯流排上傳輸所擷取到的GPIO以指示I3C事務包括封包化GPIO資訊及/或GPIO資訊的目的地。
圖4圖示了根據本文所揭示的某些態樣的調適成支援虛擬GPIO(VGI或VGMI)的裝置400。VGI電路和技術可減少用於連接應用處理器402與一或多個周邊設備424、430、436的實體引腳和連接的數目。有限狀態機(VGI FSM 410)可被配置成管理及/或實現GPIO狀態的虛擬化,以供在通訊鏈路422上在虛擬GPIO訊息中的傳輸。在一個實例中,虛擬GPIO訊息可在包括多線匯流排(諸如串列匯流排)的通訊鏈路422上以封包被傳輸。在作為串列匯流排來提供通訊鏈路422時,接收方周邊設備424、430、436可解序列化收到封包並且可提取從應用處理器402接收到的封包中的虛擬GPIO訊息。在周邊設備424、430、436中的有限狀態機(VGI FSM 426、432、438)可將虛擬GPIO訊息轉換為內部GPIO引腳的實體GPIO狀態。
在另一實例中,通訊鏈路422可由射頻收發機來提供,該射頻收發機支援使用例如藍芽協定、WLAN協定、蜂巢廣域網路,及/或另一通訊協定的通訊。虛擬GPIO狀態可在通訊鏈路422上以封包、訊框、子訊框、事務或其他資料結構被傳輸,而接收周邊設備424、430、436可提取、解序列化並且以其他方式處理收到信號傳遞以獲得虛擬GPIO狀態。在接收到虛擬GPIO訊息之後,接收方設備的VGI FSM 426、432、438或另一元件可中斷其主機處理器以指示接收到訊息及/或實體GPIO狀態的任何改變
在其中作為串列匯流排來實現通訊鏈路422的實例中,虛擬GPIO訊息可在針對I2C、I3C或另一標準化序列介面配置的事務中作為有效負荷資料被傳輸。在所圖示的實例中,可採用VGI技術來容適應用處理器402與一或多個周邊設備424、430、436之間的I/O橋接。應用處理器402可在ASIC、SoC或另一類型的IC元件中提供。應用處理器402包括產生事件和與一或多個通訊通道406相關聯的虛擬GPIO訊息的處理器(中央處理單元或CPU 404)。由通訊通道406產生的虛擬GPIO訊息可由VGI FSM 426、432、438中的相應監視電路412、414來監視。在一些實例中,GPIO監視電路412可被調適成產生表示實體GPIO狀態及/或實體GPIO狀態的變化的狀態的虛擬GPIO訊息。在一些實例中,提供其他電路以產生表示實體GPIO狀態及/或實體GPIO狀態的變化的虛擬GPIO訊息。
估計電路418可被配置成估計虛擬GPIO訊息的等待時間資訊,並且可為通訊鏈路422選擇最佳化用於編碼和傳輸虛擬GPIO訊息的等待時間的協定及/或通訊模式。估計電路418可維護在選擇協定及/或通訊模式時要被考慮的表徵通訊鏈路422的某些態樣的協定和模式資訊416。估計電路418可被進一步配置成選擇用於編碼和傳輸虛擬GPIO訊息的封包類型。估計電路418可提供由封包化器420用於編碼實體GPIO狀態的配置資訊。在一個實例中,該配置資訊作為可被封裝在封包中的命令來提供,以使得能在接收方處決定封包類型。該配置資訊(其可以是命令)亦可被提供給實體層電路(PHY 408)。PHY 408可使用該配置資訊來選擇用於傳輸相關聯封包的協定及/或通訊模式。PHY 408隨後可產生合適的信號傳遞以傳輸該封包。
周邊設備424、430、436可包括VGI FSM 426、432、438,其被配置成處理從通訊鏈路422接收到的資料封包。周邊設備424、430、436處的VGI FSM 426、432、438可提取訊息並且可將虛擬GPIO訊息中的位元位置映射到周邊設備424、430、436中的實體GPIO引腳上。在某些實施例中,通訊鏈路422是雙向的,並且應用處理器402和周邊設備424、430、436兩者可作為傳輸方和接收方兩者來操作。
應用處理器402中的PHY 408和周邊設備424、430、436中的對應PHY 428、434、440可被配置成建立和操作通訊鏈路422。每個PHY 408、428、434、440可被耦合至收發機108,或包括收發機108(參見圖1)。在一些實例中,PHY 408、428、434、440可分別支援應用處理器402和周邊設備424、430、436處的雙線介面(諸如I2C及/或I3C介面),並且虛擬GPIO訊息可被封裝成在通訊鏈路422上傳輸的封包。
如本文所描述的VGI隧穿可使用配置成用於操作通訊鏈路422的現有或可用協定且在沒有整套實體GPIO引腳的情況下來實現。VGI FSM 410、426、432、438可在沒有應用處理器402的處理器及/或周邊設備424、430、436中的處理器的幹預的情況下虛擬化GPIO狀態。使用VGI可以減少與通訊鏈路422相關聯的引腳計數、功耗,以及等待時間。
在接收方設備處,虛擬GPIO訊息被解碼以產生實體GPIO狀態。可使用虛擬GPIO訊息來配置實體GPIO引腳的某些特性。例如,可使用虛擬GPIO訊息來配置實體GPIO引腳的轉換速率、極性、驅動強度,以及其他相關參數和屬性。用於配置實體GPIO引腳的配置參數可被儲存在與相應GPIO引腳相關聯的配置暫存器中。該等配置參數可使用專用或習知協定(諸如I2C及/或I3C協定)來定址。在一個實例中,配置參數可被維護在I3C可定址暫存器中。本文所揭示的某些態樣係關於減少與傳輸配置參數和對應位址(例如,用於儲存配置參數的暫存器的位址)相關聯的等待時間。
VGI介面使得能傳輸虛擬GPIO訊息,由此虛擬GPIO訊息、應用訊息或該兩者可在通訊鏈路422上作為串列資料串流被發送。在一個實例中,串列資料串流可被封包化以供在事務中在I2C及/或I3C匯流排上進行傳輸,該事務包括訊框序列。可使用特殊命令碼來發信號傳遞通知在I2C/I3C訊框中存在虛擬GPIO資料以將該訊框辨識為虛擬GPIO訊框。虛擬GPIO訊框可根據I2C或I3C協定作為廣播訊框或定址訊框來傳輸。VGI介面亦可被稱為VGI訊息傳遞介面或VGMI。在 I3C 上的虛擬 GPIO
本文揭示的某些態樣係關於將I3C串列匯流排用於在兩個或更多個設備之間交換VGI訊息。I3C上的VGI可被實現為管理GPIO狀態資訊交換的邏輯層。I3C上的VGI可使VGI訊息交換能夠利用I3C特徵,包括多從設備環境中的可變長度訊息傳遞和流程控制。
圖5圖示了使用耦合多個設備502、512並且可在兩個或更多個設備502、512之間攜帶VGI訊息的I3C匯流排的裝置500的實例。該裝置可包括主機SoC 502和數個周邊設備512。主機SoC 502可包括虛擬GPIO有限狀態機(VGI FSM 506)和I3C介面504,其中I3C介面504與周邊設備512中的對應I3C介面514合作以提供主機SoC 502與周邊設備512之間的通訊鏈路。每個周邊設備512包括VGI FSM 516。在所圖示的實例中,SoC 502與周邊設備512之間的通訊可根據I3C協定被序列化並在多線串列匯流排510上被傳輸。在其他實例中,主機SoC 502可包括其他類型的介面(包括I2C及/或RFFE介面)。在其他實例中,主機SoC 502可包括可配置介面,其可被用於使用I2C、I3C、RFFE及/或另一合適的協定來通訊。在一些實例中,多線串列匯流排510(諸如I2C或I3C匯流排)可在資料線518上傳輸資料信號並在時鐘線520上傳輸時鐘信號。
虛擬GPIO可在高優先順序、低等待時間訊息中被傳輸。匯流排等待時間可包括終止串列匯流排上正在進行的事務、匯流排周轉(在傳輸模式和接收模式之間)、匯流排仲裁及/或協定指定的命令傳輸所需的時間。匯流排等待時間可影響串列匯流排處置高優先順序、即時及/或其他受時間約束的訊息的能力。低等待時間訊息或者要求低匯流排等待時間的訊息可攜帶與感測器狀態、設備產生的即時事件和虛擬化GPIO有關的資訊。在一個實例中,匯流排等待時間可被量測為在訊息變得可供傳輸與訊息遞送或者在一些例子中是訊息傳輸的開始之間逝去的時間。匯流排等待時間的其他度量可被採用或對系統設計者可用。匯流排等待時間通常包括在傳輸較高優先順序訊息時招致的延遲、中斷處理、終止串列匯流排上正在進行的資料包所需的時間、傳輸導致匯流排在傳輸模式和接收模式之間周轉的命令的時間、匯流排仲裁及/或協定指定的命令傳輸。
圖6包括圖示當串列匯流排在I3C規範所定義的單倍資料速率(SDR)操作模式中操作時該串列匯流排上的信號傳遞的時序圖600。在串列匯流排的第一導線(資料線或SDA 602)上傳輸的資料可使用在串列匯流排的第二導線(時鐘線或SCL 604)上傳輸的時鐘信號來擷取。在資料傳輸期間,當SCL 604處於高電壓位準時,SDA 602的信號傳遞狀態612預期在脈衝614的歷時內保持恆定。當SCL 604處於高電壓位準時SDA 602上的轉變指示開始狀況606、停止狀況608或者重複開始610。
在I3C串列匯流排上,開始狀況606被定義為准許當前匯流排主控方發信號傳遞通知資料要被傳輸。在SCL 604為高時SDA 602從高轉變為低時開始狀況606發生。匯流排主控方可使用停止狀況608來發信號傳遞通知傳輸的完成及/或終止。在SCL 604為高時SDA 602從低轉變為高時指示停止狀況608。重複開始610可由希望在完成第一傳輸之後啟動第二傳輸的匯流排主控方來傳輸。重複開始610被傳輸以代替停止狀況608,並且具有開始狀況606緊隨停止狀況608後的意義。在SCL 604為高時SDA 602從高轉變為低時發生重複開始610。
匯流排主控方可在傳輸從動方的位址、命令及/或資料之前傳輸啟動符622,啟動符622可以是開始狀況606或重複開始610。圖6圖示了匯流排主控方進行的命令碼傳輸620。傳輸中啟動符622之後可跟隨指示將跟隨有命令碼626的預定義命令624。例如,命令碼626可導致串列匯流排轉變至期望操作模式。在一些例子中,資料628可被傳輸。命令碼傳輸620之後可跟隨結束字元630,結束字元630可以是停止狀況608或重複開始610。
I3C規範定義帶內中斷、探索、枚舉和動態位址分配程序,其通常在SDR操作模式下執行。例如,當串列匯流排閒置時,一或多個從設備可將SDA 602驅動為低以啟動帶內中斷。在停止狀況608已被傳輸之後並且在開始狀況606被傳輸之前,串列匯流排閒置。當串列匯流排閒置時,主設備可將其線驅動器置於開汲模式中,以及當串列匯流排閒置時,使用上拉電阻器等將SDA 602和SCL 604兩者皆上拉至高電壓位準。任何具有高優先順序訊息或待決服務請求的設備皆可斷言帶內中斷請求。
線驅動器必須在開汲模式下克服上拉電阻器,並且轉變相對較慢,並且匯流排時脈速率可能受到限制。在一個實例中,與I2C相容的開汲通訊模式支援400 kHz或1 MHz的時脈速率。在I3C操作模式中,線驅動器可操作在推挽模式下,且時脈速率可比開汲模式中可實現的時脈速率大一個數量級。
匯流排主控可經由在開汲模式中啟動匯流排仲裁程序來回應帶內中斷。匯流排仲裁程序包括枚舉階段,以辨識已斷言或正在請求帶內中斷的從設備。枚舉階段使用開汲模式來允許從設備驅動SDA 602,以便辨識請求服務的最高優先順序設備。最高優先順序設備具有最低從位址。每個從設備從最高有效位元(A[6])開始在SDA 602上傳輸其從位址,並且可繼續傳輸位址位元直到另一從設備蓋寫已被傳輸的位元為止。被設置為邏輯「0」的位址位元導致從動方的線驅動器主動地將SDA 602拉低,而當上拉電阻器將SDA 602拉高時,被設置為邏輯「1」的位址位元被傳輸。相應地,較低值位元蓋寫較高值位元。最高優先順序設備具有最低位址,並且可成功地傳輸其從位址。
與開汲模式相關聯的緩慢匯流排時脈速率導致可能會消耗長時間段的仲裁。當多個從設備可併發地請求帶內中斷服務時,可能會導致大於10微秒的最小等待時間。與帶內中斷處理相關聯的高等待時間可能呈現I3C匯流排不適合用於傳輸具有低等待時間要求的VGI訊息。與帶內中斷處理相關聯的高等待時間可能阻止狀態資訊的即時交換。帶內中斷服務的順序性質可能妨礙跨多個設備提供GPIO狀態的共用視圖。
本文所揭示的某些態樣係關於一種最佳化的仲裁程序,其在開汲模式下使用單個時鐘週期,並且提供用於在單個事務期間從多個設備傳輸VGI狀態的時槽。在一個實例中,VGI狀態可使用分時多工方案來傳遞,由此在單個開汲時鐘週期期滿之後,為每個從設備分配數個推挽時鐘週期。如本文所揭示的,可經由實現最佳化的、縮短的仲裁程序和多工方案的某種組合以在單個帶內中斷期間從多個源傳輸VGI狀態資訊,來實質上減少匯流排等待時間。
圖7圖示了根據本文所揭示的某些態樣的VGI狀態交換700的第一實例。耦合至串列匯流排的設備可被配置成當邏輯「0」是第一傳輸的設備位址位元712(A[6])時辨識高優先順序帶內中斷請求。當辨識出高優先順序帶內中斷時,仲裁過程可被立即終止,並且VGI狀態的交換可開始。
在一個實例中,在SDA 702被驅動為低而串列匯流排閒置並且在開汲模式706下操作時,帶內中斷請求710被斷言。主設備經由在SCL 704上傳輸時鐘脈衝722來對請求進行回應。一或多個從設備可根據其各自從位址的最高有效位元來驅動SDA 702。當至少一個從設備將SDA 702驅動為低作為第一所傳輸設備位址位元712時,主設備終止仲裁過程並進入推挽模式時段708。SCL 704上的時鐘信號的頻率在推挽模式時段708中增加。開汲模式的提早終止和增加的時鐘頻率可顯著地減少VGI狀態交換的等待時間。
每個從設備被指派時槽714、716、718,在該時槽期間可傳輸VGI狀態的位元。可在系統初始化或配置、設備初始化期間及/或在製造或組裝時,動態地定義時槽714、716、718的指派。每個時槽714、716、718的歷時可根據在推挽模式時段708期間傳輸的時鐘脈衝724的數目或比例來定義。在時槽714、716、718中傳輸的時鐘脈衝可由對應從設備用於VGI狀態的位元的定時傳輸。每個時槽714、716、718的歷時可彼此獨立地定義。在該實例中,第一時槽714包括8個時鐘脈衝,第二時槽716包括5個時鐘脈衝,而第三時槽718包括10個時鐘脈衝。
在一些實現中,主設備可在一或多個時槽714、716、718之間擴展時鐘信號以支援匯流排周轉。在一個實例中,正在第一時槽714、716、718中進行傳輸的從設備將其匯流排介面重新配置成接收在下一時槽714、716、718中傳輸的資料。在另一實例中,正在第一時槽714、716、718中接收狀態資訊的從設備將其匯流排介面重新配置成在下一時槽714、716、718中傳輸資料。一些從設備可能需要時槽714、716、718之間的附加時間來完成匯流排周轉。主設備可配置有辨識脈衝之間的歷時726的資訊,以實現在時槽714、716、718之間的匯流排周轉。
一或多個設備可監視串列匯流排,並且每個設備可擷取定向到或有關於設備內的一或多個實體GPIO引腳的VGI狀態的任何位元。在一個實例中,可在各設備對之間交換VGI狀態資訊。例如,在時槽714、716、718中傳輸的狀態資訊的每個位元可由單個設備使用。在另一實例中,在時槽714、716、718中傳輸的狀態資訊的一或多個位元可由兩個或更多個設備使用。使用VGI狀態資訊的每個設備可被配置有辨識要被擷取的VGI狀態資訊的位元以及將VGI狀態資訊的每個擷取位元映射到實體GPIO引腳的資訊。VGI狀態資訊的位元可例如使用偏移值由時槽714、716、718和時槽714、716、718內的時鐘脈衝、由在推挽模式時段708期間傳輸的時鐘脈衝724總集合內的的時鐘脈衝數來辨識。
圖7圖示了可在耦合至串列匯流排的每個設備處被配置的表750。如本文所揭示的表750,在帶內中斷之後的VGI狀態資訊傳輸的結構。由耦合至串列匯流排的設備維護的其他資訊可參考該表。例如,設備可以辨識要由該設備擷取的VGI狀態資訊的位元的傳輸時序。
圖8圖示了根據本文所揭示的某些態樣的VGI狀態交換800的第二實例。耦合至串列匯流排的設備可被配置成當邏輯「0」是第一所傳輸設備位址位元812(A[6])時辨識高優先順序帶內中斷請求。當辨識出高優先順序帶內中斷時,仲裁過程可被立即終止,並且VGI狀態的交換可開始。
在一個實例中,在SDA 802被驅動為低而串列匯流排閒置並且在開汲模式806下操作時,帶內中斷請求810被斷言。主設備經由在SCL 804上傳輸時鐘脈衝822來對請求進行回應。一或多個從設備可根據其各自從位址的最高有效位元來驅動SDA 802。當至少一個從設備將SDA 802驅動為低作為第一所傳輸設備位址位元812時,主設備終止仲裁過程並進入推挽模式時段808。SCL 804上傳輸的時鐘信號的頻率在推挽模式時段808中增加。開汲模式的提早終止和增加的時鐘頻率可顯著地減少VGI狀態交換的等待時間。
每個從設備被指派時槽814、816、818,在該時槽期間可傳輸VGI狀態的位元。同位830、832可在攜帶VGI狀態位元的時槽814、818中被傳輸。可在系統初始化或配置、設備初始化期間及/或在製造或組裝時,動態地定義時槽814、816、818的指派。每個時槽814、816、818的歷時可被定義為在推挽模式時段808期間傳輸的時鐘脈衝842的數目或比例。在時槽814、816、818中傳輸的時鐘脈衝可由對應從設備用於VGI狀態的位元的定時傳輸。每個時槽814、816、818的歷時可彼此獨立地定義。在該實例中,第一時槽814包括8個時鐘脈衝,第二時槽816包括5個時鐘脈衝,而第三時槽818包括10個時鐘脈衝。
在一些實現中,從設備可在其所指派時槽814、816、818的開始處發信號傳遞通知其是否意圖傳輸VGI狀態資訊。在所圖示的實例中,與在時槽814、816、818中傳輸的時鐘脈衝中的第一時鐘脈衝834、836、838相對應的第一位元區間824、826、828指示該設備是否意圖傳輸狀態資訊。當肯定地提供了傳輸VGI狀態資訊的意圖時,第一位元區間824、826、828可用作存在指示符。亦即,處於休眠、故障或以其他方式不活躍的從設備不參與VGI狀態交換800,並且不處於肯定地信號傳遞通知要傳輸VGI狀態資訊的意圖的狀態或狀況。耦合至串列匯流排的其他設備辨識出在與非活躍設備相關聯的第一位元區間824、826、828期間未驅動SDA 802,並辨識出在對應時槽814、816、818期間將不接收任何VGI狀態資訊。
在所圖示的實例中,SDA 802在兩個時槽814、818的第一位元區間824、828期間為低以指示VGI狀態資訊在兩個時槽814、818期間正被傳輸,而SDA 802在第三時槽816的第一位元區間826區間為高以指示沒有VGI狀態資訊在第三時槽816期間正被傳輸。SDA 802可在第三時槽816的第一位元區間826期間由保持器電路或電阻器保持為高。保持器電路可包括弱驅動器,其被配置成基於SDA 802的信號傳遞狀態的正回饋表示來驅動SDA 802。弱驅動器的輸出可由推挽驅動器輕鬆克服。
在一些實現中,主設備可在一或多個時槽814、816、818之間擴展時鐘信號以支援匯流排周轉。在一個實例中,正在第一時槽814、816、818中進行傳輸的從設備將其匯流排介面重新配置為接收在下一時槽814、816、818中傳輸的資料。在另一實例中,正在第一時槽814、816、818中接收狀態資訊的從設備將其匯流排介面重新配置成在下一時槽814、816、818中傳輸資料。一些從設備可能需要時槽814、816、818之間的附加時間來完成匯流排周轉。主設備可配置有辨識脈衝之間的歷時840的資訊,以實現在時槽814、816、818之間的匯流排周轉。
一或多個設備可監視串列匯流排,並且每個設備可擷取定向到或有關於設備內的一或多個實體GPIO引腳的VGI狀態的任何位元。在一個實例中,可在各設備對之間交換VGI狀態資訊。例如,在時槽814、816、818中傳輸的狀態資訊的每個位元可由單個設備使用。在另一實例中,在時槽814、816、818中傳輸的狀態資訊的一或多個位元可由兩個或更多個設備使用。使用VGI狀態資訊的每個設備可被配置有辨識要被擷取的VGI狀態資訊的位元以及將VGI狀態資訊的每個擷取位元映射到實體GPIO引腳的資訊。VGI狀態資訊的位元可例如使用偏移值由時槽814、816、818和時槽814、816、818內的時鐘脈衝,及/或由在推挽模式時段808期間傳輸的時鐘脈衝842總集合內的的時鐘脈衝數來辨識。
匯流排等待時間可進一步經由基於存在指示符的狀態來選擇性地截短一或多個VGI狀態資訊傳輸時槽來減少。圖9圖示了根據本文所揭示的某些態樣的VGI狀態交換900的第三實例。耦合至串列匯流排的設備可被配置成當邏輯「0」是第一所傳輸設備位址位元912(A[6])時辨識高優先順序帶內中斷請求。當辨識出高優先順序的帶內中斷時,仲裁過程可被立即終止,並且VGI狀態的交換可開始。
在一個實例中,在SDA 902被驅動為低而串列匯流排閒置並且在開汲模式906下操作時,帶內中斷請求910被斷言。主設備經由在SCL 904上傳輸時鐘脈衝922來對請求進行回應。一或多個從設備可根據其各自從位址的最高有效位元來驅動SDA 902。當至少一個從設備將SDA 902驅動為低作為第一所傳輸設備位址位元912時,主設備終止仲裁過程並進入推挽模式時段908。SCL 904上傳輸的時鐘信號的頻率在推挽模式時段908中增加。開汲模式的提早終止和增加的時鐘頻率可顯著地減少VGI狀態交換的等待時間。
每個從設備被指派時槽914、916、918,在該時槽期間可傳輸VGI狀態的位元。同位930、932可在攜帶VGI狀態位元的時槽914、918中被傳輸。可在系統初始化或配置、設備初始化期間及/或在製造或組裝時,動態地定義時槽914、916、918的指派。每個時槽914、916、918的歷時可被定義為在推挽模式時段908期間傳輸的時鐘脈衝942的數目或比例。在時槽914、916、918中傳輸的時鐘脈衝可由對應從設備用於VGI狀態的位元的定時傳輸。每個時槽914、916、918的歷時可彼此獨立地定義。在該實例中,第一時槽914包括8個時鐘脈衝,第二時槽916被截短並且包括2個時鐘脈衝,而第三時槽918包括10個時鐘脈衝。
在一些實現中,從設備可在其所指派時槽914、916、918的開始處發信號傳遞通知其是否意圖傳輸VGI狀態資訊。在所圖示的實例中,與在時槽914、916、918中傳輸的時鐘脈衝中的第一時鐘脈衝934、936、938相對應的第一位元區間924、926、928指示該設備是否意圖傳輸狀態資訊。當肯定地提供了傳輸VGI狀態資訊的意圖時,第一位元區間924、926、928可用作存在指示符。亦即,處於休眠、故障或以其他方式不活躍的從設備不參與VGI狀態交換900,並且不處於肯定地信號傳遞通知要傳輸VGI狀態資訊的意圖的狀態或狀況。耦合至串列匯流排的其他設備辨識出在與非活躍設備相關聯的第一位元區間924、926、928期間未驅動SDA 902,並辨識出在對應時槽914、916、918期間將不接收任何VGI狀態資訊。
在所圖示的實例中,SDA 902在兩個時槽914、918的第一位元區間924、928期間為低以指示VGI狀態資訊在兩個時槽914、918期間正被傳輸,而SDA 902在第三時槽916的第一位元區間926期間為高以指示沒有VGI狀態資訊在第三時槽916期間正被傳輸。SDA 902可在第三時槽916的第一位元區間926期間由保持器電路或電阻器保持為高。保持器電路可包括弱驅動器,其被配置成基於SDA 902的信號傳遞狀態的正回饋表示來驅動SDA 902。弱驅動器的輸出可由推挽驅動器輕鬆克服。
在一些實現中,第一位元區間924、926、928的狀態(亦即,存在指示符)可被用於決定對應時槽914、916、918是否可被截短或應被截短。當設備沒有意圖傳輸VGI狀態資訊時,則在對應時槽914、916、918期間傳輸的時鐘脈衝的數目可被減少。在所圖示的實例中,SDA 902在第三時槽916的第一位元區間926期間為高,其指示在第三時槽916期間沒有VGI狀態資訊正被傳輸。在第三時槽916中傳輸的脈衝數目被減少到兩個。在一些實例中,可僅傳輸第三時槽916的第一位元區間926。
在一些實現中,主設備可在一或多個時槽914、916、918之間擴展時鐘信號以支援匯流排周轉。在一個實例中,正在第一時槽914、916、918中進行傳輸的從設備將其匯流排介面重新配置為接收在下一時槽914、916、918中傳輸的資料。在另一實例中,正在第一時槽914、916、918中接收狀態資訊的從設備將其匯流排介面重新配置成在下一時槽914、916、918中傳輸資料。一些從設備可能需要時槽914、916、918之間的附加時間來完成匯流排周轉。主設備可配置有辨識脈衝之間的歷時940的資訊,以實現在時槽914、916、918之間的匯流排周轉。
一或多個設備可監視串列匯流排,並且每個設備可擷取定向到或有關於設備內的一或多個實體GPIO引腳的VGI狀態的任何位元。在一個實例中,可在各設備對之間交換VGI狀態資訊。例如,在時槽914、916、918中傳輸的狀態資訊的每個位元可由單個設備使用。在另一實例中,在時槽914、916、918中傳輸的狀態資訊的一或多個位元可由兩個或更多個設備使用。使用VGI狀態資訊的每個設備可被配置有辨識要被擷取的VGI狀態資訊的位元以及將VGI狀態資訊的每個擷取位元映射到實體GPIO引腳的資訊。VGI狀態資訊的位元可例如使用偏移值由時槽914、916、918和時槽914、916、918內的時鐘脈衝,由在推挽模式時段908期間傳輸的時鐘脈衝942總集合內的的時鐘脈衝數來辨識。
圖10是圖示在使用I3C串列匯流排以交換VGI狀態的系統中用於處置帶內中斷請求的程序的流程圖1000。從系統的角度來看,多個設備可被配置成在時槽中提供VGI狀態資訊,每個時槽的長度由推挽時鐘脈衝數目(亦即長度(i))定義,其中在圖7-圖9所圖示的實例中1>i>N。在推挽模式時段708、808、908期間傳輸的時鐘脈衝724、842、942內的每個時槽的起始點可針對每個時槽被定義為偏移(i),例如如圖7的表750所圖示的。
當偵測到帶內中斷請求710、810、910時,可啟動該程序。在方塊1002處,可決定帶內中斷請求710、810、910是否與對傳遞VGI狀態資訊的請求有關。當仲裁階段中的第一所傳輸位址位元([A6])被設置為邏輯「1」時,在方塊1016處,帶內中斷請求710、810、910被視為習知帶內中斷請求。當仲裁階段中的第一所傳輸位址位元([A6])被設置為邏輯「0」時,帶內中斷請求710、810、910被視為對交換VGI狀態的請求,並且該程序在方塊1004處繼續,其中啟動推挽時鐘脈衝計數器。推挽時鐘脈衝計數器可由傳輸方和接收方維護,並用於辨識時槽的開始和結束。在一個實例中,接收方可使用推挽時鐘脈衝計數器來辨識接收方感興趣的VGI狀態的特定位元。
在方塊1006處,當前時槽的第一位元被傳輸。被指派給當前時槽的傳輸方在其意圖傳輸VGI狀態資訊時可將SDA 702、802、902驅動為低,或者在沒有意圖傳輸VGI狀態資訊時將SDA 702、802、902驅動為高。當傳輸方不活躍時,SDA 702、802、902可經由上拉電阻器或保持器電路被維持在高狀態中,其指示將不在當前時槽中傳輸任何VGI狀態資訊。接收方電路可監視當前時槽的第一位元以決定VGI狀態資訊是否可用於在當前時槽中擷取。當在方塊1006處將當前時槽的第一位元設置為邏輯「1」(SDA 702、802、902為高)時,則在方塊1018處,可忽略SDA 702、802、902而與當前時槽相關聯的時鐘脈衝被傳輸。在一些實現中,當當前時槽的第一位元指示被指派給當前時槽的設備將不在當前時槽中傳輸狀態資訊時,在當前時槽中傳輸的時鐘脈衝數可被截短。當前時槽完成之後,程序在方塊1012處繼續。
當在方塊1006處當前時槽的第一位元被設置為邏輯「0」(SDA 702、802、902為低)時,則在方塊1008處,被指派給當前時槽的設備可針對每個附加時鐘脈衝傳輸VGI狀態資訊的位元。對於在方塊1008中傳輸的每個位元以及當當前時槽的第一位元被傳輸時,可遞增時鐘計數器。
在方塊1010處,可決定是否針對當前時槽已傳輸了所有時鐘脈衝。在一個實例中,可將時鐘計數器與辨識當前時槽的開始的偏移量加上當前時槽的長度相比較。若時鐘計數器較小,則在方塊1008處可傳輸另一位元。若時鐘計數器較大,則該程序在方塊1012處繼續。
在方塊1012處,決定是否亦有任何附加的時槽要被傳輸。i的值可與為系統配置的其最大值進行比較。在圖7-圖9所圖示的實例中,i的最大值=N。當要傳輸附加時槽時,該程序在方塊1014處繼續,其中i被遞增。當沒有剩餘附加時槽要傳輸時,該程序可由主設備終止,該主設備可傳輸停止狀況720、820、920。處理電路和方法的實例
圖11是圖示用於裝置1100的硬體實現的實例的示圖,該裝置1100可包括,採用及/或實現有限狀態機(包括例如圖4的VGI FSM 410、426、432、438)以交換由多個源產生及/或定向到多個目的地的虛擬GPIO狀態。在一些實例中,裝置1100可配置有限狀態機的操作。在一些實例中,裝置1100可以執行本文所揭示的一或多個功能。根據本案的各種態樣,可使用處理電路1102來實現本文所揭示的元素,或元素的任何部分,或者元素的任何組合。處理電路1102可包括一或多個處理器1104,其由硬體和軟體模組的某種組合來控制。處理器1104的實例包括微處理器、微控制器、數位信號處理器(DSP)、SoC、ASIC、現場可程式設計閘陣列(FPGA)、可程式設計邏輯設備(PLD)、狀態機、定序器、閘控邏輯、個別的硬體電路,以及其他配置成執行本案中通篇描述的各種功能性的合適硬體。一或多個處理器1104可包括執行特定功能並且可由各軟體模組1116之一來配置、增強或控制的專用處理器。一或多個處理器1104可經由在初始化期間載入的軟體模組1116的組合來配置,並且經由在操作期間載入或卸載一或多個軟體模組1116來進一步配置。
在所圖示的實例中,處理電路1102可以用由匯流排1110一般化地表示的匯流排架構來實現。取決於處理電路1102的具體應用和整體設計約束,匯流排1110可包括任何數目的互連匯流排和橋接器。匯流排1110將包括一或多個處理器1104和儲存1106的各種電路連結在一起。儲存1106可包括記憶體設備和大型儲存設備,並且在本文中可被稱為電腦可讀取媒體及/或處理器可讀取媒體。匯流排1110亦可連結各種其他電路,諸如定時源、計時器、周邊設備、穩壓器和功率管理電路。匯流排介面1108可提供匯流排1110與一或多個收發機1112a、1112b之間的介面。可針對處理電路所支援的每種聯網技術提供收發機1112a、1112b。在一些例子中,多種聯網技術可共享收發機1112a、1112b中出現的電路系統或處理模組中的一些或全部。每個收發機1112a、1112b提供用於經由傳輸媒體與各種其他裝置通訊的構件。在一個實例中,收發機1112a可被用於將裝置1100耦合至多線匯流排。在另一實例中,收發機1112b可被用於將裝置1100連接至無線電存取網路。取決於裝置1100的本質,亦可提供使用者介面1118(例如,按鍵板、顯示器、揚聲器、話筒、操縱桿),並且該使用者介面1118可直接或經由匯流排介面1108通訊地耦合至匯流排1110。
處理器1104可負責管理匯流排1110以及負責一般處理,包括對儲存在電腦可讀取媒體(其可包括儲存1106)中的軟體的執行。在該態樣,處理電路1102(包括處理器1104)可被用來實現本文中所揭示的方法、功能和技術中的任一種。儲存1106可被用於儲存處理器1104在執行軟體時操縱的資料,並且該軟體可被配置成實現本文中所揭示的方法中的任一種。
處理電路1102中的一或多個處理器1104可執行軟體。軟體應當被寬泛地解釋成意為指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體模組、應用程式、軟體應用程式、套裝軟體、常式、子常式、物件、可執行件、執行的執行緒、程序、函數、演算法等,無論其是用軟體、韌體、中間軟體、微代碼、硬體描述語言、還是其他術語來述及皆是如此。軟體可按電腦可讀取形式常駐在儲存1106中或常駐在外部電腦可讀取媒體中。外部電腦可讀取媒體及/或儲存1106可包括非瞬態電腦可讀取媒體。作為實例,非暫時性電腦可讀取媒體包括磁儲存設備(例如,硬碟、軟碟、磁條)、光碟(例如,壓縮光碟(CD)或數位多功能光碟(DVD))、智慧卡、快閃記憶體設備(例如,「快閃記憶體驅動器」、卡、棒,或鍵式驅動)、RAM、ROM、可程式設計唯讀記憶體(PROM)、可抹除PROM(EPROM)(包括EEPROM)、暫存器、可移除磁碟,以及任何其他用於儲存可由電腦存取和讀取的軟體及/或指令的合適媒體。作為實例,電腦可讀取媒體及/或儲存1106亦可包括載波、傳輸線,以及可由電腦存取和讀取的用於傳輸軟體及/或指令的任何其他合適媒體。電腦可讀取媒體及/或儲存1106可常駐在處理電路1102中、處理器1104中、在處理電路1102外部,或跨包括該處理電路1102在內的多個實體分佈。電腦可讀取媒體及/或儲存1106可實施在電腦程式產品中。作為實例,電腦程式產品可包括封裝材料中的電腦可讀取媒體。熟習此項技術者將認識到如何取決於具體應用和加諸於整體系統的整體設計約束來最佳地實現本案通篇提供的所描述的功能性。
儲存1106可以維護以可載入程式碼片段、模組、應用程式、程式等來維護及/或組織的軟體,其在本文中可被稱為軟體模組1116。每個軟體模組1116可包括在安裝或載入到處理電路1102上並由一或多個處理器1104執行時對運行時間映射1114做出貢獻的指令和資料,該運行時間映射1114控制一或多個處理器1104的操作。在被執行時,某些指令可使得處理電路1102執行根據本文中所描述的某些方法、演算法和過程的功能。
一些軟體模組1116可在處理電路1102的初始化期間被載入,並且該等軟體模組1116可配置處理電路1102以使得能夠執行本文中所揭示的各種功能。例如,一些軟體模組1116可配置處理器1104的內部設備及/或邏輯電路1122,並且可管理對外部設備(諸如,一或多個收發機1112a、1112b、匯流排介面1108、使用者介面1118、計時器、數學輔助處理器等)的存取。軟體模組1116可包括控制程式及/或作業系統,其與中斷處理常式和設備驅動程式互動並且控制對由處理電路1102提供的各種資源的存取。該等資源可包括記憶體、處理時間、對一或多個收發機1112a、1112b的存取、使用者介面1118等。
處理電路1102的一或多個處理器1104可以是多功能的,由此一些軟體模組1116被載入和配置成執行不同功能或相同功能的不同例子。一或多個處理器1104可附加地被調適成管理回應於來自例如使用者介面1118、一或多個收發機1112a、1112b和設備驅動程式的輸入而啟動的幕後工作。為了支援多個功能的執行,一或多個處理器1104可被配置成提供多工環境,由此複數個功能之每一者功能依須求或按期望實現為由一或多個處理器1104服務的任務集。在一個實例中,多工環境可使用分時程式1120來實現,分時程式1104在不同任務之間傳遞對處理器1104的控制,由此每個任務在完成任何未決操作之後及/或回應於輸入(諸如中斷)而將對一或多個處理器1104的控制返回給分時程式1120。當任務具有對一或多個處理器1104的控制時,處理電路有效地專用於由與控制方任務相關聯的功能所針對的目的。分時程式1120可以包括作業系統、在循環基礎上轉移控制權的主迴路、根據各功能的優先順序化來分配對一或多個處理器1104的控制權的功能,及/或經由將對一或多個處理器1104的控制權提供給處置功能來對外部事件作出回應的中斷驅動式主迴路。
圖12是圖示用於促進在多點分支匯流排上的VGI狀態資訊訊息的通訊的方法的實例的流程圖1200。在一個實例中,多點分支匯流排是根據I3C協定操作的串列匯流排。該設備可以是匯流排主設備或從設備。
在方塊1202處,該設備可決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言。
在方塊1204處,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時,設備可參與VGI狀態的交換。在VGI狀態的交換期間,VGI狀態的一或多個位元可被傳輸。
在方塊1206處,該設備可在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元。
在方塊1208處,該設備可將VGI狀態的複數個位元中的至少一個位元映射到實體通用輸入/輸出(GPIO)引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸可被抑制。經由基於VGI狀態的複數個位元中的至少一個位元的值定義實體GPIO引腳的電壓狀態,來將該至少一個位元映射到實體GPIO引腳。
在某些實例中,設備可以是複數個設備中的一個設備,其被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在串列匯流排上傳輸的時鐘信號中時鐘脈衝的第一數目來定義的時槽大小。該設備可被配置具有該時槽中相對於設備位址的第一位元的位置,該位置根據時鐘信號中時鐘脈衝的第二數目來定義。VGI狀態資訊的第一位元可指示該時槽是否包括VGI狀態的有效位元。當VGI狀態資訊的第一位元指示該時槽不包括VGI狀態的有效位元時,該設備可抑制在該時槽中傳輸第一數目個時鐘脈衝中的所有時鐘脈衝。
在一些實例中,該設備可在設備位址的第一位元以第一值被傳輸之後配置將主設備耦合至串列匯流排的一或多個線驅動器用於推挽操作模式。當該一或多個線驅動器處於開汲操作模式時,設備位址的第一位元可由從設備傳輸。當設備位址的第一位元正由從設備傳輸時,該設備可在串列匯流排上傳輸具有第一頻率的第一時鐘信號。在設備位址的第一位元已被傳輸之後,該設備可在串列匯流排上傳輸具有第二頻率的第二時鐘信號,其中第二頻率大於第一頻率。第二時鐘信號可提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的交換的歷時。
圖13是圖示採用處理電路1302的裝置1300的硬體實現的實例的示圖。該裝置可實現根據本文所揭示的某些態樣的橋接電路。處理電路通常具有控制器、有限狀態機及/或處理器1316,其可包括一或多個微處理器、微控制器、數位信號處理器、定序器及/或狀態機。處理電路1302可以用由匯流排1320一般化地表示的匯流排架構來實現。取決於處理電路1302的具體應用和整體設計約束,匯流排1320可包括任何數目的互連匯流排和橋接器。匯流排1320將包括一或多個處理器及/或硬體模組(由控制器、有線狀態機及/或處理器1316、模組或電路1304、1306、1308和1310以及處理器可讀取儲存媒體1318表示)的各種電路連結在一起。可提供一或多個實體層電路及/或模組1314以支援在使用多線匯流排1312或其他通訊結構實現的通訊鏈路上的通訊。匯流排1320亦可連結各種其他電路,諸如定時源、周邊設備、穩壓器和功率管理電路,該等電路在本領域中是眾所周知的,且因此將不再進一步描述。
處理電路1302負責一般性處理,包括執行儲存在處理器可讀取儲存媒體1318上的軟體、代碼及/或指令。該處理器可讀取儲存媒體可包括非暫時性儲存媒體。該軟體在由控制器、有限狀態機及/或處理器1316執行時使得處理電路1302執行上文針對任何特定裝置描述的各種功能。處理器可讀取儲存媒體可被用於儲存由控制器、有限狀態機及/或處理器1316在執行軟體時操縱的資料。處理電路1302進一步包括模組1304、1306、1308和1310中的至少一個模組。模組1304、1306、1308和1310可以是在控制器、有限狀態機及/或處理器1316中執行的軟體模組、常駐/儲存在處理器可讀取儲存媒體1318中的軟體模組、耦合至控制器、有限狀態機及/或處理器1316的一或多個硬體模組,或其某種組合。模組1304、1306、1308和1310可包括微控制器指令、狀態機配置參數,或其某種組合。
在一種配置中,根據本文揭示的某些態樣,裝置1300包括:被配置成維護、更新、修改和以其他方式管理用於傳達VGI狀態資訊的帶內中斷傳輸時槽配置的模組及/或電路1304,被配置成在VGI狀態資訊和實體GPIO狀態之間轉換的模組及/或電路1306,被配置成產生和監視包括與帶內中斷請求和處置相關聯的信號傳遞的帶內信號傳遞的模組及/或電路1308,以及被配置成在為帶內中斷處置而定義的時槽中傳輸和接收VGI狀態資訊的模組及/或電路1306。
在一個實例中,裝置1300包括複數個GPIO引腳,調適成將該裝置耦合至串列匯流排的介面以及處理電路1302。處理電路1302可被配置成:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及將VGI狀態的複數個位元中的至少一個位元映射到GPIO引腳。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸可被抑制。
處理電路1302可被進一步配置成在VGI狀態的交換期間傳輸VGI狀態的一或多個位元。處理電路1302可被進一步配置成基於至少一個位元的值來定義實體GPIO引腳的電壓狀態。
在一些實例中,複數個設備中的第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在串列匯流排上傳輸的時鐘信號中時鐘脈衝的第一數目來定義的時槽大小。第一設備可被配置具有該時槽中相對於設備位址的第一位元的位置,該位置根據時鐘信號中時鐘脈衝的第二數目來定義。VGI狀態資訊的第一位元可指示該時槽是否包括VGI狀態的有效位元。處理電路1302可被進一步配置成當VGI狀態資訊的第一位元指示該時槽不包括VGI狀態的有效位元時,抑制在該時槽中傳輸第一數目個時鐘脈衝中的所有時鐘脈衝。處理電路1302可被進一步配置成在設備位址的第一位元已被傳輸之後配置將主設備耦合至串列匯流排的一或多個線驅動器用於推挽操作模式。當該一或多個線驅動器處於開汲操作模式時,設備位址的第一位元由從設備傳輸。處理電路1302可被進一步配置成:當設備位址的第一位元正由從設備傳輸時,在串列匯流排上傳輸具有第一頻率的第一時鐘信號,以及在設備位址的第一位元已被傳輸之後,在串列匯流排上傳輸具有第二頻率的第二時鐘信號。第二頻率可以大於第一頻率。第二時鐘信號可提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的交換的歷時。
在某些實例中,處理器可讀取儲存媒體1318是維護資料及/或指令的非暫時性儲存媒體,在由一或多個處理器1316執行時該資料及/或處理器可讀取指令可使得該一或多個處理器1316:決定在串列匯流排閒置時帶內中斷已在串列匯流排上被斷言,當在與帶內中斷相關聯的匯流排仲裁期間傳輸的設備位址的第一位元具有第一值時參與VGI狀態的交換,在VGI狀態的交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至串列匯流排的複數個設備傳輸的位元,以及基於VGI狀態的複數個位元中的至少一個位元的值來定義實體GPIO引腳的電壓狀態。當設備位址的第一位元具有第一值時至少設備位址的第二位元的傳輸被抑制。
處理器可讀取儲存媒體1318可維護資料及/或指令,該資料及/或處理器可讀取指令使得一或多個處理器1316在VGI狀態的交換期間傳輸VGI狀態的一或多個位元。
在一個實例中,複數個設備中的第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在串列匯流排上傳輸的時鐘信號中時鐘脈衝的第一數目來定義的時槽大小。第一設備可被配置具有該時槽中相對於設備位址的第一位元的位置,該位置根據時鐘信號中時鐘脈衝的第二數目來定義。VGI狀態資訊的第一位元可指示該時槽是否包括VGI狀態的有效位元。
在另一實例中,處理器可讀取儲存媒體1318可維護資料及/或指令,該資料及/或處理器可讀取指令使一或多個處理器1316在設備位址的第一位元已被傳輸之後配置將主設備耦合至串列匯流排的一或多個線驅動器用於推挽操作模式。當該一或多個線驅動器處於開汲操作模式時,設備位址的第一位元可由從設備傳輸。
處理器可讀取儲存媒體1318可維護資料及/或指令,該資料及/或處理器可讀取指令使一或多個處理器1316當設備位址的第一位元正由從設備傳輸時,在串列匯流排上傳輸具有第一頻率的第一時鐘信號,以及在設備位址的第一位元已被傳輸之後,在串列匯流排上傳輸具有第二頻率的第二時鐘信號。第二頻率可以大於第一頻率。第二時鐘信號可提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的交換的歷時。
將理解,所揭示的過程中的步驟的特定順序或層次是示例性方法的說明。應理解,基於設計偏好,可以重新編排該等過程中各步驟的具體次序或層次。此外,一些步驟可被組合或被略去。所附方法請求項以取樣次序呈現各種步驟的元素,且並不意味著被限定於所提供的具體次序或層次。
提供先前描述是為了使任何熟習此項技術者均能夠實踐本文中所描述的各種態樣。對該等態樣的各種修改將容易為熟習此項技術者所明白,並且在本文中所定義的普適原理可被應用於其他態樣。因此,請求項並非意欲被限定於本文中所示的態樣,而是應被授予與語言上的請求項相一致的全部範疇,其中對元素的單數形式的引述除非特別聲明,否則並非意欲表示「有且僅有一個」,而是「一或多個」。除非特別另外聲明,否則術語「某個」指的是一或多個。本案通篇描述的各個態樣的元素為一般技術者當前或今後所知的所有結構上和功能上的等效方案經由引述被明確納入於此,且意欲被請求項所涵蓋。此外,本文中所揭示的任何內容皆並非意欲貢獻給公眾,無論此種揭示是否在申請專利範圍中被顯式地敘述。沒有任何請求項元素應被解釋為構件功能,除非該元素是使用短語「用於……的構件」來明確敘述的。
100:裝置
102:處理電路
104:ASIC
106:周邊設備
108:收發機
110:數據機
112:處理器
114:板載記憶體
116:匯流排介面電路
118a:匯流排
118b:匯流排
120:匯流排
122:處理器可讀取儲存
126:顯示器
128:按鈕
130:按鈕
132:外部按鍵板
200:裝置
202:設備
204:介面控制器
206:配置暫存器
208:時鐘產生電路
210:收發機
212:控制邏輯
214a:線驅動器/接收器
214b:線驅動器/接收器
216:資料線
218:時鐘線
220:串列匯流排
222-0:設備
222-1:設備
222-2:設備
222-N:設備
224:其他儲存
226:其他時序時鐘
228:時鐘信號
232:控制功能/模組/電路
234:配置暫存器
236:其他儲存
238:其他時序時鐘
240:收發機
242:控制邏輯
244a:線驅動器/接收器
244b:線驅動器/接收器
246:時鐘產生及/或恢復電路
248:時鐘信號
300:裝置
302:應用處理器
304:周邊設備
306:周邊設備
308:周邊設備
310:通訊鏈路
312:通訊鏈路
314:通訊鏈路
320:邊頻帶GPIO
322:邊頻帶GPIO
324:邊頻帶GPIO
400:裝置
402:應用處理器
404:CPU
406:通訊通道
408:PHY
410:VGI FSM
412:GPIO監視電路
414:監視電路
416:協定和模式資訊
418:估計電路
420:封包化器
422:通訊鏈路
424:周邊設備
426:VGI FSM
428:PHY
430:周邊設備
432:VGI FSM
434:PHY
436:周邊設備
438:VGI FSM
440:PHY
500:裝置
502:主機SoC
504:I3C介面
506:VGI FSM
510:多線串列匯流排
512:周邊設備
514:I3C介面
516:VGI FSM
518:資料線
520:時鐘線
600:時序圖
602:SDA
604:SCL
606:開始狀況
608:停止狀況
610:重複開始
612:信號傳遞狀態
614:脈衝
620:命令碼傳輸
622:啟動符
624:預定義命令
626:命令碼
628:資料
630:結束字元
700:VGI狀態交換
702:SDA
704:SCL
706:開汲模式
708:推挽模式時段
710:帶內中斷請求
712:第一傳輸的設備位址位元
714:時槽
716:時槽
718:時槽
720:停止狀況
722:時鐘脈衝
724:時鐘脈衝
726:歷時
750:表
800:VGI狀態交換
802:SDA
804:SCL
806:開汲模式
808:推挽模式時段
810:帶內中斷請求
812:第一所傳輸設備位址位元
814:時槽
816:時槽
818:時槽
820:停止狀況
822:時鐘脈衝
824:第一位元區間
826:第一位元區間
828:第一位元區間
830:同位
832:同位
834:第一時鐘脈衝
836:第一時鐘脈衝
838:第一時鐘脈衝
840:歷時
842:時鐘脈衝
900:VGI狀態交換
902:SDA
904:SCL
906:開汲模式
908:推挽模式時段
910:帶內中斷請求
912:第一所傳輸設備位址位元
914:時槽
916:時槽
918:時槽
920:停止狀況
922:時鐘脈衝
924:第一位元區間
926:第一位元區間
928:第一位元區間
930:同位
932:同位
934:第一時鐘脈衝
936:第一時鐘脈衝
938:第一時鐘脈衝
940:歷時
942:時鐘脈衝
1000:流程圖
1002:方塊
1004:方塊
1006:方塊
1008:方塊
1010:方塊
1012:方塊
1014:方塊
1016:方塊
1018:方塊
1100:裝置
1102:處理電路
1104:處理器
1106:儲存
1108:匯流排介面
1110:匯流排
1112a:收發機
1112b:收發機
1114:運行時間映射
1116:軟體模組
1118:使用者介面
1120:分時程式
1122:邏輯電路
1200:流程圖
1202:方塊
1204:方塊
1206:方塊
1208:方塊
1300:裝置
1302:處理電路
1304:模組或電路
1306:模組或電路
1308:模組或電路
1310:模組或電路
1312:多線匯流排
1314:實體層電路及/或模組
1316:處理器
1318:處理器可讀取儲存媒體
1320:匯流排
圖1圖示了在各IC元件之間採用根據複數個可用標準之一來選擇性地操作的資料連結的裝置。
圖2圖示了在各IC元件之間採用資料連結的裝置的系統架構。
圖3圖示了包括可根據本文所揭示的某些態樣來調適的應用處理器和多個周邊設備的裝置。
圖4圖示了根據本文所揭示的某些態樣的已被調適成支援VGI的裝置。
圖5圖示了根據本文所揭示的某些態樣採用I3C匯流排來耦合各個設備的設備。
圖6包括圖示當串列匯流排在I3C規範所定義的單倍資料速率(SDR)操作模式中操作時該串列匯流排上的信號傳遞的時序圖。
圖7圖示了根據本文所揭示的某些態樣的VGI狀態交換的第一實例。
圖8圖示了根據本文所揭示的某些態樣的VGI狀態交換的第二實例。
圖9圖示了根據本文所揭示的某些態樣的VGI狀態交換的第三實例。
圖10是圖示根據本文所揭示的某些態樣調適的處理電路的某些操作的第一流程圖。
圖11圖示了採用可根據本文所揭示的某些態樣調適的處理電路的裝置的實例。
圖12是圖示根據本文所揭示的某些態樣調適的處理電路的某些操作的第二流程圖。
圖13圖示了根據本文所揭示的某些態樣調適的裝置的硬體實現的第一實例。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記)
無
800:VGI狀態交換
802:SDA
804:SCL
806:開汲模式
808:推挽模式時段
810:帶內中斷請求
812:第一所傳輸設備位址位元
814:時槽
816:時槽
818:時槽
820:停止狀況
822:時鐘脈衝
824:第一位元區間
826:第一位元區間
828:第一位元區間
830:同位
832:同位
834:第一時鐘脈衝
836:第一時鐘脈衝
838:第一時鐘脈衝
840:歷時
842:時鐘脈衝
Claims (30)
- 一種用於促進在一串列匯流排上虛擬通用輸入/輸出(VGI)的通訊的方法,包括以下步驟: 決定在該串列匯流排閒置時一帶內中斷已在該串列匯流排上被斷言; 當在與該帶內中斷相關聯的匯流排仲裁期間傳輸的一設備位址的一第一位元具有一第一值時參與VGI狀態的一交換; 在VGI狀態的該交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至該串列匯流排的複數個設備傳輸的位元;及 將VGI狀態的該複數個位元中的至少一個位元映射到一實體通用輸入/輸出(GPIO)引腳, 其中當該設備位址的該第一位元具有該第一值時至少該設備位址的一第二位元的傳輸被抑制。
- 如請求項1之方法,進一步包括以下步驟: 在VGI狀態的該交換期間傳輸VGI狀態的一或多個位元。
- 如請求項1之方法,其中將VGI狀態的該複數個位元中的該至少一個位元映射到該實體GPIO引腳之步驟包括以下步驟: 基於該至少一個位元的值來定義該實體GPIO引腳的電壓狀態。
- 如請求項1之方法,其中該複數個設備中的一第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在該串列匯流排上傳輸的一時鐘信號中時鐘脈衝的一第一數目來定義的一時槽大小。
- 如請求項4之方法,其中該第一設備被配置具有該時槽中相對於該設備位址的該第一位元的一位置,該位置根據該時鐘信號中時鐘脈衝的一第二數目來定義。
- 如請求項5之方法,其中該VGI狀態資訊的一第一位元指示該時槽是否包括VGI狀態的有效位元。
- 如請求項6之方法,進一步包括以下步驟: 當該VGI狀態資訊的該第一位元指示該時槽不包括VGI狀態的有效位元時,抑制在該時槽中傳輸該第一數目個時鐘脈衝中的所有時鐘脈衝。
- 如請求項1之方法,進一步包括以下步驟: 在該設備位址的該第一位元以該第一值被傳輸之後配置將一主設備耦合至該串列匯流排的一或多個線驅動器用於一推挽操作模式, 其中在該一或多個線驅動器處於一開汲操作模式時,該設備位址的該第一位元由一從設備傳輸。
- 如請求項8之方法,進一步包括以下步驟: 當該設備位址的該第一位元正由該從設備傳輸時,在該串列匯流排上傳輸具有一第一頻率的一第一時鐘信號;及 在該設備位址的該第一位元以該第一值被傳輸之後,在該串列匯流排上傳輸具有一第二頻率的一第二時鐘信號,其中該第二頻率大於該第一頻率。
- 如請求項9之方法,其中該第二時鐘信號提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的該交換的一歷時。
- 一種裝置,包括: 複數個通用輸入/輸出(GIPO)引腳; 調適成將該裝置耦合至一串列匯流排的一介面;及 一處理電路,其被配置成: 決定在該串列匯流排閒置時一帶內中斷已在該串列匯流排上被斷言; 當在與該帶內中斷相關聯的匯流排仲裁期間傳輸的一設備位址的一第一位元具有一第一值時參與虛擬GPIO(VGI)狀態的一交換; 在VGI狀態的該交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至該串列匯流排的複數個設備傳輸的位元;及 將VGI狀態的該複數個位元中的至少一個位元映射到一實體通用輸入/輸出(GPIO)引腳, 其中當該設備位址的該第一位元具有該第一值時至少該設備位址的一第二位元的傳輸被抑制。
- 如請求項11之裝置,其中該處理電路被進一步配置成: 在VGI狀態的該交換期間傳輸VGI狀態的一或多個位元。
- 如請求項11之裝置,其中該處理電路被進一步配置成: 基於該至少一個位元的值來定義該實體GPIO引腳的電壓狀態。
- 如請求項11之裝置,其中該複數個設備中的一第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在該串列匯流排上傳輸的一時鐘信號中時鐘脈衝的一第一數目來定義的一時槽大小。
- 如請求項14之裝置,其中該第一設備被配置具有該時槽中相對於該設備位址的該第一位元的一位置,該位置根據該時鐘信號中時鐘脈衝的一第二數目來定義。
- 如請求項15之裝置,其中該VGI狀態資訊的一第一位元指示該時槽是否包括VGI狀態的有效位元。
- 如請求項16之裝置,其中該處理電路被進一步配置成: 當該VGI狀態資訊的該第一位元指示該時槽不包括VGI狀態的有效位元時,抑制在該時槽中傳輸該第一數目個時鐘脈衝中的所有時鐘脈衝。
- 如請求項11之裝置,其中該處理電路被進一步配置成: 在該設備位址的該第一位元以該第一值被傳輸之後配置將一主設備耦合至該串列匯流排的一或多個線驅動器用於一推挽操作模式, 其中在該一或多個線驅動器處於一開汲操作模式時,該設備位址的該第一位元由一從設備傳輸。
- 如請求項18之裝置,其中該處理電路被進一步配置成: 當該設備位址的該第一位元正由該從設備傳輸時,在該串列匯流排上傳輸具有一第一頻率的一第一時鐘信號;及 在該設備位址的該第一位元以該第一值被傳輸之後,在該串列匯流排上傳輸具有一第二頻率的一第二時鐘信號,其中該第二頻率大於該第一頻率。
- 如請求項19之裝置,其中該第二時鐘信號提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的該交換的一歷時。
- 一種包括指令的處理器可讀取儲存媒體,該等指令在由一或多個處理器執行時使得該一或多個處理器: 決定在該串列匯流排閒置時一帶內中斷已在一串列匯流排上被斷言; 當在與該帶內中斷相關聯的匯流排仲裁期間傳輸的一設備位址的一第一位元具有一第一值時參與虛擬GPIO(VGI)狀態的一交換; 在VGI狀態的該交換期間接收VGI狀態的複數個位元,該複數個位元包括由耦合至該串列匯流排的複數個設備傳輸的位元;及 基於VGI狀態的該複數個位元中的至少一個位元的值來定義一實體通用輸入/輸出(GPIO)引腳的電壓狀態, 其中當該設備位址的該第一位元具有該第一值時至少該設備位址的一第二位元的傳輸被抑制。
- 如請求項21之儲存媒體,進一步包括使該一或多個處理器執行以下操作的指令: 在VGI狀態的該交換期間傳輸VGI狀態的一或多個位元。
- 如請求項21之儲存媒體,其中該複數個設備中的一第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在該串列匯流排上傳輸的一時鐘信號中時鐘脈衝的一第一數目來定義的一時槽大小,其中該第一設備被配置具有該時槽中相對於該設備位址的該第一位元的一位置,該位置根據該時鐘信號中時鐘脈衝的一第二數目來定義,並且其中該VGI狀態資訊的一第一位元指示該時槽是否包括VGI狀態的有效位元。
- 如請求項21之儲存媒體,進一步包括使該一或多個處理器執行以下操作的指令: 在該設備位址的該第一位元以該第一值被傳輸之後配置將一主設備耦合至該串列匯流排的一或多個線驅動器用於一推挽操作模式,其中在該一或多個線驅動器處於一開汲操作模式時,該設備位址的該第一位元由一從設備傳輸。
- 如請求項21之儲存媒體,進一步包括使該一或多個處理器執行以下操作的指令: 當該設備位址的該第一位元正由一從設備傳輸時,在該串列匯流排上傳輸具有一第一頻率的一第一時鐘信號;及 在該設備位址的該第一位元以該第一值被傳輸之後,在該串列匯流排上傳輸具有一第二頻率的一第二時鐘信號,其中該第二頻率大於該第一頻率, 其中該第二時鐘信號提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的該交換的一歷時。
- 一種裝置,包括: 用於決定在一串列匯流排閒置時一帶內中斷已在該串列匯流排上被斷言的構件,其中該裝置被配置成當在與該帶內中斷相關聯的匯流排仲裁期間傳輸的一設備位址的一第一位元具有一第一值時參與虛擬GPIO(VGI)狀態的一交換; 用於在VGI狀態的該交換期間接收VGI狀態的複數個位元的構件,該複數個位元包括由耦合至該串列匯流排的複數個設備傳輸的位元;及 用於基於VGI狀態的該複數個位元中的至少一個位元的值來定義一實體通用輸入/輸出(GPIO)引腳的電壓狀態的構件, 其中當該設備位址的該第一位元具有該第一值時至少該設備位址的一第二位元的傳輸被抑制。
- 如請求項26之裝置,進一步包括: 用於在VGI狀態的該交換期間傳輸VGI狀態的一或多個位元的構件。
- 如請求項26之裝置,其中該複數個設備中的一第一設備被配置成在一時槽中傳輸VGI狀態資訊,該時槽具有根據在該串列匯流排上傳輸的一時鐘信號中時鐘脈衝的一第一數目來定義的一時槽大小,其中該第一設備被配置具有該時槽中相對於該設備位址的該第一位元的一位置,該位置根據該時鐘信號中時鐘脈衝的一第二數目來定義,並且其中該VGI狀態資訊的一第一位元指示該時槽是否包括VGI狀態的有效位元。
- 如請求項26之裝置,進一步包括: 用於在該設備位址的該第一位元以該第一值被傳輸之後配置將一主設備耦合至該串列匯流排的一或多個線驅動器用於一推挽操作模式的構件,其中在該一或多個線驅動器處於一開汲操作模式時,該設備位址的該第一位元由一從設備傳輸。
- 如請求項26之裝置,進一步包括: 用於在該串列匯流排上傳輸時鐘信號的構件,其中當該設備位址的該第一位元正由一從設備傳輸時,在該串列匯流排上傳輸具有一第一頻率的一第一時鐘信號,而在該設備位址的該第一位元以該第一值被傳輸之後,在該串列匯流排上傳輸具有一第二頻率的一第二時鐘信號,其中該第二頻率大於該第一頻率,並且其中該第二時鐘信號提供數個時鐘脈衝,該等時鐘脈衝的數目定義VGI狀態的該交換的一歷時。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/101,836 US10496562B1 (en) | 2018-08-13 | 2018-08-13 | Low latency virtual general purpose input/output over I3C |
US16/101,836 | 2018-08-13 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202014904A true TW202014904A (zh) | 2020-04-16 |
Family
ID=67766398
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108128730A TW202014904A (zh) | 2018-08-13 | 2019-08-13 | I3c上的低等待時間虛擬通用輸入/輸出 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10496562B1 (zh) |
TW (1) | TW202014904A (zh) |
WO (1) | WO2020036897A1 (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10725949B2 (en) * | 2018-08-28 | 2020-07-28 | Qualcomm Incorporated | Slave-to-slave direct communication |
US11030133B2 (en) * | 2018-08-30 | 2021-06-08 | Qualcomm Incorporated | Aggregated in-band interrupt based on responses from slave devices on a serial data bus line |
US10725945B1 (en) | 2019-03-01 | 2020-07-28 | Texas Instruments Incorporated | Integrated circuit with combined interrupt and serial data output |
KR102256670B1 (ko) * | 2019-11-06 | 2021-05-27 | (주)로보티즈 | 효율적인 통신 버스 중재 시스템 및 방법 |
US11144490B2 (en) * | 2020-01-09 | 2021-10-12 | Qualcomm Incorporated | Optimal I3C in-band interrupt handling through reduced slave arbitration cycles |
CN114860635B (zh) * | 2022-07-07 | 2022-09-23 | 北京智芯半导体科技有限公司 | 通用输入输出接口控制方法、装置、存储介质、电路板 |
Family Cites Families (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6738845B1 (en) | 1999-11-05 | 2004-05-18 | Analog Devices, Inc. | Bus architecture and shared bus arbitration method for a communication device |
US7315551B2 (en) | 2002-03-15 | 2008-01-01 | Lockheed Martin Corporation | Synchronous low voltage differential I/O buss |
DE102011077493A1 (de) | 2010-06-23 | 2012-04-26 | Robert Bosch Gmbh | Verfahren und Vorrichtung zur Datenübertragung mit variabler Bitlänge |
WO2015054433A1 (en) | 2013-10-08 | 2015-04-16 | Qualcomm Incorporated | Coexistence of i2c slave devices and camera control interface extension devices on a shared control data bus |
CN107209739A (zh) | 2015-02-04 | 2017-09-26 | 高通股份有限公司 | 电压模式和电流模式设备枚举 |
US9979782B2 (en) * | 2015-03-24 | 2018-05-22 | Qualcomm Incorporated | Low-power and low-latency device enumeration with cartesian addressing |
US10241953B2 (en) * | 2015-08-07 | 2019-03-26 | Qualcomm Incorporated | Dynamic data-link selection over common physical interface |
US10140242B2 (en) * | 2015-09-10 | 2018-11-27 | Qualcomm Incorporated | General purpose input/output (GPIO) signal bridging with I3C bus interfaces and virtualization in a multi-node network |
US9727506B2 (en) * | 2015-10-01 | 2017-08-08 | Sony Corporation | Communication system, communication system control method, and program |
US20170104733A1 (en) * | 2015-10-09 | 2017-04-13 | Intel Corporation | Device, system and method for low speed communication of sensor information |
US20170168966A1 (en) * | 2015-12-10 | 2017-06-15 | Qualcomm Incorporated | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces |
-
2018
- 2018-08-13 US US16/101,836 patent/US10496562B1/en not_active Expired - Fee Related
-
2019
- 2019-08-12 WO PCT/US2019/046235 patent/WO2020036897A1/en active Application Filing
- 2019-08-13 TW TW108128730A patent/TW202014904A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2020036897A1 (en) | 2020-02-20 |
US10496562B1 (en) | 2019-12-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10482055B2 (en) | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine | |
US20170168966A1 (en) | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces | |
US20210026796A1 (en) | I3c point to point | |
TW202014904A (zh) | I3c上的低等待時間虛擬通用輸入/輸出 | |
US10642778B2 (en) | Slave master-write/read datagram payload extension | |
US20180329837A1 (en) | Input/output direction decoding in mixed vgpio state exchange | |
US20190050366A1 (en) | Device, event and message parameter association in a multi-drop bus | |
US20180357199A1 (en) | Slave-to-slave communication in i3c bus topology | |
TW201923606A (zh) | 針對多執行環境之i3c頻帶內中斷 | |
TW201923603A (zh) | 異質虛擬通用輸入/輸出 | |
US10579549B2 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
TW202219781A (zh) | 跨介面批處理操作 | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
US10684981B2 (en) | Fast termination of multilane single data rate transactions | |
US20230350841A1 (en) | Providing acknowledgements for system power management interface | |
TW201937902A (zh) | 用於低延遲事件訊息之多點虛擬通用輸入/輸出 | |
TW202112117A (zh) | 用於射頻設備的模組內串列通訊介面 | |
EP4323880B1 (en) | I2c bus architecture using shared clock and dedicated data lines | |
US11360916B2 (en) | Group slave identifier time-multiplexed acknowledgment for system power management interface |