49
Matjaž Cehner Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II Diplomsko delo Maribor, september 2012

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Embed Size (px)

Citation preview

Page 1: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Matjaž Cehner

Prikaz podatkov o delovanju avtomobila

z uporabo vmesnika OBD-II

Diplomsko delo

Maribor, september 2012

Page 2: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Diplomsko delo univerzitetnega strokovnega študijskega programa

Prikaz podatkov o delovanju avtomobila

z uporabo vmesnika OBD-II

Študent: Matjaž Cehner

Študijski program: UN ŠP - Računalništvo in informacijske tehnologije

Mentor: doc. dr. Boris Cigale

Lektor: mag. Zoran Pevec prof. slov.

Maribor, september 2012

Page 3: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

I

Page 4: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

II

ZAHVALA

Zahvaljujem se mentorju dr. Borisu Cigaletu

za pomoč in vodenje pri izdelavi

diplomskega dela.

Prav tako se zahvaljujem staršem, ki so mi

omogočili študij.

Page 5: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

III

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

Ključne besede: OBD, ELM 327, diagnostika avtomobila, ECU, nadzorna enota motorja,

branje napak.

UDK: 629.3:004.94(043.2)

POVZETEK

V diplomskem delu smo predstavili avtomobilski diagnostični sistem OBD-II in zgodovino

uporabe standarda OBD v avtomobilski industriji. V nadaljevanju je podrobno opisana naša

programska oprema za diagnostiko, spremljanje različnih senzorjev v motornem sklopu ter

branje in brisanje napak.

Program smo implementirali v programskem jeziku C#, s pomočjo razvojnega okolja

Microsoft Visual Studio 2010. Za komunikacijo z vozilom smo uporabili vmesnik ELM 327,

priključen na računalnik preko bluetootha ali USB serijskega vmesnika. Naša programska

oprema je prilagojena vozilom znamke Opel/Vauxhall in Alfa Romeo, vendar bi morala

delovati na večini v Evropi prodajanih vozil, mlajših od letnika 2001.

Page 6: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

IV

Displaying standard vehicle parameters using OBD-II interface

Key words: OBD, ELM 327, automotive diagnostic, ECU, engine control unit, reading fault

codes.

UDK: 629.3:004.94(043.2)

Abstract

The diploma thesis deals with the automotive diagnostic system OBD-II and the history of use

of the OBD standard in the automotive industry. The thesis thoroughly describes the

diagnostic software, the monitoring of various sensors in the engine compartment, the

reading and deleting of fault codes.

The program has been implemented in the programming language C#, with help of the

development environment Microsoft Visual Studio 2010. To communicate with the vehicle we

have used the interface ELM 327, which has been connected to the computer with the

Bluetooth or the USB serial interface. Our software is adapted to Opel/Vauxhall and Alfa

Romeo automobiles, but could be used for most automobiles sold in Europe that have been

manufactured after 2001.

Page 7: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

V

Kazalo

1 Uvod .................................................................................................................................... 1

2 Zgodovina ........................................................................................................................... 2

2.1 ALDL ............................................................................................................................... 2

2.2 OBD-I ............................................................................................................................... 2

2.3 OBD-II ............................................................................................................................. 2

3 Vmesnik OBD-II ................................................................................................................. 3

3.1 Priključek OBD-II ............................................................................................................ 3

3.2 Protokoli OBD-II .............................................................................................................. 5

3.3 Diagnostični podatki ........................................................................................................ 6

3.4 Branje in brisanje napak ................................................................................................... 9

3.5 Diagnostični sistemi ....................................................................................................... 11

3.6 ELM 327 ........................................................................................................................ 15

4 Implementacija aplikacije ................................................................................................. 16

4.1 Delovanje aplikacije ....................................................................................................... 17

4.2 Uporaba aplikacije .......................................................................................................... 24

4.3 Testiranje aplikacije ....................................................................................................... 30

5 Zaključek ........................................................................................................................... 33

6 Viri .................................................................................................................................... 34

7 Priloge ............................................................................................................................... 36

7.1 O študentu ...................................................................................................................... 36

Page 8: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

VI

Kazalo slik

Slika 3.1: Priključek OBD-II na vozilu Opel Corsa C ............................................................... 3

Slika 3.2: OBD-II priključek ...................................................................................................... 4

Slika 3.3: Ročni OBD-II skener ............................................................................................... 11

Slika 3.4: Računalnik z nameščeno diagnostično opremo ....................................................... 12

Slika 3.5: OBD-II zapisovalnik podatkov ................................................................................ 13

Slika 3.6: Vozniški pripomoček ............................................................................................... 14

Slika 3.7: ELM 327 vezje ......................................................................................................... 15

Slika 4.1: Uporabljen OBD-II kabel ........................................................................................ 16

Slika 4.2: Upravitelj naprav ..................................................................................................... 17

Slika 4.3: Zavihek, v katerem se povezujemo z vozilom ......................................................... 19

Slika 4.4: Algoritem pošiljanja ukazov .................................................................................... 20

Slika 4.5: Graf izrisan z uporabo Chart knjižnice .................................................................... 21

Slika 4.6: E-R diagram uporabljene baze ................................................................................. 22

Slika 4.7: Okno, ki nam izpiše podrobnosti o napaki ............................................................... 23

Slika 4.8: Zavihek, v katerem so povezujemo z vozilom ......................................................... 24

Slika 4.9: Zavihek, ki vsebuje ukazno okno ............................................................................. 25

Slika 4.10: Zavihek, v katerem izrisujemo grafe...................................................................... 26

Slika 4.11: Zavihek, v katerem beremo napake. Napak ni bilo najdenih ................................. 27

Slika 4.12: Zavihek, v katerem beremo napake. Najdene so tri napake................................... 27

Slika 4.13: Potrditev brisanja napak ......................................................................................... 28

Slika 4.14: Obvestilo o uspešnem brisanju napak .................................................................... 28

Slika 4.15: Zavihek, v katerem so prikazani podprti ukazi. Izpis je od vozila Opel Corsa C .. 29

Slika 4.16: Odklopljen senzor za pretok zraka in senzor odmične gredi ................................. 31

Page 9: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

VII

Kazalo tabel

Tabela 3.1: Opis in formule za izračun parametrov ................................................................... 7

Tabela 3.2: Preračun bitno zakodiranih podatkov ...................................................................... 8

Tabela 3.3: Pomen napak ......................................................................................................... 10

Page 10: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

VIII

Uporabljene kratice

ECU (Engine control unit) Nadzorna enota motorja

PID (Parameter ID) Identifikacijska številka parametra

OBD-II (On-board diagnostics) Sistem za diagnostiko in spremljanje

delovanja vozila

USB (Universal serial bus) Univerzalno serijsko vodilo

BLUETOOTH Standard za brezžično izmenjavo podatkov

