47
1 Bitübertragungsschicht 1 Busanschaltungen .................................................................................................. 3 1.1 Signal-to-Ground-Verbindungen .................................................................. 3 1.1.1 Das 1-Draht-Bussystem ........................................................................ 3 1.1.1.1 Funktionsprinzip.................................................................................. 3 1.1.1.2 1-WIRE SIGNALING.......................................................................... 4 1.1.1.3 Einsatzbeispiel: Das DS1920 Temperature iButton...................... 6 1.1.1.4 Einsatzbeispiel: Die 'intelligente/smart' Batterie ............................ 6 1.1.2 Das Kommunikationsprotokoll I 2 C ....................................................... 7 1.1.2.1 Konzept und Topologie...................................................................... 8 1.1.2.2 Elektrische Eigenschaften................................................................. 9 1.1.2.3 Transferraten..................................................................................... 10 1.1.2.4 Hardware-Grundlagen ..................................................................... 10 1.1.2.5 Datenübertragung ............................................................................ 11 1.1.2.6 Steuersignale .................................................................................... 11 1.1.2.7 Adressierung ..................................................................................... 12 1.1.2.8 Transferarten..................................................................................... 13 1.1.2.9 Einsatzbeispiele für I2C-Bus .......................................................... 16 1.1.3 Die SPI-Schnittstelle ............................................................................ 19 1.1.3.1 Funktionsprinzip................................................................................ 19 1.1.3.2 Beispielimplementierung PIC16C65-Master und 82527-Slave. 21 1.1.4 Beispiel: Ansteuerung von digitalen Potis ........................................ 21 1.1.5 Vergleich und Bewertung .................................................................... 22 1.2 Differentielle Kommunikationsverbindungen............................................ 23 1.2.1 Motivation für differentielle Kommunikationsverbindungen ........... 23 1.2.2 Struktur des RS485-Bussystems ....................................................... 25 1.2.3 Die hardwaretechnische Realisierung des RS485-Busses ........... 26 1.2.4 Bsp.: Der MAXIM Low-Power RS-485/RS-422 Transceiver ......... 27

Bitübertragungsschicht - w3service.net · 1.3 EMV/EMC-Schutzmaßnahmen ... The 1-Wire bus has only a single line by definition; ... trägt das notwendige Taktsignal und SDA

Embed Size (px)

Citation preview

1

Bitübertragungsschicht

1  Busanschaltungen .................................................................................................. 3 

1.1  Signal-to-Ground-Verbindungen .................................................................. 3 

1.1.1  Das 1-Draht-Bussystem ........................................................................ 3 

1.1.1.1  Funktionsprinzip .................................................................................. 3 

1.1.1.2  1-WIRE SIGNALING .......................................................................... 4 

1.1.1.3  Einsatzbeispiel: Das DS1920 Temperature iButton ...................... 6 

1.1.1.4  Einsatzbeispiel: Die 'intelligente/smart' Batterie ............................ 6 

1.1.2  Das Kommunikationsprotokoll I2C ....................................................... 7 

1.1.2.1  Konzept und Topologie ...................................................................... 8 

1.1.2.2  Elektrische Eigenschaften ................................................................. 9 

1.1.2.3  Transferraten ..................................................................................... 10 

1.1.2.4  Hardware-Grundlagen ..................................................................... 10 

1.1.2.5  Datenübertragung ............................................................................ 11 

1.1.2.6  Steuersignale .................................................................................... 11 

1.1.2.7  Adressierung ..................................................................................... 12 

1.1.2.8  Transferarten ..................................................................................... 13 

1.1.2.9  Einsatzbeispiele für I2C-Bus .......................................................... 16 

1.1.3  Die SPI-Schnittstelle ............................................................................ 19 

1.1.3.1  Funktionsprinzip ................................................................................ 19 

1.1.3.2  Beispielimplementierung PIC16C65-Master und 82527-Slave . 21 

1.1.4  Beispiel: Ansteuerung von digitalen Potis ........................................ 21 

1.1.5  Vergleich und Bewertung .................................................................... 22

1.2  Differentielle Kommunikationsverbindungen ............................................ 23 

1.2.1  Motivation für differentielle Kommunikationsverbindungen ........... 23 

1.2.2  Struktur des RS485-Bussystems ....................................................... 25 

1.2.3  Die hardwaretechnische Realisierung des RS485-Busses ........... 26 

1.2.4  Bsp.: Der MAXIM Low-Power RS-485/RS-422 Transceiver ......... 27 

2

1.3  EMV/EMC-Schutzmaßnahmen .................................................................. 27 

1.3.1  Elektrostatische Entladungen ............................................................. 28 

1.3.2  Transienten............................................................................................ 28 

1.3.3  Störabstrahlungen ................................................................................ 28

1.4  Anwendungsbeispiele aus der Praxis ....................................................... 29 

1.4.1  Einsatzbeispiel RS485-Kommunikation mit Wechselrichtern ........ 29 

1.4.2  Vergleich von RS232-, RS485- und Powerline-Verbindungen ..... 32 

Document History

Version, Date Author(s) email address Changes and other notes

27.12.2010 [email protected] Skript gekürzt

