KWP2000-protokollen har blitt en de facto standard i bilindustrien diagnostiske programmer. Det er standardisert som ISO 14230-3. KWP2000 beskriver gjennomføringen av ulike diagnostiske tjenester du kan accethrough protokollen. Du kan kjøre KWP2000 på flere transport lag som K-line (serielt) eller kan.
Transportprotokoll
Som KWP2000 bruker meldinger av variabel byte lengder, er en transportprotokoll nødvendig på lag med bare en veldefinert (kort) meldingslengde, for eksempel kan. Transportprotokoll deler en lang KWP2000-melding i biter som kan overføres over nettverket, og setter sammen igjen de bitene for å gjenopprette den opprinnelige meldingen.
KWP2000 kjører på kan på ulike meldingstransportprotokoller for eksempel ISO TP (ISO 15765-2), TP 1.6, TP 2. 0 (Volkswagen), og SAE J1939-21. For KWP2000 støtter Automotive diagnostiske kommandoen Set bare ISO TP (standardisert i ISO 15765-2) og produsent-spesifikke VW TP 2.0-transportprotokollene.
Diagnostiske tjenester
De diagnostiske tjenestene som er tilgjengelige i KWP2000 er gruppert i funksjonelle enheter og identifiseres av en kode med én byte (ServiceId). Standarden definerer ikke alle koder; standarden refererer til andre SAE eller ISO standarder for noen koder, og noen er forbeholdt produsent-spesifikke utvidelser. Automotive diagnostiske kommandoen Set støtter følgende tjenester:
• Diagnostiske ledelse
• Dataoverføring
• Lagret dataoverføring (diagnosekoder problemer)
• Inn-/ utgang kontroll
• Fjernaktivering av rutine
Sende/dataoverføre og utvidede tjenester er ikke del av Automotive diagnostiske kommandoen Set.
Diagnostisk Service-Format
Diagnostiske tjenester har et felles meldingsformat. Hver tjeneste definerer en Request-melding, Positive svarmelding og Negative svarmelding. Request-melding har ServiceId som første byte, pluss ekstra service-definert parametere. Det Positive budskapet som svar har et ekko av ServiceId med bit 6 satt som første byte, pluss service-definert svar-parametere.
Negative svarmeldingen er vanligvis en tre-byte-melding: det har Negative svar ServiceId som første byte, et ekko av den opprinnelige ServiceId som andre byte, og en ResponseCode som tredje byte. Det eneste unntaket til dette formatet er negativt svar på en EscapeCode tjeneste; Her er tredje byte er et ekko av den brukerdefinerte koden, og den fjerde byten er ResponseCode. KWP2000-standarden definerer delvis ResponseCodes, men det er plass igjen for produsenten-spesifikke utvidelser. For noen av ResponseCodes definerer KWP2000 en prosedyre for feilbehandling. Fordi både positive og negative svar har et ekko av den forespurte tjenesten, kan du alltid tilordne Svar å deres tilsvarende forespørsel.
Koble/koble fra
KWP2000 forventer en diagnoseøkten å bli startet med StartDiagnosticSession og ble avsluttet med StopDiagnosticSession. Men har StartDiagnosticSession en DiagnosticMode-parameter som bestemmer hvilken diagnoseøkten. Avhengig av denne typen, kan ECU kan eller ikke støtte andre diagnostiske tjenester, eller opererer i en begrenset modus der ECU funksjoner ikke er tilgjengelig. DiagnosticMode parameterverdiene er produsenten bestemt og ikke definert i standarden. For en diagnostisk session å være aktiv, må det kjøres TesterPresent tjenesten med jevne mellomrom hvis ingen andre tjenesten utføres. Hvis tjenesten for TesterPresent mangler for en viss tid, diagnoseøkten er avsluttet, og ECU returnerer til normal drift modus.
GetSeed/låse opp
En GetSeed/Unlock mekanisme kan beskytte noen diagnostiske tjenester. Men er tjenestene overlatt til produsenten og ikke definert av standarden.Du kan utføre GetSeed/låse opp mekanismen gjennom tjenesten SecurityAccess. Dette definerer flere nivåer av sikkerhet, men produsenten tilordner disse nivåene til visse tjenester.
Lese/skrive-minne
Bruke lese/WriteMemoryByAddress-tjenestene for å laste opp/laste ned data til visse minneadresser på en ECU. Adressen er en tre-byte antallet i KWP2000 og en fem-byte antallet (fire byte-adresse og én byte forlengelsen) i kalibreringsprotokoller. Sende/dataoverføre funksjonell enhet tjenester er svært produsent bestemt og ikke godt definert i standarden, så de ikke er en god måte å gi en generell opplasting/nedlasting-mekanisme.
Målinger
Bruke ReadDataByLocal/CommonIdentifier-tjenestene for å få tilgang til ECU data på en måte som ligner på en DAQ liste. En lokal/CommonIdentifier beskriver en liste over ECU mengder som deretter overføres fra ECU til testeren. Overføringen kan være enten enkeltverdi eller periodiske, med en langsom, middels eller rask overføringshastighet. Datatransport ratene er produsenten bestemte; Du kan bruke tjenesten SetDataRates for å sette dem, men denne innstillingen er produsenten bestemte. Automotive diagnostiske kommandoen Set støtter ett-punkts målinger.
Diagnostiske problemer med koder
En viktig diagnostisk funksjon er avlesning av diagnostiske problemer med koder (DTCer). KWP2000 definerer