www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik CAN oder rs485/422


Autor: kuJayy (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: kuJayy (Gast)
Datum:

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

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: anfänger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A.K. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: kuJayy (Gast)
Datum:

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

Autor: inoffizieller WM-Rahul (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...)

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.