Baudrate und Anzahl möglicher Übertragung

Gast #5025507
Lesenswert?

Hallo zusammen,

Wie berechne ich (richtig) die Anzahl möglicher Messkanäle (Abtastrate 
1kHz) bei einer CAN Übertragungs Baudrate von 1MBaud/s?

Ist mein Ansatz richtig?

CAN Übertragung=     1MBaud/s
Abtastrate pro Kanal=     1kHz
Wortlänge (1 Wert = 2byte))=  16bit

D.h. ich hätte pro Kanal mindestens 16.000 Bit pro sekunde.
Somit könnte ich maximal 1.000.000 / 16.000 = 62,5 Kanäle übertragen. 
Ist das soweit richtig?

Dazu müsste ich aber noch die Übertragungsbits (start/stop) pro Wert 
oder Packet dazu rechnen.
Weiss jemand wieviele bits pro Wert ungefähr dazu kommen?
Wenn ich von einem start und stop bit ausgehen würde, wären es also 18 
bis pro Wert und damit maximal 55,56 Kanäle.

Weiterhin habe ich gelesen, dass die Übertragung bis 60% Auslastung gut 
funktionieren. somit hätte ich nicht 1MBaud/s
sondern nur in Wirklichkeit 600kBaud/s: 600.000 / 18.000 = 33,3 Kanäle.
Wäre meine Berechnung so OK? Oder habe ich irgendwas vergessen?

Gruß
#5025520
Lesenswert?

Bart123 schrieb:
> Hallo zusammen,
>
> Wäre meine Berechnung so OK? Oder habe ich irgendwas vergessen?
ganz sicher hast du da was vergessen, nämlich das ein CAN-Frame auch 
noch etliche Adressierungsbits und CRC-Bits hat die in Summe mehr als 
deine 16Bit Nutzdaten sind.

https://de.m.wikipedia.org/wiki/Controller_Area_Network

Die Auslastung von 60% kommt daher das CAN ein Multi-Master-System ist 
und somit immer Kollisionen entstehen können. Wenn du nur A mit B 
verbindest kannst du die Bitrate ausschöpfen.

Sascha
Gast #5040739
Lesenswert?

Hallo,

Danke für den Link und die Info.

Also müsste ich pro Wert (2byte) noch ca. 16bit (11bit Kanal-ID, 1 stopp 
bit, 1 start bit und x bit für CRC) dazu zählen? Oder wäre dies immer 
noch zu wennig?

Also müsste die Auslegung so ungefähr hinkommen:

CAN Übertragung=     1MBaud/s
Abtastrate pro Kanal=     1kHz
Wortlänge (1 Wert = 2byte))=  16bit + 16bit(Adressierung usw.) = 32bit

D.h. ich hätte pro Kanal mindestens 32.000 Bit pro sekunde.
Somit könnte ich maximal 1.000.000 / 32.000 = 31,25 Kanäle übertragen.

Würde man noch weiter mit der 60% Auslastung der CAN-Bus 
Übertragungsrate rechnen, also 600kBaud/s anstatt der 1MBaud/s.
Würden nur in Wirklichkeit 600.000 / 32.000 = 18,75 Kanäle möglich sein.

Wäre meine Berechnung jetzt so OK? Oder habe ich noch irgendwas 
vergessen?

Gruss
#5040745
Lesenswert?

@ Bart123 (Gast)

>Also müsste ich pro Wert (2byte) noch ca. 16bit (11bit Kanal-ID, 1 stopp
>bit, 1 start bit und x bit für CRC) dazu zählen? Oder wäre dies immer
>noch zu wennig?

Vielleicht mal weniger raten und einfach mal einen CAN-Frame im Buch 
anschauen?

https://de.wikipedia.org/wiki/Controller_Area_Network#Frame-Aufbau

CAN hat im Base Frame Format eine Telegrammlänge von min. 47 Bit + 
Daten, macht bei 16 Bit Daten halt 63 Bit.

>CAN Übertragung=     1MBaud/s
>Abtastrate pro Kanal=     1kHz
>Wortlänge (1 Wert = 2byte))=  16bit + 16bit(Adressierung usw.) = 32bit

Nö.

>D.h. ich hätte pro Kanal mindestens 32.000 Bit pro sekunde.
>Somit könnte ich maximal 1.000.000 / 32.000 = 31,25 Kanäle übertragen.>Wäre meine Berechnung jetzt so OK? Oder habe ich noch irgendwas
>vergessen?

Ja.


Kleiner Tipp an Rande. Wenn man pro CAN-Frame nur 2 Bytes überträgt, hat 
man eine lausige Netto-Datenrate von 16/63~25%
Sinnvollerweise packt man also möglichst viele Daten in einen CAN-Frame, 
bei 8 Byte hat man immerhin schon 57% Auslastung.
Gast #5040765
Lesenswert?

Diese ganzen Samstagsnachmittagsrechnungen gelten nur bei schönem 
Wetter, geringem Wind und mittlerer Luftfeuchtigkeit.
Auch Nettodaten plus Drum-Herum gelten nur unter bestimmten Bedingungen.
... und vor allem, wenn Du allein auf weiter Flur bist.
Hast Du das Ganze in der Hand, so mach’s wie Falk geschrieben hat und 
pack so viel wie sinnvoll einen Frame.

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