Forum: Mikrocontroller und Digitale Elektronik XCP Frame aus Bytestrom filtern


von hiko (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

ich versuche mich momentan an einer XCP Verbindung die über die serielle 
Schnittstelle läuft.
Also praktisch USART - RS232.
Laut XCP Spezifikation ist dies möglich und nennt sich XCP over Sxi.

Mein Problem dabei ist, ich weis nicht wie ich eine eingehende XCP 
Nachricht aus dem RX Bytestream herausfiltern soll.
Im angehängten Bild ist der Aufbau eines XCP over Sxi - Frames zu sehen.
Aber im Gegensatz zu zB PPP Frames beginnt und endet dieser Frame mit 
keinem speziellen Steuerzeichen.

Kennt sich damit zufällig jemand aus? Wie würdet ihr einen solchen Frame 
"erkennen"?

Hab mir schon gedacht über einen Timer Übertragungspausen zu messen. 
Empfange ich mehrere Bytezeiten nichts kann die Übertragung als zu Ende 
angenommen werden.

Wobei ich das eher für Pfusch halte, vor allem wenn evtl. noch andere 
Sachen an der Seriellen empfangen werden sollen.

Jemand eine Idee?

Viele Grüße,
hiko
von hiko (Gast)


Lesenswert?

Echt keiner ne Idee? :/
von TManiac (Gast)


Lesenswert?

Sorry, aber deine Frage ist zu allgemein und doch zu speziell.

Zu speziell, weil hier kaum einer Zugriff auf die ASAM-Specs haben wird 
und wenn dann müsste er diese auch erst durcharbeiten.

Zu allgemein, weil du nicht beschreibst aus was du die Daten heraus 
filtern willst.

Wenn man den Frame-Aufbau in deinem Bild anschaut, so sieht es danach 
aus als würde auf dem seriellen Bus zu dem Zeitpunkt nur der XCP-Frame 
übertragen (und dessen Länge steht ja im Header).
Also wird entweder der Bus ausschließlich für XCP sein oder es wird sich 
um eine Master-Slave Kommunikation handeln (was bei XCP der Normalfall 
ist). Und dann weiß der Master ja automatisch dass die Antwort eben auch 
ein XCP-Frame ist.

Den Frame als Spy heraus lesen geht dann nur, wenn man die Kommunikation 
auf dem Bus von Anfang an mit macht oder wenn die Pausen zwischen den 
Anfragen des Masters ausreichend groß sind, dass man sie detektieren 
kann.

Gruß,
TManiac
von hiko (Gast)


Lesenswert?

Ja, hab mich jetzt auch dazu durchgerungen das erste empfangene Byte als 
Längenbyte zu werten und dann eben genau soviele Bytes zu lesen. Nur 
schiefgehen darf dabei dann nix...

Die Specs gibts btw für jeden verfügbar, sind Teil des (kostenlosen) 
Basictreiber den es bei Vector gibt. Aber viel Lektüre ist es 
wirklich... :)

Grüße,
hiko
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.