I²C-Bus Einfach isolieren mit diskreten Bauelementen

Ein Gastbeitrag von Torsten Siems* 7 min Lesedauer

Anbieter zum Thema

Anwendungen mit einem I²C-Bus müssen oftmals von hohen Spannungen isoliert werden, um sicher und zuverlässig zu arbeiten. Optokoppler sind hier eine gute Wahl, da sie einfach zu implementieren und flexibel sind.

I²C-Bus: Die Signale des Busses auf einem Oszilloskop dargestellt. Die hohen Spannungen eines I²C-Busses müssen sicher und zuverlässig isoliert werden.(Bild:  Toshiba)
I²C-Bus: Die Signale des Busses auf einem Oszilloskop dargestellt. Die hohen Spannungen eines I²C-Busses müssen sicher und zuverlässig isoliert werden.
(Bild: Toshiba)

Optokoppler sind eine einfache und kostengünstige Möglichkeit, einen I²C-Bus zu isolieren. Sie bestehen aus zwei Teilen: einem Sender und einem Empfänger. Der Sender erzeugt ein Lichtsignal, das durch eine Glasfaser zum Empfänger geleitet wird. Der Empfänger wandelt das Lichtsignal wieder in ein elektrisches Signal um. Entwickelt wurde der I²C-Bus in den 1980er Jahren von Philips Semiconductors und ist ein serielles Bussystem mit zwei Leitungen, die für die Kommunikation zwischen einer Host-CPU und Peripheriegeräten wie Sensoren, Aktoren und Displays verwendet wird. Der I²C-Bus ist ein bidirektionaler Bus: Daten lassen sich in beide Richtungen übertragen. Die maximale Datenverarbeitungsfähigkeit des I²C-Busses hängt vom verwendeten Modus ab. Der Standardmodus hat eine maximale Datenübertragungsrate von 100 kHz, der Fast-Mode 400 kHz, der Fast-Mode-Plus 1 MHz, der High-Speed-Mode 3,4 MHz und der Ultra-Fast-Mode-Plus 5 MHz.

Der I²C-Standard spezifiziert eine Zweidrahtverbindung mit bidirektionalen Daten- und Taktleitungen. Die Datenleitung (SDA) wird zum Senden und Empfangen von Daten verwendet, die Taktleitung (SCL) zum Synchronisieren der Kommunikation. Die Zweidrahtverbindung ist kostengünstig zu implementieren, da nur zwei Leitungen benötigt werden. In der Regel besteht der I²C-Bus aus einem Controller und einem oder mehreren Targets. Der Controller ist das Gerät, das die Kommunikation initiiert und steuert. Targets sind die Geräte, die mit dem Controller kommunizieren. Der Controller verfügt über Open-Kollektor-I/Os, die die Daten- (SDA) und Taktleitungen (SCL) auf Low ziehen können. Das bedeutet, dass der Controller die Leitungen zum Senden von Daten oder zum Starten einer Transaktion auf Low ziehen kann.

Die Kommunikation des Controllers

Der Controller verwendet die SDA-Leitung, um das zu adressierende Target und das Register auszuwählen, auf das innerhalb dieses Targets zugegriffen werden soll. Dazu sendet der Controller die Adresse des Targets und des Registers als 7-Bit-Wert über die SDA-Leitung. Das Target antwortet mit einem ACK oder NACK, um den korrekten Empfang der Anforderung zu bestätigen oder zu verweigern. Ein ACK wird erzeugt, indem das Target die SDA-Leitung auf Low hält. Ein NACK wird erzeugt, indem das Target die SDA-Leitung auf High hochzieht. Wenn der Controller ein ACK erhält, kann er mit dem Senden oder Empfangen von Daten fortfahren. Wenn der Controller ein NACK erhält, muss er die Anforderung erneut senden.

Die SCL-Leitung steuert die Geschwindigkeit der Datenkommunikation über den Bus, indem sie einen Takt für die Übertragung von Datenbits bereitstellt. Die SCL-Leitung ist in der Regel unidirektional, da der Controller die Taktleitung erzeugt und die Targets sie nur empfangen. Ein Target kann jedoch Taktstreckung verwenden, um mehr Zeit für die Antwort auf eine Anfrage zu erhalten. Wenn ein Target ein ACK erzeugt, hält es die SCL-Leitung auf Low, bis es bereit ist, das nächste Datenbit zu senden. Dies gibt dem Target mehr Zeit, um die Daten zu verarbeiten und ein ACK zu generieren.

Das Problem der langen Leitungen beim I²C-Bus

Bild 1: Zwei Optokopplerpaare werden in die SDA- und SDL-Leitungen eingefügt, um die Isolierung zu gewährleisten und die bidirektionale Kommunikation aufrechtzuerhalten.(Bild:  Toshiba)
Bild 1: Zwei Optokopplerpaare werden in die SDA- und SDL-Leitungen eingefügt, um die Isolierung zu gewährleisten und die bidirektionale Kommunikation aufrechtzuerhalten.
(Bild: Toshiba)

