Diagnose über CAN

Transcription

Diagnose über CAN
Inhalt
2
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Kommunikation im Fahrzeug*
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Motor
Steuergerät
Getriebe
ABS
…
Steuergerät
Steuergerät
High-Speed-Bus
Kombiinstrument
Karosserie
Steuergerät
Navigation
MMI
…
(Antriebs-CAN)
Gateway
Low-Speed-Bus
3
Infotainment-Bus (MOST)
(Komfort-CAN)
Reifendruck …
Tür
Steuergerät
Steuergerät
Sub-Bus
(FBAS)
Kamera
Sub-Bus (LIN)
Sensor
vorn links
On-Board Kommunikation
Diagnosesysteme im Automobil
Off-Board Kommunikation
Entwicklungstester
Applikationstools
Produktionstester
Werkstatttester
…
Abgastester
*vereinfacht
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosebus
Open System Interconnection (OSI)
Schichtenmodell (ISO 1978)
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
4
Eigentliche Anwendung (On-Board z.B. Motorsteuerung oder Off-Board z.B. Diagnosetester)
Anwendung im Fahrzeug
7
Application Layer
6*
Presentation Layer Unterschiedliche Darstellung der Daten
5*
Session Layer
4
Transport Layer
3*
Network Layer
2
Data Link Layer
1
Physical Layer
(Anwendung)
Anwendungsprogramm, fertige Dienste, z.B.
Fehlerspeicher lesen
Diagnoseprotokolle
(Darstellung)
(Sitzungssteuerung)
(Transport)
(Vermittlung)
(Sicherung)
(Bitübertragung)
Steuert Verbindungsprozesse, z.B.
Authentifizierung, Synchronisation
Segmentierung der Botschaften
Transportprotokolle
Routing, Adressierung, Teilnehmererkennung, überwachung
Botschaftsaufbau, Buszugriff, Fehlererkennung,
Flussregelung
Bussysteme
Signalpegel, Bitkodierung
Busleitungen und Steckverbinder (Mechanik)
*
Werden für Anwendungen im Fahrzeug z. Z. nicht verwendet; Aufgaben werden von den anderen Schichten übernommen.
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Schicht Bezeichnung
Off-Board-Kommunikation
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
5
• Gibt es abgasrelevante Fehler im System?
• Wie ist die Öltemperatur?
• … Schalte den Motorlüfter ein!
Diagnosetester
Diagnoseanfrage
(Request)
Diagnoseantwort
(Response)
Motorsteuergerät
Getriebesteuergerät
Türsteuergerät
Diagnosesteckdose
Gateway
Bussysteme
 Klare Rollenverteilung: Diagnosetester fragt an  ein oder mehrere Steuergeräte antworten
Diagnosesysteme im Automobil
 Kommunikationsprinzip: Request – Response
 Diagnosetester weiß zu Beginn nicht, welche Steuergeräte im Fahrzeug verbaut sind  muss mit
allen Steuergeräten kommunizieren können, darf aber nicht auf alles zugreifen
 Diagnose-Anfrage oder Antwort eventuell viel länger als eine Busbotschaft. Beispiel
Fahrgestellnummer 17 Zeichen, Extremfall: Update der Steuergerätesoftware („Flashen“)
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Kommunikation nur bei Bedarf
Protokollstapel (Protocol Stack)
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Tester
(ISO: Client, ASAM: Master)
Steuergerät(e)
(ISO: Server, ASAM: Slave)
Diagnoseanwendung
Request
6
Diagnose-Stack
Response
ISO/OSI-Schichtenmodell
Diagnoseprotokoll
Application Layer
(Schicht 7)
ISO 14229, ISO 15765-3 …
Transportprotokoll
Transport Layer
Transportprotokoll
Diagnosesysteme im Automobil
ISO 15765-2 (Segmentierung)
Bussystem
ISO 11898 (CAN) …
(Schicht 4)
Data Link Layer
(Schicht 2)
Physical Layer
(Schicht 1)
ISO 15765-2 (Segmentierung)
Bussystem
ISO 11898 (CAN) …
Copyright © 4/7/2011 emotive GmbH - All rights reserved
ISO 14229, ISO 15765-3 …
Diagnoseprotokoll
Überblick der Standards
7
Quelle: Zimmermann
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Testfragen – Einleitung
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
8
1. Wer sendet den Diagnose Request?
a) Der Diagnosetester
b) Das Steuergerät
2. Zu welcher Schicht des ISO/OSI-Kommunikationsmodells gehört das
Diagnoseprotokoll UDS?
a) Zur Schicht 2, dem Data Link Layer
b) Zur Schicht 4, dem Transport Layer
c) Zur Schicht 7, dem Application Layer
3. Wie bezeichnen die ISO-Normen den Diagnosetester?
4. Wie bezeichnen die ASAM-Normen ein Steuergerät?
a) Als Master
b) Als Slave
Diagnosesysteme im Automobil
5. Was ist der Inhalt der ISO 15031?
a) On-Board-Diagnose für abgasrelevante Systeme
b) KWP 2000, das veraltete Protokoll für die allgemeine Fahrzeugdiagnose
c) UDS, das aktuelle Protokoll für die allgemeine Fahrzeugdiagnose
Copyright © 4/7/2011 emotive GmbH - All rights reserved
a) Als Client
b) Als Server
c) Als Master
Inhalt
9
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Allgemeines
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
10
Problemstellung
On-Board Kommunikation:
 Signale < max. Länge einer Data Link Layer Botschaft
 Ziel: Direkte Verwendung der DLL-Botschaft ohne Segmentierung für kurze Latenzzeit
 Zusammensetzen von mehreren Signalen zu einer DLL-Botschaft um Botschaftsoverhead zu reduzieren
durch Interaktionsebenen (Application Layer), z.B. OSEK bzw. AUTOSAR COM
Off-Board Kommunikation:
 Kurze und Lange Datenblöcke bei Werkstattdiagnose, z.B. Lesen Drehzahl (2 Byte), Lesen
Fahrgestellnummer (> 17 Bytes)
 Extrem lange Botschaften beim EOL/Flashen, z.B. komplette ECU Software (4 MB)
Aufgabe des Transport Layers
Diagnosesysteme im Automobil
 Anpassung der Botschaftslänge von der Applikationsebene zur Busebene
 Aufspalten langer Diagnosebotschaften in mehrere kurze Busbotschaften beim Senden und
Zusammensetzen beim Empfangen – Segmentierung
 Flusskontrolle, d.h. die Steuerung des zeitlichen Abstands der Botschaften, so dass der Empfänger nicht
überlastet wird
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Ziel: Einfache Übertragung von Blöcken variabler Länge mit hohem Datendurchsatz
Inhalt
11
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Aufbau I
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
12
 Diagnosebotschaft < Busbotschaft: Unsegmentierte Single-Frame (SF) Botschaft
