Forum: Fahrzeugelektronik ELM-Kompatibler Adapter sendet keine Frame-Control Pakete


von Olli Z. (z80freak)


Lesenswert?

Ich habe hier insgesamt 3 verschiedene ELM327 kompatible Adapter (also 
keine Original ELM-Chips drau) und bei keinem bekomme ich es hin das 
UDS-Antworten vom Steuergerät, welche per ISOTP fragmentierte Antworten 
liefert, automatisch vom Adapter mit einem Frame-Control Paket (30 00 00 
00 00 00 00 00) beantwortet werden.

Laut Datenblatt sollte das mit allen drei dafür vorgesehenen 
Flow-Control Modi funktionieren, z.B. mit:
1
AT Z
2
AT SP 6     <- HS-CAN, 11-Bit ID
3
AT SH 726   <- Die Ziel CAN-ID
4
AT CF C1    <- Das schaltet die automatische Flow-Control ein
5
AT FC SM 0  <- Flow Control Mode 0

Sende ich dann einen "Read Identifier" (0x22)
1
22 F1 88
erhalte ich als Antwort nur das erste Paket
1
>22 F1 88
2
01B
3
0: 62 F1 88 42 47 39

Auch im Mode 1 (User muss Daten und ID vorgeben) ist das so:
1
AT FC SH 726       <- CAN-ID des zu sendenden FC-Frames
2
AT FC SD 30 00 00  <- Der FC-Frame
3
AT FC SM 1

Gleiches wenn ich versuche das mit Mode 2 (User muss nur Daten vorgeben) 
zu machen. Hier muss man selbst und vorher die Antwort festlegen:
1
AT FC SD 30 00 00  <- Der FC-Frame
2
AT FC SM 2         <- Mode 2

In einem parallel angeschlossenen CAN-Sniffer sehe ich das der ELM ein 
FC-Paket sendet, somit wäre das erklärbar warum es keine weiteren Pakete 
gibt:
1
726 8 03 22 F1 88 00 00 00 00
2
72E 8 10 1B 62 F1 88 42 47 39

Meine Frage ist natürlich warum?
Mache ich was falsch bei der Generierung oder ist das einfach in allen 
meinen Clones nicht implementiert?

von Dieter S. (ds1)


Lesenswert?

Olli Z. schrieb:
>
>
1
> AT CF C1    <- Das schaltet die automatische Flow-Control ein
2
>
>

Sicher? Das Kommando ist "AT CFC1" ohne Leerzeichen. Da "AT CF xxx" die 
CAN Filter ID setzt könnte ich mir vorstellen das das Kommando mit 
Leerzeichen falsch interpretiert wird.

von Olli Z. (z80freak)


Lesenswert?

Hallo Dieter,

nein, das macht keinen Unterschied, zumindest wenn die Firmware hier 
keinen Bug hat. Aber ich habe es auch ausprobiert.

Das "AT CF C1" unterscheidet sich durch "C1" oder "C0" von einer 
möglichen Filter-ID die ja ein dreistelliger Zahlenwert ist.

Achja, einen Befehl hatte ich oben noch unterschlagen
1
AT CA F1

Der dient der Ausgabeformatierung und Einfachheit der 
Nachrichteneingabe, man muss sich um das PCI nicht kümmern.

Womöglich haben die Chinesen beim kopieren der ELM-Firmware irgendwas 
unterschlagen oder noch kleinere/billigere PICs eingesetzt als ELM 
selbst und nicht genug RAM dafür verwendet? Das werden die wenigsten 
Käufer merken, da sie nur die einfachen DTC-Funktionen nutzen werden und 
die Flow-Control wird ja meist per Software erledigt.

Für mich wäre es halt schön und komfortabel zum experimentieren gewesen. 
Daher habe ich jetzt einen Original OBD-Link EX Adapter bestellt. Der 
hat einen deutlich fortschrittlicheren STN-Chipsatz drauf, der sogar 
Firmwareupgrades zulässt. Ich denke damit wird es gehen. Ist halt ein 
komplett anderer Befehlssatz.

: Bearbeitet durch User
von Olli Z. (z80freak)


Lesenswert?

Kleine Rückmeldung von mir an den interessierten Leser

Mit dem Original OBDLinkEX funktioniert UDS einwandfrei und wie 
dokumentiert. Es ist also in den anderen China-Clones einfach nicht, 
bzw. nicht vollständig implementiert. Wer billig kauft, kauft zweimal...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.