3

1 Busanschaltungen

Busanschaltungen realisieren die Bitübertragungsschicht auf dem ISO/OSI-Layer 1. Bei in-dustriellen Feldbussystemen hat sich hier insbesondere die RS-485-Schnittstelle für eine „multi point“-Verbindung als Übertragungsstandard durchgesetzt.

Zuvor soll jedoch auf typische „point to point“-Verbindungen eingegangen werden, wie z. B. I2C und SPI und anhand diesen die Verbindungstypen erläutert werden.

1.1 Signal-to-Ground-Verbindungen

1.1.1 Das 1-Draht-Bussystem

1.1.1.1 Funktionsprinzip

Stromversorgung

Bild: Prinzipelle Verdrahtung mit Pull-Up Widerstand

The 1-Wire bus has only a single line by definition; it is important that each device on the bus be able to drive it at the appropriate time. To facilitate this, each device attached to the 1-Wire bus must have open drain or 3-state outputs.

The 1-Wire port of the DS1920 (data contact) is open drain with an internal circuit equivalent to that shown in the next Figure.

Bild: Sender- und Empfänger-Konfiguration der „1-wire“-Hardware

A multidrop bus consists of a 1-Wire bus with multiple slaves attached. The 1-Wire bus re-quires a pull up resistor of approximately 5 kW. The idle state for the 1-Wire bus is high.

4

If for any reason a transaction needs to be suspended, the bus MUST be left in the idle state if the transaction is to resume. If this does not occur and the bus is left low for more than 120 ms, one or more of the devices on the bus will be reset.

1.1.1.2 1-WIRE SIGNALING

The DS1920 requires strict protocols to ensure data integrity. The protocol consists of five types of signaling on one line: Reset Sequence with Reset Pulse and Presence Pulse, Write 0, Write 1, Read Data and Strong Pullup.

All these signals except Presence Pulse are initiated by the bus master.

Initialization Sequence

The initialization sequence required to begin any communication with the DS1920 is shown in the next Figure.

Bild: Sequenz zur Initialisierung der Datenkommunikation

A Reset Pulse followed by a Presence Pulse indicates the DS1920 is ready to accept a ROM command. The bus master transmits (TX) a Reset Pulse (tRSTL, minimum 480 ms). The bus master then releases the line and goes into receive mode (RX).

The 1-Wire bus is pulled to a high state via the pullup resistor. After detecting the rising edge on the 1-Wire line, the DS1920 waits (tPDH, 15-60 ms) and then transmits the Presence Pulse (tPDL, 60-240 ms).

READ/WRITE TIME SLOTS

The definitions of write and read time slots are illustrated in the next figure. All time slots are initiated by the master driving the data line low. The falling edge of the data line syn-chronizes the DS1920 to the master by triggering a delay circuit in the DS1920.

During write time slots, the delay circuit determines when the DS1920 will sample the data line.

For a read data time slot, if a 0 is to be transmitted, the delay circuit determines how long the

5

DS1920 will hold the data line low overriding the 1 generated by the master. If the data bit is a 1, the DS1920 will leave the read data time slot unchanged.

Bild: „Write-1“-Time Slot

Bild: „Write-0“-Time Slot

Bild: Read-Data Time Slot

6

Bild: Die hierarchische Struktur des „1-wire“-Protokolls

1.1.1.3 Einsatzbeispiel: Das DS1920 Temperature iButton

siehe unter Applikation auf der Webseite www.Dallas.com

1.1.1.4 Einsatzbeispiel: Die 'intelligente/smart' Batterie

Zunehmend sind heutige aufladbare Batterien 'intelligent/smart'. Ausgerüstet mit einem Mik-rochip sind diese Batterien in der Lage, mit dem Ladegerät und auch mit dem Benutzer zu kommunizieren. Eine typische Anwendung von 'intelligenten' Batterien sind die Batterien von Notebooks-Computer und Video-Kameras. Außerdem werden solche Batterien auch in bio-medizinischen Geräten und im militärischen Bereich eingesetzt.

Die einfachste 'intelligente' Batterie enthält nur einen Chip, der dem Ladegerät die anzuwen-denden Ladealgorithmen vermittelt. In den Augen eines so genannten Smart Battery System (SBS) Forums verdienen jedoch solche Batterien die Bezeichnung 'intelligent' nicht.

Was macht eine Batterie 'intelligent'? Das Forum SBS erklärt, dass eine 'intelligente' Batterie in der Lage sein muss, SoC-Angaben machen zu können. Benchmarq war um 1990 die erste Firma, die ein Konzept anbot, das die Technologie des Treibstoffmessgerätes verwendete. Heute stellen verschiedene Hersteller solche Chips her. Der Bereich umfasst 1-Draht-

7

Systeme, 2-Draht-Systeme bis zum SMBus (System Management System). Befassen wir uns zuerst mit dem 1-Draht-System.

Das 1-Draht-System liefert die Datenkommunikation über 1 Draht. Eine solche Batterie ver-wendet 3 Verbindungsdrähte: Die gemeinsamen positiven und negativen Batterieanschlüsse und einen eindrahtigen Datenanschluss, welcher ebenfalls die Synchronisationsinformatio-nen liefert. Aus Sicherheitsgründen verwenden die meisten Hersteller einen separaten Draht für den Temperatursensor. Das nachstehende Bild zeigt das Prinzipschema eines 1-Draht-Systems.

