DE102014223362A1 - Steuerungseinrichtung für I²C-Slave-Einrichtungen - Google Patents

Steuerungseinrichtung für I²C-Slave-Einrichtungen Download PDF

Info

Publication number
DE102014223362A1
DE102014223362A1 DE102014223362.3A DE102014223362A DE102014223362A1 DE 102014223362 A1 DE102014223362 A1 DE 102014223362A1 DE 102014223362 A DE102014223362 A DE 102014223362A DE 102014223362 A1 DE102014223362 A1 DE 102014223362A1
Authority
DE
Germany
Prior art keywords
input
flip
flop
reset
line
Prior art date
Legal status (The legal status 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 status listed.)
Pending
Application number
DE102014223362.3A
Other languages
English (en)
Inventor
Dorde CVEJANOVIC
Jan Hayek
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Robert Bosch GmbH
Original Assignee
Robert Bosch GmbH
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Robert Bosch GmbH filed Critical Robert Bosch GmbH
Priority to DE102014223362.3A priority Critical patent/DE102014223362A1/de
Priority to US14/929,864 priority patent/US9892085B2/en
Priority to KR1020150160262A priority patent/KR102414143B1/ko
Priority to CN201510790263.1A priority patent/CN105608038B/zh
Publication of DE102014223362A1 publication Critical patent/DE102014223362A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/36Handling requests for interconnection or transfer for access to common bus or bus system
    • G06F13/362Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control
    • G06F13/364Handling requests for interconnection or transfer for access to common bus or bus system with centralised access control using independent requests or grants, e.g. using separated request and grant lines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/404Coupling between buses using bus bridges with address mapping
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0016Inter-integrated circuit (I2C)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Information Transfer Systems (AREA)
  • Bus Control (AREA)
  • Debugging And Monitoring (AREA)

Abstract

Verfahren zum Ansteuern einer I2C-Slave-Einrichtung mittels einer Steuerungseinrichtung (100), aufweisend die Schritte: – Auswerten von Zuständen auf einer Datenleitung (SDA) und auf einer Taktleitung (SCL) des I2C-Busses; und – Zuordnen der Zustände auf der Datenleitung (SDA) und auf der Taktleitung (SCL) zu Zuständen (DL, DH, I, SP, ST) eines Zustandsdiagramms (FSM), wobei mittels der Steuerungseinrichtung (100) aus den Zuständen (DL, DH, I, SP, ST) des Zustandsdiagramms (FSM) Steuerungssignale (START, RESET) für die I2C-Slave Einrichtung generiert werden.

