Quantex GmbH
DE RU EN EL
Ihre Region: Europa

ELM327 BMW HSFZ

Überblick

Erweiterung des ELM327-Protokolls zur Unterstützung von BMW HSFZ (High Speed Fahrzeug Zugang). Das Protokoll E ermöglicht die UDS-Diagnose über Ethernet/TCP unter Verwendung des Standard-ELM327-AT-Interfaces.

Wie HSFZ funktioniert

Tester (ScanDoc)                    Fahrzeug (BMW)
┌──────────┐    TCP/IP     ┌─────────────┐    CAN/LIN    ┌─────┐
│ SA=F4    │───────────────│  BMW ZGW    │───────────────│ ECU │
│ (Tester) │   Ethernet    │  (Gateway)  │  interner Bus │(TA) │
└──────────┘   Port 6801   └─────────────┘               └─────┘

HSFZ — proprietäres BMW-Protokoll für die Diagnose über Ethernet. Im Gegensatz zum Standard-DoIP (ISO 13400) verwendet es ein eigenes Frame-Format mit 6-Byte-Header (4 Bytes Länge + 2 Bytes Control-Code) und 1-Byte-Adressierung (statt 2 Bytes bei DoIP).

Für den Betrieb müssen drei Parameter konfiguriert werden:

ParameterBefehlLegt festWie ermitteln
IP ECU/GatewayAT HIWohin per TCP verbindenAT HD (Discovery) oder manuell setzen
Source AddressAT HSTesteradresse (1 Byte)Standardmäßig F4, in der Regel nicht zu ändern
Target AddressAT HTAdresse des Ziel-Steuergeräts (1 Byte)Aus der Fahrzeugdokumentation

Wenn HI nicht gesetzt ist (IP = 00000000), führt AT SP E automatisch Discovery (UDP-Broadcast auf Port 6811) aus, findet das erste Steuergerät und füllt die Parameter aus dessen Antwort:

Danach erfolgt eine TCP-Verbindung auf Port 6801 → bereit für UDS (Routing Activation ist nicht erforderlich, im Gegensatz zu DoIP).

Unterschiede zu DoIP (Protokoll 'D')

HSFZ (Protokoll 'E')DoIP (Protokoll 'D')
StandardProprietär BMWISO 13400
Adressierung1 Byte (00–FF)2 Bytes (0000–FFFF)
TCP-Port680113400
UDP-Port (Discovery)681113400
Routing ActivationNicht erforderlichErforderlich
Frame-Header6 Bytes (len[4] + ctrl[2])8 Bytes (ver[1] + inv[1] + type[2] + len[4])
TesteradresseF4 (1 Byte)0E80 (2 Bytes)

Beispiele

Anfrage an das Gateway

AT SP E findet das Steuergerät selbst und stellt die Verbindung her:

>ATZ
ELM327 v2.3

>ATE0
OK

>AT SP E                 # Discovery → HI=A9FE0114, HT=10, HS=F4
OK                       # TCP-Verbindung hergestellt

>22 F1 90                # UDS Read VIN — Anfrage geht an das Gateway (HT=10)
62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36

Anfrage an ein bestimmtes Steuergerät hinter dem Gateway

Zum Beispiel das Motorsteuergerät:

>ATZ
ELM327 v2.3

>ATE0
OK

>AT SP E                 # Discovery + Verbindung zum Gateway
OK

>22 F1 90                # VIN-Anfrage an das Gateway (HT=10)
62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36

>AT HT 12                # Target Address auf das Motorsteuergerät umschalten
OK

>22 F1 90                # dieselbe Anfrage — geht nun an ECU 12 über das Gateway
62 F1 90 ...

HSFZ AT-Befehle

HI hhhhhhhh — IP-Adresse des Steuergeräts

Setzt die IPv4-Adresse des Steuergeräts (Gateway) im Hex-Format (4 Bytes, Big-Endian).

>AT HI A9FE0114
OK

Beispiel: A9FE0114 = 169.254.1.20

Standardwert: 00000000 (nicht gesetzt). Wenn beim Aufruf von AT SP E keine IP gesetzt ist, wird automatisch ein Vehicle Discovery (UDP-Broadcast auf Port 6811) ausgeführt.

HS hh — Source Address (Quelladresse)

Setzt die Testeradresse (Source Address, SA) im Hex-Format (1 Byte).

>AT HS F4
OK

Standardwert: F4. In der Regel nicht zu ändern.

HT hh — Target Address (Zieladresse)