Bild: 1-Draht-System einer 'intelligenten' Batterie

Ein einziger Draht wird für die Datenübermittlung verwendet. Aus Sicherheitsgründen ver-wenden die meisten Hersteller einen separaten Draht für den Temperatursensor.

Das 1-Draht-System speichert den Batteriecode und überwacht die Batteriedaten, inklusive Temperatur, Spannung, Strom und SoC (Ladezustand).

Die meisten 1-Draht-Systeme haben keine einheitliche Ausführungsform, noch bieten sie eine einheitliche Messung des Gesundheitszustandes (SoH) an. Dies würde Probleme erge-ben beim Konzept für Universalladegeräte. Die Benchmarq Lösung für 1-Draht-Systeme kann z.B. den Strom nicht direkt messen; sie kann jedoch aus der Kapazitätsänderung über die Zeit abgeleitet werden. Dazu kommt, dass der 1-Draht-Bus den Gesundheitszustand SoH nur dann messen kann, wenn das Gerät und die Batterie zueinander kompatibel sind.

1.1.2 Das Kommunikationsprotokoll I2C

I2C-Spezifikation (46Seiten) -> siehe Dokument: I2C-Spezifikation--39340011.pdf

Anfang der 80er Jahre entwickelte die Firma Philips das I2C-Busprotokoll. Ausschlaggebend war der steigende Einsatz von Mikroprozessoren in Konsumergeräten.

Gerade die Elektronikbranche ist darauf angewiesen, möglichst preiswert zu produzieren. Einsparungen waren somit dringend notwendig. Und genau hier setzt der I2C-Bus an. Bisher wurden teure CPU’s mit 8- oder 16-Bit breiten Datenbussen in Elektronikschaltungen einge-setzt, die nunmehr von einem seriellen aufwandsarmen I2C-Bus ersetzt werden (z. B. in Fernsehgerät). Durch das serielle Datenübertragungsverfahren fallen viele Leitungen weg, es werden weniger Anschlüsse nach außen geführt und die IC’s können somit kleiner produziert werden. Auch der Platzbedarf auf der Platine verringert sich stark. Zudem fallen weniger

8

Platinenbohrungen und Lötpunkte an, was letztlich den Fertigungsaufwand reduziert und sich kosten senkend auswirkt.

I2C steht für “Inter Integrated Circuit”. Und genau dort wird er auch eingesetzt, als seriellen Bus zwischen Mikroprozessoren, IC’s und Ein-/Ausgabeeinheiten jeglicher Art, die in der Regel ihren Platz auf einer gemeinsamen Platine finden.

Die Daten werden mit Hilfe zweier Leitungen als serielle Information übertragen. Vorraus-setzung ist ferner ein gemeinsames Massepotential.

1.1.2.1 Konzept und Topologie

Die gesamte Kommunikation wird über nur zwei Leitungen abgewickelt. SCL (Serial Clock) trägt das notwendige Taktsignal und SDA (Serial Data) die Information. Im I2C-Bus erfolgt die Datenübertragung bitseriell und synchron, d. h. dass jedes Datenbit auf der SDA-Leitung mit dem Takt der SCL-Leitung synchronisiert wird. Beide Leitungen sind bidirektional aus-geführt, was es jedem IC ermöglicht, Daten zu verschicken oder anzufordern. Um zu ge-währleisten, dass die Information zum richtigen Empfänger gelangt, erhält jedes am Bus beteiligte IC eine eindeutige Adresse, mit der es identifiziert werden kann.

Das Konzept sieht eine Unterscheidung von Geräten (IC’s) in Master und Slave vor. Als Master wird ein Gerät bezeichnet, das einen Datentransfer initiiert und das notwendige Clock-Signal generiert. Geräte, die vom Master adressiert, also zum Transfer aufgefordert werden, bezeichnet man als Slave. Des weiteren wird noch eine Unterscheidung in Trans-mitter und Receiver gemacht. Der Transmitter sendet Daten und der Receiver empfängt sie. Anhand zweier Beispiele soll dieses nun verdeutlicht werden:

Mikroprozessor (MP) A sendet Daten an MP B

A (Master) adressiert B (Slave)

A (Master-Transmitter) sendet Daten an B (Slave-Receiver)

A beendet den Transfer

Mikroprozessor (MP) A fordert Daten von MP B an

A (Master) adressiert B (Slave)

A (Master-Receiver) empfängt Daten von B (Slave-Transmitter)

A beendet den Transfer

Prinzipiell ist jedes Gerät in der Lage, Master- bzw. Slave-Funktionen zu übernehmen, da die Zuordnung dynamisch erfolgt und keinen Regeln unterliegt.

Da beliebig viele IC’s am Bus einen Transfer initiieren dürfen, wird er auch als Multimaster-Bus bezeichnet. Es muss daher gewährleistet sein, dass nur ein Master zur selben Zeit aktiv ist. Um Problemen vorzubeugen, bietet das I2C-Protokoll mehrere Maßnahmen zur Vermei-dung von Kollisionen, auf die im weiteren Verlauf näher eingegangen werden soll.

