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ß
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
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
@ 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. Nö >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.
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.
Und ganz lustig wird die Geschichte wenn man das Bitstuffing von CAN noch mit betrachtet. Dann ist die Nutzdatenrate auch noch vom Inhalt der Nachrichten abhängig. Ist alles andere als trivial das Thema. Matthias
Danke für Eure schnellen Antworten! Jetzt kann ich auf jeden Fall schon besser einschätzen was möglich ist......und zwar nicht soviel wie ich dachte!
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.