na kratke razdalje

ABS Sistem proti blokiranju koles

ESP Sistem proti zdrsavanju avtomobila

ASR Sistem proti zdrsavanju pogonskih koles

SAE (The Society of Automotive Engineers) Združenje avtomobilskih inženirjev

ADLD(Assembly Line Diagnostic Link) Sistem za diagnostiko na delovnem traku

EOBD Evropski sistem za diagnostiko vozil

JOBD Japonski sistem za diagnostiko vozil

ADR Avstralski sistem za diagnostiko vozil

CRC (cyclic redundancy check) Ciklično preverjanje pravilnosti

VIN (Vehicle Identification Number) Identifikacijska številka vozila

CARB (California Air Resources Board) Kalifornijski odbor za ozračje

RS232 Računalniški serijski vmesnik

COM PORT Komunikacijska vrata

MAR Pozicija ključa v avtomobilu

FIFO (First in first out) Načelo, kdor prej pride prej melje

XML (Extensible Markup Language) Označevalni jezik

HTML (HyperText Markup Language) Hipertekstovni označevalni jezik

E-R diagram Entitetno relacijski diagram

Page 11: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

1

1 Uvod

Dandanes praktično vse novejše naprave krmilijo mikroračunalniki. V avtomobilski industriji

si v današnjem času sploh ne moremo več predstavljati delovanja avtomobila brez podpore

računalniških sistemov. V prvi vrsti je, zaradi razvoja tehnologije, težnje k boljšim

izkoristkom energije in varovanju okolja, delovanje motornega sklopa avtomobila postalo

tako precizno, da ga enostavno ni mogoče več krmiliti samo s pomočjo mehanskih sistemov.

Zato je na pomoč morala vskočiti elektronika. Danes pa se to le še stopnjuje. Računalniki

krmilijo vse: od motornega sklopa, varnostnih sistemov (ABS, ASR, ESP, zračne blazine …),

sistemov za pomoč vozniku ( navigacija, parkirni senzorji, brisalci, luči, tempomat …) pa do

avtoradiev, ki so postali že pravi multimedijski sistemi, kakršne imamo v dnevnih sobah.

Leta 1988 je SAE predlagala standardizacijo priključka in signalov za diagnozo napak, ki se

pojavljajo v vozilih. Standard se je poimenoval OBD (On-Board Diagnostic), različica ki jo

uporabljajo današnja vozila pa OBD-II. OBD-II nam omogoča, da se s pomočjo

standardiziranega priključka s prenosno napravo (računalnik, telefon, namenski tester …)

povežemo z ECU.

V tej diplomski nalogi bomo na kratko prestavili zgodovino OBD sistemov od začetka

njihovega razvoja leta 1969 naprej. Nato bomo opisali vezje ELM 327, ki nam služi kot

vmesnik med testerjem (npr. računalnik) in OBD napravo v avtomobilu. Na koncu sledi

prestavitev aplikacije, ki smo jo razvili. Aplikacija nam omogoča diagnostiko avtomobila,

spremljanje podprtih senzorjev s pomočjo grafov, ter branje in brisanje napak, ki jih je

zaznala ECU enota.

Page 12: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

2

2 Zgodovina

2.1 ALDL

Diagnostične sisteme je v avtomobilizem prvi uvedel General Motors leta 1980. Protokol se je

imenoval ALDL in je bil namenjen testiranju motornega sklopa avtomobila v času izdelave

vozila. Kljub temu da sistem ni bil mišljen za uporabo izven tovarne, je bilo možno dve nožici

na priključku povezati in lučka za motor je utripnila v skladu s kodo napake. [1]

ADDL velja za predhodnika OBD standarda. V desetih letih uporabe se je zvrstilo nekaj

različnih verzij protokola, ampak v glavnem je šlo le za manjše spremembe priključka in za

zviševanja hitrosti prenosa.

2.2 OBD-I

Leta 1991 je Kalifornija sprejela zakon, da morajo imeti vsa novo prodana vozila osnovne

diagnostične možnosti predvsem za test emisij. Mišljeno je bilo, da bi se emisije letno

pregledovale, in tistih vozil, ki bi presegla zakonsko omejeno vrednost, ne bi mogli

registrirati. Posledično bi kupci kupovali novejše avtomobile z manjšim izpustom škodljivih

delcev. OBD-I je bil relativno neuspešen, predvsem zaradi nestandardiziranih priključkov in

signalov, kar je pomenilo velike težave pri letnih diagnostičnih pregledih. [1]

2.3 OBD-II

OBD-II je bil razvit leta 1994 predvsem zaradi težav z nestandardnim OBD-I. Pri načrtovanju

vmesnika so v veliki meri upoštevali predloge SAE, ki je že leta 1988 predlagala

standardizacijo priključkov in diagnostičnih signalov. OBD-II je od leta 1996 obvezen za vsa

novo prodana vozila v Združenih državah Amerike. V Evropski uniji je evropska različica

OBD-II standarda imenovana EOBD obvezna za novo prodana bencinska vozila od leta 2001,

od leta 2004 pa tudi za dizelska. [1]

OBD-II standard natančno določa priključek, električne signale podprtih protokolov, zgradbo

sporočil, kode za nadzor senzorjev in enačbe, ki nam pomagajo iz podatkov izluščiti

razumljive rezultate. Ena izmed nožic na priključku služi napajanju testerja, zato le-ta ne

potrebuje lastnega vira energije. [1]

Poznamo še evropski EOBD (European OBD), japonski JOBD (Japanes OBD) in avstralski

ADR (Australian Design Rule), ki pa so v bistvu le regijske različice OBD-II vmesnika.

Page 13: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

3

3 Vmesnik OBD-II

Čeprav je vgradnjo OBD sistemov v vozila vzpodbudila želja po omejitvi izpustov emisij in

čistejšem okolju, jih danes uporabljamo predvsem za odkrivanje napak na avtomobilih. Zaradi

standardiziranega vmesnika, lahko strokovnjaki z eno napravo (ročnim skenerjem ali

računalnikom z namensko programsko opremo) preberejo napake na praktično vsakem

novejšem avtomobilu.

Uporabljajo ga tudi avtomobilski navdušenci, za spremljanje in shranjevanje podatkov o

delovanju motorja, ki jih prikazovalniki na armaturni plošči ne zajemajo. Z analizo shranjenih

podatkov je nato mogoče celo spremeniti parametre, ki vplivajo na delovanje motorja in

doseči boljše izkoristke, večjo moč, manjšo porabo.

3.1 Priključek OBD-II

OBD-II priključek na vozilu je ženska 12-pinska (dve vrsti po osem pinov) J1962 vtičnica. Za

razliko od ODB-I vtičnice, ki je bila pogosto pod pokrovom motorja, se mora nahajati 0,61m

(2 čevlja) od volanskega obroča – torej v potniškem prostoru. V enem izmed naših testnih

