Forum: Mikrocontroller und Digitale Elektronik CAN oder rs485/422


von kuJayy (Gast)


Lesenswert?

Hi

ich will eine Übertragungsstrecke über etwa 200 m aufbauen. Welche der
o.g. Verfahren ist sicherer bez. Datenverlust. Auf Geschwindigkeit
kommt es nicht an, der Probrammieraufwand bei CAN sei auch als
unwichtig gesehen.
Gibt es dann überhaupt einen Unterschied?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

War es nicht so, dass der CAN-Bus eine Art Weiterentwicklung der RS485
ist? Somit ist ein Vergleich meiner Ansicht nach ziemlich hinfällig,
wenn man sich nicht um Fehlerbehandlung und so kümmern will.

von A.K. (Gast)


Lesenswert?

RS485 definiert nur die Signale auf der Leitung. Was für Bits du
überträgst ist deine Sache. Für CRC/ECC/Retry bist also ausschliesslich
du selbst verantwortlich.

Bei CAN wird CRC/Retry-Handhabung bereits vom Controller erledigt.
Dafür ist der Controller etwas umständlicher anzusprechen.

von kuJayy (Gast)


Lesenswert?

gut, der Max485 hat also kein eigenes CRC... damit wäre die Entscheidung
gefallen...

von crazy horse (Gast)


Lesenswert?

die CAN-Leitungstreiber selbst haben das auch nicht...
Aber sie haben einen grossen Vorteil gegenüber RS485-Treibern: es gibt
nicht den üblichen H- und L-Pegel auf der Leitung, sondern einen
dominanten und einen rezessiven Pegel, damit sind Hardwarekollisionen
schon mal ausgeschlossen.
Ansonsten kommt es darauf, welche Art von Netzwerk du aufbauen willst.
Der übliche RS485-Bus ist erstmal wesentlich leichter zu
implementieren, da du einfach mit einem x-beliebigen MC rangehen
kannst. Und wenn du dann eine Single-Master-Architektur fahren kannst,
ist das ganz easy. Master fragt -> nur der angesprochene slave
antwortet.
Kompliziert wirds nur, wenn du ein Multimaster-Bus aufbauen
willst/musst. Dafür ist CAN wesentlich besser geeignet, auch wenn man
dafür spez. CAN-Controller braucht. Kosten aber nicht die Welt, ich
setz am liebsten den MCP2515 ein.

von anfänger (Gast)


Lesenswert?

hallo zusammen

ich habe mal eine Frage zu diesem Thema, ich benötige einen Umsetzer
von seriel auf rs 485. Gibt es da einfache Schaltungen und kennt jemand
einen guten Link mit Erklärungen.

danke für eure Hilfe.

von A.K. (Gast)


Lesenswert?

Stück Kupfer. RS485 ist nämlich schon seriell. ;-)

Aber ich nehme an, dass du mir "seriell" tatsächlich RS232 meinst.
Siehe http://www.mikrocontroller.net/forum/read-1-398222.html#398559

von kuJayy (Gast)


Lesenswert?

Warum ist eigentlich eine Hardwarekollision ausgeschlossen, wenn ich die
dominanten und einen rezessiven Pegel benutze?

von inoffizieller WM-Rahul (Gast)


Lesenswert?

Ausgeschlossen ist sie nicht, aber das dominante Bit setzt sich durch,
und wenn man den Zustand auf dem Bus überwacht, sprich das Signal
zurückliest, das man gerade auf die Leitung gestellt hat, es aber nicht
liesst, weil jemand anders ein dominantes auf dei Leitung gelegt hat,
dann nimmt man "die Beine" vom Bus und wartet bis der Bus wieder
freigegeben ist.
Das übernimmt dann der CAN-Controller.
Im Gegensatz zu RS485-Transceivern sind die CAN-Transceiver auch extra
so aufgebaut, dass man das auch detektieren kann. RS485-Transceiver
sind da niederohmiger.

(Hoffentlich habe ich nicht zuviel wirres Zeug geschrieben...)

von crazy horse (Gast)


Lesenswert?

genauso isses. Der CAN-Controller liest mit, was auf der Leitung
passiert und zieht sich beim Senden sofort vom Bus zurück, wenn
gelesener Pegel (dominant) nicht mit dem gesendeten (rezessiv)
übereinstimmt. Und genau diese Struktur macht den CAN so einfach
multimasterfähig, d.h. jeder kann jederzeit versuchen, auf den Bus
zuzugreifen, ohne sich vorher mit den anderen abzusprechen oder eine
Zeitscheibe zugeteilt zu bekommen (klappt zwar nicht immer sofort, aber
wenn der Bus nicht überlastet ist, irgendwann schon)
Hardwareseitig sind die Treiber so ausgelegt, dass sich 2
"gegeneinander" sendende Ausgangsstufen weder überlasten oder
undefinierte Pegel erzeugen können.

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.