Table of Contents
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
- System
- Serielle Eingabe
- Serielle Ausgabe
- Protokoll
- 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> |