vozil Opel Corsi C, se vtičnica nahaja med radiem in pepelnikom. [1]

Slika 3.1: Priključek OBD-II na vozilu Opel Corsa C

Page 14: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

4

Standard SAE J1962 narekuje naslednjo zaporedje nožic na priključku:

Slika 3.2: OBD-II priključek

1 Neuporabljena oz. po presoji proizvajalca (GM: J2411 GMLAN/SWC).

2 Napajanje za SAE-J1850 PWM in SAE-1850 VPM.

3 Neuporabljena oz. po presoji proizvajalca (Chrysler CCD + vodilo).

4 Ozemljitev šasije.

5 Ozemljitev signala.

6 CAN high (ISO 15765-4 in SAE-J2284).

7 ISO 9141-2 in ISO 14230-4 K linija.

8 Neuporabljena oz. po presoji proizvajalca.

9 Neuporabljena oz. po presoji proizvajalca.

10 Negativna linija za SAE-J1850 PWM.

11 Neuporabljena oz. po presoji proizvajalca (Chrysler CCD - vodilo).

12 Neuporabljena oz. po presoji proizvajalca.

13 Neuporabljena oz. po presoji proizvajalca.

14 CAN low (ISO 15765-4 in SAE-J2284).

15 L linija ISO 9141-2 in ISO 14230-4.

16 Napajanje testerja iz akumulatorja.

Page 15: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

5

3.2 Protokoli OBD-II

OBD-II vmesnik podpira pet protokolov. Večina vozil podpira le enega od njih, vsem

protokolom pa je skupno, da uporabljajo četrto (ozemljitev) in šestnajsto nožico (napajanje).

SAE J1850 PWM uporablja Ford Motor Company – hitrost 41,6 kB/sec.

o Nožica 2: vodilo +

o Nožica 10: vodilo –

o Napetost 5 V

o Velikost sporočila vključno z CRC omejena na 12 zlogov

SAE J1850 VPM uporablja GM – hitrost 10,4 ali 41,6 kB/sec.

o Nožica 2: vodilo +

o Napetost 7 V

o Velikost sporočila vključno z CRC omejena na 12 zlogov

ISO 9141-2 uporabljajo Chrysler, Evropska in Azijska vozila, asinhron serijski prenos

podatkov s hitrostjo 10,4 kBaud. Podoben prenos podatkov kot pri RS-232.

o Nožica 7: K-linija

o Nožica 15: L-linija

o K-linija možnost prehoda v mirovanje

o Maksimalna napetost signala Vbatt

o Velikost sporočila vključno z CRC omejena na 12 zlogov

ISO 14230 KWP2000 Keyword Protocol 2000

o Nožica 7: K-linija

o Nožica 15: L-linija

o Fizičen nivo enak kot pri ISO 9141-2

o Hitrost prenosa od 1,2 do 10,4 kBaud

o Velikost sporočila do 255 zlogov

ISO 15765 CAN je razvil Bosch in se za razliko od ostalih uporablja tudi izven

avtomobilske industrije. Vsa vozila prodana po letu 2008 v Združenih državah

Amerike morajo podpirati CAN protokol.

o Nožica 6: CAN high

o Nožica 14: CAN low

o Vodilni protokol med novimi avtomobili

Page 16: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

6

3.3 Diagnostični podatki

OBD vmesnik nam omogoča dostop do podatkov z ECU enote. Podatke pridobivamo po

sistemu zahteva-odgovor. ECU enoti pošljemo ukaz, ki je sestavljen iz načina delovanja in

PID-a, enota pa nam vrne odgovor na našo zahtevo. PID kode oziroma identifikacijske

številke parametra in načini delovanja, so šestnajstiška števila definirana v standardu SAE

J1979. Proizvajalcem ni potrebno implementirati vseh PID kod, prav tako pa lahko uporabijo

svoje kode, ki niso definirane v standardu. Izjema je le ukaz način delovanja 01 PID 00, ki

nam vrača rezultat dolg 4 zloge, iz katerega lahko izračunamo katere PID kode so podprte.

Kljub temu da proizvajalci niso obvezani k uporabi od SEA predpisanih PID kod, večina

podpira osnovne ukaze, s katerimi lahko preverimo delovanje motorja in preberemo ter

pobrišemo napake.

Standard SAE J1979 podpira deset načinov delovanja:

mod $01 – prikaz trenutnih podatkov in izračun podprtih PID kod,

mod $02 – prikaz zmrznjenih podatkovnih oken,

mod $03 – prikaz potrjenih napak v povezavi z emisijami. Prikaže nam štiri

mestno številko napake, s pomočjo katere lahko nato v raznih bazah napak

poiščemo kateri senzor javlja napako,

mod $04 – služi za izbris potrjenih in trenutnih napak,

mod $05 – prikaz podatkov senzorja za kisik,

mod $06 – sproži neprekinjeno ali časovno omejeno samodiagnozo sistemov

vozila. Za časovno omejeno testiranje so po navadi potrebni dodatni parametri,

mod $07 – prikaz napak, ki so se pojavile med trenutno ali zadnjo vožnjo. Ta

način uporabljajo mehaniki, da ugotovijo ali je bilo popravilo uspešno,

mod $08 – omogoči da zunanja testna naprava nadzira delovanje sistemov ali

komponent vozila,

mod $09 – prikaz informacij o vozilu (VIN številka, verzija programske

opreme na ECU enoti …),

mod $0A – prikaz stalnih diagnostičnih napak povezanih z emisijami, ki se

morajo po navodilih Kalifornijskega komiteja za ozračje (CARB) shraniti kot

stalne kode napak, katerih pojavitve so neodstranljivo zapisane v pomnilnik.

Page 17: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

7

Običajen postopek, s katerim preberemo podatek z določenega senzorja, (če smo z vozilom

uspešno povezani) je sledeč:

pošljemo npr. ukaz za temperaturo hladilne tekočine: način delovanja 01 PID 05

> 01 05,

vozilo nam vrne rezultat npr.

< 41 05 7B

Prva dva zloga (41 05) nam povesta, da gre za odgovor na zahtevo način 01 PID 05,

zadnji pa rezultat: $7B,

ko preverimo formulo za izračun temperature hladilne tekočine vidimo, da moramo

rezultat pretvoriti v desetiško obliko in odšteti 40. Temperatura hladile tekočine je

$7B-40 = 123-40 = 80 oC.

Tabela 3.1: Opis in formule za izračun parametrov

Način PID Minimalna

vrednost

Maksimalna

vrednost

Enota Formula

za izračun

Opis

01 04 0 100 % A*100/255 Preračunana

obremenitev motorja

01 05 -40 215 oC A-40 Temperatura hladile

tekočine

01 0A 0 765 kPa A*3 Pritisk goriva

