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.