Navigation


3-Leiter-Bus home

Das 3-Leiter-Bus Interface

3-Leiter-Bus Wiki

Die Befehle

Monitor-Mode

Master-Mode

Das Setup

Store/Recall-Funktion

Read-Funktion

 

Beispiele mit PLL-ICs


Grundlage PLL-Synthesizer

Der PLL-Crashkurs


Start

BLOG

Download-Bereich

Crashkurs PLL-Synthesizer


crashkurs
PLL-Synthesizer
+
BONUS
jetzt als PDF.

Downloaden,
ausdrucken &
offline lesen
.

wie immer gratis!

Crashkurs PLL

kleines Wiki zum 3-Leiter-Bus


Synchrone serielle Datenübertragung über den 3-Leiter-Bus

Wie der Name schon vermuten läßt, besteht der 3-Leiter-Bus aus drei Leitungen, der Taktleitung (CLK), der Datenleitung (DATA) und der Enableleitung (ENB). Bei der synchronen seriellen Datenübertragung über den 3-Leiter-Bus handelt es sich um eine einfache Bitschiebeoperation ohne irgendein Protokoll.
(einfaches Linksschieben)

Unter Beispiele werde ich das Laden von z.B. PLL-ICs über den 3-Leiter-Bus
Schritt für Schritt erleutern.

Was bedeutet nun synchron und seriell?

Synchron bedeutet, daß der Master den Takt angibt, also mit der ersten CLK-Flanke ein Bit auf die Datenleitung (DATA) schaltet und mit der zweiten CLK-Flanke der Slave das Bit in sein internes Schieberegister einliest. Dabei ist es unerheblich mit welcher Geschwindigkeit und wie regelmäßig übertragen wird. Alleine der CLK-Takt, den der Master ausgibt, sagt ja dem Slave wann er das nächste Bit einlesen soll. Der Master synchronisiert den Slave somit. Oder man kann auch sagen, die Bits werden taktsynchron übertragen.

Und seriell bedeutet, daß Bit für Bit nacheinander übertragen wird, das höchstwertigste Bit zuerst.
Um z.B. ein Byte zu übertragen, werden die 8 Bits eben nacheinander, also seriell übertragen.
Es werden 8 CLK-Takte benötigt um ein Byte zu übertragen.

Da der 3-Leiter-Bus bitorientiert (und nicht byteorientiert) ist, kann eine beliebige Anzahl von Bits übertragen werden.
Im folgenden Timing-Diagramm (Bild2) sind es nur fünf. Wobei meist Bit Nr.1 das höchstwertigste und Bit Nr.5 das niederwertigste Bit ist. Es kann aber auch mal anders sein, je nachdem ob man links oder rechts schiebt.

timing-diagramm 3-Leiter-Bus

Im übrigen ist z.B. der I²C-Bus auch synchron und seriell, nur wird hier der Slave über seine Adresse angesprochen und es findet eine Art Handshake zwischen Master und Slave nach einem bestimmten Protokoll statt. Der I²C-Bus braucht durch diese Adressierung keine separaten Enableleitungen mehr. Außerdem ist der I²C-Bus byteorientiert gegenüber dem 3-Leiter-Bus, der ja bitorientiert arbeitet.
Ich glaube ich komme gerade vom Thema ab. Zurück zum 3-Leiter-Bus.

Im folgenden Bild ist ein Master mit drei Slaves dargestellt, die über einen 3-Leiter-Bus verbunden sind. Wobei ein Slave ein einfaches Schieberegister, PLL-IC, Display oder sonst etwas sein kann.
Jeder Slave wird mit einer separaten ENB-Leitung vom Master angesprochen, aber die CLK- und DATA-Leitung wird parallel genutzt. Mit jedem Takt auf der CLK-Leitung wird ein Bit auf der DATA-Leitung übertragen. Mit der ENB-Leitung wird der Slave in geeigneter Form aktiviert, z.B. als ChipSelect bei einem Schieberegister oder als Übernahmeimpuls bei einem PLL-IC. Der Datentransfer zwischen Master und Slave wird immer vom Master gesteuert, sowohl in Richtung Slave (Schreiben) als auch in Richtung Master (Lesen). Nur in Richtung Master belegt der Slave die DATA-Leitung (Leseoperation).

3-Leiter-Bus

Weiterhin ist im Bild oben der Anschluß meines 3-Leiter-Bus Interface angedeutet. Im Monitor-Mode können so alle Datentransfers auf dem Bus mitgelesen, und gegebenen Falls gespeichert werden. Ist kein Master vorhanden, kann das Interface den Master ( mode: master ) ersetzen und die vorher gespeicherten oder die von Hand eingegebenen Datentransfers durchführen.

Hinweis: Da das Interface bitorientiert aufgebaut ist, kann man im Strom von Einsen und Nullen schnell den Überblick verlieren. Das Auswerten von komplexeren Datentransfers ist dann schon etwas mühsam oder gar unmöglich.

Das 3-Leiter-Bus Interface ist hauptsächlich für einfache Schieberegisteroperationen gedacht.

In meiner Praxis hat sich das Interface allerdings als sehr nützlich erwiesen um mal schnell ein paar Bits hin und her zu schieben bzw. eine PLL zu steuern.

Ich werde anhand von Beispielen das Laden von z.B. PLL-ICs mit Hilfe des 3-Leiter-Bus Interface Schritt für Schritt erleutern.