01 0B 0 225 kPa A Pritisk zraka na

sesalnem kolektorju

01 0C 0 16.383,75 obr

/min ((A*256)+B)/4 Obrati motorja

01 0D 0 366 km

/h A Hitrost vozila

01 0F -40 215 oC A-40 Temperatura zajetega

zraka

01 11 0 100 % A*100/255 Pozicija stopalke za

plin

01 1F 0 65.535 sek. (A*256)+B Čas od zagona

motorja

01 21 0 65.535 km (A*256)+B Razdalja prevožena z

prižgano MIL lučko

Page 18: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

8

Rezultati nekaterih poizvedb, pa se ne računajo po formulah, temveč so bitno zakodirani.

Takšna poizvedba je na primer ukaz za preverjanje podprtih PID kod (način 01 PID 00). Ta

ukaz nam vrne npr: $BE 1F A8 13, iz česar lahko izračunamo podprtost naslednjih

dvaintridesetih PID kod po sledečem postopku:

šestnajstiški rezultat pretvorimo v dvojiški sistem,

zaporedno število števke v dvojiškem zapisu nam predstavlja PID kodo, če je števka 1

je koda podrta, v nasprotnem primeru ne.

Tabela 3.2: Preračun bitno zakodiranih podatkov

Iz tabele 3.2 razberemo, da na primer PID 1B (desetiško 27) ni podprt, PID 1D (desetiško 28)

pa je.

Page 19: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

9

3.4 Branje in brisanje napak

Postopek za branje in brisanje napak je pri vseh vozilih, ki podpirajo OBD standard sledeč:

pošljemo ukaz za število shranjenih napak: način 01 PID 01

>01 01;

Tipičen odgovor je npr:

< 41 01 81 07 65 04

Prva dva zloga (41 01) nam povesta, da gre za odgovor na zahtevo (01 01), tretji zlog

pa nam pove število napak. Napak seveda ni 81. 81 je šestnajstiški zapis, zato ga

pretvorimo v desetiško – 129, formula za izračun napak pa pravi, da moramo od tega

podatka še odšteti 128. Dobimo rezultat – v ECU enoti je shranjena ena napaka. Ta

ukaz opravlja še eno nalogo – če je rezultat večji od nič, mora na armaturni plošči

goreti MIL lučka. Zadnji trije zlogi pa so enolična številka napake;

če na prejšnji ukaz dobimo pozitiven odgovor, pošljemo ukaz za podrobnosti o napaki:

način 03

>03;

Tipičen odgovor je npr:

< 43 01 33 00 00 00 00

Prvi zlog nam pove, da gre za odgovor na zahtevo 03. Sledeči zlogi se berejo v paru

(0133,0000,0000). Napaka je seveda samo ena, vendar SAE standard na zahtevo 03

narekuje odgovor dolg osem zlogov, zato so dodane ničle. Rezultat je torej 0133.

Vendar to še ni koda napake. Da bi izvedeli kodo napake moramo prvo šestnajstiško

vrednost v rezultatu zamenjati z neko drugo vrednostjo (glej tabelo 3.3). V našem

primeru 0 z P0. Koda napake je torej P0133 (počasen odziv senzorja za kisik);

ko poznamo napako ponavadi sledi popravilo avtomobila;

nato sledi ukaz za izbris napak: način 04

>04

Ukaz se izvrši takoj po potrditvi, stori pa sledeče:

o izbriše število napak,

o izbriše vse shranjene napake,

o izbriše vse zmrznjene diagnostične podatke,

o izbriše vse z napakami povezane podatke,

o izbriše vse shranjene podatke senzorja za kisik,

o NE IZBRIŠE pa napak načina 0A (napake v povezavi z emisijami);

Page 20: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

10

odgovor po brisanju je:

<44;

po brisanju je potrebno odvzeti kontakt in motor ponovno zagnati. Če je bilo popravilo

uspešno mora biti MIL lučka ugasnjena, odgovor na ponovno zahtevo za število napak

pa mora biti 41 01 80 00 00 00 – nič napak.

Tabela 3.3: Pomen napak

Prvo šestnajstiško

število

Zamenjava Pomen

0 P0 Napake pogonskega sklopa (definira SEA)

1 P1 Napake pogonskega sklopa (definira proizvajalec)

2 P2 Napake pogonskega sklopa (definira SEA)

3 P3 Napake pogonskega sklopa (še nedefinirano)

4 C0 Napake šasije (definira SEA)

5 C1 Napake šasije (definira proizvajalec)

6 C2 Napake šasije (definira proizvajalec)

7 C3 Napake šasije (še nedefinirano)

8 B0 Napake perifernih naprav (definira SEA)

9 B1 Napake perifernih naprav (definira proizvajalec)

A B2 Napake perifernih naprav (definira proizvajalec)

B B3 Napake perifernih naprav (še nedefinirano)

C U0 Omrežne napake (definira SEA)

D U1 Omrežne napake (definira proizvajalec)

E U2 Omrežne napake (definira proizvajalec)

F U3 Omrežne napake (še nedefinirano)

Page 21: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

11

3.5 Diagnostični sistemi

Poznamo več vrst diagnostičnih sistemov ki jih lahko uporabimo na z OBD podprtih vozilih.

Razlikujejo se predvsem po namembnosti in pa seveda ceni, ki variira od nekaj deset evrov pa

do nekaj tisoč evrov. V grobem pa jih delimo na:

ročni diagnostični sistemi :

to so enostavne naprave, ki jih lahko priključimo na vozilo in preberemo ter

izbrišemo napake. Obstajajo tudi boljše oziroma profesionalne različice, s

katerimi lahko izvajamo naprednejšo diagnostiko in dostopamo tudi do

kontrolnih enot ABS-a in zračnih blazin; [1]

Slika 3.3: Ročni OBD-II skener

mobilne naprave z naloženo namensko programsko opremo:

v zadnjem času so se s pojavo tablic in mobilnih telefonov, ki uporabljajo

operacijski sistem Android, pojavile tudi aplikacije in bluetooth OBD-II

vmesniki, s pomočjo katerih se da prikazovati osnovne parametre vozila; [1]

Page 22: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

12

računalniki z naloženo namensko programsko opremo:

to so računalniki (večino prenosni) z nameščeno namensko programsko

opremo in OBD-II priključkom z USB, RS232 ali bluetooth povezavo. Ti

vmesniki po navadi vsebujejo ELM 327 ali STN1110 vezja. Njihova

uporabnost je odvisna od programske opreme – nekateri programi znajo le

prebrati osnovne parametre, drugi (navadno precej dragi) imajo popoln dostop

do vseh kontrolnih enot. Velika prednost teh sistemov je računalnik. Disk nam

omogoča, da naložimo različne programe in povečamo funkcionalnost

diagnostičnega sistema. Na voljo imamo tudi več pomnilniškega prostora za