Die zunehmende Popularität von I²C hat zu einer Ausweitung der Anwendung auf Situationen geführt, in denen größere Kommunikationsentfernungen erforderlich sind. Bei größeren Leitungslängen können jedoch Probleme auftreten, die durch die Eigenschaften des I²C-Busses verursacht werden. Ein Problem besteht darin, dass die I²C-Signale, die Daten und Takt übertragen, passiv durch Pull-up-Widerstände auf High gezogen werden. Das bedeutet, dass die Kabelkapazitäten, die mit der Kabellänge zunehmen, die Signallaufzeiten verlängern können. Dies kann zu Timing-Problemen führen, die die Zuverlässigkeit der Kommunikation beeinträchtigen können.

In diesen Situationen ist eine komfortable Art der Isolation von I²C-Verbindungen erforderlich. Zu diesem Zweck stehen digitale Isolator-ICs zur Verfügung, die die gesamte Isolationsschaltung in einem einzigen Baustein integrieren. Sie sind zwar einfach in der Anwendung, können aber teuer sein und den Anwender ohne gleichwertigen Ersatz oder eine zweite Quelle für den Schutz vor Problemen zurücklassen.

Jetzt Newsletter abonnieren

Verpassen Sie nicht unsere besten Inhalte

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung. Die Einwilligungserklärung bezieht sich u. a. auf die Zusendung von redaktionellen Newslettern per E-Mail und auf den Datenabgleich zu Marketingzwecken mit ausgewählten Werbepartnern (z. B. LinkedIn, Google, Meta).

Aufklappen für Details zu Ihrer Einwilligung

Eine isolierte Verbindung kann mit Standard-Optokopplern realisiert werden, wobei jedoch einige Komplikationen zu berücksichtigen sind. Eine davon ist die bidirektionale Natur der SDA- und SCL-Leitungen, während Optokoppler normalerweise unidirektional sind. Darüber hinaus müssen die ausgewählten Komponenten mit Open-Collector-Ausgängen ausgestattet sein, um eine ordnungsgemäße Steuerung des Busses zu ermöglichen.

Sie müssen auch die Timing-Anforderungen der I²C-Spezifikation erfüllen. Ein Aspekt ist die ACK/NACK-Antwort des Targets an den Controller. Das ACK/NACK-Signal muss nach einer Setup-Zeit (tVD; ACK) zwischen 3,45 µs im Standard-Modus (100 kHz) und 0,45 µs im Fast-Mode-Plus-Modus (1 MHz) gültig sein. Es gibt auch zeitliche Einschränkungen für das Daten-Setup. Ein Target muss das SDA-Signal innerhalb von 250 ns nach der fallenden Flanke des vorhergehenden Taktbits im Standard-Modus (gemäß Tabelle 11, I²C-Spezifikation 1) und innerhalb von 50 ns im Fast-Mode-Plus aufbauen.

Der Betrieb der Schaltung

Die SDA- und SCL-Pfade der Schaltung funktionieren auf die gleiche Weise. Im SDA-Pfad zieht der Widerstand R1 das SDA-Signal von der nicht isolierten Seite (NIS) zur Stromversorgung, während R8 das SDA-Signal auf die isolierte Seite (IS) zieht. Die Widerstandswerte hängen von der verwendeten Versorgungsspannung, der kapazitiven Last des Controllers oder Targets und den Ausgangseigenschaften des Optokopplers ab. Maximal- und Minimalwerte sind in der I²C-Spezifikation definiert:

0115587480 (Bild: Toshiba)

wobei tr die maximal zulässige Anstiegszeit für die gewählte Betriebsart und Cb die geschätzte Buskapazität ist. UOL und IOL sind die Low-Level-Ausgangsspannung und der -Ausgangsstrom des Optokopplers. Die Schaltung befindet sich im Standardzustand, wobei SDA auf beiden Seiten auf High gezogen wird. Wird das NIS-SDA-Signal auf Low gezogen, fließt Strom durch R4 und die LED des Optokopplers IC2. Dadurch wird der Nullzustand an das IS-SDA-Signal übergeben, das durch den Ausgang von IC2 und die Kleinsignal-Sperrdiode D2 auf Low gezogen wird. Die umgekehrte Polung der LED in IC1 verhindert, dass der Nullzustand auf die NIS-Seite zurückkehrt, wodurch ein permanenter Nullzustand vermieden wird. Da die Schaltung symmetrisch ist, geht ein auf SDA (IS) erzeugter Nullzustand auf die gleiche Weise an NIS über.

