Hi, ich hätte gerne eine qualifizierte Meinung von jemanden der sich gut mit UART speziell mit dem RS485 Bus auskennt. Geplant ist ein Master, der 4 Kanäle separat ansteuern kann. An den einzelnen Kanälen müssen Slaves u.a. im hot-plugging Modus erkannt werden (entweder durch pollen oder mit zusätzlichen Leitungen). Ist das nach Spec. erlaubt bzw. funktioniert so etwas prinzipiell? Den Schaltplan findet ihr im Anhang. Danke für Eure Hilfe!! Grüße Gerhard
Hallo Gerhard, sowas funktioniert prinzipiell, ja. Die Aufteilung in 4 Kanäle kannst Du so machen. Das Hotplug kannst Du am einfachsten mit einer regelmäßigen Abfrage des Busses machen, kommt halt auf Deine Slaves an und wo Deine Schaltung eingesetzt wird. Gruß
Ich würde /RE permanent aktiv lassen. So kannst Du die eigenen Pakete mithören und weißt, ob ein Telegramm durch einen Hotplug-Vorgang kaputt gegangen ist. fchk
Frank K. schrieb: > Ich würde /RE permanent aktiv lassen. So kannst Du die eigenen Pakete > mithören und weißt, ob ein Telegramm durch einen Hotplug-Vorgang kaputt > gegangen ist. > > fchk Das Problem dabei ist, dass dann alle RX Pins gegeneinander arbeiten müssen.
Hallo!
> musst du sie ver-odern
Das funktioniert nur so lange, bis ein Slave ständigen Start-Pegel auf
die Leitung klemmt (z.B. durch Fehlfunktion). Bei unklaren Situationen,
wie sie durch Hot-Plug entstehen, kann sowas tödlich sein. Entweder ist
man sich dessen bewußt, oder muß explizit separat umschalten.
Aaaaaahhhhhhhh. Schmeiss den 75176 raus. Der ist veraltet und zieht 40mA ohne Last. Ein neuerer pinkompatible Baustein zieht weniger wie 1mA.
Hallo Gerhard M.
> entweder durch pollen oder mit zusätzlichen Leitungen
Das Problem beim RS485 ist doch, es kann immer nur ein Device (Master
/Slave) den Bus verwenden.
Da musst Du also alles über das verwendete Protokoll abgefangen.
Jeder Slave bekommt eine ID vom Master zugewiesen, zwischen durch fragt
der Master über ein Broadcasts (ID=0) alle Slaves ohne ID ab, diese
Antworten dann mit einer Kennung(Type, Bez, SN oder so).
Um Kollisionen zu vermeiden, wenn mehrere Slaves ohne ID sich
gleichzeitig melden wollen, musst Du Dir was überlegen, das die Slaves
verschieden lange dann warten, um den BUS zu belegen. Mach es doch so
ähnlich wie Ethernet: jeder Slave bekommt so was wie eine einmalige
MAC-Adresse bei der Herstellung
und dein Master vergibt IDs so wie DHCP die IP.
ansonsten werden alle Slaves über die verwendete ID <> 0 abgefragt
(gepollt), ob diese war zu melden haben bzw. ob diese noch vorhanden
sind.
So lange Du nur einen BUS-Master verwendest ist alles recht einfach zu
bewerkstelligen, interessant wird das erst bei mehreren Master, oder
wenn jeder Slave auch Master sein kann.
Bei mehreren Master kann man z.B. mit einem Token geordnet arbeiten oder
mit der Kollision Methode.
Gruss Ralf
Christian B. schrieb: > musst du sie ver-odern wieso sollte er das? Die Kanäle sollten parallel eingelesen und verarbeitet werden. Dann kann das Zusammenführen der Information auf logischer Ebene erfolgen und nicht lowlevel auf Signalebene.
wieso er das sollte? nun, weil er dann die UART Einheit des Controllers verwenden kann. Via Software die Unterscheidung zu realisieren bedeutet, die UART via Software zu emulieren. Muss er selbst wissen, was ihm wichtiger ist. Bei einem Master Slave Bus, was der RS485 ja eigentlich ist, darf es normal nicht vorkommen, daß mehrere Slaves parallel senden. Somit sehe ich erstmal kein Problem darin die Signale via Hardware zusammenzuführen. Wenn er nat. ein Protokoll fahren will, wo er mehrere Slaves hat die gleichzeitig oder gar autark senden sieht es anders aus. Dann ist eine Implementierung zumindest des Empfängers via Software sicherlich sinnvoller als das Hardwareverknüpfen. Fakt ist jedoch, daß es so, wie auf dem Schaltbild dargestellt vorraussichtlich nicht funktionieren kann. de facto funktioniert es so wie gezeichnet nur dann, wenn die RS285 Wandler OC Ausgänge haben. Andernfalls Treiben Ausgänge gegeneinander. Auf diesen Umstand ziehlte meine Aussage ab
Christian B. schrieb: >Fakt ist jedoch, daß es so, wie auf dem Schaltbild dargestellt >vorraussichtlich nicht funktionieren kann. de facto funktioniert es so >wie gezeichnet nur dann, wenn die RS285 Wandler OC Ausgänge haben. >Andernfalls Treiben Ausgänge gegeneinander. Auf diesen Umstand ziehlte >meine Aussage ab Kennst Du denn den Baustein 65176 oder 75176 überhaupt? Der RX-Pin kann Tristate, dazu ist ja auch der Eingang /RE vorhanden. Anregung: Ich würd an RX1 einen leichten Pull-Upwiderstand einfügen, eben für den Fall, das alle RX-Pins der '176 auf Tristate geschalten sind. Das hilft dem PIC mit seinen RX1-Eingang, der bleibt so immer in einem definierten Zustand. Für den Baustein '176 gibts pin-kompatiblen Ersatz u.a. von Maxim.
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.