Single
Frame
SF
Bit 7 … 4
Bit 3 … 0
0x0
DL
1 Byte PCI
Protocol Control Information
Daten (Diagnosebotschaft)
PDU der Diagnosebotschaft 1 … 7 Bytes
TP-PDU = Nutzdaten der CAN Botschaft (CAN Frame) 1 … 8 Bytes
PCI = 1 Byte langer Header
 0 = SF, 1 = FF, 2 = CF, 3 = FC
 Bit 7…4 = 0
Kennzeichnet SF
 Bit 3…0 = DL
Anzahl der folgenden Datenbytes
 Diagnosebotschaft >= Busbotschaft: Segmentierung über FF und CF Botschaften
Bit 3 … 0
Bit 7 … 0
0x1
DL11 … 8
DL7 … 0
2 Byte PCI
Diagnosesysteme im Automobil
Consecutive
Frame
CF
Bit 7 … 4
Bit 3 … 0
0x2
SN
Daten (Diagnosebotschaft)
6 Bytes
Daten (Diagnosebotschaft)
Erste Botschaft mit 2 Byte PCI
 0x01 Kennzeichnet FF
 DL
Anzahl Bytes der gesamten
Diagnosebotschaft (max. 4095)
Folgebotschaften mit 1 Byte PCI
 0x02 Kennzeichnet CF
1 Byte PCI
7 Bytes (letzter CF < 7 Bytes)
TP-PDU = Nutzdaten der CAN Botschaft (CAN Frame) 1 … 8 Bytes
 SN
Sequenznummer: Laufende
Nummer der CF modulo 16,
beginnend bei 1 (FF: SN=0)
Copyright © 4/7/2011 emotive GmbH - All rights reserved
First
Frame
FF
Bit 7 … 4
Aufbau II
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN

Flusssteuerung für segmentierte Botschaften vom Empfänger zum Sender
Flow Control
Frame
FC
Bit 7 … 4
Bit 3 … 0
Bit 7 … 0
Bit 7 … 0
0x3
Flow
Status FS
Block Size BS
Min. Separation
Time STMin
3 Byte PCI
TP-PDU = Nutzdaten der CAN Botschaft (CAN Frame)
13
Flow Control mit 3 Byte PCI
 0x03 Kennzeichnet FC
 FS
Flow Status
0 = ClearToSend (CTS)
1 = Wait, 2 = Overflow
 BS
Block Size: Zulässige Anzahl
der folgenden CF, max. 255
 STMin Min. Separation Time: Mindestabstand der CF Frames in ms

Sender sendet First Frame FF– Empfänger antwortet mit Flow Control Frame FC

Sender sendet BS Consecutive Frames im Mindestabstand STMin

Vorgang wiederholt sich ggf. mit neuem Flow Control Frames, bis Daten komplett sind

Für den Sender: Abstand zwischen der FF-Botschaft und der FC-Antwort:
max. 1s

Für den Empfänger: Abstand zwischen zwei CF-Botschaften:
max. 1s

Falls der Empfänger Zeit zur Verarbeitung benötigt, kann er mit einer Flow Control Botschaft mit Flow Status FS = Wait eine Pause erzwingen, bis er
nach max. 1s mit einer weiteren Flow Control Botschaft zum Weitersenden oder erneut zum Warten auffordert

Für Diagnosetester wird BS=0 und STMin=0 gefordert, d.h. Empfang auf der Testerseite effektiv ohne Flusssteuerung
Fehlererkennung

Sender und Empfänger überwachen die segmentierte Übertragung durch die entsprechenden Timeouts, der Empfänger zusätzlich über die
Sequenznummer

Im Fehlerfall wird eine empfangene Botschaft ignoriert und die darüber liegende Schicht informiert. In der Transportschicht erfolgt keine
Fehlerbehandlung, d.h. weder Sendewiederholung noch Fehlerbotschaft
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Timeout Bedingungen
Beispielablauf
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
14
Diagnosebotschaft mit 35 = 0x23 Bytes, Empfänger kann max. 24 Bytes puffern
Sender
FF:
0x10 0x23
Sender
Empfänger
Empfänger
6 Datenbytes
FC:
0x30 0x03 0x0A
CTS, BS = 3, STMin = 10 ms
0x21
7 Datenbytes
STMin
SN = 1
CF:
0x22
7 Datenbytes
SN = 2
CF:
0x23
Block
Size
BS
7 Datenbytes
SN = 3
Diagnosesysteme im Automobil
FC:
CF:
0x24
7 Datenbytes
SN = 4
CF:
0x25
1 Datenbyte
SN = 5, CF mit < 8 Datenbytes zeigt
Ende der segmentierten Übertragung
0x30 0x03 0x0A
CTS, BS = 3, STMin = 10 ms
Last
Block
(<= BS)
Zeit
Zeit
Copyright © 4/7/2011 emotive GmbH - All rights reserved
CF:
Inhalt
15
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
FlexRay nach AUTOSAR 3.0 (AUTOSAR FR TP)
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
16
 Spezifikation noch nicht stabil, ISO 10681-2 in Vorbereitung
 Aufwärtskompatibel zu ISOTP für CAN mit zusätzlichen Botschaften:
• Modifiziertes Botschaftsformat mit Zieladresse (Target Address TA) und
Quelladresse (Source Address SA). Bei CAN über CAN-ID gelöst. Bei FlexRay nötig,
damit der selbe Static oder Dynamic Slot für verschiedene Diagnoseverbindungen
genutzt werden kann.
2 oder 4 Bytes
TA
SA
Adressinformation
1 … 5 Bytes
PCI
Datenbytes
Protocol Control Info
Nutzdaten (Payload)
• Unsegmentierte Botschaft (SF Extended) mit bis zu 250 Datenbytes
• Segmentierte Botschaften (FF Extended + CF) bis zu 4 GB (statt 4 kB)
• Optionaler Acknowledge Frame AF: Empfangsbestätigung bzw. Aufforderung zur
Sendewiederholung, da FlexRay im Data Link Layer im Gegensatz zu CAN keine
automatische Empfangsbestätigung bzw. Sendewiederholung hat.
• Segmentierung (ohne Flow Control und Acknowledge) auch als Multicast möglich
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
max. 254 Bytes
Testfragen – Transportprotokolle
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
2.
3.
4.
Diagnosesysteme im Automobil
5.
Wo werden Transportprotokolle eingesetzt?
6.
Der ISO TP First-Frame eines segmentierten Datenblocks beginnt
mit der Bytefolge 0x12 0x04 ... Wie viele Nutzdatenbyte enthält
der gesamte Datenblock?
a)
Bei der On-Board-Kommunikation zwischen Steuergeräten im
Fahrbetrieb
b)
Bei der Off-Board-Kommunikation zum Diagnosetester
a)
6 Byte
Welcher Botschaftstyp wird bei der Übertragung kurzer
Botschaften mit ISOTP eingesetzt?
b)
7 Byte
c)
204 Byte
d)
512 Byte
e)
516 Byte
a)
First-Frame Botschaften
b)
Single-Frame Botschaften
c)
Flow-Control Botschaften
d)
Consecutive-Frame Botschaften
7.
Wie viele CAN-Botschaften muss ein Steuergerät versenden,
wenn es einen Datenblock mit 32 Byte übertragen will und ISO
TP verwendet?
Wer sendet Flow-Control Frames?
a)
4 Botschaften
a)
Immer der Diagnosetester
b)
5 Botschaften
b)
Immer das Steuergerät
c)
6 Botschaften
c)
Das Gerät, das eine segmentierte Botschaft senden will
d)
Das Gerät, das eine segmentierte Botschaft empfangen soll
8.
In welcher Reihenfolge sehen Sie Transportprotokoll-Botschaften
am Beginn einer segmentierten Datenübertragung auf dem Bus?
a)
SF - FC - CF - CF - ...
b)
FC - FF - CF - CF - ...
c)
FF - FC - CF - CF - ...
d)
SF - FF - FC - CF - ...
Welche der folgenden Byte-Folgen könnte der Beginn einer FirstFrame Botschaft sein?
9.
Was muss der Diagnosetester tun, wenn er als Antwort auf seine
First-Frame Botschaft den folgenden Flow-Control Frame erhält:
0x30 0x04 0x08?
a)
Er darf maximal 8 Consecutive-Frames mit je mindestens 4 ms Pause
senden
b)
Er darf maximal 4 Consecutive-Frames innerhalb von maximal 8 ms
senden
c)
Er muss mindestens 1 und maximal 4 Consecutive-Frames senden.
Zwischen den Consecutive-Frames muss er eine Pause von mindestens
8 ms lassen
d)
Er darf maximal 4 Single Frames senden
a)
0x01 0x55 ...
Wie lang darf ein Datenblock maximal sein, der mit dem ISO
Transportprotokoll für CAN versendet werden soll?
b)
0x10 0x04 ...
a)
8 Byte
c)
0x21 0x55 ...
b)
256 Byte
d)
0x30 0x55 ...
c)
4095 Byte
d)
64 KB
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1.
17
Inhalt
18
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Allgemein – KWP 2000, UDS, OBD
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
 Im Erfolgsfall gibt das SG eine
positive Response zurück,
dabei wird der SID um 0x40
erhöht und meist wird PID
oder LEV wiederholt
Diagnosekommunikation:
Tester (Request)
P4
Steuergerät (Response)
P2
P1
19
P3
 Erhält vom SG eine positive oder
negative Antwort
Diagnosesysteme im Automobil
 SID (Service Identifier)
kennzeichnet den Inhalt der
Botschaft
 Die restlichen Bytes enthalten
Parameter oder Daten (PID =
Parameter Identifier oder LEV =
Sub-Level-Function)
Request
(z. B.: 18 02 FF FF)
Positive Response
(z.B.: 58 01 FF 01 08)
Service ID
SID
PID/LEV
Request-Parameter
SID + 0x40
PID/LEV
Response-Parameter
Negative Response Error ID 0x7F
(z.B.: 7F 18 33)
Byte 1
optional
Service ID
SID
Response
Kode
Byte 2
Byte 3
…
Byte n
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Im Fehlerfall gibt das SG eine
negative Response mit dem
…
B1
B2
B3 … Bn
B1
B2
B3 … Bn
B1 …
festen Error ID 0x7F, dem
wiederholten SID und einem
P1 = Interbytezeit SG, P2 = Interblockzeit SG, P3 = Interblockzeit Tester, P4 = Interbytezeit Tester
Response-Kode zurück
 Diagnosetester sendet Request
an ein oder mehrere
Steuergeräte
Aufbau der Diagnoseservices:
Nutzdaten
Genormte Bereiche für Service IDs
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Request
Positive Response
Beschreibung
0x00 … 0x0F
0x40 … 0x4F
OBD nach ISO 15031-5
Diagnose abgasrelevanter Systeme
0x10 … 0x3E
0x83 … 0x87
0x50 … 0x7E
0xC3 … 0xC7
UDS nach ISO 14229
KWP 2000 nach ISO 14230
Allgemeine Fahrzeugdiagnose
0x81 … 0x82
0xC1 … 0xC2
KWP 2000 auf K-Line nach ISO 14230
0xA0 … 0xB9
0xE0 … 0xF9
Reserviert für Fahrzeughersteller (OEM)
0xBA … 0xBE
0xFA … 0xFE
Reserviert für Steuergerätehersteller
Reserviert
Negative Response
Beschreibung
0x7F
Fehlermeldungen
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Andere Bereiche
20
Typische Error Response-Codes
Reponse-Kode
Beschreibung
0x10
General reject
0x11, 0x12, 0x7E, 0x7F
Service or Subfunction not supported (in active Session)
0x13
Message length or format incorrect
0x31
Out of range
0x21
Busy – Repeat request
0x78
Busy – Response pending
0x22
Conditions not correct
0x24
Request sequence error
0x33
Security access denied
0x35
Invalid key
0x36
Exceed attempts
21
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Adressierungsarten
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
22
Physikalische Adressierung

Für jede Kommunikationsverbindung zwischen dem Diagnosetester und jedem einzelnen Steuergerät wird ein eindeutiges
Paar von Adressen (z.B.: CAN IDs) festgelegt, jeweils eine Adresse für den Request und eine für die Response

Da der Diagnosetester u. U. nicht weiß, welche Steuergeräte im Fahrzeug verbaut sind, kann er einen Request auch
gleichzeitig an alle Steuergeräte mit einer für alle Steuergeräte gemeinsamen funktionalen Adresse senden

Auf die funktionale Adressierung antworten in der Regel mehrere Steuergeräte. Sie können dabei auch ihre physikalische
Adresse zurückgeben.

Steuergeräte können daher zwei Adressen haben: Eine physikalische und eine optional funktionale Adresse
Funktionale
Adressierung
Diagnosetester
Steuergerät ECU1
Steuergerät ECU2
physikalische CAN-IDs:
• Für ECU1: 0x7E8
• Für ECU2: 0x7E9
CAN-IDs:
• funktional:
0x7DF
• physikalisch: 0x7E0
CAN-IDs:
• funktional:
0x7DF
• physikalisch: 0x7E1
Request an alle Steuergeräte
Funktionale Adresse: 0x7DF
Response von ECU1
Diagnosesysteme im Automobil
Physikalische Adresse: 0x7E8
< P2 max = 50 ms
< P2 max = 50 ms
Response von ECU2
Physikalische Adresse: 0x7E9
Physikalische
Adressierung
Request an Steuergerät ECU2
Physikalische Adresse: 0x7E1
Response von ECU2
Physikalische Adresse: 0x7E9
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Funktionale Adressierung (gilt nur für Steuergeräte und nicht für den Tester)
Adressierungsarten (Adressen)
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
23
 Für OBD-relevante Geräte sind die Adressen in ISO 15765-4 fest vorgegeben:
