User Tools

Site Tools


de:doc:hw_commands

Die OOBD Firmware Kommandos

Unter der Vorraussetzung, daß es manch andere Software gibt die zum Interface Kontakt aufnimmt und Botschaften sendet, ist die Kommandostruktur einfach aber flexibel gestaltet worden.

Die genaue Beschreibung der Syntax kann in RFC Firmware Syntax gefunden werden

Die Firmware und ihre Kommandos sind aufgeteilt in fünf verschiedene sogenannte Funktionsblöcke

  1. System
  2. Serielle Eingabe
  3. Serielle Ausgabe
  4. Protokoll
  5. Bus

in der jede der Funktionsblöcke selbst nochmal in generische und implementationsspezifische Teile aufgeteilt worden sind.

  • Generisch bedeutet, das diese Funktionen gleich sind für den bestimmten Funktionsblock, was bedeutet das jede Implentation diese Kommandos unterstützen muss. Aber bitte nimm zu Kenntnis, daß z.B. ein K-Line Bus andere generische Kommandos besitzt als ein CAN-Bus
  • Implementationsspezifisch bedeutet, dass die Unterstützung dieser Kommandos, abhängig von tatsächlichen Typ oder der Durchführung des Funktionsbausteins sind. So ist z.B. das Setzen der CAN-ID Länge sicherlich unterstützt wird von einem CAN-Bus, aber nicht von einem K-Line Bus

Wenn man ein p - Kommando zur Firmware sendet, definiert die erste Zahl in dem Kommandozeichensatz immer zu welchem Funktionsblock der Befehl weitergeleitet wird. Dies gibt dann letztendlich die folgende Bedeutung der ersten Zahl:

Kommando beginnt mit geht zu welchem Funktionsblock
p 0 Systemspezifisch
p 1 Systemgenerisch
p 2 Serielle spezifische Eingabe
p 3 Serielle generische Eingabe
p 4 Serielle spezifische Ausgabe
p 5 Serielle generische Ausgabe
p 6 Protokollspezifisch
p 7 Protokollgenerisch
p 8 Busspezifisch
p 9 Busgenerisch

max: Implementationsspezifisch (unsigned long)

Systemgenerische Kommandos (P 1)

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
1 0 0 aktiviere Protokoll CAN raw
1 1 0 aktiviere Protokoll UDS diagnositc
1 3 0 aktiviere Protokoll RTP (Real time data)
2 0 0 deaktiviere blaue LED (= AUS)
2 0 1 aktiviere blaue LED (= AN)
2 1 0 deaktiviere grüne LED (= AUS)
2 1 1 aktiviere grüne LED (= AN)
2 2 0 deaktiviere rote LED (= AUS)
2 2 1 aktiviere rote LED (= AN)
2 3 0 deaktiviere Summer (= AUS)
2 3 1..max aktiviere Summer (= AN) mit Frequenz in Hz mittels Wert2
2 10000 0 deaktiviere Relais (= AUS)
2 10000 1 aktiviere Relais (= AN)

Systemspezifische Kommandos (P 0)

Systemspezifische Kommandos (P 0) für die D2 Implementation

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
0 0 0 zeige Softwareversion an:
OOBD <FW-ID> <Rev> <Hardware> <Model> [Erzeugungsdatum]
(e.g.: OOBD D2 651 Lux-Wolf CAN-Invader Thu, 15 Aug 2013 01:15:25 +0200)
0 1 0 zeige Seriennummer an:
xx:xx:xx:xx:xx:xx (=BTM222 MAC-Address)
0 2 0 zeige Spannungswert der Versorgung des OBD-II Steckers an
0 3 0 zeige CPU info
0 4 0..max zeige Speicherinformation von Adresse x an
0 5 0 zeige ROM Tabellenort
0 6 0 zeige freien dynamischen Speicher an
0 7 0 überprüfe CRC-32 der Applikation
0 8 0 zeige OOBD-Cup Gerätenamen
0 9 0 zeige UART Geschwindigkeit
99 0 0 Hardware - Reset

Serielle Eingabe - Spezifische Kommandos (P 2)

Noch nichts implementiert

Serielle Eingabe - Generische Kommandos (P 3)

Noch nichts implementiert

Serielle Ausgabe - Spezifische Kommandos (P 4)

Noch nichts implementiert

Serielle Ausgabe - Generische Kommandos (P 5)

Noch nichts implementiert

Protokollspezifische Kommandos (P 6)

Protokollspezifische Kommandos (P 6) für das CAN UDS Protokoll

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
1 0..max 0 setze den Anwortzeittimout in 10ms Vielfachen
5 $xxx 0 setze ECU Anforderungs-ID (RECVID)
6 $xxx 0 starte Testerpresent auf CAN-ID $xxx mit aktuellem Intervall und maskiere 10 (kein Speicher nehr)
7 $xxx 0 stoppe Testerpresent auf CAN-ID
8 0..max 0 setze Testerpresent Intervall in 10ms Vielfachen (Default 250)
9 $xxx 0 setze ECU Antwort-ID (SENDID) (Default 0, setzt SENDID= RECVID | 0x08)
10 $xxx 0 setze Testerpresent Maske 02 xx (Default 0x80)