Für diesen Ansatz werden 20 Bauelemente benötigt, darunter vier Optokoppler, vier Dioden und zugehörige passive Bauelemente. Die Dioden trennen das Sendesignal vom Rücksignal in den bidirektionalen Pfaden SDA und SCL. Sie sollten eine niedrige Kapazität haben, beispielsweise Schottky-Barriere-Dioden (SBD), um ein geringes Rauschen und geringe Verzerrungen, insbesondere bei hohen Signalgeschwindigkeiten, zu gewährleisten. Kleine Signaltypen sind ausreichend. Sie sollten auch eine niedrige Durchlassspannung (UF) haben, um sicherzustellen, dass der niedrige Signalpegel die I²C-Spezifikation erfüllt (UIL = 0,3 VDD).

Die möglichen Optokoppler zur Auswahl

Bild 2: Die Wellenform, die den Optokoppler durchläuft. Die saubere Form mit einer nahezu symmetrischen Verzögerung von ungefähr 60 ns entspricht den Anforderungen für den I²C-Betrieb im Fast-Mode (400 kHz).(Bild:  Toshiba)
Bild 2: Die Wellenform, die den Optokoppler durchläuft. Die saubere Form mit einer nahezu symmetrischen Verzögerung von ungefähr 60 ns entspricht den Anforderungen für den I²C-Betrieb im Fast-Mode (400 kHz).
(Bild: Toshiba)

Unter den geeigneten Open-Collector-Optokopplern bietet der TLP2362 von Toshiba eine Isolation von 3750 Veff und entspricht den I²C-Bus-Spezifikationen. Seine maximale Datenübertragungsrate beträgt 10 MBit/s. Da die maximale Ausgangsniederspannung UOL des TLP2362 0,6 V (0,2 V typisch) beträgt, stellt eine SBD mit 0,3 VUF sicher, dass UIL auch bei UDD von 3,3 V innerhalb der Spezifikation bleibt. Geeignete Dioden von Toshiba sind DSF01S30L und DSR01S30SL. Zwischen den Versorgungsanschlüssen des TLP2362 ist nur ein Keramik-Bypass-Kondensator mit 1 µF erforderlich, um den Betrieb der Ausgangslogik zu stabilisieren.

Die I²C-Peripherie kann sehr unterschiedlich sein, daher ist zu prüfen, ob die in Verbindung mit der Schaltung verwendeten Bausteine den von der internen LED des Optokopplers benötigten Strom liefern können. Der Eingangsschwellenstrom IFHL des TLP2362 beträgt maximal 5 mA (typisch 1 mA). Wird ein geringerer Strom benötigt, hat der TLP2363, der mit 3,3 V arbeitet, einen maximalen IFHL von 2,4 mA (typisch 0,9 mA).

Wenn eine höhere Isolationsspannung und eine größere Kriechstrecke erforderlich sind, kann dasselbe Design modifiziert werden, um den TLP2768 für 5.000 V zu verwenden. Wenn die Taktgeschwindigkeit ein Problem darstellt, kann der schnellere TLP2368 in Betracht gezogen werden. Der TLP2309 kann bei höheren Logikpegeln von 3 bis 30 V verwendet werden, beispielsweise. zur direkten Isolation des LIN-Busses.

Ein Fazit: Isolierte I²C-Busverbindungen

Bei der Isolierung von I²C-Busverbindungen gibt es zwei Hauptansätze:

  • Integrierte Lösungen bieten einen hohen Integrationsgrad und sind daher in der Regel kostengünstiger und einfacher zu implementieren. Sie sind jedoch weniger flexibel als diskrete Lösungen.
  • Diskrete Lösungen sind flexibler, da sie aus einzelnen Komponenten zusammengesetzt werden können. Sie sind jedoch in der Regel teurer und aufwendiger zu implementieren.

Bei der Auswahl eines Konzepts zur Isolierung von I²C-Busverbindungen sollten die folgenden Faktoren berücksichtigt werden:

  • Integration: Wie wichtig ist eine hoch integrierte Lösung?
  • Flexibilität: Wie wichtig ist es, eine flexible Lösung zu haben, die an spezifische Anforderungen angepasst werden kann?
  • Kosten: Wie wichtig ist es, eine kostengünstige Lösung zu haben?
  • Komplexität: Wie wichtig ist eine einfach zu implementierende Lösung?

Wenn eine hohe Integration und niedrige Kosten wichtig sind, ist eine integrierte Lösung in der Regel die beste Wahl. Wenn jedoch mehr Flexibilität erforderlich ist, kann eine diskrete Lösung die bessere Wahl sein.

Im Fall von diskreten Optokopplern sind die folgenden Faktoren zu berücksichtigen:

Timing: Die Optokoppler müssen die I²C-Timing-Spezifikationen erfüllen.

Ausgangskonfiguration: Die Optokoppler müssen die erforderliche Open-Kollektor-Ausgangskonfiguration aufweisen.

* Torsten Siems ist Senior Field Application Engineer bei Toshiba Electronics Europe.

(ID:49820568)