9

Bild: Schaltplan eines I2C-Netzwerkes

1.1.2.2 Elektrische Eigenschaften

SCL (Serial Clock) und SDA (Serial Data) arbeiten bidirektional und werden durch Pullup-Widerstände auf High-Potential (logisch “1”) gezogen.

10

1.1.2.3 Transferraten

Low Speed Mode 10 kBit/s (inzwischen bedeutungslos)

Standard Mode 100 kBit/s

Fast Mode 400 kBit/s

High Speed Mode 3,4 MBit/s (1998 eingeführt; keine oder kaum IC’s, die diesen Standard unterstützen)

Beschränkung der maximalen Buskapazität auf 400 pF

kompatibel zu den gängigen Logikfamilien

1.1.2.4 Hardware-Grundlagen

Wie bereits beschrieben, besteht der I2C-Bus aus zwei aktiven Leitungen SDA und SCL so-wie der Masseleitung als Bezugspotential. Die Leitungen SDA und SCL sind über Pullup-Wi-derstände mit der Betriebsspannung verbunden.

Im Ruhezustand befinden sich also beide Leitungen auf High-Pegel (positive Logik). Die un-ten stehende Abbildung zeigt schematisch die Eingangs- und Ausgangskreise von Master- und Slave-Bausteinen. Bezeichnet wird die Gesamtheit dieser Chips als Wired-AND-Schal-tung. Im Ruhezustand sind die als Open-Collector ausgeführten Transistoren gesperrt und der Bus befindet sich auf High-Pegel.

Bild: Verschaltung von Master und Slave

Zur Ausgabe einer logischen 0 wird der Transistor leitend und zieht die entsprechende Lei-tung auf Masse. Im umgekehrten Fall bleibt die Basis des Transistors stromlos und die Lei-tung liegt, bedingt durch den Pullup-Widerstand auf logisch 1. Die Eingangskreise erkennen die Pegeländerungen auf den Busleitungen und können sie dann entsprechend auswerten.

Der High-Pegel ist definiert als NICHT-LOW-Pegel, d. h. es kann auch mit entsprechenden Bausteinen an einem System mit Spannung ungleich 5V (z.B. 3,3V) gearbeitet werden.

11

1.1.2.5 Datenübertragung

Um die Kompatibilität zu den Mikroprozessorsystemen zu wahren, werden die Daten im 8 Bit-Format übertragen. Die Anzahl der zu übertragenden Bytes in einem Transfer ist dank der SCL-Leitung, die das Clock-Signal zur Synchronisation trägt, unbegrenzt. Allerdings können einige Bausteine abhängig von ihrer Funktion nur eine bestimmte Anzahl Bytes sen-den und empfangen.

Das Byte wird mit dem höchstwertigen Bit MSB (Most Significant Bit) voran übermittelt. Wichtig ist, dass die Daten auf der SDA-Leitung stabil sein müssen, solange die SCL-Leitung High führt, ansonsten werden die Signale als Steuersignale interpretiert. Schreibende Geräte (Transmitter) müssen ihre Daten auf die Leitung legen, wenn SCL Low ist. So erreichen sie einen stabilen Zustand in der High-Phase. Nun können die lesenden Geräte die Daten bei SCL High aufnehmen.

Im Timing-Diagramm kann man gut die Übertragung eines gültigen Datenbits erkennen. Nun wird auch schon deutlich, wie simpel und dennoch effizient das I2C-Protokoll arbeitet. Ist SCL High, wird die Datenleitung SDA abgefragt und das stabil anliegende Signal als Information interpretiert.

Bild: Datenübertragung mit SDA und SCL

1.1.2.6 Steuersignale

Neben der „reinen“ Datenübertragung muss der gesamte Ablauf noch koordiniert werden. Damit nicht jedes anliegende Gerät zu Senden oder Empfangen beginnt, wird eine Identi-fikation der IC’s in Form einer Adresse den Daten vorangestellt. Des weiteren wird z. B. der Beginn und das Ende einer Übertragung markiert. Diese wichtigen Signale, die das ganze Verhalten auf den Leitungen bestimmen, werden zusammengefasst als Steuersignale be-zeichnet.

Wie unterscheidet man nun die Daten- von den Steuersignalen?

Einige lassen sich einfach an der Reihenfolge erkennen. Sinnigerweise muss erst die Ad-resse mitgeteilt werden und dann können die Daten folgen.

Es gibt noch eine andere Möglichkeit. Man verändert die Signale auf der Datenleitung. Um nun nicht mit den Regeln zu brechen, die unter anderem besagen, dass alles, was im High-Zustand von SCL als Pegel auf SDA liegt, ein Datenbit ist, hat man sich nun noch etwas Be-sonderes einfallen lassen. Bestimmte Steuersignale werden anhand ihrer Pegeländerung während der High-Phase der Clockleitung identifiziert. Von den Receivern wird nun nicht mehr der Pegel, sondern die Flanke gelesen.

