Forum: Mikrocontroller und Digitale Elektronik zwei Controller an einem CAN-Transceiver


von Benjamin (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
ich wollte fragen, ob es möglich ist, das zwei Mikrocontroller sich 
einen CAN-Transceiver teilen. Eigentlich müßte es doch möglich sein, da 
immer nur einer sendet, oder? Im Anhang befindet sich das Schaltbild zur 
Erklährung.
Vielen Dank

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Benjamin schrieb:
> Eigentlich müßte es doch möglich sein, da immer nur einer sendet, oder?
Und wie stellst du dir die Sache mit dem Acknowledge und der 
Arbitrierung vor?

von Benjamin (Gast)


Lesenswert?

letztendlich kann man den Transceiver doch als reinen Pegelumwandler 
betrachten, oder? Da aber doch immer nur einer senden kann müßte es doch 
keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung 
& Acknowledge auftauchen

von TestX .. (xaos)


Lesenswert?

Benjamin schrieb:
> letztendlich kann man den Transceiver doch als reinen Pegelumwandler
> betrachten, oder? Da aber doch immer nur einer senden kann müßte es doch
> keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung
> & Acknowledge auftauchen

es gibt dominante und rezessive pegel auf dem CAN... RX/TX haben das 
nicht..daher funktioniert das so nicht! nimm 2 transceiver!

von H.Joachim S. (crazyhorse)


Lesenswert?

Hm, müsste eigentlich funktionieren.
Allerdings verstehe ich nicht, was du mit 2 CAN-Controllern am selben 
Platz überhaupt machst:

von Reinhard R. (reinhardr)


Lesenswert?

H.joachim Seifert schrieb:
> Hm, müsste eigentlich funktionieren.

Die Grundidee scheint plausibel zu sein. Beim CAN Bus ist allerdings 0 
der dominante Pegel, d.h. das OR Gatter muss durch ein AND Gatter 
ersetzt werden.

Gruß,
Reinhard

von Ballermann (Gast)


Lesenswert?

Oder die beiden Controller mit einem Pin verbinden und einen dominanten 
uC definieren?

von Falk B. (falk)


Lesenswert?

@  Benjamin (Gast)

>letztendlich kann man den Transceiver doch als reinen Pegelumwandler
>betrachten, oder?

Oder. Es ist ein CAN-CONTROLLER, der ne MENGE Logik enthält, kein dummer 
MAX232.

> Da aber doch immer nur einer senden kann müßte es doch
>keinen Konflikt geben. Oder welches Problem könnte bei der Arbitrierung
>& Acknowledge auftauchen

Endlose. Nimm je einen CAN-Controller pro uC, die DInger sind 
spottbillig.

MFG
Falk

von Dietrich L. (dietrichl)


Lesenswert?

Falk Brunner schrieb:
> Oder. Es ist ein CAN-CONTROLLER, der ne MENGE Logik enthält, kein dummer
> MAX232.
> ...
> Endlose. Nimm je einen CAN-Controller pro uC, die DInger sind
> spottbillig.

Falk, schau Dir noch mal sein Bild an:
Er wollte doch nur einen Transceiver für zwei Controller verwenden.
Allerdings, ob sich das lohnt? Mit getrennten Transceivern spart man 
sich die "Synchronisation" der beiden Controller, um zu verhindern, dass 
sie gleichzeitig senden.

Gruß Dietrich

von H.Joachim S. (crazyhorse)


Lesenswert?

Ja, Logik muss geändert werden.
Dominanter CAN-Pegel: Differenzspannung >0,9V. Den erzeugen 
CAN-Transceiver mit Eingangspegel Low. D.h. der Low-Pegel des 
Controllers muss auf jeden Fall auf den Bus geschaltet werden -> 
UND-Gatter.

Ich behaupte, das funktioniert.

von Falk B. (falk)


Lesenswert?

@  Dietrich L. (dietrichl)

>Falk, schau Dir noch mal sein Bild an:
>Er wollte doch nur einen Transceiver für zwei Controller verwenden.

OK, du hast recht. War ich wohl ein wenig zu oberflächlich.

>Allerdings, ob sich das lohnt?

Nö. Vor allem, wer packt ZWEI COntroller auf die Platine, die dann per 
LON kommunizieren? In den allermeisten Fällen kann man die Funktionen in 
EINEM uC unterbringen, und es wird meist auch einfacher und besser.

Aber selbst wenn zwei uCs sinnvoll wären, den Transceiver doppelt zu 
nutzen ist nicht sonderlich sinnvoll.

MFG
Falk

von H.Joachim S. (crazyhorse)


Lesenswert?

Dietrich L. schrieb:
> Mit getrennten Transceivern spart man
> sich die "Synchronisation" der beiden Controller, um zu verhindern, dass
> sie gleichzeitig senden.

Selbst das ist nicht nötig.

von Peter D. (peda)


Lesenswert?

Ein AND statt des OR und die Schaltung funktioniert korrekt.

Ich sehe allerdings auch keinen Sinn darin, 2 CAN-Controller auf einer 
Platine zu verwenden.


Peter

von Benjamin (Gast)


Lesenswert?

Hallo,
vielen Dank für eure zahlreichen Antworten. Ich habe das OR gegen ein 
AND getauscht und schon funktioniert der CAN-Bus.
Vielen Dank

von cskulkw (Gast)


Lesenswert?

Peter Dannegger schrieb:
> Ein AND statt des OR und die Schaltung funktioniert korrekt.
>
>
>
> Ich sehe allerdings auch keinen Sinn darin, 2 CAN-Controller auf einer
>
> Platine zu verwenden.
>
>
>
>
>
> Peter

So etwas nennt man in der KFZ-Elektronik (und sicherlich auch woanders) 
Gateway. Nur das die CAN-Controller dann auch einem Chip sich befinden.
Andererseits hat man so stets einen Zuhörer. Man hat ein Problem 
weniger, wenn der CAN-Bus nicht angeschlossen sein sollte. Zum Lernen 
OK.

@Benjamin:

Wenn Du schon einen Chip für die Disjunktion der Schnittstellensignale 
verwendest, dann kannst Du doch auch gleich einen zweiten Trasceiver 
nehmen und den dann mit dem des anderen auf der CAN-Seite 
zusammenschalten.

Dann funktioniert es auf jeden Fall.

Ich verstehe noch nicht, wieso Du einen Transceiver einsparen willst? 
Platzprobleme? -> Das Oder-Gatter und die Dioden kosten auch Bauraum.

von Markus M. (Firma: EleLa - www.elela.de) (mmvisual)


Lesenswert?

Nehme anstatt dem LCDA12 besser einen NUP2105L. Spart auch wieder Platz.

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.