Timeouterkennung als XCP Slave

Gast #2684626
Hallo,

ich tüftle gerade an einem Problem:

Ich habe einen Prozessor auf dem ein XCP Slave Treiber läuft.
(XCP ist ein Protokoll aus dem Automotive Bereich und kann als 
Erweiterung zu CCP angesehn werden, dass allerdings verschiedene 
Transportlayer als nur CAN unterstützt. Es wird unter anderem zum 
Auslesen und Parametrieren von Steuergeräten benutzt).

Die Software auf meinem Board steuer verschiedene Ausgänge, zB ein 
Display oder PWM Kanäle.
Ein XCP Master (zB ein PC mit CANape) kann verschiedene Variablen der uC 
Software verändern und dadurch zB die PWM beeinflussen.

Ich würde gerne das System sicherer machen indem ich versuche 
festzustellen, ob der Master überhaupt noch sendet, bzw ob er hängt. 
Also eine Art Timeouterkennung, um die Applikation in einen definierten 
Ruhemodus zu fahren.

Wer XCP kennt weiß, dass Werte die in den uC geschrieben werden direkt 
an eine Adresse im RAM geschrieben werden. Das heißt, meine Applikation 
hat erstmal keine Möglichkeit festzustellen, wann die letzte Übertragung 
stattgefunden hat.
Außerdem schickt ein XCP Master seine Parameter nicht zyklisch, sondern 
nur bei Änderungen oder bestimmten Events.

Den Treiber selbst würde ich nur ungern "aufbohren", da dieser nicht von 
mir stammt und eigentlich als Blackbox betrachtet werden kann/soll.

Ich könnte den Master zyklisch senden lassen. Aber ändert sich der Wert 
nicht, hat meine Applikation wieder keine Möglichkeit, einen Timeout des 
Masters festzustellen.

Hat hier jemand eine elegante Möglichkeit? Weis jemand weiter?

Danke & Viele Grüße,
der c-ler
c-ler schrieb:

> Hat hier jemand eine elegante Möglichkeit? Weis jemand weiter?

Dann hast du nur noch eine Chance:
Dein Master muss regelmässig 'Still Alive' Nachrichten versenden.

> Ich könnte den Master zyklisch senden lassen. Aber ändert sich der Wert
> nicht,

Dann musst du eben dafür sorgen, dass sich 'der Wert' ändert. Und wenn 
es nur eine bestimmte, sonst unbenutzte Variable ist, die vom Master 
alle 2 Sekunden von 0 auf 1 und 2 Sekunden später wieder zurück geändert 
wird.

Antwort schreiben

Eine eigene Frage? Dieser Thread ist über 14 Jahre alt. Stell sie in einem eigenen Thread – dort lesen mehr Leute mit, und sie wird öfter und schneller beantwortet.

Neuen Thread starten

Eine Lösung, Ergänzung oder Rückmeldung zu diesem Thread? Dann antworte hier.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.