Forum: Mikrocontroller und Digitale Elektronik I2C analog über nur EINE Leitung übertragen


von I2C Überleger (Gast)


Lesenswert?

Tach,

Mir kam so eine Idee, die ich spontan interessant fand,
erstmal ohne konkrete Anwendung, eher als Denkmodell:

I2C-Bus Signale (SCL/SCK) können kombinatorisch genau 4 Zustände 
annehmen,
soweit klar.

Wäre es nicht möglich alle SCK+SCL Kombinationen mittel paar Bauteilen 
in
4 Spannungszustände z.B. 0V - 1.5V - 3V - 5V zu wandeln,
damit das ganze dann über NUR EINE Leitung übertragen werden kann?

Auf der anderen Seite natürlich eine Rückwandlung, um wieder SCK/SCL zu 
erhalten.


Falls es mit überschaubarem Aufwand gelingt könnte ich mir durchaus
Anwendungen dafür vorstellen.

Nur mal so als Idee, was haltet Ihr davon?

von Jobst Q. (joquis)


Lesenswert?

Irgendwie möglich wäre es sicherlich. Aber ich glaube kaum, dass die 
Signalübertragung besser wäre. Und wenn schon analog, dann nicht mit 
Spannung, sondern mit Strom. Siehe 4-20mA Systeme.

von Dergute W. (derguteweka)


Lesenswert?

Moin,

I2C Überleger schrieb:
> was haltet Ihr davon?

Wenig bis nix. I2C ist eh schon unangenehm, weil bidirektional und 
open-collector/drain-gedoens, der eine mag' die Flanken nicht zu 
schnell, der andere nicht zu langsam, die Pullups haben die lustigsten 
Groessen und Spannungen zu denen sie pullen, und dann noch extra Faxen, 
nur um eine popelige Leitung einzusparen? Nee, da bohr ich mir doch 
lieber ein Loch ins Knie.

Gruss
WK

von Moby (Gast)


Lesenswert?

1. Wenn ich schon eine Hin/Rückwandlung brauche nehm ich doch gleich 
D/A-Ausgang auf A/D Eingang.
Für die eine Leitung Ersparnis wär das sonst ein ganz schöner Aufwand.
2. A/D und D/A Wandler müssten bei entsprechender Datenfrequenz schon 
ziemlich schnell arbeiten.
3. Die Auswertung softwareseitig erfordert mehr Ressourcen.
3.. Bei 3V hast Du schon  nicht mehr so schöne Spannungshübe 
(Störsicherheit).
4. Das Ganze funktioniert zunächst nur in eine, nicht aber in zwei 
Richtungen wie bei I2C.

Alles in allem: Schnapsidee :-)

von STK500-Besitzer (Gast)


Lesenswert?

Wie sollte dann Clockstreching, Repeated-Start funktionieren?

Wozu hat sich dann Dallas OneWire ausgedacht?

von Wolfgang (Gast)


Lesenswert?

I2C Überleger schrieb:
> Nur mal so als Idee, was haltet Ihr davon?

Beim I2C liegt der Clock so, dass während der positiven Phase die Daten 
stabil sind. Hast du dir überlegt, wie du das in deiner Kodierung 
unterbringst. Außerdem müssen so Dinge wie Clock-Streching, Ack oder 
sogar Daten vom Slave rüber kommen, während der Master den Clock auf die 
Leitung legt.

Mir scheint, du musst die Idee noch etwas ausarbeiten.

Beitrag #5476419 wurde von einem Moderator gelöscht.
von Sven B. (scummos)


Lesenswert?

Dergute W. schrieb:
> Nee, da bohr ich mir doch
> lieber ein Loch ins Knie.

Ich denke, das fasst die Idee ganz gut zusammen. Kann man schon 
vermutlich irgendwie machen, aber wozu soll das gut sein?

von KI-Besitzer (Gast)


Lesenswert?

I2C Überleger schrieb:
> I2C-Bus Signale (SCL/SCK) können kombinatorisch genau 4 Zustände
> annehmen,
> soweit klar.

Das ist, vielleicht nicht für jeden ersichtlich, aber ganz klar falsch, 
weil Du nicht berücksichtigst, wer wann welche Signale setzt, und wie 
sie sich gegenseitig beeinflussen können. Schon mal was von (ganz böse) 
Clockstreching gehört?

von Possetitjel (Gast)


Lesenswert?

I2C Überleger schrieb:

> Nur mal so als Idee, was haltet Ihr davon?

Wenn es Dir -- unabhängig von I2C -- um Datenübertragung
über nur ein Adernpaar geht: Mal MFM angucken.

von Alex G. (dragongamer)


Lesenswert?

Possetitjel schrieb:
> I2C Überleger schrieb:
>
>> Nur mal so als Idee, was haltet Ihr davon?
>
> Wenn es Dir -- unabhängig von I2C -- um Datenübertragung
> über nur ein Adernpaar geht: Mal MFM angucken.
Ähm, ginge es etwas genauer?
Das einzige im Elektronikbereich das ich unter diesem Begriff finden 
konnte ist das heir: 
https://books.google.de/books?id=Y06H-cZAiwAC&pg=PA737&lpg=PA737&dq=mfm+protokoll&source=bl&ots=gIt0FWgfQw&sig=ZY9ffUYV3uRH6O8wc0gSxHr6mVw&hl=de&sa=X&ved=0ahUKEwjtrZOL5obcAhUO_qQKHT9lCSAQ6AEITDAF#v=onepage&q=mfm%20protokoll&f=false

