TW202024931A - I3c匯流排上的緊急帶內中斷 - Google Patents
I3c匯流排上的緊急帶內中斷 Download PDFInfo
- Publication number
- TW202024931A TW202024931A TW108132952A TW108132952A TW202024931A TW 202024931 A TW202024931 A TW 202024931A TW 108132952 A TW108132952 A TW 108132952A TW 108132952 A TW108132952 A TW 108132952A TW 202024931 A TW202024931 A TW 202024931A
- Authority
- TW
- Taiwan
- Prior art keywords
- line
- data line
- clock
- serial bus
- interrupt
- 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/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
- G06F13/26—Handling requests for interconnection or transfer for access to input/output bus using interrupt with priority control
-
- 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
-
- 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/368—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control
- G06F13/374—Handling requests for interconnection or transfer for access to common bus or bus system with decentralised access control using a self-select method with individual priority code comparator
-
- 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
Abstract
描述了使得能夠經由I3C串列匯流排來傳達帶內重置信號的系統、方法和裝置。一種在從設備處執行的方法包括以下步驟:在已經在I3C串列匯流排上提供開始條件之後,在從該I3C串列匯流排的時鐘線接收到第一時鐘脈衝之前將該I3C串列匯流排的資料線從高狀態驅動到低狀態,其中將該資料線從高狀態驅動到低狀態在該資料線上產生初始脈衝;在第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝;及將該資料線驅動為低,直至在該複數個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後在該時鐘線上偵測到第一時鐘脈衝的上升沿。
Description
本專利申請案主張於2018年9月18日提出申請的題為「URGENT IN-BAND INTERRUPTS ON AN I3C BUS(I3C匯流排上的緊急帶內中斷)」的非臨時申請案第16/134,559的優先權,該申請案被轉讓給本案受讓人並由此經由援引明確納入於此。
本案大體而言係關於處理電路與周邊設備之間的介面,尤其係關於提供串列匯流排上的加速型帶內中斷能力。
行動通訊設備可包括各種各樣的元件,包括電路板、積體電路(IC)元件及/或晶片上系統(SoC)元件。該等元件可包括經由串列匯流排進行通訊的處理電路、使用者介面元件、儲存和其他周邊元件。串列匯流排可根據標準化或專用協定來操作。
例如,積體電路間串列匯流排(其亦可被稱為I2C匯流排或I2
C匯流排)是意欲用於將低速周邊設備連接到處理器的串列單端電腦匯流排。在一些實例中,串列匯流排可採用多主控協定,其中一或多個設備可用作在串列匯流排上傳輸的不同訊息的主設備和從設備。資料可被序列化並在兩條雙向導線上被傳輸,該兩條雙向導線可攜帶資料信號(其可以攜帶在串列資料線(SDA)上)和時鐘信號(其可以攜帶在串列時鐘線(SCL)上)。
在一個實例中,在I3C匯流排上使用的協定從I2C協定匯出某些實現態樣,同時提高輸送量和對串列匯流排的控制。I2C的原始實現在標準模式操作中支援至高達每秒100千位元(100 kbps)的資料信號傳遞速率,其中較新近的標準在快速模式操作中支援400 kbps的速度,並且在快速模式+操作中支援每秒1兆位元(Mbps)的速度。I3C協定可以經由更高的傳輸器時脈速率、使用雙倍資料速率編碼、在兩條或更多條導線的信號傳遞狀態中編碼資料,以及經由其他編碼技術來增大串列匯流排上的可用頻寬。
在習知系統中,耦合到串列匯流排的設備可支援帶外信號傳遞,諸如由從設備使用專用信號導線或跡線發送的中斷信號。隨著行動通訊設備的功能性逐步升級,專用中斷信號導線對於設計者而言越來越不可用。已引入帶內中斷能力以准許一個設備中斷另一設備。當多個設備併發地斷言中斷時,較低優先順序設備可能無法從已中斷的設備獲得服務。不斷需要改良以提高資料輸送量、減少等待時間以及改良控制信號傳遞。
本案的某些態樣係關於在串列匯流排根據I3C協定操作時使用帶內信號傳遞來提供增強型中斷能力的系統、裝置、方法和技術。匯流排主控和從設備可被調適成在耦合到I3C串列匯流排時實現該等技術。
在本案的各態樣,一種在從設備處執行的資料通訊方法包括以下步驟:在已經在I3C串列匯流排上提供開始條件之後,在從該I3C串列匯流排的時鐘線接收到第一時鐘脈衝之前將該I3C串列匯流排的資料線從高狀態驅動到低狀態。該方法進一步包括以下步驟:將該資料線從高狀態驅動到低狀態在該資料線上產生初始脈衝;在第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝;及將該資料線驅動為低,直至在該複數個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後在該時鐘線上偵測到第一時鐘脈衝的上升沿。
在一個態樣,該方法包括以下步驟:在將該資料線從高狀態驅動到低狀態之前使將該從設備耦合到該資料線匯流排的線驅動器進入汲極開路操作模式。在一個態樣,將該資料線驅動為低抑制由一或多個其他從設備在該資料線上傳輸的脈衝。在一個態樣,該方法包括以下步驟:終止該資料線上的傳輸,直至在偵測到該複數個附加脈衝中的一者已被抑制之後在該I3C串列匯流排上提供另一開始條件。在一個態樣,該方法包括以下步驟:在該複數個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後參與中斷服務活動。在一個態樣,該複數個附加脈衝包括根據由從設備維護的配置資訊提供的數個脈衝。
在某些態樣,該方法包括以下步驟:在不成功地參與其次數超過為從設備定義的中斷服務仲裁程序的閾值最大次數的數次中斷服務仲裁程序之後啟動緊急帶內中斷請求。緊急帶內中斷請求可經由在從該時鐘線接收到第一時鐘脈衝之前將該資料線從高狀態驅動到低狀態來啟動。該方法可包括以下步驟:在啟動緊急帶內中斷請求之後參與緊急中斷標識和仲裁過程。緊急中斷標識和仲裁過程可基於與參與緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定。
在本案的各態樣,一種調適成或配置成用作從設備的裝置包括:處理器;及線驅動器,其被調適成將該裝置耦合到I3C串列匯流排的資料線並且能被配置成用於汲極開路操作模式。該處理器可被配置成:在已經在I3C串列匯流排上提供開始條件之後,在從該I3C串列匯流排的時鐘線接收到第一時鐘脈衝之前使該線驅動器將該資料線從高狀態驅動到低狀態。將該資料線從高狀態驅動到低狀態在該資料線上產生初始脈衝。該處理器可被配置成:在第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝;及將該資料線驅動為低,直至該複數個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後在該時鐘線上偵測到第一時鐘脈衝的上升沿。
在本案的各態樣,一種在匯流排主控處執行的資料通訊方法包括以下步驟:將I3C串列匯流排的時鐘線驅動為低以完成該I3C串列匯流排上的開始條件;及在該開始條件已完成之後並且在第一時鐘脈衝在該時鐘線上被傳輸之前偵測到該I3C串列匯流排的資料線已經被另一設備從高狀態驅動到低狀態。在該資料線被從高狀態驅動到低狀態時,從該資料線接收到初始脈衝。該方法進一步包括以下步驟:在第一時鐘脈衝在該時鐘線上被傳輸之前從該資料線接收一或多個附加脈衝,在該資料線處於低狀態達最小時間歷時之後在該時鐘線上傳輸第一時鐘脈衝,以及基於該初始脈衝和該一或多個附加脈衝的記數來選擇用於中斷服務的從設備。
在一個態樣,該方法包括以下步驟:在將該I3C串列匯流排的該時鐘線驅動為低以完成該開始條件之前使將該匯流排主控耦合到該資料線的線驅動器進入汲極開路操作模式。在一個態樣,該方法包括以下步驟:在該I3C串列匯流排上啟動該開始條件。在一個態樣,該方法包括以下步驟:經由使用該記數對配置資訊表進行索引來決定被選擇用於中斷服務的該從設備的唯一性位址。
在某些態樣,該方法包括以下步驟:在該時鐘線上傳輸第一時鐘脈衝之後啟動涉及被選擇用於中斷服務的該從設備的中斷服務活動。該方法可包括以下步驟:經由使用該記數對配置資訊表進行索引來選擇中斷服務活動。該方法可包括以下步驟:將配置資訊寫入一或多個從設備,該配置資訊包括在緊急中斷標識和仲裁過程期間將要由該一或多個從設備傳輸的數個脈衝。對於每個從設備,在緊急中斷標識和仲裁過程期間將要傳輸的脈衝包括初始脈衝和數個附加脈衝。
在本案的各態樣,一種調適成或配置成用作匯流排主控的裝置包括:處理器;第一線驅動器,其被調適成將該裝置耦合到I3C串列匯流排的時鐘線;及第二線驅動器,其被調適成將該裝置耦合到該I3C串列匯流排的資料線,並且第二線驅動器能被配置成用於汲極開路操作模式。該處理器可被配置成:使第一線驅動器將該I3C串列匯流排的該時鐘線驅動為低以完成該I3C串列匯流排上的開始條件;在該開始條件已完成之後並且在第一時鐘脈衝在該時鐘線上被傳輸之前偵測到該I3C串列匯流排的該資料線已經被另一設備從高狀態驅動到低狀態,其中在該資料線被從高狀態驅動到低狀態時從該資料線接收到初始脈衝;在第一時鐘脈衝在該時鐘線上被傳輸之前從該資料線接收一或多個附加脈衝;在該資料線處於低狀態達最小時間歷時之後使第一線驅動器在該時鐘線上傳輸第一時鐘脈衝;及基於該初始脈衝和該一或多個附加脈衝的記數來選擇用於中斷服務的從設備。
以下結合附圖闡述的詳細描述意欲作為各種配置的描述,而無意表示可實踐本文所描述的概念的僅有配置。本詳細描述包括具體細節以提供對各種概念的透徹理解。然而,對於熟習此項技術者將顯而易見的是,沒有該等具體細節亦可以實踐該等概念。在一些例子中,以方塊圖形式圖示眾所周知的結構和元件以便避免湮沒此類概念。
現在將參照各種裝置和方法提供本發明的若干態樣。該等裝置和方法將在以下詳細描述中進行描述並在附圖中由各種方塊、模組、元件、電路、步驟、過程、演算法等(統稱為「元素」)來圖示。該等元素可使用電子硬體、電腦軟體,或其任何組合來實現。此類元素是實現成硬體還是軟體取決於具體應用和加諸於整體系統上的設計約束。概覽
包括多個SoC的元件和其他IC元件常常採用串列匯流排來將應用處理器或其他主機設備與數據機和其他周邊設備連接在一起。串列匯流排可根據由標準組織所定義的規範和協定來操作。在一個實例中,串列匯流排可根據定義信號與傳輸之間的時序關係的I3C協定來操作。在一些實現中,受限於根據I2C協定進行通訊的設備可以與根據I3C協定進行通訊的設備共存於串列匯流排上。
某些I3C從設備可被配置成不時地斷言帶內中斷。匯流排主控在優先順序基礎上服務帶內中斷請求。具有最高優先順序的中斷斷言從設備首先被服務。當較高優先順序設備在每一中斷機會皆爭用時,低優先順序設備可能因缺乏而需要(starved of)服務。
本文揭示的某些態樣提供用於使得低優先順序從設備能夠被臨時提升到較高層級優先順序排序的技術,其中經提升的設備可以參與緊急中斷仲裁過程,該緊急中斷仲裁過程可先占由在較低層級優先順序排序中操作的設備所斷言的中斷請求。在一些實現中,緊急帶內中斷仲裁過程在習知中斷請求仲裁過程可被執行之前被啟動,從而允許經提升的從設備有更好的機會來獲得中斷服務。在一個實例中,在已經在I3C串列匯流排上提供了開始條件之後,經提升的從設備可在從I3C串列匯流排的時鐘線接收到第一時鐘脈衝之前將I3C串列匯流排的資料線從高狀態驅動到低狀態,其中將該資料線從高狀態驅動到低狀態在該資料線上產生初始脈衝。隨後,經提升的從設備可在第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝,並且可將該資料線驅動為低,直至該複數個附加脈衝中的每一者在該資料線上被成功傳輸之後在該時鐘線上偵測到第一時鐘脈衝的上升沿。具有串列資料連結的裝置的實例
根據某些態樣,串列資料連結可被用於互連作為裝置(諸如蜂巢式電話、智慧型電話、通信期啟動協定(SIP)電話、膝上型設備、筆記本、小筆電、智慧型電腦、個人數位助理(PDA)、衛星無線電設備、全球定位系統(GPS)設備、智慧家用設備、智慧照明設備、多媒體設備、視訊設備、數位音訊播放機(例如,MP3播放機)、相機、遊戲控制台、娛樂設備、車載元件、可穿戴計算設備(例如,智慧手錶、健康或健身追蹤器、眼鏡等)、電器、感測器、安全設備、自動售貨機、智慧型儀器表、無人機、多旋翼飛行器,或任何其他類似的功能設備)的子元件的電子設備。
圖1圖示了可採用資料通訊匯流排的裝置100的實例。裝置100可包括處理電路102,其具有可在一或多個ASIC中或在SoC中實現的多個電路或設備104、106及/或108。在一個實例中,裝置100可以是通訊設備,並且處理電路102可包括在ASIC 104中提供的處理設備、一或多個周邊設備106,以及收發機108,該收發機108使得該裝置能夠經由天線124與無線電存取網路、核心存取網路、網際網路及/或另一網路進行通訊。
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亦可以可操作地耦合到外部設備,諸如天線124、顯示器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的信號傳遞狀態或信號傳遞狀態轉變中。
圖3圖示了裝置300,其中各種各樣的設備304、306、308、310、312、314和316被連接到串列匯流排302,並且其中I3C設備304、312、314和316可被調適成或配置成使用I3C協定在串列匯流排302上獲得較高的資料傳輸速率。I3C設備304、312、314和316可與習知配置的I2C設備306、308和310共存。I3C設備304、312、314和316可以替換地或附加地按期望或依須求使用習知I2C協定來通訊。
當主設備304在控制串列匯流排302時作為I3C匯流排主控來操作時,串列匯流排302能夠以較高的資料傳輸速率來操作。在所圖示的實例中,單個主設備304可以在I2C模式和I3C模式中用作匯流排主控,該I3C模式支援超過在根據習知I2C協定來操作串列匯流排302時達成的資料傳輸速率的資料傳輸速率。用於較高資料率訊務的信號傳遞可以利用I2C協定的某些特徵以使得能夠在串列匯流排302上攜帶較高資料率訊務,而無需損害耦合到串列匯流排302的舊式I2C設備306、308、310和312的功能性。串列匯流排中的信號傳遞
I3C規範中所定義的某些信號傳遞是從I2C協定匯出的或以其他方式基於I2C協定。圖4包括圖示習知I2C匯流排上的SDA導線402與SCL導線404之間的關係的時序圖400和420。第一時序圖400圖示了在習知配置的I2C匯流排上傳輸資料之時在SDA導線402與SCL導線404之間的時序關係。SCL導線404提供可被用來對SDA導線402中的資料進行取樣的一系列脈衝。該等脈衝(包括例如脈衝412)可被定義為期間在接收器處決定SCL導線404處於高邏輯狀態的時間。當資料傳輸期間SCL導線404處於高邏輯狀態時,請求SDA導線402上的資料是穩定且有效的;當SCL導線404處於高邏輯狀態時,不准許SDA導線402的狀態改變。
關於習知I2C協定實現的規範(其可被稱為「I2C規範」)定義了SCL導線404上的脈衝412的高時段的最小歷時410(t高
)。I2C規範亦定義了脈衝412發生前的設立時間406(tSU
)的最小歷時,以及脈衝412終止後的保持時間408(t保持
)的最小歷時。SDA導線402的信號傳遞狀態預期在設立時間406和保持時間408期間是穩定的。設立時間406定義了在SDA導線402上的信號傳遞狀態之間的轉變416之後、直至SCL導線404上的脈衝412的上升沿抵達為止的最大時間段。保持時間408定義了在SCL導線404上的脈衝412的下降沿之後、直至SDA導線402上的信號傳遞狀態之間的下一轉變418為止的最小時間段。I2C規範亦定義了SCL導線404的低時段(t低
)的最小歷時414。在SCL導線404在脈衝412的前沿之後處於高邏輯狀態時的歷時410(t高
)內,SDA導線402上的資料通常是穩定的及/或可被擷取。
圖4的第二時序圖420圖示了在習知I2C匯流排上的資料傳輸之間在SDA導線402與SCL導線404上的信號傳遞狀態。I2C協定提供了8位元資料(位元組)和7位元位址的傳輸。接收器可經由將SDA導線402驅動為低邏輯狀態達一個時鐘週期來認可傳輸。低信號傳遞狀態表示指示成功接收的認可(ACK),而高信號傳遞狀態表示指示接收失敗或接收錯誤的否定認可(NACK)。
開始條件422被定義為准許當前匯流排主控發信號傳遞通知資料將要被傳輸。開始條件422在SCL導線404為高之時在SDA導線402從高轉變為低時發生。I2C匯流排主控最初傳輸開始條件422(其亦可被稱為開始位元),繼之以該I2C匯流排主控希望與其交換資料的I2C從設備的7位元位址。在該位址之後是指示要發生讀操作還是寫操作的單個位元。被定址的I2C從設備(若可用)用ACK位元來回應。若沒有I2C從設備作出回應,則I2C匯流排主控可將SDA導線402的高邏輯狀態解讀為NACK。主設備和從設備隨後可在訊框中交換資訊位元組,其中該等位元組被序列化以使得首先傳輸最高有效位元(MSB)。當I2C主設備傳輸停止條件424時,位元組傳輸完成。停止條件424在SCL導線404為高之時在SDA導線402從低轉變為高時發生。I2C規範請求SDA導線402的所有轉變在SCL導線404為低時發生,並且例外可被視為開始條件422或停止條件424。
圖5包括圖示當串列匯流排在I3C規範所定義的單資料速率(SDR)操作模式中操作時該串列匯流排上的信號傳遞的時序圖500。在串列匯流排的第一導線(資料導線或SDA 502)上傳輸的資料可使用在串列匯流排的第二導線(時鐘導線或SCL 504)上傳輸的時鐘信號來擷取。在資料傳輸期間,當SCL 504處於高電壓位準時,SDA 502的信號傳遞狀態512預期在各脈衝514的歷時內保持恆定。當SCL 504處於高電壓位準時SDA 502上的轉變指示開始條件506、停止條件508或者重複的開始510。
在I3C串列匯流排上,開始條件506被定義為准許當前匯流排主控發信號傳遞通知資料將要被傳輸。開始條件506在SCL 504為高之時在SDA 502從高轉變為低時發生。匯流排主控可以使用停止條件508來發信號傳遞通知傳輸的完成及/或終止。停止條件508在SCL 504為高之時在SDA 502從低轉變為高時被指示。重複的開始510可由希望在完成第一傳輸之後啟動第二傳輸的匯流排主控來傳輸。重複的開始510取代停止條件508來傳輸,並且具有開始條件506緊跟在停止條件508之後的意義。重複的開始510在SCL 504為高之時在SDA 502從高轉變為低時發生。
匯流排主控可在傳輸從設備的位址、命令,及/或資料之前傳輸啟動符522,該啟動符522可以是開始條件506或重複的開始510。圖5圖示了由匯流排主控進行的命令碼傳輸520。在傳輸中,啟動符522之後可以是指示將要跟隨有命令碼526的預定義命令524。命令碼526可例如導致串列匯流排轉變到期望操作模式。在一些例子中,資料528可被傳輸。命令碼傳輸520之後可以是結束字元530,該結束字元530可以是停止條件508或重複的開始510。用於串列匯流排的中斷機制
I3C設備可以使用帶內中斷來警告系統的其他部分及/或尋求處理器的注意。帶內中斷是經由I3C匯流排上信號傳遞的組合來斷言的,並且帶內中斷的使用可以減小設備使用的實體通用輸入/輸出引腳的數目,從而降低成本和複雜性。I3C規範定義帶內中斷、探索、枚舉和動態位址分配程序,其通常在相容I2C的SDR操作模式中執行。帶內中斷和相關聯的仲裁過程可以在某些位址標頭的傳輸期間執行。I3C協定提供將要在開始條件506或重複的開始510之後傳輸的位址標頭。I3C協定將對帶內中斷的斷言和相關聯的仲裁過程限制於在開始條件506(包括由除當前匯流排主設備之外的設備啟動的開始條件506)之後傳輸的位址標頭。
圖6是圖示與根據I3C協定在串列匯流排上提供的可仲裁位址標頭相關聯的時序的實例的示圖600。在一個實例中,主設備可以經由在串列匯流排上啟動開始條件606來啟動事務,藉此主設備在SCL 604保持為高之時將SDA 602從高驅動為低。在另一實例中,期望斷言中斷的從設備可以經由在SCL 604已經為高達某一時間段之後將SDA 602從高驅動為低來啟動開始條件606。主設備經由將SCL 604驅動為低來完成開始條件606。隨後,主設備在SCL 604上傳輸時鐘信號,以控制SDA 602的後續傳輸的時序。經由協定,7位元從設備位址610在開始條件606之後在SDA 602上被傳輸傳輸。當沒有中斷被斷言時,主設備可傳輸包括7位元從設備位址610繼之以寫/讀命令位元612的命令,該寫/讀命令位元612在為低時指示對從設備的寫入,而在為高時指示從從設備的讀取。從設備可以經由在下一時鐘區間(ACK/NACK 614)中將SDA 602驅動為低作為認可(ACK)來進行回應。若從設備未回應,則SDA 602被拉高,並且主設備將缺少回應視為否定認可(NACK),在此情形中,主設備可以用停止條件來終止該事務。
當位址標頭在開始條件606之後被傳輸時,從設備可以經由參與匯流排仲裁過程來爭用對串列匯流排的存取。在串列匯流排閒置之時,從設備可以將SDA 602驅動為低以啟動開始條件606。在停止條件已被傳輸之後並且在開始條件606被傳輸之前,串列匯流排閒置。不管啟動者的標識如何,主設備將SCL 604驅動為低以完成開始條件606並啟動仲裁。倘若SDA 602保持為高達某一時間段,則從設備釋放SDA 602並開始仲裁。在匯流排仲裁程序期間,將匯流排主控耦合到SDA 602的線驅動器處於汲極開路模式。匯流排仲裁程序包括枚舉階段,以標識已斷言帶內中斷或正在以其他方式請求中斷服務的從設備。汲極開路模式的使用准許多個從設備驅動SDA 602,以便標識請求中斷服務的最高優先順序設備。
一或多個從設備可以在SCL 604被驅動為低之後驅動SDA 602,以便傳輸其各自相應的位址。開始條件606和至少第一位址位元,以及ACK/NACK 614在汲極開路模式中在SDA 602上被發出,以使得多個線驅動器可以在仲裁期間活躍。主設備可在將SCL 604驅動為低之前已將其線驅動器置於汲極開路模式中,並且在串列匯流排閒置時使用上拉電阻器等將SDA 602和SCL 604兩者上拉至高電壓位準。任何具有高優先順序訊息或待決服務請求的設備皆可以斷言帶內中斷請求。
仲裁過程是基於7位元從設備位址610的值來決定的,其定義諸從設備的優先順序。與較高值從設備位址相比,較低值從設備位址向其相關聯的從設備提供更高的優先順序。每個從設備以最高有效位元(A[6])開始在SDA 502上傳輸其從設備位址,並且可繼續傳輸位址位元,直至另一從設備蓋寫已傳輸的位元。設為邏輯「0」的位址位元導致從設備的線驅動器主動地將SDA 502拉低,而設為邏輯「1」的位址位元在上拉電阻器將SDA 502拉高時被傳輸。相應地,較低值位元蓋寫較高值位元。最高優先順序設備具有最低的位址,並且可以成功傳輸其從設備位址從而贏得仲裁過程,是因為最高優先順序設備是第一個將SDA 602驅動為低的設備,而較低優先順序設備將使得SDA 602保持為高。
在某些應用中,從設備可能無法及時地贏得帶內中斷仲裁過程。從設備可能由於存在一或多個被指派了更高優先順序的其他設備而被無限地阻止贏得仲裁過程,其中每個更高優先順序的設備持續要求存取串列匯流排以使得較低優先順序從設備因缺乏而需要串列匯流排上的服務。較低優先順序從設備可能由於缺乏服務的狀況而不能傳輸請求及/或資料。
本文揭示的某些態樣提供了較低優先順序從設備藉此可以在參與所配置的最大次數的不成功仲裁過程之後及/或在經由帶內中斷獲得服務時的最大延遲之後有效地獲取較高優先順序的技術。該等技術可以在不損害舊式設備在串列匯流排上操作的能力的情況下實現。
在一個實例中,匯流排主設備可以保留某些較高優先順序的動態位址,以使得能夠將各從設備臨時評估到較高的優先順序層級。動態位址是在系統初始化期間及/或一或多個設備在I3C匯流排上變為活躍之後執行的枚舉過程期間指派的。可以在設備製造或系統組裝期間為各種設備指派靜態位址。當從設備在I3C匯流排上變為活躍時,當前匯流排主控可以根據由應用程式及/或在系統配置期間設立的策略向該從設備指派動態位址。
根據本文揭示的某些態樣,匯流排主設備可以指派在指定起始從設備位址處開始的動態位址。在一個實例中,匯流排主設備可以指派0x3F-0xFF範圍內的動態位址,從而保留較低的位址以用於包括實現緊急中斷的用途。
圖7圖示了根據本文揭示的某些態樣來提供的緊急中斷能力的操作的實例。時序圖700係關於當從設備獲取到較高優先順序及/或被提升到較高的優先順序層級以參與帶內中斷仲裁時I3C匯流排的操作。在該實例中,已經在串列匯流排上提供了開始條件712。開始條件712在串列匯流排閒置之時可能已經由匯流排主控啟動或者可能已經由從設備啟動。開始條件712在SCL 702為高之時在SDA 704、706、708、710被驅動為低時被啟動。開始條件712在匯流排主控將SCL 702驅動為低時完成。
根據某些態樣,匯流排主控可被調適成在完成開始條件712之後將時鐘脈衝726、728的傳輸延遲達一時間段,以提供足以標識任何緊急中斷請求的帶內中斷標識時段714。在習知帶內中斷中,請求方從設備在開始條件712之後釋放SDA 704、706、708、710及/或監視串列匯流排,以決定SDA 704、706、708、710是否(例如,在時間T1 730)返回到高狀態,從而指示可以進行位址仲裁。
從設備可被調適成:經由在SDA 704、706、708、710在開始條件712後返回到高狀態之後並且在第一時鐘脈衝726在SCL 702上被傳輸之前,在時間T2 734將SDA 704、706、708、710驅動為低來斷言緊急中斷請求。在時間T2 734將SDA 704、706、708、710驅動為低在SDA 704、706、708、710上產生寬度為TPul
732的脈衝。主設備偵測到SDA 704、706、708、710為低,並決定正在請求緊急中斷。主設備可以啟動用於進一步延遲時鐘脈衝726、728的傳輸的計時器或計數器。從設備可以在時間T3 736釋放SDA 704、706、708、710,並且SDA 704、706、708、710在汲極開路模式期間由耦合到SDA 704、706、708、710的上拉電阻器拉高。以下是緊急中斷標識和仲裁過程。
在主設備恢復在SCL 702上傳輸時鐘脈衝726、728之前,每個尋求緊急中斷服務的設備皆嘗試在SDA 704、706、708、710上提供數個脈衝。在SDA 704、706、708、710上傳輸的時鐘脈衝的數目指示應當首先被服務的從設備。圖7提供了四個實例,每個實例與由已被指派了不同優先順序的從設備所傳輸的不同數目的脈衝計數有關。在第一實例中,兩個脈衝的群組716在SDA 704上被傳輸。在第二實例中,三個脈衝的群組718在SDA 706上被傳輸。在第三實例中,四個脈衝的群組720在SDA 708上被傳輸。第四實例關於任何數目的(N個)脈衝722在SDA 710上被傳輸。
從設備經由釋放SDA 704、706、708、710並允許上拉電阻器將SDA 704、706、708、710拉高來在SDA 704、706、708、710上提供脈衝。當從設備成功提供其相關聯的脈衝數時,其將SDA 704、706、708、710驅動為低,直至偵測到SCL 702上的第一時鐘脈衝726的上升沿724。成功的從設備經由抑制SDA 704、706、708、710上的其他脈衝來封鎖正在尋求緊急中斷服務的任何其餘從設備。該等其他設備偵測到對至少一個脈衝的抑制,並可中止參與緊急中斷標識和仲裁過程。
主設備可以在時間T4 738開始在SCL 702上傳輸時鐘脈衝726、728,從而終止帶內中斷標識時段714。帶內中斷標識時段714的歷時可以是可變的、固定的及/或受配置所限的。在一個實例中,帶內中斷標識時段714具有固定歷時,並且在SDA 704、706、708、710在開始條件712之後轉變為高時的T1 730開始且在T4 738結束。在另一實例中,帶內中斷標識時段714具有在SDA 704、706、708、710被拉低以指示緊急中斷請求時的T2 734開始的固定歷時。在另一實例中,帶內中斷標識時段714是可變的並且基於在SDA 704、706、708、710上偵測到的每個脈衝處重啟的計時器或計數器。在後一實例中,該計時器或計數器可以在SDA 704、706、708、710上偵測到的每個脈衝的正向邊沿或負向邊沿上被重啟,以便提供最後脈衝的傳輸與SCL 702上時鐘脈衝726、728的傳輸的開始之間的延遲。可變的帶內中斷標識時段714可受限於由配置所定義的最大歷時。
帶內中斷標識時段714期間在SDA 704、706、708、710上傳輸的脈衝數可以指示贏得緊急中斷標識和仲裁過程的設備的從設備標識符。在一些實現中,帶內中斷標識時段714期間在SDA 704、706、708、710上傳輸的脈衝數可以傳達附加資訊。例如,帶內中斷標識時段714期間在SDA 704、706、708、710上傳輸的脈衝數可以指示或指定將由主設備採取的回應動作。在一些例子中,回應動作可包括從一或多個預先配置的暫存器位址的設備讀取。回應動作可包括對一或多個預先配置的暫存器位址的設備寫入。
主設備中提供的配置表可以將脈衝數與動態指派的從設備位址進行關聯,並且可以進一步指示回應於來自請求方從設備的對緊急中斷服務的請求而將要採取的一或多個動作。配置表可以由應用程式在系統配置期間及/或設備初始化期間提供。
從設備中提供的配置表可以標識可用於供從設備在緊急中斷標識和仲裁過程中使用的一或多個標識。該等標識可以與將要在帶內中斷標識時段714期間在SDA 704、706、708、710上傳輸的脈衝數相關。從設備可以基於回應於對緊急中斷服務的請求而將要採取一或多個期望動作來選擇標識。配置表可以由如由應用程式導引的主設備在系統配置期間及/或設備初始化期間填充。
圖8是圖示與從設備對中斷服務的請求有關的某些態樣的流程圖800。流程圖800係關於在從設備已經決定需要從經由串列匯流排耦合到該從設備的另一設備請求中斷服務之後執行的某些功能及/或過程。串列匯流排可根據I3C協定來操作。
在方塊802處,從設備可啟動用於觸發緊急中斷請求的發出的中斷請求計數器。在所圖示的實例中,中斷請求計數器被設為零並且朝向閾值計數。中斷請求計數器可被配置成遞增或遞減計數。在所圖示的實例中,中斷請求計數器被配置成向上計數。在方塊804處,從設備等待帶內中斷機會。在根據I3C協定來操作的串列匯流排上,帶內中斷機會在已經在串列匯流排上提供開始條件712之後發生。在一些例子中,帶內中斷機會可以由在串列匯流排閒置時將SDA 704、706、708、710驅動為低的從設備建立,由此啟動開始條件712。當帶內中斷機會出現時,從設備可以斷言中斷請求及/或參與在方塊806處開始的仲裁。
在方塊806處,從設備可決定中斷請求計數器是否已經達到或超過閾值。中斷請求計數器追蹤未能贏得習知仲裁過程的次數。閾值可被配置成限制在獲得習知中斷服務時的不成功嘗試的次數。在其他實例中,計數器可以作為限制嘗試獲得習知中斷服務所允許的最大時間的計時器來操作。當中斷請求計數器小於閾值時,則在方塊808處遵循習知仲裁過程,其中從設備使用其動態指派的從設備位址來爭奪中斷服務。若在方塊810處決定從設備已贏得習知仲裁過程並接收到服務,則從設備返回到正常操作。若在方塊810處決定從設備已丟失習知仲裁過程,則從設備可在方塊812處遞增中斷請求計數器,並返回到方塊804以等待另一帶內中斷機會。
當中斷請求計數器已經達到或超過閾值時,則從設備可在方塊814處斷言緊急中斷請求並在緊急中斷標識和仲裁過程中依須求爭用。圖7圖示了緊急中斷標識和仲裁過程的一個實例。若在方塊816處決定從設備已贏得緊急中斷標識和仲裁過程並且隨後接收到服務,則從設備返回到正常操作。若在方塊816處決定從設備已丟失緊急中斷標識和仲裁過程,則從設備可返回到方塊804以等待另一帶內中斷機會。
圖9是圖示與在匯流排主控處接收到的對中斷服務的請求有關的某些態樣的流程圖900。流程圖900係關於在方塊902處當串列匯流排閒置時匯流排主控已經決定SDA 704、706、708、710已被驅動為低之後執行的某些功能及/或過程。匯流排主控可以將SCL 702驅動為低以完成開始條件712並提供帶內中斷機會。在一些例子中,匯流排主控啟動開始條件712以在串列匯流排上進行事務。在其他例子中,從設備啟動開始條件712以獲得中斷服務。串列匯流排可根據I3C協定來操作。
在方塊904處,匯流排主控可監視串列匯流排,直至SDA 704、706、708、710被驅動為低。當SDA 704、706、708、710被驅動為低時,匯流排主控可以將SCL 702驅動為低以完成開始條件712。在SCL 702被驅動為低之後,SDA 704、706、708、710被釋放並由上拉電阻器拉高。此時,將匯流排主控和一或多個從設備耦合到串列匯流排的線驅動器處於汲極開路模式。匯流排主控可以避免在SCL 702上傳輸時鐘脈衝達一時間段。若匯流排在方塊906處決定在已經在SCL 702上提供第一脈衝726的上升沿724時SDA 704、706、708、710保持為高,則匯流排主控可在方塊908處啟動習知仲裁過程。若匯流排在方塊906處決定在已經在SCL 702上提供第一脈衝726的上升沿724之前SDA 704、706、708、710已被驅動為低,則匯流排主控可進行在方塊910處開始的緊急中斷標識和仲裁過程。
在方塊910處,匯流排主控可重置管理或控制帶內中斷標識時段714的歷時的計時器或計數器。匯流排主控可在方塊912處監視該計時器或計數器,並且當該計時器或計數器已期滿或達到閾值時,匯流排主控可以使SCL 702轉變為高以終止帶內中斷標識時段714。匯流排主控可以處理在帶內中斷標識時段714期間獲得的脈衝計數。
在該計時器或計數器已期滿或達到閾值之前,匯流排主控可在方塊914處監視串列匯流排以標識SDA 704、706、708、710上的脈衝,並且匯流排主控可維持對所標識出的脈衝的計數。在一些實例中,匯流排主控可以在偵測到SDA 704、706、708、710上的每個脈衝之後重置控制帶內中斷標識時段714的計時器或計數器。在其他例子中,帶內中斷標識時段714的歷時是固定的,並且在該計時器或計數器在方塊910處被重置時開始。
匯流排主控可以根據脈衝計數的值來決定贏得緊急中斷標識和仲裁過程的從設備的從設備位址。匯流排主控可以使用脈衝計數來索引或以其他方式引用將從設備與脈衝計數相關聯的一或多個表918。匯流排主控可以基於一或多個表中提供的資訊來決定將要針對獲勝方從設備採取的動作。處理電路和方法的實例
圖10是圖示採用可被配置成執行本文揭示的一或多個功能的處理電路1002的裝置1000的硬體實現的實例的示圖。根據本案的各態樣,如本文揭示的元素,或元素的任何部分,或者元素的任何組合可使用處理電路1002來實現。處理電路1002可包括一或多個處理器1004,其由硬體和軟體模組的某種組合來控制。處理器1004的實例包括微處理器、微控制器、數位信號處理器(DSP)、SoC、ASIC、現場可程式設計閘陣列(FPGA)、可程式設計邏輯設備(PLD)、狀態機、定序器、閘控邏輯、個別的硬體電路,以及配置成執行本案通篇描述的各種功能性的其他合適硬體。一或多個處理器1004可包括執行特定功能並且可由諸軟體模組1016之一來配置、增強或控制的專用處理器。一或多個處理器1004可經由在初始化期間載入的軟體模組1016的組合來配置,並且經由在操作期間載入或卸載一或多個軟體模組1016來進一步配置。在各種實例中,處理電路1002可以使用狀態機、定序器、信號處理器及/或通用處理器,或此類設備和電路的組合來實現。
在所圖示的實例中,處理電路1002可以用由匯流排1010一般化地表示的匯流排架構來實現。取決於處理電路1002的具體應用和整體設計約束,匯流排1010可包括任何數目的互連匯流排和橋接器。匯流排1010將包括一或多個處理器1004和儲存1006的各種電路連結在一起。儲存1006可包括記憶體設備和大型儲存設備,並且在本文中可被稱為電腦可讀取媒體及/或處理器可讀取媒體。匯流排1010亦可連結各種其他電路,諸如定時源、計時器、周邊設備、穩壓器和功率管理電路。匯流排介面1008可提供匯流排1010與一或多個收發機1012之間的介面。可針對處理電路所支援的每種聯網技術來提供收發機1012。在一些例子中,多種聯網技術可共享收發機1012中存在的電路系統或處理模組中的一些或全部。每個收發機1012提供用於經由傳輸媒體與各種其他裝置通訊的構件。取決於裝置1000的本質,亦可提供使用者介面1018(例如,按鍵板、顯示器、揚聲器、話筒、操縱桿),並且該使用者介面1018可直接或經由匯流排介面1008通訊地耦合至匯流排1010。
處理器1004可負責管理匯流排1010以及負責一般處理,包括對儲存在電腦可讀取媒體(其可包括儲存1006)中的軟體的執行。在該態樣,處理電路1002(包括處理器1004)可被用來實現本文揭示的方法、功能和技術中的任一種。儲存1006可被用於儲存處理器1004在執行軟體時操縱的資料,並且該軟體可被配置成實現本文揭示的方法中的任一種。
處理電路1002中的一或多個處理器1004可以執行軟體。軟體應當被寬泛地解釋成意為指令、指令集、代碼、程式碼片段、程式碼、程式、副程式、軟體模組、應用程式、軟體應用程式、套裝軟體、常式、子常式、物件、可執行件、執行的執行緒、程序、函數、演算法等,無論其是用軟體、韌體、中間軟體、微代碼、硬體描述語言還是其他術語來述及皆是如此。軟體可按電腦可讀取形式常駐在儲存1006中或常駐在外部電腦可讀取媒體中。外部電腦可讀取媒體及/或儲存1006可包括非暫時性電腦可讀取媒體。作為實例,非暫時性電腦可讀取媒體包括磁儲存設備(例如,硬碟、軟碟、磁條)、光碟(例如,壓縮光碟(CD)或數位多功能光碟(DVD))、智慧卡、快閃記憶體設備(例如,「快閃記憶體驅動器」、卡、棒,或鍵式驅動)、RAM、ROM、可程式設計唯讀記憶體(PROM)、可抹除PROM(EPROM)(包括EEPROM)、暫存器、可移除磁碟,以及用於儲存可由電腦存取和讀取的軟體及/或指令的任何其他合適媒體。作為實例,電腦可讀取媒體及/或儲存1006亦可包括載波、傳輸線,以及可由電腦存取和讀取的用於傳輸軟體及/或指令的任何其他合適媒體。電腦可讀取媒體及/或儲存1006可常駐在處理電路1002中、在處理器1004中、在處理電路1002外部,或跨包括該處理電路1002在內的多個實體分佈。電腦可讀取媒體及/或儲存1006可實施在電腦程式產品中。作為實例,電腦程式產品可包括封裝材料中的電腦可讀取媒體。熟習此項技術者將認識到如何取決於具體應用和加諸於整體系統的整體設計約束來最佳地實現本案通篇提供的所描述的功能性。
儲存1006可以維護以可載入程式碼片段、模組、應用程式、程式等來維護及/或組織的軟體,其在本文中可被稱為軟體模組1016。每個軟體模組1016可包括在安裝或載入到處理電路1002上並由一或多個處理器1004執行時對運行時間映射1014作出貢獻的指令和資料,該運行時間映射1014控制一或多個處理器1004的操作。在被執行時,某些指令可使得處理電路1002執行根據本文中所描述的某些方法、演算法和過程的功能。
一些軟體模組1016可在處理電路1002的初始化期間被載入,並且該等軟體模組1016可配置處理電路1002以使得能夠執行本文揭示的各種功能。例如,一些軟體模組1016可配置處理器1004的內部設備及/或邏輯電路1022,並且可管理對外部設備(諸如收發機1012、匯流排介面1008、使用者介面1018、計時器、數學輔助處理器等)的存取。軟體模組1016可包括控制程式及/或作業系統,其與中斷處理常式和設備驅動程式互動並且控制對由處理電路1002提供的各種資源的存取。該等資源可包括記憶體、處理時間、對收發機1012的存取、使用者介面1018等等。
處理電路1002的一或多個處理器1004可以是多功能的,由此一些軟體模組1016被載入和配置成執行不同功能或相同功能的不同例子。一或多個處理器1004可以被附加地調適成管理回應於來自例如使用者介面1018、收發機1012和設備驅動程式的輸入而啟動的幕後工作。為了支援多個功能的執行,一或多個處理器1004可被配置成提供多工環境,由此複數個功能之每一者功能依須求或按期望實現為由一或多個處理器1004服務的任務集。在一個實例中,多工環境可使用分時程式1020來實現,分時程式1020在不同任務之間傳遞對處理器1004的控制,由此每個任務在完成任何未完結操作之後及/或回應於輸入(諸如中斷)而將對一或多個處理器1004的控制返回給分時程式1020。當任務具有對一或多個處理器1004的控制時,處理電路有效地專用於由與控制方任務相關聯的功能所針對的目的。分時程式1020可包括作業系統、在循環基礎上轉移控制權的主循環、根據各功能的優先順序化來分配對一或多個處理器1004的控制權的功能,及/或經由將對一或多個處理器1004的控制權提供給處置功能來對外部事件作出回應的中斷驅動式主循環。
圖11是圖示在耦合到串列匯流排的從設備處執行的資料通訊方法的流程圖1100。該方法係關於一種帶內中斷技術,該技術增強從設備的優先順序以增大從設備可以存取串列匯流排及/或獲取耦合到串列匯流排的另一設備的注意的可能性。
在方塊1102處,從設備可在已在I3C串列匯流排上提供開始條件後在從I3C串列匯流排的時鐘線(SCL)接收到第一時鐘脈衝之前將I3C串列匯流排的資料線(SDA)從高狀態驅動到低狀態。在一個實例中,開始條件可以由匯流排主控啟動。在另一實例中,開始條件可以由除匯流排主控之外的設備啟動。在一些例子中,從設備可以經由在匯流排閒置之時(如SCL和SDA兩者皆為高達某一時間歷時所指示的)將SDA驅動為低來啟動開始條件。在開始條件之後,SDA可返回到高狀態。將SDA從高狀態驅動到低狀態在資料線上產生初始脈衝。
在方塊1104處,從設備可在第一時鐘脈衝在SCL上被傳輸之前在SDA上傳輸一或多個附加脈衝。在圖7中圖示的四個實例中圖示了附加脈衝的傳輸。脈衝數可以指示緊急中斷請求的源。例如,從設備可被配置成在斷言緊急中斷請求時傳輸k
個脈衝,而偵測到在該緊急中斷請求中傳輸的k
個脈衝的匯流排主控可被配置成基於數目k
與指派給該從設備的唯一性位址之間的關聯來標識該從設備。可以根據由從設備維護的配置資訊來在SDA上提供附加脈衝的數目(亦即,k
-1)。
在方塊1106處,從設備可決定是否所有附加脈衝皆已經被成功傳輸。一或多個脈衝可能會被較高優先順序從設備所抑制,該從設備在所有附加脈衝皆已被傳輸之前主動將SDA驅動為低。較高優先順序從設備嘗試在SDA上傳輸較少的脈衝。例如,較高優先順序從設備可被配置成在斷言緊急中斷請求時傳輸k
-1個脈衝。若尚未在SDA上成功傳輸複數個附加脈衝中的每一者,則從設備可等待下一中斷機會。從設備可終止SDA上的傳輸,直至在偵測到複數個附加脈衝中的一者已被抑制之後在I3C串列匯流排上提供另一開始條件。
在方塊1108處,從設備可將SDA驅動為低,直至複數個附加脈衝中的每一者皆已在SDA上被成功傳輸之後在SCL上偵測到第一時鐘脈衝的上升沿。將資料線驅動為低可以抑制由一或多個其他從設備在資料線上傳輸的脈衝。
在一個實例中,在將資料線從高狀態驅動到低狀態之前,從設備可以使將該從設備耦合到SDA的線驅動器進入汲極開路操作模式。
在複數個附加脈衝已經在SDA上被成功傳輸之後,從設備可在該複數個附加脈衝中的每一者皆已在資料線上被成功傳輸之後參與中斷服務活動。中斷服務活動可包括暫存器讀操作。中斷服務活動可包括暫存器寫操作。中斷服務活動可以使匯流排主控重新配置從設備的特徵。
在某些實例中,從設備可以在不成功地參與其次數超過為從設備定義的中斷服務仲裁程序的閾值最大次數的數次中斷服務仲裁程序之後啟動緊急帶內中斷請求。緊急帶內中斷請求經由在從時鐘線接收到第一時鐘脈衝之前將資料線從高狀態驅動到低狀態來啟動。不成功的中斷服務仲裁程序可根據習知I3C協定來進行。從設備可被配置成在數次失敗的中斷服務仲裁之後及/或在最大時間段已流逝之後斷言緊急中斷請求。在啟動緊急帶內中斷請求之後,從設備可以參與緊急中斷標識和仲裁過程。緊急中斷標識和仲裁過程可基於與參與緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定。
圖12是圖示採用處理電路1202的裝置1200的硬體實現的簡化實例的示圖。處理電路通常具有控制器或處理器1216,及/或可包括一或多個微處理器、微控制器、數位信號處理器、定序器及/或狀態機。處理電路1202可以用由匯流排1210一般化地表示的匯流排架構來實現。取決於處理電路1202的具體應用和整體設計約束,匯流排1210可包括任何數目的互連匯流排和橋接器。匯流排1210將包括一或多個處理器及/或硬體模組(由控制器或處理器1216、模組或電路1204、1206和1208以及處理器可讀取儲存媒體1218表示)的各種電路連結在一起。該裝置可以使用包括可配置線驅動器的實體層電路1214耦合到多導線通訊鏈路。該等可配置線驅動器可以在多種模式中操作,包括推挽和汲極開路模式、單向和雙向模式以及高阻抗(停用)模式。實體層電路1214可被耦合到多導線通訊鏈路1212以支援例如根據I3C協定的通訊。匯流排1210亦可連結各種其他電路,諸如定時源、周邊設備、穩壓器和功率管理電路,該等電路在本領域中是眾所周知的,且因此將不再進一步描述。
處理器1216負責一般性處理,包括執行儲存在處理器可讀取儲存媒體1218上的軟體、代碼及/或指令。該電腦可讀取儲存媒體可包括非暫時性儲存媒體。該軟體在由處理器1216執行時使得處理電路1202執行上文針對任何特定裝置描述的各種功能。電腦可讀取儲存媒體可被用於儲存由處理器1216在執行軟體時操縱的資料。處理電路1202進一步包括模組1204、1206和1208中的至少一者。模組1204、1206和1208可以是在處理器1216中執行的軟體模組、常駐/儲存在處理器可讀取儲存媒體1218中的軟體模組、耦合至處理器1216的一或多個硬體模組,或其某種組合。模組1204、1206和1208可包括微控制器指令、狀態機配置參數,或其某種組合。
在一種配置中,裝置1200包括被調適成管理實體層電路1214(包括可配置線驅動器)的模組及/或電路1204。在一個實例中,處理器1216可以使一或多個模組及/或電路1204修改暫存器中的配置值,該配置值決定諸可配置線驅動器的操作模式。裝置1200可包括被配置成提供在多導線通訊鏈路1212上傳輸的脈衝的模組及/或電路1206。在一個實例中,模組及/或電路1206可以使用時序資訊來使可配置線驅動器交替地驅動和釋放SDA,以在汲極開路模式中提供脈衝。裝置1200可包括被配置成參與帶內中斷請求過程的模組及/或電路1206。在一個實例中,模組及/或電路1206可以執行根據圖11中描述的方法的過程。
在某些實例中,裝置1200具有被調適成將裝置1200耦合到I3C串列匯流排的SDA的線驅動器,其中該線路驅動器可被配置成在汲極開路操作模式中操作。裝置1200可包括處理器1216,其被配置成:在已經在I3C串列匯流排上提供開始條件後在從I3C串列匯流排的SCL接收到第一時鐘脈衝之前使線驅動器將SDA從高狀態驅動到低狀態。將SDA從高狀態驅動到低狀態可能在資料線上產生初始脈衝。處理器1216可被進一步配置成:在第一時鐘脈衝在SCL上被傳輸之前在SDA上傳輸一或多個附加脈衝。處理器1216可被進一步配置成:將SDA驅動為低,直至複數個附加脈衝中的每一者皆已在SDA上被成功傳輸之後在SCL上偵測到第一時鐘脈衝的上升沿。當SDA被驅動為低時,由一或多個其他從設備在SDA上傳輸的脈衝可被抑制。
處理器1216可被進一步配置成:在將資料線從高狀態驅動到低狀態之前,將線驅動器配置成用於汲極開路操作模式。處理器1216可被進一步配置成:終止資料線上的傳輸,直至在偵測到複數個附加脈衝中的一者已被抑制之後在I3C串列匯流排上提供另一開始條件。處理器1216可被進一步配置成:在複數個附加脈衝中的每一者皆已在資料線上被成功傳輸之後,參與中斷服務活動。複數個附加脈衝包括根據由從設備維護的配置資訊提供的數個脈衝。
處理器1216可被進一步配置成:在不成功地參與其次數超過為從設備定義的中斷服務仲裁程序的閾值最大次數的數次中斷服務仲裁程序之後,啟動緊急帶內中斷請求。在一個實例中,緊急帶內中斷請求經由在第一時鐘脈衝在時鐘線上被傳輸之前將資料線從高狀態驅動到低狀態來啟動。處理器1216可被進一步配置成:在啟動緊急帶內中斷請求之後,參與緊急中斷標識和仲裁過程。緊急中斷標識和仲裁過程可基於與參與緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定。
處理器可讀取儲存媒體1218可以是非暫時性儲存媒體並且可以儲存代碼,該代碼在由一或多個處理器執行時使得該一或多個處理器執行本文揭示的過程及/或方法中的一者或多者。例如,處理器可讀取儲存媒體1218可包括用於在已在I3C串列匯流排上提供開始條件後在從I3C串列匯流排的時鐘線接收到第一時鐘脈衝之前將I3C串列匯流排的資料線從高狀態驅動到低狀態的指令。將資料線從高狀態驅動到低狀態可能會在資料線上產生初始脈衝。處理器可讀取儲存媒體1218可包括用於以下操作的指令:在第一時鐘脈衝在時鐘線上被傳輸之前在資料線上傳輸一或多個附加脈衝;及將資料線驅動為低,直至該複數個附加脈衝中的每一者在資料線上被成功傳輸之後在時鐘線上偵測到第一時鐘脈衝的上升沿。
處理器可讀取儲存媒體1218可包括用於以下操作的指令:在將資料線從高狀態驅動到低狀態之前,使將從設備耦合到資料線的線驅動器進入汲極開路操作模式。處理器可讀取儲存媒體1218可包括用於以下操作的指令:終止資料線上的傳輸,直至在偵測到複數個附加脈衝中的一者已被抑制之後在I3C串列匯流排上提供另一開始條件。處理器可讀取儲存媒體1218可包括用於以下操作的指令:在複數個附加脈衝中的每一者皆已在資料線上被成功傳輸之後,參與中斷服務活動。
處理器可讀取儲存媒體1218可包括用於以下操作的指令:在不成功地參與其次數超過為從設備定義的中斷服務仲裁程序的閾值最大次數的數次中斷服務仲裁程序之後,啟動緊急帶內中斷請求。緊急帶內中斷請求可經由在從時鐘線接收到第一時鐘脈衝之前將資料線從高狀態驅動到低狀態來啟動。處理器可讀取儲存媒體1218可包括用於以下操作的指令:在啟動緊急帶內中斷請求之後參與緊急中斷標識和仲裁過程。緊急中斷標識和仲裁過程可基於與參與緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定。
圖13是圖示在耦合到串列匯流排的匯流排主控處執行的資料通訊方法的流程圖1300。該方法係關於一種帶內中斷技術,其增強從設備的優先順序以增加從設備可以存取串列匯流排及/或獲取耦合到串列匯流排的另一設備的注意的可能性。
在方塊1302處,匯流排主控可將I3C串列匯流排的時鐘線(SCL)驅動為低以完成該I3C串列匯流排上的開始條件。在一個實例中,開始條件可以由匯流排主控啟動。在另一實例中,開始條件可以由除匯流排主控之外的設備啟動。在一些例子中,從設備可以經由在匯流排閒置之時(如SCL和SDA兩者皆為高達某一時間歷時所指示的)將SDA驅動為低來啟動開始條件。在開始條件之後,SDA可返回到高狀態。將SDA從高狀態驅動到低狀態在資料線上產生初始脈衝。在將I3C串列匯流排的時鐘線驅動為低以完成開始條件之前,匯流排主控可以使將匯流排主控耦合到資料線的線驅動器進入汲極開路操作模式。匯流排主控可能已經在I3C串列匯流排上啟動了開始條件。
在方塊1304處,在開始條件已完成之後並且在第一時鐘脈衝在時鐘線上被傳輸之前,匯流排主控可偵測到I3C串列匯流排的SDA已經被另一設備從高狀態驅動到低狀態。當SDA被從高狀態驅動到低狀態時,可以從SDA接收初始脈衝。在匯流排主控已經驅動SCL以完成開始條件之後,耦合到串列匯流排的所有設備皆可釋放SDA,從而導致SDA在匯流排處於汲極開路模式時被連接到SDA的上拉電阻器拉高。
在方塊1306處,在第一時鐘脈衝在時鐘線上被傳輸之前,匯流排主控可從資料線接收一或多個附加脈衝。
在方塊1308處,匯流排主控可在資料線處於低狀態達最小時間歷時之後在時鐘線上傳輸第一時鐘脈衝。該時間歷時可被計算以確保不再有更多脈衝將被傳輸。該時間歷時可以是預先配置的,及/或可以是固定的或可變的。
在方塊1310處,匯流排主控可基於初始脈衝和該一或多個附加脈衝的記數來選擇用於中斷服務的從設備。
在一些實例中,匯流排主控可以經由使用記數對配置資訊表進行索引來決定被選擇用於中斷服務的從設備的唯一性位址。匯流排主控可在時鐘線上傳輸第一時鐘脈衝之後啟動涉及被選擇用於中斷服務的從設備的中斷服務活動。匯流排主控可以經由使用記數對配置資訊表進行索引來選擇中斷服務活動。匯流排主控可將配置資訊寫入一或多個從設備,該配置資訊包括在緊急中斷標識和仲裁過程期間將由該一或多個從設備傳輸的脈衝數。對於每個從設備,在緊急中斷標識和仲裁過程期間將傳輸的脈衝可包括初始脈衝和數個附加脈衝。
圖14是圖示採用處理電路1402的裝置1400的硬體實現的簡化實例的示圖。處理電路通常具有控制器或處理器1416,及/或可包括一或多個微處理器、微控制器、數位信號處理器、定序器及/或狀態機。處理電路1402可以用由匯流排1410一般化地表示的匯流排架構來實現。取決於處理電路1402的具體應用和整體設計約束,匯流排1410可包括任何數目的互連匯流排和橋接器。匯流排1410將包括一或多個處理器及/或硬體模組(由控制器或處理器1416、模組或電路1404、1406和1408以及處理器可讀取儲存媒體1418表示)的各種電路連結在一起。該裝置可以使用包括可配置線驅動器的實體層電路1414耦合到多導線通訊鏈路。該等可配置線驅動器可以在多種模式中操作,包括推挽和汲極開路模式、單向和雙向模式以及高阻抗(停用)模式。實體層電路1414可被耦合到多導線通訊鏈路1412以支援例如根據I3C協定的通訊。匯流排1410亦可連結各種其他電路,諸如定時源、周邊設備、穩壓器和功率管理電路,該等電路在本領域中是眾所周知的,且因此將不再進一步描述。
處理器1416負責一般性處理,包括執行儲存在處理器可讀取儲存媒體1418上的軟體、代碼及/或指令。該電腦可讀取儲存媒體可包括非暫時性儲存媒體。該軟體在由處理器1416執行時使得處理電路1402執行上文針對任何特定裝置描述的各種功能。電腦可讀取儲存媒體可被用於儲存由處理器1416在執行軟體時操縱的資料。處理電路1402進一步包括模組1404、1406和1408中的至少一者。模組1404、1406和1408可以是在處理器1416中執行的軟體模組、常駐/儲存在處理器可讀取儲存媒體1418中的軟體模組、耦合至處理器1416的一或多個硬體模組,或其某種組合。模組1404、1406和1408可包括微控制器指令、狀態機配置參數,或其某種組合。
在一種配置中,裝置1400包括被調適成管理實體層電路1414(包括可配置線驅動器)的模組及/或電路1404。在一個實例中,處理器1416可以使一或多個模組及/或電路1404修改暫存器中的配置值,該配置值決定諸可配置線驅動器的操作模式。裝置1400可包括被配置成對接收自多導線通訊鏈路1412或在多導線通訊鏈路1412上偵測到的脈衝進行計數的模組及/或電路1406。裝置1400可包括被配置成管理帶內中斷請求過程的模組及/或電路1406。在一個實例中,模組及/或電路1406可以執行根據圖13中描述的方法的過程。
在某些實例中,裝置1400具有:第一線驅動器,其被調適成將該裝置耦合到I3C串列匯流排的SDA;及第二線驅動器,其被調適成將該裝置耦合到該I3C串列匯流排的SDA。第二線驅動器可以是可針對多種操作模式(包括汲極開路操作模式)來配置的。該裝置進一步包括處理器1416,其被配置成:使第一線驅動器將I3C串列匯流排的時鐘線驅動為低以完成該I3C串列匯流排上的開始條件;及在該開始條件已完成之後並且在第一時鐘脈衝在時鐘線上被傳輸之前,偵測到該I3C串列匯流排的資料線已經被另一設備從高狀態驅動到低狀態。該裝置可能已經在I3C串列匯流排上啟動了開始條件。在資料線被從高狀態驅動到低狀態時,從該資料線接收到初始脈衝。處理器1416被進一步配置成:在第一時鐘脈衝在時鐘線上被傳輸之前從資料線接收一或多個附加脈衝,在資料線處於低狀態達最小時間歷時之後使第一線驅動器在時鐘線上傳輸第一時鐘脈衝,以及基於初始脈衝和該一或多個附加脈衝的記數來選擇用於中斷服務的從設備。
處理器1416可被進一步配置成:在使第一線驅動器將I3C串列匯流排的時鐘線驅動為低以完成開始條件之前將第二線驅動器配置成用於汲極開路操作模式。處理器1416可被進一步配置成:經由使用記數對配置資訊表進行索引來決定被選擇用於中斷服務的從設備的唯一性位址。處理器1416可被進一步配置成:在時鐘線上傳輸第一時鐘脈衝之後啟動涉及被選擇用於中斷服務的從設備的中斷服務活動。處理器1416可被進一步配置成:經由使用記數對配置資訊表進行索引來選擇中斷服務活動。
處理器1416可被進一步配置成:將配置資訊寫入一或多個從設備,該配置資訊包括在緊急中斷標識和仲裁過程期間將由該一或多個從設備傳輸的脈衝數。對於每個從設備,在緊急中斷標識和仲裁過程期間將傳輸的脈衝包括初始脈衝和數個附加脈衝。
處理器可讀取儲存媒體1418可以是非暫時性儲存媒體並且可以儲存代碼,該代碼在由一或多個處理器執行時使得該一或多個處理器執行本文揭示的過程及/或方法中的一者或多者。例如,處理器可讀取儲存媒體1418可包括用於以下操作的指令:將I3C串列匯流排的時鐘線驅動為低以完成該I3C串列匯流排上的開始條件;在該開始條件已完成之後並且在第一時鐘脈衝在時鐘線上被傳輸之前,偵測到該I3C串列匯流排的資料線已經被另一設備從高狀態驅動到低狀態。在資料線被從高狀態驅動到低狀態時,可以從該資料線接收到初始脈衝。處理器可讀取儲存媒體1418可包括用於以下操作的指令:在第一時鐘脈衝在時鐘線上被傳輸之前從資料線接收一或多個附加脈衝,在資料線處於低狀態達最小時間歷時之後在時鐘線上傳輸第一時鐘脈衝,以及基於初始脈衝和該一或多個附加脈衝的記數來選擇用於中斷服務的從設備。
處理器可讀取儲存媒體1418可包括用於以下操作的指令:在將I3C串列匯流排的時鐘線驅動為低以完成開始條件之前,使將從匯流排主控耦合到資料線的線驅動器進入汲極開路操作模式。處理器可讀取儲存媒體1418可包括用於在I3C串列匯流排上啟動開始條件的指令。處理器可讀取儲存媒體1418可包括用於以下操作的指令:經由使用記數對配置資訊表進行索引來決定被選擇用於中斷服務的從設備的唯一性位址。
處理器可讀取儲存媒體1418可包括用於以下操作的指令:在時鐘線上傳輸第一時鐘脈衝之後,啟動涉及被選擇用於中斷服務的從設備的中斷服務活動。處理器可讀取儲存媒體1418可包括用於以下操作的指令:經由使用記數對配置資訊表進行索引來選擇中斷服務活動。
處理器可讀取儲存媒體1418可包括用於以下操作的指令:將配置資訊寫入一或多個從設備,該配置資訊包括在緊急中斷標識和仲裁過程期間將由該一或多個從設備傳輸的脈衝數。對於每個從設備,在緊急中斷標識和仲裁過程期間將傳輸的脈衝包括初始脈衝和數個附加脈衝。
將理解,所揭示的過程中的步驟的特定順序或層次是示例性方法的說明。應理解,基於設計偏好,可以重新編排該等過程中各步驟的具體次序或層次。此外,一些步驟可被組合或被略去。所附方法請求項以取樣次序呈現各種步驟的元素,且並不意味著被限定於所提供的具體次序或層次。
提供先前描述是為了使任何熟習此項技術者均能夠實踐本文中所描述的各種態樣。對該等態樣的各種修改將容易為熟習此項技術者所明白,並且在本文中所定義的普適原理可被應用於其他態樣。因此,請求項並非意欲被限定於本文中所示的態樣,而是應被授予與語言上的請求項相一致的全部範疇,其中對元素的單數形式的引述除非特別聲明,否則並非意欲表示「有且僅有一個」,而是「一或多個」。除非特別另外聲明,否則術語「一些」指的是一或多個。本案通篇描述的各個態樣的元素為一般技術者當前或今後所知的所有結構上和功能上的等效方案經由引述被明確納入於此,且意欲被請求項所涵蓋。此外,本文中所揭示的任何內容皆並非意欲貢獻給公眾,無論此種揭示是否在申請專利範圍中被顯式地敘述。沒有任何請求項元素應被解釋為構件功能,除非該元素是使用短語「用於……的構件」來明確敘述的。
100:裝置
102:處理電路
104:ASIC
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:串列匯流排
222-0:從設備
222-1:從設備
222-2:從設備
222-N:從設備
224:其他儲存
226:其他時序時鐘
228:時鐘信號
232:控制功能、模組或電路
234:配置暫存器
236:其他儲存
238:其他時序時鐘
240:收發機
242:控制邏輯
244a:線驅動器/接收器
244b:線驅動器/接收器
246:時鐘產生及/或恢復電路
248:時鐘信號
300:裝置
302:串列匯流排
304:I3C設備
306:I2C設備
308:I2C設備
310:I2C設備
312:I3C設備
314:I3C設備
316:I3C設備
400:時序圖
402:SDA導線
404:SCL導線
406:設立時間
408:保持時間
410:最小歷時
412:脈衝
414:最小歷時
416:轉變
418:下一轉變
420:時序圖
422:開始條件
424:停止條件
500:時序圖
502:SDA
504:SCL
506:開始條件
508:停止條件
510:重複的開始
512:信號傳遞狀態
514:脈衝
520:命令碼傳輸
522:啟動符
524:預定義命令
526:命令碼
528:資料
530:結束字元
600:示圖
602:SDA
604:SCL
606:開始條件
610:7位元從設備位址
612:寫/讀命令位元
614:ACK/NACK
700:時序圖
702:SCL
704:SDA
706:SDA
708:SDA
710:SDA
712:開始條件
714:帶內中斷標識時段
716:兩個脈衝的群組
718:三個脈衝的群組
720:四個脈衝的群組
722:任何數目的(N個)脈衝
724:上升沿
726:第一時鐘脈衝
728:時鐘脈衝
730:T1
732:TPul
734:T2
736:時間T3
738:T4
800:流程圖
802:方塊
804:方塊
806:方塊
808:方塊
810:方塊
812:方塊
814:方塊
816:方塊
900:流程圖
902:方塊
904:方塊
906:方塊
908:方塊
910:方塊
912:方塊
914:方塊
918:表
1000:裝置
1002:處理電路
1004:處理器
1006:儲存
1008:匯流排介面
1010:匯流排
1012:收發機
1014:運行時間映射
1016:軟體模組
1018:使用者介面
1020:分時程式
1022:邏輯電路
1100:流程圖
1102:方塊
1104:方塊
1106:方塊
1108:方塊
1200:裝置
1202:處理電路
1204:模組或電路
1206:模組或電路
1208:模組或電路
1210:匯流排
1212:多導線通訊鏈路
1214:實體層電路
1216:處理器
1218:處理器可讀取儲存媒體
1300:流程圖
1302:方塊
1304:方塊
1306:方塊
1308:方塊
1310:方塊
1400:裝置
1402:處理電路
1404:模組或電路
1406:模組或電路
1408:模組或電路
1410:匯流排
1412:多導線通訊鏈路
1414:實體層電路
1416:處理器
1418:處理器可讀取儲存媒體
圖1圖示了採用諸IC元件之間的根據複數個可用標準中的一者來選擇性地操作的資料連結的裝置。
圖2圖示了用於採用諸IC元件之間的資料連結的裝置的系統架構。
圖3圖示了耦合到共用串列匯流排的諸設備的配置。
圖4圖示了習知I2C匯流排上SDA導線與SCL導線之間的時序關係的某些態樣。
圖5包括圖示當串列匯流排在由I3C規範所定義的單資料速率(SDR)操作模式中操作時在該串列匯流排上的信號傳遞的時序圖。
圖6圖示了與在根據I3C協定來操作的串列匯流排上提供的位址標頭相關聯的時序。
圖7圖示了根據本文揭示的某些態樣來提供的緊急中斷技術的操作。
圖8是圖示根據本文揭示的某些態樣的與由從設備做出的對中斷服務的請求有關的某些態樣的流程圖。
圖9是圖示根據本文揭示的某些態樣的與在匯流排主控處接收到的對中斷服務的請求有關的某些態樣的流程圖。
圖10是圖示採用可根據本文揭示的某些態樣來調適的處理電路的裝置的實例的方塊圖。
圖11是圖示根據本文揭示的某些態樣的在耦合到串列匯流排的從設備處執行的資料通訊方法的流程圖。
圖12圖示了根據本文揭示的某些態樣來操作的從裝置的硬體實現。
圖13是圖示根據本文揭示的某些態樣的在耦合到串列匯流排的匯流排主控處執行的資料通訊方法的流程圖。
圖14圖示了所調適的包括根據本文揭示的某些態樣來操作的匯流排主控的裝置的硬體實現。
國內寄存資訊 (請依寄存機構、日期、號碼順序註記)
無
國外寄存資訊 (請依寄存國家、機構、日期、號碼順序註記)
無
700:時序圖
702:SCL
704:SDA
706:SDA
708:SDA
710:SDA
712:開始條件
714:帶內中斷標識時段
716:兩個脈衝的群組
718:三個脈衝的群組
720:四個脈衝的群組
722:任何數目的(N個)脈衝
724:上升沿
726:第一時鐘脈衝
728:時鐘脈衝
730:T1
732:TPul
734:T2
736:時間T3
738:T4
Claims (30)
- 一種在一從設備處執行的資料通訊方法,包括以下步驟: 在已經在一I3C串列匯流排上提供一開始條件之後,在從該I3C串列匯流排的一時鐘線接收到一第一時鐘脈衝之前將該I3C串列匯流排的一資料線從一高狀態驅動到一低狀態,其中將該資料線從該高狀態驅動到該低狀態在該資料線上產生一初始脈衝; 在該第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝;及 將該資料線驅動為低,直至在該一或多個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後在該時鐘線上偵測到該第一時鐘脈衝的一上升沿。
- 如請求項1之資料通訊方法,進一步包括以下步驟: 在將該資料線從該高狀態驅動到該低狀態之前,使將該從設備耦合到該資料線的一線驅動器進入一汲極開路操作模式。
- 如請求項1之資料通訊方法,其中將該資料線驅動為低抑制由一或多個其他從設備在該資料線上傳輸的一脈衝。
- 如請求項1之資料通訊方法,進一步包括以下步驟: 終止該資料線上的傳輸,直至在偵測到該一或多個附加脈衝中的一者已被抑制之後在該I3C串列匯流排上提供另一開始條件。
- 如請求項1之資料通訊方法,進一步包括以下步驟: 在該一或多個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後參與一中斷服務活動。
- 如請求項1之資料通訊方法,其中該一或多個附加脈衝包括根據由該從設備維護的配置資訊提供的數個脈衝。
- 如請求項1之資料通訊方法,進一步包括以下步驟: 在不成功地參與其次數超過為該從設備定義的中斷服務仲裁程序的一閾值最大次數的數次中斷服務仲裁程序之後啟動一緊急帶內中斷請求; 其中該緊急帶內中斷請求是經由在從該時鐘線接收到該第一時鐘脈衝之前將該資料線從該高狀態驅動到該低狀態來啟動的。
- 如請求項7之資料通訊方法,進一步包括以下步驟: 在啟動該緊急帶內中斷請求之後參與一緊急中斷標識和仲裁過程, 其中該緊急中斷標識和仲裁過程是基於與參與該緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定的。
- 一種用於資料通訊的裝置,包括: 一線驅動器,其被調適成將該裝置耦合到一I3C串列匯流排的一資料線並且能被配置成用於一汲極開路操作模式;及 一處理器,其被配置成: 在已經在該I3C串列匯流排上提供一開始條件之後,在從該I3C串列匯流排的一時鐘線接收到一第一時鐘脈衝之前使該線驅動器將該資料線從一高狀態驅動到一低狀態,其中將該資料線從該高狀態驅動到該低狀態在該資料線上產生一初始脈衝; 在該第一時鐘脈衝在該時鐘線上被傳輸之前在該資料線上傳輸一或多個附加脈衝;及 將該資料線驅動為低,直至在該一或多個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後在該時鐘線上偵測到該第一時鐘脈衝的一上升沿。
- 如請求項9之裝置,其中該處理器被進一步配置成: 在將該資料線從該高狀態驅動到該低狀態之前將該線驅動器配置成用於該汲極開路操作模式。
- 如請求項9之裝置,其中當該資料線被驅動為低時,由一或多個其他從設備在該資料線上傳輸的一脈衝被抑制。
- 如請求項9之裝置,其中該處理器被進一步配置成: 終止該資料線上的傳輸,直至在偵測到該一或多個附加脈衝中的一者已被抑制之後在該I3C串列匯流排上提供另一開始條件。
- 如請求項9之裝置,其中該處理器被進一步配置成: 在該一或多個附加脈衝中的每一者皆已在該資料線上被成功傳輸之後參與一中斷服務活動。
- 如請求項9之裝置,其中該一或多個附加脈衝包括根據由該裝置維護的配置資訊提供的數個脈衝。
- 如請求項9之裝置,其中該處理器被進一步配置成: 在不成功地參與其次數超過為該裝置定義的中斷服務仲裁程序的一閾值最大次數的數次中斷服務仲裁程序之後啟動一緊急帶內中斷請求, 其中該緊急帶內中斷請求是經由在該第一時鐘脈衝在該時鐘線上被傳輸之前將該資料線從該高狀態驅動到該低狀態來啟動的。
- 如請求項15之裝置,其中該處理器被進一步配置成: 在啟動該緊急帶內中斷請求之後參與一緊急中斷標識和仲裁過程, 其中該緊急中斷標識和仲裁過程是基於與參與該緊急中斷標識和仲裁過程的每個設備相關聯的複數個附加脈衝的數目來決定的。
- 一種在一匯流排主控處執行的資料通訊方法,包括以下步驟: 將一I3C串列匯流排的一時鐘線驅動為低以完成該I3C串列匯流排上的一開始條件; 在該開始條件已完成之後並且在一第一時鐘脈衝在該時鐘線上被傳輸之前偵測到該I3C串列匯流排的一資料線已經被另一設備從一高狀態驅動到一低狀態,其中在該資料線被從該高狀態驅動到該低狀態時從該資料線接收到一初始脈衝; 在該第一時鐘脈衝在該時鐘線上被傳輸之前從該資料線接收一或多個附加脈衝; 在該資料線處於該低狀態達一最小時間歷時之後在該時鐘線上傳輸該第一時鐘脈衝;及 基於該初始脈衝和該一或多個附加脈衝的一記數來選擇用於中斷服務的一從設備。
- 如請求項17之資料通訊方法,進一步包括以下步驟: 在將該I3C串列匯流排的該時鐘線驅動為低以完成該開始條件之前,使將該匯流排主控耦合到該資料線的一線驅動器進入一汲極開路操作模式。
- 如請求項17之資料通訊方法,進一步包括以下步驟: 在該I3C串列匯流排上啟動該開始條件。
- 如請求項17之資料通訊方法,進一步包括以下步驟: 經由使用該記數對一配置資訊表進行索引來決定被選擇用於中斷服務的該從設備的一唯一性位址。
- 如請求項17之資料通訊方法,進一步包括以下步驟: 在該時鐘線上傳輸該第一時鐘脈衝之後啟動涉及被選擇用於中斷服務的該從設備的一中斷服務活動。
- 如請求項21之資料通訊方法,進一步包括以下步驟: 經由使用該記數對一配置資訊表進行索引來選擇該中斷服務活動。
- 如請求項17之資料通訊方法,進一步包括以下步驟: 將配置資訊寫入一或多個從設備,該配置資訊包括在一緊急中斷標識和仲裁過程期間將要由該一或多個從設備傳輸的數個脈衝, 其中對於每個從設備,在該緊急中斷標識和仲裁過程期間將要傳輸的該數個脈衝包括該初始脈衝和數個附加脈衝。
- 一種用於資料通訊的裝置,包括: 一第一線驅動器,其被調適成將該裝置耦合到一I3C串列匯流排的一時鐘線;及 一第二線驅動器,其被調適成將該裝置耦合到該I3C串列匯流排的一資料線,並且該第二線驅動器能被配置成用於一汲極開路操作模式;及 一處理器,其被配置成: 使該第一線驅動器將該I3C串列匯流排的該時鐘線驅動為低以完成該I3C串列匯流排上的一開始條件; 在該開始條件已完成之後並且在一第一時鐘脈衝在該時鐘線上被傳輸之前偵測到該I3C串列匯流排的該資料線已經被另一設備從一高狀態驅動到一低狀態,其中在該資料線被從該高狀態驅動到該低狀態時從該資料線接收到一初始脈衝; 在該第一時鐘脈衝在該時鐘線上被傳輸之前從該資料線接收一或多個附加脈衝; 在該資料線處於該低狀態達一最小時間歷時之後使該第一線驅動器在該時鐘線上傳輸該第一時鐘脈衝;及 基於該初始脈衝和該一或多個附加脈衝的一記數來選擇用於中斷服務的一從設備。
- 如請求項24之裝置,其中該處理器被進一步配置成: 在使該第一線驅動器將該I3C串列匯流排的該時鐘線驅動為低以完成該開始條件之前,將該第二線驅動器配置成用於該汲極開路操作模式。
- 如請求項24之裝置,其中該處理器被進一步配置成: 在該I3C串列匯流排上啟動該開始條件。
- 如請求項24之裝置,其中該處理器被進一步配置成: 經由使用該記數對一配置資訊表進行索引來決定被選擇用於中斷服務的該從設備的一唯一性位址。
- 如請求項24之裝置,其中該處理器被進一步配置成: 在該時鐘線上傳輸該第一時鐘脈衝之後啟動涉及被選擇用於中斷服務的該從設備的一中斷服務活動。
- 如請求項28之裝置,其中該處理器被進一步配置成: 經由使用該記數對一配置資訊表進行索引來選擇該中斷服務活動。
- 如請求項24之裝置,其中該處理器被進一步配置成: 將配置資訊寫入一或多個從設備,該配置資訊包括在一緊急中斷標識和仲裁過程期間將要由該一或多個從設備傳輸的數個脈衝, 其中對於每個從設備,在該緊急中斷標識和仲裁過程期間將要傳輸的該數個脈衝包括該初始脈衝和數個附加脈衝。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/134,559 | 2018-09-18 | ||
US16/134,559 US10678723B2 (en) | 2018-09-18 | 2018-09-18 | Urgent in-band interrupts on an I3C bus |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202024931A true TW202024931A (zh) | 2020-07-01 |
Family
ID=68073177
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW108132952A TW202024931A (zh) | 2018-09-18 | 2019-09-12 | I3c匯流排上的緊急帶內中斷 |
Country Status (3)
Country | Link |
---|---|
US (1) | US10678723B2 (zh) |
TW (1) | TW202024931A (zh) |
WO (1) | WO2020060838A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11144490B2 (en) * | 2020-01-09 | 2021-10-12 | Qualcomm Incorporated | Optimal I3C in-band interrupt handling through reduced slave arbitration cycles |
US11144486B2 (en) * | 2020-02-27 | 2021-10-12 | Dell Products L.P. | System and method for overcoming in-band interrupt starvation with dynamic address remapping |
WO2021202322A1 (en) * | 2020-03-30 | 2021-10-07 | Parker-Hannifin Corporation | Fault tolerant interface for safety controls |
US11436040B2 (en) * | 2020-04-10 | 2022-09-06 | Marvell Asia Pte Ltd | System and methods for hierarchical inline interrupt scheme for efficient interrupt propagation and handling |
CN112235171B (zh) * | 2020-09-15 | 2021-10-29 | 广州河东科技有限公司 | 总线冲突检测方法、装置、检测设备和存储介质 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9734121B2 (en) | 2014-04-28 | 2017-08-15 | Qualcomm Incorporated | Sensors global bus |
US9904637B2 (en) | 2014-11-26 | 2018-02-27 | Qualcomm Incorporated | In-band interrupt time stamp |
US9727506B2 (en) | 2015-10-01 | 2017-08-08 | Sony Corporation | Communication system, communication system control method, and program |
US10733121B2 (en) * | 2018-05-10 | 2020-08-04 | Qualcomm Incorporated | Latency optimized I3C virtual GPIO with configurable operating mode and device skip |
-
2018
- 2018-09-18 US US16/134,559 patent/US10678723B2/en active Active
-
2019
- 2019-09-12 WO PCT/US2019/050830 patent/WO2020060838A1/en active Application Filing
- 2019-09-12 TW TW108132952A patent/TW202024931A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
WO2020060838A1 (en) | 2020-03-26 |
US10678723B2 (en) | 2020-06-09 |
US20200089632A1 (en) | 2020-03-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11010327B2 (en) | I3C point to point | |
TW202024931A (zh) | I3c匯流排上的緊急帶內中斷 | |
US11720512B2 (en) | Unified systems and methods for interchip and intrachip node communication | |
US10496562B1 (en) | Low latency virtual general purpose input/output over I3C | |
TW201923606A (zh) | 針對多執行環境之i3c頻帶內中斷 | |
TW202026900A (zh) | 混合模式射頻前端介面 | |
WO2019139684A1 (en) | Priority scheme for fast arbitration procedures | |
US11106620B1 (en) | Mixed signal device address assignment | |
WO2017099959A1 (en) | Enhanced serial peripheral interface with hardware flow-control | |
US20190171590A1 (en) | Staggered transmissions on a multi-drop half-duplex bus | |
US20200201804A1 (en) | I3c device timing adjustment to accelerate in-band interrupts | |
US11144490B2 (en) | Optimal I3C in-band interrupt handling through reduced slave arbitration cycles | |
US20180181532A1 (en) | Data transfer ending in phase differential modes | |
US10545886B2 (en) | Clock line driving for single-cycle data over clock signaling and pre-emption request in a multi-drop bus | |
US20190018818A1 (en) | Accelerated i3c stop initiated by a third party | |
TW201937378A (zh) | 用於i3c匯流排的使用脈衝計數調制的資料包內關鍵信號傳遞 | |
US20170371830A1 (en) | Accelerated i3c master stop | |
US11520729B2 (en) | I2C bus architecture using shared clock and dedicated data lines | |
US20190171611A1 (en) | Protocol-framed clock line driving for device communication over master-originated clock line | |
US20180357121A1 (en) | Error correction calculation upon serial bus abort | |
US20230350841A1 (en) | Providing acknowledgements for system power management interface | |
US11023408B2 (en) | I3C single data rate write flow control | |
US10572439B1 (en) | I3C read from long latency devices | |
US11360916B2 (en) | Group slave identifier time-multiplexed acknowledgment for system power management interface |