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?
Die mangelhafte Formulierung tut mir leid. Es soll nur einen Datenkanal geben, welcher nur über eine Ader übertragen wird.
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...
Hallo Geoffrey M., wie wäre es mit einem LIN-Transceiver tja1020. Der braucht nur noch 1 Widerstand und 1 Diode..... Gruss Otto
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?
Nö, der Pin bzw. der Port muss tristate fähig sein und die Pegel müssen passen... ;)
Also wie ich es im Datenblatt vom ATtiny lesen kann sind die Ports Tristate fähig. Also einfach alle Verbinden und ich kann loslegen?
> Ohne gemeinsame Masse läuft ja nichts.
FALSCH.
Stichwort : Differenzieller Bus
>> 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.
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?
> 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).
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/
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).
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?
> 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 ...
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...
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.
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.
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.
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.
> 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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.