Elementar sind die Start- und Stoppbedingung, die eine zu übermittelnde Sequenz kenn-zeichnen.

12

Das Startsignal wird durch eine fallende Flanke auf SDA herbeigeführt. Wichtig ist, dass während des Flankenwechsels SCL High führen muss. Die Stoppbedingung wird analog ko-diert, nur dass sie eine steigende Flanke darstellt. Start- und Stoppbedingung dürfen zu je-dem Zeitpunkt eines laufenden Transfers erzeugt werden. Beide Signale werden vom Master erzeugt. Nach jedem Start wird der Bus als Busy (belegt) angesehen. Nur der Master, der den Transfer initiiert hat, darf den Bus wieder auf Idle (frei) setzen.

Ist das Byte übermittelt, wird häufig ein optionales Handshaking vollzogen. Der Slave muss nun nach jedem empfangenen Byte ein Acknowledge an den Master senden. Antwortet der Slave auf dieses Bestätigungssignal mit einem High-Bit, gibt es damit zu erkennen, dass es an der Kommunikation nicht mehr teilnimmt bzw. diese beendet.

Will nun ein Gerät einen Slave auslesen, z. B. einen Speicher, muss nun der Master nach jedem Byte das Acknowledge senden. Ist die Kapazität des Speichers überschritten, kann der Master nach Empfangen des High-Pegels eine entsprechende Fehlerroutine starten. Es ist jedoch zu beachten, dass kein Master weitersenden darf, wenn er ein High-Acknowledge-Bit, auch als NACK (Not Acknowledge) bezeichnet, empfangen hat. Ansonsten gehen sämt-liche nachträglich gesendete Informationen verloren.

Auch wenn das Acknowledge-Bit ein Steuersignal ist, wird es praktisch wie ein Datenbit ge-handhabt, der Master erzeugt hierfür noch ein zusätzlichen neunten Taktimpuls auf SCL. Der einzige Unterschied ist, dass sich das Verhalten von Transmitter und Receiver kurzfristig umdreht, schließlich muss der Slave die folgende Übertragung mit einem Low quittieren, wenn die Übertragung fortgesetzt werden soll. Sendet der Slave dagegen ein High, gibt er das Ende der Kommunikation bekannt.

Bild: Steuersignale (Start, Stopp)

1.1.2.7 Adressierung

Will nun ein Master mit einem bestimmten Gerät über den Bus kommunizieren, muss als erstes eine Adresse übermittelt werden, die das IC eindeutig identifiziert. Die logische Kon-sequenz der Adresse ist, dass sie einmalig und dem Master bekannt sein muss.

Im Normalfall ist der Master das steuernde Gerät auf dem Bus, er allein kann einen Transfer initiieren. Herrschen mehrere Master über den Bus, ist eine Adressierung der einzelnen Master unabdingbar. Ansonsten ist eine vollständige Kommunikation zwischen den Mastern nicht möglich.

Die ursprüngliche Größe der Adresse beträgt 7 Bit, damit ließen sich im Höchstfall 128 IC’s im Bus einsetzen. Da allerdings noch einige Adressen reserviert sind und nicht jedes Gerät jede beliebige Adresse annehmen kann, wurde eine Erweiterung auf eine Länge von 10 Bit

13

spezifiziert. Nun bleibt es dem Anwender überlassen, für welches Format er sich entscheidet, nur gibt der Markt zur Zeit kaum bis keine IC’s mit 10 Bit langen Adressen her.

Bild: Adressierung

Nach der gesendeten Startbedingung wird unmittelbar die Adresse übertragen. Im 7-Bit-Format, auf welches hier näher eingegangen werden soll, wird die Adresse in dem nächsten Byte angegeben. Da hier ein Bit übrig bleibt, das LSB, wird hier noch zusätzlich die Richtung des Transfers (R/W) verschlüsselt (Abb. 7). Eine logische “0” bedeutet “Schreiben”, eine “1” steht für den Lesebetrieb. Hier entscheidet sich die Funktion von Master und Slave, ob das Gerät nun als Receiver (Lesen) oder Transmitter (Schreiben) arbeitet.

Nachdem die Adresse übertragen wurde, wartet der Master auf eine Bestätigung. Hat ein Slave die 8 Bit empfangen, vergleicht er sie mit seiner eigenen Adresse. Bei Misserfolg ver-halten sie sich ruhig und warten auf die nächste Startbedingung. Stimmt die Adresse überein, meldet sich der Baustein mit einem Acknowledge und gibt zu erkennen, dass er bereit für die folgende Übertragung ist.

Die Art der Adresskodierung der Bausteine ist recht vielfältig. Es gibt zum einen reine Soft-warelösungen, die z. B. in Mikroprozessoren realisierbar sind. In der Regel stehen externe Pins zur Verfügung, die über Jumper gesetzt werden können. Um die Abmaße der Bausteine klein zu halten, werden häufig nur die niedrigsten drei Bits der Adresse nach außen zur Kon-figuration geführt. Die restlichen vier Bits sind fest im Gehäuse verdrahtet und somit nicht zugänglich.