11 Bit CAN-ID
Funktionale Adressierung
Request: Tester  alle Steuergeräte
29 Bit CAN-ID
0x7DF
0x18DB33F1
Physikalische Adressierung
Response: SteuergerätX  Tester
0x7E8 + XX
0x18DAF1XX
Physikalische Adressierung
Response: Tester  SteuergerätX
0x7E0 + XX
0x18DAXXF1
XX = 0x00 für Steuergerät1, 0x01 für Steuergerät2 usw.
• Geräteadressierung bei KWP 2000 (K-Line, 8bit Adressen, werden dort als Target- und SourceAdresse im Header der Diagnosebotschaft übertragen):
 physikalische Adresse des Diagnosetesters: 0xF1
• Erweiterte Adressierung: ISO 15765-2 erlaubt die Verwendung einer erweiterten Adressierung. Dabei
wird das 1. Datenbyte der CAN-Botschaft zusätzlich zur Adressierung verwendet. Da dadurch das
Nutzdatenfeld weiter verkleinert wird, versucht man aber, diese Adressierung zu vermeiden.
Diagnosesysteme im Automobil
Beachte: Timeout bei funktionaler Adressierung
 Bei physikalischer Adressierung kann der Tester sofort nach Erhalt der Response den
nächsten Request an ein Steuergerät senden
 Bei funktionaler Adressierung muss er nach jeder Response den Timeout P2 = 50ms neu
abwarten, da er nicht weiß, wie viele Steuergeräte antworten werden
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 funktionale Adresse aller OBD Steuergeräte: 0x33
Sicherheitskonzept - Diagnosesitzungen
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
24
 In der Default Diagnostic Session (Normalzustand) ist nur ein Teil der Diagnosedienste, Messwerte und
Steuergerätedaten verfügbar
 Über Start Diagnostic Session kann in einen speziellen Diagnosemodus umgeschaltet werden:
• Programming Session:
Flash-Programmierung
• Extended Diagnostic Session:
Justierung der Leerlaufdrehzahl usw.
• OEM oder Steuergerätehersteller spezifische Sessions (Developer Session etc.)
 Bei der Umschaltung in eine erweiterte Diagnostic-Session muß ggf. ein Security Access durchgeführt
werden.
 Beim Umschalten können außerdem ggf. die Kommunikationsparameter verändert werden (Baudrate,
Timeout etc.)
 Die Umschaltung kann außerdem an gewisse Bedingungen (z.B. Motor aus) geknüpft sein
StartDiagnosticSession (Non-Default)
Diagnosesysteme im Automobil
Start Timeout-Timer
Default
Session
Non-Default
Session
Timeout-Timer abgelaufen
Power-On-Reset
StopDiagnosticSession oder
StartDiagnosticSession (Default)
Beliebiger Request oder Tester-Present,
Timeout-Timer zurücksetzen
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Eine Non Default Session wird automatisch beendet, wenn der Tester nicht regelmäßig Tester-Presents
oder andere Botschaften sendet (z.B.: Timeout P3max = 5 s)
Security Access
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
25
 Nach der Umschaltung in eine erweiterte Diagnostic-Session muß in der Regel ein Security
Access durchgeführt werden
 Der Security Access basiert auf einem „Seed & Key“ Verfahren
 Ist das Steuergerät bereits in einer höheren Diagnostic-Session, sendet es auf den Request
SecurityAccess eine Null-Seed zurück (Bytefolge mit Nullen)
Diagnosetester
Steuergerät
„Seed & Key“ Verfahren:
27 01 (SID, ACCMODE [reqSeed])
Positive Response
67 01 12 34 56 78 (SID, …, SEED)
KeyBerechnung
Request SecurityAccess
Diagnosesysteme im Automobil
27 02 9A BC DE F0 (SID, …, KEY)
Positive Response
67 02 (SID, ACCMODE [sendKey])
1. Der Tester fordert vom SG eine SEED an
(Die Seed ist eine Zufallszahl)
2. Durch einen geheimen Algorithmus
berechnet der Tester aus der SEED einen
Key, den er zum SG zurücksendet
3. Das SG berechnet mit dem selben
Algorithmus ebenfalls den Key und
vergleicht ihn mit dem vom Tester
4. Bei Gleichheit gibt das SG die DiagnosticSession frei und bestätigt dies durch eine
positive Response
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Request SecurityAccess
Fehlerspeicher
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
26
Inhalt des Fehlerspeichers (Ereignisspeicher):
-
Anzahl der Ereignisse
StatusOfDTC
- Fehlerkode (DTC = Diagnostic Trouble Code)
- Umgebungsdaten
Auslesen des Fehlerspeichers
(ISOTP Sequenz):
1. Lesen des Fehlerspeichestatus
ServiceID StatusOfDTC
ReadDTCByStatus
0x18
0x02
GroupOfDTC
0xFF
0xFF
ServiceID
0x58
NoOfDTC Fehlerkode (DTC)
0x02
0xFF
StatusOfDTC
0x01
0x08
…
StatusOfDTC 0x02 = requestIdentifed2ByteHexDTCAndStatus, 0x03 = requestSupported2ByteHexDTCAndStatus; GroupOFDTC 0xFFFF = allGroups
ServiceID
ServiceID
NoOfDTC Fehlerkode (DTC)
EnviromentData …
ReadStatusOfDTC
0x17
0xFF
0x01
0x57
0x02
0xFF
0x01
…
ReadStatusOfDTC
0x17
0xFF
0x02
0x57
0x02
0xFF
0x02
…
…
Diagnosesysteme im Automobil
Fehlerkode (DTC)
Diagnoseservice
Request (Tester)
Response (ECU)
Copyright © 4/7/2011 emotive GmbH - All rights reserved
2. Iteratives Lesen der einzelnen Fehlerspeichereinträge
Testfragen – Diagnoseprotokolle
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
2.
3.
4.
Diagnosesysteme im Automobil
5.
Zu welcher Ebene des ISO/OSI-Schichtenmodells gehören die
Diagnoseprotokolle?
a)
Ebene 7
b)
Ebene 4
c)
Ebene 2
6.
Was ist die der SID?
a)
Die eindeutige Adresse eines Steuergerätes
b)
Eine eindeutige Kennziffer, die den Zweck einer Diagnoseanfrage
beschreibt.
c)
Eine eindeutige Kennziffer, die einen Parameter eines Diagnosedienstes
beschreibt.
7.
Zu welchem Diagnoseprotokoll gehören die SIDs 0x01 bis 0x0F?
a)
OBD
b)
KWP 2000
c)
UDS
8.
Wie bezeichnet man das Kommunikationsmodell zwischen
Diagnosetester und Steuergerät?
a)
Frage- und Antwortspiel
b)
Client-Server-Modell
c)
Request-Response-Verfahren
9.
Wer sendet seine OBD-Diagnosebotschaften mit funktionaler
Adressierung?
a)
Der Diagnosetester an ein einzelnes Steuergerät
b)
Der Diagnosetester an eine Gruppe von Steuergeräten
c)
Ein einzelnes Steuergerät an den Diagnosetester
d)
Eine Gruppe von Steuergeräten bei den Antworten an den
Diagnosetester
10.
Woher weiß der Diagnosetester, von welchem Steuergerät er
eine bestimmte Response erhalten hat?
a)
Jede Response enthält als erstes Datenbyte die Adresse des
antwortenden Steuergerätes
b)
Jedes Steuergerät muss dem Diagnosetester die Response auf einer
anderen CAN ID senden
c)
Der Diagnosetester kann das überhaupt nicht feststellen
Woher weiß der Diagnosetester bei funktionaler Adressierung,
dass alle Steuergeräte geantwortet haben?
a)
Der Diagnosetester weiß immer, wie viele Steuergeräte im Fahrzeug
verbaut sind. Da grundsätzlich jedes Steuergerät positiv oder negativ
antwortet, muss der Diagnosetester die Antworten nur mitzählen.
b)
Das ist egal. Der Diagnosetester nimmt ohnehin immer nur die
allererste Antwort zur Kenntnis.
c)
Der Diagnosetester wartet nach dem Request immer für eine
vordefinierte Zeit (Timeout) auf Antworten.
Wozu dient das Seed & Key Verfahren?
a)
Zum Zurücksetzen des Kilometerzählers.
b)
Damit wird die Nummer des Werkstattmitarbeiters im Steuergerät
gespeichert, um spätere Reklamationen einfacher zuordnen zu können.
c)
Zum Freischalten kritischer Diagnosedienste.
Was muss der Fahrzeughersteller beim Seed & Key Verfahren
unbedingt geheim halten?
a)
Den Algorithmus zur Berechnung des Keys aus dem Seed
b)
Den Initialisierungswert (Seed) für die Berechnung des Schlüssels
c)
Den Schlüssel (Key)
Welche Diagnosesitzung ist nach dem Einschalten eines
Steuergerätes aktiv?
a)
Die Programming-Session
b)
Die Extended-Diagnostic-Session
c)
Die Default-Session
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1.
27
Inhalt
28
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Geschichte On Board Diagnose
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
29
 1970 US-Kongress beschließt Clean Air Act – Gründung der Environmental
Protection Agency (EPA)
 1982 GM implementiert erste interne OBD: ALCL (Assembly Line
Communications Link) später umbenannt in ALDL (Assembly Line Diagnostics
Link)
 1987 Einführung der OBD für Neufahrzeuge ab Bj. 1988 durch kalifornische
Umweltbehörde (CARB und EPA) zur Abgasüberwachung …
OBD I
1996/97
2008
CAN
OBD II
1992/93: Euro1 1996/97: Euro2
ISO 15765-4
2000/01: Euro3
Für Ottomotoren
2005/06: Euro4
EOBD
Diagnosesysteme im Automobil
Typprüfung Neufahrzeuge ab 2000
Serienfahrzeuge ab 2001
Für Dieselmotoren (PKW)
Typprüfung Neufahrzeuge (z.B. VW Touran) ab 2003
Serienfahrzeuge ab 2004
EOBD
2010
HDOBD
2009/11: Euro5 2014/15: Euro6
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1988
Allgemeines zur On Board Diagnose
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
30
Aufgaben:
OBD-Diagnosestecker:
 Ständige Überwachung aller
abgasrelevanten Komponenten
 ISO 15031-3 oder SAE J1962
 Meldung von abgasrelevanten Fehlern
an den Fahrer
CAN-L
L-Line
UBAT
 Bereitstellung einer
Diagnoseschnittstelle
J1850 -
Diagnosesysteme im Automobil
 Speichern von Fehlern
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Schutz von Komponenten, z.B.
Katalysator bei Fehlzündungen
CAN-H
K-Line
 1 m Umkreis vom Fahrer – oft unter
Amaturenbrett oder Aschebecher
GND
 Gewährleistung niedriger
Abgasemissionen
J1850 +
 Erfassen Emissionserhöhungen
während der Laufzeit
 Praktisch sind nur die mechanischen
Abmessungen sowie die Pins für GND
und UBAT verlässlich
Allgemeines zur Diagnoseschnittselle
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
31
 Beschrieben in ISO 15031-5 / SAE J1979 (OBD) und ISO 15765-4 (CAN für OBD)
 Vorgaben für das Transportprotokoll ISO TP und das CAN Bussystem
• CAN-Bitraten 250 kbit/s oder 500 kbit/s, 11bit oder 29bit CAN IDs, müssen vom Tester automatisch
erkannt werden, Tester darf beim Empfang effektiv keine Flußsteuerung erzwingen (darf nur ISO TP
Flow Control Frame mit BS = 0, STmin = 0 senden  Block: 30 00 00)
• Diagnose-Requests verwenden nur die funktionale Adresse 0x7DF
• Steuergeräte, die eine OBD-Anfrage nicht unterstützen, sollen nicht antworten (keine negative
Response, um Bussystem zu entlasten), d.h. Tester muss immer Timeout abwarten
Funktionsgruppe
Meß- und Fahrzeugdaten
Diagnosesysteme im Automobil
Fehlerspeicher
Test von abgasrelevanten
Komponenten
SID
Beschreibung
0x01
Abfrage von Messdaten
0x09
Abfrage von Fahrzeuginformationen wie Fahrgestellnummer
0x03
Fehlercodes lesen (DTC Diagnostic Trouble Codes)
0x02
Umgebungsbedingungen der Fehler lesen (Freeze Frames)
0x07
OBD-Fehlercodes für „vorläufig defekte“ Fehler lesen
0x04
Fehlerspeicher löschen (DTCs, Freeze Frames und MIL)
0x06
Selbsttest-Ergebnisse für vollständige Testzyklen lesen
0x07
Selbsttest-Ergebnisse aus dem letzten Fahrzyklus lesen
0x08
Komponententest aktivieren
Copyright © 4/7/2011 emotive GmbH - All rights reserved
 Zulässige Diagnose-Requests, sgn. „Test Modes“:
Beispiel: Messdatenlesen
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
SID = 0x01 (Abfrage von Messdaten); Auswahl des Messwerts erfolgt über PID:
PID
Bedeutung
Datengröße
Wertebereich [min … max]
0x01
Anzahl Fehler im Fehlerspeicher u.a.
8 bit
siehe unten
0x04
Motorlast
8 bit
0 … 100 %
0x05
Kühlwassertemperatur
8 bit
-40 … +215 °C
0x0C
Motordrehzahl
16 bit
0 … 16383,75 1/min
…
…
…
…

Welche PIDs der jeweilige SID unterstützt, kann mit dem PID 0x00 abgefragt werden (Antwort: Bitfeld)

Request zum Lesen der Kühlwassertemperatur (PID = 0x05) vom Tester zum Steuergerät
CAN-ID Funktionale
OBD-Adresse
7DF
02
Diagnosesysteme im Automobil
ISOTP PCI-Byte
SingleFrame mit 2 Datenbytes

01
05
Bei Bedarf kann auch eine Liste von
PIDs mit einem Request abgefragt werden.
OBD SID OBD PID
Kühlwassertemperatur
Response des Motor-Steuergerätes zum Tester
CAN-ID Physikalische
Tester-Adresse
7E8
03
ISOTP PCI-Byte
SingleFrame mit 3 Datenbytes
41
05
66
OBD SID
OBD PID
+ 0x40
Copyright © 4/7/2011 emotive GmbH - All rights reserved

32
Auszug aus ISO 15031-5
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
33
Request für Diagnoseservice
SID = 0x01 „Messwerte lesen“
PID = 0x02 “Kühlwassertemeratur (ECT)“
Definition und Skalierung
PID 0x05 “Engine Coolant Temperature”
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Response
Auszug aus ISO 15031-5
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
34
Request für Diagnoseservice
SID = 0x09 „RequestVehicleInformation“
PID = 0x02 “VIN lesen“
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Response
Beispiel: Lesen Fahrgestellnummer
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Request zum Lesen der Vehicle Identification Number vom Tester zum Steuergerät (SID: 0x09, PID: 0x02)
CAN-ID Funktionale
OBD-Adresse
7DF
02
ISOTP PCI-Byte
SingleFrame mit 2 Datenbytes
•
09
02
OBD SID
OBD PID
VIN
Response des Motor-Steuergerätes zum Tester
CAN-ID Physikalische
Tester-Adresse
7E8
10
14
7E8
21
49
5A
5A
22
ISOTP PCI-Byte
ConsecutiveFrame mit Sequenznummer 2
02
01
5A
38
57
41
55
Anzahl der gespeicherten VINs
45
37
37
…
32
ASCII-Zeichen „ZZZ8E77“
ISOTP PCI-Byte
ConsecutiveFrame mit Sequenznummer 1
7E8
ASCII-Zeichen „WAU“
OBD SID
+ 0x40 OBD PID
ISOTP PCI-Byte
FirstFrame mit 0x14 Nutzdatenbytes
Diagnosesysteme im Automobil
VIN = Anzahl der Datensätze + 17 ASCII Zeichen
41
30
…
…
…
ASCII-Zeichen „A0 … 2“
Copyright © 4/7/2011 emotive GmbH - All rights reserved
•
35
Beispiel: Fehlerspeicher
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
36
1. Abfrage, ob und wie viele Fehler gespeichert sind
SID
PID
SID
PID
Data1
Data2
Data3
Data4
01
01
41
01
83
33
FF
63
Data1:
Bit 0 … 6 = Anzahl der Fehler, Bit 7 = MIL On
Data2 … 4: Informationen über aktuelle Überwachungen – Monitoring
(Fehlzündungen, Einspritzanlage, Katalysator etc.)
2. Abfrage der OBD-Fehlercodes – Diagnostic Trouble Codes
SID
SID
03
43
DTC1 (High, Low)
01
DTC2 (High, Low)
19
XX
DTC3 (High, Low)
XX
XX
XX
SID
PID
FRNO
SID
PID
FRNO
Data1
Data2
Data3
02
02
XX
42
02
XX
XX
XX
…
Diagnosesysteme im Automobil
FRNO: Messdaten, Angabe über PIDs wie bei SID 0x01
Data1 … n: PID + Messwert, Skalierung wie bei SID 0x01
SID
SID
04
44
Request (Tester)
Response (ECU)
Copyright © 4/7/2011 emotive GmbH - All rights reserved
3. Lesen der gespeicherten Messdaten (Freeze Frames) zu einem gespeicherten Fehler
Fehlerkodes nach ISO 15031-6
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Darstellung im Steuergerät
Byte 1
Byte 2
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0
37
Beispiel:
DTC 0x0119  P 0 1 1 9
Buchstabe
Ziffer 1
Ziffer 2
Ziffer 3
Ziffer 4
Antriebsstrang, DTC nach
ISO/SAE, Einspritzanlage,
Wassertemperatursensor,
Wackelkontakt
Darstellung im Tester
Bit L
Diagnosesysteme im Automobil
00
01
10
11
P
C
B
U
2. Ziffer
P = Powertrain (Antrieb)
1,2 = Einspritzanlage
C = Chassis (Fahrwerk)
3 = Zündung
B = Body (Karosserie)
4 = Abgas/Luft-system
U = Network (Bussystem)
usw.
1. Ziffer
0 = DTC nach ISO 15031-6
1,2 = DTC des OEM
3. und 4. Ziffer
Komponente und Fehlerart
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Buchstabe
Testfragen – OBD
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
2.
3.
Diagnosesysteme im Automobil
4.
Welches Bussystem schreiben amerikanische Zulassungs- 5.
behörden für neue PKW‘s seit 2008 für die OBD-Diagnose
vor?
a)
K-Line
b)
SAE J1850
c)
CAN
d)
LIN
e)
FlexRay
f)
MOST
6.
Was heißt MIL?
a)
Mobile Internet Link
b)
Malfunction Indicator Lamp
c)
Modular Integration Layer
Welche Diagnosedienste werden von OBD angeboten?
a)
Neuprogrammierung von Steuergeräten zur Anpassung an neue
Abgasnormen
b)
Nachjustieren der Leerlaufdrehzahl, der Abgasrückführung usw.
c)
Abfrage von Meßdaten, Fahrgestellnummern usw.
Mit einem CAN-Monitor beobachten Sie die folgende
Diagnosebotschaft: „41 04 80“ (alle Werte hexadezimal,
ohne CAN ID und ISOTP PCI). Um was handelt es sich?
7.
Mit einem CAN-Monitor beobachten Sie die folgende
Diagnosebotschaft: „41 04 80“ (alle Werte hexadezimal,
ohne CAN ID und ISOTP PCI). Zu welchem Diagnosedienst
gehört diese Botschaft?
a)
Lesen von Messwerten
b)
Lesen der Fahrgestellnummer
c)
Lesen von Fehlercodes
d)
Löschen des Fehlerspeichers
Mit einem CAN-Monitor beobachten Sie die folgende
Diagnosebotschaft: „41 04 80“ (alle Werte hexadezimal,
ohne CAN ID und ISOTP PCI). Welcher dezimale Wert wird
hier geliefert?
a)
80°C Kühlwassertemperatur
b)
128 °C Kühlwassertemperatur
c)
50 % Motorleistung
d)
80 PS Motorleistung
e)
128 PS Motorleistung
f)
800 1/min Motordrehzahl
g)
1280 1/min Motordrehzahl
Die aktuelle Motordrehzahl sei 900 1/min. Welchen
hexadezimalen Wert muss das Steuergerät zurücksenden?
a)
0x0384
a)
Diagnose Request
b)
0x0E10
b)
Diagnose Response
c)
0x10E0
d)
0x8403
e)
keinen der obigen Werte
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1.
38
Inhalt
39
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
UDS nach ISO 14229 und ISO 15765-3
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
40
 UDS = Unified Diagnostic Services (für die allgemeine Fahrzeugdiagnose)
 Im Gegensatz zu OBD
• keine Vorgaben zur Wahl der CAN Identifier und Baudrate
• nur SID und LEV (= PID) festgelegt, Daten durch OEM frei definierbar (z.B. Fehlercodes)
• Funktionen, z.B. Zugriff auf Fehlerspeicher, teilweise äquivalent zu OBD, aber andere SID und andere
Parameter
 Botschaftsaufbau wie bei OBD
Diagnosesysteme im Automobil
 Diagnosedienste (Liste siehe nächste Seite)
• Zugriff auf den Fehlerspeicher und Stellgliedansteuerung ähnlich OBD, aber Aufbau des
Fehlerspeichers, Fehlercodes usw. nicht standardisiert
• Lesen und Schreiben von Messwerten und anderen Steuergerätewerten über vordefinierte PIDs, bei
UDS als Identifier bezeichnet, z. T. durch UDS standardisiert, z.B. für die Vehicle Identification Number
(VIN), in der Mehrzahl aber OEM-spezifisch
• Alternativ Lesen und Schreiben direkt über Speicheradressen
 Vorteil: Zugriff auf beliebige statt nur vordefinierte Werte
 Nachteil gegenüber Identifiern: Adressen in der Regel abhängig von der ECU-Softwareversion
Copyright © 4/7/2011 emotive GmbH - All rights reserved
• Auswahl des Dienstes durch SID (1. Byte)
• Auswahl von Unterfunktionen durch das Subfunction Level Byte LEVBit 6…0
(entspricht dem PID bei OBD, LEV wird nicht bei allen UDS Diensten verwendet)
• Optional Verzicht auf Positive Response Botschaften: Wenn im Request LEVBit 7 = 1 gesetzt, verzichtet
der Tester auf eine positive Antwort des Steuergeräts – Reduzierung der Buslast (z.B. beim Dienst
Tester Present). Negative Antworten werden immer gesendet.
Diagnosedienste* UDS und KWP 2000
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
UDS KWP
SID
Default
Session
UDS
Bezeichnung
0x10
X
DiagnosticSessionControl
StopDiagnosticSession
X
TesterPresent
0x27
0x11
Diagnostic and
Communication
Management
SecurityAccess
X
X
StartComm (Verbindungsaufbau)
0x82
X
StopComm (Verbindungsabbau)
CommunicationControl
0x29
EnableNormalMessageTransm.
ControlDTCSetting
0x83
AccessTimingParameters
0x84
0x86
LinkControl
(X)
0x22
0x1A
Diagnosesysteme im Automobil
0x23
ResponseOnEventService
ReadDataByLocalIdentifier
(X)
ReadDataByIdentifier
X
(X)
ReadMemoryByAddress
WriteDataByLocalIdentifier
0x2E
(X)
0x3D
(X)
0x26
0x2C
ReadDataByCommonIdentifier
ReadECUIdentification
0x3B
0x2A
Steuerung der
Buskommunikation
NetworkConfiguration
0x21
Data
Transmission
DisableNormalMessageTransm.
0x85
0x87
Steuerung der
Diagnosesitzung
ECUReset
0x81
0x28
Beschreibung
StartDiagnosticSession
0x20
0x3E
KWP 2000
WriteDataByIdentifier
WriteMemoryByAddress
ReadDataByPeriodicIdentifier
X
WriteDataByCommonIdentifier
Lesen und Schreiben von
Messwerten und
Steuergerätedaten
SetDataRates
DynamicallyDefineDataIdentifier
*Auszug
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Funktionsgruppe
41
Diagnosedienste* UDS und KWP 2000
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Stored Data
Transmission
Input/Output Control
SID
UDS KWP
Default
Session
0x14
X
0x19
Diagnosesysteme im Automobil
Upload /
Download
KWP 2000
Beschreibung
ClearDiagnosticInformation
0x13
X
0x12
X
ReadFreezeFrameData
0x18
X
ReadDTCsByStatus
0x17
X
ReadStatusofDTCs
ReadDTCInformation
ReadDiagnosticTroubleCode
0x30
Lesen und Schreiben des
Fehlerspeichers
InputOutputControlByLocalId
0x2F
0x31
Remote Activation of
Routine
Bezeichnung
UDS
(X)
InputOutputControlByIdentifier
InputOutputControlByCommonId
RoutineControl
StartRoutineByLocalIdentifier
0x32
(X)
StopRoutineByLocalIdentifier
0x38
(X)
StartRoutineByAddress
0x39
(X)
StopRoutineByAddress
0x33
(X)
RequestRoutineResultsByLocalId
0x3A
(X)
RequestRoutineResultsByAddress
0x34
RequestDownload
0x35
RequestUpload
0x36
TransferData
0x37
RequestTransferExit
Ausführen von Routinen in der
ECU, z.B. Stellgliedtests oder
Programmierroutinen
Lesen und Schreiben größerer
Datenblöcke
Haupteinsatzgebiet:
Flash-Programmierung
*Auszug
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Funktionsgruppe
42
Sonstiges
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
43
Kommunikationsparameter
 Beim Umschalten in eine erweiterte Diagnose-Session oder danach können Parameter des
Transportprotokolls bzw. des Bussystems umgeschaltet werden, z.B.:
• Baudrate
• Timeout-Werte (über AccessTimingParameters)
 Um die verfügbare Busbandbreite bei der Flash-Programmierung zu vergrößern, schaltet man in den
anderen Steuergeräten meist mit CommunicationControl die NormalCommunication ab, d.h. sperrt das
Senden der regulären Busbotschaften.
 Bei Stellgliedtests oder bei der Flash-Programmierung wird in der Regel mit ControlDTCSetting die
Fehlerspeicherung deaktiviert
Spezielle Möglichkeiten
 Periodisches Senden von Steuergerätewerten nach einmaligem Request ReadDataByPeriodicIdentifier
(statt Polling wie bei OBD bzw. KWP 2000). Die Sendefrequenz kann in drei vom Gerätehersteller
festgelegten Stufen gewählt werden. Für die periodischen Botschaften sind optionale Formate ohne PCI
und SID zugelassen, um den Bus zu entlasten.
Diagnosesysteme im Automobil
 Ereignisgesteuertes Senden von Steuergerätewerten nach einmaligem Request ResponseOnEventService.
Ereignisse sind z.B. Zeitgeberinterrupts, Fehlerspeichereinträge (Vorbild SAE J1939), Werteänderung oder
Schwellwertüberschreitung.
Praktische Umsetzung
 Komplexer Standard, z.T. aufwendige Dienste (ResponseOnEvent, ReadScalingData) und Redundan-zen
(WriteMemoryByAddress, TransferData)  herstellerspezifische Untermengen
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Anwendung vorzugsweise bei der Datenaufzeichnung an Prüfständen bzw. während der Applikation
Beispiel: Flashprogrammierung I
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
44
Start
2
3
4
5
6
Diagnosesysteme im Automobil
7
8
ReadDataByIdentifier (22)
Auslesen der Steuergeräteidentifikation, um die Hard- und
Softwarekompatibilität zu prüfen
DiagnosticSessionControl – extendedSession (10 03)
Umschalten in eine erweiterte Diagnosesitzung, da
nachfolgende Dienste in Default Session unzulässig
Routine Control – Check Progr. Precond. (31 01 02 03)
Vorbedingungen prüfen, z.B. Motor aus
Control DTC Setting – DTC Setting = Off (85 02)
Comm. Control – Disable Non-Diag.Comm. (28 01 01)
Diagnostic Session Control – Prog. Session (10 02)
Security Access
Request Seed (27 11) - Transfer Key (27 12)
Write Data By Identifier – Write Fingerprint (2E)
Abschalten der Fehlerspeicherung
Abschalten der normalen Gerätekommunikation
Umschalten in die eigentliche Programmiersitzung
Login Prozedur: Seed anfordern – Key an ECU senden
Kennung des Testers schreiben, damit Programmiervorgang
dokumentiert ist
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1
Beispiel: Flashprogrammierung II
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
10
Request Download (34)
11
Transfer Data (36)
12
13
14
15
17
Diagnosesysteme im Automobil
Routine Control – Erase Memory (31 01 FF 00)
18
Request Transfer Exit (37)
Routine Control – Check Memory (31 01 02 02 )
Routine Control – Check Reprog. Dependencies
ECU Reset (11 01)
Comm. Control – Enable Non-Diag.Comm. (28 00 00)
Control DTC Setting – DTC Setting = On (85 01)
Diagnostic Session Control – Default Session (10 01)
Ende
Flash-Speicher löschen
Steuergerät für Download vorbereiten
Innerhalb einer Schleife: Blockweise Übertragen der
Datenblöcke zum Steuergerät
Download abschließen – Response Pending (Oft wird erst
die eigentliche Flashprogrammierung durchgeführt)
Programmierung verifizieren und Konsistenz sicherstellen
Neustart des Steuergerätes
Wiedereinschalten der normalen Kommunikation
Fehlerspeicherung wieder einschalten
Ende der Programmiersitzung  Default Session
Copyright © 4/7/2011 emotive GmbH - All rights reserved
9
45
Inhalt
46
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
Unterschiede zu UDS
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
47
 Die direkte Adaption des K-Line-Protokolls KWP 2000 auf CAN (ISOTP)
 Wurde nie offiziell standardisiert, war aber in einer Vorabversion ISO/DIS
15765-3 publiziert und wurde (und wird noch) von vielen Herstellern
eingesetzt
• Expliziter Verbindungsauf- und -abbau (bei K-Line-Systemen, Dienste SID =
0x81, 0x82)
• Kurze und lange Identifier für Steuergerätedaten und -funktionen (Local
Identifier, Common Identifier)
• Viele KWP 2000-Dienste wurden bei UDS zu Unterfunktionen eines Dienstes
zusammengefasst, so dass die Anzahl der SIDs geringer wurde
• Parameter der meisten Dienste geändert oder (etwas) genauer spezifiziert,
insbesondere das Handling der Diagnosesitzungen
• Ereignisgesteuerte Kommunikation nicht möglich, periodische
Datenübertragung nur eingeschränkt
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
 Unterschiede zwischen UDS und KWP 2000:
Testfragen – UDS & KWP 2000
Einleitung Transportprotokolle CAN ISOTP FlexRay AUTOSAR 3.0l Diagnoseprotokolle OBD on CAN UDS KWP 2000 on CAN
In welchem Standard wird UDS definiert?
a)
b)
c)
d)
e)
f)
2.
ISO 9141
ISO 11898
ISO 14229 / ISO 15765
ISO 14230
SAE J1708
SAE J1839
4.
a) 8 bit
b) 16 bit
c) 32 bit
5.
Was ist bei OBD und UDS gleich?
a) Das Request-Response Kommunikationskonzept
und der Botschaftsaufbau mit Service und
Parameter IDs
b) Die Werte der SIDs und PIDs
c) Die Dienste zum Lesen und Schreiben von
Steuergerätedaten
6.
Diagnosesysteme im Automobil
3.
Welche UDS-Funktionsgruppe dient zum
Lesen und Schreiben von Steuergerätedaten?
a)
b)
c)
d)
Diagnostic and Communication Management
Data Transmission
Stored Data Transmission
Upload/Download
Wie groß sind die Identifier für den Zugriff
auf Steuergerätewerte bei UDS?
Mit welchem Dienst kann man jede beliebige
Steuergerätespeicherzelle lesen
(vorausgesetzt, der Security Access war
erfolgreich)?
a)
b)
c)
d)
Read Data by Identifier
Read Memory by Address
Request Download
Read DTC Information
Mit welchem UDS-Diagnosedienst kann man
das Löschen des Flash-Speichers auslösen?
a)
b)
c)
d)
Write Memory by Address
Write Data by Identifier
Input/Output Control
Routine Control
Copyright © 4/7/2011 emotive GmbH - All rights reserved
1.
48
Vielen Dank für Ihre Aufmerksamkeit
49
Sprechen Sie
mit uns!
www.emotive.de
Copyright © 4/7/2011 emotive GmbH - All rights reserved
Diagnosesysteme im Automobil
Wir helfen Ihnen gern.