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
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?
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
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!
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
@ 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
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
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.
@ 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
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.
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
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.