Eine wichtige Adresse ist die 10 Bit-Slave-Adresse, die wie der Name schon sagt, eine 10 Bit lange Adresse einleitet. Hier sind nur die höherwertigen fünf Bits reserviert, die restlichen enthalten schon die ersten zwei Bits der eigentlichen Adresse und natürlich das Richtungsbit.

Bild: Struktur der 10 Bit-Slave-Adresse

1.1.2.8 Transferarten

Prinzipiell gibt es drei verschiedene Arten des Transfers. Sie geben die Richtung der zu übertragenden Daten an. Um einen kleinen Überblick zu gewähren, sind die Betriebsarten noch einmal aufgezeichnet.

14

Master sendet Daten an Slave

Die Richtung des Transfers bleibt erhalten, Daten werden vom Master auf den Bus ge-bracht. Der Slave antwortet nur, wenn überhaupt gewünscht, mit einem Acknowledge.

Master fordert Daten vom Slave an

Hier wechselt die Transferrichtung. Der Slave sendet die angeforderten Daten und der Master quittiert gegebenenfalls mit einem Acknowledge. Beendet wird die Verbindung dennoch vom Master.

Kombiniertes Format

Nach einer Repeated-Start-Bedingung erfolgt ein Richtungswechsel von anfangs schrei-bend auf lesend, aus Sicht des Masters.

15

Bild: Prinzipschaltung zum I2C-Bus

16

1.1.2.9 Einsatzbeispiele für I2C-Bus

17

18

19

Bild: Quelle „Xicor Application Note AN124“

1.1.3 Die SPI-Schnittstelle

1.1.3.1 Funktionsprinzip

Das Serial Peripheral Interface (oder SPI) ist ein von Motorola entwickeltes Bus-System mit einem sehr lockeren Standard für einen synchronen seriellen Datenbus, mit dem digitale

20

Schaltkreise miteinander verbunden werden können. Ein ähnliches Bus-System existiert von National Semiconductor und nennt sich Microwire.

Die Vorteile von SPI liegen darin, dass es nur drei Leitungen benötigt und Taktfrequenzen bis in den MHz-Bereich zulässt. Dies macht es für Audio- und Messanwendungen interessant.

Der Bus besteht aus drei Leitungen, an denen alle Teilnehmer parallel angeschlossen sind:

SDO (Serial Data Out) bzw. MOSI (Master out Slave in)

SDI (Serial Data In) bzw. MISO (Master in Slave out)

SCKL (Serial Clock)

Darüberhinaus ist zum Ansteuern der Slaves jeweils eine eigene Leitung zwischen Master und Slave erforderlich:

SS/CS (Slave Select/Chip Select), auch STE (Slave Transmit Enable)

Bild: Schaltplan eines SPI-Netzwerkes

Es können theoretisch beliebig viele Teilnehmer an den Bus angeschlossen werden, wobei es immer exakt einen Master geben muss. Er ist derjenige, der das Clock-Signal an SCK erzeugt und festlegt, mit welchem Slave er kommunizieren will. Letzteres geschieht über die Leitung "Slave Select". Wird sie gegen Masse gezogen, wird der jeweilige Slave aktiv und "lauscht" an MOSI und legt seine Daten im Takt von SCK an MISO. Es wird somit ein Byte

21

vom Master zum Slave und ein anderes Byte von Slave zum Master transportiert. Ein Proto-koll hierzu wird von SPI nicht festgelegt. Auch ist nicht eindeutig festgelegt, ob die Daten bei der steigenden oder fallenden Flanke gültig sind und ob das MSB oder LSB zuerst gesendet wird. Mikrocontroller, die dieses Interface per Hardware anbieten, sind in diesen Punkten meist konfigurierbar und müssen an den angeschlossenen Schaltkreis angepasst werden.

1.1.3.2 Beispielimplementierung PIC16C65-Master und 82527-Slave

Die SPI-Schnittstelle ist eine Drei-Leiter-Schnittstelle, in welcher zwei Leiter als Datenleitung und ein Leiter als Takt-Vorgabe fungieren. Die Leiter sind im einzelnen mit MISO (Master In Slave Out), MOSI (Master Out Slave In) und SCLK (Shift Clock-Signal) bezeichnet.

Die MOSI-Leitung überträgt die Daten seriell vom Master zum Slave, die MISO-Leitung vom Slave zum Master jeweils mit dem MSB zuerst. Die SCLK-Leitung sorgt für die Taktvorgabe vom Master, hierbei werden bei jedem SCLK-Impuls Daten in beide Richtungen (MOSI, MISO) „geschoben“, wobei ein Datenbyte mit acht SCLK-Pulsen übertragen wird.

Das nachfolgende Blockschaltbild zeigt die Verbindung PIC und 82527 über ein SPI-Interface

Bild: SPI-Interface

Das SPI-Protokoll besteht aus einem Datensatz von bis zu 17 Bytes, welche seriell über das SPI-Interface übertragen werden. In Byte 1 des Protokolls wird die Adresse des 82527 über-tragen, auf welche ein Schreib-/ Lesezugriff erfolgen soll. Byte 2 des Protokolls ist das sog. „Serial Control Byte“, welches wie folgt aufgebaut ist:

Bild: Aufbau des Serial Control Byte

