Hallo Leute, vielleicht hat jemand eine Idee zu meinem Problem : Ich baue gerade ein RS-485 Hausbus auf und mich stört die Sende-/Empfangssteuerung über einen I/O-Pin bei Halb-Duplex. Kann ich nun direkt vom UART (RxD/TxD) Daten direkt bei Full-Duplex auf den Bus geben, z.B. mit MAX488 und brauche mich nicht mehr um evtl. Datenkollision zu kümmern ? Wäre ja auch praktisch um einen Funk-Koppler zu bauen mit Easy-Radio UART ---> direkt auf Max488 und dann auf den Hausbus... Hat jemand hier auch schon Erfahrungen gemacht, auch was die Terminatoren angeht(auch nur 120 Ohm auf A/B und dann Y/Z) ? Gruss A. Arndt
Also RS485 geht definitv kein Fullduplex. Dazu müsstest du ein Adernpaar mehr spendieren und über RS422 (LAN) fahren. Per Funk bräuchtest du auch jeweils einen Sender und einen Empfänger pro Teilnehmer (unabhängig voneinandern kein Transceiver).
Hallo, ist schon klar, ich brauche 4 Busleitungen, aber die habe ich schon, ist die Reichweite über lange Leitungen auch so unkiriisch, nehme nämlich nur geschirmate Leitung und nicht twisted-pair...? Reichweite max. 40 Meter. Ob das nun rs-485 oder rs-422 heisst ist ja eh egal, wenn die Handhabung identisch ist. Ich habe ca. 10 Devices zu vernetzten und soll dann auch per Funk weitergehen... Ist leider auch etwas stromgieriger, aber auch nur bei Senden, oder ? Bei RS-485 nimmt der Chip sich die 50mA nur beim Senden und das ist ja nicht lange... Per Funk : BUS ---> Funktranceiver Funktransceiver --> BUS und auch Funktransceiver --> AVR Gruss A. Arndt
Also kabelgebunden dürfte das mit 40m kein Problem sein. Ich habe ein DMX-Signal (auch RS485, 250 kbit) in einer Messehalle (Modellbau, viele Fernsteuerungen als 'Störsender' aktiv) über 200m mit normalen Mikrofonkabeln ohne Störungen betrieben. Funk gibt's meines Wissens fertige Module mit AVR drauf, wo du nur mit RS2323 draufgehen kannst. Wie's da mit Fullduplex aussieht weiß ich nicht.
kein problem, wenn du nur 2 Teilnehmer hast. Ist dann aber erst mal kein echter Bus mehr. Sollten es mehr als 2 Teilnehmer sein (oder später werden?) geh gleich auf CAN. Das ist einfach genial.
Bei einem einzelnen Master funktioniert 4-Draht RS485 durchaus auch als Bus mit mehr als einem Slave im Full Duplex Betrieb. Allerdings benötigen die Slaves dann 4-Draht Interfacebausteine mit Driver Enable Signal. Also beispielsweise 14pin MX489 statt 8pin MAX488.
Hallo, ich möchte ja gerade nicht den Krams mit dem Single-Master haben, deshalb Full-Duplex. CAN ist viel zu kompliziert und wesentlich teurer, soviel ich weiss. Und ich möchte ja auch keinen Pins extra für Enable-Funktionen opfern... Gruss A. Arndt
Ohne Richtungssteuerung müssen immer alle Teilnehmer auf Sendung sein. Wie soll denn das bei RS485 (Treiber mit Gegentakt-Endstufe)ohne Kollision funktionieren? CAN bietet diese Möglichkeit, da die Treiber open collector Stufen sind.
Ein RS485 Multi-Master-Bus ist komplexer als CAN, weil du sicherstellen musst, das nie mehr als 1 Device gleichzeitig sendet ist. Das ist alles andere als trivial. Und mit 4-Draht geht es überhaupt nicht. Ein 2-Draht CAN-Treiber erspart dir zwar die Enable-Leitung, aber nicht die Arbitrierung. Seit CAN günstig und ohne Aufwand zu haben ist (MCP2515), gilt die einfache Regel: Single-Master = RS485, Multi-Master = CAN-Bus.
Also, 485 kann per 2-Draht nur halbduplex, soweit klar. Die Busteilnehmer müssen, wenn sie nix zu senden haben im Listen-Mode sein, weil der Bus sonst belegt ist. Dafür ist dann aber Multimaster fähig, kommt aufs protokoll an. Ist aber nicht gerade ne easy Geschichte von wegen Token usw. Ein Beispiel für die Geschichte ist der Profibus, der ist 485 hardwaremässig kompatibel. Auf 4-Draht kann der Bus nur einen Master, der Rest müssen Slaves sein, dafür gehts dann aber vollduplex. Ob halb oder vollduplex find ich bei x MBit Übertragungsrate über hunderte Meter weg nicht mehr so brisant. Schwierig ist da schon eher das Protokoll, das ja von Hand gemacht sein muss. Beim CAN ist das soweit ich informiert bin einfacher, die Busbausteine knobeln das unter sich aus und man muß nur proggen sende Byte xy an Empfänger Z
Aber sicher geht das, ohne Kollisionserkennung per 4-Draht! Als Ringstruktur: jeder Busteilnehmer hat sein Sendepaar am Empfangspaar des Nachbarn und sendet alles Empfangene weiter (bis auf das, was er selbst gesendet hat). Wenn sich das mit der Ringstruktur verkabeln läßt, ist das extrem einfach zu programmieren und man spart sich die Einarbeitung in CAN. Allerdings spart es keinen Pin gegenüber halb-duplex, zumindest wenn man jenen über Software-UARt macht: im einen Fall hat man einen Pin zum Umschalten und den anderen als RX/TX; im anderen Fall hat man zwei Pins für RX und TX. PS: Warum gibt es eigentlich keine Treiber, die erkennen, ob ein µC-Pin aktiv oder tristate ist, dann würde ein einziger Pin reichen! Und hardwaremäßig ja eigentlich kein Problem die Automatik.
das wäre zwar eine Möglichkeit, aber nicht gerade empfehlenswert. 1 Controller fällt aus -> das ganze Netzwerk steht Ausserdem kommt es zu nicht unerheblichen Verzögerungen, jeder Controller muss ja min. erstmal 1Byte (in der Praxis eher die ganze Botschaft) empfangen, analysieren und dann weiterschicken. Und jede Veränderung am Bus führt zu sich verändernden Verzögerungszeiten. Und wie willst du Prioritäten vergeben? Nene, das ist nichts. Man muss den CAN nicht einmal vollständig verstehen (auch wenns besser ist:-), um damit arbeiten zu können, ein paar wichtige Grundlagen reichen erstmal, um das zum Laufen zu bringen.
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.