hranjene raznih logov in izpisov. Prav tako imajo računalniki večje zaslone in

višje ločljivosti, kar nam pride prav pri razbiranju podatkov iz grafov. [1]

Izdelava takšne programske opreme je tudi cilj tega diplomskega dela;

Slika 3.4: Računalnik z nameščeno diagnostično opremo

Page 23: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

13

zapisovalniki podatkov:

to so manjše napravice, ki beležijo delovanje vozila, kot nekakšna črna

skrinjica. Podatki, ki jih naprava beleži, so v pomoč pri servisih, prometnih

nesrečah ali mehaničnih težavah. Nekatere Ameriške zavarovalnice celo nudijo

nižje premije, če je v vozilu vgrajena takšna naprava in če je iz podatkov

razvidno, da voznik ustreza njihovim pogojem. [1]

Slika 3.5: OBD-II zapisovalnik podatkov

naprave za testiranje emisij

v nekaterih Ameriških državah in na Nizozemskem ne prakticirajo več

testiranje izpušnih plinov na izpuhu avtomobila, ampak to počnejo napravice

stalno priključene na avtomobilov OBD vmesnik. Na tehničnem pregledu

preberejo shranjene napake in preverijo če vozilo dosega za modelno leto

predpisane standarde. [1] Pri nas zaenkrat to počnejo še s posebnimi

napravami, ki jih vstavijo v izpušno cev avtomobila, in pri delujočem motorju

preverijo izpušne pline (emisije);

Page 24: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

14

vozniški pripomočki

nekateri vozniki niso zadovoljni le s podatki, ki so prikazani na armaturni

plošči, zato so se pojavile naprave podobne novejšim mobilnim telefonom, ki

prikazujejo dodatne informacije. Na primer: pritisk turbine, napetost

akumulatorja, temperatura olja in vode. Ti pripomočki večinoma vsebujejo

prikazovalnik in bluetooth OBD-II vmesnik. [1]

Slika 3.6: Vozniški pripomoček

Page 25: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

15

3.6 ELM 327

ELM 327 je vezje, ki ga najdemo v OBD-II vmesnikih in skrbi za komunikacijo med ECU

enoto in računalnikom. Računalniki namreč ne prepoznajo nobenega od OBD protokolov,

zato jih ELM vezje prevaja v RS232 protokol. Vezje je zgrajeno na osnovi mikrokontrolerja

PIC18F2480 podjetja Microchip Tehnology. Omogoča hitrost prenosa do 500 kb/s, ima malo

porabo energije in možnost prehoda v stanje mirovanja. Ob priklopu na vozilo ELM 327

samodejno zazna protokol, ki ga uporablja ECU enota.

ELM 327 verzijo 1.0 je razvilo podjetje ELM Electronics, vendar niso poskrbeli za zaščito

patenta, zato se je kmalu pojavilo veliko poceni kopij. Danes sta na voljo le verziji v1.4b in

v1.3a, drugo so kopije, pri katerih lahko pride do težav v delovanju.

Slika 3.7: ELM 327 vezje

Page 26: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

16

4 Implementacija aplikacije

Cilj diplomske naloge je bila implementacija programske opreme za prikaz standardnih

parametrov vozila, in branje ter brisanje napak shranjenih v ECU enoti. Aplikacijo smo spisali

v programskem jeziku C# v programskem okolju Microsoft Visual Studio 2010 in uporablja

Framework 4.0 gradnike. Program deluje v vseh Windows okoljih, vendar je možno, da nas

starejše verzije (Windows XP\2000\ME) opozorijo, da je pred zagonom programa namestiti

novejšo verzijo Microsoft Framework-a. Na napravi, na kateri teče naša aplikacija, je

priporočljivo imeti tudi internetno povezavo, ki jo aplikacija uporablja za prikaz podrobnosti

o zaznanih napakah.

Za povezovanje z vozilom smo na tujem trgu naročili nizkocenovno ELM327 OBD-II

napravo, ki podpira vse OBD protokole. Na računalnik jo priključimo z USB kablom, za

komunikacijo pa poskrbi protokol RS232.

Aplikacija deluje tudi z bluetooth ELM327 OBD-II verzijo naprave, vendar je pred zagonom

programa potrebno poskrbeti za komunikacijo med računalnikom in napravo. V večini

primerov računalnik zazna napravo kot zunanjo bluetooth napravo, vendar komunikacija ne

deluje dokler ne vnesemo paritvene kode, ki prepreči, da bi se še kakšen drug računalnik

povezal na našo napravo. Paritveno kodo najdemo v večini primerov napisano na napravi ali v

dokumentaciji. Prav tako je možno, da bo potrebno naložiti kakšne gonilnike. Ponavadi se

navodila za nastavitev naprave najdejo v dokumentaciji ali na priloženem ploščku.

Slika 4.1: Uporabljen OBD-II kabel

Page 27: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

17

4.1 Delovanje aplikacije

Priključeno EML327 napravo računalnik zazna kot zunanjo napravo priklopljeno na COM

vrata. Na katera vrata je povezana, lahko vidimo v Upravitelju naprav.

Slika 4.2: Upravitelj naprav

Naša aplikacija ob zagonu ustvari serijski vmesnik in preveri vsa vrata, ter nam za

povezovanje z napravo ponudi le tista, ki so odprta. Ob kliku na gumb »Poveži« program

najprej odpre COM vrata, preveri ali se ELM327 naprava odziva, nato preveri še ali se odziva

tudi vozilo.

Napravo preverimo z ukazom:

>AT Z

Page 28: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

18

Ta ukaz povzroči popoln reset čipa v napravi ELM 327 (kakor da bi ga izklopili in ponovno

vklopili), led lučke na napravi pa utripnejo. Ukaz je precej podoben ukazu AT WS, vendar

slednji ne povzroči utripa led lučk. Reset zbriše vse nastavitve na napravi, in jo postavi v

stanje pripravljenosti, kjer čaka na naš naslednji ukaz, še prej pa nam vrne njeno ime in

verzijo:

<ELM327 v1.5

V naslednjem koraku pa aplikacija preveri ali se lahko povezujemo na vozilo. To storimo z

enostavnim ukazom, ki vrne obrate motorja. Ta ukaz smo uporabili, ker je zajet v SAE

standardu in ga morajo poznati vsa vozila, ki podpirajo OBD-II.

>01 0C

Če je povezava z avtomobilom vzpostavljena, bomo v odgovor dobili neko šestnajstiško

vrednost, ki nam po preračunu vrne informacijo o obratih (lahko tudi 0, če je vozilo

ugasnjeno). Če povezava ni vzpostavljena, dobimo odgovor:

<SEARCHING …

<UNABLE TO CONNECT

Če vozilo ni pripravljeno, je dobro preveriti, če smo dobro priključili ELM327 napravo, ter če

