Forum: Mikrocontroller und Digitale Elektronik Bus mit nur einem Kabel


von Michael B. (gm8816)


Lesenswert?

Hallo,
ich möchte ein Bussystem mit einem Kabel realisieren. Es soll ein Master 
vorhanden sein und nicht mehr als 10 Slaves. Dabei sollen alle 
untereinander kommunizieren können. Das protokoll werde ich selbst 
entwickeln, da mir sowas nicht schwer fällt. Mir geht es eher um die 
Hardware. Gibt es ür diesen Einsatzzweck fertige IC's oder auch eine 
Schaltung?

von Markus (Gast)


Lesenswert?

kabel?

wieviel adern?

von Michael B. (gm8816)


Lesenswert?

Die mangelhafte Formulierung tut mir leid. Es soll nur einen Datenkanal 
geben, welcher nur über eine Ader übertragen wird.

von Uhu U. (uhu)


Lesenswert?

10-MHz-Ethernet ist ein Beispiel für so einen Bus.

von Marius S. (lupin) Benutzerseite


Lesenswert?

Wenn das ganze für einen Microcontroller sein soll, dann würde ich als 
hardware die Pinelektronik des controllers verwenden. Damit lassen sich 
die Signalpegel wunderbar erzeugen...

Allerdings wird das mit einer Ader nix, du wirst noch eine zweite für 
Signalmasse benötigen...

von Otto (Gast)


Lesenswert?

Hallo Geoffrey M.,

wie wäre es mit einem LIN-Transceiver tja1020.
Der braucht nur noch 1 Widerstand und 1 Diode.....

Gruss Otto

von Otto (Gast)


Lesenswert?

Bei "1 Ader" gehe ich von 1 Ader + Masse aus...

Gruss Otto

von Michael B. (gm8816)


Lesenswert?

Das mit der Masse ist mir klar. Ohne gemeinsame Masse läuft ja nichts. 
Das mit der Elektonik des Controllers Verstehe ich nicht. Ich kann doch 
nicht einfach die Datenader an einen Pin von jedem Controller 
Anschließen? Oder doch?

von Michel (Gast)


Lesenswert?

Nö, der Pin bzw. der Port muss tristate fähig sein und die Pegel müssen 
passen... ;)

von Michael B. (gm8816)


Lesenswert?

Also wie ich es im Datenblatt vom ATtiny lesen kann sind die Ports 
Tristate fähig. Also einfach alle Verbinden und ich kann loslegen?

von Lanius (Gast)


Lesenswert?

such mal nach 1-wire, zB:

http://de.wikipedia.org/wiki/1-Wire

von Obelix (Gast)


Lesenswert?

> Ohne gemeinsame Masse läuft ja nichts.

FALSCH.

Stichwort : Differenzieller Bus

von Dirk S. (Gast)


Lesenswert?

>> Ohne gemeinsame Masse läuft ja nichts.

> FALSCH.

> Stichwort : Differenzieller Bus

Auch FALSCH.

Auch bei differentieller Übertragung muss die Masse mitgegeben werden um 
den erlaubten Gleichtaktspannungsbereich garantieren zu können.

von Rolf Magnus (Gast)


Lesenswert?

Bei differenzieller Übertragung braucht man keine gemeinsame Masse, aber 
man braucht trotzdem zwei Leitungen, somit gewinnt man in der Hinsicht 
nichts. Man käme aber auch mit einer Leitung aus, denn sonst wären 
Funkübertragungen nicht möglich.

> Es soll ein Master vorhanden sein und nicht mehr als 10 Slaves. Dabei
> sollen alle untereinander kommunizieren können.

Ja was denn nun? Master/Slave oder gleichberechtige Teilnehme?

von Andreas K. (a-k)


Lesenswert?

> Auch bei differentieller Übertragung muss die Masse mitgegeben werden um
> den erlaubten Gleichtaktspannungsbereich garantieren zu können.

Wenn beide Seiten potentialgetrennt sind ist es nützlich aber zumindest 
bei RS485 nicht erforderlich - dank der Charakteristik der Transceiver 
stellt sich das automatisch ein. Und ohne Potentialtrennung ist das 
entweder schon gegeben oder die Masse nützt nicht viel (evtl. 
Ausgleichsströme).

von Andi (Gast)


Lesenswert?

Hallo,
da man so viele verschiedene Ansichten bezüglich Masse oder nicht bei 
differenzieller Übertragung liest, möchte ich auf ein sehr interessantes 
Dokument von Maxim verweisen - welches die Notwendigkeit der 
Masseleitung erläutert( wobei die Potentialtrennung keinen Einfluss hat; 
Ziel ist es ja den Bus absolut zu isolieren).