Bit 7 des Control Byte gibt die Richtung der SPI-Kommunikation vor, d.h. es wird ein Schreib- oder Lesezugriff definiert. Ist Bit 7 gesetzt, so erfolgt ein Schreibzugriff (vom Master gese-hen); ist Bit 7 nicht gesetzt, so erfolgt ein Lesezugriff (vom Master aus betrachtet). Die Bits 3 bis 0 geben die Anzahl der zu übertragenden/lesenden Bytes vor. Der Data Length Code darf niemals zu Null gesetzt sein.

Ab dem Byte 3 werden dann im Protokoll die Daten übertragen/gelesen.

1.1.4 Beispiel: Ansteuerung von digitalen Potis

22

- Application Note: A Primer on Digitally-Controlled Potentiometers (4 Seiten, 35kB)

- Bsp: Ansteuerung digitaler Potentiometer via SPI - 3-wire interface - Digital Poti XICOR x9110 (129kB)

- Bsp: Ansteuerung digitaler Potentiometer via I2C - 2-wire interface - Digital Poti XICOR x9408 (551kB)

1.1.5 Vergleich und Bewertung

Rei

chw

eite

Ko

sten

Ges

chw

ind

igke

it

Ver

bin

du

ng

styp

Ro

bu

sth

eit

(Un

emp

fin

dlic

h g

egen

EM

V)

1-Draht-Bus

2-Draht-Bus

z. B. I²C

3-Draht-Bus

z. B. SPI

RS 485

23

Rei

chw

eite

Ko

sten

Ges

chw

ind

igke

it

Ver

bin

du

ng

styp

Ro

bu

sth

eit

(Un

emp

fin

dlic

h g

egen

E

MV

)

1-Draht-Bus kurz sehr gering

gering,

da Zeitabstände ausgewertet werden

half-duplex gering

2-Draht-Bus

z. B. I²C

mittel gering mittel,

wegen separater Clock-Leitung

half-duplex gering

3-Draht Bus z. B. SPI

mittel mittel hoch,

da separate Hin- und Rückleitung

~ 5 MBit/s

full-duplex gering

RS 485 hoch

(bis 1200m)

half-duplex gut

1.2 Differentielle Kommunikationsverbindungen

1.2.1 Motivation für differentielle Kommunikationsverbindungen

Nachteile von Signal-to-Ground Verbindungen

24

R’

R’ R’

R’ R’

R’

L’

L’ L’

L’ L’

L’

C’C’

Maßnahmen zur Gewinnung von sicheren Informationen

Einsatz differentieller Pegel und Ops - Das RS485 Bussystem

25

Weitere Verbesserungen

1.2.2 Struktur des RS485-Bussystems

26

Das RS485-Bussystems stellt eine Erweiterung des RS-422 Standards dar in dem Sinne, dass sich viele Sender den Zugriff auf die Datenleitung teilen. Momentan nicht aktive Sender schalten sich in einen hochohmigen Zustand, d. h. sind elektrisch quasi von der Busleitung getrennt.

Das vernetzungstechnische Problem besteht darin, den einzelnen Sendern im richtigen Mo-ment die Sendeerlaubnis zu erteilen, ohne dass Zugriffs-Überschneidungen auftreten.

Hierzu eignet sich besonders eine Master-Slave-Struktur des Netzwerks: ein Master-Rechner verteilt Sende-Berechtigungen an die verschiedenen Slaves. Alle anderen Slaves müssen ihren Sender abschalten und dürfen nur als Empfänger aktiv sein. Wenn der sendeberech-tigte Slave seine Nachricht gesendet hat, muss er ebenfalls wieder auf Empfang umschalten. Das Datenprotokolls muss so konstruiert sein, dass die Datenlänge einer jeden Nachricht von vornherein festgelegt ist oder zu Beginn der Nachricht gesendet wird. Daraus kann der Master das Ende der Meldung ermitteln und die Sendeberechtigung an einen anderen Slave erteilen.

Ein RS-485 Netzwerk kann in einer 2-Draht Architektur (Half Duplex) oder in einer 4-Draht Architektur (Full Duplex) aufgebaut werden. Bei einer 2-Draht Architektur laufen die Sende-signale des Masters und der Slaves auf einem einzigen Adernpaar; die Datenrichtung wird permanent umschaltet (half duplex).

Bei einem kleinen Übertragungsfehler kann es passieren, dass der Master die Sendekon-trolle verliert und die Slaves nicht mehr erreichen kann. Bei einer 4-Draht Architektur hat der Master eine exklusive Sendeleitung, kann also jederzeit allen Slaves das Senden verbieten. Mit dem Preis eines höheren Verkabelungsaufwandes erkauft man sich ein erheblich stabile-res Netzwerk. Aus diesem Grunde verwenden viele Industrieunternehmen grundsätzlich nur 4-Draht Vernetzungen.

Die bisherigen Angaben über RS-485 beschreiben lediglich die physikalische Kommunika-tionsverbindung. Darin ist noch nicht definiert, welche Codes welche Bedeutung übertragen. Dies wird in konkreteren, teilweise firmenspezifischen Kommunikationsprotokollen festgelegt. Der Schwierigkeitsgrad für den Entwurf und die Programmierung eines solchen Netzwerk-protokolls sollte nicht unterschätzt werden.