imamo ključ vozila v MAR poziciji. Če je povezava z vozilom vzpostavljena, sprožimo še

ukaz, ki nam vrne ime protokola, ki je trenutno aktiven. Ukaz:

>AT DP

Pri povezavi z enim izmed naših testnih vozil je bil odgovor:

<AUTO, ISO 14230-4(KWP FAST)

Zgornji odgovor nam pove uporabljen protokol, beseda »AUTO« na začetku pa, da je

naprava ta protokol določila avtomatsko in da ga nismo nastavili mi.

Page 29: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

19

Stanje povezave nam aplikacija nazorno pokaže, prav tako se nam izpiše uporabljen protokol.

Slika 4.3: Zavihek, v katerem se povezujemo z vozilom

Page 30: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

20

Ko imamo povezavo z vozilom vzpostavljeno, je aplikacija pripravljena za komunikacijo z

njim. Za pošiljanje ukazov napravi smo uporabili časovnik in vrsto. Ukazi, ki jih pošlje

uporabnik, se shranjujejo v vrsto, časovnik pa jih v 100-milisekundnih intervalih pobira iz nje

po principu FIFO (first in first out). Preden pa je ukaz prebran iz vrste in poslan napravi,

preverimo, če je naprava že poslala odgovor na prejšnji ukaz, v nasprotnem primeru

počakamo 100 milisekund in ponovno preverjamo odgovor. Ukazov torej ne pošiljamo v

časovnih intervalih, ampak takoj ko je naprava pripravljena na nov ukaz – realno približno

dva ukaza na sekundo. Časovnik teče v svoji niti, ločeni od glavne niti aplikacije, zato ne

prihaja do zamrzovanja programa v času čakanja na odgovor. Časovnik se požene ob prvem

poslanem ukazu. Algoritem bo lažje razumljiv ob ogledu spodnje slike.

Slika 4.4: Algoritem pošiljanja ukazov

Page 31: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

21

Komunikacijo med ELM327 in računalnikom lahko spremljamo na desni strani aplikacije,

kjer je gradnik, ki izpisuje vse poslane ukaze in prejete odgovore. Gradnik je bil na začetku

razvoja aplikacije mišljen kot pomoč pri razvijanju, vendar smo ugotovili, da je precej

uporaben tudi za strokovno bolj podkovane uporabnike, zato ga nismo odstranili.

Za prikaz različnih funkcij naša aplikacije smo se odločili uporabiti zavihke (Tab Control).

Ker aplikacija izpisuje večje količine podatkov in grafe, bi v ob uporabi le ene prikazne

površine postala zelo nepregledna. V začetku razvoja aplikacije smo sicer imeli namen ob

pritisku na za to namenjene gumbe odpirati nova okna (Form) zasidrana v osnovno okno,

vendar smo imeli velike težave s prenašanjem argumentov med različnimi okni. Še največ

težav smo imeli s serijskimi vrati (Serial Port), ki smo jih morali ob vsakem prehodu na drugo

okno zapirati in ponovno odpirati. Pri tem smo izgubili povezavo z vozilom. Pri uporabi

zavihkov teh težav ni bilo, saj so serijska vrata deklarirana kot globalna komponenta, vidna v

vseh zavihkih.

V zavihku »Diagnostika« lahko v živo spremljamo več podatkov o trenutnem delovanju

vozila (različne temperature, obrate, pritiske …). Te podatke smo se odločili prikazati v obliki

grafov, ki smo jih izrisali s pomočjo knjižnice Chart. To je tudi razlog, da naša aplikacija

uporablja Microsoft Windows Framework 4.0, saj je bila knjižnica Chart prvič vključena v to

verzijo. Za to knjižnico smo se odločili, ker zelo poenostavi delo z grafi. Gradnik enostavno

dodamo v program, nastavimo obliko grafa (stolpci, torta, črtni graf..) in še nekaj podrobnosti,

nato samo še dodajamo točke, abscisna in ordinatna os pa se avtomatsko prilagajata našim

podatkom.

Slika 4.5: Graf izrisan z uporabo Chart knjižnice

Page 32: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

22

V zavihku »Napake« imamo možnost prebrati in izbrisati trenutne napake v ECU enoti.

Napake se nam izpisujejo v tabeli (List View). Ker pa nam ECU enota vrača kode napak (npr.

P0133) in ne imena napake (npr. počasen odziv senzorja za kisik), ta izpis povprečnemu

uporabniku ne pove ničesar. Zato smo se odločili kode napak in njihove opise hraniti v

nekakšni podatkovni strukturi. Prvotno smo imeli namen uporabiti XML dokument, vendar se

je kasneje uporaba podatkovne baze izkazala za enostavnejšo. Podatkovna baza je povsem

enostavna, sestavljena iz dveh nepovezanih tabel. V eni hranimo informacije o različnih

ukazih, v drugi pa o napakah.

Slika 4.6: E-R diagram uporabljene baze

Tabel seveda nismo polnili ročno, saj je v tabeli Napake več kot 2.100 vnosov. Zato smo

napisali funkciji, ki se povežeta na določeno spletno stran, odprli podatkovni tok in prebrali

HTML zapis strani. Iz tega zapisa smo nato izluščili za nas zanimive podatke in jih zapisali v

podatkovno bazo. Definicije kod napak (Fault codes) smo dobili na strani

www.myscantool.com, ukaze pa na wikipediji. Funkciji uporabljeni za polnjenje tabel lahko

najdete v izvorni kodi, saj smo jih pustili implementirane, ampak jih nikoli ne kličemo.

Page 33: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

23

Seveda pa povprečen uporabnik naše aplikacije tudi iz imena napake ne bo vedel, kaj ta

napaka pomeni, kje se okvarjen del nahaja in kako napako popraviti. Zato smo v tabelo, ki

prikazuje napake dodali povezavo »Podrobnosti«. Ob kliku na to povezavo se odpre novo

okno, v katerega je vgrajen enostaven spletni brskalnik, ki nam odpre spletno stran s

podrobnim opisom napake. Uporabili smo spletno stran www.obd-codes.com. Ta prikaz

seveda deluje le če, da imamo na računalniku vzpostavljeno povezavo z internetom.

Slika 4.7: Okno, ki nam izpiše podrobnosti o napaki

Page 34: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

24

4.2 Uporaba aplikacije

Aplikacija je narejena tako, da bi bila čim bolj prijazna uporabniku. Zato so uporabljeni

zavihki, ki nam aplikacijo razdeljijo v pet segmentov: Nastavitve, Konzola, Diagnostika,

Napake in Podprti ukazi. Med zavihki se lahko pomikamo s klikanjem na njih ali na gumbe v

obliki sličic, ki nam nazorno prikazujejo funkcijo zavihka.

V prvem zavihku imenovanem »Nastavitve« se lahko povežemo z vozilom. Na voljo imamo