Description

  • Die Erfindung betrifft ein Verfahren zum Ansteuern von wenigstens einer I2C-Slave-Einrichtung. Die Erfindung betrifft weiterhin eine Steuerungseinrichtung für wenigstens eine I2C-Slave-Einrichtung.
  • Stand der Technik
  • Die I2C Schnittstelle (engl. Inter-Integrated Circuit) verwendet zwei bidirektionale Leitungen, um eine Kommunikation zwischen einem oder mehreren Masters und einem oder mehreren Slaves bereitzustellen. Die genannten zwei Leitungen SDA (engl. Serial Data Line) und SCL (engl. Serial Clock Line) werden verwendet, um Daten zu senden und den Beginn und ein Ende von Transaktionen auf der Schnittstelle bzw. am Bus anzuzeigen. Ein Beginn und ein Ende der Transaktion werden mit „START“ und „STOP“ bezeichnet. Jede Slave-Einrichtung am I2C-Bus muss eine Einrichtung aufweisen, welche die START/STOP-Zustände detektiert und/oder Daten sendet und/oder empfängt.
  • Die Slave-Einrichtung muss aber auch zwischen korrekten und inkorrekten Transaktionen unterscheiden und darf nur auf korrekte Transaktionen reagieren. Die genannten unzulässigen Transfers entsprechen nicht der I2C-Spezifikation, werden aber oftmals von verschiedenen Mikrorechnereinrichtungen im Markt verwendet, um alle Einrichtungen auf dem I2C-Bus zurückzusetzen (engl. to reset).
  • Bereits bekannte Schaltungen, die zum Beispiel in US 6530029 oder CN 202600693 offenbart sind, haben Probleme mit den oben genannten nicht standardkonformen Transfers und können zu Zuständen führen, wo die Einrichtung nicht mehr korrekt funktioniert.
  • Ein in EP 1607864 offenbarter Watchdog-Timer aus könnte das genannte Problem lösen. Dabei kann es aber passieren, dass einige der Transaktionen nicht erkannt oder verworfen werden, was zu einem Verlust von Daten führen kann.
  • Eine weitere Lösung, die in GB 2313987 vorgeschlagen ist, funktioniert nur, wenn es einen Systemtakt gibt mit wesentlich höherer Frequenz in der Einrichtung, welche verwendet werden kann, um die Signale SDA und SCL überabzutasten (engl. to oversample).
  • Offenbarung der Erfindung
  • Es ist daher eine Aufgabe der vorliegenden Erfindung, ein Verfahren bereitzustellen, welches ein zuverlässiges Funktionieren von I2C-Slave Einrichtungen am I2C Bus unterstützt.
  • Die Aufgabe wird gemäß einem ersten Aspekt gelöst mit einem Verfahren zum Ansteuern einer I2C Slave Einrichtung, aufweisend die Schritte:
    • – Auswerten von Zuständen auf einer Datenleitung und auf einer Taktleitung des I2C-Busses;
    • – Zuordnen der Zustände auf der Datenleitung und auf der Taktleitung zu Zuständen eines Zustandsdiagramms, wobei mittels der Steuerungseinrichtung aus den Zuständen des Zustandsdiagramms Steuerungssignale für die I2C-Slave Einrichtung generiert werden.
  • Vorteilhaft können mit dem erfindungsgemäßen Verfahren verbotene bzw. illegale Aktionen am I2C Bus für Busteilnehmer „ausgeblendet“ werden. Falls am Bus ein illegaler Zustand auftritt, ist stets ein Reset-Zustand aktiv. Vorteilhaft ist dies mittels einer synchronen Schaltung einfach zu realisieren. Dadurch kann der I2C-Slave immer richtig funktionieren, ungeachtet des illegalen Geschehens, das sich am I2C-Bus abspielt. Im Ergebnis ist damit der I2C-Slave vor falschen Antworten auf den Bus geschützt, wobei vorteilhaft alle am I2C-Bus angeschlossenen I2C-Slave-Einrichtungen von der Erfindung profitieren.
  • Gemäß einem zweiten Aspekt wird die Aufgabe gelöst mit einer Steuerungseinrichtung zum Ansteuern einer I2C-Slave-Einrichtung, aufweisend:
    • – eine Zuführung von einer Datenleitung eines I2C-Buses;
    • – eine Zuführung von einer Taktleitung des I2C-Buses; wobei
    • – die Steuerungseinrichtung eingerichtet ist, dass sie Zuständen auf der Datenleitung und auf der Taktleitung Zustände eines Zustandsdiagramms zuordnet;
    • – wobei aus den Zuständen des Zustandsdiagramms Steuerungssignale für die I2C-Slave-Einrichtung generierbar sind.
  • Bevorzugte Weiterbildungen des Verfahrens und der Steuerungseinrichtung sind Gegenstand von abhängigen Ansprüchen.
  • Eine vorteilhafte Weiterbildung des Verfahrens sieht vor, dass auf einer ersten Steuerungsleitung ein Start-Steuerungssignal aktiviert wird, wenn die Taktleitung einen High-Pegel aufweist und die Datenleitung eine fallende Flanke aufweist, gefolgt von einer fallenden Flanke auf der Taktleitung. Auf diese Weise kann ein Steuerungssignal für die I2C-Slave-Einrichtung generiert werden, nach dessen Übermittlung ein gültiger Transfer am I2C-Bus möglich ist.
  • Eine vorteilhafte Weiterbildung des Verfahrens sieht vor, dass auf der ersten Steuerungsleitung das Start-Steuerungssignal deaktiviert wird, wenn die Taktleitung High-Pegel aufweist. Auf diese Weise kann ein Steuersignal für die I2C-Slave-Einrichtung generiert werden, nach dessen Übermittlung ein gültiger Transfer am I2C Bus möglich ist.
  • Weitere vorteilhafte Weiterbildungen des Verfahrens sehen vor, dass auf einer zweiten Steuerungsleitung ein Rücksetz-Steuerungssignal aktiviert wird, wenn auf der Datenleitung eine fallende Flanke auftritt und die Taktleitung High-Pegel aufweist. Auf diese Weise kann das Rücksetz-Steuerungssignal auf definierte Weise aus Signalzuständen auf Leitungen des I2C-Buses generiert werden.
  • Eine weitere vorteilhafte Weiterbildung des Verfahrens sieht vor, dass das Rücksetz-Steuerungssignal deaktiviert wird, nachdem das Start-Steuerungs-signal generiert worden ist.
  • Eine vorteilhafte Weiterbildung der Steuerungseinrichtung sieht vor, dass die Datenleitung mit einem Eingang eines ersten Inverters, mit einem invertierten Takteingang eines zweiten D-Flipflops und mit einem Takteingang eines vierten D-Flipflops verschaltet ist;
    wobei ein Ausgang des ersten Inverters mit einem zweiten Eingang eines OR-Gatters verschaltet ist;
    wobei die Taktleitung mit einem Eingang des zweiten D-Flipflops, mit einem Reset-Eingang des zweiten D-Flipflops, mit einem Takteingang eines ersten D-Flipflops, mit einem Dateneingang des vierten D-Flipflops und mit einem Takteingang eines dritten D-Flipflops verschaltet ist;
    wobei ein Ausgang des zweiten D-Flipflops mit einem Eingang eines zweiten Inverters, mit einem Eingang des dritten D-Flipflops und mit einem ersten Eingang eines NOR-Gatters verschaltet ist;
    wobei ein Ausgang des zweiten Inverters mit einem Reset-Eingang des ersten D-Flipflops verschaltet ist;
    wobei ein Ausgang des vierten D-Flipflops mit einem zweiten Eingang des NOR-Gatters verschaltet ist;
    wobei ein Ausgang des dritten D-Flipflops mit einer ersten Steuerleitung der I2C-Slave Einrichtung, mit einem ersten Eingang eines OR-Gatters und mit einem Eingang eines dritten Inverters verschaltet ist;
    wobei ein Ausgang des dritten Inverters mit einem Reset-Eingang des vierten D-Flipflops verschaltet ist;
    wobei ein Ausgang des OR-Gatters mit einem Eingang des ersten D-Flipflops verschaltet ist;
    wobei ein Ausgang des ersten D-Flipflops mit einem Eingang eines vierten Inverters verschaltet ist;
    wobei ein Ausgang des vierten Inverters mit einem Reset-Eingang des dritten D-Flipflops verschaltet ist; und
    wobei ein Ausgang des NOR-Gatters mit einer zweiten Steuerleitung für die I2C-Slave Einrichtung verschaltet ist.
  • Die Erfindung wird im Folgenden mit weiteren Merkmalen und Vorteilen anhand von mehreren Figuren im Detail beschrieben. Dabei bilden alle Merkmale, unabhängig von ihrer Darstellung in der Beschreibung und in den Figuren, sowie unabhängig von ihrer Rückbeziehung in den Patentansprüchen den Gegenstand der vorliegenden Erfindung.
  • In den Figuren zeigt:
  • 1 ein funktionelles Statusdiagramm zur Erläuterung des Funktionsprinzips der Erfindung;
  • 2 eine Ausführungsform einer erfindungsgemäßen Steuerungseinrichtung;
  • 3 ein Zeitdiagramm von Steuersignalen, die gemäß dem erfindungsgemäßen Verfahren realisiert werden; und
  • 4 eine prinzipielles Ablaufdiagramm einer Ausführungsform des erfindungsgemäßen Verfahrens
  • Beschreibung von Ausführungsformen
  • 1 zeigt ein funktionelles Statusdiagramm, dass das Funktionsprinzip der Erfindung zeigt.
  • Dargestellt sind fünf verschiedene Zustände DL, DH, SP, ST, I, die sich aufgrund von elektrischen Zuständen auf der Datenleitung SDA und auf der Taktleitung SCL einstellen dürfen, wobei die genannten Zustände nachfolgende Bedeutungen haben:
    DL ... 0 bzw. GND-Potential auf der Datenleitung SDA während eines laufenden Datentransfers
    DH ... 1 bzw. HIGH-Potential auf der Datenleitung SDA während eines laufenden Datentransfers
    SP ... Zustand „STOP“ wird am I2C-Bus erkannt
    ST ... Zustand „START“ wird am I2C-Bus erkannt
    I ... Unzulässiger Zustand wird am I2C-Bus erkannt.
  • Die zwischen den genannten Zuständen DL, DH, SP, ST, I dargestellten Pfeile bezeichnen Transitionen bzw. Übergänge zwischen den einzelnen Zuständen, wobei sich der erste Term auf den Zustand der Datenleitung SDA bezieht und wobei sich der zweite Term sich auf den Zustand der Taktleitung SCL bezieht.
  • Ein „L“ des ersten Terms bedeutet eine fallende Flanke auf der Datenleitung SDA und eine „0“ des ersten Terms bedeutet einen konstanten Low-Pegel auf der Datenleitung SDA.
  • Ein „H“ des ersten Terms bedeutet eine steigende Flanke auf der Datenleitung SDA und eine „1“ des ersten Terms bedeutet einen konstanten High-Pegel auf der Datenleitung SDA.
  • Eine „0“ des zweiten Terms bedeutet einen konstanten Low-Pegel auf der Taktleitung SCL und eine „1“ des zweiten Terms bedeutet einen konstanten High-Pegel auf der Taktleitung SCL.
  • Ein „H“ des zweiten Terms bedeutet eine steigende Flanke auf der Taktleitung SCL und ein „L“ des zweiten Terms bedeutet eine fallende Flanke auf der Taktleitung SCL.
  • Findet kein Zustandswechsel auf den Leitungen SDA und SCL statt, findet auch kein Übergang im Statusdiagramm 1 statt.
  • Zum Beispiel bedeutet also L1, dass auf der Datenleitung SDA eine fallende Flanke und auf der Taktleitung SCL ein konstanter HIGH-Pegel vorhanden ist.
  • 2 zeigt ein Ausführungsbeispiel einer erfindungsgemäßen Steuerungseinrichtung 100 zum Ansteuerung einer I2C-Slave-Einrichtung. Die Steuerungseinrichtung 100 ist als eine synchrone Logik mit D-Flipflops ausgebildet, die alle jeweils einen asynchronen Reset-Eingang aufweisen. Erkennbar sind die zwei Leitungen SCL und SDA, deren elektrische Zustände bzw. Pegel als Stimuli für die Steuerungseinrichtung 100 verwendet werden.
  • Die Datenleitung SDA wird an einen Eingang eines ersten Inverters 70, an einen invertierten Takteingang eines zweiten D-Flipflops 20 und an einen Takteingang eines vierten D-Flipflops 40 zugeführt. Die Taktleitung SCL wird an einen Dateneingang des zweiten D-Flipflops 20, an einen Reset-Eingang des zweiten D-Flipflops 20, an einen Takteingang des ersten D-Flipflops 10, an einen invertierten Takteingang des dritten D-Flipflops 30 und an einen Dateneingang des vierten D-Flipflops 40 zugeführt.
  • Der Ausgang des zweiten D-Flipflops 20 wird an einen Eingang des dritten D-Flipflops 30, an einen Eingang eines zweiten Inverters 71 und an einen Eingang eines NOR-Gatters 60 zugeführt. Ein Ausgang des vierten D-Flipflops 40 wird an einen zweiten Eingang eines NOR-Gatters 60 zugeführt.
  • Der Ausgang des dritten D-Flipflops 30 bildet eine erste Steuerungsleitung LTG1, auf der ein Signal START für die I2C-Slave-Einrichtung (nicht dargestellt) ausgegeben wird. Der Ausgang des dritten D-Flipflops 30 wird ferner an einen ersten Eingang des OR-Gatters 50 zugeführt und weiterhin an einen Eingang eines dritten Inverters 72. Der Ausgang des dritten Inverters 72 wird einem Reset-Eingang des vierten D-Flipflops 40 zugeführt.
  • Der Ausgang des ersten Inverters 70 wird einem zweiten Eingang des OR-Gatters 50 zugeführt, wobei der Ausgang des OR-Gatters 50 einem Dateneingang des ersten D-Flipflops 10 zugeführt wird. Der Ausgang des zweiten Inverters 71 ist einem Reset-Eingang des ersten D-Flipflops 10 zugeführt. Der Ausgang des ersten D-Flipflops 10 ist einem Eingang eines vierten Inverters 73 zugeführt, dessen Ausgang einem Reset-Eingang des dritten D-Flipflops 30 zugeführt ist. Der Ausgang des dritten Inverters 72 wird einem Reset-Eingang des vierten D-Flipflops 40 zugeführt.
  • Der Ausgang des NOR-Gatters 60 stellt eine zweite Steuerungsleitung LTG2 dar, auf der für die I2C-Slave Einrichtung ein Rücksetz-Steuerungssignal RESET bereitgestellt wird. Wenn wenigstens einer der Ausgänge des zweiten D-Flipflops 20 (Zustand ST wird am I2C-Bus detektiert) oder des vierten D-Flipflops 40 (Zustand SP wird am I2C-Bus detektiert) aktiv ist, wird vom NOR-Gatter 60 das Rücksetz-Steuerungssignal RESET generiert. Dies bedeutet, dass das Low-aktive Rücksetz-Steuerungssignal RESET nur dann aktiv ist, wenn am I2C-Bus der Zustand ST erkannt wird oder im Falle, dass am I2C-Bus ein nicht I2C-spezifikationsgemäßes Busgeschehen auftritt.
  • Im Ergebnis wird mittels der Steuerungseinrichtung 100 auf der ersten Steuerungsleitung LTG1 das Start-Steuerungssignal START nach einem korrekten ST-Zustand generiert, das heißt, wenn auf der Datenleitung SDA eine fallende Flanke auftritt und die Taktleitung SCL High-Pegel aufweist, gefolgt von einer fallenden Flanke auf der Taktleitung SCL.
  • Das Start-Steuerungssignal START wird nachfolgend mit einem HIGH-Pegel auf der Taktleitung SCL zurückgesetzt. Das Start-Steuerungssignal START wird für die I2C-Slave Einrichtung vorzugsweise zum Anzeigen eines gültigen Transfers am I2C-Bus benutzt.
  • Das Rücksetz-Steuerungssignal RESET wird auf der zweiten Steuerungsleitung LTG2 jedes Mal dann generiert, wenn mittels des Statusdiagramms von 1 die Zustände ST oder SP oder I am I2C-Bus detektiert wurden. Dies bedeutet, dass das Rücksetz-Steuerungssignal RESET jedes Mal dann generiert wird, wenn auf der Datenleitung SDA eine fallende Flanke auftritt und die Taktleitung High-Pegel aufweist (Zustand ST), oder wenn auf der Datenleitung SDA eine steigende Flanke auftritt und die Taktleitung SCL High-Pegel aufweist (Zustand SP), oder wenn die Datenleitung High-Pegel aufweist und auf der Taktleitung eine fallende Flanke auftritt (Übergang in den Zustand I), wenn der Zustand SP vorliegt.
  • Das Rücksetz-Steuerungssignal RESET wird dann mit dem nachfolgenden Start-Steuerungssignal START zurückgesetzt. Das Rücksetz-Steuerungssignal RESET kann dadurch als ein asynchrones Resetsignal für die I2C-Slave Einrichtung benutzt werden.
  • Im Ergebnis werden auf diese Weise mittels der Steuerungseinrichtung 100 das Start-Steuerungssignal START und das Rücksetz-Steuerungssignal RESET gesteuert, die der die I2C-Slave-Einrichtung (nicht dargestellt) zugeführt werden.
  • Das zweite D-Flipflop 20 erkennt den Beginn des Zustands ST gemäß der I2C Spezifikation mittels einer fallenden Flanke auf der Datenleitung SDA, während die Taktleitung SCL auf HIGH-Pegel ist.
  • Das dritte D-Flipflop 30 detektiert das Ende des Zustands ST am I2C-Bus mittels einer fallenden Flanke auf der Taktleitung SCL, nachdem der Zustand ST detektiert wurde.
  • Das vierte D-Flipflop 40 detektiert den Zustand SP gemäß der I2C-Spezifikation mittels einer steigenden Flanke auf der Datenleitung SDA, während die Taktleitung SCL auf konstantem High-Pegel ist.
  • Auf diese Weise ist ein Einbau der gesamten Steuerungseinrichtung 100 in eine Scan-Chain möglich und unterstützt dadurch ein kostengünstiges, automatisiertes, digitales Testen der gesamten Steuerungseinrichtung 100, weil keinerlei zusätzliche Tests mit Scan-Chain-Testmustern (engl. Scan-Chain-Pattern) implementiert werden müssen. Vorteilhaft ist mittels der Realisierung der Steuerungseinrichtung mit D-Flipflops eine geometrisch kleine Ausgestaltung der Steuerungseinrichtung 100 unterstützt.
  • Das erste D-Flipflop 10 generiert das Zurücksetzen des Start-Steuerungssignals START, wobei mittels des OR-Gatters 50 die Vorbereitungen dazu getroffen werden. Das OR-Gatter 50 bereitet also vor, was vom ersten D-Flipflop 10 abgetastet (engl. sampled) werden soll, wenn auf der Taktleitung SCL eine steigende Flanke an den Takteingang des ersten D-Flipflops 10 zugeführt wird.
  • Die Steuerungseinrichtung 100 kann vorzugsweise auch als ein Teil der I2C-Slave Einrichtung ausgebildet sein. Im Ergebnis ist mit der Steuerungseinrichtung 100 ein spezifikationskonformes Verhalten am I2C-Bus ermöglicht. Insbesondere ist es für die am I2C Bus angeschlossenen I2C-Slave-Einrichtung möglich, ordnungsgemäß zu funktionieren, obwohl ein Betrieb von anderen am I2C angeschlossenen Busteilnehmern nicht der I2C-Spezifikaiton entspricht.
  • Anhand von vier Szenarien am I2C-Bus soll nachfolgend anhand von 3 eine Funktionsweise der Steuerungseinrichtung 100 beschrieben werden. Die 3 zeigt beispielhaft ein zeitliches Signalverhalten der genannten Bauelemente 10 bis 60 in Reaktion auf die Stimuli auf den Leitungen SDA und SCL.
  • Unterhalb von 3 ist ein Zustandsdiagramm FSM in Entsprechung zum Statusdiagramm von 1 dargestellt, welches die Zustände am I2C-Bus repräsentiert, wobei das Start-Steuerungssignal START und das Rücksetz-Steuersignal RESET konform zur I2C-Spezifikation erzeugt werden.
  • Im Ergebnis ist das Verhalten der Steuerungssignale START und RESET derart ausgebildet, dass die I2C-Slave Einrichtung immer den I2C Spezifikation entsprechend reagiert, unabhängig von einem unter Umständen nicht spezifikationsgemäßen Verhalten von Signalen auf den Leitungen SDA, SCL. Als ein Beispiel eines erlaubten Verhaltens ist im Abschnitt A des Zustandsdiagramms FSM dargestellt, dass das Start-Steuerungssignal START korrekt generiert wird, wodurch das Rücksetz-Steuerungssignal RESET zurückgesetzt wird.
  • Das Rücksetz-Steuerungssignal RESET unterstützt somit eine Inaktivität der I2C Slave Einrichtung im Falle, dass am I2C-Bus ein nicht spezifikationsgemäßes Geschehen detektiert wurde.
  • In einem Abschnitt B des Zustandsdiagramms FSM von 3 ist erkennbar, dass der I2C-Bus vom Zustand SP in den Zustand I wechselt, was ein unzulässiges Geschehen am I2C-Bus darstellt. Dies hat zur Folge, dass das Rücksetz-Steuerungssignal RESET aktiv wird, d.h. dass das Low-aktive Rücksetz-Steuerungssignal RESET den Low-Pegel einnimmt.
  • Nachfolgend erfolgt am I2C-Bus in einem Abschnitt C ein Übergang vom SP-Zustand in den ST-Zustand, was ebenfalls nicht der I2C-Spezifikation entspricht.
  • Dabei wird beispielsweise von einem am I2C-Bus angeschlossenen Master oder Slave vorgegeben, einen Zustand ST zu erzeugen, was jedoch nicht der I2C Spezifikation entspricht. Daher erzeugt die Steuerungseinrichtung 100 entsprechend der I2C-Spezifikation auch kein Start-Steuerungssignal START auf der Steuerungsleitung LTG1 und die Zustände der Steuerungsleitungen LTG1, LTG2 bleiben unverändert.
  • Im Abschnitt D erfolgt am I2C-Bus ein erlaubter Übergang vom Zustand ST in den Zustand DL. Daher wird auch ein Start-Steuerungssignal START auf der ersten Steuerungsleitung LTG1 erzeugt und die zweite Steuerungsleitung LTG2 wird zurückgesetzt, d.h. die Steuerungsleitung LTG2 nimmt High-Pegel an.
  • 4 zeigt einen prinzipiellen Ablauf einer Ausführungsform des erfindungsgemäßen Verfahrens.
  • In einem Schritt 200 wird ein Auswerten von Zuständen auf einer Datenleitung SDA und auf einer Taktleitung SCL des I2C-Buses durchgeführt.
  • In einem Schritt 210 wird ein Zuordnen der Zustände auf der Datenleitung SDA und auf der Taktleitung SCL zu Zuständen DL, DH, I, SP, ST eines Zustandsdiagramms FSM durchgeführt, wobei mittels der Steuerungseinrichtung 100 aus den Zuständen DL, DH, I, SP, ST des Zustandsdiagramms FSM Steuerungssignale START, RESET für die I2C-Slave Einrichtung generiert werden.
  • Nach dem Schritt 210 erfolgt eine Rückkehr zum Schritt 200, wodurch die Schritte 200 und 210 zyklisch abgearbeitet werden können.
  • Zusammenfassend werden mit der vorliegenden Erfindung ein Verfahren und eine Vorrichtung vorgeschlagen, mit denen ermöglicht ist, dass ein nicht-spezifikationsgemäßes Verhalten auf dem I2C Bus ohne nachteilige Wirkungen für die am I2C-Bus angeschlossenen Slave-Einrichtungen bleibt. Aufgrund der Tatsache, dass die I2C Spezifikation sehr streng ist und besagt, dass manche Kombinationen auf dem Bus verboten sind, kann auf diese Weise ein Verhalten von Busteilnehmern am I2C Bus ungestört von etwaigen Fehlverhalten am I2C Bus erfolgen.
  • Vorteilhaft kann das erfindungsgemäße Schaltverhalten mit einer Vielzahl von nicht dargestellten und beschriebenen alternativen Schaltungsvarianten erreicht werden. Es ist deshalb die Variante der Steuerungseinrichtung von 2 lediglich als ein Beispiel zu verstehen.
  • Mit der Erfindung ist eine Reihe von Vorteilen verbunden:
    Zum Beispiel ist die erfindungsgemäße Steuerungseinrichtung robust gegen Störungen bzw. missbräuchliche Verwendungen des I2C-Protokolls am I2C Bus. Ferner ist es vorteilhaft nicht erforderlich, zusätzliche externe Clocks zum Überabtasten des I2C-Buses zum Zwecke des Erkennens von Zuständen bereitzustellen. Ferner ist kein zusätzliches RESET-Steuerungssignal notwendig, ausgenommen das POR (engl. Power-on-Reset). Ferner ist es möglich, standardisierte digitale Elemente, wie z.B. Flipflops und Logikgatter zur Realisierung der Steuerungseinrichtung zu verwenden, was es ermöglicht, die Schaltung in RTL (engl. Register Transfer Language) wie z.B. VHDL oder Verilog® zu implementieren und die Steuerungseinrichtung unter Verwendung von Standardwerkzeugen zu realisieren. Die Steuerungseinrichtung kann unter Verwendung von standardisierten Scan- bzw. IDDQ-Verfahren getestet werden.
  • Der Fachmann wird also auch vorgehend nicht dargestellte Ausführungsformen der Erfindung realisieren, ohne vom Kern der Erfindung abzuweichen.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Patentliteratur
    • US 6530029 [0004]
    • CN 202600693 [0004]
    • EP 1607864 [0005]
    • GB 2313987 [0006]

