Einfachste Lösung für initialen "Start" des CAN Bus

OP #6696170
Lesenswert?

Hallo zusammen,

Ich habe einen CAN Bus mit idealerweise zwei Teilnehmern, von denen 
inital jedoch einer passiv am Bus ist. Er geht nur aktiv an den Bus wenn 
er ein entsprechendes Kommando via CAN mitliest. Das kann er aber wohl 
leider nicht empfangen solange neben dem einen aktiven Teilnehmer kein 
weiterer aktiver Teilnehmer am Bus ist.

Im Moment behelfe ich mir mit einem CAN Dongle als dritten (bzw. initial 
zweiten aktiven) Busteilnehmer.

Gibt es da nicht eine andere Möglichkeit?

Das initial passive Gerät kann ich leider nicht verändern...

Grüße
Alec
#6696186
Lesenswert?

Na dann lass doch deinen initial einzigen aktiven Teilnehmer solange 
senden, bis der initial zweite Teilnehmer aktiv ist. Dieser wird dem 
ersten dann schon sein Ack schicken. Ansonsten wird der erste halt bis 
in alle Ewigkeit senden.

Allerdings ist das eine komische Konstruktion, die du da hast. 
Normalerweise besteht ein Bus immer mindestens aus zwei Teilnehmern, die 
aktiv sind. Warum ist der zweite passiv? Wenn es keine Nachrichten für 
ihn gibt, kann er das Telegramm doch trotzdem bestätigen, falls er es 
korrekt empfangen hat.
OP #6696482
Lesenswert?

Helmut -. schrieb:
> Na dann lass doch deinen initial einzigen aktiven Teilnehmer
> solange
> senden, bis der initial zweite Teilnehmer aktiv ist. Dieser wird dem
> ersten dann schon sein Ack schicken. Ansonsten wird der erste halt bis
> in alle Ewigkeit senden.
> Allerdings ist das eine komische Konstruktion, die du da hast.
> Normalerweise besteht ein Bus immer mindestens aus zwei Teilnehmern, die
> aktiv sind. Warum ist der zweite passiv? Wenn es keine Nachrichten für
> ihn gibt, kann er das Telegramm doch trotzdem bestätigen, falls er es
> korrekt empfangen hat.

Das ist ja das Problem denke ich, es ist niemand da der ein Ack schickt. 
Dementsprechend setzt der Transceiver vom ersten, und zu der Zeit 
einzigen aktiven Teilnehmer das Paket, welches den zweiten Teilnehmer 
aktivieren könnte, wohl gar nicht erst vollständig auf den Bus.
Zumindest kriege ich von dessen CAN Controller ne Fehlermeldung wenn ich 
es versuche.
Gast #6696494
Lesenswert?

Alec T. schrieb:
> Er geht nur aktiv an den Bus wenn
> er ein entsprechendes Kommando via CAN mitliest.

Ist sichergestellt, dass dieses Kommando als allererstes exklusiv auf 
den Bus gelegt wird? Falls vorher irgendetwas anderes gesendet wird 
würde sich der Bus schon blockieren, da genau diese andere,Message 
endlos gesendet würde.
#6696517
Lesenswert?

Alec T. schrieb:
> Das ist ja das Problem denke ich, es ist niemand da der ein Ack schickt.
> Dementsprechend setzt der Transceiver vom ersten, und zu der Zeit
> einzigen aktiven Teilnehmer das Paket, welches den zweiten Teilnehmer
> aktivieren könnte, wohl gar nicht erst vollständig auf den Bus.
> Zumindest kriege ich von dessen CAN Controller ne Fehlermeldung wenn ich
> es versuche.

Also wenn nur ein Teilnehmer am Bus hängt, der natürlich korrekt 
terminiert sein muss, wird das Telegramm solange gesendet, bis es 
bestätigt wird und kein Errorframe kommt. Das muss natürlich das sein, 
das deinen anderen Controller aufweckt. Sonst kann dein Konstrukt nicht 
funktionieren!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren