Autor |
Nachricht |
timi82 Gast
Kostenloser Account, kein CAN Entwicklungs-Support
|
13-01-2011, 18:27 Titel: Antwort auf PID00 für OBD2-Simulator |
|
|
Hallo zusammen,
ich beschäftige mich gerade mit dem Thema OBD2 mit dem Ziel einen OBD2-Simulator (CAN-Protokoll) zubauen, also das Fzg. zu simulieren.
Ich habe mal zum Test ein CAN-zu-PC-Gerät an Stecker eines Diagonosegerätes gehängt. Dabei bekomme ich folgende Nachricht:
7DF 02 01 00 00 00 00 00 00
Laut OBD-II_PIDs bedeutet diese Nachricht folgendes:
7DF -> CAN ID, Nachricht kommt vom Diag.-Gerät
02 -> Es folgen 2 Daten-Byte
01 -> Mode 01
00 -> PID00, Anfrage: PIDs supported [01 - 20]
... -> restlichen Byte ohne Bedeutung
Als Antwort werden doch die Unterstützen PIDs von PIDS 01-20 erwartet?
Nach den OBD-II_PIDs könnte die Antwort so aussehen:
7E8 06 41 00 xx xx xx xx 00
7E8 -> CAN ID, Nachricht kommt vom Motorsteuergerät
06 -> Es folgen 6 Daten-Byte
41 -> Mode 01
00 -> PID00, Antwort: PIDs supported [01 - 20]
xx xx xx xx -> Unterstütze PIDs
00 -> ohne Bedeutung
Ist das vom Ansatz richtig?
Wie setzt sich xx xx xx xx zusammen? Laut Wikipedia: Bit encoded [A7..D0] == [PID 0x01..PID 0x20].
Setzte ich dann für jede vorhandene PID das entsprechende Bit, z.B. für wenn PID01 übertragen wird Bit A7=1?
Wäre super, wenn mir da jemand weiterhelfen könnte.
Gruß |
|
Nach oben |
|
 |
svensation Gast
Kostenloser Account, kein CAN Entwicklungs-Support
|
02-02-2011, 22:15 Titel: Re: Antwort auf PID00 für OBD2-Simulator |
|
|
Hallo Timi,
dein Ansatz ist soweit richtig.
Die Antwort bestätigt mit 0x40 + x deinen angefragten Mode und nennt nochmal den PID. Dann folgen bei den PIDs 0x00, 0x20, 0x40, 0x60, .... 4 Byte mit der bitcodierten Info, welche PIDs in dem Mode überhaupt unterstützt werden. Mit PID 0x00 fragst du den Bereich von 0x01 bis 0x1F plus PID0x20 an, also 31 richtige PIDS und zusätzlich kommt die Info, ob du auch das nachfolgende Schlüssel-PID (0x20) anfragen solltest. Ist dieses Bit 1, dann folgen noch weitere unterstützte PIDs in den höheren Bereichen.
Setzte ich dann für jede vorhandene PID das entsprechende Bit, z.B. für wenn PID01 übertragen wird Bit A7=1?
Nein. Da es sich um eine Antwort handelt, setzt du da nichts. Aber du kannst ablesen, welche PIDs unterstützt werden und diese dann anfragen:
7DF 02 01 0D
für die Fahrzeuggeschwindigkeit. Man kann sogar mehrere
PIDs in einer Anfrage haben, aber da weiß ich die genaue Anfrage jetzt nicht.
Viele Grüße
Sven |
|
Nach oben |
|
 |
|