Claims (8)

  1. Verfahren zum Ansteuern einer I C-Slave-Einrichtung mittels einer Steuerungseinrichtung (100), aufweisend die Schritte: – Auswerten von Zuständen auf einer Datenleitung (SDA) und auf einer Taktleitung (SCL) des I2C-Busses; und – Zuordnen der Zustände auf der Datenleitung (SDA) und auf der Taktleitung (SCL) zu Zuständen (DL, DH, I, SP, ST) eines Zustandsdiagramms (FSM), wobei mittels der Steuerungseinrichtung (100) aus den Zuständen (DL, DH, I, SP, ST) des Zustandsdiagramms (FSM) Steuerungssignale (START, RESET) für die I2C-Slave Einrichtung generiert werden.
  2. Verfahren nach Anspruch 1, wobei auf einer ersten Steuerungsleitung (LTG1) ein Start-Steuerungssignal (START) aktiviert wird, wenn die Datenleitung (SDA) eine fallende Flanke aufweist und die Taktleitung (SCL) High-Pegel aufweist gefolgt von einer fallenden Flanke auf der Taktleitung (SCL).
  3. Verfahren nach Anspruch 2, wobei auf der ersten Steuerungsleitung (LTG1) das Start-Steuerungssignal (START) deaktiviert wird, wenn die Taktleitung (SCL) High-Pegel aufweist.
  4. Verfahren nach Anspruch 2 oder 3, wobei auf einer zweiten Steuerungsleitung (LTG2) ein Rücksetz-Steuerungssignal (RESET) aktiviert wird, wenn auf der Datenleitung (SDA) eine fallende Flanke auftritt und die Taktleitung (SCL) High-Pegel aufweist.
  5. Verfahren nach einem der Ansprüche 2 bis 4, wobei auf der zweiten Steuerungsleitung (LTG2) das Rücksetz-Steuerungssignal (RESET) deaktiviert wird, nachdem das Start-Steuersignal (START) generiert worden ist.
  6. Steuerungseinrichtung (100) zum Ansteuern einer I2C Slave Einrichtung (100) aufweisend: – eine Zuführung von einer Datenleitung (SDA) eines I2C-Buses; – eine Zuführung von einer Taktleitung (SCL) des I2C-Buses; wobei – die Steuerungseinrichtung (100) eingerichtet ist, dass sie Zuständen auf der Datenleitung (SDA) und auf der Taktleitung (SCL) Zustände (DL, DH, I, SP, ST) eines Zustandsdiagramms (FSM) zuordnet; – wobei aus den Zuständen (DL, DH, I, SP, ST) des Zustandsdiagramms (FSM) Steuerungssignale (START, RESET) für die I2C-Slave Einrichtung generierbar sind.
  7. Steuerungseinrichtung (100) nach Anspruch 6, wobei die Datenleitung (SDA) mit einem Eingang eines ersten Inverters (70), mit einem invertierten Takteingang eines zweiten D-Flipflops (20) und mit einem Takteingang eines vierten D-Flipflops (40) verschaltet ist; wobei ein Ausgang des ersten Inverters (70) mit einem zweiten Eingang eines OR-Gatters (50) verschaltet ist; wobei die Taktleitung (SCL) mit einem Eingang des zweiten D-Flipflops (20), mit einem Reset-Eingang des zweiten D-Flipflops (20), mit einem Takteingang eines ersten D-Flipflops (10), mit einem Dateneingang des vierten D-Flipflops (40) und mit einem Takteingang eines dritten D-Flipflops (30) verschaltet ist; wobei ein Ausgang des zweiten D-Flipflops (20) mit einem Eingang eines zweiten Inverters (71), mit einem Eingang des dritten D-Flipflops (30) und mit einem ersten Eingang eines NOR-Gatters (60) verschaltet ist; wobei ein Ausgang des zweiten Inverters (71) mit einem Reset-Eingang des ersten D-Flipflops (10) verschaltet ist; wobei ein Ausgang des vierten D-Flipflops (40) mit einem zweiten Eingang des NOR-Gatters (60) verschaltet ist; wobei ein Ausgang des dritten D-Flipflops (30) mit einer ersten Steuerleitung (LTG1) der I2C-Slave Einrichtung, mit einem ersten Eingang eines OR-Gatters (50) und mit einem Eingang eines dritten Inverters (72) verschaltet ist; wobei ein Ausgang des dritten Inverters (72) mit einem Reset-Eingang des vierten D-Flipflops (40) verschaltet ist; wobei ein Ausgang des OR-Gatters (50) mit einem Eingang des ersten D-Flipflops (10) verschaltet ist; wobei ein Ausgang des ersten D-Flipflops (10) mit einem Eingang eines vierten Inverters (73) verschaltet ist; wobei ein Ausgang des vierten Inverters (73) mit einem Reset-Eingang des dritten D-Flipflops (30) verschaltet ist; und wobei ein Ausgang des NOR-Gatters (60) mit einer zweiten Steuerleitung (LTG2) für die I2C-Slave Einrichtung verschaltet ist.
  8. Steuerungseinrichtung (100) nach Anspruch 6 oder 7, wobei die Steuerungseinrichtung (100) ein Teil der I2C-Slave-Einrichtung ist.