~ andi

http://www.maxim-ic.com/appnotes.cfm/appnote_number/2045/

von Winfried (Gast)


Lesenswert?

Auswahl eines Busssystems hängt von vielen Rahmenbedingungen ab, da 
musst du schon mal etwas näher spezifizieren, was du willst. Es macht 
z.B. einen Unterschied, ob du 1GBit oder 200 Byte pro Sekunde übertragen 
willst. Weiterhin wichtig sind maximale Buslänge, galvanische 
Entkopplung, Datenmenge, die geschaufelt werden soll, Pollzeit für die 
Slaves, u.v.m.

Mach dir doch einfach mal ein paar Gedanken darüber und poste mal, was 
du dir da vorstellst. Wenn du den konkreten Anwendungsfall beschreibst, 
kann man auch besser verstehen, was du brauchst.

1Wire, wie obiger Link, ist z.B. schon eine sehr interessante 
Angelegenheit, die dein Vorhaben treffen könnte.

Schlussendlich hängt es auch davon ab, ob du ein Produkt verkaufen 
willst und dann so Sachen wie Copyrights und Patente beachten musst (wie 
bei 1-Wire).

von Michael B. (gm8816)


Lesenswert?

Gepollt werden soll alle 10ms oder auch mehr. Es ist in erster Linie 
keine Zeitkritische Anwendung. Die Buslänge muss nicht mehr als 100m 
betragen. Was muss ich denn für Rechte beachten wenn ich das Protokoll 
komplett selbst entwickel?

von ??? (Gast)


Lesenswert?

> Was muss ich denn für Rechte beachten wenn ich das Protokoll
> komplett selbst entwickel?

Fremde! ... Welche? ... das ist davon abhängig was Du da entwickelst ...

von Lupin (Gast)


Lesenswert?

junge junge, mach einfach! Du kannst zwei AVR Port pins problemlos 
zusammenpopeln und damit auch 100 meter erreichen... siehe hier, da 
wurde genau das implementiert was du brauchst (vermute ich mal...): 
Beitrag "1-Drahtbidirektionalbus über große Distanz mit AVR"

Da wirst du sicherlich keine Patente oder so beachten müssen...

von Nullpointer (Gast)


Lesenswert?

Fuer einen 100m langen Bus, der alle 10ms gepollt wird, dh, die 
Datenrate ist  einiges oberhalb 9600 baud, scheint mir RS485 das Minimum 
zu sein. Mit GND, Data+, Data-, also 3 Draehten. Auf externe Erden 
wuerde ich mich nicht verlassen.
Zu den Rechten : Wenn du nicht offensichtlich irgendwo abschreibst, 
sollten keine Probleme auftreten. Die erste Frage ist nun, sind alle 
Meldungen gleich lang? Falls nicht, enthaelt jede Meldung eine 
Laengen-Feld, oder die Meldungen sind fest vorgegeben und in einer 
Statusmaschine verdrahtet.

von Michael B. (gm8816)


Lesenswert?

Ich habe gerade den PCA82C250 entdeckt. Das könnte doch was für meine 
Zwecke sein. Im Datenblatt steht zwar, dass er für einen Can Bus ist 
aber ich muss ihn ja nicht als solches benutzen.

von Nullpointer (Gast)


Lesenswert?

Ein CAN Bus ist ein RS485 plus die Hardware fuer 6 byte Meldungen. Wenn 
man laengere Meldungen als 6 bytes haben moechte, schaut CAN schlecht 
aus.

von Michael B. (gm8816)


Lesenswert?

6 Bytes Reiches mir völlig aus. Ich möchte nur wissen ob ich mit dem 
Controller auch ein anderes Protokoll benutzen kann. So wie ich das sehe 
macht der nichts anderes als Daten senden und empfangen.

von Rolf Magnus (Gast)


Lesenswert?

> Fuer einen 100m langen Bus, der alle 10ms gepollt wird, dh, die
> Datenrate ist  einiges oberhalb 9600 baud,

Ich weiß ja nicht genau, was "alle 10ms gepollt" heißen soll, aber wenn 
da alle 10 ms ein Bit eintrudelt, kommt man lange nicht auf 9600 Baud. 
Selbst wenn mit "gepollt" die gesamte Logik zum Lesen eines kompletten 
Byte gemeint ist, ist man noch weit von 9600 Baud entfernt.

@Nullpointer:
CAN-Botschaften haben bis zu 8 Bytes Nutzdaten, nicht 6.

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.