dve izbirni okni (Combo Box), kjer lahko izberemo vrata (port), na katera je vmesnik

priključen in hitrost povezave (baund rate). Hitrost povezave je odvisna od ELM327 modela,

v večini primerov pa je 38400 bit/s, kar je tudi privzeta nastavitev. Ob kliku na gumb

»Poveži«, se aplikacija poskusi povezati z vozilom, stanje povezave pa nam nazorno prikaže z

velikimi zelenimi kljukicami ali rdečimi križci. Če se povezava ne vzpostavi, imamo na voljo

gumb »Prekini«, ki prekine povezovanje, da lahko preverimo zakaj prihaja do težav. V tem

zavihku je prikazan tudi protokol po katerem poteka komunikacija.

Slika 4.8: Zavihek, v katerem so povezujemo z vozilom

Page 35: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

25

V naslednjem zavihku poimenovanem »Konzola«, imamo možnost vpisovanja ukazov.

Zavihek je namenjen naprednejšim uporabnikom, saj omogoča izvajanje ukazov, ki niso

implementirani v grafičnem vmesniku aplikacije. Zavihek vsebuje okno za izpis (Rich text

box), ukazno vrstico (Text box) in dva gumba. Z eni pošljemo ukaz, z drugim pa si lahko

počistimo prikazno okno. Če smo z kurzorjem postavljeni v ukazni vrstici, je možno ukaz

poslati tudi s tipko enter.

Slika 4.9: Zavihek, ki vsebuje ukazno okno

Page 36: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

26

V zavihku »Diagnostika« lahko v živo spremljamo grafe delovanja motorja. Naenkrat se

prikazuje le en graf. Kateri graf bo prikazan, lahko določimo s pomočjo izbirnega okna. Na

voljo imamo še dva gumba, z enim poženemo izrisovanje grafa, z drugim pa ga ustavimo.

Graf prikazuje podatek v odvisnosti od časa. Če izberemo drugo vrsto prikaza, se čas

avtomatsko postavi na nič. Podatki se osvežuejo približno dvakrat na sekundo. Na dnu

zavihka se izpisuje tudi trenutna vrednost, ki jo vrača vozilo. Če se izpiše »Ni podatka«,

vozilo za to povpraševanje ne vrača informacij. To pomeni, da vozilo bodisi nima senzorja, ki

ga naslavljamo, ali pa da je okvarjen. Primer takšnega izpisa dobimo, tudi če izberemo prikaz

pritiska turbine, na avtomobilu ki turbine sploh nima.

Slika 4.10: Zavihek, v katerem izrisujemo grafe

Page 37: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

27

Zavihek »Napake« nam ob pritisku na gumb »Preberi napake« izpiše število napak. Če ni

zaznanih napak, se izpiše število nič, izpis pa se obarva zeleno.

Slika 4.11: Zavihek, v katerem beremo napake. Napak ni bilo najdenih

Če aplikacija zazna napake, se izpis obarva rdeče, v razpredelnici pa se nam izpišejo opisi

napak. Prav tako se nam ob vsaki zaznani napaki prikaže povezava podrobnosti.

Slika 4.12: Zavihek, v katerem beremo napake. Najdene so tri napake

Page 38: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

28

Če kliknemo na povezavo, se nam odpre novo okno s podrobnim opisom napake. Primer tega

okna lahko vidite na sliki 4.7.

Druga funkcija tega zavihka pa je brisanje napak. Brisanje prožimo s klikom na gumb »Izbris

napak«. Ob kliku se nam pojavi okno, v katerem moramo brisanje potrditi.

Slika 4.13: Potrditev brisanja napak

Brisanje ne traja dolgo, učinek je ponavadi takojšen. Pojavi se nam spodnje okno.

Slika 4.14: Obvestilo o uspešnem brisanju napak

Po brisanju napak je potrebno vozilu odvzeti kontakt in ključ ponovno postaviti v MAR

pozicijo, dobro pa je opraviti tudi testno vožjo in se prepričati, da se MIL lučka ne prižge

ponovno.

Page 39: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

29

Zadnji zavihek »Podprti ukazi« je informativne narave. Ob kliku na gumb »Preveri« se nam

izpišejo ukazi, njihovi opisi in informacija, ali vozilo ukaz podpira.

Slika 4.15: Zavihek, v katerem so prikazani podprti ukazi. Izpis je od vozila Opel Corsa C

Aplikacijo lahko kadar koli zapremo na križcu v desnem zgornjem robu. Povezave pred

zapiranjem ni potrebno prekinjati, saj aplikacija zato poskrbi sama.

Page 40: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

30

4.3 Testiranje aplikacije

Med testiranjem se je naša aplikacija izkazala za zelo robustno, saj smo vse kritične odseke

programa obdali s try-catch stavki, v katerih lovimo napake. Če do napake pride, kar se zgodi

malokdaj in še to v večini primerov zaradi uporabniške napake (izključitev kabla, odvzem

kontakta), nas aplikacija obvesti o napaki in v nekaterih primerih prekine povezavo, aplikacija

pa se ne zruši. Po odpravi napake se lahko zopet povežemo z vozilom in nadaljujemo z

delom.

Delovanje aplikacije smo preizkusili na več različnih vozilih. Naše prvo testno vozilo je bila

Opel Corsa C, letnik 2005. Najprej smo preizkusili izrisovanje grafov pri ugasnjenem vozilu.

Kljub nedelujočem agregatu smo ugotovili, da praktično vsi senzorji v motornem sklopu

avtomobila delujejo in vračajo podatke. Senzorji obratov in hitrosti so vračali stanje 0,

senzorji različnih temperatur pa stanje primerljivo temperaturi okolice, saj je bilo vozilo že

par ur v mirovanju. Nato smo avtomobil prižgali in se odpeljali na testno vožnjo. Vsi grafi so

vračali realna stanja primerljiva z odčitki na armaturni plošči vozila, le da so bili bolj

natančni. Hitrost vozila na primer naša aplikacija vrača približno pet kilometrov na uro

manjšo kot pa števec vozila. Po primerjanju s hitrostjo ki jo je vračala GPS naprava, smo

prišli do zaključka, da tester vrača natančnejšo vrednost. V nekaterih virih smo nato zasledili,

da števec prikazuje hitrost z nekaj kilometri na uro tolerance zaradi različnih dimenzij

pnevmatik.

Nato je bilo na vrsti testiranje branja in brisanja napak. Ker je naše testno vozilo bilo v

brezhibnem stanju, smo po pogovoru z mehanikom odklopili senzor odmične gredi in senzor

pretoka zraka.

Page 41: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

31

Slika 4.16: Odklopljen senzor za pretok zraka in senzor odmične gredi

Na armaturni plošči se je takoj po vžigu prižgala MIL lučka (lučka za motor). Vozilo je bilo

še delujoče, vendar so močno nihali obrati motorja (od 500 do 1200 obr/min). Ko smo se na

vozilo povezali z našo aplikacijo, smo zaznali tri napake: senzor temperature zajetega zraka,

senzor količine zajetega zraka in senzor odmične gredi. Izpis lahko vidite na sliki 4.12.

Nato smo vozilo ugasnili in senzorje ponovno priključili. Kljub temu, da sta senzorja ponovno

delovala, MIL lučka na armaturni plošči ni ugasnila, saj je bila napaka še shranjena v ECU

enoti. Vozilo smo ponovno ugasnili in se nanj priključili z našo aplikacijo ter sprožili brisanje

napak. Napake so bile uspešno izbrisane, saj se po vžigu vozila, in testni vožnji, lučka ni

ponovno prižgala, prav tako pa so obrati motorja niso več nihali. Tudi aplikacija ob ponovno

sproženem branju napak ni vrnila nobene napake.

Naslednje testno vozilo je bila Opel Vectra B 2.0 diesel, letnik 2001. Vozilo je bilo izdelano

dve leti preden je v veljavo stopil zakon, ki predpisuje uporabo OBD-II standarda. Kljub temu

ima avtomobil OBD priključek, vendar podpira zelo malo ukazov, tisti ki pa so delovali, so

vračali pravilne rezultate.

Page 42: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

32

Aplikacijo smo testirali še na Alfi Romeo 156 2.4 JTD, letnik 2005 in Opel Insignii 2.0 CDTI

letnik 2011. Obe vozili sta podpirali veliko več ukazov kot prejšnji, aplikacija pa je delovala

brez napak. Pojavila se nam je tudi priložnost testiranja brisanja napake na dejansko

pokvarjenem vozilu. Renault Megane 1.5 DCI, letnik 2005, je javljal napako na tretji šobi za

vbrizg goriva. Napako smo uspešno izbrisali, vendar ker napake fizično nismo odpravili, se je

po približno dvesto prevoženih kilometrih ponovno pojavila.

Page 43: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

33

5 Zaključek

V novejših avtomobilih vse sisteme krmilijo računalniki, in če pride do okvare katerega od

delov avtomobila ali senzorjev, računalnik to zazna in napako shrani v pomnilnik. V takšnih

sistemih ni več dovolj okvarjen del preprosto zamenjati ali popraviti in pričakovati da bo avto

deloval. Danes je v avtomobilskih servisih ustaljen postopek sledeč: priklop vozila na tester,

diagnoza napake, zamenjava okvarjenega dela in izbris napake. Marsikateri lastnik

avtomobila z malo znanja mehanike, bi si lahko kakšne manjše okvare (npr. okvare lahko

dostopnih senzorjev) popravil sam, doma. Vendar večina nima na voljo testerja, s katerim bi

lahko nato napako še izbrisala. Nekateri v šali pravijo celo, da lučke na armaturni plošči

gorijo le zato, da servisom plačujemo, da nam jih ugašujejo. Ampak dandanes je na tržišču

prava poplava poceni OBD-II vmesnikov, ki v kombinaciji z našo programsko opremo

takšnim domačim mojstrom omogoča neko osnovno možnost za diagnostiko in brisanje

napak. Seveda bi se našo aplikacijo dalo še nadgraditi, omogočiti več naprednih možnosti in

povezovanje na več nadzornih enot ter celo proženje samodiagnostike vozila. To v

prihodnosti tudi nameravamo.

Page 44: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

34

6 Viri

[1] Wikipedia: On-board diagnostics: http://en.wikipedia.org/wiki/On-board_diagnostics

(1. 9. 2012)

[2] Wikipedia: Engine control unit: http://en.wikipedia.org/wiki/Engine_control_unit

(1. 9. 2012)

[3] Wikipedia: OBD-II PIDs: http://en.wikipedia.org/wiki/Table_of_OBD-II_Codes

(1. 9. 2012)

[4] KBM System Ltd: OBD-II Fault Code Reading with ODBKey:

http://kbmsystems.net/files/Engine%20ECU%20Fault%20Code%20Reading%20with

%20OBDKey.pdf (1. 9. 2012)

[5] OBD II Codes Database: http://www.obd-2-codes.com/ (1. 9. 2012)

[6] Auterra: About CAN: http://www.auterraweb.com/aboutcan.html (1. 9. 2012)

[7] ELM Electronics: ELM327 OBD to RS232 Interpreter:

http://www.elmelectronics.com/DSheets/ELM327DS.pdf (1. 9. 2012)

[8] My Scan Tool: http://www.myscantool.com/ (1. 9. 2012)

[9] Wikipedia: RS-232: http://en.wikipedia.org/wiki/RS232 (1. 9. 2012)

[10] Wikipedia: Bluetooth: http://en.wikipedia.org/wiki/Bluetooth (1 .9. 2012)

[11] B&B Electronics: The OBDII Home Page: http://www.obdii.com/ (1. 9. 2012)

[12] Microsoft Developer Network: Chart Controls:

http://msdn.microsoft.com/en-us/library/dd456632.aspx (1. 9. 2012)

[13] Funda.net: Using Chart Control in Visual Studio 2010 (Web and Windows Explained):

http://www.dotnetfunda.com/articles/article1344-using-chart-control-in-visual-studio-

2010-web-and-windows-explained.aspx (1. 9. 2012)

[14] Microsoft Developer Network: Threading Tutorial:

http://msdn.microsoft.com/en-us/library/aa645740(v=vs.71).aspx (1. 9. 2012)

Page 45: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

35

[15] Microsoft Developer Network: Timer Class:

http://msdn.microsoft.com/en-us/library/system.timers.timer(v=vs.71).aspx

(1. 9. 2012)

[16] Wikipedia: Malfunction indicator lamp:

http://en.wikipedia.org/wiki/Malfunction_indicator_lamp (1. 9. 2012)

Page 46: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

36

7 Priloge

7.1 O študentu

Naslov študenta:

Matjaž Cehner

Vizore 1/c

3203 Nova Cerkev

e-mail: [email protected]

Kratek življenjepis:

rojen: 24. 11. 1989 v Celju

šolanje:

1996–2004 Osnovna šola Dobrna

2004–2008 Šolski center Celje, Tehniška gimnazija Lava

2008– 2012 Fakulteta za elektrotehniko, računalništvo in informatiko, smer Računalništvo in

informacijske tehnologije UN

Page 47: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

37

Page 48: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

38

Page 49: Prikaz podatkov o delovanju avtomobila z uporabo vmesnika ... · ECU (Engine control unit) ... (GM: J2411 GMLAN/SWC). ... ISO 14230 KWP2000 Keyword Protocol 2000 o Nožica 7: K-linija

Prikaz podatkov o delovanju avtomobila z uporabo vmesnika OBD-II

39