DE102014223362.3A 2014-11-17 2014-11-17 Steuerungseinrichtung für I²C-Slave-Einrichtungen Pending DE102014223362A1 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102014223362.3A DE102014223362A1 (de) 2014-11-17 2014-11-17 Steuerungseinrichtung für I²C-Slave-Einrichtungen
US14/929,864 US9892085B2 (en) 2014-11-17 2015-11-02 Control device for I2C slave device
KR1020150160262A KR102414143B1 (ko) 2014-11-17 2015-11-16 I²c 슬레이브 장치용 제어 장치
CN201510790263.1A CN105608038B (zh) 2014-11-17 2015-11-17 用于i2c从机装置的控制装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102014223362.3A DE102014223362A1 (de) 2014-11-17 2014-11-17 Steuerungseinrichtung für I²C-Slave-Einrichtungen

Publications (1)

Publication Number Publication Date
DE102014223362A1 true DE102014223362A1 (de) 2016-05-19

Family

ID=55855084

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102014223362.3A Pending DE102014223362A1 (de) 2014-11-17 2014-11-17 Steuerungseinrichtung für I²C-Slave-Einrichtungen

Country Status (4)

Country Link
US (1) US9892085B2 (de)
KR (1) KR102414143B1 (de)
CN (1) CN105608038B (de)
DE (1) DE102014223362A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113342725A (zh) * 2021-06-09 2021-09-03 上海南芯半导体科技有限公司 一种用于i2c从机设备地址重置的方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313987A (en) 1996-06-03 1997-12-10 Lg Electronics Inc Serial data communication
US6530029B1 (en) 1999-09-23 2003-03-04 National Semiconductor Corporation I2C/SMBus start-stop detecting circuit that reduces the likelihood of stalling the bus due to glitches on the data line
EP1607864A2 (de) 2004-05-28 2005-12-21 Thomson Licensing Verfahren zur Fehlerbehebung einer I2C-Bus Slave-Einheit

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799233B1 (en) * 2001-06-29 2004-09-28 Koninklijke Philips Electronics N.V. Generalized I2C slave transmitter/receiver state machine
US7493433B2 (en) * 2004-10-29 2009-02-17 International Business Machines Corporation System, method and storage medium for providing an inter-integrated circuit (I2C) slave with read/write access to random access memory
US20100185896A1 (en) * 2009-01-22 2010-07-22 International Business Machines Corporation Method and apparatus for fully redundant control of low-speed peripherals
US20110087914A1 (en) * 2009-08-28 2011-04-14 Enfora, Inc. I2c buffer clock delay detection method
US8521931B2 (en) * 2010-12-30 2013-08-27 Lsi Corporation Serial input output (SIO) port expansion apparatus and method
CN202600693U (zh) 2011-12-23 2012-12-12 苏州华芯微电子股份有限公司 I2c总线启动与停止电路结构
US9152598B2 (en) * 2012-11-28 2015-10-06 Atmel Corporation Connecting multiple slave devices to a single master controller in bus system
US8878569B1 (en) * 2013-04-23 2014-11-04 Atmel Corporation Self-recovering bus signal detector
US8996737B1 (en) * 2013-10-17 2015-03-31 Cisco Technology, Inc. Method for emulating communication standards of transceiver modules for native host devices

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2313987A (en) 1996-06-03 1997-12-10 Lg Electronics Inc Serial data communication
US6530029B1 (en) 1999-09-23 2003-03-04 National Semiconductor Corporation I2C/SMBus start-stop detecting circuit that reduces the likelihood of stalling the bus due to glitches on the data line
EP1607864A2 (de) 2004-05-28 2005-12-21 Thomson Licensing Verfahren zur Fehlerbehebung einer I2C-Bus Slave-Einheit

