[go: up one dir, main page]

TWI900117B - Detection of an error condition on a serial data bus - Google Patents

Detection of an error condition on a serial data bus

Info

Publication number
TWI900117B
TWI900117B TW113125793A TW113125793A TWI900117B TW I900117 B TWI900117 B TW I900117B TW 113125793 A TW113125793 A TW 113125793A TW 113125793 A TW113125793 A TW 113125793A TW I900117 B TWI900117 B TW I900117B
Authority
TW
Taiwan
Prior art keywords
data
sda
line
output
sda line
Prior art date
Application number
TW113125793A
Other languages
Chinese (zh)
Other versions
TW202514390A (en
Inventor
羅賓 喬納 索羅門
Original Assignee
美商微晶片科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US18/410,615 external-priority patent/US20250103538A1/en
Application filed by 美商微晶片科技股份有限公司 filed Critical 美商微晶片科技股份有限公司
Publication of TW202514390A publication Critical patent/TW202514390A/en
Application granted granted Critical
Publication of TWI900117B publication Critical patent/TWI900117B/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0751Error or fault detection not based on redundancy
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0706Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
    • G06F11/0745Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in an input/output transactions management context
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0766Error or fault reporting or storing
    • G06F11/0772Means for error signaling, e.g. using interrupts, exception flags, dedicated error registers
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/0703Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
    • G06F11/0793Remedial or corrective actions
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • G06F13/4291Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus using a clocked protocol

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Quality & Reliability (AREA)
  • Debugging And Monitoring (AREA)
  • Information Transfer Systems (AREA)

Abstract

A controller is provided that includes a serial data (SDA) line interface to connect the controller to an SDA line of a two-wire, shared, serial data bus. The controller includes a circuitry to provide output data for transfer on to the SDA line via the output SDA pad buffer. The controller includes a logic circuit that is external to the circuitry, and that monitors data on the SDA line while the output data is transferred on to the SDA line. The logic circuit compares the monitored data on the SDA line and the output data to detect an error condition when the monitored data and the output data differ. The logic circuit disables an output SDA pad buffer of the SDA line interface for a current byte of the output data provided by the circuitry, and then causes a stop condition on the data bus.

Description

串列資料匯流排上錯誤狀況之偵測Detection of error conditions on the serial data bus

相關申請案之交互參照Cross-reference to related applications

本申請案主張於2023年9月21日所提交且標題為: Detection and Recovery from a Read-Write Data Conflict on a Serial Data Bus之印度臨時專利申請案第202341063537號之優先權,該案全文以引用方式併入本文中。 This application claims priority to Indian provisional patent application No. 202341063537 filed on September 21, 2023, and entitled “Detection and Recovery from a Read-Write Data Conflict on a Serial Data Bus ,” which is incorporated herein by reference in its entirety.

本揭露大致上係關於串列通訊,且具體係關於在一串列資料匯流排上的一錯誤狀況之偵測。This disclosure relates generally to serial communications, and more particularly to detecting an error condition on a serial data bus.

串列通訊在促進電子系統之內的晶片間通訊中扮演重要角色。其涉及在裝置之間的一通訊鏈路上逐位元循序地資料傳輸。與並列通訊相比,此種方法提供諸如簡單、低接腳計數、及長距離傳輸資料之能力的優點。Serial communication plays a key role in facilitating inter-chip communication within electronic systems. It involves sequentially transferring data bit by bit over a communication link between devices. Compared to parallel communication, this method offers advantages such as simplicity, low pin count, and the ability to transmit data over long distances.

一種普遍的串列通訊協定係I2C(Inter-Integrated Circuit,積體匯流排電路),其係由Philips Semiconductor(現為NXP Semiconductors)於1980年代早期所開發。I2C係一種雙線匯流排協議,其允許多個裝置使用一共享的串列資料(serial data, SDA)線及串列時脈(serial clock, SCL)線來相互通訊。它支援一控制器-目標(主-從)架構,其中一控制器裝置起始並控制通訊,且目標裝置回應控制器的命令或請求。I2C通常是用於連接位在一嵌入式系統、消費性電子產品、及電腦週邊設備中的各種裝置。A common serial communication protocol is I2C (Inter-Integrated Circuit), which was developed by Philips Semiconductor (now NXP Semiconductors) in the early 1980s. I2C is a two-wire bus protocol that allows multiple devices to communicate with each other using a shared serial data (SDA) line and a serial clock (SCL) line. It supports a controller-target (master-slave) architecture, in which a controller device initiates and controls communication, and the target device responds to commands or requests from the controller. I2C is commonly used to connect various devices in embedded systems, consumer electronics, and computer peripherals.

隨著技術進步及對更高的資料傳送速率、增加的靈活性、及改善的電源效率的需求出現,MIPI聯盟開發改良式積體匯流排電路(Improved Inter-Integrated Circuit, I3C)。I3C於2017年推出,以I2C的優勢為基礎,同時提供增強及額外的特徵。I3C係向後相容I2C,允許I2C裝置在相同資料匯流排上共存。它引入更高的資料傳送速率、增加用於連接多個裝置的靈活性、多控制器支援、熱加入(hot-join)能力、動態位址分配、頻帶內中斷、及其他改善。I3C在諸如智慧型手機、平板電腦、物聯網(Internet of Things, IoT)裝置、及汽車系統等應用中受到歡迎。As technology advances and demands for higher data rates, increased flexibility, and improved power efficiency arise, the MIPI Alliance developed the Improved Inter-Integrated Circuit (I3C). Launched in 2017, I3C builds on the strengths of I2C while offering enhancements and additional features. I3C is backward compatible with I2C, allowing I2C devices to coexist on the same data bus. It introduces higher data rates, increased flexibility for connecting multiple devices, multi-controller support, hot-join capabilities, dynamic address allocation, in-band interrupts, and other improvements. I3C has become popular in applications such as smartphones, tablets, Internet of Things (IoT) devices, and automotive systems.

串列通訊協定像是I2C及I3C已在電子系統之內的晶片間通訊中成為不可或缺的一部分。它們使裝置能夠有效且可靠地交換資料、命令、及控制信號。此等協議已被廣泛採用及標準化,允許不同製造商的裝置之間實現互通性,並簡化在電子系統之內的各種組件的整合。串列通訊協定的不斷演變及發展有助於晶片間通訊的進步及現代電子裝置的無縫操作。Serial communication protocols such as I2C and I3C have become an integral part of inter-chip communication within electronic systems. They enable devices to efficiently and reliably exchange data, commands, and control signals. These protocols have been widely adopted and standardized, allowing interoperability between devices from different manufacturers and simplifying the integration of various components within electronic systems. The continuous evolution and development of serial communication protocols has contributed to the advancement of inter-chip communication and the seamless operation of modern electronic devices.

隨著串列通訊協定的進步,可能會發生商業上可用的電路系統(諸如半導體智慧財產核心(IP區塊),其可使一控制器能夠支援串列資料匯流排上的串列通訊)可能不支援某些錯誤。As serial communication protocols advance, it may happen that commercially available circuit systems (such as semiconductor intellectual property cores (IP blocks) that enable a controller to support serial communication over a serial data bus) may not support certain errors.

在I3C中,一控制器可與一目標起始一交易(諸如讀取交易、寫入交易)或接收一頻帶內中斷(in-band interrupt, IBI);然而,在一些實例中,可能出現一錯誤類型CE1。當處於一寫入狀態的該控制器偵測到該資料匯流排上的輸入資料與該控制器意欲作為該資料匯流排上的輸出資料傳送的資料不同時,可能發生一錯誤類型CE1。此可能發生在交易期間(包括由該目標起始的一頻帶內中斷大約係與由該控制器起始的一私用寫入交易同時)該目標誤解一或多個資訊(其指示一讀取或寫入交易、或一確認)時。當該控制器實際上意欲起始一寫入交易時,該目標可能表現得猶如其正在回應一讀取交易。當此發生時,來自該控制器的該資料匯流排上的該寫入資料可能與來自該目標的該讀取資料發生衝突。在I3C中,當該控制器偵測到一CE1錯誤狀況時,該控制器應停止傳輸,隨後在該資料匯流排上確立一停止狀況,並重新嘗試該傳輸。然而,現有裝置及電路系統(其提供輸出資料以用於傳送至該SDA線上)並未適當地支援該CE1錯誤狀況。此種電路可在一商業上可用的智慧財產區塊(Intellectual Property block)中實施,這是難以改變的事實。In I3C, a controller can initiate a transaction (e.g., a read transaction, a write transaction) with a target or receive an in-band interrupt (IBI); however, in some instances, an error type CE1 may occur. This error type CE1 occurs when the controller, in a write state, detects that the input data on the data bus is different from the data the controller intended to send as output data on the data bus. This can occur if the target misinterprets one or more pieces of information (indicating a read or write transaction, or an acknowledgment) during a transaction (including an in-band interrupt initiated by the target at approximately the same time as a private write transaction initiated by the controller). The target may behave as if it is responding to a read transaction when the controller actually intended to initiate a write transaction. When this happens, the write data on the data bus from the controller may conflict with the read data from the target. In I3C, when the controller detects a CE1 error condition, it should stop the transfer, then assert a stop condition on the data bus, and retry the transfer. However, existing devices and circuitry that provide output data for transmission on the SDA line do not properly support the CE1 error condition. The fact that such circuits can be implemented in a commercially available Intellectual Property block is undeniable.

因此,本揭露的實例實施方案係關於從一電路系統(諸如一半導體智慧財產核心(IP區塊))外部偵測一CE1錯誤狀況,該電路系統可使一控制器能夠支援串列資料匯流排上的串列通訊。本揭露包括但不限於以下實例實施方案。Therefore, example embodiments of the present disclosure relate to externally detecting a CE1 error condition from a circuit system (e.g., a semiconductor intellectual property core (IP block)) that enables a controller to support serial communication over a serial data bus. This disclosure includes, but is not limited to, the following example embodiments.

一些實例實施方案提供一控制器,其包含:一串列資料(SDA)線介面,其用以將該控制器連接至一雙線共享的串列資料匯流排的一SDA線,該SDA線介面包含一輸出SDA墊緩衝器;一電路系統,其用以提供輸出資料以用於經由該輸出SDA墊緩衝器傳送至該SDA線上;及一邏輯電路,其係位於該電路系統外部,該邏輯電路係用以至少:在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;且基於所偵測到的錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,且隨後造成該資料匯流排上的一停止狀況。Some example embodiments provide a controller comprising: a serial data (SDA) line interface for connecting the controller to an SDA line of a two-wire shared serial data bus, the SDA line interface comprising an output SDA pad buffer; a circuit system for providing output data for transmission to the SDA line via the output SDA pad buffer; and a logic circuit external to the circuit system, the logic circuit being configured to at least: The output data is transmitted onto the SDA line while monitoring the data on the SDA line; when the data monitored on the SDA line is different from the output data, comparing the data monitored on the SDA line with the output data to detect an error condition; and based on the detected error condition, disabling the output SDA pad buffer for a current byte of the output data provided by the circuit system, and subsequently causing a stall condition on the data bus.

一些實例實施方案提供一種方法,其包含:從一電路系統提供輸出資料,以用於經由一輸出SDA墊緩衝器傳送至一雙線共享的串列資料匯流排的一串列資料(SDA)線上;及藉由位在該電路系統外部的一邏輯電路,在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;及基於所偵測到的錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,且隨後造成該資料匯流排上的一停止狀況。Some example embodiments provide a method comprising: providing output data from a circuit system for transmission to a serial data (SDA) line of a two-wire shared serial data bus via an output SDA pad buffer; and monitoring data on the SDA line by a logic circuit external to the circuit system while transmitting the output data to the SDA line. data; comparing the data monitored on the SDA line with the output data to detect an error condition when the data monitored on the SDA line is different from the output data; and based on the detected error condition, disabling the output SDA pad buffer for a current byte of the output data provided by the circuit system, and subsequently causing a stall condition on the data bus.

本揭露的此等及其他特徵、態樣、及優點在閱讀以下的實施方式並參照隨附的圖式將變得顯而易見,其簡要描述如下。本揭露包括在本揭露中所闡述的兩個、三個、四個、或更多個特徵或元件的任何組合,無論此等特徵或元件是否在本文所述之具體實例實施方案中明確地組合或以其他方式記載。本揭露係意欲受到整體地閱讀,使得除非本揭露的上下文另有明確指出,否則本揭露的任何可分開的特徵或元件在其態樣及實例實施方案中之任何者皆應被視為可組合的。These and other features, aspects, and advantages of the present disclosure will become apparent upon reading the following embodiments and referring to the accompanying drawings, which are briefly described below. The present disclosure includes any combination of two, three, four, or more features or elements described herein, regardless of whether such features or elements are explicitly combined in the specific example embodiments described herein or otherwise described. The present disclosure is intended to be read as a whole, such that any separable features or elements of the present disclosure in any of its aspects and example embodiments should be considered combinable unless the context of the present disclosure clearly indicates otherwise.

因此,應理解,提供此發明內容僅係出於總結一些實例實施方案的目的,以便提供對本揭露的一些態樣的基本理解。據此,應理解,上述實例實施方案僅係實例,且不應被解釋為以任何方式縮小本揭露的範疇或精神。從以下的實施方式並參照隨附的圖式,其他實例實施方案、態樣、及優點將變得顯而易見,隨附的圖式係舉實例繪示一些所述之實例實施方案的原理。Therefore, it should be understood that this disclosure is provided only for the purpose of summarizing some exemplary embodiments in order to provide a basic understanding of some aspects of the present disclosure. Accordingly, it should be understood that the above exemplary embodiments are merely examples and should not be construed as narrowing the scope or spirit of the present disclosure in any way. Other exemplary embodiments, aspects, and advantages will become apparent from the following embodiments and with reference to the accompanying drawings, which illustrate by way of example the principles of some of the described exemplary embodiments.

本揭露的一些實施方案現將會在下文中參照隨附的圖式更全面地描述,在當中僅顯示本揭露的某些而不是全部的實施方案。事實上,本揭露的各種實施方案可以許多不同的形式來體現,且不應被解釋為僅限於本文所闡述的實施方案;相反地,此等實例實施方案係提供使得本揭露會更加徹底及完整,且將會充分地將本揭露之範疇傳達給所屬技術領域中具有通常知識者。相同的元件符號自始至終指涉相同的元件。Certain embodiments of the present disclosure will now be described more fully below with reference to the accompanying drawings, which show some, but not all, embodiments of the present disclosure. In fact, the various embodiments of the present disclosure may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these exemplary embodiments are provided so that this disclosure will be more thorough and complete and will fully convey the scope of the disclosure to those skilled in the art. Like reference numerals refer to like elements throughout.

除非另有指明或從上下文中可清楚看出,否則對第一、第二、或類似者的引用不應被解釋為暗示一特定的順序。描述成位在另一特徵上方的一特徵(除非另有指明或從上下文中可清楚看出)可替代成位於下方,反之亦然;且同樣地,描述成位在另一特徵的左側的特徵可替代成位於右側,反之亦然。又,儘管本文中可能提及定量測量、值、幾何關係、或類似者,但除非另有指明,否則此等中之任何一者或多者(若不是全部)可係約略的,以解釋可能發生的可接受變化,諸如由於工程公差或類似者的情況。Unless otherwise specified or clear from the context, references to first, second, or the like should not be construed as implying a particular order. A feature described as being above another feature (unless otherwise specified or clear from the context) may instead be located below, and vice versa; and similarly, a feature described as being to the left of another feature may instead be located to the right, and vice versa. Furthermore, although quantitative measurements, values, geometric relationships, or the like may be mentioned herein, any one or more (if not all) of these may be approximated, unless otherwise specified, to account for acceptable variations that may occur, such as due to engineering tolerances or the like.

如本文中所使用,除非另有指明或從上下文中可清楚看出,否則一組運算元的「或(or)」係「包含或(inclusive or)」,且因此若且為若一或多個運算元為真時才為真,這與當運算元中之所有者為真時才為真之「互斥或(exclusive or)」相反。因此,例如,若[A]為真,或若[B]為真,或若[A]及[B]兩者皆為真,則「[A]或[B]」為真。此外,冠詞「一(a/an)」意指「一或多個」,除非另有指明或從上下文中可清楚看出是針對單數形式。此外,應理解,除非另有指明,否則用語「資料(data)」、「內容(content)」、「數位內容(digital content)」、「資訊(information)」、及近似用語有時可互換使用。As used herein, unless otherwise specified or clear from the context, an "or" of a set of operators is an "inclusive or," and thus is true only if and if one or more of the operators are true, as opposed to an "exclusive or," which is true only if all of the operators are true. Thus, for example, "[A] or [B]" is true if [A] is true, or if [B] is true, or if both [A] and [B] are true. Furthermore, the articles "a" and "an" mean "one or more," unless otherwise specified or clear from the context to be directed to the singular. Furthermore, it should be understood that the terms "data," "content," "digital content," "information," and similar terms are sometimes used interchangeably unless otherwise specified.

此外,本文可參照一特定系統或架構所特有的用語,但應理解,本揭露的實例實施方案可等同地適用於若干系統及架構中之任何者。在此方面,一些實例實施方案可能是在晶片間通訊的串列通訊標準(諸如I3C及其前身I2C)的背景下進行描述。然而,應理解,實例實施方案可等同地適用於其他串列通訊標準。Furthermore, while reference may be made herein to terminology specific to a particular system or architecture, it should be understood that the disclosed embodiments are equally applicable to any of a number of systems and architectures. In this regard, some embodiments may be described in the context of serial communication standards for inter-chip communication, such as I3C and its predecessor, I2C. However, it should be understood that the embodiments are equally applicable to other serial communication standards.

本揭露的實例實施方案大致上係關於串列通訊,且尤其係關於在一串列資料匯流排上的讀寫資料衝突時的偵測及恢復。Example embodiments of the present disclosure relate generally to serial communications, and more particularly to detecting and recovering from read and write data conflicts on a serial data bus.

圖1根據本揭露的一些實例實施方案繪示一控制器100。控制器可係一電子裝置,諸如積體電路(IC)。如以下更詳細解釋的,控制器包括一電路系統102及位在電路系統102外部的一邏輯電路104。控制器亦可包括一或多個介面,以將控制器連接至一資料匯流排104,控制器可透過該資料匯流排而與其他電子裝置通訊。在串列通訊標準(諸如I2C及I3C)的背景下,資料匯流排可係一雙線共享的串列資料匯流排104。在此方面,資料匯流排可包括一串列資料(SDA)線104A,其係用於在連接至資料匯流排的電子裝置之間傳輸及接收資料。控制器可包括一SDA線介面106,以將目標連接至SDA線,且SDA線介面可包括一輸出SDA墊緩衝器108,以驅動SDA線上的輸出資料110。FIG1 illustrates a controller 100 according to some example embodiments of the present disclosure. The controller can be an electronic device, such as an integrated circuit (IC). As explained in more detail below, the controller includes a circuit system 102 and a logic circuit 104 external to the circuit system 102. The controller can also include one or more interfaces to connect the controller to a data bus 104, through which the controller can communicate with other electronic devices. In the context of serial communication standards such as I2C and I3C, the data bus can be a two-wire shared serial data bus 104. In this regard, the data bus may include a serial data (SDA) line 104A for transmitting and receiving data between electronic devices connected to the data bus. The controller may include an SDA line interface 106 for connecting a target to the SDA line, and the SDA line interface may include an output SDA pad buffer 108 for driving output data 110 on the SDA line.

圖2根據本揭露的一些實例實施方案繪示一系統200,其包括控制器100。如圖所示,系統包括若干電子裝置202(諸如IC),其係連接至資料匯流排104。除了SDA線104A之外,資料匯流排還可包括一SCL線204B,其提供一時脈信號,用以同步在電子裝置202之間的資料傳送。此外,在一些實例中,控制器100亦可包括一SCL線介面,以將控制器連接至SCL線。FIG2 illustrates a system 200 including a controller 100, according to some exemplary embodiments of the present disclosure. As shown, the system includes several electronic devices 202 (e.g., integrated circuits) connected to a data bus 104. In addition to an SDA line 104A, the data bus may also include an SCL line 204B, which provides a clock signal for synchronizing data transmission between electronic devices 202. Furthermore, in some embodiments, the controller 100 may also include an SCL line interface to connect the controller to the SCL line.

系統200可根據一控制器-目標架構來操作,其中一電子裝置202可作為一控制器100,以起始及控制資料匯流排104上的通訊(時序及資料),且另一電子裝置可作為一目標208,以回應來自控制器的命令或請求。在一些實例中,系統可支援多個控制器及目標。The system 200 can operate according to a controller-target architecture, wherein an electronic device 202 can act as a controller 100 to initiate and control communication (timing and data) on the data bus 104, and another electronic device can act as a target 208 to respond to commands or requests from the controller. In some embodiments, the system can support multiple controllers and targets.

圖3根據一些實例實施方案繪示一系統300,其可對應於圖2的系統200,包括多個控制器及目標。如圖所示,例如,系統300可包括一主控制器100A及一或多個次控制器100B,其中之任何一者可係目前在控制資料匯流排104的主動控制器。主控制器100A可初始化資料匯流排,並執行目標208的組態。主控制器100A在其初始狀態下可作為資料匯流排的授權者,且一旦資料匯流排係經組態,則成為第一主動控制器。次控制器100B最初可作為一目標,但次控制器100B可接受來自主控制器100A的控制器身分,且成為新的主動控制器。在I3C的背景下,系統可包括一I3C主控制器100A及一或多個I3C次控制器100B。FIG3 illustrates a system 300, which may correspond to the system 200 of FIG2, including multiple controllers and targets, according to some example embodiments. As shown, for example, the system 300 may include a primary controller 100A and one or more secondary controllers 100B, any of which may be the active controller currently controlling the data bus 104. The primary controller 100A may initialize the data bus and perform configuration of the target 208. The primary controller 100A may act as the authorizer of the data bus in its initial state and, once the data bus is configured, become the first active controller. The secondary controller 100B may initially act as a target, but the secondary controller 100B may accept the controller identity from the primary controller 100A and become the new active controller. In the context of I3C, a system may include an I3C master controller 100A and one or more I3C slave controllers 100B.

系統300同樣可包括一或多個目標208。系統亦可包括一或多個傳統目標304,其係來自系統300可相容的較早通訊標準。同樣地,在I3C的背景下,系統可包括一或多個I3C目標208,且系統可包括一或多個I2C目標304。The system 300 may also include one or more targets 208. The system may also include one or more legacy targets 304, which are from older communication standards with which the system 300 is compatible. Similarly, in the context of I3C, the system may include one or more I3C targets 208, and the system may include one or more I2C targets 304.

復參照圖2,系統200可支援多種資料傳送模式,允許電子裝置202基於它們的能力以不同的速度進行通訊。模式可包括一單一資料速率(single data rate, SDR)模式及若干高資料速率(high data rate, HDR)模式,從而具有增加的資料傳送速率及對應的信號完整性要求。SDR模式尤其可用於若干目的,諸如執行從控制器100至目標208的私用訊息傳送,及進入其他模式及狀態(例如,HDR模式)。在I3C的背景下,SDR模式可用以實施內建I3C特徵,諸如通用命令代碼(common command code, CCC)、頻帶內中斷(in-band interrupt, IBI)、及熱加入。SDR模式也可用以透過動態位址分配從I2C轉變至I3C,以及在資料匯流排104上執行傳統I2C交易。Referring back to FIG. 2 , system 200 can support multiple data transfer modes, allowing electronic devices 202 to communicate at different speeds based on their capabilities. Modes can include a single data rate (SDR) mode and several high data rate (HDR) modes, each with increased data transfer rates and corresponding signal integrity requirements. SDR mode can be used, among other things, for performing private messaging from controller 100 to target 208 and entering other modes and states (e.g., HDR mode). In the context of I3C, SDR mode can be used to implement built-in I3C features such as common command code (CCC), in-band interrupt (IBI), and hot join. SDR mode can also be used to transition from I2C to I3C through dynamic address allocation, as well as perform traditional I2C transactions on the data bus 104.

電子裝置202可以各種輸出模式操作,以驅動資料匯流排104上的信號。合適的模式的實例包括一開汲極模式及一推拉模式,其定義電子裝置如何控制SDA線104A及SCL線204B上的電壓位準。在開汲極模式中,電子裝置可在其輸出組態成一開路汲極或開路集極。在開汲極模式中,電子裝置可藉由主動地灌電流而將信號線(SDA或SCL)拉至一低電壓位準(邏輯0),但電子裝置202不具備一主動元件來將信號線拉至高電壓位準(邏輯1),而是可使用一上拉電阻器(其可係外部的)來將線路拉至高電壓位準(邏輯1)。在推拉模式中,電子裝置可在其輸出組態成一推拉驅動器。在推拉模式下,電子裝置可主動地驅動信號線上的高(邏輯1)及低(邏輯0)電壓位準。The electronic device 202 can operate in various output modes to drive signals on the data bus 104. Examples of suitable modes include an open-drain mode and a push-pull mode, which define how the electronic device controls the voltage levels on the SDA line 104A and the SCL line 204B. In the open-drain mode, the electronic device can configure its output as an open drain or open collector. In open-drain mode, the electronic device can pull the signal line (SDA or SCL) to a low voltage level (logical 0) by actively sinking current. However, the electronic device 202 does not have an active component to pull the signal line to a high voltage level (logical 1). Instead, a pull-up resistor (which can be external) can be used to pull the line to a high voltage level (logical 1). In push-pull mode, the electronic device can be configured as a push-pull driver at its output. In push-pull mode, the electronic device can actively drive the signal line to a high (logical 1) and a low (logical 0) voltage level.

圖4A、圖4B、及圖4C係根據一些實例實施方案之SDA線104A及SCL線204B上的信號的時序圖,用於在資料匯流排104上的一讀取/寫入交易。如圖4A所示,資料匯流排上的讀/寫交易可起始於一開始狀態,其可由控制器100確立,且實現成SDA線上的一高至低轉變,同時SCL線係由控制器100維持在一恆定的高位。同樣地,資料匯流排上的讀取/寫入交易可以由控制器所確立的一停止狀況結束。一停止狀況可在SCL線204B上的一電壓位準處於一高位期間實施成SDA線上的一低至高轉變。作為停止狀況的一替代,一重新開始狀況可允許在同一幀中發送多個訊息,而不需要在訊息之間傳輸一停止及開始。一重新開始狀況可能在資料匯流排上看起來與一啟動狀況相同。Figures 4A, 4B, and 4C are timing diagrams of signals on the SDA line 104A and the SCL line 204B for a read/write transaction on the data bus 104, according to some example embodiments. As shown in Figure 4A, a read/write transaction on the data bus can begin with a start condition, which can be asserted by the controller 100 and implemented as a high-to-low transition on the SDA line while the SCL line is held at a constant high by the controller 100. Similarly, a read/write transaction on the data bus can end with a stop condition asserted by the controller. A stop condition can be implemented as a low-to-high transition on the SDA line while a voltage level on the SCL line 204B is high. As an alternative to a stop condition, a restart condition allows multiple messages to be sent in the same frame without having to transmit a stop and start between messages. A restart condition may appear the same as a start condition on the data bus.

在開始/重新開始狀況之後,資料匯流排104上的讀取/寫入交易可包括一位址標頭,位址標頭可包括一目的地位址,指示一讀取或寫入交易,及提供一確認。位址標頭可在SCL線204B從低至高(上升邊緣)或從高至低(下降邊緣)轉變的週期期間在SDA線104A上傳輸。圖4B係根據一些實例實施方案之用於一位址標頭的SDA線及SCL線的時序圖。在I2C及I3C的背景下,位址標頭可包括七個位址位元、一個讀取/寫入(read / write, R/W)位元、及一個確認(acknowledge, ACK)/非確認(non-acknowledge, NACK)位元。在I3C的背景下,R/W位元可稱作 位元或RnW位元。在一些實例中,控制器100可傳輸位址及R/W位元。控制器100可使用位址位元來對目標208進行尋址,且控制器可使用R/W位元來指定一寫入模式(控制器100將資料寫入至目標208)或一讀取模式(控制器100從目標208讀取資料)。在此方面,控制器100可在SDA線104A上傳輸一低信號(R/W位元=0)來表示寫入模式,或在SDA線104A上傳輸一高信號(R/W位元=1)來表示讀取模式。 Following the start/restart condition, a read/write transaction on the data bus 104 may include an address header that may include a destination address, indicate a read or write transaction, and provide an acknowledgment. The address header may be transmitted on the SDA line 104A during the period when the SCL line 204B transitions from low to high (rising edge) or from high to low (falling edge). FIG4B is a timing diagram of the SDA line and the SCL line for an address header according to some example implementations. In the context of I2C and I3C, the address header may include seven address bits, a read/write (R/W) bit, and an acknowledge (ACK)/non-acknowledge (NACK) bit. In the context of I3C, the R/W bit may be referred to as In some examples, the controller 100 may transmit an address and a R/W bit. The controller 100 may use the address bits to address the target 208, and the controller may use the R/W bit to specify a write mode (the controller 100 writes data to the target 208) or a read mode (the controller 100 reads data from the target 208). In this regard, the controller 100 may transmit a low signal (R/W bit = 0) on the SDA line 104A to indicate write mode, or a high signal (R/W bit = 1) on the SDA line 104A to indicate read mode.

一旦控制器100在資料匯流排104上傳輸位址標頭的位址及R/W位元,則控制器可等待目標208確認(或不確認)該請求。此可透過位址標頭中的ACK/NACK位元來完成。目標可將SDA線104A拉低(ACK/NACK位元= 0),以用一確認(ACK)來回應,或將SDA線釋放為高(ACK/NACK位元= 1),以用一非確認(NACK)來回應。Once the controller 100 transmits the address and R/W bits of the address header on the data bus 104, the controller can wait for the target 208 to acknowledge (or not acknowledge) the request. This can be accomplished using the ACK/NACK bit in the address header. The target can pull the SDA line 104A low (ACK/NACK bit = 0) to respond with an acknowledgment (ACK), or release the SDA line high (ACK/NACK bit = 1) to respond with a negative acknowledgement (NACK).

如圖4C中所示(在推/拉模式中),一或多個資料字可跟隨在位址標頭之後。近似於位址標頭,資料字可在SCL線204B從低至高(上升邊緣)或從高至低(下降邊緣)轉變的週期期間在SDA線104A上傳輸。在I3C的背景下,一資料字可係九個位元寬,包括八位元資料及第九的轉換位元(T位元)。當控制器100正在向目標208寫入資料時,各資料字的T位元可係使用奇同位(odd parity)所計算的一同位位元,這有助於偵測資料匯流排上由雜訊所造成的錯誤。相反地,當控制器100正在讀取從目標傳回的資料時,各資料字的T位元可呈現一資料結束位元。在此方面,目標208可使用T位元來控制目標回傳的資料字的數量。T位元亦可讓控制器100提前中止讀取。為了結束訊息,目標208可將T位元回傳為「0」。為了繼續訊息,目標可將T位元回傳為「1」,並監測SDA線。若SDA線在下一個SCL下降邊緣保持高位,則目標可繼續發送下一個資料值。若SDA線在下一個SCL下降邊緣係在低位(重新開始),則控制器100已中止資料傳送,且目標208不發送下一個資料。As shown in FIG4C (in push/pull mode), one or more data words may follow the address header. Similar to the address header, the data words may be transmitted on the SDA line 104A during the period when the SCL line 204B transitions from low to high (rising edge) or from high to low (falling edge). In the context of I3C, a data word may be nine bits wide, consisting of eight bits of data and a ninth transition bit (T bit). When the controller 100 is writing data to the target 208, the T bit of each data word may be a parity bit calculated using odd parity, which helps detect errors caused by noise on the data bus. Conversely, when the controller 100 is reading data back from the target, the T bit of each data word can present an end-of-data bit. In this regard, the target 208 can use the T bit to control the number of data words returned by the target. The T bit also allows the controller 100 to terminate the read early. To end the message, the target 208 can return the T bit as "0". To continue the message, the target can return the T bit as "1" and monitor the SDA line. If the SDA line remains high on the next SCL falling edge, the target can continue to send the next data value. If the SDA line is low (restart) on the next SCL falling edge, the controller 100 has terminated the data transfer and the target 208 does not send the next data.

電子裝置202可實施一或多種錯誤偵測及復原方法,以處理在資料匯流排104上的讀取/寫入交易期間的各種錯誤狀況。在此方面,在I3C的背景下,當控制器100實際上嘗試起始一寫入交易時,若在位址標頭的R/W位元中發生錯誤,則目標208可能當作它正在回應一讀取交易。當此發生時,來自該控制器的該資料匯流排上的該寫入資料可能與來自該目標的該讀取資料發生衝突。在行動產業處理器介面(Mobile Industry Processor Interface, MIPI)聯盟所發布的 MIPI I3C ® 規範中,此錯誤狀況在被控制器偵測到時稱作錯誤類型CE1。如所明確指出的,當控制器100在資料匯流排104的SDA線104A上傳輸寫入交易時,控制器100應監測資料匯流排104的SDA線104A,這允許控制器在所監測的資料與控制器所嘗試傳輸的資料不同時偵測出一CE1錯誤狀況。 The electronic device 202 may implement one or more error detection and recovery methods to handle various error conditions during read/write transactions on the data bus 104. In this regard, in the context of I3C, if an error occurs in the R/W bit of the address header when the controller 100 is actually attempting to initiate a write transaction, the target 208 may interpret it as responding to a read transaction. When this occurs, the write data on the data bus from the controller may conflict with the read data from the target. In the MIPI I3C® specification published by the Mobile Industry Processor Interface (MIPI) Alliance, this error condition, when detected by a controller, is referred to as error type CE1. As specifically noted, when the controller 100 transmits a write transaction on the SDA line 104A of the data bus 104, the controller 100 should monitor the SDA line 104A of the data bus 104. This allows the controller to detect a CE1 error condition if the monitored data differs from the data the controller is attempting to transmit.

根據 MIPI I3C ® 規範,當控制器100在嘗試與目標208的私用寫入交易期間偵測到一CE1錯誤狀況時(即,當目標208當作它正在回應一私用讀取交易時,而控制器100已嘗試執行一私用寫入交易),則控制器100可停止傳送,且隨後在SDA線104A上確立一停止狀況,並重新嘗試傳送。本揭露的實例實施方案方式提供一邏輯電路來偵測此一CE1錯誤,並採取行動以避免資料匯流排104上長時間存在衝突資料,從而降低功率消耗,且避免潛在的損壞。 According to the MIPI I3C® specification, when the controller 100 detects a CE1 error condition during a private write transaction attempt with the target 208 (i.e., when the target 208 assumes it is responding to a private read transaction while the controller 100 has attempted to perform a private write transaction), the controller 100 may stop the transmission, then assert a stop condition on the SDA line 104A, and retry the transmission. Example embodiments of the present disclosure provide a logic circuit to detect such a CE1 error and take action to prevent conflicting data from being present on the data bus 104 for an extended period of time, thereby reducing power consumption and avoiding potential corruption.

根據本揭露的一些實例實施方案,控制器100可在一寫入狀態下操作,以執行一寫入交易,以將輸出資料110傳送至資料匯流排104上。當控制器處於寫入狀態時,控制器可監測SDA線104A上的資料112,比較SDA線104A上的資料112與輸出資料110,且在SDA線104A上的資料112與輸出資料110不同時偵測出一錯誤狀況。此外,基於該錯誤狀況,控制器可停用內部的輸出SDA墊緩衝器108(其驅動SDA線104A上的輸出資料110),直至SDA線104A上的資料112的一目前位元組的傳送完成。隨後,控制器可在資料匯流排104的SDA線104A上確立一停止狀況。According to some exemplary embodiments of the present disclosure, the controller 100 may operate in a write state to execute a write transaction to transfer output data 110 to the data bus 104. While in the write state, the controller may monitor data 112 on the SDA line 104A, compare the data 112 on the SDA line 104A with the output data 110, and detect an error condition if the data 112 on the SDA line 104A and the output data 110 are not simultaneously transmitted. Furthermore, based on the error condition, the controller may disable the internal output SDA buffer 108 (which drives the output data 110 on the SDA line 104A) until the transfer of the current byte of data 112 on the SDA line 104A is complete. The controller may then assert a stop condition on the SDA line 104A of the data bus 104 .

例如,如圖1中所示,電路系統102(其係用以提供輸出資料110以用於傳送至SDA線104A上)經由輸出SDA墊緩衝器108傳輸資料112。邏輯電路104可在將輸出資料110傳送至SDA線104A上的同時監測SDA線104A上的資料112。當SDA線104A上所監測的資料112與輸出資料110不同時,邏輯電路104可比較SDA線104A上所監測的資料112與輸出資料110,以偵測出一錯誤狀況(例如,CE1錯誤狀況)。基於所偵測到的錯誤狀況,邏輯電路104可針對由電路系統102所提供的輸出資料110的一目前位元組停用輸出SDA墊緩衝器108,且隨後造成資料匯流排上的一停止狀況。For example, as shown in FIG1 , circuitry 102 (which provides output data 110 for transmission onto SDA line 104A) transmits data 112 via output SDA pad buffer 108. Logic circuitry 104 may monitor data 112 on SDA line 104A while transmitting output data 110 onto SDA line 104A. When data 112 monitored on SDA line 104A differs from output data 110, logic circuitry 104 may compare data 112 monitored on SDA line 104A with output data 110 to detect an error condition (e.g., a CE1 error condition). Based on the detected error condition, logic circuit 104 may disable output SDA pad buffer 108 for a current byte of output data 110 provided by circuitry 102 and subsequently cause a stall condition on the data bus.

為了進一步說明本發明的一些實例實施方案方式,圖5係根據一些實例實施方案的控制器100的方塊圖。如圖所示,控制器100包括一電路系統102,諸如半導體智慧財產核心(IP區塊),其可使控制器100能夠支援資料匯流排104上的串列通訊。在此方面,電路系統102可提供輸出資料110 (SDA_OUT),以用於經由SDA線介面106的輸出SDA墊緩衝器108傳送至SDA線104A上。在一些實例中,輸出SDA墊緩衝器108可係一三態緩衝器,且電路系統102可使輸出SDA墊緩衝器能夠驅動輸出資料110,諸如在控制器100係處於寫入狀態時。電路系統102可不提供支援CE1錯誤。To further illustrate some exemplary embodiments of the present invention, FIG5 is a block diagram of a controller 100 according to some exemplary embodiments. As shown, the controller 100 includes a circuit system 102, such as a semiconductor intellectual property core (IP block), which enables the controller 100 to support serial communication on a data bus 104. In this regard, the circuit system 102 can provide output data 110 (SDA_OUT) for transmission to an SDA line 104A via an output SDA pad buffer 108 of an SDA line interface 106. In some examples, the output SDA pad buffer 108 may be a tri-state buffer, and the circuit system 102 may enable the output SDA pad buffer to drive the output data 110, such as when the controller 100 is in the write state. The circuit system 102 may not provide support for CE1 errors.

在一些實例中,SDA線介面106亦包括一輸入SDA墊緩衝器502,以接收SDA線104A上所監測的資料112 (SDA_IN)。輸入SDA墊緩衝器可濾除SDA線104A上所監測的資料112中的雜訊,以產生經濾波的資料。更具體而言,例如,輸入SDA墊緩衝器502可包括一突波濾波器(有時稱作尖峰濾波器),以濾除在所監測的資料112中不想要的雜訊(諸如藉由抑制SDA上的電壓位準的極端變化)。所監測的資料可隨後係經濾波的資料。In some embodiments, the SDA line interface 106 also includes an input SDA pad buffer 502 to receive the data 112 (SDA_IN) monitored on the SDA line 104A. The input SDA pad buffer can filter noise from the data 112 monitored on the SDA line 104A to produce filtered data. More specifically, for example, the input SDA pad buffer 502 can include a surge filter (sometimes referred to as a spike filter) to filter unwanted noise from the monitored data 112 (e.g., by suppressing extreme changes in the voltage level on SDA). The monitored data can then be filtered data.

又如圖所示,控制器100的邏輯電路104可包括一狀態機504及一偵測器506,以監測SDA線104A上的資料112。在此方面,狀態機504可從電路系統102接收SDA線104A上的位址標頭已傳輸的一指示,該指示可由電路系統102傳輸,或由狀態機504從電路系統102讀取,作為電路系統102的除錯信號或埠的部件,且使偵測器506能夠監測SDA線104A上的資料112中的位址標頭後面的一或多個資料字。As further shown, the logic circuit 104 of the controller 100 may include a state machine 504 and a detector 506 to monitor the data 112 on the SDA line 104A. In this regard, the state machine 504 may receive an indication from the circuit system 102 that the address header on the SDA line 104A has been transmitted. This indication may be transmitted by the circuit system 102 or read from the circuit system 102 by the state machine 504 as part of a debug signal or port of the circuit system 102, and enable the detector 506 to monitor the data 112 on the SDA line 104A for one or more data words following the address header.

偵測器506可包括一邏輯閘,諸如XOR(互斥或)閘508。邏輯閘可對SDA線104A上所監測的資料112的一或多個資料字與在線路SDA_OUT上由電路系統102所傳輸的輸出資料110的一或多個資料字進行逐位元比較。偵測器506亦可包括一或多個順序邏輯元件,諸如多工器510及一D正反器512。在逐位元比較指示SDA線104A上所監測的資料112的一或多個資料字與輸出資料110的一或多個資料字不同時,一或多個順序邏輯元件可設定一旗標,以指示偵測到錯誤狀況。Detector 506 may include a logic gate, such as an XOR (exclusive OR) gate 508. The logic gate may perform a bit-by-bit comparison between one or more data words of data 112 monitored on SDA line 104A and one or more data words of output data 110 transmitted by circuitry 102 on line SDA_OUT. Detector 506 may also include one or more sequential logic elements, such as a multiplexer 510 and a D flip-flop 512. When the bit-by-bit comparison indicates that the one or more data words of data 112 monitored on the SDA line 104A are different from the one or more data words of the output data 110, the one or more sequence logic elements may set a flag to indicate that an error condition has been detected.

在一些更具體的實例中,當SDA線104A上所監測的資料112的一或多個資料字與輸出資料110的一或多個資料字不同時,互斥或閘508可產生一高閘極輸出(邏輯1),互斥或閘508的高閘極輸出係饋送至多工器510的一第一輸入。多工器510(其回應於來自狀態機504的一經確立的啟用信號(EN))可將XOR閘508的輸出傳遞至D正反器512的D輸入,該D正反器512係可由一信號(其可係SCL時脈、同步SCL時脈、或更快時脈的信號)計時,且D正反器隨後可鎖存XOR閘508的輸出。In some more specific examples, when one or more data words of the data 112 monitored on the SDA line 104A are different from one or more data words of the output data 110, the exclusive OR gate 508 can generate a high gate output (logical 1), and the high gate output of the exclusive OR gate 508 is fed to a first input of the multiplexer 510. Multiplexer 510 (in response to an asserted enable signal (EN) from state machine 504) can pass the output of XOR gate 508 to the D input of D flip-flop 512. D flip-flop 512 can be clocked by a signal (which can be the SCL clock, a synchronous SCL clock, or a faster clock), and D flip-flop can then latch the output of XOR gate 508.

倘若SDA線104A上所監測的資料112的一或多個資料字與輸出資料110的一或多個資料字不同時,則D正反器512將會因此將該高輸出鎖存為一旗標(有時稱作CE1錯誤旗標),其可表示為一CE1_ERROR信號,以提供給狀態機504指示遭遇到一CE1狀況。回應於所設定的CE1錯誤旗標(亦即,主動的CE1_ERROR信號),狀態機504可解除對多工器510的啟用信號的確立,從而鎖存CE1錯誤旗標(其係回授至多工器510的一第二輸入)。在其他實例中,不需要多工器510及D正反器512,且狀態機504可回應CE1錯誤旗標而不需要鎖存CE1錯誤旗標。同樣地,當偵測器506未使用或是控制器退出寫入狀態時,狀態機504可清除D正反器512,且從而清除CE1錯誤旗標。If the one or more data words of data 112 monitored on SDA line 104A are not identical to the one or more data words of output data 110, D flip-flop 512 will therefore latch the high output as a flag (sometimes referred to as a CE1 error flag), which may be represented as a CE1_ERROR signal, to indicate to state machine 504 that a CE1 condition has been encountered. In response to the CE1 error flag being set (i.e., the active CE1_ERROR signal), state machine 504 may deassert the enable signal of multiplexer 510, thereby latching the CE1 error flag (which is fed back to a second input of multiplexer 510). In other embodiments, the multiplexer 510 and the D flip-flop 512 are not required, and the state machine 504 can respond to the CE1 error flag without latching the CE1 error flag. Similarly, when the detector 506 is not used or the controller exits the write state, the state machine 504 can clear the D flip-flop 512, thereby clearing the CE1 error flag.

在一些實例中,當CE1錯誤旗標經設定時,邏輯電路104可停用輸出SDA墊緩衝器108。在輸出SDA墊緩衝器108係一三態緩衝器的一些實例中,邏輯電路104可經由三態緩衝器的一啟用/停用輸入(ENB)來停用輸出SDA墊緩衝器108。In some examples, when the CE1 error flag is set, the logic circuit 104 may disable the output SDA pad buffer 108. In some examples where the output SDA pad buffer 108 is a tri-state buffer, the logic circuit 104 may disable the output SDA pad buffer 108 via an enable/disable input (ENB) of the tri-state buffer.

在一些實例中,控制器100包括一2:1多工器514,且邏輯電路104包括一墊緩衝器控制區塊516。2:1多工器514可包括耦接至輸出SDA墊緩衝器108的啟用/停用輸入的一輸出線、及耦接至電路系統102的一各別輸出的一第一輸入線,以允許電路系統102在控制器處於寫入狀態時、或在電路系統102正在SDA線104A上發送指令或位址時,啟用輸出SDA墊緩衝器。In some examples, the controller 100 includes a 2:1 multiplexer 514, and the logic circuit 104 includes a pad buffer control block 516. The 2:1 multiplexer 514 may include an output line coupled to the enable/disable input of the output SDA pad buffer 108 and a first input line coupled to a respective output of the circuitry 102 to allow the circuitry 102 to enable the output SDA pad buffer when the controller is in a write state or when the circuitry 102 is sending a command or address on the SDA line 104A.

2:1多工器514亦可包括耦接至接地(邏輯0)的一第二輸入線、及耦接至墊緩衝器控制區塊516的一選擇線,以允許墊緩衝器控制區塊能夠選擇2:1多工器514的第一或第二輸入線中之一者。墊緩衝器控制區塊516可選擇第一輸入線,以允許電路系統102控制輸出SDA墊緩衝器108,諸如用以在寫入狀態下啟用SDA墊緩衝器108。然而,當狀態機504偵測到CE1錯誤旗標時,狀態機504可控制墊緩衝器控制區塊選擇2:1多工器的第二輸入線,且從而將輸出SDA墊緩衝器的啟用/停用輸入連接至接地,以停用輸出SDA墊緩衝器。因此,狀態機504及偵測器506可在電路系統102外部且在不中斷該電路系統(例如,IP區塊)的情況下偵測CE1錯誤狀況,並基於錯誤狀況執行操作。The 2:1 multiplexer 514 may also include a second input line coupled to ground (logical 0) and a select line coupled to the pad buffer control block 516 to allow the pad buffer control block to select one of the first or second input lines of the 2:1 multiplexer 514. The pad buffer control block 516 may select the first input line to allow the circuitry 102 to control the output SDA pad buffer 108, such as to enable the SDA pad buffer 108 in a write state. However, when the state machine 504 detects the CE1 error flag, the state machine 504 can control the pad buffer control block to select the second input line of the 2:1 multiplexer and thereby connect the enable/disable input of the output SDA pad buffer to ground to disable the output SDA pad buffer. Thus, the state machine 504 and the detector 506 can detect the CE1 error condition outside the circuit system 102 and without interrupting the circuit system (e.g., the IP block) and perform operations based on the error condition.

無論邏輯電路104停用輸出SDA墊緩衝器108的確切方式如何,在一個實例中,邏輯電路104可隨後在資料匯流排104上造成一停止狀況,諸如使一目標208結束SDA線104A上所監測的資料112的傳送。具體而言,邏輯電路104的狀態機504可造成資料匯流排上的停止狀況,以使目標208結束SDA線104A上所監測的資料112的傳送。Regardless of the exact manner in which the logic circuit 104 disables the output SDA pad buffer 108, in one example, the logic circuit 104 can subsequently cause a stall condition on the data bus 104, such as to cause a target 208 to terminate the transmission of data 112 monitored on the SDA line 104A. Specifically, the state machine 504 of the logic circuit 104 can cause a stall condition on the data bus to cause the target 208 to terminate the transmission of data 112 monitored on the SDA line 104A.

在一些實例中,邏輯電路104可包括一計數器區塊516,狀態機504可使用計數器區塊來對SDA線104A上所監測的資料112的一目前資料字的位元位置進行計數。狀態機可藉此識別SDA線104A上所監測的資料112的目前資料字的一ACK/NACK位元位置。隨後,當識別出SDA線104A上所監測的資料112的目前資料字的ACK/NACK位元位置時,狀態機可造成資料匯流排上的停止狀況。在一些實例中,狀態機可在SCL線204B上的一電壓位準處於一高位期間造成SDA線104A上的電壓位準的一低至高轉變。In some examples, the logic circuit 104 may include a counter block 516 that the state machine 504 may use to count the bit positions of a current data word of the data 112 monitored on the SDA line 104A. The state machine may thereby identify an ACK/NACK bit position of the current data word of the data 112 monitored on the SDA line 104A. Subsequently, upon identifying the ACK/NACK bit position of the current data word of the data 112 monitored on the SDA line 104A, the state machine may cause a stall condition on the data bus. In some examples, the state machine may cause a low-to-high transition in the voltage level on the SDA line 104A while a voltage level on the SCL line 204B is high.

邏輯電路104可以若干不同方式中之任何者在資料匯流排104上造成停止狀況。在一些實例中,邏輯電路可指示電路系統102在資料匯流排104上確立停止狀況。具體而言,例如,狀態機504可使用一測試SCL及SDA測試超控,以造成電路系統102確立停止狀況。Logic circuitry 104 may cause a stall condition on data bus 104 in any of several different ways. In some examples, logic circuitry 104 may instruct circuitry 102 to assert a stall condition on data bus 104. Specifically, for example, state machine 504 may use a test SCL and SDA test override to cause circuitry 102 to assert a stall condition.

在一些實例中,邏輯電路可在資料匯流排104上確立停止狀況。在此等實例中之某些者中,控制器100包括一第二2:1多工器518,且第二2:1多工器518可包括耦接至電路系統102的SDA_OUT線路的一輸入線、及耦接至輸出SDA墊緩衝器108的一輸出線,以允許電路系統102提供輸出資料110以用於經由輸出SDA墊緩衝器108而傳送至SDA線104A上。In some examples, the logic circuitry can assert a stall condition on the data bus 104. In some of these examples, the controller 100 includes a second 2:1 multiplexer 518, and the second 2:1 multiplexer 518 can include an input line coupled to the SDA_OUT line of the circuitry 102 and an output line coupled to the output SDA pad buffer 108 to allow the circuitry 102 to provide output data 110 for transmission onto the SDA line 104A via the output SDA pad buffer 108.

第二2:1多工器518亦可包括耦接至墊緩衝器控制區塊516的各別輸出的一第二輸入線(SDA_OVRD)及一選擇線(SDA_OVRD_EN)。選擇線可允許墊緩衝器控制區塊516能夠選擇第二2:1多工器518的第一或第二輸入線中之一者。墊緩衝器控制區塊516可選擇第一輸入線,以允許電路系統102向輸出SDA墊緩衝器108提供資料,諸如將資料驅動至處於寫入狀態的SDA墊緩衝器108。當偵測到CE1錯誤旗標時,狀態機504可控制墊緩衝器控制區塊516選擇第二2:1多工器518的第二輸入線,且從而將第二2:1多工器的第二輸入線連接至輸出SDA墊緩衝器108。第二2:1多工器518可在第二2:1多工器的第二輸入線上提供一超控信號,以在SCL線204B上的一電壓位準處於一高位期間造成SDA線104A上的電壓位準的一低至高轉變,且從而在資料匯流排104上確立停止狀況。The second 2:1 multiplexer 518 may also include a second input line (SDA_OVRD) and a select line (SDA_OVRD_EN) coupled to respective outputs of the pad buffer control block 516. The select line may allow the pad buffer control block 516 to select one of the first or second input lines of the second 2:1 multiplexer 518. The pad buffer control block 516 may select the first input line to allow the circuitry 102 to provide data to the output SDA pad buffer 108, such as driving the data to the SDA pad buffer 108 in a write state. When the CE1 error flag is detected, the state machine 504 may control the pad buffer control block 516 to select the second input line of the second 2:1 multiplexer 518, thereby connecting the second input line of the second 2:1 multiplexer to the output SDA pad buffer 108. The second 2:1 multiplexer 518 may provide an override signal on the second input line of the second 2:1 multiplexer to cause a low-to-high transition of the voltage level on the SDA line 104A while the voltage level on the SCL line 204B is high, thereby asserting a stop condition on the data bus 104.

在造成停止狀況之後、與造成停止狀況同步、或緊接在造成停止狀況之前,狀態機504可向多工器510確立啟用信號、清除D正反器512、且用信號通知墊緩衝器控制區塊516再次選擇2:1多工器514的第一輸入,以再次允許電路系統102啟用輸出SDA墊緩衝器108。After, simultaneously with, or immediately before causing the stall condition, the state machine 504 may assert an enable signal to the multiplexer 510, clear the D flip-flop 512, and signal the pad buffer control block 516 to reselect the first input of the 2:1 multiplexer 514 to again allow the circuit system 102 to enable the output SDA pad buffer 108.

圖6A至圖6H係根據各種實例實施方案繪示在一方法600中的各個步驟的流程圖。方法包括提供來自一電路系統的輸出資料,以用於經由一輸出SDA墊緩衝器傳送至一雙線共享的串列資料匯流排的一串列資料(SDA)線上,如在圖6A的方塊602中所示。隨後,透過位在電路系統外部的一邏輯電路,方法包括在將輸出資料傳送至SDA線上的同時,監測SDA線上的資料,如方塊604中所示。方法包括比較SDA線上所監測的資料與輸出資料,以在SDA線上所監測的資料與輸出資料不同時,偵測出一錯誤狀況,如方塊606中所示。基於所偵測到的錯誤狀況,方法包括對由電路系統提供的輸出資料的一目前位元組停用輸出SDA墊緩衝器,且隨後造成在資料匯流排上的一停止狀況,如方塊608及方塊610中所示。6A through 6H are flow charts illustrating steps in a method 600 according to various exemplary embodiments. The method includes providing output data from a circuit system for transmission via an output SDA pad buffer onto a serial data (SDA) line of a two-wire shared serial data bus, as shown in block 602 of FIG. 6A . Subsequently, through a logic circuit external to the circuit system, the method includes monitoring data on the SDA line while transmitting the output data onto the SDA line, as shown in block 604. The method includes comparing the data monitored on the SDA line with the output data to detect an error condition when the data monitored on the SDA line is different from the output data, as shown in block 606. Based on the detected error condition, the method includes disabling the output SDA pad buffer for a current byte of output data provided by the circuitry and subsequently causing a stall condition on the data bus, as shown in blocks 608 and 610.

在一些實例中,方法600包括濾除SDA線上的資料中的雜訊,以產生經濾波的資料,如在圖6B的方塊612中所示。在此等實例中之某些者中,所監測的資料係經濾波的資料。In some examples, method 600 includes filtering noise from the data on the SDA line to produce filtered data, as shown in block 612 of Figure 6B. In some of these examples, the monitored data is filtered data.

在一些實例中,在方塊604中,監測SDA線上的資料包括接收SDA線上的位址標頭已傳輸的指示,如在圖6C的方塊614中所示。在此等實例中之某些者中,監測SDA線上的資料亦包括監測SDA線上的資料中的位址標頭後面的一或多個資料字,如在方塊616中所示。In some examples, in block 604, monitoring the SDA line for data includes receiving an indication that an address header has been transmitted on the SDA line, as shown in block 614 of FIG 6C . In some of these examples, monitoring the SDA line for data also includes monitoring the data on the SDA line for one or more data words following the address header, as shown in block 616.

在一些實例中,在方塊606中,比較SDA線上所監測的資料與輸出資料包括:對SDA線上所監測的資料的一或多個資料字與輸出資料的一或多個資料字(亦即,由電路系統102所輸出的一或多個資料字)進行逐位元比較,如在圖6D的方塊618中所示。在逐位元比較指示SDA線上所監測的資料的一或多個資料字與輸出資料的一或多個資料字不同時,設定一旗標,以指示偵測到錯誤狀況,如在方塊620中所示。在此等實例中之某些者中,當旗標經設定時,在方塊608中停用輸出SDA墊緩衝器,且隨後在方塊610中造成停止狀況。In some examples, comparing the data monitored on the SDA line with the output data in block 606 includes performing a bit-by-bit comparison of the one or more data words of the data monitored on the SDA line with one or more data words of the output data (i.e., the one or more data words output by circuitry 102), as shown in block 618 of FIG6D . When the bit-by-bit comparison indicates that the one or more data words of the data monitored on the SDA line are different from the one or more data words of the output data, a flag is set to indicate that an error condition has been detected, as shown in block 620. In some of these examples, when the flag is set, the output SDA pad buffer is disabled in block 608 and subsequently a stall condition is caused in block 610.

在一些實例中,輸出SDA墊緩衝器係具有一啟用/停用輸入的一三態緩衝器,輸出SDA墊緩衝器係經由該啟用/停用輸入而在方塊608中被停用。In some examples, the output SDA pad buffer is a three-state buffer having an enable/disable input, and the output SDA pad buffer is disabled in block 608 via the enable/disable input.

在一些實例中,在方塊610中,造成在資料匯流排上的停止狀況,以使一目標結束SDA線上所監測的資料的傳送。In some examples, at block 610, a stall condition is caused on the data bus to cause a target to terminate the transmission of data monitored on the SDA line.

在一些實例中,在方塊610中,造成停止狀況包括對SDA線上所監測的資料的一目前資料字的位元位置進行計數,以識別SDA線上所監測的資料的目前資料字的一確認/非確認(ACK/NACK)位元位置,如在圖6E的方塊622中所示。在此等實例中之某些者中,當識別出SDA線上所監測的資料的目前資料字的ACK/NACK位元位置時,造成資料匯流排上的停止狀況,如在方塊624中所示。In some examples, causing the stall condition in block 610 includes counting bit positions of a current data word of data monitored on the SDA line to identify an acknowledge/not acknowledge (ACK/NACK) bit position of the current data word of data monitored on the SDA line, as shown in block 622 of FIG6E . In some of these examples, when the ACK/NACK bit position of the current data word of data monitored on the SDA line is identified, a stall condition on the data bus is caused, as shown in block 624.

在一些實例中,資料匯流排包括SDA線及一串列時脈(serial clock, SCL)線。在此等實例中之某些者中,在方塊610中,造成資料匯流排上的停止狀況包括在SCL線上的一電壓位準處於一高位期間造成SDA線上的一電壓位準的一低至高轉變,如在圖6F的方塊626中所示。In some examples, the data bus includes an SDA line and a serial clock (SCL) line. In some of these examples, in block 610, causing a stop condition on the data bus includes causing a low-to-high transition of a voltage level on the SDA line while a voltage level on the SCL line is high, as shown in block 626 of FIG6F .

在一些實例中,在方塊610中,造成資料匯流排上的停止狀況包括藉由邏輯電路指示電路系統確立資料匯流排上的停止狀況,如在圖6G的方塊628中所示。In some examples, at block 610 , causing the stall condition on the data bus includes instructing the circuitry, via the logic circuit, to assert the stall condition on the data bus, as shown at block 628 of FIG. 6G .

在一些實例中,在方塊610中,造成資料匯流排上的停止狀況包括由邏輯電路確立資料匯流排上的停止狀況,如在圖6H的方塊630中所示。In some examples, causing the stall condition on the data bus at block 610 includes asserting the stall condition on the data bus by logic circuitry, as shown at block 630 of FIG. 6H .

如上所述及如下所重申,本揭露包括但不限於以下的實例實施方案。As stated above and reiterated below, the present disclosure includes, but is not limited to, the following example embodiments.

條項1.一種控制器,其包含:一串列資料(SDA)線介面,其用以將該控制器連接至一雙線共享的串列資料匯流排的一SDA線,該SDA線介面包含一輸出SDA墊緩衝器;一電路系統,其用以提供輸出資料以用於經由該輸出SDA墊緩衝器傳送至該SDA線上;及一邏輯電路,其係位於該電路系統外部,該邏輯電路係用以至少:在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;且基於所偵測到的錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,且隨後造成該資料匯流排上的一停止狀況。Item 1. A controller comprising: a serial data (SDA) line interface for connecting the controller to an SDA line of a two-wire shared serial data bus, the SDA line interface comprising an output SDA pad buffer; a circuit system for providing output data for transmission to the SDA line via the output SDA pad buffer; and a logic circuit external to the circuit system, the logic circuit being configured to at least: While output data is transmitted to the SDA line, data on the SDA line is monitored; when the data monitored on the SDA line is different from the output data, the data monitored on the SDA line is compared with the output data to detect an error condition; and based on the detected error condition, the output SDA pad buffer is disabled for a current byte of the output data provided by the circuit system, and a stall condition is subsequently caused on the data bus.

條項2.如條項1之控制器,其中該SDA線介面包含一輸入SDA墊緩衝器,以接收該SDA線上所監測的該資料,該輸入SDA墊緩衝器係用以濾除該SDA線上所監測的該資料中的雜訊,以產生經濾波的資料,且所監測的該資料係經濾波的該資料。Item 2. The controller of Item 1, wherein the SDA line interface includes an input SDA pad buffer to receive the data monitored on the SDA line, the input SDA pad buffer being configured to filter noise from the data monitored on the SDA line to generate filtered data, and the monitored data being the filtered data.

條項3.如條項1或條項2之控制器,其中該邏輯電路包含一狀態機及一偵測器,以監測該SDA線上的該資料,該狀態機係用以至少:接收該SDA線上的一位址標頭已傳輸的一指示;及啟用該偵測器以監測該SDA線上的該資料中的該位址標頭後面的一或多個資料字。Item 3. The controller of Item 1 or Item 2, wherein the logic circuit includes a state machine and a detector to monitor the data on the SDA line, the state machine being configured to at least: receive an indication that an address header on the SDA line has been transmitted; and enable the detector to monitor the data on the SDA line for one or more data words following the address header.

條項4.如條項1至3中任一項之控制器,其中該邏輯電路包含一偵測器以比較該SDA線上所監測的該資料與該輸出資料,該偵測器包含:一邏輯閘,其用以對在該SDA線上所監測的該資料的一或多個資料字與該輸出資料的一或多個資料字執行一逐位元比較;及一或多個順序邏輯元件,其用以設定一旗標,以在該逐位元比較指示該SDA線上所監測的該資料的該一或多個資料字與該輸出資料的該一或多個資料字不同時,指示偵測到該錯誤狀況,且其中,在該旗標經設定時,該邏輯電路係用以停用該輸出SDA墊緩衝器,且隨後造成該停止狀況。Item 4. The controller of any one of Items 1 to 3, wherein the logic circuit includes a detector to compare the data monitored on the SDA line with the output data, the detector comprising: a logic gate for performing a bit-by-bit comparison of one or more data words of the data monitored on the SDA line with one or more data words of the output data; and one or more sequence A sequence logic element is configured to set a flag to indicate that the error condition has been detected when the bit-by-bit comparison indicates that the one or more data words of the data monitored on the SDA line are different from the one or more data words of the output data, and wherein, when the flag is set, the logic circuit is configured to disable the output SDA pad buffer and subsequently cause the stall condition.

條項5.如條項1至4中任一項之控制器,其中該輸出SDA墊緩衝器係具有一啟用/停用輸入的一三態緩衝器,該邏輯電路係經由該啟用/停用輸入來停用該輸出SDA墊緩衝器。Item 5. The controller of any one of Items 1 to 4, wherein the output SDA pad buffer is a three-state buffer having an enable/disable input, and the logic circuit disables the output SDA pad buffer via the enable/disable input.

條項6.如條項1至5中任一項之控制器,其中該邏輯電路係用以造成該資料匯流排上的該停止狀況,以使一目標來結束該SDA線上的該資料之傳送。Clause 6. The controller of any one of clauses 1 to 5, wherein the logic circuit is configured to cause the stall condition on the data bus to cause a target to terminate the transmission of the data on the SDA line.

條項7.如條項1至6中任一項之控制器,其中該邏輯電路用以使該停止狀況包含該邏輯電路以:對該SDA線上所監測的該資料的一目前資料字的位元位置進行計數,以識別該SDA線上所監測的該資料的該目前資料字的一確認/非確認(ACK/NACK)位元位置;及當識別出該SDA線上所監測的該資料的該目前資料字的該ACK/NACK位元位置時,造成該資料匯流排上的該停止狀況。Clause 7. The controller of any one of Clauses 1 to 6, wherein the logic circuitry is configured to cause the stall condition to include the logic circuitry to: count bit positions of a current data word of the data monitored on the SDA line to identify an acknowledge/not acknowledge (ACK/NACK) bit position of the current data word of the data monitored on the SDA line; and cause the stall condition on the data bus when the ACK/NACK bit position of the current data word of the data monitored on the SDA line is identified.

條項8.如條項1至7中任一項之控制器,其中該資料匯流排包括該SDA線及一串列時脈(SCL)線;且其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以在該SCL線上的一電壓位準處於一高位期間在該SDA線上造成一電壓位準的一低至高轉變。Clause 8. The controller of any one of clauses 1 to 7, wherein the data bus includes the SDA line and a serial clock (SCL) line; and wherein the logic circuitry for causing the stop condition on the data bus comprises: the logic circuitry for causing a low-to-high transition of a voltage level on the SDA line while a voltage level on the SCL line is high.

條項9.如條項1至8中任一項之控制器,其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以指示該電路系統在該資料匯流排上確立該停止狀況。Clause 9. The controller of any one of clauses 1 to 8, wherein the logic circuitry for causing the stall condition on the data bus comprises: the logic circuitry for instructing the circuitry to assert the stall condition on the data bus.

條項10.如條項1至9中任一項之控制器,其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以在該資料匯流排上確立該停止狀況。Clause 10. The controller of any one of Clauses 1 to 9, wherein the logic circuitry for causing the stall condition on the data bus comprises: the logic circuitry for asserting the stall condition on the data bus.

條項11.一種方法,其包含:從一電路系統提供輸出資料,以用於經由一輸出SDA墊緩衝器傳送至一雙線共享的串列資料匯流排的一串列資料(SDA)線上;及藉由位在該電路系統外部的一邏輯電路,在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;及基於所偵測到的錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,且隨後造成該資料匯流排上的一停止狀況。Item 11. A method comprising: providing output data from a circuit system for transmission to a serial data (SDA) line of a two-wire shared serial data bus via an output SDA pad buffer; and monitoring data on the SDA line by a logic circuit external to the circuit system while transmitting the output data to the SDA line; When the data monitored on the SDA line is different from the output data, the data monitored on the SDA line is compared with the output data to detect an error condition; and based on the detected error condition, the output SDA pad buffer is disabled for a current byte of the output data provided by the circuit system, and a stall condition is subsequently caused on the data bus.

條項12.如條項11之方法,其包含濾除該SDA線上的該資料中的雜訊,以產生經濾波的資料,且其中所監測的該資料係經濾波的該資料。Clause 12. The method of clause 11, comprising filtering noise from the data on the SDA line to produce filtered data, and wherein the monitored data is the filtered data.

條項13.如條項11或條項12之方法,其中監測該SDA線上的該資料包含:接收該SDA線上的一位址標頭已傳輸的一指示;及監測該SDA線上的該資料中的該位址標頭後面的一或多個資料字。Clause 13. The method of clause 11 or clause 12, wherein monitoring the data on the SDA line comprises: receiving an indication that an address header on the SDA line has been transmitted; and monitoring the data on the SDA line for one or more data words following the address header.

條項14.如條項11至13中任一項之方法,其中比較該SDA線上所監測的該資料與該輸出資料包含:對在該SDA線上所監測的該資料的一或多個資料字與該輸出資料的一或多個資料字執行一逐位元比較;及設定一旗標,以在該逐位元比較指示該SDA線上所監測的該資料的該一或多個資料字與該輸出資料的該一或多個資料字不同時,指示偵測到該錯誤狀況,且其中當該旗標經設定時,停用該輸出SDA墊緩衝器,且隨後造成該停止狀況。Clause 14. The method of any one of Clauses 11 to 13, wherein comparing the data monitored on the SDA line with the output data comprises: performing a bit-by-bit comparison of one or more data words of the data monitored on the SDA line with one or more data words of the output data; and setting a flag to indicate that the error condition has been detected when the bit-by-bit comparison indicates that the one or more data words of the data monitored on the SDA line are different from the one or more data words of the output data, and wherein when the flag is set, disabling the output SDA pad buffer and subsequently causing the stall condition.

條項15.如條項11至14中任一項之方法,其中該輸出SDA墊緩衝器係具有一啟用/停用輸入的一三態緩衝器,該輸出SDA墊緩衝器係經由該啟用/停用輸入而被停用。Clause 15. The method of any one of Clauses 11 to 14, wherein the output SDA pad buffer is a three-state buffer having an enable/disable input, the output SDA pad buffer being disabled via the enable/disable input.

條項16.如條項11至15中任一項之方法,其中造成該資料匯流排上的該停止狀況係用以使一目標來結束該SDA線上所監測的該資料的傳送。Clause 16. The method of any one of clauses 11 to 15, wherein causing the stall condition on the data bus is used to cause a target to terminate transmission of the data monitored on the SDA line.

條項17.如條項11至16中任一項之方法,其中造成該停止狀況包含:對該SDA線上所監測的該資料的一目前資料字的位元位置進行計數,以識別該SDA線上所監測的該資料的該目前資料字的一確認/非確認(ACK/NACK)位元位置;及當識別出該SDA線上所監測的該資料的該目前資料字的該ACK/NACK位元位置時,造成該資料匯流排上的該停止狀況。Clause 17. The method of any one of Clauses 11 to 16, wherein causing the stall condition comprises: counting bit positions of a current data word of the data monitored on the SDA line to identify an acknowledgement/non-acknowledgement (ACK/NACK) bit position of the current data word of the data monitored on the SDA line; and causing the stall condition on the data bus when the ACK/NACK bit position of the current data word of the data monitored on the SDA line is identified.

條項18.如條項11至17中任一項之方法,其中該資料匯流排包括該SDA線及一串列時脈(SCL)線,且其中造成該資料匯流排上的該停止狀況包含:在該SCL線上的一電壓位準處於一高位期間,造成該SDA線上的一電壓位準的一低至高轉變。Clause 18. The method of any one of Clauses 11 to 17, wherein the data bus includes the SDA line and a serial clock (SCL) line, and wherein causing the stop condition on the data bus comprises: causing a low-to-high transition of a voltage level on the SDA line while a voltage level on the SCL line is high.

條項19.如條項11至18中任一項之方法,其中造成該資料匯流排上的該停止狀況包含:藉由該邏輯電路指示該電路系統確立該資料匯流排上的該停止狀況。Clause 19. The method of any one of Clauses 11 to 18, wherein causing the stall condition on the data bus comprises: instructing the circuit system, by the logic circuit, to establish the stall condition on the data bus.

條項20.如條項11至19中任一項之方法,其中造成該資料匯流排上的該停止狀況包含:藉由該邏輯電路確立該資料匯流排上的該停止狀況。Clause 20. The method of any one of Clauses 11 to 19, wherein causing the stall condition on the data bus comprises: establishing the stall condition on the data bus by the logic circuit.

受益於前述說明及相關聯的圖式中所呈現的教導,本揭露所屬技術領域中具有通常知識者將會想到本文中所闡述的本揭露的諸多修改及其他實施方案。因此,應理解,本揭露不限於所揭露的具體實施方案,且修改及其他實施方案係意欲包括在隨附申請專利範圍的範疇之內。此外,雖然前述說明及相關聯的圖式描述在元件及/或功能的某些實例組合的背景下的實例實施方案,但應理解,可透過替代實施方案來提供元件及/或功能的不同組合,而不背離本發明的範疇。在此方面,例如,亦可設想與以上明確描述者不同的元件及/或功能的組合,如在隨附申請專利範圍中之某些者中可能闡述的。雖然本文中採用特定用語,但它們僅用於一般及描述性的含義,而不是出於限制的目的。Numerous modifications and other embodiments of the present disclosure set forth herein will come to mind to one skilled in the art having the benefit of the teachings presented in the foregoing description and the associated drawings. It should be understood, therefore, that the present disclosure is not limited to the specific embodiments disclosed, and that modifications and other embodiments are intended to be included within the scope of the appended claims. Furthermore, while the foregoing description and the associated drawings describe example embodiments in the context of certain example combinations of elements and/or functions, it should be understood that different combinations of elements and/or functions may be provided through alternative embodiments without departing from the scope of the present invention. In this regard, for example, combinations of elements and/or functions other than those explicitly described above are also contemplated, as may be set forth in some of the appended claims. Although specific terms are employed herein, they are used in a generic and descriptive sense only and not for purposes of limitation.

100:控制器 100A:主控制器 100B:次控制器 102:電路系統 104:資料匯流排;邏輯電路 104A:串列資料(SDA)線 106:SDA線介面 108:輸出SDA墊緩衝器 110:輸出資料 112:資料 200:系統 202:電子裝置 204B:SCL線 208:目標 300:系統 304:傳統目標;I2C目標 502:輸入SDA墊緩衝器 504:狀態機 506:偵測器 508:互斥或閘;XOR閘 510:多工器 512:D正反器 514:多工器 516:墊緩衝器控制區塊 518:多工器 600:方法 602:方塊 604:方塊 606:方塊 608:方塊 610:方塊 612:方塊 614:方塊 616:方塊 618:方塊 620:方塊 622:方塊 624:方塊 626:方塊 628:方塊 630:方塊 100: Controller 100A: Primary Controller 100B: Secondary Controller 102: Circuit System 104: Data Bus; Logic Circuit 104A: Serial Data (SDA) Line 106: SDA Line Interface 108: Output SDA Pad Buffer 110: Output Data 112: Data 200: System 202: Electronic Device 204B: SCL Line 208: Target 300: System 304: Traditional Target; I2C Target 502: Input SDA Pad Buffer 504: State Machine 506: Detector 508: Exclusive OR Gate; XOR Gate 510: Multiplexer 512: D-type flip-flop 514: Multiplexer 516: Pad buffer control block 518: Multiplexer 600: Method 602: Block 604: Block 606: Block 608: Block 610: Block 612: Block 614: Block 616: Block 618: Block 620: Block 622: Block 624: Block 626: Block 628: Block 630: Block

因此,已經概括地描述本揭露的實例實施方案,現參照隨附的圖式,其不一定按比例繪製,且其中: [圖1]根據本揭露的一些實例實施方案繪示一控制器; [圖2]根據一些實例實施方案繪示一系統,其包括圖1的控制器; [圖3]根據一些實例實施方案繪示一系統,其可對應於圖2的系統,包括多個控制器及目標; [圖4A]、[圖4B]、及[圖4C]係根據一些實例實施方案之圖2或圖3的系統的一資料匯流排的線路上的信號的時序圖,其係用於該資料匯流排上的一交易,包括指定開始、停止、及重新開始狀況(圖4A)、一位址標頭(圖4B)、及一資料字(圖4C); [圖5]係根據一些實例實施方案之圖1的一控制器的功能性方塊圖;及 [圖6A]、[圖6B]、[圖6C]、[圖6D]、[圖6E]、[圖6F]、[圖6G]、及[圖6H]係根據各種實例實施方案繪示一方法中的各個步驟的流程圖。 Having thus generally described example embodiments of the present disclosure, reference is now made to the accompanying drawings, which are not necessarily drawn to scale, and in which: [FIG. 1] illustrates a controller according to some example embodiments of the present disclosure; [FIG. 2] illustrates a system including the controller of FIG. 1 according to some example embodiments; [FIG. 3] illustrates a system, which may correspond to the system of FIG. 2 , including multiple controllers and targets according to some example embodiments; [FIG. 4A], [FIG. 4B], and [FIG. 4C] are timing diagrams of signals on lines of a data bus of the system of FIG. 2 or FIG. 3 according to some example embodiments, for a transaction on the data bus, including specifying start, stop, and restart conditions (FIG. 4A), an address header (FIG. 4B), and a data word (FIG. 4C); FIG5 is a functional block diagram of a controller of FIG1 according to some example embodiments; and FIG6A, FIG6B, FIG6C, FIG6D, FIG6E, FIG6F, FIG6G, and FIG6H are flow charts illustrating steps in a method according to various example embodiments.

100:控制器 100: Controller

102:電路系統 102: Circuit System

104:資料匯流排;邏輯電路 104: Data bus; logic circuit

104A:串列資料(SDA)線 104A: Serial data (SDA) line

106:SDA線介面 106: SDA line interface

108:輸出SDA墊緩衝器 108: Output SDA pad buffer

110:輸出資料 110: Output data

112:資料 112: Data

Claims (20)

一種控制器,其包含:一串列資料(serial data, SDA)線介面,其用以將該控制器連接至一雙線共享的串列資料匯流排的一SDA線,該SDA線介面包含一輸出SDA墊緩衝器;一電路系統,其用以提供輸出資料以用於經由該輸出SDA墊緩衝器傳送至該SDA線上;及一邏輯電路,其係位於該電路系統外部,該邏輯電路係用以至少:在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;及基於所偵測到的該錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,且隨後造成該資料匯流排上的一停止狀況。A controller includes: a serial data (SDA) line interface for connecting the controller to an SDA line of a two-line shared serial data bus, the SDA line interface including an output SDA pad buffer; a circuit system for providing output data for transmission to the SDA line via the output SDA pad buffer; and a logic circuit located outside the circuit system, the logic circuit being configured to at least: transmit the output data to the SDA line; line, monitoring data on the SDA line; when the data monitored on the SDA line is different from the output data, comparing the data monitored on the SDA line with the output data to detect an error condition; and based on the detected error condition, disabling the output SDA pad buffer for a current byte of the output data provided by the circuit system, and subsequently causing a stall condition on the data bus. 如請求項1之控制器,其中該SDA線介面包含一輸入SDA墊緩衝器,以接收該SDA線上所監測的該資料,該輸入SDA墊緩衝器係用以濾除該SDA線上所監測的該資料中的雜訊,以產生經濾波的資料,且所監測的該資料係經濾波的該資料。A controller as claimed in claim 1, wherein the SDA line interface includes an input SDA pad buffer to receive the data monitored on the SDA line, the input SDA pad buffer is used to filter noise in the data monitored on the SDA line to generate filtered data, and the monitored data is the filtered data. 如請求項1之控制器,其中該邏輯電路包含一狀態機及一偵測器,以監測該SDA線上的該資料,該狀態機係用以至少:接收該SDA線上的一位址標頭已傳輸的一指示;及啟用該偵測器以監測該SDA線上的該資料中的該位址標頭後面的一或多個資料字。A controller as in claim 1, wherein the logic circuit includes a state machine and a detector to monitor the data on the SDA line, the state machine being configured to at least: receive an indication that an address header on the SDA line has been transmitted; and enable the detector to monitor the data on the SDA line for one or more data words following the address header. 如請求項1之控制器,其中該邏輯電路包含一偵測器以比較該SDA線上所監測的該資料與該輸出資料,該偵測器包含:一邏輯閘,其用以對在該SDA線上所監測的該資料的一或多個資料字與該輸出資料的一或多個資料字執行一逐位元比較;及一或多個順序邏輯元件,其用以設定一旗標,以在該逐位元比較指示該SDA線上所監測的該資料的該一或多個資料字與該輸出資料的該一或多個資料字不同時,指示偵測到該錯誤狀況,及其中,在該旗標經設定時,該邏輯電路係用以停用該輸出SDA墊緩衝器,且隨後造成該停止狀況。The controller of claim 1, wherein the logic circuit includes a detector to compare the data monitored on the SDA line with the output data, the detector including: a logic gate for performing a bit-by-bit comparison of one or more data words of the data monitored on the SDA line with one or more data words of the output data; and one or more sequence logic elements A device is provided for setting a flag to indicate that the error condition has been detected when the bit-by-bit comparison indicates that the one or more data words of the data monitored on the SDA line are different from the one or more data words of the output data, and wherein, when the flag is set, the logic circuit is configured to disable the output SDA pad buffer and subsequently cause the stall condition. 如請求項1之控制器,其中該輸出SDA墊緩衝器係具有一啟用/停用輸入的一三態緩衝器,該邏輯電路係經由該啟用/停用輸入來停用該輸出SDA墊緩衝器。The controller of claim 1, wherein the output SDA pad buffer is a tri-state buffer having an enable/disable input, and the logic circuit disables the output SDA pad buffer via the enable/disable input. 如請求項1之控制器,其中該邏輯電路係用以造成該資料匯流排上的該停止狀況,以使一目標來結束該SDA線上的該資料之傳送。The controller of claim 1, wherein the logic circuit is configured to cause the stall condition on the data bus to cause a target to terminate the transmission of the data on the SDA line. 如請求項1之控制器,其中該邏輯電路用以使該停止狀況包含該邏輯電路以:對該SDA線上所監測的該資料的一目前資料字的位元位置進行計數,以識別該SDA線上所監測的該資料的該目前資料字的一確認/非確認(acknowledge / non-acknowledge, ACK/NACK)位元位置;及當識別出該SDA線上所監測的該資料的該目前資料字的該ACK/NACK位元位置時,造成該資料匯流排上的該停止狀況。The controller of claim 1, wherein the logic circuit is configured to cause the stall condition to include the logic circuitry to: count bit positions of a current data word of the data monitored on the SDA line to identify an acknowledge/non-acknowledge (ACK/NACK) bit position of the current data word of the data monitored on the SDA line; and cause the stall condition on the data bus when the ACK/NACK bit position of the current data word of the data monitored on the SDA line is identified. 如請求項1之控制器,其中該資料匯流排包括該SDA線及一串列時脈(serial clock, SCL)線;及其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以在該SCL線上的一電壓位準處於一高位期間在該SDA線上造成一電壓位準的一低至高轉變。The controller of claim 1, wherein the data bus includes the SDA line and a serial clock (SCL) line; and wherein the logic circuit for causing the stop condition on the data bus comprises: the logic circuit for causing a low-to-high transition of a voltage level on the SDA line while a voltage level on the SCL line is high. 如請求項1之控制器,其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以指示該電路系統在該資料匯流排上確立該停止狀況。The controller of claim 1, wherein the logic circuit is configured to cause the stall condition on the data bus, comprising: the logic circuit is configured to instruct the circuit system to establish the stall condition on the data bus. 如請求項1之控制器,其中該邏輯電路用以造成該資料匯流排上的該停止狀況包含:該邏輯電路用以在該資料匯流排上確立該停止狀況。The controller of claim 1, wherein the logic circuit is configured to cause the stall condition on the data bus, comprising: the logic circuit is configured to establish the stall condition on the data bus. 一種用於在串列資料匯流排上偵測錯誤狀況之方法,其包含:從一電路系統提供輸出資料,以用於經由一輸出SDA墊緩衝器傳送至一雙線共享的串列資料匯流排的一串列資料(SDA)線上;及藉由位在一電路系統外部的一邏輯電路,在將該輸出資料傳送至該SDA線上的同時,監測該SDA線上的資料;當該SDA線上所監測的該資料與該輸出資料不同時,比較該SDA線上所監測的該資料與該輸出資料,以偵測一錯誤狀況;及基於所偵測到的該錯誤狀況,對由該電路系統所提供的該輸出資料的一目前位元組,停用該輸出SDA墊緩衝器,及隨後造成該資料匯流排上的一停止狀況。A method for detecting an error condition on a serial data bus includes: providing output data from a circuit system for transmission to a serial data (SDA) line of a two-wire shared serial data bus through an output SDA pad buffer; and monitoring the SDA line while transmitting the output data to the SDA line by a logic circuit external to the circuit system. data on the SDA line; comparing the data monitored on the SDA line with the output data to detect an error condition when the data monitored on the SDA line is different from the output data; and based on the detected error condition, disabling the output SDA pad buffer for a current byte of the output data provided by the circuit system, and subsequently causing a stall condition on the data bus. 如請求項11之方法,其包含濾除該SDA線上的該資料中的雜訊,以產生經濾波的資料,且其中所監測的該資料係經濾波的該資料。The method of claim 11, comprising filtering noise from the data on the SDA line to produce filtered data, and wherein the monitored data is the filtered data. 如請求項11之方法,其中監測該SDA線上的該資料包含:接收該SDA線上的一位址標頭已傳輸的一指示;及監測該SDA線上的該資料中的該位址標頭後面的一或多個資料字。The method of claim 11, wherein monitoring the data on the SDA line comprises: receiving an indication that an address header has been transmitted on the SDA line; and monitoring the data on the SDA line for one or more data words following the address header. 如請求項11之方法,其中比較該SDA線上所監測的該資料與該輸出資料包含:對在該SDA線上所監測的該資料的一或多個資料字與該輸出資料的一或多個資料字執行一逐位元比較;及設定一旗標,以在該逐位元比較指示該SDA線上所監測的該資料的該一或多個資料字與該輸出資料的該一或多個資料字不同時,指示偵測到該錯誤狀況,及其中當該旗標經設定時,停用該輸出SDA墊緩衝器,且隨後造成該停止狀況。The method of claim 11, wherein comparing the data monitored on the SDA line with the output data comprises: performing a bit-by-bit comparison of one or more data words of the data monitored on the SDA line with one or more data words of the output data; and setting a flag to indicate that the error condition has been detected when the bit-by-bit comparison indicates that the one or more data words of the data monitored on the SDA line are different from the one or more data words of the output data, and wherein when the flag is set, disabling the output SDA pad buffer and subsequently causing the stop condition. 如請求項11之方法,其中該輸出SDA墊緩衝器係具有一啟用/停用輸入的一三態緩衝器,該輸出SDA墊緩衝器係經由該啟用/停用輸入而被停用。The method of claim 11, wherein the output SDA pad buffer is a tri-state buffer having an enable/disable input, the output SDA pad buffer being disabled via the enable/disable input. 如請求項11之方法,其中造成該資料匯流排上的該停止狀況係用以使一目標來結束該SDA線上所監測的該資料的傳送。The method of claim 11, wherein causing the stall condition on the data bus is used to cause a target to terminate transmission of the data monitored on the SDA line. 如請求項11之方法,其中造成該停止狀況包含:對該SDA線上所監測的該資料的一目前資料字的位元位置進行計數,以識別該SDA線上所監測的該資料的該目前資料字的一確認/非確認(ACK/NACK)位元位置;及當識別出該SDA線上所監測的該資料的該目前資料字的該ACK/NACK位元位置時,造成該資料匯流排上的該停止狀況。The method of claim 11, wherein causing the stall condition comprises: counting the bit positions of a current data word of the data monitored on the SDA line to identify an acknowledgement/non-acknowledgement (ACK/NACK) bit position of the current data word of the data monitored on the SDA line; and causing the stall condition on the data bus when the ACK/NACK bit position of the current data word of the data monitored on the SDA line is identified. 如請求項11之方法,其中該資料匯流排包括該SDA線及一串列時脈(SCL)線,且其中造成該資料匯流排上的該停止狀況包含:在該SCL線上的一電壓位準處於一高位期間,造成該SDA線上的一電壓位準的一低至高轉變。The method of claim 11, wherein the data bus includes the SDA line and a serial clock (SCL) line, and wherein causing the stop condition on the data bus comprises: causing a low-to-high transition of a voltage level on the SDA line while a voltage level on the SCL line is high. 如請求項11之方法,其中造成該資料匯流排上的該停止狀況包含:藉由該邏輯電路指示該電路系統確立該資料匯流排上的該停止狀況。The method of claim 11, wherein causing the stall condition on the data bus comprises: instructing the circuit system to establish the stall condition on the data bus via the logic circuit. 如請求項11之方法,其中造成該資料匯流排上的該停止狀況包含:藉由該邏輯電路確立該資料匯流排上的該停止狀況。The method of claim 11, wherein causing the stall condition on the data bus comprises: establishing the stall condition on the data bus by the logic circuit.
TW113125793A 2023-09-21 2024-07-10 Detection of an error condition on a serial data bus TWI900117B (en)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
IN202341063537 2023-09-21
IN202341063537 2023-09-21
US18/410,615 2024-01-11
US18/410,615 US20250103538A1 (en) 2023-09-21 2024-01-11 Detection of an error condition on a serial data bus

Publications (2)

Publication Number Publication Date
TW202514390A TW202514390A (en) 2025-04-01
TWI900117B true TWI900117B (en) 2025-10-01

Family

ID=92142199

Family Applications (1)

Application Number Title Priority Date Filing Date
TW113125793A TWI900117B (en) 2023-09-21 2024-07-10 Detection of an error condition on a serial data bus

Country Status (2)

Country Link
TW (1) TWI900117B (en)
WO (1) WO2025064038A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN120407488B (en) * 2025-06-30 2025-09-19 苏州元脑智能科技有限公司 A server and a two-wire serial bus anti-hanging device thereof

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW463094B (en) * 1999-02-18 2001-11-11 Ibm Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2C bus
TW201923605A (en) * 2017-08-14 2019-06-16 美商高通公司 Device, event and message parameter association in a multi-drop bus
US20220156146A1 (en) * 2020-11-18 2022-05-19 Samsung Electronics Co., Ltd. Memory controller performing selective and parallel error correction, system including the same and operating method of memory device

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007164765A (en) * 2005-11-15 2007-06-28 Matsushita Electric Ind Co Ltd IIC bus communication system, slave device, and IIC bus communication control method

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW463094B (en) * 1999-02-18 2001-11-11 Ibm Method and apparatus for connecting manufacturing test interface to a global serial bus including an I2C bus
TW201923605A (en) * 2017-08-14 2019-06-16 美商高通公司 Device, event and message parameter association in a multi-drop bus
US20220156146A1 (en) * 2020-11-18 2022-05-19 Samsung Electronics Co., Ltd. Memory controller performing selective and parallel error correction, system including the same and operating method of memory device
CN114550773A (en) * 2020-11-18 2022-05-27 三星电子株式会社 Memory controller, memory system, and data processing method

Also Published As

Publication number Publication date
WO2025064038A1 (en) 2025-03-27
TW202514390A (en) 2025-04-01

Similar Documents

Publication Publication Date Title
TWI582603B (en) Method of detecting i/o device connection and peripheral i/o device and host computing device thereof
CN104350481B (en) Equipment disconnection detection
TWI506446B (en) A computing device, a universal serial bus port, and a method of operating a universal serial bus
CN112639753B (en) Aggregated inband interruption
US11567893B2 (en) Method and a mirrored serial interface (MSI) for transferring data
TWI900117B (en) Detection of an error condition on a serial data bus
WO2025185507A1 (en) Bus circuit and electronic device
US20250103538A1 (en) Detection of an error condition on a serial data bus
US20240419524A1 (en) Detection and recovery from an error condition on a serial data bus
WO2024259196A1 (en) Detection and recovery from an error condition on a serial data bus
CN108183705B (en) One-way bus transmission method for server system
TW202514388A (en) Detection of a stop condition asserted by a target on a serial data bus
US20240419623A1 (en) Detection of a stuck data line of a serial data bus
US20250103540A1 (en) Detection of a stop condition asserted by a target on a serial data bus
CN121311880A (en) Detection of stuck data lines on the serial data bus
CA3047934C (en) A method and a mirrored serial interface (msi) for transferring data
JP2001043181A (en) Method for communication between microcomputers