LabVIEWForum.de - CAN Signal - Bitstream auswerten

LabVIEWForum.de

Normale Version: CAN Signal - Bitstream auswerten
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hi Leute,
habe leider nach längerer Suche nichts wirklich brauchbares gefunden.
Mein Problem:

Ich erstelle gerade einen Messaufbau für ein CAN Signal. Es werden zuerst mehrere Signalmessungen (Anstiegszeiten, Spannungen...) über
ein LeCroy waveRunner Oszilloskop gemacht. Wichtig dabei ist, dass eben keine Gegenstelle angeschlossen ist. Leider kann ich somit nicht gleichzeitig die Auswertung der Daten über ein CanCase (Vector) vornehmen. Da die Messung selber allerdings über mehrere Stunden läuft,
sollte sie möglichst autark, ohne Eingriff ablaufen.
Nun habe ich mir gedacht die Auswertung der Daten auch über das Oszilloskop zu machen, das einizige was mich an den Daten interessiert ist das Identifier Feld des CAN Protokolls (Bit 2-12).
Ich triggere somit auf das erste Bit des Signals und bekomme einen schönen Verlauf in LabView eingelesen.

Die Frage ist nun:
Wie bekomme ich aus dem eingelesenen Graph das Bitmuster?
Hier im Bild ist es die Kombination: 11001100110111011.....

Habe schon etwas mit dem VI "Analog nach Digital" herumgespielt, dann erkennt er allerdings nur ein Bit pro Flankenwechsel. Irgendwie muss ja der Takt zurückgewonnen werden...

Schon mal Danke wenn ihr euch die Zeit genommen habt bis hier zu lesen...

Lv82_img
Eine elegante Lösung kenne ich da nicht, aber so ein paar Gedanken habe ich mir gemacht. Den Takt zurückzugewinnen stelle ich mir etwas anspruchsvoller vor. Da ließe ich den Benutzer die Baudrate eingeben, wenn es nicht unbedingt und ganz dringend sein muss, dass der Prüfstand das selber erkennt. Ansonsten hast du ja die steigende Flanke des dominanten Start-of-Frame Bit und die Baudrate. Jetzt könntest du doch hergehen, und einen Abtastzeitpunkt bezogen auf die steigende Flanke festlegen, irgendwo zwischen 50 und 70 % der Dauer eines Impulses. Manche Receiver tasten auch zwei- oder dreimal zu frei wählbaren Zeitpunkten ab, aber es langt wahrscheinlich eine Probe. Jedenfalls kennst die Baudrate und weißt daher auch, wie lange idealerweise ein Impuls dauert. Der erste Abtastzeitpunkt liegt daher 170 % Impulsdauer nach der steigende Flanke (Start-of-Frame) und dann immer eine Implusdauer weiter, bis der Signalverlauf abgetastet ist. Mh, du musst natürlich das Stuff-Bit im Auge behalten, wodurch dein Identifier auch mal 12 oder 13 Bit lang sein kann.

Darf eine Gegenstelle nicht einmal im Listen-only angeschlossen sein?
Also ich hab das jetzt so umgesetzt wie du beschrieben hast. Habe natürlich gehofft es gäbe etwas fertiges elegantes. Aber was solls es läuft! Das ganze werde ich jetzt als SubVi in mein Programm einbinden.
Nochmals vielen Dank für die Hilfe!

MfG Marc

Lv82_img
Referenz-URLs