Also Published As

Publication number Publication date
KR102414143B1 (ko) 2022-06-29
CN105608038B (zh) 2020-06-30
KR20160058709A (ko) 2016-05-25
US20160140078A1 (en) 2016-05-19
US9892085B2 (en) 2018-02-13
CN105608038A (zh) 2016-05-25

Similar Documents

Publication Publication Date Title
DE102015004434B3 (de) Ein-Draht-Testdatenbus
DE112011105683B4 (de) Abgeschlossene(s) Alterungsüberwachungsvorrichtung und -verfahren auf Pfadebene
DE19781620B4 (de) Bus-Patcher
DE102014206752B4 (de) Bestimmung des Zustands eines I2C-Busses
DE102009054701B4 (de) Detektion von und Regeneration von einem elektrischen-schnellen-Störsignal/Burst (EFT/B) auf einem Universal Serial Bus-(USB)-Gerät
DE102015004436B3 (de) Verfahren zum Betreiben eines Ein-Draht-Testdatenbusses
DE102015004433B3 (de) Ein-Draht-Testdatenbus
DE102015004435B3 (de) Verfahren zum Betreiben eines Ein-Draht-Testdatenbusses
DE3702408C2 (de)
DE102010012904A1 (de) Systeme zum Testen von Verbindungen zwischen Chips
DE60200050T2 (de) Schaltung zur Detektion von Störungen der Periodendauer in einem Taktsignal
DE112006003101T5 (de) Verfahren und Vorrichtung zum Einstellen von synchronen Taktsignalen
DE102007053128B3 (de) Störimpulsfreier Zweiweg-Taktumschalter
DE102004021398B4 (de) Verfahren und Schaltungsanordnung zum Zurücksetzen einer integrierten Schaltung
DE102014014309B4 (de) Verfahren zum Testen eines Signalpfades
DE102014111061B4 (de) Verfahren, Vorrichtung und System zur Kommunikation mit einer Einrichtung
DE10345150B3 (de) Verfahren, Vorrichtung und System zum Analysieren digitaler Schaltungen
DE102016203271A1 (de) Mikrocontroller und Verfahren zum Modifizieren eines Übertragungssignals
DE102016014417B4 (de) Schaltung zur überwachung eines datenverarbeitungssystems
DE102014223362A1 (de) Steuerungseinrichtung für I²C-Slave-Einrichtungen
DE102015115944A1 (de) Datenwiederherstellungsschaltung
EP2843486A2 (de) Verfahren und Vorrichtung zum Synchronisieren einer Steuereinheit und mindestens einer zugeordneten Peripherieeinheit
EP3739479B1 (de) Verfahren zur fehlersuche in der programmlogik eines systems verteilter programmierbarer gatteranordnungen
DE60200289T2 (de) Übergangsanpassung
EP1929417A1 (de) Cosimulationssystem mit einem langsamen betriebsmodus in dem anfragen von der hardware bearbeitet werden und einem schnellen modus

Legal Events

Date Code Title Description
R012 Request for examination validly filed