User Tools

Site Tools


de:doc:hw_commands

This is an old revision of the document!


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 muss diese Kommandos unterstützen. Aber bitte nimm zu Kenntnis das 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 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. Mehr Informationen zu diesem ThemFor more details about the CAN Raw Mode, please refer to the RFC CAN Raw Mode

Protocol Specific Commands (P 6) for the CAN RTD Protocol

For more details about the CAN RTD Mode, please refer to the RFC CAN RTD Mode

Command Value1 Value2 Meaning Errorcodes
1 clear the internal data buffer list, releases all used memory buffers

Protocol Generic Commands (P 7)

Command Value1 Value2 Meaning Errorcodes
0 0 0 show info of used protocol
1 0 0 deactivate Listen mode
1 1 0 activate Listen mode

Bus Specific Commands (P 8)

Bus Specific Commands (P 8) for the CAN Bus, used in D2 Design

Command Value1 Value2 Meaning Errorcodes
2 0 0 CAN transceiver: Silent mode (CAN deactive)
2 1 0 CAN transceiver: Loop back (internal loop)
2 2 0 CAN transceiver: Loop back combined with silent mode
2 3 0 CAN transceiver: Normal mode (CAN active)
3 0 or 1 0 Standard-CAN init (initialize CAN controller with 125kbit/s, 11bit)
3 2 0 Standard-CAN init (initialize CAN controller with 250kbit/s, 11bit)
3 3 0 Standard-CAN init (initialize CAN controller with 500kbit/s, 11bit)
3 4 0 Standard-CAN init (initialize CAN controller with 1000kbit/s, 11bit)
3 5 0 Extended-CAN init (initialize CAN controller with 125kbit/s, 29bit)
3 6 0 Extended-CAN init (initialize CAN controller with 250kbit/s, 29bit)
3 7 0 Extended-CAN init (initialize CAN controller with 500kbit/s, 29bit)
3 8 0 Extended-CAN init (initialize CAN controller with 1000kbit/s, 29bit)
4 0 0 HS-CAN (Relais switch - OFF)
4 1 0 MS-CAN (Relais switch - ON)
10 <Filter-No> $<CAN-ID> set Filter CAN-ID (11bit CAN-ID 0x0000-0x07FF) where Filter-No is 1-20, i.e. p 8 10 1 $720
11 <Filter-No> $<Mask-ID> set Filter Mask-ID (11bit Mask-ID 0x0000-0x07FF) where Filter-No is 1-20 and Filter Mask depends on Filter CAN-ID (0=don't care 1=match), i.e. p 8 11 1 $7F0 (here: $720 - $72F)
12 <Filter-No> $<CAN-ID> set Filter CAN-ID (29bit CAN-ID 0x00000000-0x1FFFFFFF) where Filter-No is 1-10, i.e. p 8 12 1 $18F30557
13 <Filter-No> $<Mask-ID> set Filter Mask-ID (29bit Mask-ID 0x00000000-0x1FFFFFFF) where Filter-No is 1-10 and Filter Mask depends on Filter CAN-ID (0=don't care 1=match), i.e. p 8 11 1 $1FFFFFF0 (here: $18F30550 - $18F3055F)
14 0 0 set all 11bit CAN filter to CAN-ID $0000 and Mask-ID $07FF (= disable any CAN traffic to application)


Bus Generic Commands (P 9)

Bus Generic Commands (P 9) for the CAN Bus

Command Value1 Value2 Meaning Errorcodes
0 0 0 show info which interface/bus is active (i.e. CAN-Bus)
0 3 0 show info of CAN transceiver operating mode
0 4 0 ??
0 5 1 read different CAN error counters
0 5 2 delete all software internal CAN error counters
0 10 0 show all 11bit CAN-ID filter, each line with two 11bit CAN-filters like:
<CAN-ID> <Mask-ID> <CAN-ID> <Mask-ID>
0 11 0 show all 29bit CAN-ID filter, each line with one 29bit CAN-filter like: 
<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.1411310801.txt.gz · Last modified: 2014/09/21 16:46 by wsauer