Can-bus < Technische Inform. < Praktische Inform. < Hochschule < Informatik < Vorhilfe
|
Ich habe diese Frage in keinem Forum auf anderen Internetseiten gestellt.
Hallo,
es geht um folgende Aufgabe:
Welche Datenbytes werden in dieser CAN-BUS Nachricht übertragen?
Werden Sie gesendet oder empfangen? (kein Bit-Stuffing)
1|000110001000|010010|0001010100001111|1111101001000001|01|0000000
Meine Lösung:
Es werden 16 Bit, also 2 Byte Nutzdaten übertragen: 0001010100001111
Woran erkenne ich jedoch, dass die gesendet oder empfangen werden?
|
|
|
|
Hallo!
Wenn ich mich nicht irre, sind das Daten, die gesendet werden sollen, denn: der ACK-Block |01| beginnt mit einer 0.
Ein Empfänger setzt hier aber, während die Daten noch über die Leitung rauschen, eine 1 und bestätigt damit, daß er die bisherigen Daten korrekt empfangen hat. Du würdest dann eine |11| sehen.
Falls der Empfänger aber einen Fehler bemerkt hat (dazu ist CRC ja da), belässt er das erste Bit auf 0, also |01|, und würde weitere Fehler-Informationen durch Einsen in dem letzten Block melden. Bei mehreren Empfängern, von denen nur manche Fehler gesehen haben, ist zwar das erste Bit von den Empfängern ohne Fehler auf 1 gesetzt, die Empfäger mit Fehlern würden aber im letzten Block einsen setzen.
Da dort aber keine Einsen sind, ist das eine zu sendende Nachricht, wie sie sich beim Sender befinden. Schon beim Senden werden die Ackn-und Fehlerbits vom Empfänger / von den Empfängern überschrieben, so daß diese Bitfolge niemals so auf den Leitungen zu sehen sind.
Aber wie gesagt, so recht kenn ich mich nicht wirklich aus.
|
|
|
|
|
Ich habe gerade im Skript gefunden,dass:
- der Sender ACK auf 1 setzt und der Empfänger zieht es bei korrektem Empfang auf Null (dom.)
das würde doch deiner Aussage widersprechen?
|
|
|
|
|
Hallo!
Da hast du recht, ich habe verwechselt, welches das dominante und welches das rezessive ist. Dann muß das eine Meldung sein, welche empfangen wurde.
|
|
|
|