CAN - Latenzzeit und FIFO

Guest
Ich habe da mal eine kätzerische Frage:

Stellen wir uns vor, ein Teilnehmer will eine niederpriore Nachricht
senden. Aufgrund der hohen Buslast verweilt diese längere Zeit in der
Sende-FIFO
Während dessen registriert der Teilnehmer ein wichtiges Ereigniss das
er dringend mitteilen muss. Dieses Nachricht bekommt eine hohe
Priorität, welche eine schnelle Übertragung sichern soll. Dummerweise
mus diese Nachricht aber auch auf die FIFO gepackt werden, die noch
mit der anderen Nachricht verstopft ist.
Wie ist das dann mit der Latenzzeit? Ist im CAN-Protokoll irgendwie
für diesen Fall vorgesorgt? Oder sollte man sicherheitshalber für
jeden Nachrichtidentifier (oder gruppenweise) eine eigene FIFO
definieren?

Danke
- Steffen.
 
steffenweissbach@web.de wrote:

Ich habe da mal eine kätzerische Frage:

Stellen wir uns vor, ein Teilnehmer will eine niederpriore Nachricht
senden. Aufgrund der hohen Buslast verweilt diese längere Zeit in der
Sende-FIFO
Während dessen registriert der Teilnehmer ein wichtiges Ereigniss das
er dringend mitteilen muss. Dieses Nachricht bekommt eine hohe
Priorität, welche eine schnelle Übertragung sichern soll. Dummerweise
mus diese Nachricht aber auch auf die FIFO gepackt werden, die noch
mit der anderen Nachricht verstopft ist.
Wie ist das dann mit der Latenzzeit? Ist im CAN-Protokoll irgendwie
für diesen Fall vorgesorgt? Oder sollte man sicherheitshalber für
jeden Nachrichtidentifier (oder gruppenweise) eine eigene FIFO
definieren?
Wenn es ein Echtzeitproblem gibt, am besten ein anderes Bussystem nehmen,
was dafür geeignet ist. Solche Probleme kenne ich auch mit CAN-Bus.
Gruss,
Heinz Dittmar
 
steffenweissbach@web.de schrieb im Beitrag <63d0b1e9.0312170414.1e3b63a5@posting.google.com>...
Während dessen registriert der Teilnehmer ein wichtiges Ereigniss das
er dringend mitteilen muss. Dieses Nachricht bekommt eine hohe
Priorität, welche eine schnelle Übertragung sichern soll. Dummerweise
mus diese Nachricht aber auch auf die FIFO gepackt werden, die noch
mit der anderen Nachricht verstopft ist.
Wie ist das dann mit der Latenzzeit? Ist im CAN-Protokoll irgendwie
für diesen Fall vorgesorgt? Oder sollte man sicherheitshalber für
jeden Nachrichtidentifier (oder gruppenweise) eine eigene FIFO
definieren?

Bei den mir bekannten CAN Chips gibt es mehrere Slots, die
alle parallel auf Senden warten. Darf man dann senden, kommt
der hoeherpriorisierte zuerst dran. Es ist also kein FIFO,
aber das mag nicht bei jedem Chip gleich sein.
--
Manfred Winterhoff, reply-to invalid, use mawin at despammed.com
homepage: http://www.geocities.com/mwinterhoff/
de.sci.electronics FAQ: http://dse-faq.elektronik-kompendium.de/
Read 'Art of Electronics' Horowitz/Hill before you ask.
Lese 'Hohe Schule der Elektronik 1+2' bevor du fragst.
 
steffenweissbach@web.de schrieb:
Ich habe da mal eine kätzerische Frage:

Stellen wir uns vor, ein Teilnehmer will eine niederpriore Nachricht
senden. Aufgrund der hohen Buslast verweilt diese längere Zeit in der
Sende-FIFO
Während dessen registriert der Teilnehmer ein wichtiges Ereigniss das
er dringend mitteilen muss. Dieses Nachricht bekommt eine hohe
Priorität, welche eine schnelle Übertragung sichern soll. Dummerweise
mus diese Nachricht aber auch auf die FIFO gepackt werden, die noch
mit der anderen Nachricht verstopft ist.
Wie ist das dann mit der Latenzzeit? Ist im CAN-Protokoll irgendwie
für diesen Fall vorgesorgt? Oder sollte man sicherheitshalber für
jeden Nachrichtidentifier (oder gruppenweise) eine eigene FIFO
definieren?

Danke
- Steffen.
Selbst beim SJA1000 kann man den laufenden Sendeversuch einfach
abbrechen und dann eine andere Botschaft "dazwischenschieben". Da wird
nur die Software im uC etwas komplizierter.

mfg
Helmut
 

Welcome to EDABoard.com

Sponsor

Back
Top