1.2.3 Die hardwaretechnische Realisierung des RS485-Busses

Wichtigstes Bauteil beim Aufbau eines RS485-Bussystems ist ein Treiberbaustein, der von diversen Herstellern angeboten wird, z. B. MAX485, MAX487, MAX487E, LT485, etc..

Besonders geeignet ist z. B. "MAX487E" von Maxim, er besitzt sehr gute EMV-/ESD-Eigen-schaften und ermöglicht die Vernetzung von bis zu 255 Busteilnehmern. Per Definition wer-den mindestens 32 Teilnehmer gefordert.

27

Bild: Aufbau eines RS485-Netzwerkes

Ein RS485-Bus besteht aus einer Zweidrahtleitung, die an beiden Enden mit einem Wider-stand abgeschlossen ist. Dieser Widerstand dient zur Vermeidung von Leitungsreflektionen und liegt üblicherweise im Bereich von 120 Ohm. Die Länge des Busses darf - je nach Kabel und Baudrate - bis zu 4 km betragen.

Es darf immer nur ein Busteilnehmer senden. Die Empfänger entscheiden anhand der Diffe-renz zwischen den beiden Leitungen A und B, ob eine '1' oder eine '0' empfangen wird. Das Datenbit ergibt sich differentiell und nicht, wie etwa bei der RS232-Schnittstelle, anhand des Spannungswertes gegen Masse (GND). Das Differenzsignal macht den Bus sehr unemp-findlich gegen Störungen.

Manche Protokolle erfordern einen festen "Ruhepegel" für die Sendepausen. Dieser Ruhe-pegel wird im einfachsten Fall durch die beiden 560 Ohm Widerstände eingestellt.

Für den Busbetrieb selbst muss jedem Teilnehmer eine Adresse zugeordnet werden. Es ist wichtig, dass der sendende Busteilnehmer am Ende seiner "Nachricht" den Bus möglichst rasch wieder freigibt.

1.2.4 Bsp.: Der MAXIM Low-Power RS-485/RS-422 Transceiver

=> siehe Dokument RS485--MAX1487-MAX491.pdf

1.3 EMV/EMC-Schutzmaßnahmen

Beim Betrieb von Netzwerken sollte über Schutzmaßnahmen nachgedacht werden:

Elektrostatische Entladungen (ESD)

Transienten durch Blitzschläge in der näheren Umgebung

Störabstrahlungen

28

1.3.1 Elektrostatische Entladungen

Elektrostatische Entladungen sind sehr häufig und führen zu kurzen Impulsen mit be-trächtlichen Spannungen (bis ca. 30 kV (!)). Manche Bausteine verkraften ESD aufgrund ih-res Designs recht problemlos, wie z. B. der MAX487E, bei anderen ist gegebenenfalls ein zusätzlicher Schutz notwendig. Für ESD-Impulse gibt es diverse technische Modellierungen, z. B. IEC-801. Allen gemeinsam ist, dass sich ein Kondensator von ca. 100-200 pF, aufge-laden auf ca. 3-10kV über einen Widerstand von ca. 0-2kOhm auf den Probanden entlädt.

1.3.2 Transienten

Transienten besitzen mehr Energie als ESD-Impulse, erzeugen aber in der Regel eine nied-rigere Störspannung. Die Ursache für Transienten können z. B. Blitzschläge in der Umge-bung sein, wo der Transient durch Induktionen erzeugt wird.

1.3.3 Störabstrahlungen

Beim Auftreten von steilflankigen Signalen können Störabstrahlungen entstehen. Einige ICs begrenzen daher von sich aus die Anstiegsgeschwindigkeit (sog. Slew-Rate). Dadurch wird auch die Terminierung des Kabels unkritischer.

Als Ausgangsbasis für einen universellen Schutz gegen ESD und schwächere Transienten hat sich folgende Verschaltung bewährt:

Bild: Schutzbeschaltung durch Standard-Zenerdioden

Gut geeignet sind Standard-Zenerdioden. Diese sind billig und können normalerweise kurze Impulse von bis zu einigen Ampere problemlos verkraften. Durch die antiparallele Schaltung ist die Kapazität der Schutzbeschaltung minimal, Datenraten bis zu 250 kBd sind problemlos möglich. Falls nötig, können die Zenerdioden auch durch höher belastbare Überspannungs-Schutzdioden ersetzt werden.

29

Bild: RS485-Bausteine am Beispiel der BITBUS-Konfiguration

1.4 Anwendungsbeispiele aus der Praxis

1.4.1 Einsatzbeispiel RS485-Kommunikation mit Wechselrichtern

30

Bild: Verkabelung eines SB / SWR über RS485 an einen Sunny Boy Control; Quelle: Fa. SMA Dokumentnummer: SB-SWR-RS-NR-12:SD0105, Installation und Konfiguration der Schnittstellenmodule 485PB-NR

31

Bild: Verkabelung eines SB / SWR über RS485 an einen PC

32

1.4.2 Vergleich von RS232-, RS485- und Powerline-Verbindungen

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47