von Possetitjel (Gast)


Lesenswert?

Alex G. schrieb:

>> Wenn es Dir -- unabhängig von I2C -- um Datenübertragung
>> über nur ein Adernpaar geht: Mal MFM angucken.
> Ähm, ginge es etwas genauer?

Klar. Als Startpunkt:
https://de.wikipedia.org/wiki/Modified_Frequency_Modulation


> Das einzige im Elektronikbereich das ich unter diesem
> Begriff finden konnte ist das heir: [...]

Ja, schon die richtige Richtung.

Ich hatte das Gefühl, dass es dem TO primär um die
Möglichkeit ging, Takt und Daten auf einer Leitung zu
übertragen. Das geht mit MFM ziemlich einfach; eine
Flanke in der Mitte der Bitzelle steht für eine "1",
eine Flanke am Ende der Bitzelle für eine "0". Pegel
ist egal --> Invertierung spielt keine Rolle; es zählen
nur die Flanken.
Es können nur Pulse von einer, eineinhalb und zwei
Bitzellenlängen auftreten; 2*T tritt nur bei der Folge
"101" auf, was man zum Synchronisieren verwenden kann.
Die Runs dürfen nicht zu lang werden, weil sich "0"-Runs
und "1"-Runs nur in der Phasenlage unterscheiden.

MFM ist insofern lukrativ, weil man theoretisch 2bit/Hz
Bandbreite übertragen kann; ein Kanal mit 1MHz Bandbreite
kann also 2MBit/s übertragen.
Der Code ist m.W. gleichstromfrei, kann also über einen
Übertrager geschickt werden.

HTH

von Alex G. (dragongamer)


Lesenswert?

Possetitjel schrieb:
> Alex G. schrieb:
>
>>> Wenn es Dir -- unabhängig von I2C -- um Datenübertragung
>>> über nur ein Adernpaar geht: Mal MFM angucken.
>> Ähm, ginge es etwas genauer?
>
> Klar. Als Startpunkt:
> https://de.wikipedia.org/wiki/Modified_Frequency_Modulation
Ah okey, war das Richtige. Da es um Festplatten ging, war ich etwas 
verwirrrt.

Possetitjel schrieb:
>
> Ich hatte das Gefühl, dass es dem TO primär um die
> Möglichkeit ging, Takt und Daten auf einer Leitung zu
> übertragen. Das geht mit MFM ziemlich einfach; eine
> Flanke in der Mitte der Bitzelle steht für eine "1",
> eine Flanke am Ende der Bitzelle für eine "0". Pegel
> ist egal --> Invertierung spielt keine Rolle; es zählen
> nur die Flanken.
> Es können nur Pulse von einer, eineinhalb und zwei
> Bitzellenlängen auftreten; 2*T tritt nur bei der Folge
> "101" auf, was man zum Synchronisieren verwenden kann.
> Die Runs dürfen nicht zu lang werden, weil sich "0"-Runs
> und "1"-Runs nur in der Phasenlage unterscheiden.
>
> MFM ist insofern lukrativ, weil man theoretisch 2bit/Hz
> Bandbreite übertragen kann; ein Kanal mit 1MHz Bandbreite
> kann also 2MBit/s übertragen.
> Der Code ist m.W. gleichstromfrei, kann also über einen
> Übertrager geschickt werden.
>
> HTH
Interessant!
Denke verbreiteter ist allerdings das schon erwähnte 1-wire Protokoll.

von c-hater (Gast)


Lesenswert?

Possetitjel schrieb:

> Möglichkeit ging, Takt und Daten auf einer Leitung zu
> übertragen. Das geht mit MFM ziemlich einfach

Ja, und auch die restlichen Vorteile, die du beschreibst, sind alle 
zutreffend. Du hast sogar den größten Nachteil erwähnt, leider aber 
nicht kenntlich gemacht, dass es sich um einen Nachteil handelt und wie 
groß dieser ist. Nämlich:

> es zählen
> nur die Flanken.

Das ist schlecht, denn es bedeutet, das jede Störflanke die Nachricht 
zerstört, jedenfalls so lange man nicht entsprechende Gegenmaßnahmen 
unternimmt. Solche sind durchaus möglich und können auch sehr wirksam 
sein, treiben aber leider auch den empfängerseitigen Aufwand erheblich 
in die Höhe.

In der wirksamsten Form läuft es auf eine Art PLL und Überabtastung 
hinaus. Kitzlig ist dabei das Verhalten der PLL. Einerseits darf sie nur 
relativ lose gekoppelt sein, um asynchrone Störungen möglichst gut 
"ausblenden" zu können, andererseits ist aber eine möglichst starre 
Kopplung anzustreben, damit sie sich schnell auf das Nutzsignal 
synchronisieren kann. Hier steht also der übliche Spagat zwischen 
widerstreitenden Anforderungen an.

Leider führt dieser Spagat regelmäßig dazu, dass dem MFM-Signal ein 
ausreichend langer Sync-Header voranzustellen ist, wie man leicht an so 
ziemlich allen praxisrelevanten Anwendungen dieser Kodierung erkennen 
kann.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.