Setzt die ECU-Adresse (Target Address, TA) im Hex-Format (1 Byte).

>AT HT 10
OK

Standardwert: 00.

HC hhhh — HSFZ TCP-Port

Setzt den TCP-Port des Steuergeräts im Hex-Format. Muss vor AT SP E gesetzt werden. Standard: 1A91 (6801 dezimal) — der Standardport für BMW HSFZ. Nur zu ändern, wenn das Steuergerät einen abweichenden Port verwendet.

>AT HC 1A91
OK

HD — Steuergeräte ermitteln (Vehicle Discovery)

Führt ein UDP-Broadcast Vehicle Discovery auf Port 6811 aus. Gibt die Liste der gefundenen Steuergeräte mit VIN, logischer Adresse, IP und MAC-Adresse aus.

Füllt HI (IP) und HT (Target Address) automatisch aus dem ersten gefundenen Steuergerät.

Bei HI=0 führt AT SP E das Discovery selbst aus — ein separates AT HD ist nicht erforderlich. AT HD ist nützlich, wenn man vor dem Verbindungsaufbau sehen möchte, welche Steuergeräte im Netz vorhanden sind.

>AT HD
VIN:WBAPH5C55BA123456
ADDR:10
IP:A9FE0114
MAC:001A37B44210
OK

Mehrere Steuergeräte im Netzwerk:

>AT HD
VIN:WBAPH5C55BA123456
ADDR:10
IP:A9FE0114
MAC:001A37B44210
VIN:WBAKF0C58CE123456
ADDR:20
IP:A9FE0115
MAC:001A37B44211
OK

Wenn keine Steuergeräte gefunden wurden:

>AT HD
NO DATA

Initialisierungssequenz

SzenarioSequenz
Automatisch (Gateway)ATZAT SP E
ECU hinter Gateway (IP via Discovery)ATZAT HDAT HT xxAT SP E
ECU hinter Gateway (IP bekannt)ATZAT HI hhhhhhhhAT HT xxAT SP E

Was bei AT SP E passiert

  1. Disconnect — Trennen des aktuellen Protokolls
  2. Connect — Erstellen eines HSFZ J2534-Kanals (HSFZ_PS = 0x8FFC)
  3. Discovery (wenn keine IP gesetzt ist) — UDP-Broadcast auf Port 6811 zur ECU-Suche
  4. Set Config — Setzen von IP, SA, TA, TCP-Port
  5. TCP Connect — Aufbau der TCP-Verbindung zum Steuergerät auf Port 6801

Routing Activation ist nicht erforderlich (im Gegensatz zu DoIP).

Bei einem Fehler in einem beliebigen Schritt wird UNABLE TO CONNECT zurückgegeben.


Format der OBD-Daten

Senden

Hex-Daten werden als UDS-Payload gesendet. Der ELM327 verpackt sie automatisch in eine HSFZ Diagnostic Message mit SA+TA-Header (1-Byte-Adressierung).

>22F190
62 F1 90 57 42 41 50 48 35 43 35 35 42 41 31 32 33 34 35 36

Antwort (H0 — headers off, Standard)

Nur UDS-Payload, ohne SA/TA-Header:

62 F1 90 57 42 41 ...

Antwort (H1 — headers on)

SA + TA (4 Bytes im J2534-Format) + UDS-Payload:

10 00 F4 00 62 F1 90 57 42 41 ...

Header-Format: [TA_hi=0] [TA_lo] [SA_hi=0] [SA_lo] — Absenderadresse der Antwort (ECU → Tester). Die höherwertigen Bytes sind immer 00, da HSFZ eine 1-Byte-Adressierung verwendet.


Automatische Protokollsuche

HSFZ ist in die automatische Protokollsuche (AT SP 0) eingebunden. Beim HSFZ-Versuch:

  1. Es wird ein temporärer HSFZ-Kanal erzeugt
  2. Vehicle Discovery wird ausgeführt (UDP-Broadcast auf Port 6811, Timeout 2 Sekunden)
  3. Wenn ein Steuergerät gefunden wird — Verbindung über TCP
  4. Bei erfolgreicher Verbindung — es wird eine Test-OBD-Anfrage gesendet
  5. Wenn kein Steuergerät gefunden wird oder keine Antwort kommt — Wechsel zum nächsten Protokoll

Parameter zurücksetzen

Die Befehle AT D (Defaults) und AT Z (Reset) setzen alle HSFZ-Parameter zurück:


Einschränkungen