Forum: Mikrocontroller und Digitale Elektronik wie lang ist die kleinstmögliche CAN Nachricht?


von RodYler (Gast)


Lesenswert?

Hallo!

ist ein Standard-Frame mit 1 Byte Daten die kleinste Nachricht oder geht 
auch 0 Byte?
Oder gar ein ganz anderer Frame?

Danke

von ARM-Fan (Gast)


Lesenswert?

0 Byte Datenlänge ist ok.

Beim Frame kannste sonst nur noch zwischen 11 und 29 bit ID wählen,
falls dein System nicht vorgegeben ist.

von RodYler (Gast)


Lesenswert?

in welchem Fall schickt man eigentlich 0 Byte? ist das dann der Remote ?

von crazy horse (Gast)


Lesenswert?

ne, wird auch für "life guarding" benutzt, jeder Teilnehmer muss sich 
innerhalb eines bestimmten Zeitrasters melden, auch wenn es aktuell 
nichts sinnvolles mitzuteilen gibt. Und ein Frame mit 0Byte Daten ist 
eben kürzer als einer mit Daten. Insofern macht ein Frame ohne Daten 
Sinn. Eingesetzt habe ich es aber noch nicht.

von Fred (Gast)


Lesenswert?

Im CAN-Frame-Aufbau gibt es ein sogenanntes Remote- oder Request-Bit. 
Damit schickt man sozusagen eine Anfrage, dass ein bestimmter Knoten 
einem Daten schicken soll. In solch einer Nachricht müssen natürlich 
keine weiteren Daten enthalten sein und deshalb kann man auch eine 
CAN-Nachricht mit 0Byte Daten schicken.

Wird verwendet um Sensoren abzufragen.

Gruß Fred

von Peter D. (peda)


Lesenswert?

Wenn man die ID-Bits nicht alle braucht, kann man auch die restlichen 
für Daten benutzen.

Man kann also durchaus 11 Byte pro Nachricht senden.


Peter

von crazy horse (Gast)


Lesenswert?

Och nö, nicht sowas.
Klar geht das prinzipiell, aber warum sollte man sich sowas antun? Ich 
glaube kaum, dass es Applikationen gibt, bei denen das nötig ist.

von Stefan M. (Gast)


Lesenswert?

Warum? Die Nachrichten-ID (keine Adresse!) trägt ja schon Informationen. 
Bei CANopen ist eine Nachricht mit der ID 0x00 z.B. ein SYNC-Frame. Von 
wem das kommt und wer der Empfänger ist, ist total uninteressant.

mfg, Stefan.

von Peter D. (peda)


Lesenswert?

crazy horse wrote:

> Klar geht das prinzipiell, aber warum sollte man sich sowas antun? Ich
> glaube kaum, dass es Applikationen gibt, bei denen das nötig ist.

Weil das von den CAN-Entwicklern so vorgesehen ist.
Deshalb gibts ja die Maskierungsregister, um ID-Bits vor der Erkennung 
zu maskieren.
Es ist durchaus üblich, daß Bits im ID eine bestimmte Bedeutung haben.

Ich wollte auch nur darauf hinweisen, daß eine CAN-Nachricht mit 0 Bytes 
im Datenfeld schon 3 Datenbytes beinhalten kann.
Das muß also keinesfalls eine Null-Nachricht sein.


Peter

von RodYler (Gast)


Lesenswert?

OK, ich nehme mal eine 0 Byte Nachricht als kleinste "normale" Nachricht 
an.
Wie viele Bits sind das dann?
Nach meiner Rechnung im optimalen Fall: Kein Bitstuffing
mit 3 IFS Bits
8*0+44+3 = 47Bit

47 Bit ist die kürzeste Nachricht. Stimmts?

von crazy horse (Gast)


Lesenswert?

stimmt.

von Flex (Gast)


Lesenswert?

..da möchte ich mal anknüpfen (bei 47 stimme ich zu) und nach eurer 
Meinung fragen, was die kleinstmögliche abgebrochene CAN Nachricht ist. 
Klingt vielleicht komisch, was ich meine ist:
Wenn die Nachricht abgebrochen wird, durch nen Fehlerframe, dann werden 
mindestens 6 Bit Errorflag, plus 8 Bit Errordelimiter gesendet, das ist 
klar. Aber ab welchem Zeitpunkt kann ein Fehler erkannt werden, bzw, 
gilt, wenn ein Teilnehmer ein SOF Bit schickt, und das auf dem Bus nicht 
abtastet, dass ein Bitfehler vorliegt, oder gibts da das für SOF 
irgendne Sonderreglung?

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.