Protokollspezifische Kommandos (P 6) für das CAN Raw Protokoll

Keine speziellen p- Kommandos für diesen Modus, weil die Funktion hauptsächlich von dem gesendeten Dateninhalt bestimmt wird. Weiterführende Informationen zum RFC CAN Raw Mode

Protokollspezifische Kommandos (P 6) für das CAN RTD Protokoll

Weiterführende Informationen zum RFC CAN RTD Mode

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
1 löscht die interne Datenspeicherliste, gibt all den genutzen Speicher wieder frei

Protokollgenerische Kommandos (P 7)

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
0 0 0 zeige Informationen über das genutzte Protokoll
1 0 0 deaktiviere Empfangsmodus
1 1 0 aktiviere Empfangsmodus

Busspezifische Kommandos (P 8)

Busspezifische Kommandos (P 8) für den CAN Bus, welcher im D2 Design genutzt wird

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
2 0 0 CAN Transceiver: Stumm Modus (CAN deaktiv)
2 1 0 CAN Transceiver: Loop back (Interne Schleife)
2 2 0 CAN Transceiver: Loop back kombiniert mit Stumm Modus
2 3 0 CAN Transceiver: Normal Modus (CAN aktiv)
3 0 or 1 0 Standard-CAN Initialisierung (initialisiere CAN Kontroller mit 125kbit/s, 11bit)
3 2 0 Standard-CAN Initialisierung (initialisiere CAN Kontroller mit 250kbit/s, 11bit)
3 3 0 Standard-CAN Initialisierung (initialisiere CAN Kontroller mit 500kbit/s, 11bit)
3 4 0 Standard-CAN Initialisierung (initialisiere CAN Kontroller mit1000kbit/s, 11bit)
3 5 0 Extended-CAN Initialisierung (initialisiere CAN Kontroller mit 125kbit/s, 29bit)
3 6 0 Extended-CAN Initialisierung (initialisiere CAN Kontroller mit 250kbit/s, 29bit)
3 7 0 Extended-CAN Initialisierung (initialisiere CAN Kontroller mit 500kbit/s, 29bit)
3 8 0 Extended-CAN Initialisierung (initialisiere CAN Kontroller mit 1000kbit/s, 29bit)
4 0 0 HS-CAN (Relais schaltet - AUS)
4 1 0 MS-CAN (Relais schaltet - EIN)
10 <Filter-Nr> $<CAN-ID> setze Filter CAN-ID (11bit CAN-ID 0x0000-0x07FF) wobei Filter-Nr 1-20 ist , z.B. p 8 10 1 $720
11 <Filter-Nr> $<Mask-ID> setze Filtermasken-ID (11bit Mask-ID 0x0000-0x07FF) wobei Filter-Nr 1-20 ist und die Filtermaske von der Filter CAN-ID (0=egal 1=Übereinstimmung) abhängt, z.B. p 8 11 1 $7F0 (hier: $720 - $72F)
12 <Filter-Nr> $<CAN-ID> setze Filter CAN-ID (29bit CAN-ID 0x00000000-0x1FFFFFFF) wobei Filter-Nr 1-10 ist, z.B. p 8 12 1 $18F30557
13 <Filter-Nr> $<Mask-ID> setze Filter Mask-ID (29bit Mask-ID 0x00000000-0x1FFFFFFF) wobei Filter-Nr 1-10 ist und die Filtermaske von der Filter CAN-ID (0=egal 1=Übereinstimmung) abhängt, z.B. p 8 11 1 $1FFFFFF0 (hier: $18F30550 - $18F3055F)
14 0 0 setze alle 11bit CAN Filter auf CAN-ID $0000 und Mask-ID $07FF (= deaktiviere jeden CAN Datenverkehr zur Applikation)


Busgenerische Kommandos (P 9)

Busgenerische Kommandos (P 9) für den CAN Bus

Kommando Wert1 Wert2 Bedeutung Fehlerkodes
0 0 0 Zeigt eine Info welches/r Gerät/Bus aktiv ist (z.B. CAN-Bus)
0 3 0 Zeigt eine Info des CAN Transceiver Arbeitsmodus
0 4 0 Zeigt die CAN-Bus Config (i.e. 11bit/500kBaud)
0 5 1 lese verschiedene CAN Fehlerzähler (Rx-Count, Rx-Error, REC, Tx-Count, Tx-Error, TEC, Busoff-Error, Warning-Error, Passive-Error)
0 5 2 lösche alle softwareinternen CAN Fehlerzähler
0 10 0 zeige alle 11bit CAN-ID Filter, jede Zeile mit zwei 11bit CAN-Filtern wie:
<CAN-ID> <Mask-ID> <CAN-ID> <Mask-ID>
0 11 0 zeige alle 29bit CAN-ID Filter, jede Zeile mit zwei 29bit CAN-Filtern wie: 
<CAN-ID> <Mask-ID>
This website uses cookies. By using the website, you agree with storing cookies on your computer. Also you acknowledge that you have read and understand our Privacy Policy. If you do not agree leave the website.More information about cookies
de/doc/hw_commands.txt · Last modified: 2015/07/09 16:33 by nexulm