TW201923603A - 異質虛擬通用輸入/輸出 - Google Patents
異質虛擬通用輸入/輸出 Download PDFInfo
- Publication number
- TW201923603A TW201923603A TW107134110A TW107134110A TW201923603A TW 201923603 A TW201923603 A TW 201923603A TW 107134110 A TW107134110 A TW 107134110A TW 107134110 A TW107134110 A TW 107134110A TW 201923603 A TW201923603 A TW 201923603A
- Authority
- TW
- Taiwan
- Prior art keywords
- packet
- gpio
- vgi
- transaction identifier
- serial bus
- Prior art date
Links
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/38—Information transfer, e.g. on bus
- G06F13/40—Bus structure
- G06F13/4063—Device-to-bus coupling
- G06F13/4068—Electrical coupling
-
- 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/382—Information transfer, e.g. on bus using universal interface adapter
- G06F13/385—Information transfer, e.g. on bus using universal interface adapter for adaptation of a particular data processing system to different peripheral devices
-
- 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
- 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
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/54—Interprogram communication
- G06F9/542—Event management; Broadcasting; Multicasting; Notifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computer Hardware Design (AREA)
- Multimedia (AREA)
- Information Transfer Systems (AREA)
Abstract
本發明提供用於經由一串列通信鏈路傳達經虛擬化通用輸入/輸出(GPIO)信號的系統、方法及設備。一設備包括一串列匯流排,以及耦接至該串列匯流排之一發端裝置及目的地裝置。該發端裝置可經組態以:產生一第一虛擬GPIO封包,該虛擬GPIO封包攜載表示該發端裝置中之實體GPIO之發信狀態的一有效負載;產生一第二虛擬GPIO封包,該第二虛擬GPIO封包攜載表示由該發端裝置中之一處理器產生的一事件的一有效負載;以及在該串列匯流排上傳輸該第一及第二虛擬GPIO封包。該目的地裝置可經組態以自該串列匯流排接收該第二虛擬GPIO封包,以及將該事件傳達至該目的地裝置之一處理器或根據該第二虛擬GPIO封包之該有效負載修改該目的地裝置中之實體GPIO之發信狀態。
Description
本發明大體上係關於串列通信及輸入/輸出接腳組態,且更特定言之係關於在含有輸入狀態資訊及輸出狀態資訊兩者的位元群中傳輸的虛擬通用輸入/輸出資料之傳輸。
行動通信裝置可包括多種組件,包括電路板、積體電路(IC)裝置及/或系統單晶片(SoC)裝置。該等組件可包括處理裝置、使用者介面組件、儲存器及經由共用資料通信匯流排通信的其他周邊組件,該等匯流排諸如串列匯流排或並列匯流排。通用串列介面為業界所知,包括積體間電路(I2C或I²C)串列匯流排及其衍生物及替代物。某些串列介面標準及協定由行動業界處理器介面(MIPI)聯盟定義,包括I3C、系統功率管理介面(SPMI)以及射頻前端(RFFE)介面標準及協定。
I2C串列匯流排為意欲用於將低速周邊裝置連接至處理器之串列單端電腦匯流排。一些介面提供多主控器匯流排,其中兩個或大於兩個裝置可充當用於在串列匯流排上傳輸之不同訊息的匯流排主控器。RFFE介面界定用於控制各種射頻(RF)前端裝置的通信介面,前端裝置包括功率放大器(PA)、低雜訊放大器(LNA)、天線調諧器、濾波器、感測器、功率管理裝置、交換器等。此等裝置可同置於單一IC裝置中或經提供於多個IC裝置中。在行動通信裝置中,多個天線及無線電收發器可支援多個並行RF鏈路。
在許多情況下,數個命令及控制信號用於連接行動通信裝置中之不同組件裝置。此等連接消耗行動通信裝置內之貴重通用輸入/輸出(GPIO)接腳,且將期望用經由現有串列資料鏈路傳輸之資訊中所攜載的信號替換實體互連件。然而,串列資料鏈路與可特別地在藉由界定可靠傳輸期限之行動通信裝置支援的即時嵌入式系統應用中防止實體命令及控制信號轉換成虛擬信號的潛時相關聯。
由於行動通信裝置繼續包括更高等級的功能性,因此需要改良的串列通信技術以支援混合式虛擬GPIO狀態資訊在周邊裝置與應用程式處理器之間的傳輸。
本發明的某些態樣係關於可在不同裝置之間提供優化潛時通信以使得可攜載實體GPIO狀態及信號作為虛擬GPIO狀態及信號的系統、設備、方法及技術。可合併多種類型且來自多個源的異質GPIO狀態資訊的一或多個虛擬GPIO有限狀態機(VGI FSM)經提供,且經由資料通信匯流排將狀態資訊分配至一或多個裝置。在一個態樣中,異質GPIO狀態資訊包括對應於輸入及輸出GPIO接腳的資訊。
在本發明之各種態樣中,一種在耦接至串列匯流排的發端裝置處執行的方法包括:在第一虛擬GPIO訊息之一或多個位元中表示實體GPIO之發信狀態;經由第一封包中之串列匯流排傳輸第一虛擬GPIO訊息;在第二虛擬GPIO訊息之一或多個位元中表示由發端裝置之處理器產生的事件;以及經由第二封包中之串列匯流排傳輸第二虛擬GPIO訊息。
在某些態樣中,該方法包括:判定與事件相關聯的異動識別符;以及在第二封包中編碼異動識別符。異動識別符可指示事件之源及事件之目的地。可經由串列匯流排將第二封包傳輸至事件之目的地。異動識別符識別實體GPIO接腳作為事件之目的地。根據I3C協定來操作串列匯流排,且第二封包可包括將第二封包識別為虛擬GPIO封包的命令碼。可在命令碼中或次命令碼中編碼異動識別符。
在一些態樣中,該方法包括:判定與第一封包相關聯的異動識別符;以及在第一封包中傳輸異動識別符。異動識別符可指示實體GPIO接腳作為第一虛擬GPIO訊息之源,且可指定軟體事件之消費者作為第一虛擬GPIO訊息之目的地。可根據I3C協定來操作串列匯流排。第一封包可包括與虛擬GPIO封包相關聯的命令碼,且可在命令碼或次命令碼中編碼異動識別符。
在一些態樣中,該方法包括判定與第一封包相關聯的異動識別符。異動識別符指示軟體控制GPIO接腳作為第一虛擬GPIO訊息之源,並指定軟體事件之消費者作為第一虛擬GPIO訊息之目的地,其中第一封包包括異動識別符。可根據I3C協定來操作串列匯流排,且第一封包可包括與虛擬GPIO封包相關聯的命令碼,其中在命令碼或次命令碼中編碼第一封包。
在本發明之各種態樣中,一種在耦接至串列匯流排之目的地裝置處執行的方法包括:自串列匯流排接收封包,該封包包括虛擬GPIO狀態資訊;解碼設置在封包中之異動識別符;當異動識別符具有第一值時,將虛擬GPIO狀態資訊轉換為待由目的地裝置處理的軟體事件;以及當異動識別符具有第二值時,基於虛擬GPIO狀態資訊改變目的地裝置中之實體GPIO接腳之狀態。
在本發明之各種態樣中,一種其上儲存有代碼之暫時性或非暫時性處理器可讀儲存媒體用於:在第一虛擬GPIO訊息之一或多個位元中表示實體GPIO之發信狀態;經由第一封包中之串列匯流排傳輸第一虛擬GPIO訊息;在第二虛擬GPIO訊息之一或多個位元中表示由發端裝置之處理器產生的事件;以及經由第二封包中之串列匯流排傳輸第二虛擬GPIO訊息。
在本發明之各種態樣中,一種資料通信設備具有串列匯流排、耦接至串列匯流排之發端裝置以及耦接至串列匯流排之目的地裝置。該發端裝置具有有限狀態機,該有限狀態機經組態以:產生第一虛擬GPIO封包,該虛擬GPIO封包攜載表示發端裝置中之實體GPIO之發信狀態的有效負載;在串列匯流排上傳輸第一虛擬GPIO封包;產生第二虛擬GPIO封包,該第二虛擬GPIO封包攜載表示由發端裝置中之處理器產生的事件的有效負載;以及經由串列匯流排傳輸第二虛擬GPIO封包。該目的地裝置具有有限狀態機,該有限狀態機可經組態以自串列匯流排接收第二虛擬GPIO封包,以及將事件傳達至目的地裝置之處理器或根據第二虛擬GPIO封包之有效負載修改目的地裝置中之實體GPIO之發信狀態。
相關申請案之交叉參考
本申請案主張2018年9月26日在美國專利局申請的臨時申請案第16/142,419號及2017年11月1日在美國專利局申請的非臨時申請案第62/580,341號之優先權及權益。
下文結合附圖所闡述之實施方式意欲作為對各種組態之描述,且並不意欲表示可實踐本文中所描述之概念的僅有組態。出於提供對各種概念之透徹理解之目的,詳細描述包括具體細節。然而,對於熟習此項技術者而言顯而易見的是,可在無此等特定細節之情況下實踐此等概念。在一些情況下,熟知結構及組件係以方塊圖形式展示,以便避免混淆此類概念。
現將參考各種設備及方法來呈現本發明之若干態樣。將由各種區塊、模組、組件、電路、步驟、處理常式、算法等(統稱為「元件」)在以下詳細描述中描述且在附圖中說明此等設備及方法。此等元素可使用電子硬體、電腦軟體或其任何組合來予以實施。將此類元件實施為硬體抑或軟體取決於特定應用及強加於整個系統上之設計約束。
概述
概述
包括多個SoC之裝置及其他IC裝置常常使用可包括串列匯流排或其他資料通信鏈路的共用通信介面以將處理器與數據機及其他周邊裝置連接。串列匯流排或其他資料通信鏈路可根據所界定之多個標準或協定而操作。在一個實例中,串列匯流排可根據I2C、I3C、SPMI及/或RFFE協定操作。根據本文中所揭示之某些態樣,可在虛擬GPIO狀態資訊之一或多個位元中表示GPIO接腳、跡線、連接器或端子之發信狀態,該虛擬GPIO狀態資訊經由資料通信鏈路在VGI訊息中傳輸。虛擬GPIO狀態資訊可經由多種通信鏈路傳輸,多種通信鏈路包括鏈路,其包括有線及無線通信鏈路。舉例而言,虛擬GPIO狀態資訊可經封包化或另外格式化以供經由無線網路傳輸,無線網路包括藍芽、無線LAN、蜂巢式網路等。本文中描述涉及有線通信鏈路之實例以促進某些態樣之理解。此等態樣可同樣適用於GPIO狀態資訊之傳輸包括經由無線網路之傳輸的實施。
本文中所揭示之某些態樣提供適於使裝置在虛擬GPIO狀態資訊中表示軟體事件及軟體初始化事件的方法、電路及系統,該虛擬GPIO狀態資訊可經由串列通信鏈路在VGI訊息中傳輸。在一個實例中,一種設備包括使發端裝置及目的地裝置通信耦接的串列匯流排。該發端裝置可經組態以:產生第一虛擬GPIO封包,該虛擬GPIO封包攜載表示發端裝置中之實體GPIO之發信狀態的有效負載;產生第二虛擬GPIO封包,該第二虛擬GPIO封包攜載表示由發端裝置中之處理器產生的事件的有效負載;以及在該串列匯流排上傳輸第一及第二虛擬GPIO封包。該目的地裝置可經組態以自該串列匯流排接收第二虛擬GPIO封包,以及將該事件傳達至目的地裝置之處理器或根據該第二虛擬GPIO封包之有效負載修改該目的地裝置中之實體GPIO之發信狀態。
採用串列資料鏈路的設備之實例
採用串列資料鏈路的設備之實例
根據某些態樣,串列資料鏈路可用於互連電子裝置,該等電子裝置係設備之子組件,該設備諸如:蜂巢式電話、智慧型手機、會話起始協定(SIP)電話、膝上型電腦、筆記型電腦、迷你筆記型電腦、智慧筆記型電腦、個人數位助理(PDA)、衛星無線電、全球定位系統(GPS)裝置、智慧型家庭裝置、智能型照明裝置、多媒體裝置、視訊裝置、數位音訊播放器(例如,MP3播放器)、攝影機、遊戲控制台、娛樂裝置、載具組件、可穿戴式運算裝置(例如,智慧型手錶、健康或健身跟蹤器、護目鏡等)、電器、感測器、安全性裝置、自動販賣機、智慧型儀錶、無人駕駛飛機、多旋翼飛行器或任何其他類似功能裝置。
圖1說明可採用資料通信匯流排之設備100之實例。設備100可包括具有多個電路或裝置104、106及/或108之SoC處理電路102,其可實施於一或多個ASIC中或SoC中。在一個實例中,設備100可為通信裝置且處理電路102可包括在ASIC 104、一或多個周邊裝置106及收發器108中所提供的處理裝置,該收發器使設備能夠通過天線124與無線電存取網路、核心存取網路、網際網路及/或另一網路通信。
ASIC 104可具有一或多個處理器112、一或多個數據機110、機載記憶體114、匯流排介面電路116及/或其他邏輯電路或功能。處理電路102可藉由可提供應用程式設計介面(API)層之作業系統來控制,該應用程式設計介面層允許一或多個處理器112執行駐留於機載記憶體114或提供於處理電路102上的其他處理器可讀儲存器122中之軟體模組。軟體模組可包括儲存於機載記憶體114或處理器可讀儲存器122中之指令及資料。ASIC 104可存取其機載記憶體114、處理器可讀儲存器122及/或在處理電路102外部的儲存器。機載記憶體114、處理器可讀儲存器122可包括唯讀記憶體(ROM)或隨機存取記憶體(RAM)、電可抹除可程式化ROM (EEPROM)、快閃記憶卡或可用於處理系統及計算平台中的任何記憶體裝置。處理電路102可包括、實施或存取本地資料庫或其他參數儲存器,其可維持操作參數及用以組態及操作設備100及/或處理電路102的其他資訊。可使用暫存器、資料庫模組、快閃記憶體、磁性媒體、EEPROM、軟碟或硬碟或其類似者來實施本地資料庫。處理電路102亦可以可操作方式耦接至外部裝置,諸如天線124、顯示器126、諸如交換器或按鈕128、130及/或整合式或外部小鍵盤132之操作者控制器以及其他組件。使用者介面模組可經組態以通過專用通信鏈路或通過一或多個串列資料互連件用顯示器126、外部小鍵盤132等操作。
處理電路102可提供允許某些裝置104、106及/或108通信的一或多個匯流排118a、118b、120。在一個實例中,ASIC 104可包括匯流排介面電路116,其包括電路、計數器、計時器、控制邏輯及其他可組態電路或模組之組合。在一個實例中,匯流排介面電路116可經組態以根據標準定義通信規範或協定來操作。處理電路102可包括或控制一電力管理功能,其組態及管理設備100之操作。
圖2說明設備200之某些態樣,該設備包括耦接至串列匯流排220之多個裝置202及2220
至222N
。裝置202及2220
至222N
可實施於諸如應用程式處理器、SoC或ASIC之一或多個半導體IC裝置中。在各種實施中,裝置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可包括具有處理裝置之處理電路,該處理裝置諸如狀態機、定序器、信號處理器或通用處理器。收發器240可包括接收器、傳輸器及共同電路,其中共同電路可包括時序、邏輯及儲存電路及/或裝置。在一個實例中,傳輸器基於由時脈產生及/或恢復電路246提供之時脈信號248中之時序來編碼及傳輸資料。時脈信號228可自接收自時脈線218之信號導出。其他時序時脈238可由控制邏輯242及其他功能、電路或模組使用。
串列匯流排220可根據RFFE、I2C、I3C、SPMI或其他協定操作。在一些情況下,兩個或更多個裝置202、2220
至222N
可經組態以操作為串列匯流排220上之匯流排主控器。
在一些實施中,根據I3C協定來操作串列匯流排220。使用I3C協定通信的裝置可與使用I2C協定通信的裝置共存於同一串列匯流排220上。I3C協定可支援不同通信模式,包括與I2C協定相容之單資料速率(SDR)模式。高資料速率(HDR)模式可提供介於6百萬位元/秒(Mbps)與16 Mbps之間的資料傳送速率,且一些HDR模式可提供較高資料傳送速率。I2C協定可實際上符合提供範圍可介於100千位元/秒(kbps)與3.2 Mbps之間的資料速率之I2C標準。除匯流排控制之資料格式及態樣外,I2C及I3C協定亦可定義在2線串列匯流排220上傳輸之信號的電及時序態樣。在一些態樣中,I2C及I3C協定可定義影響與串列匯流排220相關聯之某些信號位準的直流電(DC)特性,及/或影響在串列匯流排220上傳輸之信號之某些時序態樣的交流電(AC)特性。在一些實例中,基於在串列匯流排220之時脈線218上傳輸的時脈信號中提供的時序資訊在串列匯流排220之資料線216上傳輸資料。在一些情況下,可在發信狀態中編碼資料,或在資料線216及時脈線218之發信狀態中轉變資料。
圖3說明包括經組態以耦接至各種RF前端裝置316、318、320、322、324、326的多個RFFE匯流排328、330、332之設備300之某些態樣。數據機302包括將數據機302耦接至第一RFFE匯流排328的RFFE介面308。數據機302可經由一或多個通信鏈路310、334與基頻處理器306及射頻IC (RFIC 304)通信。所說明之設備300可體現在行動通信裝置、行動電話、行動計算系統、行動電話、筆記本電腦、平板計算裝置、媒體播放器、遊戲裝置、可穿戴式計算及/或通信裝置、電器或類似者中之一或多者中。
在各種實例中,設備300可藉由一或多個基頻處理器306、數據機304、RFIC 304、多個通信鏈路310、334、多個RFFE匯流排328、330、332及/或其他類型之匯流排來實施。設備300可包括其他處理器、電路、模組,且可經組態用於各種操作及/或不同功能性。在圖3中所說明之實例中,數據機經由其RFFE介面308及第一RFFE匯流排328耦接至RF調諧器316。RFIC 304可包括一或多個RFFE介面312、314、控制器、狀態機及/或處理器,其組態及控制RF前端之某些態樣。RFIC 304可經由其RFFE介面312中之第一者及第二RFFE匯流排330與PA 318及功率追蹤模組320通信。RFIC 304可與交換器322及一或多個LNA 324、326通信。
匯流排潛時可影響串列匯流排處置高優先權、即時及/或其他時間約束訊息的能力。低潛時訊息或需要低匯流排潛時之訊息可係關於感測器狀態、裝置產生之即時事件及虛擬化通用輸入/輸出(GPIO)。在一個實例中,匯流排潛時可經量測為訊息變得可供用於傳輸與訊息之遞送(或在一些情況下,訊息之傳輸的開始)之間經過的時間。可使用對匯流排潛時之其他量測。匯流排潛時通常包括在傳輸較高優先權訊息時引發的延遲、中斷處理、終止串列匯流排上之處理中資料報所需的時間、傳輸引起在傳輸模式與接收模式之間的匯流排回轉、匯流排仲裁之命令及/或由協定指定的命令傳輸的時間。
在某些實例中,潛時敏感訊息可包括共存訊息。共存訊息在多系統平台中傳輸以防止或減少某些裝置類型彼此衝擊之情況,包括例如交換器322、LNA 324、326、PA 318及其他類型之裝置,其以可產生裝置間干擾或可經由高功率電磁干擾潛在地導致對一或多個主動裝置之損害的方式同時操作。可彼此干擾的裝置可交換共存管理(CxM)訊息以准許每一裝置發信可導致干擾或衝突之即將發生的動作。CxM訊息可用以管理包括交換器322、LNA 324、326、PA 318及/或天線的共用組件之操作。
諸如RFFE、SPMI、I3C等之多分支介面可減少用以在多個裝置之間進行通信的實體輸入/輸出(I/O)接腳之數目。經由多分支串列匯流排支援通信之協定定義用以傳輸命令、控制及資料有效負載之資料報結構。用於不同協定之資料報結構定義某些共同特徵,包括用以選擇裝置接收或傳輸資料之定址、時脈產生及管理、中斷處理及裝置優先權。在本發明中,可使用RFFE協定之實例來說明本文中所揭示之某些態樣。然而,本文中所揭示之概念適用於其他串列匯流排協定及標準。
根據本文中所揭示之某些態樣,雙線式串列匯流排可適於在常規雙線式模式及針對單線式模式交替地操作。在一個實例中,可根據RFFE協定操作串列匯流排,以使得時脈線及資料線用於與耦接至串列匯流排之雙線式受控器裝置通信,且在無時脈信號之情況下使用資料線以與耦接至串列匯流排之單線式受控器裝置通信。匯流排主控器可使用脈寬調變來編碼傳輸至單線式受控器裝置之資料。
發信虛擬 GPIO 組態資訊
發信虛擬 GPIO 組態資訊
圖4說明包括應用程式處理器402及多個周邊裝置404、406、408的設備400。在實例中,每一周邊裝置404、406、408經由對應的通信鏈路410、412、414與應用程式處理器402通信,該等通信鏈路可獨立操作及/或根據彼此不同的協定來操作。應用程式處理器402與每一周邊裝置404、406、408之間的通信可涉及在應用程式處理器402與周邊裝置404、406、408之間攜載控制或命令信號的額外線。此等額外線可被稱為旁頻帶通用輸入/輸出(旁頻帶GPIO 420、422、424),且在一些情況下,旁頻帶GPIO 420、422、424所需的連接數目可超過用於對應通信鏈路410、412、414的連接數目及/或用於外部連接的積體電路裝置上可用的實體GPIO接腳之數目。
可在本文中使用術語GPIO接腳或GPIO端子來指代可用以互連電路及/或裝置的通用接腳、連接器、襯墊及/或端子。GPIO接腳及GPIO連接件可經定製用於特定應用。舉例而言,GPIO接腳可程式化以根據應用需要充當輸出接腳、輸入接腳或雙向接腳。在一個實例中,應用程式處理器402可指派及/或組態數個GPIO接腳以與諸如數據機之周邊裝置404、406、408進行交握發信或處理器間通信(IPC)。當使用交握交信時,旁頻帶發信可係對稱的,其中發信係藉由應用程式處理器402及周邊裝置404、406、408傳輸及接收。在增加裝置複雜度情況下,用於IPC通信之GPIO接腳的增加之數目可顯著增加製造成本並限制用於其他系統層級周邊介面之GPIO可用性。
根據某些態樣,包括與通信鏈路相關聯之GPIO的GPIO之狀態可經由資料通信鏈路擷取、串列化及傳輸。在一個實例中,可使用命令及控制協定經由I3C匯流排、RFFE匯流排、SPMI匯流排或其他匯流排在封包中傳輸擷取的GPIO,以指示封包內容及/或目的地。
圖5說明根據本文中所揭示之某些態樣的已適於支援虛擬GPIO介面(VGI)的設備500。VGI使得複數個GPIO信號522之狀態由可經由通信鏈路串列化及傳輸之虛擬GPIO狀態之位元表示。每一GPIO信號522可表示一或多個實體GPIO接腳之發信狀態。本文中所揭示之VGI訊息傳遞技術之使用可減少用以使應用程式處理器502與一或多個周邊裝置504、506、508連接的實體接腳及連接件之數目。在一些實例中,應用程式處理器502實施於SoC或其他積體電路中,而周邊裝置504、506、508可與應用程式處理器502同置及/或實施於一或多個其他SoC或積體電路裝置中。在一個實例中,積體電路可包括與積體電路中設置的RF收發器共用的多個數據機。周邊裝置504、506、508可經由共同共用匯流排或經由單獨的相異通信鏈路510、512、514與應用程式處理器502通信。
在所說明之設備500中,通信鏈路510、512、514可對應於圖4中所說明之通信鏈路410、412、414,其中實體GPIO 522 (例如,旁頻帶GPIO 420、422、424)在VGI訊息中經虛擬化,VGI訊息藉由有限狀態機(FSM 518)在封包中編碼以用於經由串列匯流排520傳輸。負責經由串列匯流排520傳輸封包之實體層電路及模組(PHY 516)可對經封包化之應用程式訊息526及經封包化之VGI訊息524進行合併及區分優先級以用於經由串列匯流排520傳輸。在一些實施中,FSM 518可對經封包化之應用程式訊息526及經封包化之VGI訊息524進行合併及區分優先級。
圖6說明實現經由具有資料線618及時脈線620之串列匯流排610在各種裝置之間的VGI訊息之交換的系統600之組態。系統600包括主機SoC 602及多個周邊裝置612。應瞭解,本文中所揭示之某些概念同樣適用於根據其他協定(諸如I2C、I3C、RFFE及SPMI協定)操作的通信鏈路。主機SoC 602可包括VGI有限狀態機(VGI FSM 606)及匯流排介面604。匯流排介面604根據匯流排協定與周邊裝置612中之對應的匯流排介面614協作,以提供主機SoC 602與周邊裝置612之間的通信鏈路。每一周邊裝置612包括VGI FSM 616。在一些實例中,主機SoC 602可包括可組態介面,該可組態介面可經採用以使用I2C、I3C、RFFE及/或另一合適協定之某一組合通信。
圖7說明VGI訊息在一或多個VGI封包724中經封包化且在封包流710中經傳輸的系統700,封包流710包括攜載與由主機SoC 602支援的一個多個應用程式相關聯的訊息的應用程式封包722、726、728、730、732。封包流710中之封包722、724、726、728、730、732可經由串列匯流排610交換及在主機SoC 602與至少一個周邊裝置612之間交換。
主機SoC 602中之有限狀態機702可包括經組態以產生VGI封包724之封包化器704,VGI封包724經由實體層介面PHY 708傳輸。在一些實例中,有限狀態機702可經由應用程式封包722、726、728、730、732中之一或多者對VGI封包724區分優先級,該等應用程式封包經由串列匯流排610傳輸。有限狀態機702可將VGI封包724***應用程式封包722、726、728、730、732之流中以經由串列匯流排610傳輸。有限狀態機702可經由PHY 708接收封包722、724、726、728、730、732中之一或多者。有限狀態機702可將所接收之應用程式封包722、726、728、730及/或732傳遞至主機SoC 602中之其他功能及/或電路中。有限狀態機702可包括對所接收之VGI封包724中之經虛擬化GPIO狀態資訊進行解碼的解封包化器706,且可根據GPIO狀態資訊驅動實體信號及/或實體GPIO接腳。
周邊裝置612中之有限狀態機712可包括經組態以產生VGI封包724之封包化器714,VGI封包724待由PHY 718傳輸。在一些實例中,有限狀態機712可對VGI封包724區分優先級以在串列匯流排610上傳輸。有限狀態機712可將VGI封包724***應用程式封包722、726、728、730、732之流中。有限狀態機712可經由PHY 718接收封包722、724、726、728、730、732中之一或多者。有限狀態機712可將所接收之應用程式封包722、726、728、730、732傳遞至周邊裝置612中之其他功能及/或電路中。有限狀態機712可包括對所接收之VGI封包724中之經虛擬化GPIO狀態資訊進行解碼的解封包化器716,且可根據GPIO狀態資訊驅動實體信號及/或實體GPIO接腳。
VGI封包724之交換使得主機SoC 602中之實體GPIO接腳追蹤及複寫周邊裝置612中之對應實體GPIO接腳之發信狀態,且使得周邊裝置612中之實體GPIO接腳追蹤及複寫主機SoC 602中之對應實體GPIO接腳之發信狀態。
圖8說明根據本文中所揭示之某些態樣的適於支援應用程式處理器802與周邊裝置824之間的VGI訊息之交換的設備800。實體GPIO之發信狀態、實體GPIO之發信狀態之變化及/或經由實體GPIO傳輸之信號可在虛擬GPIO資訊之位元中表示,該虛擬GPIO資訊可提供於VGI訊息中、經串列化及經由通信鏈路822傳輸。實體GPIO之發信狀態可表示在實體GPIO接腳處觀測或預期的電壓位準。在一些實施方案中,經由接腳、跡線、連接線等傳輸之信號(GPIO信號)可表示為在VGI訊息中傳輸的虛擬狀態資訊之時間順序。舉例而言,GPIO接腳之虛擬狀態資訊可由二進制位元表示,其中位元值「0」表示「0」位準或邏輯狀態,且位元值「1」表示「1」位準或邏輯狀態。在一些實施方案中,經由接腳、跡線、連接線等傳輸之信號(GPIO信號)可經傳達為虛擬狀態變化之順序,且在VGI訊息中傳輸。在一個實例中,狀態變化可由二進制位元表示,其中位元值「0」表示正轉變或自「0」位準至「1」位準之狀態變化,且位元值「1」表示負轉變或自「1」位準至「0」位準之狀態變化。在另一實例中,狀態變化可由二進制位元表示,其中位元值「0」表示無位準或邏輯狀態變化,且位元值「1」表示位準或邏輯狀態之變化。可視需要實施其他實例及數值分配,且用於表示GPIO狀態或狀態變化的位元之數目可隨應用而變化。
在一些情況下,在發生實體GPIO狀態之變化之後傳輸VGI訊息。在一個實例中,可在經由通信鏈路822傳輸的封包中編碼VGI訊息,通信鏈路822係使用串列匯流排實施。當使用串列匯流排實施通信鏈路822時,接收周邊裝置824可使所接收的封包解串列化,且可自所接收的封包提取VGI訊息(及在一些情況下為應用訊息)。周邊裝置824中之VGI FSM 826可將VGI訊息轉換為可在內部GPIO介面處呈現的實體GPIO狀態、狀態變化及/或信號。
在另一實例中,通信鏈路822可藉由使用例如藍芽協定、無線區域網路(WLAN)協定、蜂巢式廣域網路及/或另一無線通信協定支援無線通信的射頻收發器提供。當通信鏈路822包括無線連接時,應用訊息及VGI訊息可經編碼於封包、訊框、子訊框或可經由通信鏈路822傳輸之其他結構中,且接收周邊裝置824可提取、解串列化及另外處理接收之發信以獲得應用訊息及VGI訊息。在接收到應用訊息及/或VGI訊息後,VGI FSM 826或接收裝置之另一組件可中斷其主機處理器以指示應用訊息之接收、GPIO狀態及/或GPIO狀態之任何改變。
在通信鏈路822經提供為串列匯流排之實例中,可在經組態用於I2C、I3C、RFFE或另一標準化串列介面之封包中傳輸訊息及/或VGI訊息。在所說明之實例中,可交換VGI訊息以適應應用程式處理器802與周邊裝置824之間的橋接。應用程式處理器802可實施為ASIC、SoC,或裝置之某一組合。應用程式處理器802包括產生訊息及與一或多個通信通道806相關聯之GPIO的處理器(中央處理單元或CPU 804)。經由通信通道806傳輸的GPIO訊息及應用訊息可由VGI FSM 826中之對應監測電路812、814監測。在一些實例中,GPIO監測電路812或其他電路可適於產生表示實體GPIO信號之狀態的VGI訊息。在一些實例中,GPIO監測電路812或其他電路可適於回應於實體GPIO信號之狀態之變化來產生應用訊息及/或VGI訊息。
估計電路818可經組態以估計GPIO信號及應用訊息之潛時資訊,且可選擇用於通信鏈路822之協定及/或通信模式,其最佳化用於編碼及傳輸VGI訊息及應用訊息的潛時。估計電路818可維持協定及模式資訊816,其特性化待在選擇協定及/或通信模式時考慮的通信鏈路822之某些態樣。估計電路818可經進一步組態以選擇用於編碼及傳輸VGI訊息及應用訊息之封包類型。估計電路818可提供由封包化器820使用的組態資訊以編碼VGI訊息及應用訊息。在一個實例中,組態資訊經提供為一命令,該命令可經囊封於封包中使得封包之類型可在接收器處判定。組態資訊(其可為命令)亦可經提供至實體層電路(PHY 808)。 PHY 808可使用組態資訊以選擇用於傳輸相關聯封包之協定及/或通信模式。PHY 808接著可產生適當發信以傳輸封包。
周邊裝置824可包括可經組態以處理自通信鏈路822接收之資料封包的VGI FSM 826。周邊裝置824處之VGI FSM 826可提取訊息且可將VGI訊息中之位元位置映射至周邊裝置824中之實體GPIO接腳上。在某些實施例中,通信鏈路822為雙向的,且應用程式處理器802及周邊裝置824兩者可作為傳輸器及接收器兩者操作。
VGI訊息及應用訊息可經囊封於經由通信鏈路822傳輸之封包中,該通信鏈路可例如為多線串列匯流排或多線並列匯流排。應用程式處理器802中之PHY 808及周邊裝置824中之對應PHY 828可經組態以建立及操作通信鏈路822。PHY 808及828可耦接至(或包括)支援無線通信之無線收發器108 (參見圖1)。在一些實例中,PHY 808及828可支援諸如I2C、I3C、RFFE、SPMI之兩線介面,或分別在應用程式處理器802及周邊裝置824處之另一介面。
可使用經組態用於操作通信鏈路822之現有或可用協定及在無實體GPIO接腳之完整補充的情況下實施如本文中所揭示之VGI穿隧。VGI FSM 810、826可在不干預應用程式處理器802及/或周邊裝置824中之處理器的情況下處置GPIO發信。VGI穿隧之使用可減小接腳計數、功率消耗及與通信鏈路822相關聯的潛時。
在接收裝置處,VGI訊息轉換為實體GPIO信號。實體GPIO接腳之某些特性可使用VGI訊息來組態。舉例而言,實體GPIO接腳之轉換速率、極性、驅動強度及其他相關參數及屬性可使用VGI訊息而組態。用以組態實體GPIO接腳之組態參數可儲存於與對應GPIO接腳相關聯的組態暫存器中。此等組態參數可使用諸如I2C、I3C或RFFE之專屬或習知協定來定址。在一個實例中,組態參數可維持在I3C可定址暫存器中。本文中所揭示之某些態樣係關於減少與組態參數及對應位址(例如,用以儲存組態參數之暫存器的位址)之傳輸相關聯的潛時。
適於經由I2C、I3C、RFFE或SPMI匯流排在封包中及/或作為交易序列傳達VGI訊息之通信介面在本文中可被稱作VGI訊息傳遞介面或VGMI。可使用特殊命令碼發信異動、封包或訊框中之VGI訊息之存在,以將訊框識別為VGI訊框。在一些實施中,串列資料流可以類似於通用非同步接收器/傳輸器(UART)發信及訊息傳遞協定的形式(以可被稱為UART_VGI操作模式的形式)傳輸。
圖9說明VGI廣播訊框900、920之實例。在第一實例中,VGI廣播訊框900根據I2C或I3C協定以緊接著標頭904之起始位元902 (S)開始。VGI廣播訊框可使用VGI廣播共同命令碼906識別。VGI資料有效負載908包括VGI訊息9120
至912 n-1
之數目,範圍為第一VGI訊息9120
至第n
VGI訊息912 n-1
。VGI FSM可包括映射VGI資料有效負載908中之VGI訊息之位元位置至實體GPIO接腳的映射表。VGI資料有效負載908中之發信之虛擬性質對於傳輸及接收裝置中之處理器可為透明的。
在第二實例中,遮蔽之VGI廣播訊框920可由主機裝置傳輸以寫入一或多個GPIO接腳之狀態而不干擾其他GPIO接腳之狀態。在此實例中,用於一或多個裝置之I/O信號被掩蔽,而目標裝置中之I/O信號被解掩蔽。遮蔽之VGI廣播訊框920以緊接著標頭924之起始位元922開始。可使用遮蔽之VGI廣播共同命令碼926識別遮蔽之VGI廣播訊框920。VGI資料有效負載928可包括I/O信號值9340
至934 n -1
及對應遮蔽位元9320
至932 n -1
,範圍為用於第一I/O信號(IO0
)之第一遮蔽位元M0
9320
至用於第n
個I/O信號IOn -1
之第n
遮蔽位元M n -1
932 n -1
。
停止位元或同步位元(Sr/P 910、930)收端VGI廣播訊框900、920。同步位元可經傳輸以指示額外VGI有效負載將被傳輸。在一個實例中,同步位元可為I2C介面中之重複起始位元。
圖10說明VGI有向訊框1000、1020之實例。在第一實例中,VGI有向訊框1000可經定址至單一周邊裝置(或在一些情況下)至一組周邊裝置。VGI有向訊框1000中之第一者根據I2C或I3C協定以緊接著標頭1004的起始位元1002 (S)開始。VGI有向訊框1000可使用VGI有向共同命令碼1006識別。有向共同命令碼1006可在同步欄位1008a (Sr)及位址欄位1010a之後,其包括用以選擇定址裝置之從屬識別符。在位址欄位1010a之後的有向VGI資料有效負載1012a包括用於一組I/O信號之係關於定址裝置的值1016。VGI有向訊框1000可包括用於額外裝置之額外有向VGI資料有效負載1012b。舉例而言,第一有向VGI資料有效負載1012a可緊接著同步欄位1008b及第二位址欄位1010b。在此實例中,第二有向VGI資料有效負載1012b包括用於一組I/O信號之係關於第二定址裝置的值1018。VGI有向訊框1000之使用可允許用於在VGI廣播訊框900、920中攜載之I/O信號之子集或部分的值的傳輸。
在第二實例中,掩蔽之VGI有向訊框1020可藉由主機裝置傳輸以寫入一或多個GPIO接腳之狀態而不干擾單一周邊裝置中之其他GPIO接腳之狀態且不影響其他周邊裝置。在一些實例中,在一或多個裝置中之I/O信號可被掩蔽,而一或多個目標裝置中之所選擇I/O信號被解掩蔽。遮蔽之VGI有向訊框1020以緊接著標頭1024之起始位元1022開始。遮蔽之VGI有向訊框1020可使用遮蔽之VGI有向命令碼1026識別。遮蔽之VGI有向命令碼1026可緊接著同步欄位1028 (Sr)及位址欄位1030,其包括用以選擇定址裝置之從屬識別符。之後的有向有效負載1032包括係關於定址裝置之一組I/O信號的VGI值。舉例而言,有向有效負載1032中之VGI值可包括I/O信號值1038及對應遮蔽位元1036。
停止位元或同步位元(Sr/P 1014、1034)收端VGI有向訊框1000、1020。同步位元可經傳輸以指示額外VGI有效負載將被傳輸。在一個實例中,同步位元可為I2C介面中之重複起始位元。
在接收裝置(例如應用程式處理器502及/或周邊裝置504、506、508)處,接收之VGI訊息經擴展至呈現於GPIO接腳上之實體GPIO信號狀態中。如本文中所使用之術語「接腳」可指實體結構,諸如襯墊、接腳或用以耦接IC至電線、跡線、通孔或電路板、基板或其類似者上提供之其他合適實體連接器的其他互連元件。每一GPIO接腳可與儲存用於GPIO接腳之組態參數的一或多個組態暫存器相關聯。圖11說明可與實體接腳相關聯的組態暫存器1100及1120。每一組態暫存器1100、1120經實施為一位元組(8位元)暫存器,其中不同位元或位元之群組界定可經由組態控制的特性或其他特徵。在第一實例中,位元D0至D2 1102控制GPIO接腳之驅動強度,位元D3至D5 1104控制GPIO接腳之轉換速率,位元D6 1106啟用中斷,且位元D7 1108判定中斷係邊緣觸發抑或藉由電壓位準觸發。在第二實例中,位元D0 1122選擇GPIO接腳接收反向信號抑或非反向信號,位元D1至D2 1124界定輸入或輸出接腳之類型,位元D3至D4 1126界定未被驅動接腳之特定特性,位元D5至D6 1128界定發信狀態之電壓位準,且位元D7 1130控制GPIO接腳之二進位值(亦即GPIO接腳攜載二進位一抑或零)。
異質 VGI
異質 VGI
在採用VGI訊息以在裝置之間交換GPIO狀態資訊之介面中,第一裝置中之實體GPIO接腳可追蹤及複寫第二裝置中之對應實體GPIO接腳之發信狀態,且反之亦然。可經由串列匯流排或攜載其他訊務的其他通信鏈路交換VGI訊息,包括在裝置及/或應用之間傳輸的應用訊息。應用訊息可包括由感測器產生之有效負載資料及/或與藉由應用程式之處理相關或由其產生的資訊。應用訊息亦可包括管理及控制訊息,包括由應用程式、裝置驅動器及其他軟體產生之事件。事件可包括軟體中斷、陷阱、旗標之狀態變化或信號量及其他程序間訊息。管理及控制訊息可在高優先級應用封包中傳輸,且VGI有限狀態機可經組態以在高優先級應用封包與VGI封包之間仲裁。
根據本文中所揭示之某些態樣,軟體事件可由有限狀態機處理,該有限狀態機適於產生表示實體GPIO狀態資訊之VGI封包。可以與表示實體GPIO之方式相同的方式來表示軟體事件,包括當實體GPIO表示與硬體事件相關聯的發信狀態時。在一些實施方案中,軟體事件可經轉換為可由VGI有限狀態機處理的實體信號,其中僅有極少或無VGI有限狀態機之調適。在一些實施方案中,軟體事件可在經組態以處理經虛擬化GPIO的暫存器(參見圖11之組態暫存器1100及1120)中經轉換為位元設定。
圖12說明根據本文中所揭示之某些態樣的適於將硬體及軟體事件表示為虛擬GPIO的設備1200。硬體事件可藉由實體GPIO之狀態變化產生,而軟體事件可藉由應用程式及/或操作系統產生,且在訊息中、在記憶體中或暫存器值中傳達及/或作為調用藉由操作系統或應用程式監測之功能。
在所說明之設備1200中,應用程式處理器1202包括中央處理單元(CPU 1204)、有限狀態機1206及PHY 1208。PHY 1208可處理經由串列匯流排1250攜載VGI訊息的封包之傳輸。VGI訊息藉由有限狀態機1206被提供至PHY 1208。有限狀態機1206可適於包括硬體及軟體事件處理常式1210、1214。GPIO處理常式1210可監測實體GPIO 1212作為硬體事件之源。如本文中所揭示,實體GPIO 1212可經虛擬化。在一些情況下,GPIO處理常式1210可包括VGI訊息中之資訊,其明確地識別所包括的狀態資訊與實體GPIO相關。
軟體事件處理常式1214可直接自一或多個軟體事件源1216接收軟體事件訊息。在一些情況下,軟體事件處理常式1214可接收或監測包括其他類型訊息之封包流。軟體事件處理常式1214可基於藉由應用程式之直接通知及/或藉由監測應用程式處理器1202之某些操作來識別軟體事件。在一個實例中,產生事件之應用程式寫入由軟體事件處理常式1214監測之暫存器。軟體事件處理常式1214可提供及監測表示軟體事件的實體信號1218,且可在實體信號1218與軟體事件源1216之間轉換。有限狀態機1206可產生待傳輸至周邊裝置1222的VGI訊息。在一些實施方案中,軟體處理常式1214可編碼被提供至有限狀態機1206的VGI訊息1220中之軟體事件。軟體處理常式1214可包括識別VGI訊息1220中之軟體事件的VGI訊息1220中之資訊。
有限狀態機1206亦可經由PHY 1208自周邊裝置1222接收VGI訊息。周邊裝置1222可包括中央處理單元(CPU 1224)、有限狀態機1226及PHY 1228。PHY 1228可處理經由串列匯流排1250攜載VGI訊息的封包之傳輸。VGI訊息藉由有限狀態機1226被提供至PHY 1228。有限狀態機1226可適於包括硬體及軟體事件處理常式1230、1234。GPIO處理常式1230可監測實體GPIO 1232作為硬體事件之源。如本文中所揭示,實體GPIO 1232可經虛擬化。在一些情況下,GPIO處理常式1230可包括VGI訊息中之資訊,其明確地識別所包括的狀態資訊與實體GPIO相關。
軟體事件處理常式1234可直接自一或多個軟體事件源1236接收軟體事件訊息。在一些情況下,軟體事件處理常式1234可接收或監測包括其他類型訊息之封包流。軟體事件處理常式1234可基於藉由應用程式之直接通知及/或藉由監測周邊裝置1222之某些操作來識別軟體事件。在一個實例中,產生事件之應用程式寫入由軟體事件處理常式1234監測之暫存器。軟體事件處理常式1234可提供及監測表示軟體事件的實體信號1238,且可在實體信號1238與軟體事件源1236之間轉換。有限狀態機1226可產生待由有限狀態機1226傳輸之VGI訊息。在一些實施方案中,軟體處理常式1234可編碼被提供至有限狀態機1226的VGI訊息1240中之軟體事件。軟體處理常式1234可包括識別VGI訊息1240中之軟體事件的VGI訊息1240中之資訊。
在一個實例中,有限狀態機1206、1226可基於VGI訊息中提供的識別資訊將與軟體事件相關之VGI訊息及與實體GPIO相關之VGI訊息區分開。在另一實例中,有限狀態機1206、1226可將VGI訊息導入VGI訊息中識別的處理常式1210、1214、1230或1234。在後一實例中,可提取有限狀態機1206、1226與對應處理常式1210、1214、1230、1234之間的介面,以使得有限狀態機1206、1226不必知道處理常式1210、1214、1230、1234之功能之類型。在任一實例中,VGI介面可經組態以支援第一裝置上之實體GPIO與第二裝置上之軟體事件之間的轉換,且反之亦然。
圖13包括圖12中之設備1200之簡化表示1300及表示根據本文中所揭示之某些態樣調適的VGI介面中之訊息流的縱橫式映射1340。第一裝置中之FSM 1302包括管理實體GPIO 1322之狀態之通信的第一處理常式1304,及管理軟體事件1324之通信的第二處理常式1306。第二裝置中之FSM 1312包括管理實體GPIO 1326之狀態之通信的第三處理常式1314,及管理軟體事件1328之通信的第四處理常式1316。通過PHY 1308、1318經由串列匯流排1310傳輸VGI訊息。
表1展示實體GPIO與軟體事件之間的VGI傳送之排列,且圖13包括對應的縱橫式映射1340。
表 1
縱橫式映射1340可適用於圖12中所說明之設備1200,其中VGI訊息可表示藉由硬體電路產生及/或監測的實體GPIO之狀態以及藉由軟體產生及/或消耗之事件,且應用程式處理器及周邊裝置可為兩種類型VGI訊息之源及/或目的地。
縱橫式映射1340可適用於圖12中所說明之設備1200,其中VGI訊息可表示藉由硬體電路產生及/或監測的實體GPIO之狀態以及藉由軟體產生及/或消耗之事件,且應用程式處理器及周邊裝置可為兩種類型VGI訊息之源及/或目的地。
與實體GPIO 1322相關之某些VGI訊息可發端於第一裝置且收端於第二裝置。在一個實例中,可在第一裝置中修改實體GPIO接腳之狀態,且可將VGI訊息自第一裝置傳輸至第二裝置,以更新第二裝置中之對應實體GPIO接腳之狀態。在另一實例中,可在第一裝置中修改實體GPIO接腳之狀態,且可將VGI訊息自第一裝置傳輸至第二裝置,以在第二裝置中產生軟體事件。
與實體GPIO 1322相關之某些VGI訊息可發端於第二裝置且收端於第一裝置。在一個實例中,可在第二裝置中修改實體GPIO接腳之狀態,且可將VGI訊息自第二裝置傳輸至第一裝置,以更新第一裝置中之對應實體GPIO接腳之狀態。在另一實例中,可在第二裝置中修改實體GPIO接腳之狀態,且可將VGI訊息自第二裝置傳輸至第一裝置,以在第一裝置中產生軟體事件。
與軟體事件1324相關之某些VGI訊息可發端於第一裝置且收端於第二裝置。在一個實例中,在第一裝置中之軟體事件之出現可使得VGI訊息自第一裝置傳輸至第二裝置,以更新第二裝置中之實體GPIO接腳之狀態。在另一實例中,在第一裝置中之軟體事件之出現可使得VGI訊息自第一裝置傳輸至第二裝置,以在第二裝置中產生對應的軟體事件。
與實體GPIO 1322相關之某些VGI訊息可發端於第二裝置且收端於第一裝置。在一個實例中,在第二裝置中之軟體事件之出現可使得VGI訊息自第二裝置傳輸至第一裝置,以更新第一裝置中之實體GPIO接腳之狀態。在另一實例中,第二裝置中之軟體事件之出現可使得VGI訊息自第二裝置傳輸至第一裝置,以在第一裝置中產生對應的軟體事件。
在一個實例中,應用程式處理器1342可包括管理及/或監測周邊裝置1346中之數據機1348的CPU 1344。數據機可產生經由實體GPIO 1326傳輸之信號。根據本文中所揭示之某些態樣,CPU 1344可經組態以接收數據機產生之信號作為軟體事件1324。根據本文中所揭示之態樣,CPU 1344可經進一步組態以產生與數據機1348之操作相關的軟體事件1324,其中將軟體事件1324轉換為耦接至數據機1348之實體GPIO 1326。CPU 1344與數據機1348之間的通信由對角線1350說明。
在一個實例中,包括與諸如硬體定時器之硬體產生的信號相關的狀態資訊的VGI訊息可被導向至實體GPIO,該實體GPIO耦接至回應於藉由硬體定時器產生之信號的電路。在另一實例中,包括與某些硬體產生事件相關的狀態資訊的VGI訊息可轉換為接收VGI有限狀態機中之軟體事件。在後一實例中,應用程式處理器可支援有限數目之硬體中斷,且將來自一些裝置之硬體中斷轉換為可藉由應用程式處理器更便利地服務的軟體中斷可為有用的。在另一實例中,包括與某些軟體產生事件相關的狀態資訊的VGI訊息可轉換為接收VGI有限狀態機中之硬體GPIO狀態。在後一實例中,應用程式處理器可產生在周邊裝置處轉換為硬體中斷的軟體事件。在另一實例中,包括與某些軟體產生事件相關的狀態資訊的VGI訊息可處理為接收VGI有限狀態機中之軟體事件。
圖14說明了說明異質VGI之擴展實施方案的縱橫式映射1400。在許多應用中,藉由韌體及/或軟體來產生及/或控制經由實體GPIO傳輸之一或多個信號。舉例而言,應用程式可將二進位值寫入在一或多個GPIO接腳上輸出值的暫存器。根據本文中所揭示之某些態樣,可使用有限狀態機1206、1226產生及擷取某些GPIO接腳之狀態。在一些情況下,產生經由實體GPIO傳輸之信號的模組可適於產生VGI訊息,該等VGI訊息表示作為對應於信號之發信狀態變化的一系列事件的信號。直接產生VGI訊息代替實體信號之技術在本文中可被稱作軟體發端VGI。
表2表示對應於縱橫式映射1400的VGI傳送之排列。
表2
縱橫式映射1400可適用於圖12中所說明之設備1200,其中VGI訊息可表示藉由硬體電路產生及/或監測之實體GPIO 1402、1408、藉由軟體產生及/或監測之GPIO 1404、1410以及藉由軟體產生及/或消耗之軟體事件1406、1412之狀態。應用程式處理器及周邊裝置可為兩種類型VGI訊息之源及/或目的地。在此實例中,產生自任何源之VGI訊息可被導引至實體GPIO 1402、1408,導引至藉由軟體監測之GPIO 1404、1410,或導引至產生軟體事件1406、1412之處理程式。
縱橫式映射1400可適用於圖12中所說明之設備1200,其中VGI訊息可表示藉由硬體電路產生及/或監測之實體GPIO 1402、1408、藉由軟體產生及/或監測之GPIO 1404、1410以及藉由軟體產生及/或消耗之軟體事件1406、1412之狀態。應用程式處理器及周邊裝置可為兩種類型VGI訊息之源及/或目的地。在此實例中,產生自任何源之VGI訊息可被導引至實體GPIO 1402、1408,導引至藉由軟體監測之GPIO 1404、1410,或導引至產生軟體事件1406、1412之處理程式。
表3展示少於所有VGI傳送之排列提供於縱橫式映射1400中之實例。
表 3
在表3中,並不支援與硬體產生GPIO之狀態或藉由軟體監測之軟體事件至硬體GPIO相關的VGI訊息之交換。
在表3中,並不支援與硬體產生GPIO之狀態或藉由軟體監測之軟體事件至硬體GPIO相關的VGI訊息之交換。
表2及對應的縱橫式映射1400在軟體發端實體GPIO與硬體發端GPIO及軟體事件不同時提供高達9個交換選項。可使用定義代碼(VGI_ID)在VGI訊息中識別VGI訊息之源及目的地之特徵。圖14中所說明之表1420中之代碼提供定義VGI_ID值之寫碼方案,其可用於根據縱橫式映射1400來管理VGI訊息。VGI_ID值經表述於四個位元中且編碼源與目的地之間的映射。I3C之MIPI聯盟標準提供VGI訊息傳遞指定之專用共同命令碼(CCC)。當接收器偵測到VGI CCC時,其識別到對應的封包包括經虛擬化GPIO。在習知系統中,假定經虛擬化GPIO代表GPIO接腳之硬體產生的發信狀態。
圖15說明根據本文所揭示之某些態樣的可用於將與硬體產生的GPIO相關的VGI訊息同與軟體事件及軟體產生的實體GPIO相關的VGI訊息區分開的CCC 1502、1512之調適。在第一實例1500中,可修改CCC 1502之四個位元1504以提供可用於管理VGI訊息的VGI_ID值。在另一實例1510中,可定義一或多個子命令1514以管理VGI訊息。在一些情況下,可針對表1420中之每一項來定義子命令1514。在一些情況下,子命令1514可包括8位元VGI_ID。在一些情況下,一或多個子命令1514可識別產生對應VGI訊息的源的類型,以及對應VGI訊息(亦即,硬體監測、軟體監測GPIO、軟體事件)之消費者之類型。在其他實例中,可針對VGI訊息傳送之每一類型來保留及/或定義一或多個CCC 1512 (參見縱橫式映射1400、表1420)。
可採用其他技術來管理VGI訊息傳送之類型。舉例而言,可提取VGI訊息之源及目的地。GPIO及/或軟體事件之每一源及目的地可預先指定待用於產生VGI訊息之處理常式及用於解碼所接收VGI訊息之處理常式。VGI訊息可符合可藉由接收器中之處理常式處理的格式。傳輸器不必知道在接收器處執行的解碼及/或轉換之類型。
在一些情況下,VGI中之提取使得不同類型之裝置交換VGI訊息,該等VGI訊息包括硬體產生的GPIO、與軟體事件相關之VGI訊息以及軟體產生的實體GPIO。VGI訊息可指示VGI發端點及VGI目的地點。源裝置及目的地裝置中之VGI訊息處理常式之細節可預先配置及/或編碼於VGI訊息中。在一個實例中,發端/收端執行環境(EE)或子系統可包括ARM CPU、數位信號處理器(DSP)及/或圖形處理單元(GPU)。子系統可包括數據機或應用程式處理器。自ARM CPU在VGI訊息中傳輸之軟體事件可經識別為被導向至數據機中之硬體VGI處理常式。
圖16包括說明經構建以實施異質VGI訊息傳遞的系統之操作的流程圖1600、1620。第一流程圖1600說明與VGI訊息之編碼及傳輸相關之某些態樣。VGI訊息可藉由有限狀態機控制或管理。有限狀態機可被實施為在空閒、睡眠及/或斷電週期期間操作的始終啟用前端有限狀態機(AAFE-FSM)。
在區塊1602處,AAFE-FSM可擷取實體GPIO或軟體事件。在一些實例中,實體GPIO可與經由實體GPIO接腳傳輸的軟體發端信號之狀態相關。在區塊1604處,AAFE-FSM可識別實體GPIO或軟體事件之源之類型。AAFE-FSM可將源表示為碼字中之值。在第一實例中,當源為硬體產生的實體GPIO時,碼字之值為0;當源為軟體發端實體GPIO時,碼字之值為1;以及當源為軟體事件時,碼字之值為2。在區塊1606處,AAFE-FSM可識別VGI訊息之目的地之類型。AAFE-FSM可將目的地表示為碼字中之值。在第一實例中,當源為硬體產生的實體GPIO時,碼字之值為0;當源為軟體發端實體GPIO時,碼字之值為1;以及當源為軟體事件時,碼字之值為2。
用於表示源及目的地之類型的碼字值可選自相同的值集合或不同的值集合。在關於區塊1604及1606描述之第一實例中,值之集合可表示為集合源 _ 目的地
= {0, 1, 2}。在第二實例中,源之值之集合可表示為集合源
= {0, 1, 2},且目的地之值之集合可表示為集合目的地
= {8, 9, 10}。在第三實例中,表示源及目的地的值之集合可表示為文數位集合源
= {0, 1A, 1}。源及目的地之碼字值可用於產生表徵VGI異動的VGI_ID。在一些情況下,AAFE-FSM可在不產生源及目的地碼字之情況下產生VGI_ID。
在區塊1608處,AAFE-FSM可將表示GPIO或軟體事件之狀態的VGI有效負載連同VGI_ID封裝至VGI訊息中。在區塊1610處,AAFE-FSM可跨越串列匯流排傳送VGI訊息。
第二流程圖1620說明與VGI訊息之接收及解碼相關之某些態樣。VGI訊息可藉由有限狀態機處理或另外操控。有限狀態機可被實施為在空閒、睡眠及/或斷電週期期間操作的始終啟用前端有限狀態機(AAFE-FSM)。
在區塊1622處,AAFE-FSM可接收VGI訊息。在區塊1624處,AAFE-FSM可基於VGI訊息中提供之VGI_ID來判定VGI源。在區塊1626處,AAFE-FSM可基於VGI訊息中提供之VGI_ID來判定VGI目的地。在區塊1628處,AAFE-FSM可調度VGI有效負載以供處理。AAFE-FSM可選擇經組態以解碼VGI有效負載中之狀態資訊並提供適合於目的地的輸出的VGI訊息處理常式。舉例而言,第一處理常式可經組態以更新實體GPIO之狀態,第二處理常式可經組態以更新藉由軟體監測之實體GPIO之狀態,以及第三處理常式可經組態以產生軟體事件。每一處理常式可與指定的硬體子系統、CPU或EE相關聯。
AAFE-FSM及一或多個處理常式可適於將VGI訊息映射至目的地子系統。AAFE-FSM及一或多個處理常式可適於轉換不同類型之輸入及輸出之間的狀態,包括實體GPIO及/或軟體事件。
本文中所揭示之某些態樣提供在不使用額外實體GPIO接腳之情況下用於裝置之間的通信硬體及軟體事件的共同方法。可支援發端類型及收端類型之所有組合,其中發端類型包括硬體發端GPIO、軟體發端實體GPIO及軟體事件VGI源,且目的地類型包括硬體監測GPIO、軟體監測實體GPIO及軟體事件VGI消費者。
本文中所揭示之某些態樣致能在VGI訊息之源及/或目的地處的硬體事件與軟體事件之間的轉換。VGI致能之轉換可有利地用於順暢地將第一裝置中產生的硬體發端GPIO轉換為第二裝置中傳遞的軟體事件。VGI致能之轉換可有利地用於順暢地將第一裝置中產生的軟體事件轉換為第二裝置中之硬體監測GPIO。
處理電路及方法之實例
處理電路及方法之實例
圖17為說明採用有限狀態機810以最佳化虛擬GPIO潛時的設備1700之硬體實施之實例的圖。在一些實例中,設備1700可組態有限狀態機810之操作。在一些實例中,設備1700可執行本文中所揭示之一或多個功能。根據本發明之各種態樣、元件或元件之任何部分,或如本文中所揭示之元件的任何組合可使用處理電路1702來實施。處理電路1702可包括藉由硬體與軟體模組之某一組合控制的一或多個處理器1704。處理器1704之實例包括微處理器、微控制器、DSP、GPU、SoC、ASIC、場可程式化閘陣列(FPGA)、可程式化邏輯裝置(PLD)、狀態機、定序器、閘控邏輯、離散硬體電路及經組態以執行貫穿本發明所描述之各種功能性的其他合適之硬體。一或多個處理器1704可包括執行特定功能並可藉由軟體模組1716中之一者而組態、擴充或控制之特定處理器。一或多個處理器1704可經由在初始化期間載入的軟體模組1716之組合而組態,並另外藉由在操作期間載入或卸載一或多個軟體模組1716而組態。
在所說明之實例中,可藉由匯流排架構來實施處理電路1702,該匯流排架構一般藉由匯流排1710來表示。匯流排1710可取決於處理電路1702之特定應用及總設計約束而包括任何數目個互連匯流排及橋接器。匯流排1710將包括一或多個處理器1704及儲存器1706之各種電路鏈接在一起。儲存器1706可包括記憶體裝置及大容量儲存裝置,且可在本文中被稱作電腦可讀媒體及/或處理器可讀媒體。匯流排1710亦可鏈結各種其他電路,諸如時序源、定時器、周邊設備、電壓調節器及電力管理電路。匯流排介面1708可提供匯流排1710與一或多個收發器1712a、1712b之間的介面。收發器1712a、1712b可經提供用於藉由處理電路支援之每一網路連接技術。在一些情況下,多個網路連接技術可共用在收發器1712a、1712b中發現的電路或處理模組之一些或全部。每一收發器1712a、1712b提供用於經由傳輸媒體與各種其他設備通信的構件。在一個實例中,收發器1712a可用於將設備1700耦接至多線匯流排。在另一實例中,收發器1712b可用於連接設備1700至無線網路。視設備1700之性質而定,使用者介面1718 (例如小鍵盤、顯示器、揚聲器、麥克風、操縱桿)亦可經提供,且可直接或經由匯流排介面1708通信耦接至匯流排1710。
處理器1704可負責管理匯流排1710及負責可包括儲存於可包括儲存器1706之電腦可讀媒體中的軟體之執行的通用處理。就此而言,包括處理器1704之處理電路1702可用於實施本文所揭示之方法、功能及技術中之任一者。儲存器1706可用於儲存在執行軟體時由處理器1704操控的資料,且軟體可經組態以實施本文中所揭示之方法中之任一者。
處理電路1702中之一或多個處理器1704可執行軟體。軟體應廣泛地解釋為意謂指令、指令集、代碼、碼段、程式碼、程式、子程式、軟體模組、應用程式、軟體應用程式、軟體套件、常式、次常式、目標、可執行碼、執行緒、程序、功能、演算法等,而不管其是被稱作軟體、韌體、中間軟體、微碼、硬體描述語言抑或其他者。軟體可按電腦可讀形式駐留於儲存器1706或外部電腦可讀媒體中。外部電腦可讀媒體及/或儲存器1706可包括非暫時性電腦可讀媒體。借助於實例,非暫時性電腦可讀媒體包括磁性儲存裝置(例如,硬碟、軟碟、磁條)、光碟(例如,緊密光碟(CD)或數位多功能光碟(DVD))、智慧卡、快閃記憶體裝置(例如,「快閃驅動機」、卡、棒或保密磁碟)、RAM、ROM、可程式化唯讀記憶體(PROM)、包括EEPROM的可擦除PROM (EPROM)、暫存器、可卸除式磁碟,以及用於儲存可藉由電腦存取及讀取的軟體及/或指令的任何其他合適媒體。藉助於實例,電腦可讀媒體及/或儲存器1706亦可包括載波、傳輸線,及用於傳輸可由電腦存取及讀取的軟體及/或指令的任何其他合適之媒體。電腦可讀媒體及/或儲存器1706可駐留在處理電路1702中,處理器1704中,處理電路1702外部,或在包括處理電路1702之多個實體上分佈。電腦可讀媒體及/或儲存器1706可實施於電腦程式產品中。藉助於實例,電腦程式產品可包括封裝材料中之電腦可讀媒體。熟習此項技術者將認識到取決於特定應用及強加於整個系統上的總設計約束而最佳地實施呈現在整個本發明中之所描述功能性的方式。
儲存器1706可維持在可載入碼段、模組、應用程式、程式等(其可在本文中稱為軟體模組1716)中維持及/或組織的軟體。軟體模組1716中之每一者可包括指令及資料,其當安裝或載入於處理電路1702上並藉由一或多個處理器1704執行時促成一控制一或多個處理器1704之操作的執行階段影像1714。當執行時,某些指令可使得處理電路1702根據本文中所描述的某些方法、演算法及程序執行功能。
可在處理電路1702之初始化期間載入軟體模組1716中之一些,且此等軟體模組1716可組態處理電路1702以允許執行本文中所揭示之各種功能。舉例而言,一些軟體模組1716可組態內部裝置及/或處理器1704之邏輯電路1722,且可管理對諸如收發器1712a、1712b、匯流排介面1708、使用者介面1718、定時器、數學共處理器等之外部裝置的存取。軟體模組1716可包括控制程式及/或作業系統,其與中斷處理常式及裝置驅動器互動,且控制對由處理電路1702提供之各種資源的存取。資源可包括記憶體、處理時間、對收發器1712a、1712b之存取、使用者介面1718等。
處理電路1702之一或多個處理器1704可為多功能的,由此軟體模組1716中之一些經載入且經組態以執行不同功能或相同功能的不同執行個體。一或多個處理器1704可另外經調適以管理回應於來自(例如)使用者介面1718、收發器1712a、1712b及裝置驅動器之輸入而起始的後台任務。為支援多個功能之執行,一或多個處理器1704可經組態以提供多任務環境,由此複數個功能中的每一者經實施為根據需要或所要藉由一或多個處理器1704伺服的一組任務。在一個實例中,可使用通過不同任務之間的處理器1704之控制的時間共用程式1720實施多任務環境,由此每一任務在完成任何未完成操作後及/或回應於諸如中斷之輸入而將一或多個處理器1704之控制返回至時間共用程式1720。當任務具有一或多個處理器1704之控制時,處理電路有效地特定用於藉由與控制任務相關聯的功能解決的目的。時間共用程式1720可包括作業系統、在循環基礎上傳送控制之主要迴路、根據功能之優先排序分配一或多個處理器1704之控制的功能,及/或藉由提供一或多個處理器1704之控制至處置功能而對外部事件作出回應的中斷驅動主要迴路。
圖18為可在耦接至串列匯流排之裝置處執行的方法之流程圖1800。裝置在本文中可被稱作發端裝置。執行該方法所涉及的某些電路可藉由有限狀態機組態。另外或替代地,有限狀態機可執行該方法之某些部分。
在區塊1802處,裝置可在第一VGI訊息之一或多個位元中表示實體GPIO之發信狀態。在區塊1804處,裝置可在第一封包中經由串列匯流排傳輸第一VGI訊息。在區塊1806處,裝置可在第二VGI訊息之一或多個位元中表示藉由發端裝置之處理器產生的事件。在區塊1808處,裝置可在第二封包中經由串列匯流排傳輸第二VGI訊息。
在某些實例中,裝置可判定與事件相關聯的異動識別符。異動識別符指示事件之源及事件之目的地。裝置可在第二封包中編碼異動識別符。經由串列匯流排將第二封包傳輸至事件之目的地。異動識別符可識別實體GPIO接腳作為事件之目的地。在一個實例中,根據I3C協定來操作串列匯流排,且第二封包包括將第二封包識別為VGI封包的命令碼。可在命令碼中或次命令碼中編碼異動識別符。
在一些實例中,裝置可判定與第一封包相關聯的異動識別符,其中異動識別符指示實體GPIO接腳作為第一VGI訊息之源並指定軟體事件之消費者作為第一VGI訊息之目的地,且裝置可在第一封包中傳輸異動識別符。在此實例中,可根據I3C協定來操作串列匯流排,第一封包可包括與VGI封包相關聯的命令碼,且可在命令碼或次命令碼中編碼異動識別符。
在一或多個實例中,裝置可判定與第一封包相關聯的異動識別符,其中異動識別符指示軟體控制GPIO接腳作為第一VGI訊息之源,並指定軟體事件之消費者為第一VGI訊息之目的地。第一封包可包括異動識別符。在此實例中,可根據I3C協定來操作串列匯流排,第一封包可包括與VGI封包相關聯的命令碼,且可在命令碼或次命令碼中編碼異動識別符。
圖19為可在耦接至串列匯流排之裝置處執行的方法之流程圖1900。裝置在本文中可被稱作目的地裝置。執行該方法所涉及的某些電路可藉由有限狀態機組態。另外或替代地,有限狀態機可執行該方法之某些部分。
在區塊1902處,裝置可自串列匯流排接收封包。封包可包括對應於在傳輸第一封包之裝置中的第一實體GPIO連接器的虛擬GPIO狀態資訊。在區塊1904處,裝置可回應於封包中之虛擬GPIO狀態資訊而產生待由目的地裝置處理之軟體事件。在一些情況下,裝置可解碼封包中提供之異動識別符。裝置可基於異動識別符中編碼的資訊將自封包提取的虛擬GPIO狀態資訊提供至軟體事件處理常式。可根據I3C協定來操作串列匯流排。封包可包括將封包識別為虛擬GPIO封包的命令碼。可在命令碼中編碼異動識別符。可在次命令碼中編碼異動識別符。
圖20為可在耦接至串列匯流排之裝置處執行的方法之流程圖2000。裝置在本文中可被稱作目的地裝置。執行該方法所涉及的某些電路可藉由有限狀態機組態。另外或替代地,有限狀態機可執行該方法之某些部分。
在區塊2002處,裝置可自串列匯流排接收封包,該封包包括VGI狀態資訊。在區塊2004處,裝置可解碼封包中提供之異動識別符。在區塊2006處,裝置可判定異動識別符是否與實體GPIO抑或軟體事件相關。在區塊2008處,裝置可在異動識別符具有第一值時將VGI狀態資訊轉換為待由目的地裝置處理的軟體事件。在區塊2010處,裝置可在異動識別符具有第二值時基於VGI狀態資訊改變目的地裝置中之實體GPIO接腳之狀態。
在某些實例中,根據I3C協定來操作串列匯流排,且其中封包包括將封包識別為VGI封包的命令碼。在一些情況下,在命令碼中編碼異動識別符。在其他情況下,可在次命令碼中編碼異動識別符。
在一個實例中,裝置可在異動識別符具有第一值時將封包中之VGI狀態資訊提供至軟體事件處理常式。在一些情況下,第一實體GPIO接腳之狀態由傳輸封包的裝置中之處理器來控制。在一些情況下,目的地裝置中之實體GPIO接腳由目的地裝置中之處理器來監測。在一些情況下,目的地裝置中之實體GPIO接腳控制目的地裝置中之電路之功能。
可根據I3C協定來操作串列匯流排,且其中封包包括將封包識別為VGI封包的命令碼,其中在命令碼或次命令碼中編碼異動識別符。
圖21為可在耦接至串列匯流排之裝置處執行的方法之流程圖2100。裝置在本文中可被稱作目的地裝置。執行該方法所涉及的某些電路可藉由有限狀態機組態。另外或替代地,有限狀態機可執行該方法之某些部分。
在區塊2102處,裝置可自串列匯流排接收封包,該封包包括對應於在傳輸第一封包之裝置中之第一實體GPIO接腳的虛擬GPIO狀態資訊,其中第一實體GPIO接腳之狀態藉由傳輸封包之裝置中之處理器控制。在區塊2104處,裝置可解碼來自封包之異動識別符。在區塊2106處,裝置可基於異動識別符之值來判定如何處理封包之有效負載。在區塊2108處,異動識別符經判定為具有第一值,且裝置可將虛擬GPIO狀態資訊轉換為待藉由目的地裝置處理之軟體事件。在區塊2110處,異動識別符經判定為具有第二值,且裝置可基於虛擬GPIO狀態資訊來改變目的地裝置中之實體GPIO接腳之狀態。
在一些情況下,目的地裝置中之實體GPIO接腳由目的地裝置中之處理器來監測。在一些情況下,目的地裝置中之實體GPIO接腳控制目的地裝置中之電路之功能。可根據I3C協定來操作串列匯流排。封包可包括將封包識別為虛擬GPIO封包的命令碼。可在命令碼中編碼異動識別符。可在次命令碼中編碼異動識別符。
圖22為說明採用處理電路2202的設備2200的硬體實施方案之簡化實例的圖。設備可實施根據本文中所揭示之某些態樣的橋接電路。處理電路通常具有可包括一或多個微處理器、微控制器、數位信號處理器、定序器及/或狀態機的控制器或處理器2216。處理電路2202可實施有匯流排架構(總體上由匯流排2220表示)。匯流排2220可取決於處理電路2202之特定應用及整體設計約束而包括任何數目個互連匯流排及橋接器。匯流排2220將包括一或多個處理器及/或硬體模組之各種電路鏈接在一起,該等處理器及/或硬體模組由控制器或處理器2216、模組或電路2204、2206及2208以及處理器可讀儲存器2218表示。一或多個實體層電路及/或模組2214可經提供以支援經由使用多線匯流排2212經由天線2222 (例如至無線網路)等實施的通信鏈路的通信。匯流排2220亦可鏈接此項技術中已熟知且因此將並不更進一步描述之各種其他電路,諸如時序源、周邊裝置、電壓調節器及功率管理電路。
處理器2216負責一般處理,包括儲存於處理器可讀儲存器2218上的軟體、代碼及/或指令之執行。處理器可讀儲存器2218可包括非暫時性儲存媒體。軟體在由處理器2216執行時使處理電路2202執行上文針對任何特定設備所描述的各種功能。處理器可讀儲存媒體可用於儲存當執行軟體時藉由處理器2216操控的資料。處理電路2202進一步包括模組2204、2206及2208中之至少一者。模組2204、2206及2208可為在處理器2216中執行的駐留/儲存於處理器可讀儲存器2218中的軟體模組、耦接至處理器2216之一或多個硬體模組或其某一組合。模組2204、2206及2208可包括微控制器指令、狀態機組態參數,或其某一組合。
在一個組態中,設備2200包括經組態操作為分別與實體GPIO及軟體事件相關聯的VGI訊息之處理常式的模組及/或電路2206、2208。設備2200可包括經組態以產生包括VGI訊息、源及目的地資訊及事件類型(例如,實體GPIO、軟體事件、軟體發端之硬體、軟體監測之硬體GPIO等)的封包的模組及/或電路2204。
在一個實例中,設備2200包括串列匯流排、耦接至串列匯流排之發端裝置以及耦接至串列匯流排之目的地裝置。該發端裝置可具有有限狀態機,該有限狀態機經組態以:產生第一虛擬GPIO封包,該虛擬GPIO封包攜載表示發端裝置中之實體GPIO之發信狀態的有效負載;在串列匯流排上傳輸第一虛擬GPIO封包;產生第二虛擬GPIO封包,該第二虛擬GPIO封包攜載表示由發端裝置中之處理器產生的事件的有效負載;以及在串列匯流排上傳輸第二虛擬GPIO封包。該目的地裝置可具有有限狀態機,該有限狀態機可經組態以自串列匯流排接收第二虛擬GPIO封包,以及將事件傳達至目的地裝置之處理器或根據第二虛擬GPIO封包之有效負載修改目的地裝置中之實體GPIO之發信狀態。
處理器可讀儲存器2218可包括可由處理器2216執行之代碼。在第一實例中,處理器可讀儲存器2218包括用於執行以下操作之代碼:在第一VGI訊息之一或多個位元中表示實體GPIO之發信狀態;在第一封包中經由串列匯流排傳輸第一VGI訊息;在第二VGI訊息之一或多個位元中表示由發端裝置之處理器產生的事件;以及在第二封包中經由串列匯流排傳輸第二VGI訊息。
處理器可讀儲存器2218可包括用於判定與事件相關聯的異動識別符的代碼。異動識別符指示事件之源及事件之目的地。處理器可讀儲存器2218可包括用於在第二封包中編碼異動識別符的代碼,其中經由串列匯流排將第二封包傳輸至事件之目的地。
在一些實例中,異動識別符將實體GPIO接腳識別為事件之目的地。可根據I3C協定來操作串列匯流排,且第二封包可包括將第二封包識別為VGI封包的命令碼。可在命令碼中或次命令碼中編碼異動識別符。
在一些實例中,處理器可讀儲存器2218可包括用於判定與第一封包相關聯的異動識別符的代碼,以及用於在第一封包中傳輸異動識別符的代碼,其中異動識別符指示實體GPIO接腳作為第一VGI訊息之源並指定軟體事件之消費者作為第一VGI訊息之目的地。
在一些實例中,根據I3C協定來操作串列匯流排,其中第一封包包括與VGI封包相關聯的的命令碼。可在命令碼或次命令碼中編碼異動識別符。
在一些實例中,處理器可讀儲存器2218可包括用於判定與第一封包相關聯的異動識別符的代碼,其中異動識別符指示軟體控制的GPIO接腳作為第一VGI訊息之源並指定軟體事件之消費者為第一VGI訊息之目的地,且其中第一封包包括異動識別符。可根據I3C協定來操作串列匯流排,其中第一封包包括與VGI封包相關聯的命令碼,且其中在命令碼或次命令碼中編碼異動識別符。
在第二實例中,該設備為接收裝置,且處理器可讀儲存器2218包括用於自串列匯流排接收封包的代碼,該封包包括VGI狀態資訊。處理器可讀儲存器2218可包括用於執行以下操作之代碼:解碼封包中設置的異動識別符;當異動識別符具有第一值時,將VGI狀態資訊轉換為待由目的地裝置執行之軟體事件;以及在異動識別符具有第二值時,基於VGI狀態資訊來改變目的地裝置中之實體GPIO接腳之狀態。可根據I3C協定來操作串列匯流排,其中該封包包括將封包識別為VGI封包的命令碼。可在命令碼中或次命令碼中編碼異動識別符。
在一些實例中,處理器可讀儲存器2218可包括用於在異動識別符具有第一值時將封包中之VGI狀態資訊提供至軟體事件處理常式的代碼。可藉由傳輸封包的裝置中之處理器來控制第一實體GPIO接腳之狀態。可藉由目的地裝置中之處理器來監測目的地裝置中之實體GPIO接腳。目的地裝置中之實體GPIO接腳可控制目的地裝置中之電路之功能。可根據I3C協定來操作串列匯流排,且封包可包括將封包識別為VGI封包的命令碼。
應理解,所揭示處理程序中之步驟的特定次序或層級為例示性方法之說明。基於設計偏好,應理解,可重新配置程序中之步驟的特定次序或層次。另外,可組合或省略一些步驟。隨附方法請求項以樣本次序呈現各個步驟之要素,且並不意欲受限於所呈現之特定次序或層次。
提供先前描述以使任何熟習此項技術者能夠實踐本文中所描述之各種態樣。對此等態樣的各種修改對於熟習此項技術者而言將容易顯而易見,且本文中定義的一般原理可適用於其它態樣。因此,申請專利範圍不意欲限於本文中所展示的態樣,而是將被賦予與語言申請專利範圍一致的完整範圍,其中以單數形式參考一元件不意欲意謂「一個且僅有一個」,除非明確地如此陳述,而是表示「一或多個」。除非另外特定地陳述,否則術語「一些」指代一或多個。一般熟習此項技術者已知或稍後將知曉的貫穿本發明所描述之各種態樣之元件的所有結構及功能等效物以引用的方式明確地併入本文中,且意欲由申請專利範圍涵蓋。此外,本文中所揭示之任何內容均不意欲專用於公眾,無論申請專利範圍中是否明確敍述此揭示內容。沒有申請專利範圍元件將被解釋為手段加功能,除非元件係使用片語「用於……之構件」來明確地敍述。
100‧‧‧設備
102‧‧‧處理電路
104‧‧‧裝置
106‧‧‧裝置
108‧‧‧裝置
110‧‧‧數據機
112‧‧‧處理器
114‧‧‧機載記憶體
116‧‧‧匯流排介面電路
118a‧‧‧匯流排
118b‧‧‧匯流排
120‧‧‧匯流排
122‧‧‧處理器可讀儲存器
124‧‧‧天線
126‧‧‧顯示器
128‧‧‧開關/按鈕
130‧‧‧開關/按鈕
132‧‧‧外部小鍵盤
200‧‧‧設備
202‧‧‧匯流排主控器
204‧‧‧介面控制器
206‧‧‧組態暫存器
208‧‧‧時脈產生電路
210‧‧‧收發器
212‧‧‧控制邏輯
214a‧‧‧線路驅動器/接收器
214b‧‧‧線路驅動器/接收器
216‧‧‧資料線
218‧‧‧時脈線
220‧‧‧串列匯流排
2220‧‧‧受控器裝置
2221‧‧‧受控器裝置
2222‧‧‧受控器裝置
222N‧‧‧受控器裝置
224‧‧‧儲存器
226‧‧‧時序時脈
228‧‧‧時脈信號
232‧‧‧模組/電路
234‧‧‧組態暫存器
236‧‧‧儲存器
238‧‧‧時序時脈
240‧‧‧收發器
242‧‧‧控制邏輯
244a‧‧‧線路驅動器/接收器
244b‧‧‧線路驅動器/接收器
246‧‧‧時脈產生及/或恢復電路
248‧‧‧時脈信號
300‧‧‧設備
302‧‧‧數據機
304‧‧‧射頻IC
306‧‧‧基頻處理器
308‧‧‧RFFE介面
310‧‧‧通信鏈路
312‧‧‧RFFE介面
314‧‧‧RFFE介面
316‧‧‧RF調諧器
318‧‧‧功率放大器
320‧‧‧功率追蹤模組
322‧‧‧交換器
324‧‧‧低雜訊放大器
326‧‧‧低雜訊放大器
328‧‧‧第一RFFE匯流排
330‧‧‧RFFE匯流排
332‧‧‧RFFE匯流排
334‧‧‧通信鏈路
400‧‧‧設備
402‧‧‧應用程式處理器
404‧‧‧周邊裝置
406‧‧‧周邊裝置
408‧‧‧周邊裝置
410‧‧‧通信鏈路
412‧‧‧通信鏈路
414‧‧‧通信鏈路
420‧‧‧旁頻帶GPIO
422‧‧‧旁頻帶GPIO
424‧‧‧旁頻帶GPIO
500‧‧‧設備
502‧‧‧應用程式處理器
504‧‧‧周邊裝置
506‧‧‧周邊裝置
508‧‧‧周邊裝置
510‧‧‧通信鏈路
512‧‧‧通信鏈路
514‧‧‧通信鏈路
516‧‧‧實體層電路及模組
518‧‧‧有限狀態機
520‧‧‧串列匯流排
522‧‧‧GPIO信號
524‧‧‧經封包化之VGI訊息
526‧‧‧經封包化之應用程式訊息
600‧‧‧系統
602‧‧‧主機SoC
604‧‧‧匯流排介面
606‧‧‧VGI有限狀態機
610‧‧‧串列匯流排
612‧‧‧周邊裝置
614‧‧‧匯流排介面
616‧‧‧VGI有限狀態機
618‧‧‧資料線
620‧‧‧時脈線
700‧‧‧系統
702‧‧‧有限狀態機
704‧‧‧封包化器
706‧‧‧解封包化器
708‧‧‧實體層介面
710‧‧‧封包流
712‧‧‧有限狀態機
714‧‧‧封包化器
716‧‧‧解封包化器
718‧‧‧實體層電路
722‧‧‧應用程式封包
724‧‧‧VGI封包
726‧‧‧應用程式封包
728‧‧‧應用程式封包
730‧‧‧應用程式封包
732‧‧‧應用程式封包
800‧‧‧設備
802‧‧‧應用程式處理器
804‧‧‧中央處理單元
806‧‧‧通信頻道
808‧‧‧實體層電路
810‧‧‧有限狀態機
812‧‧‧監測電路
814‧‧‧監測電路
816‧‧‧協定及模式資訊
818‧‧‧估計電路
820‧‧‧封包化器
822‧‧‧通信鏈路
824‧‧‧周邊裝置
826‧‧‧虛擬GPIO有限狀態機
828‧‧‧實體層電路
900‧‧‧VGI廣播訊框
902‧‧‧起始位元
904‧‧‧標頭
906‧‧‧VGI廣播共同命令碼
908‧‧‧VGI資料有效負載
910‧‧‧Sr/P
9120‧‧‧VGI訊息
912n-1‧‧‧VGI訊息
920‧‧‧VGI廣播訊框
922‧‧‧起始位元
924‧‧‧標頭
926‧‧‧VGI廣播共同命令碼
928‧‧‧VGI資料有效負載
930‧‧‧Sr/P
9320‧‧‧遮蔽位元
932n-1‧‧‧遮蔽位元
9340‧‧‧I/O信號值
934n-1‧‧‧I/O信號值
1000‧‧‧VGI有向訊框
1002‧‧‧起始位元
1004‧‧‧標頭
1006‧‧‧VGI有向共同命令碼
1008a‧‧‧同步欄位
1008b‧‧‧同步欄位
1010a‧‧‧位址欄位
1010b‧‧‧位址欄位
1012a‧‧‧有向VGI資料有效負載
1012b‧‧‧有向VGI資料有效負載
1014‧‧‧Sr/P
1016‧‧‧值
1018‧‧‧值
1020‧‧‧VGI有向訊框
1022‧‧‧起始位元
1024‧‧‧標頭
1026‧‧‧VGI有向命令碼
1028‧‧‧同步欄位
1030‧‧‧位址欄位
1032‧‧‧有向有效負載
1034‧‧‧Sr/P
1036‧‧‧遮蔽位元
1038‧‧‧I/O信號值
1100‧‧‧組態暫存器
1102‧‧‧位元D0至D2
1104‧‧‧位元D3至D5
1106‧‧‧位元D6
1108‧‧‧位元D7
1120‧‧‧組態暫存器
1122‧‧‧位元D0
1124‧‧‧位元D1至D2
1126‧‧‧位元D3至D4
1128‧‧‧位元D5至D6
1130‧‧‧位元D7
1200‧‧‧設備
1202‧‧‧應用程式處理器
1204‧‧‧中央處理單元
1206‧‧‧有限狀態機
1208‧‧‧實體層電路
1210‧‧‧處理常式
1212‧‧‧實體GPIO
1214‧‧‧軟體事件處理常式
1216‧‧‧軟體事件源
1218‧‧‧實體信號
1220‧‧‧VGI訊息
1222‧‧‧周邊裝置
1224‧‧‧中央處理單元
1226‧‧‧有限狀態機
1228‧‧‧實體層電路
1230‧‧‧GPIO處理常式
1232‧‧‧實體GPIO
1234‧‧‧軟體事件處理常式
1236‧‧‧軟體事件源
1238‧‧‧實體信號
1240‧‧‧VGI訊息
1300‧‧‧簡化表示
1302‧‧‧有限狀態機
1304‧‧‧第一處理常式
1306‧‧‧第二處理常式
1308‧‧‧實體層電路
1310‧‧‧串列匯流排
1312‧‧‧有限狀態機
1314‧‧‧第三處理常式
1316‧‧‧第四處理常式
1318‧‧‧實體層電路
1322‧‧‧實體GPIO
1324‧‧‧軟體事件
1326‧‧‧實體GPIO
1328‧‧‧軟體事件
1340‧‧‧縱橫式映射
1342‧‧‧應用程式處理器
1344‧‧‧中央處理單元
1346‧‧‧周邊裝置
1348‧‧‧數據機
1350‧‧‧對角線
1400‧‧‧縱橫式映射
1402‧‧‧實體GPIO
1404‧‧‧GPIO
1406‧‧‧軟體事件
1408‧‧‧實體GPIO
1410‧‧‧GPIO
1412‧‧‧軟體事件
1420‧‧‧表
1500‧‧‧第一實例
1502‧‧‧共同命令碼
1504‧‧‧位元
1510‧‧‧實例
1512‧‧‧共同命令碼
1514‧‧‧子命令
1600‧‧‧流程圖
1602‧‧‧流程圖
1604‧‧‧區塊
1606‧‧‧區塊
1608‧‧‧區塊
1610‧‧‧區塊
1620‧‧‧流程圖
1622‧‧‧區塊
1624‧‧‧區塊
1626‧‧‧區塊
1628‧‧‧區塊
1700‧‧‧設備
1702‧‧‧處理電路
1704‧‧‧處理器
1706‧‧‧儲存器
1708‧‧‧匯流排介面
1710‧‧‧匯流排
1712a‧‧‧收發器
1712b‧‧‧收發器
1714‧‧‧執行階段影像
1716‧‧‧軟體模組
1718‧‧‧使用者介面
1720‧‧‧時間共用程式
1722‧‧‧邏輯電路
1800‧‧‧流程圖
1802‧‧‧區塊
1804‧‧‧區塊
1806‧‧‧區塊
1808‧‧‧區塊
1900‧‧‧流程圖
1902‧‧‧區塊
1904‧‧‧區塊
2000‧‧‧流程圖
2002‧‧‧區塊
2004‧‧‧區塊
2006‧‧‧區塊
2008‧‧‧區塊
2010‧‧‧區塊
2100‧‧‧流程圖
2102‧‧‧區塊
2104‧‧‧區塊
2106‧‧‧區塊
2108‧‧‧區塊
2110‧‧‧區塊
2200‧‧‧設備
2202‧‧‧處理電路
2204‧‧‧模組/電路
2206‧‧‧模組/電路
2208‧‧‧模組/電路
2212‧‧‧多線匯流排
2214‧‧‧實體層電路及/或模組
2216‧‧‧處理器
2218‧‧‧處理器可讀儲存器
2220‧‧‧匯流排
2222‧‧‧天線
圖1說明使用IC裝置之間的根據複數個可用標準中之一者選擇性地操作的資料鏈路之設備。
圖2說明用於採用在IC裝置之間的資料鏈路之設備的系統架構。
圖3說明使用耦接至各種射頻前端裝置之多個RFFE匯流排之系統。
圖4說明根據本文中所揭示之某些態樣的包括經調適應用程式處理器及多個周邊裝置的設備。
圖5說明根據本文中所揭示之某些態樣的已適於支援虛擬GPIO (VGI)的設備之第一實例。
圖6說明根據本文中所揭示之某些態樣的採用I3C匯流排以耦接各種前端裝置的裝置。
圖7說明根據本文中所揭示之某些態樣的在封包流中傳輸VGI的系統。
圖8說明根據本文中所揭示之某些態樣的已適於支援虛擬GPIO的設備之第二實例。
圖9說明根據本文中所揭示之某些態樣的VGI廣播訊框之實例。
圖10說明根據本文中所揭示之某些態樣的VGI有向訊框之實例。
圖11說明根據本文中所揭示之某些態樣的可與實體接腳相關聯的組態暫存器。
圖12說明根據本文中所揭示之某些態樣的適於將硬體及軟體事件表示為VGI的設備。
圖13說明圖12中說明的設備中之訊息流之某些態樣。
圖14說明根據本文中所揭示之某些態樣的用於異質VGI的縱橫式映射之實例。
圖15說明根據本文中所揭示之某些態樣的可用於將與硬體產生的GPIO相關的VGI訊息同與軟體事件及軟體產生的實體GPIO相關的VGI訊息區分開的命令碼之調適。
圖16包括說明根據本文中所揭示之某些態樣的經架構以實施異質VGI訊息傳遞的系統之操作的第一及第二流程圖。
圖17說明採用可根據本文中所揭示之某些態樣調適的處理電路的設備之一個實例。
圖18為說明根據本文中所揭示之某些態樣調適的應用程式處理器之某些操作的第三流程圖。
圖19為說明根據本文中所揭示之某些態樣調適的應用程式處理器之某些操作的第四流程圖。
圖20為說明根據本文中所揭示之某些態樣調適的應用程式處理器之某些操作的第五流程圖。
圖21為說明根據本文中所揭示之某些態樣調適的應用程式處理器之某些操作的第六流程圖。
圖22說明根據本文中所揭示之某些態樣調適的設備的硬體實施之第一實例。
Claims (29)
- 一種用於在耦接至一串列匯流排之一發端裝置處執行的資料通信的方法,其包含: 在一第一虛擬實體通用輸入/輸出(GPIO)訊息之一或多個位元中表示實體GPIO之發信狀態; 在一第一封包中經由該串列匯流排傳輸該第一虛擬GPIO訊息; 在一第二虛擬GPIO訊息之一或多個位元中表示由該發端裝置之一處理器產生的一事件;以及 在一第二封包中經由該串列匯流排傳輸該第二虛擬GPIO訊息。
- 如請求項1之方法,其進一步包含: 判定與該事件相關聯的一異動識別符,其中該異動識別符指示該事件之一源及該事件之一目的地;以及 在該第二封包中編碼該異動識別符, 其中經由該串列匯流排將該第二封包傳輸至該事件之該目的地。
- 如請求項2之方法,其中該異動識別符識別一實體GPIO接腳作為該事件之該目的地。
- 如請求項2之方法,其中根據一I3C協定來操作該串列匯流排,且該第二封包包括將該第二封包識別為一虛擬GPIO封包的一命令碼。
- 如請求項4之方法,其中在該命令碼中編碼該異動識別符。
- 如請求項4之方法,其中在一次命令碼中編碼該異動識別符。
- 如請求項1之方法,其進一步包含: 判定與該第一封包相關聯的一異動識別符,其中該異動識別符指示一實體GPIO接腳作為該第一虛擬GPIO訊息之一源,並指定軟體事件之一消費者作為該第一虛擬GPIO訊息之一目的地;以及 在該第一封包中傳輸該異動識別符。
- 如請求項7之方法,其中根據一I3C協定來操作該串列匯流排,其中該第一封包包括與虛擬GPIO封包相關聯的一命令碼,且其中在該命令碼或一次命令碼中編碼該異動識別符。
- 如請求項1之方法,其進一步包含: 判定與該第一封包相關聯的一異動識別符,其中該異動識別符指示一軟體控制GPIO接腳作為該第一虛擬GPIO訊息之一源,並指定軟體事件之一消費者為該第一虛擬GPIO訊息之一目的地,且其中該第一封包包括該異動識別符。
- 如請求項9之方法,其中根據一I3C協定來操作該串列匯流排,其中該第一封包包括與虛擬GPIO封包相關聯的一命令碼,且其中在該命令碼或一次命令碼中編碼該異動識別符。
- 一種用於在耦接至一串列匯流排之一目的地裝置處執行的資料通信的方法,其包含: 自該串列匯流排接收一封包,該封包包括虛擬通用輸入/輸出(GPIO)狀態資訊; 解碼設置於該封包中之一異動識別符; 當該異動識別符具有一第一值時,將該虛擬GPIO狀態資訊轉換為待由該目的地裝置處理的一軟體事件;以及 當該異動識別符具有一第二值時,基於該虛擬GPIO狀態資訊改變該目的地裝置中的一實體GPIO接腳之狀態。
- 如請求項11之方法,其中根據一I3C協定來操作該串列匯流排,且其中該封包包括將該封包識別為一虛擬GPIO封包的一命令碼。
- 如請求項12之方法,其中在該命令碼中編碼該異動識別符。
- 如請求項12之方法,其中在一次命令碼中編碼該異動識別符。
- 如請求項11之方法,其進一步包含: 當該異動識別符具有該第一值時,將該封包中之該虛擬GPIO狀態資訊提供至一軟體事件處理常式。
- 如請求項11之方法,其中該實體GPIO接腳之該狀態由傳輸該封包的一裝置中之一處理器來控制。
- 如請求項11之方法,其中該目的地裝置中之該實體GPIO接腳由該目的地裝置中之一處理器來監測。
- 如請求項11之方法,其中該目的地裝置中之該實體GPIO接腳控制該目的地裝置中之一電路之一功能。
- 一種處理器可讀儲存媒體,其包含用於執行以下操作之代碼: 在一第一虛擬實體通用輸入/輸出(GPIO)訊息之一或多個位元中表示實體GPIO之發信狀態; 在一第一封包中經由一串列匯流排傳輸該第一虛擬GPIO訊息; 在一第二虛擬GPIO訊息之一或多個位元中表示由一發端裝置之一處理器產生的一事件;以及 在一第二封包中經由該串列匯流排傳輸該第二虛擬GPIO訊息。
- 如請求項19之儲存媒體,其進一步包含用於執行以下操作之代碼: 判定與該事件相關聯的一異動識別符,其中該異動識別符指示該事件之一源及該事件之一目的地;以及 在該第二封包中編碼該異動識別符, 其中經由該串列匯流排將該第二封包傳輸至該事件之該目的地。
- 如請求項20之儲存媒體,其中該異動識別符識別一實體GPIO接腳作為該事件之該目的地。
- 如請求項20之儲存媒體,其中根據一I3C協定來操作該串列匯流排,且該第二封包包括將該第二封包識別為一虛擬GPIO封包的一命令碼。
- 如請求項22之儲存媒體,其中在該命令碼中編碼該異動識別符。
- 如請求項22之儲存媒體,其中在一次命令碼中編碼該異動識別符。
- 如請求項19之儲存媒體,其進一步包含用於執行以下操作之代碼: 判定與該第一封包相關聯的一異動識別符,其中該異動識別符指示一實體GPIO接腳作為該第一虛擬GPIO訊息之一源,並指定軟體事件之一消費者作為該第一虛擬GPIO訊息之一目的地;以及 在該第一封包中傳輸該異動識別符。
- 如請求項25之儲存媒體,其中根據一I3C協定來操作該串列匯流排,其中該第一封包包括與虛擬GPIO封包相關聯的一命令碼,且其中在該命令碼或一次命令碼中編碼該異動識別符。
- 如請求項19之儲存媒體,其進一步包含用於執行以下操作之代碼: 判定與該第一封包相關聯的一異動識別符,其中該異動識別符指示一軟體控制GPIO接腳作為該第一虛擬GPIO訊息之一源,並指定軟體事件之一消費者為該第一虛擬GPIO訊息之一目的地,且其中該第一封包包括該異動識別符。
- 如請求項27之儲存媒體,其中根據一I3C協定來操作該串列匯流排,其中該第一封包包括與虛擬GPIO封包相關聯的一命令碼,且其中在該命令碼或一次命令碼中編碼該異動識別符。
- 一種資料通信設備,其包含: 一串列匯流排; 一發端裝置,其耦接至該串列匯流排,其中該發端裝置中之一有限狀態機經組態以: 產生一第一虛擬通用輸入/輸出(GPIO)封包,該第一虛擬GPIO封包攜載表示該發端裝置中之實體GPIO之發信狀態的一有效負載; 經由該串列匯流排傳輸該第一虛擬GPIO封包; 產生一第二虛擬GPIO封包,該第二虛擬GPIO封包攜載表示由該發端裝置中之一處理器產生的一事件的一有效負載;以及 經由該串列匯流排傳輸該第二虛擬GPIO封包;以及 一目的地裝置,其耦接至該串列匯流排,其中該目的地裝置中之一有限狀態機經組態以: 自該串列匯流排接收該第二虛擬GPIO封包;以及 將該事件傳達至該目的地裝置之一處理器,或根據該第二虛擬GPIO封包之該有效負載修改該目的地裝置中之實體GPIO之發信狀態。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762580341P | 2017-11-01 | 2017-11-01 | |
US62/580,341 | 2017-11-01 | ||
US16/142,419 US10515044B2 (en) | 2017-11-01 | 2018-09-26 | Communicating heterogeneous virtual general-purpose input/output messages over an I3C bus |
US16/142,419 | 2018-09-26 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW201923603A true TW201923603A (zh) | 2019-06-16 |
Family
ID=66243982
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107134110A TW201923603A (zh) | 2017-11-01 | 2018-09-27 | 異質虛擬通用輸入/輸出 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10515044B2 (zh) |
TW (1) | TW201923603A (zh) |
WO (1) | WO2019089162A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372793B2 (en) | 2020-06-19 | 2022-06-28 | Nuvoton Technology Corporation | System on chip and control method thereof |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10467154B2 (en) * | 2017-02-10 | 2019-11-05 | Qualcomm Incorporated | Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus |
US11880314B1 (en) * | 2018-07-27 | 2024-01-23 | Dialog Semiconductor B.V. | Microcontroller for driving an external device |
DE102019201533A1 (de) * | 2019-02-07 | 2020-08-13 | Robert Bosch Gmbh | Systemkomponente mit konfigurierbarem Kommunikationsverhalten und Verfahren zum Betreiben einer solchen Systemkomponente |
CN110489212B (zh) * | 2019-08-20 | 2022-08-02 | 东软集团股份有限公司 | 一种通用型输入输出口虚拟化的方法、装置及车机 |
US11743155B2 (en) * | 2019-11-14 | 2023-08-29 | Trideum Corporation | Systems and methods of monitoring and controlling remote assets |
US11556486B2 (en) * | 2020-07-02 | 2023-01-17 | Qualcomm Incorporated | Versatile control messaging scheme for radio coexistence management |
US11601254B2 (en) * | 2020-09-18 | 2023-03-07 | Sony Semiconductor Solutions Corporation | Communication apparatus, communications system, and communication method |
US11513991B2 (en) * | 2020-10-01 | 2022-11-29 | Qualcomm Incorporated | Batch operation across an interface |
Family Cites Families (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20030061431A1 (en) * | 2001-09-21 | 2003-03-27 | Intel Corporation | Multiple channel interface for communications between devices |
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 |
US20170168966A1 (en) | 2015-12-10 | 2017-06-15 | Qualcomm Incorporated | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces |
US10592441B2 (en) * | 2017-05-10 | 2020-03-17 | Qualcomm Incorporated | Bus communication enhancement based on identification capture during bus arbitration |
US20180359117A1 (en) * | 2017-06-12 | 2018-12-13 | Qualcomm Incorporated | Virtual channel instantiation over vgi/vgmi |
US20190050366A1 (en) * | 2017-08-14 | 2019-02-14 | Qualcomm Incorporated | Device, event and message parameter association in a multi-drop bus |
-
2018
- 2018-09-26 US US16/142,419 patent/US10515044B2/en active Active
- 2018-09-27 TW TW107134110A patent/TW201923603A/zh unknown
- 2018-09-27 WO PCT/US2018/053111 patent/WO2019089162A1/en active Application Filing
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11372793B2 (en) | 2020-06-19 | 2022-06-28 | Nuvoton Technology Corporation | System on chip and control method thereof |
TWI808328B (zh) * | 2020-06-19 | 2023-07-11 | 新唐科技股份有限公司 | 系統單晶片及控制方法 |
US11698880B2 (en) | 2020-06-19 | 2023-07-11 | Nuvoton Technology Corporation | System on chip and device layer |
Also Published As
Publication number | Publication date |
---|---|
US10515044B2 (en) | 2019-12-24 |
US20190129881A1 (en) | 2019-05-02 |
WO2019089162A1 (en) | 2019-05-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20170168966A1 (en) | Optimal latency packetizer finite state machine for messaging and input/output transfer interfaces | |
TW201923603A (zh) | 異質虛擬通用輸入/輸出 | |
US10642778B2 (en) | Slave master-write/read datagram payload extension | |
US10482055B2 (en) | Hardware event priority sensitive programmable transmit wait-window for virtual GPIO finite state machine | |
US10467154B2 (en) | Multi-port multi-sideband-GPIO consolidation technique over a multi-drop serial bus | |
US10635630B2 (en) | Flexible protocol and associated hardware for one-wire radio frequency front-end interface | |
US20180329837A1 (en) | Input/output direction decoding in mixed vgpio state exchange | |
US20180357199A1 (en) | Slave-to-slave communication in i3c bus topology | |
TW201923605A (zh) | 多分支匯流排中之裝置,事件及訊息參數相關性 | |
US20190227971A1 (en) | Architecture for consolidating multiple sources of low-bandwidth data over a serial bus | |
US10496562B1 (en) | Low latency virtual general purpose input/output over I3C | |
TW202219781A (zh) | 跨介面批處理操作 | |
US10733121B2 (en) | Latency optimized I3C virtual GPIO with configurable operating mode and device skip | |
US10592441B2 (en) | Bus communication enhancement based on identification capture during bus arbitration | |
US20190171588A1 (en) | Multi-point virtual general-purpose input/output (mp-vgi) for low latency event messaging | |
TWI685749B (zh) | 用於通信波形的短位址模式 | |
US20180357067A1 (en) | In-band hardware reset for virtual general purpose input/output interface |