Teemu Huhtala OBD2-JÄRJESTELMÄÄN

Teemu Huhtala
OBD2-JÄRJESTELMÄÄN PERUSTUVAN
OHJELMAN KEHITTÄMINEN
Tietojenkäsittelyn koulutusohjelma
Sovellusohjelmoinnin suuntautumisvaihtoehto
2010
OBD2-JÄRJESTELMÄÄN PERUSTUVAN OHJELMAN KEHITTÄMINEN
Huhtala, Teemu
Satakunnan ammattikorkeakoulu
Tietojenkäsittelyn koulutusohjelma
lokakuu 2010
Ohjaaja: Stenfors, Juha
Sivumäärä: 39
Liitteitä: 1
Asiasanat: autotekniikka, katsastus, diagnostiikka
_____________________________________________________________
Opinnäytetyön aiheena oli tehdä laajalti ymmärrettävä dokumentaatio OBD2järjestelmästä ja tutkia sen mahdollisuuksia luoda auton moduuleihin yhteyden. Opinnäytetyön tavoitteena oli ohjelmoida ElmoScan ohjelmistosta uusi
ja laajempi versio. Uusi versio mahdollistaa yhdistämisen auton eri moduuleihin.
Tämän työn tarkoitus on kasvattaa ihmisten ymmärrystä OBD2järjestelmästä ja sen nykyaikaisista mahdollisuuksista. Työ selventää myös
mitä järjestelmä pitää sisällään ja millaisia ominaisuuksia sen avulla voidaan
tulevaisuudessa hyödyntää. Työssä kerron Suomessa olevasta katsastuksessa tapahtuvasta OBD2-järjestelmän tarkastuksesta.
Työssä tutustutaan lähemmin OBD2-järjestelmän liittyviin moodeihin ja niiden
tarjoamiin eri päätekomentoihin. Työssä esitellään tiettyjen päätekomentojen
antamia vastauksia ja niiden tulkintaa oikealla tavalla. Työn tarkoitus on selventää autoilijalle minkä takia auton vikamerkkivalo syttyy ja miten auton vikakoodit luetaan. Opinnäytetyössä tutkitaan mahdollisia tapoja ja menetelmiä
miten voi yhdistää autossa oleviin yksiköihin eli moduuleihin.
Opinnäytetyön loppupuolella on esitetty Suomalaisen OBD2-ohjelmiston, ElmoScan, kehittäminen. Kehittämistyön tavoitteena oli ohjelmoida uusi ElmoScan versio, joka mahdollistaa yhteyden luomisen tietyntyyppisiin moduuleihin. Uuden ohjelmistoversion kehittäminen vaati huomattavan määrän tutkimustyötä ja dokumentaatioiden ymmärtämistä käytännössä.
Opinnäytetyön toimeksiantajana toimi porilainen Softator Oy.
OBD2 SOFTWARE DEVELOPMENT
Huhtala, Teemu
Satakunnan ammattikorkeakoulu, Satakunta University of Applied Sciences
Degree Programme in Business Information Systems
October 2010
Supervisor: Stenfors Juha
Number of pages: 39
Appendices: 1
Keywords: Automotive engineering, inspection, diagnostics
_____________________________________________________________
The purpose of this thesis was to create comprehensive documentation of
On-Board Diagnostic system and create a new version of the ElmoScan
OBD2 diagnostic software. The new version of the software makes it possible
to connect to certain type of car modules.
One goal of this work is to increase people's understanding of the OBD2 system and its modern opportunities. This work also clarifies what the system
contains and what features it can utilize in the future. In this work I also tell
how the Finnish car inspection uses the OBD2-port.
This thesis looks into OBD2 general modes and PIDs. Also the thesis introduces some specific PIDs and replies, and how to convert the replies to real
information. The purpose is to clarify why a cars fault indicator lights up on
the car and how to read fault codes from the car. This work looks into the
possible ways and methods to connect specific type of car modules.
Finnish OBD2 software development is presented at the end of this thesis.
The software is called ElmoScan and purpose of this thesis was to program
new features to ElmoScan. The development of the new version of the ElmoScan software required a considerable amount of research.
The thesis was assigned by Softator Oy in Pori. Softator Oy is a Finish software Development Company
SISÄLLYS
SYMBOLI- JA TERMILUETTELO ................................................................... 6
1 JOHDANTO............................................................................................... 8
2 OBD2......................................................................................................... 9
2.1 Käyttötarkoitus ................................................................................ 10
2.2 Käyttäjät .......................................................................................... 11
2.3 OBD:n historia ................................................................................ 12
2.3.1 OBD1 ................................................................................... 12
2.3.2 OBD2 ................................................................................... 13
2.4 OBD2 Protokollat ............................................................................ 13
2.4.1 ISO 15765-4......................................................................... 14
3
2.4.2 Muut protokollat ................................................................... 14
2.5 Lainsäädäntö ja katsastus suomessa ............................................ 14
2.6 Autonvalmistajien käytäntö............................................................. 15
OBD:N TULEVAISUUS ........................................................................... 16
4
3.1 OBD3 .............................................................................................. 16
3.2 Autojen seuranta............................................................................. 16
OBD2:N KOMMUNIKOINTI .................................................................... 17
4.1 Lukijalaite ........................................................................................ 17
4.2 Tiedon pyytäminen ja vastauksen tulkitseminen ............................ 18
4.2.1 Moodin käyttäminen............................................................. 18
5
4.2.2 Moodin ja päätekomennon käyttäminen .............................. 19
OBD2 DIAGNOSTIIKKA ......................................................................... 20
5.1 Vikakoodit ....................................................................................... 20
5.2 Moodit ............................................................................................. 21
5.2.1 Nykyiset tiedot...................................................................... 22
5.2.2 Freeze Frame Data.............................................................. 22
5.2.3 Tallentuneet vikakoodit ........................................................ 22
5.2.4
5.2.5
5.2.6
5.2.7
Tyhjennä muisti .................................................................... 23
Happianturin ja järjestelmän seurannantestaus .................. 24
Vireillä olevat vikakoodit....................................................... 24
Autontiedot ........................................................................... 24
5.2.8 Pysyvät vikakoodit ............................................................... 25
5.3 Valmistajakohtaiset moodit ja päätekomennot ............................... 25
5.3.1 Ford ...................................................................................... 26
5.3.2 Muut valmistajat ................................................................... 26
6
MODUULIT.............................................................................................. 27
6.1 Käyttötarkoitus ................................................................................ 27
7
6.2 Autonvalmistajat ............................................................................. 28
6.3 Yhteyden luominen ......................................................................... 28
ELMOSCAN ............................................................................................ 29
7.1
7.2
7.3
7.4
Historia............................................................................................ 29
OBD2-ohjelmistojen nykytilanne..................................................... 30
ElmoScan ohjelmistoon tutustuminen ja työn etenemisaikataulu .. 30
Tavoitteet ........................................................................................ 32
7.5
7.6
7.7
7.8
Moduulien hakeminen..................................................................... 32
Selvitystyön aikaiset ongelmat ....................................................... 33
Ohjelmoinnin aikaisia ongelmatilanteita ......................................... 33
Saavutetut hyödyt ........................................................................... 35
7.9 Tulevaisuuden näkymät.................................................................. 36
8 POHDINTA .............................................................................................. 37
LÄHTEET....................................................................................................... 38
LIITTEET
SYMBOLI- JA TERMILUETTELO
$
Etuliite tarkoitus on selventää, että kyseessä on heksadesimaalijärjestelmään kuuluva luku. Työssä käytetään
etuliitettä yleisesti moodien yhteydessä.
ABS
(Anti-lock Brake System) Auton lukkiutumaton jarrujärjestelmä.
AIRBAG
Turvatyyny toimii yhtenä autojen turvallisuuslaitteena.
CAN-Väylä
(Control Area Network) automaatioväylä, joka toimii ajoneuvojen ja koneiden sisäisenä paikallisväylänä.
DTC
(Diagnostic Trouble Code) Yleinen vikakoodeista käytetty yleinen lyhenne.
ECM
(Engine Control Management) Moottoriohjauksen yksikkö.
ESC
(Electronic Stability Control) Elektroninen ajonvakautusjärjestelmä.
LED
(Light-Emitting Diode) Loistediodi eli ledi. Kun ledin läpi
johdetaan virtaa, niin se säteilee valoa.
OBD
(On-Board Diagnostic) Ajoneuvon sisäinen valvontajärjestelmä, joka seuraa autontoimintoja.
Kannettava ohjain Tässä työssä kannettava ohjain tarkoittaa kädessä pidettävää laitetta, joka osaa toimia itsenäisesti auton OBD2järjestelmän kanssa.
Pending DTC
(Pending Diagnostic Trouble Code) Viereillä olevat vikakoodit.
PIDS,
Päätekomennot
(Parameter IDs) päätekomentoja käytetään moodeissa,
joissa on enemmän kuin yksi komento.
Protokolla
Käytäntö tai standardi joka määrittelee tai mahdollistaa
laitteiden tai ohjelmistojen väliset yhteydet.
TCM
(Transmission Control Module) Vaihteiston kontrollointi
moduuli.
SAE
(The Society of Automotive Engineering) Yhdysvaltalainen autoalan standardisointijärjestö. Katso lisätietoa
http://www.sae.org/
VIN
(Vehicle identification Number) Autokohtainen tunnistetieto.
Esimerkki
auton
1M8GDM9A_KP042788.
Katso
tunnistetiedosta:
lisätietoa
http://www.angelfire.com/ca/TORONTO/VIN/VINcode.ht
ml
Vikamerkkivalo
Autojen mittaristoista löytyvä merkkivalo, joka ilmaisee
tallentuneista vikakoodeista.
8
1 JOHDANTO
Opinnäytetyössäni tulen kertomaan OBD2-järjestelmän nykyaikaisesta käyttötarkoituksista ja käyttäjäkunnan kasvamisesta. Samalla on tarkoitus esitellä
miten OBD2-järjestelmä on kehittynyt huomattavasti laajemmaksi alkuperäisestä OBD-järjestelmästä. Tavoitteena on myös esitellä nykyaikaista CANväylää, joka on muita protokollia kehittyneempi ja tämän hetkisessä tilanteessa ainoa käytettävä protokolla uusissa autoissa.
Dokumentaation osana tulee olemaan opastusta, miten jokainen aiheesta
kiinnostunut voi itse syöttää komentoja auton OBD2-järjestelmälle ilman kalliita ohjelmistoja. Komentojen syöttämisen lisäksi tarkoitus on kertoa miten
OBD2-järjestelmän tarjoamia vastauksia on mahdollista tulkita. Esittelen
myös tärkeimmät moodit, koska niitä voidaan pitää OBD2-järjestelmän perustana. Moodien toiminnallisuus täytyy sisäistää ja ymmärtää hyvin, jos haluaa
oppia OBD2-järjestelmän toiminnallisuutta tarkemmin. Perusteiden jälkeen
on hyvä tutustua hieman haasteellisempaan ja mielenkiintoisempaan alueeseen, eli moduuleihin. Moduuleilla tarkoitetaan autossa olevia eri yksiköitä,
joihin on mahdollisuus ottaa yhteys OBD2-järjestelmän kautta. Yksiköitä voivat olla vaikka auton ABS tai stereot.
Opinnäytetyöprojektissa tutkitaan mahdollista tapaa toteuttaa autojen diagnostiikka ohjelmistoon (ElmoScan) päivitys. Päivityksen tarkoituksena on
mahdollistaa ElmoScan ohjelmiston välityksellä yhdistämisen tietyntyyppisesti esiintyviin auton eri moduuleihin. Opinnäytetyönprojektin päätavoitteena on
saada julkaistua ohjelmistosta uusi ja entistä edistyneempi versio ElmoScan
ohjelmistosta.
Luvuissa 2-6 esittelen OBD2 toiminnallisuutta yleisellä tasolla. Luvussa 7
esittelen moduuleita ja niiden tarkoitusta. Luvussa 8 kerrotaan tarkemmin
ElmoScan ohjelmistoon tehdystä päivityksestä.
9
2 OBD2
OBD (On Board Diagnostic) termin pitäisi jokaiselle autolla omistajalle tuntua
tutulta termiltä. OBD2 on nykyaikainen tapa valvoa ja seurata auton kasvavia
sähköjärjestelmiä, sekä raportoida mahdollisimman monipuolisesti auton jokaista tapahtumaa lähes reaaliaikaisesti. OBD2-järjestelmä toimi erittäin monipuolisesti nykyaikaisten ohjelmistojen välityksellä.
Geneerisen OBD2-mittauksen suorittamiseen ei vaadita tunnuksia, eikä liikennettä olenkaan salattu. Tämä mahdollistaa käyttäjien tutustua järjestelmään yllättävän helposti ja vaivatta. Auton OBD2-porttiin liitetään pelkästään
lukijalaite, joka kommunikoi auton ja ohjainlaitteen välillä. Ohjainlaitteena voi
toimia erillinen kädessä pidettävä kannettava ohjainta (Kuva 1), autoon kiinteästi asennettava mittaristolaite tai ihan perinteinen kannettava tietokone.
Lukijalaite ja ohjainlaite voi olla myös yhdistetty samaan laitteeseen. Lukijalaitteen tehtävänä on välittää tietoa autosta ohjainlaitteelle, joka kyselee komennoilla haluttuja tietoja autolta.
Kuva 1. Tyypillisen näköinen kannettava ohjain. Lähde:
http://www.sinoytool.com/upload/pro/472-813200816312283.jpg.
10
Nykyään on vaikea edes ymmärtää kuinka paljon normaaleissa henkilöautoissa on sähköisesti ohjattuja laitteita. Tämän kaiken seuraamiseen on
kehitetty autoon oma diagnostiikkaportti, jonka tarkoituksena on seurata autossa tapahtuvia erilaisia muutoksia ja tapahtumia. Moni autoista enemmän
tietävä ei välttämättä edes osaa kuvitella mihin kaikkeen OBD2-järjestelmään
voidaan hyödyntää. Autokorjaajien työnkuvaan kuuluu entistä enemmän tietokonepohjainen ongelmien tutkiminen ja selvittäminen. Eroavuus on huikea
verrattuna siihen kun autoissa kulki vain muutama isompi sähköjohto ja loput
olivat mekaanisesti toteutettuja laitteita. Nykytilanne on kaukana tästä ja tämä aiheuttaa omat ongelmat, mutta osaksi se on vienyt kehitystä huimasti
eteenpäin ja turvallisuus on kehittynyt aivan uudelle tasolle.
2.1
Käyttötarkoitus
OBD2:n käyttötarkoituksia löytyy varmasti useita, eikä kaikkia ole varmasti
vielä keksitty tai hyödynnetty tarpeeksi kattavasti. Alkuperäinen käyttötarkoitus on ollut yksinkertainen ja toimiva: kehittää pakokaasujärjestelmää lähes
reaaliaikaisesti seuraava järjestelmä. Järjestelmä osaa myös havaita vikoja ja
tuoda ne muutamalla yksinkertaisella komennolla käyttäjälle. Autoilijoille koko
OBD2-järjestelmä saattaa tuntua vain isolta vaivalta ja turhalta rahastukselta
katsastuksessa, vaikka sitä se ei todellisuudessa ole. OBD2 järjestelmän tavoitteena on vähentää autojen päästöjä ja saada autoilijat nopeasti puuttumaan autoissa oleviin teknisiin ongelmiin ja vikoihin. Viat saattavat nostaa
huomattavasti auton päästöjä tai heikentää auton turvallisuutta. Tämän lisäksi OBD2-järjestelmä kykenee moneen muuhunkin tarkoitukseen.
OBD2-standardit päätekomennot tarjoavat suurehkon määrän lähes reaaliaikaista tietoa. Esimerkkeinä näistä tiedoista on: auton kierrosluku, nopeus ja
muiden eri anturin tarjoamaa tietoa. Saa selville kuinka kuumana koneen
jäähdytysneste oikeasti on tai kuinka lämmintä ilmaa koneen imusarjaan menee. Tämän tyyppistä tietoa on ilman OBD2-järjestelmää vaikea selvittää.
Pelkästään näille tiedoille löytyy jo huomattavamäärä käyttöä ja mahdollisuuksia tutkia moottorin toimintaa.
11
OBD2-järjestelmällä avulla on erittäin helppo seurata esimerkiksi auton kulutusta tarkemmin ja vertailla sitä omaan kirjanpitoon tai ajotietokoneen antamiin arvoihin. Tällaisen seurannan avulla esimerkiksi yritykset voivat kehittää
ohjelmiston seuraamaan ylinopeuksia, epätaloudellisia ajotapoja ja kehittämään autojen kuljettajia taloudellisemmaksi. Mahdollisuuksia ja käyttötarkoituksia on monia, kunhan löytyy tarpeeksi kehittäjiä tekemään monipuolisia
ohjelmia yleisesti saataville.
2.2
Käyttäjät
OBD2:lle löytyy useita eri käyttäjiä, kuten esimerkiksi autokorjaamot, katsastusasemat ja autoharrastajat. Näistä autokorjaamoilla ja katsastusasemilla on
suurin käyttötarve vikakoodien lukemisessa ja niiden huoltotarpeiden selvittämisessä.
Näiden lisäksi löytyy myös edistyneitä käyttäjiä, jotka saattavat jopa kehittää
oman ohjelmiston, joka soveltuu paremmin hänen käyttötarkoitukseensa.
Koska olemassa olevien ohjelmistojen tarjonta saattaa olla liian suppea tai ei
sovellu tarpeeksi hyvin käyttäjän käyttötarkoitukseen. Näitä ohjelmia ei välttämättä ikinä julkaista yleisesti saataville ja niiden toiminta voi jäädä täysin
kokeelliseksi. Toisista ohjelmistoista voi kuitenkin kehittyä laadukas ohjelmisto, jonka tulevaisuus voi olla hyvinkin tuottoisa.
Osa käyttäjistä on innokkaita autoharrastajia, jotka haluavat oppia, seurata ja
ymmärtää autojen toimintaa. Innokkaimmat käyttäjät yrittävät saada kaiken
mahdollinen informaation ulos autosta ja päästä seuraamaan sitä reaaliaikaisesti. Autoharrastajat keskustelevat eri keskustelupalstoilla ja foorumeilla.
Tällä tavalla he jakavat tietoa keskenään. Tämän tyyppinen kehittävä tutkimustyö on jo saanut aikaan useita pienempiä ohjelmia, jotka toimivat mainiosti ja ovat käyttötarkoitukseltaan edistyksellisiä kehitettyyn toimintoon.
12
Pienissä OBD2 ohjelmistoissa kehitystä tapahtuu yleisesti hitaasti, mutta
suurin ongelma tulee olemaan kehittäjän eli yksittäisen ihmisen tai pienen
ryhmän aika. Lopulta kehittäjien resurssien väheneminen saattaa lopettaa
kehitystyön kokonaan ja ohjelmiston ylläpitäminen tulee loppumaan kokonaan.
2.3
OBD:n historia
OBD:n historia on jo yllättävän pitkä ja kehitys on mennyt paljon eteenpäin.
Kehittäminen on alkanut 1980-luvun alkupuolella, jolloin ensimmäiset OBDportit tulivat autoihin ja kehitystyötä alkoi tästä. Alussa suurin heikkous oli laitteiden yhteensopimattomuus. OBD-järjestelmän kehittämisen päätavoite oli
autoilla puhtaamman ilman puolesta. OBD:n tarkoitus on seurata auton pakokaasujen päästöjä ja tiukentaa päästöjen seurantaa. Tärkeimmät ovat olleet päätökset, jotka ovat pakottaneet autovalmistajien lisäämään täydellisesti toimivan OBD2-portin autoihin. Yhdysvalloissa tämä tapahtui jo vuonna
1996. (Omitec Limited)
2.3.1
OBD1
OBD1-järjestelmä oli suhteellisen yksinkertainen ja se sisälsi ainoastaan
happianturin tarkkailun, pakokaasunkierrätyksen seurannan, bensiininsyötön
ja ECM:n seurannan. OBD1 oli tarkoitettu puhtaasti seuraamaan pakokaasupäästöjä auton elektronisten moottorinohjauksen välityksellä. Vikatiedot saatiin yleensä autoista ilman erillistä lukijalaitetta ja siihen riitti pelkästään LEDin
käyttäminen tai auton vikamerkkivalo. Vikakoodien raportoimiseen toimii vikamerkkivalon vilkkuminen ja tästä saatiin luettua mitä vikakoodeja oli tallentunut järjestelmän muistiin. OBD1 heikkoutena oli liian väljä standardi, joka
johti jokaiselle valmistajalle mahdollisuuden kehittää omalaista toimintaa.
Tämä aiheutti useiden erilaisten adapterien tarvetta ja mahdollisti joihinkin
järjestelmiin pääsyyn ainoastaan valmistajakohtaisilla lukijalaiteilla. (Omitec
Limited)
13
2.3.2
OBD2
OBD2-Järjestelmä on asetettu huomattavasti tarkempi standardi ja kehittynyt
samalla käyttäjäystävällisemmäksi, joka helpottaa käyttäjien tutustumista järjestelmään. Tiukemman standardin oli tarkoitus antaa tarkemmat ohjeistukset, miten järjestelmän tulee toimia. Samalla havaita herkemmin mahdolliset
päästöjärjestelmiin liittyvät viat ja ongelmat. Merkittävä hyöty tiukemmasta
standardista oli OBD2-liittimen standardisointi tiettyyn malliin. Katso kuva 2.
Tämä vähensi ylimääräisien adapterien käyttämistä. Autoissa oleva vikamerkkivalo saattaa vilkahtaa herkästi, jos autossa ilmenee hetkellistä vikaa.
Vikamerkkivalo ei välttämättä jää palamaan, koska se voi johtua hetkellisestä
ongelmasta sytytyksessä tai joku tärkeä osa-alue autosta menetti yhteyden
auton OBD2-järjestelmään.(Omitec Limited)
Kuva 2. OBD2 standardi portti. Lähde:
http://us1.webpublications.com.au/static/images/articles/i19/1935_5lo.jpg.
2.4
OBD2 Protokollat
OBD2-protokollia löytyy jo useita erilaisia, joiden käyttäytymisessä on pieniä
eroavuuksia. Nykyaikaiset lukijalaitteet osaavat automaattisesti valita oikean
protokollan. Vanhemmat protokollat ovat poistuneet jo käytöstä ja uusimmat
kehittyvät kokoajan paremmaksi. Tämä aiheuttaa ohjelmistojen kehittäjille
huomattavaa määrää lisätyötä, koska joudutaan testaamaan jokaista protokollaa erikseen ja varmistaa toimiiko laitteisto ja ohjelmisto oikein. Protokollien tarjoaman tiedon sisällön kanssa ei pitäisi olla eroa, mutta ero löytyy tiedonpituudessa ja sen käsittelyssä. Vuoden 2008 jälkeen valmistetuissa autoista pitäisi löytyä aina CAN-väylä. (OBD Automotive Oy 2007)
14
2.4.1
ISO 15765-4
ISO 15765-4 eli CAN-väylä tarjoaa entistä enemmän käyttäjille tietoa auton
OBD2-järjestelmästä. CAN-väylä on nykyaikaisin protokolla, joka eroaa huomattavasti vanhemmista protokollista. Tietoa ei tarjota vanhaan tapaan eli
ottamalla yhteys tiettyyn moduuliin, vaan se tarjoaa kaikista moduuleista tulevat tiedot yhtäaikaisesti. Tuleva tieto kuitenkin priorisoidaan tärkeyden mukaan eli kaikki turvalaitteet ovat ennen muita ja vähemmän tarpeellinen tieto
vasta näiden jälkeen. Harvoissa Suomen teillä liikkuvissa autoissa on CANväylä, koska se tuli pakolliseksi vasta vuoden 2008 jälkeen. CAN-väylän tiedonsiirtonopeus on huikeasti vanhoja nopeampi ja luotettavuus ei ole silti
kärsinyt. (OBD Automotive Oy 2007; Müller 2005, 44-45 )
2.4.2
Muut protokollat
Ennen vuotta 2008 oli käytössä useita eri protokollia, jotka johtivat sekavaan
käytäntöön. Yhdellä autonvalmistajalla saattoi olla useita eri protokollalla käytössä samassa automallissa. Tietyn protokollan käyttäminen ei ollut yhtenäinen muiden autovalmistajien kanssa. Vanhempien protokollien suurimpia
heikkouksia oli hidas tiedonsiirto. Suurimpia eroja toiminnallisuudessa CANväylän kanssa on fyysisten osoitteiden eroavuus ja tästä seurasi komennoilla
pyydettyjen vastauksien pituuksien vaihtelua. (Müller 2005, 43-45)
2.5
Lainsäädäntö ja katsastus suomessa
Suomen laissa on määritetty, että jokaisen 2001 vuoden jälkeen valmistetuissa bensiinikäyttöisissä autoissa pitää olla toimiva OBD2 portti ja dieselkäyttöisissä autossa vuodesta 2003 eteenpäin. Vuosikatsastuksessa tarkistetaan OBDII portin toimivuus ja sen muistiin tallentuneet virheilmoitukset ja
auton tämän hetkiset päästöt.
15
Vuosikatsastuksessa hyväksytään myös valtuutetun korjaamon tarjoama
OBD-tarkastuksen tuloste, jossa tulee ilmetä seuraavat tiedot TraFi:n (AKE
2007, 2-4) mukaan:
•
Vikamerkkivalon tila, mikäli valo on aktiivinen ja se on mittalaiteesta
saavissa.
•
Selkokielinen informaatio OBD-järjestelmän mahdollisista vioista.
•
Selkokielinen informaatio auton sisäisen valvontajärjestelmän toimintavalmiuden osatestien suorittamisesta.
•
Mikäli kaikkia osatestejä ei ole pystytty suorittamaan, merkitään tieto
lambdasäädön toiminnasta ja sen tiedoista.
1.1.2004 jälkeen valmistetuille autoille suoritetaan korotettu pyörintänopeus
päästötesti, josta tulee ilmetä normaalien tietojen lisäksi
2.6
•
Lambda-arvo
•
Co- ja HC-arvot
•
happi- ja hiilioksidi-arvot
•
moottorin pyörintä nopeus, mikäli se on mahdollista mitata
Autonvalmistajien käytäntö
Autonvalmistajilla on tiukat politiikat järjestelmien salaamisesta ja valmistajakohtaisten komentojen julkaisemattomuus on aina ollut hidastava tekijä
OBD2-ohjelmistojen kehittämisessä. Mahdollista on myös ostaa eräiltä autovalmistajilta parannettujen OBD2 komentojen tiedot. Näiden tietojen hinnat
ovat pienimmille yrityksille aivan liian korkeita. Tämän tyyppisen toiminnan
tarkoituksena on estää mahdollisuus niiden ostamiseen. OBD2 ohjelmistojen
hitaat markkinat estävät kehitystyön, koska autonvalmistajien antamat tiedot,
ovat vain isojen yritysten käytettävissä.
Pienimmissä ohjelmistojen kehitystyössä joudutaan harrastamaan paljon hidasta tutkimustyötä. Tällöin joudutaan käyttämään suuria määriä resursseja
pelkästään yksinkertaisiin autonvalmistajakohtaisien moduulien yhteyksien
luomiseen ja päätekomentojen tarjoamien vastauksien tulkitseminen.
16
3 OBD:N TULEVAISUUS
Tulevaisuudessa tullaan suurella todennäköisyydellä kehittämään kehittyneempi versio OBD2-järjestelmästä, joka tulee korvaamaan sen lähes täysin. Nykyiset hybridi- ja sähköautot, ovat selvästi tulevaisuudessa isomassa
asemassa, mutta OBD2 ei ole kehitetty sopimaan näiden autojen vaatimiin
tarpeisiin.
3.1
OBD3
OBD-järjestelmän kehitys menee eteenpäin jolloin olemassa olevan järjestelmän kehittäminen tulee nopeasti eteen. Tiedetään varmasti, että
OBD3:een on jo korjattu OBD2 löytyvät puutteet ja lisätään nykyaikaisuuteen
liittyviä ominaisuuksia. Yhtenä suurimpana uudistuksena odotetaan, ettei
vaadita fyysistä yhteyttä tietojen hakemiseen autosta. OBD3-järjestelmässä
mahdollistetaan tapa jolla voidaan hakea kaikki tiedot langattomasti autosta.
Nykyään on huomattava määrä tapoja jotka mahdollistavat langattoman tiedonsiirron autossa. Tiedonsiirtoon voidaan käyttää esimerkiksi Wlan tai Bluetooth -tekniikoita. Langatonta yhteyttä pidetään yhtenä suurimmista uudistuksista, jota OBD3 tuo mukanaan.(California Air Resources Board, 2009,
13)
Langattoman tekniikan tarkoituksena on vähentää auton eliniän aikana aiheuttamia käyttökustannuksia. Tieto auton vikatiedoista voidaan lähettää välittömästi sitä valvovalle viranomaiselle (TraFi). (California Air Resources
Board, 2009, 13)
3.2
Autojen seuranta
Nykyaikaisilla järjestelmillä ja ohjelmistoilla on mahdollisuus hallita auton
OBD2-järjestelmää. Tällöin pystytään hallitsemaan useita autontoimintoja.
Hyvänä lisänä on myös GPS:n tuleminen autoihin.
17
4 OBD2:N KOMMUNIKOINTI
Yhdistämisen OBD2-järjestelmään tarvitaan aina lukijalaite, joka tulkitsee
viestit OBD2-järjestelmän ja tietokoneen välillä. Erityisen OBD2-ohjelmiston
käyttäminen ei ole välttämätöntä, jos tietää miten luoda yhteyden tietokoneen
ja lukijalaiteen välille. Yhteyden luomisen jälkeen voidaan kysellä autolta haluttuja tietoja. Lukijalaite välittää autolta tulleen vastauksen terminaaliin, kunhan terminaali osaa ottaa tietoa tarpeeksi nopeasti vastaan.
4.1
Lukijalaite
OBD2-lukijailaite toimii yleensä yhdistettynä johdolla tietokoneeseen, mutta
tarjolla on myös langattomia vaihtoehtoja. Langattomat lukijalaitteet toimivat,
joko Bluetooth tai Wlan tekniikoilla. Langattomalla tiedonsiirrolla yritetään
helpottaa laitteiden käyttämistä ja välttää vaarallisia johtoja liikkuvassa autossa. Lukijalaitteen tehtävänä on hoitaa OBD2 tiedon käyttäjän ja OBD2järjestelmän välillä.
Nykyaikana lukijalaitteita on lukemattomia määriä tarjolla ja hinnat liikkuvat
kymmenen ja usean tuhannen euron välillä. Käyttäjän tarpeesta riippuen
kannattaa valita lukijalaite tarkasti. Nimittäin on turha maksaa kalliista laitteesta, jos tarpeena on pelkästään vikakoodien lukeminen. Jos käyttäjä haluaa tehdä muutakin kuin lukea vikakoodeja saa nykyaikaisen, laadukkaan ja
kattavan lukijalaitteen tilattua edullisesti. Lukijalaitteiden tärkeimmät ominaisuudet ovat tulkin toimivuuden lisäksi lukijalaitteen ominaisuudet, luotettavuus, nopeus.
Kun tietokone on saanut yhteyden lukijalaitteeseen, niin kaikki nykyaikaiset
lukijalaiteet pitäisi pystyä tunnistamaan automaattisesti auton käyttämä tiedonsiirto protokolla. Vanhemmissa lukijalaitteissa on mahdollista, että käyttäjä joutuu itse määrittämään auton käyttämän protokollan tai lukijalaite on tehty pelkästään toimimaan tietyn protokollan kanssa.
18
4.2
Tiedon pyytäminen ja vastauksen tulkitseminen
Yhteyden luomisen jälkeen on erittäin helppoa kysellä haluttuja tietoja autolta. Tiedonpyytämiseen löytyy moodi komentoja tai jos moodi sisältää useampia eri komentoja, niin käytetään moodia ja päätekomentoa yhdessä. Kaikki
moodit eivät sisällä useita komentoja. Kun auton OBD2-järjestelmältä on
pyydetty tietoa, niin se saadaan vastaus merkkijonoina. Merkkijono voi sisältää joko heksadesimaaleja tai suoraan vastauksen merkkijonossa. Merkkijonojen pituus voi vaihdella käytetyn protokollan mukaan, koska protokollien
tunnistetietojen esiintymisessä on eroavuuksia. Merkkijonon vastausta täytyy
osata tulkita oikein, koska muuten merkkijonon tarjoamista tiedosta ei ole
hyötyä. Merkkijonojen tulkitsemisesta löytyy tietoa SAE:n maksullisista dokumenteista. (Seyfert, Karl 2007)
Seuraavissa kohdissa esitän esimerkkejä pelkän moodin ja moodin ja päätekomennon käyttämisestä todellisuudessa
4.2.1
Moodin käyttäminen
Esimerkki pyydettäessä auton vikakoodeja pelkällä moodilla $03. Jos auton
muistiin ei ole tallentunut, niin ei vastausta välttämättä tule ollenkaan. Vikakoodien pyytämiseen riittää kun syöttää lukijalaitteelle pelkästään numerosarjan ”03”.
Kuva 3. Kuvankaappaus ElmoApuri ohjelmasta. Vikakoodien luku.
Kuvassa 3. olevissa riveissä on nähtävissä suoraan vikakoodit. Vikakoodeja
tulkittaessa rivien otsikkotiedot (43) ei ole merkitseviä. Vikakoodit ovat aina
neljän merkin ryhmissä ja kuvan 3 mukaisessa tapauksessa on vikakoodeja
yhteensä seitsemän.
19
4.2.2
Moodin ja päätekomennon käyttäminen
Esimerkki pyydettäessä auton nopeutta käytetään moodilla $01 ja komentoa
0D.
Kuva 4. Kuvankaappaus ElmoApuri ohjelmasta. Auton nopeus.
Kuvassa 4 olevan vastausrivin 4 ensimmäistä merkkiä palauttaa kysytyn komennon. Tämän jälkeen loput merkeistä kertoo nopeuden heksadesimaaleina. Vastauksen saa purettua kääntämällä heksadesimaalin normaaleiksi desimaaleiksi, jolloin kuvanotto hetkellä nopeudeksi saatiin 53km/h. (Elm
Electronics Inc. 2010, 27)
Esimerkki pyydettäessä auton kierrosluku tietoa käytetään moodilla $01 ja
komentoa 0C.
Kuva 5. Kuvankaappaus ElmoApuri ohjelmasta. Auton kierrosluku.
Kuvassa 5 olevan vastausrivin 4 ensimmäistä merkkiä palauttaa kysytyn komennon. Tämän jälkeen loput merkeistä on vastaus eli ”20 51”. Merkkijono
käännetään heksadesimaali desimaaleiksi, jonka jälkeen saatu luku jaetaan
neljällä, jolloin saadaan tulokseksi 2068 kierrosta minuutissa. (Elm
Electronics Inc. 2010, 27)
20
5 OBD2 DIAGNOSTIIKKA
OBD2-järjestelmän diagnostiikalla mahdollistetaan auton toimintojen seuranta ja muistiin tallentuneiden tietojen lukemisen OBD2-ohjelmiston avulla.
Diagnostiikka on tärkeimpiä toiminnallisuuksia OBD2-järjestelmässä. OBD2järjestelmän diagnostiikka tarjoaa huomattavan määrän lähes reaaliaikaista
tietoa. Usean tiedon tulkitsemisella voidaan tehdä monipuolisia ohjelmia, joiden toiminnot pitävät sisällä laajan kokonaisuuden.
5.1
Vikakoodit
Vikakoodien (Diagnostic Trouble Code, DTC) tallentamista ja tulkitsemista
pidetään OBD2-järjestelmän yhtenä tärkeimpänä ominaisuutena. Vikakoodit
tallentuvat aina samalla tavalla auton muistiin ja yksittäisen vikakoodin merkkijonon pituus on aina vakio, vaikka tiedonsiirtoprotokolla vaihtuisi. Vikakoodien tarkoituksena on tallentaa autonmuistiin tapahtuneet viat, jotka ovat ilmentyneet tietyssä tilanteessa. Vikakoodien tallentumisella on tarkoitus helpottaa autossa esiintyvän vian määrittämistä. Vikakoodien tallentuminen
mahdollistetaan nykyaikaisemman korjaamotoiminnan. Autossa tapahtuvan
vian ilmentyessä tarpeeksi useasti (kolme kertaa) se tallentuu muistiin, jolloin
vikamerkkivalo saattaa syttyä. Vika voi ilmentyä myös satunnaisesti pitkällä
aikavälillä, jolloin vikakoodia ei tallenneta normaaliksi vikakoodiksi vaan vireillä olevaksi vikakoodiksi. Vikamerkkivalon palaminen ei estä autolla ajamista
tai välttämättä haittaa lainkaan autontoimintaa. Vikamerkkivalon palamisen
löytyy yleensä selitys vikakoodeja luettaessa lukijalaitteella. Vikakoodienlukeminen on erittäin tärkeä suorittaa säännöllisesti, koska se on kehitetty nimenomaan autojen turvallisuuden ja luotettavuuden takia. Vikakoodien lukeminen lukijalaitteella saattaa tuoda julki, myös autossa vireillä olevia vikoja.
Moni autojen tekniikasta ymmärtävä saattaa säästää kalliin korjaamokäynnin,
kun pystyy lukemaan vikakoodit omalla lukijalaitteellaan. Autokorjaamo veloittaa jo lukijalaitteen hinnan pelkästään yhden auton vikakoodien lukemisesta.
21
Vikamerkkivalo voi syttyä jo pienestäkin ongelmasta kuten huonosta kontaktista auton anturin liittimessä. Tämä aiheuttaa yhteyden pätkimisen ECM:n
kanssa. Pätkimisen seurauksena vika on toistuva, jolloin vikamerkkivalo syttyy. Vikakoodien lukemisella pääsee heti selville mikä sytytti vikamerkkivalon
ja esimerkiksi pelkän liittimen putsaamisella tuli säästettyä melko kallis korjaamo käynti.
5.2
Moodit
Moodit sisältävät OBD-järjestelmän päätoiminnallisuudet omissa osaalueissaan. Moodit toimivat komentoina, joita OBD2-järjestelmä kuuntelee ja
osaa niihin vastata. Osa moodeista sisältää huomattavan määrän enemmän
alikomentoja kuin pelkän moodi komennon. Alikomentoja kutsutaan päätekomennoiksi (PIDS).
Moodien
jakaminen
selkeisiin
omiin
osa-alueisiin
selkeyttää
OBD2-
järjestelmän toimintaa. Jokainen moodi on kehitetty tiettyyn toimintaan ja tarkoitukseen. Päätekomennot ovat moodien sisäisiä komentoja, joilla saadaan
osoitettua tarkemmin mitä tietoa haluaa kysyä OBD2-järjestelmältä. (sae
j2178)
Seuraavassa taulukossa (Taulukko 1) on lueteltuna kaikki yleisimmät käytössä olevat moodit. Moodien tarkempi kuvaus esitellään seuraavaksi alaotsikoiden avulla.
Taulukko 1. Yhteenveto moodeista. (Seyfert, Karl 2007)
Moodi
$01
$02
$03
$04
$05, $06
$07
$09
$0A
Tarkoitus
Nykyiset tiedot
Freeze Frame Data
Tallentuneet vikakoodit
Tyhjennä muisti
Happianturin ja järjestelmän seurannantestaus
Vireillä olevat vikakoodit
Auton tiedot
Pysyvät vikakoodit
22
5.2.1
Nykyiset tiedot
$01 on moodeista eniten käytetty, koska se sisältää huomattavan määrän
toiminnallisuutta. Moodi $01 sisältää esimerkiksi tallentuneiden vikakoodien
lukumäärän ja huomattavan määrän standardisoituja päätekomentoja. Päätekomentoja avulla saadaan kyseltyä useiden eri antureiden tämänhetkiset
arvot. Ohjelmistot yleensä hyödyntävät näitä tietoja joko tietojen keräämiseen
tai näyttääkseen eri arvoja graafisessa muodossa käyttäjille. Moodin $01
päätekomentojen avulla voidaan kysellä hyödyllistä tietoa. Esimerkkinä hyödyllisistä tiedoista ovat: auton tämänhetkinen nopeus, kierroslukumäärän, auton käynnissä olo aika tai kuinka pitkään autolla on ajettu vikamerkkivalo
päällä. Suurin osa tiedoista on merkkijonoja joiden tarkoitus ei selviä ennen
niiden kääntämistä oikeaan muotoon. Oikeaan muotoon kääntäminen ei ole
yksiselitteinen, vaan tapahtuu hyvinkin erityyppisten laskelmien avulla. (SAE
International 1997, 31)
5.2.2
Freeze Frame Data
$02 moodin tarkoituksena on tallentaa vikatilanteen tapahtuessa muistiin
huomattava määrä hyödyllistä tietoa vikakoodin tapahtuma hetkestä. Moodi
$02 tallentama tietoa sisältää esimerkiksi tapahtuneen vikakoodin, auton nopeuden ja kierrosluvun. Nämä tiedot on mahdollista lukea ja analysoida,
myös jälkikäteen. Tallentuneen tiedon avulla on mahdollista selvittää mistä
vikatilanne saattoi johtua tai oliko mahdollisesti poikkeuksellinen vikatilanne
päällä. Poikkeuksellinen tilanne voi olla esimerkiksi isoilla kierroksilla tapahtunut auton huomattava tärinä, joka on aiheuttanut tiedonsiirto ongelman anturin ja OBD2-järjestelmän välillä. (SAE International 1997, 31)
5.2.3
Tallentuneet vikakoodit
$03 moodi on OBD2-järjestelmän yksi helpoimmista moodeista käyttää, tulkita ja analysoida. Kyseltäessä pelkällä moodilla $03 saadaan vastaus, joka
sisältää kaikki järjestelmän muistiin tallentuneet oikeat vikakoodit. Moodin 03
23
palauttama vastaus ei sisällä tietoa mitä vikakoodi tarkoittaa, vain pelkän
merkkijonon. Merkkijonon ensimmäisen merkin avulla voidaan päätellä mikä
auton osa-alue on kyseessä. Aina kun vikakoodeja on tallentunut tämän
moodin muistiin, vikamerkkivalon syttyy automaattisesti. Jos vikakoodeja ei
ole ollenkaan järjestelmän muistissa, vastausta ei tule tai se on tyhjä.(SAE
International 1997, 32)
5.2.4
Tyhjennä muisti
$04 on tarkoitettu tyhjentämään auton muistiin tallentuneet tiedot, jotka liittyvät vikakoodien tallentumiseen ja pakokaasupäästöjen seurantaan. Moodi ei
sisällä yhtään erillistä päätekomentoa vaan moodi toimii pelkästään kaikkien
tietojen tyhjentämiseen. Tärkeintä tietojen tyhjentämisessä on muistaa, että
tyhjennettyjä tietoja ei voi palauttaa ollenkaan. Moodi $04 tyhjentää seuraavat osa-alueet:
•
Vikakoodien määrästä
•
Vikakoodeista
•
Freeze frame datan tallentaneen vikakoodin
•
Freeze frame datan sisällöstä
•
Happianturin testauksen tiedot
•
Järjestelmän seurannan tila
•
Moodin $06 ja $07 tulokset
Mikäli, joku tyhjennettävistä osa-alueista ei vastaa $04 komentoon se ohitetaan ja jatketaan seuraavaan osa-alueeseen. Tietojen tyhjentäminen ei ole
vaarallista tai haitallista. Tallentuneet tiedot vain menetetään lopullisesti.
Moodi tulisi suorittaa aina kun vikakoodit on luettu ja mahdollinen vian aiheuttaja korjattu. Vikakoodien muistia ei pitäisi joutua turhaan tyhjentämään, jos
järjestelmä on täysin kunnossa. (SAE International 1997, 32)
24
5.2.5
Happianturin ja järjestelmän seurannantestaus
$05 ja $06 moodit toimivat testausmoodeina, joiden avulla pystytään selvittämään, saako auto puhtaan testaustuloksen. Happianturin moodin $05 toimiminen ei ole välttämätöntä, jos järjestelmäntestausmoodi $06 toimii.
Katsastuksessa suoritetaan vain moodin 06 testaus, joka antaa kattavan vastauksen auton osa-alueiden toimivuudesta. Jos moodin $06 tarjoamaa tietoa
ei saada tai joku osa-alueista ei toimi joudutaan suorittamaan moodi $05.
(SAE International 1997, 32, 36)
5.2.6
Vireillä olevat vikakoodit
$07 moodi kertoo vireillä olevat vikakoodit. Vireillä olevat vikakoodit ovat toistuneet satunnaisesti pitkällä aikavälillä tai alle 3 kertaa. Näiden tietojen avulla
voi yrittää hakea satunnaista vikaa tai muuten ajon aikana ilmenneitä hetkellisiä ongelmia. Vireillä olevat vikakoodit siirtyvät automaattisesti moodin $03
alaisuuteen jos ne toistuvat yli 3 kertaa. Moodin $07 tarkoituksena on mahdollistaa nopeampi vianpaikantaminen vikakoodien nollaamisen jälkeen. Vireillä olevat vikakoodit helpottavat autokorjaajan toimintaa, koska ajokerran
jälkeen pääsee heti näkemään onko vikakoodi ilmestynyt uudestaan nollaamisen jälkeen. (SAE International 1997, 36)
5.2.7
Autontiedot
$09 moodi sisältää autosta tallennettuja tietoja, joista hyödyllisin on autokohtainen VIN-sarjanumero. Sarjanumeroa on hyödyllinen käyttää, jos haluaa
yksilöidä tallennetut autot, omaan ohjelmaan. VIN-sarjanumeron avulla voidaan myös selvittää automerkki-kohtainen sarjanumerointi. VIN-sarjanumero
on
tallennettu
5-riviseksi
International 1997, 39)
merkkijonoksi
OBD2-järjestelmässä.
(SAE
25
5.2.8
Pysyvät vikakoodit
$0A moodin tallentuneiden tietojen tarkoitus ei ole poistua käyttämällä moodia $04. Pysyvät vikakoodit poistuvat automaattisesti vasta kun vika on korjaantunut ja OBD2-järjestelmä huomaa tapahtuneen muutoksen. Moodi $04
saattaa sammuttaa vikamerkkivalon hetkellisesti, mutta se syttyy uudestaan
kun diagnostiikka on huomannut sen uudelleen. Tällöin vikamerkkivalon syttyy automaattisesti ja pysyy päällä siihen asti kun vika on korjattu. (SAE
International 1997, 44)
5.3
Valmistajakohtaiset moodit ja päätekomennot
Edellä esiteltyjen moodien lisäksi löytyy huomattava määrä tuntemattomampia moodeja, jotka voi paljastaa paljon uutta erittäin hyödyllistä tietoa. Tämän
tiedon löytäminen saattaa usein viedä aikaa huomattavan määrän aikaa. Tieto ei välttämättä löydy kirjoista tai muualta suoraan luettavana olevista lähteistä. Tietoja saattaa löytää esimerkiksi Internetin maksullisista palveluista,
joihin liittyminen saattaa maksaa useita tuhansia euroja. Mahdollista on myös
hankkia tietoa suoraan autonvalmistajilta, mutta näidenkin hinnat ovat hyvin
korkeita. Korkeat hinnat hankaloittavat suuresti tietojen tarkempaa keräämistä ja sen hyödyntämistä.
Toisien autovalmistajien moodit ja päätekomennot saattavat pienellä mahdollisuudella löytyä Internetistä ja toisista automerkeistä ei löydy mitään. Mahdollinen tapa selvittää tai varmistaa oman auton tietoja on käyttää valmista
ohjelmistoa, josta löytyy halutut toiminnot tai ominaisuudet.
Seuraavaksi esitellään yksi automerkki, jossa moodi tietojen selvittäminen ja
löytäminen osoittautui haasteelliseksi. Esiteltävä automerkki on Ford. Muut
automerkit käsitellään yhteenvetona omassa kohdassa.
26
5.3.1
Ford
Fordin käyttämä moodi on $22. Samaa tapaa käyttävät muutama autonvalmistaja, kuten esimerkiksi General Motors -autokonserni. Kun oikeanlainen
moodi on löydetty, luodaan yhteys käyttämällä sitä. Moodin yhdistäminen on
vasta ensimmäinen askel todelliseen moodin tietojen käyttämiseen. Yhdistämisen jälkeen on pakollista aloittaa selvitystyö, jotta löytää oikeat päätekomennot ja mitä kyseinen päätekomento tarkoittaa. Päätekomentojen syöttämisen jälkeen saadaan vastaukset merkkijonoja. Merkkijonon tulkitsemiseen
tarvitaan mahdollisesti purkaustapa, jonka avulla merkkijono puretaan oikeaksi tiedoksi. (Ford Motor Company 2007, 59-60)
5.3.2
Muut valmistajat
Monilta autovalmistajilta löytyy oma moodinsa. Eri autonvalmistajien käyttämät moodit poikkeavat mahdollisesti General Motorsin ja Fordin käyttämästä
moodista $22. Ainoa kriteeri moodin numeroksi on, että sen pitää olla järjestysnumeroltaan yli 9. Taulukosta 2 löytyy esimerkkejä.
Taulukko 2. Esimerkkejä autovalmistajien moodeista.
Autonmerkki
Toyota
Mazda
Moodi
$21
$22
OBD2-ohjelmistojen kehittäjät ovat huomanneet autonvalmistajien käyttämät
moodit ja niiden päätekomennot. Jolloin kehittäjät panostavat sen tutkimiseen
tarkemmin entistä enemmän. Monien OBD2-ohjelmistojen kehittäjien tilanne
on tehdä valmistajakohtaiset paketit jokaiselle autovalmistajille. Autovalmistajien paketeilla yritetään hyödyntää autovalmistajakohtaiset moodit. Autovalmistajakohtaisella paketin avulla saadaan lisättyä ohjelmiston myyntiä ja näkyvyyttä. (Rleale 2009)
27
6 MODUULIT
Autossa saattaa nykyaikana olla jo useita kymmeniä erilaisia moduuleja perinteisen ECM-yksikön lisäksi. Moduulilla tarkoitetaan erilaisia pienempiä yksiköitä. Moduulit on kehitetty hoitamaan sille tehtyä tarkoitusta ja mahdollisesti välittämään tietoa eteenpäin. Aikaisemmin moduulien ongelma on ollut
heikko tai hankala moduulien tiedon välittäminen.
Yleisesti tärkeimmät moduulit kuitenkin liittyvät läheisesti auton toimintaan ja
turvallisuuteen. Auton toimintaan liittyviä moduuleita ovat muun muassa ECM
ja TCM. Puolestaan turvallisuuteen liittyviä moduuleita ovat muun muassa:
ABS, Airbag ja ESC. Vähemmän tarpeellisia moduuleita saattaa löytyä uusista autoista huomattavan paljon. Vähemmän tarpeellisia moduuleita voivat olla
esimerkiksi stereot, lukot ja muut mukavuuteen liittyvät tekijät. Moduulien tärkeimpänä tekijänä on luoda yhteys muihin moduuliin, jotka mahdollistavat
tiedonsiirtoa suoraan moduuleista käyttäjälle. OBD2 moduulit tarjoavat mahdollisuuden, jolla vältetään jokaiseen laitteeseen fyysinen yhteyden luominen.
Moduulien avulla mahdollistetaan yhden portin välityksellä tiedonsiirtämisen.
OBD2-järjestelmä on yhteensopiva usean moduulin kanssa. Ongelmana on
moduulien yhteen sopivuus OBD2-järjestelmän kanssa. Harva moduuli on
tehty suoraan täysin yhteensopivaksi OBD2-järjestelmän kanssa. (Elm
Electronics Inc. 2010, 35-37)
6.1
Käyttötarkoitus
Käyttötarkoituksia moduuleille varmasti löytyy useita, koska jokainen moduuli
eroaa toisistaan. Käyttötarkoitukseen voi liittää kaikki auton toiminnot ja niiden säätömahdollisuudet. Jollekin voi olla tärkeää päästä tutkimaan vaihdelaatikon tarjoamia tietoja, vaikka esimerkiksi akseleiden pyörintä nopeuksia ja
toiset voivat olla kiinnostuneita päästä vaihtamaan mittaristonvalojen värisävyjä.
28
6.2
Autonvalmistajat
Määrityksen mukaista käytäntöä moduulien kanssa toimimiseen ei ole ollut
montaa vuotta, joten autonvalmistajat ovat käyttäneet itse kehittäminään keinoja yhteyden luomiseen moduuleihin. Nämä Autovalmistajien omat tavat
vaikeuttavat ohjelmistojen kehittämistä huomattavasti. Tietylle automerkille
tai jopa automallille voi joutua pidempäänkin etsimään mahdollista yhteyden
luomisen tapaa. Mikään ei myös estä autovalmistajia lisäämästä yksilöllisiä
tunnuksia autokohtaisesti, jotka vaaditaan päästäkseen moduulin kanssa yhteyteen. Autovalmistajien kehittämät ominaisuudet tietenkin välitetään merkkihuollon käytettäväksi, mutta ei muille ohjelmistojen kehittäjille. Tämä johtaa
siihen, että autonmerkkihuolto pääse aina helposti tutkimaan auton kaikkia
moduuleita. (Rleale 2009)
6.3
Yhteyden luominen
Moduuleihin on yleisesti mahdollista luoda yhteys OBD2-portin kautta. Mahdollisia tapoja yhteyden muodostamista tapoja on monia. Selvästi suosituin
on muuttaa tiedonsiirtonopeutta (Baudrate) tai muuttamalla lukijalaitteen tunnistetta (header). Nykyaikaiset lukijalaitteet pystyvät vaihtamaan käytön aikana tiedonsiirtonopeutta tai tunnistetietoja. Yhteyden luominen on mahdotonta, jos ei tiedä autonkohtaista oikeaa tapaa miten moduuleihin yhdistetään.
(Elm Electronics Inc. 2010, 35-37)
29
7 ELMOSCAN
Opinnäytetyön projekti osuutena oli kehittää ElmoScan ohjelmistoon mahdollisuuden hakea ja yhdistää tietyntyyppisesti esiintyviin moduuleihin.
ElmoScan ohjelmisto on ohjelmoitu Delphi:llä. Tässä projektissa käytettiin
alkuperäisiä lähdekoodeja mahdollisimman vähän muokaten. Tällä yritetään
välttää sekoittamasta ohjelmiston muita toimintoja. Projektissa ohjelmoitiin
uusi ElmoScan versio.
ElmoScan on täysin suomalainen ohjelmisto. Ohjelmisto on kehitetty autoissa
käytetyn OBD2-järjestelmän ympärille. ElmoScanin kosketusnäytölle suunniteltu käyttöliittymä tarjoa monelle innokkaammalle käyttäjälle kiinnostavan
ympäristön.
7.1
Historia
ElmoScanilla on jo huomattavan pitkä historia, jonka aikana kehitystä on tapahtunut huomattavan paljon ja useita versioita on tullut. Versioita on julkaistu lähes vuosittain. ElmoScan oli historiansa alkuaikoina omalla alueellaan
edelläkävijä ja kilpailijoitaan monella tavalla edistyneempi. Hyvinä esimerkkeinä voidaan pitää kiihdytysmittauksia, tiedonkeruuta ja auton tehomittauksen ominaisuuksia. Nykyisin monelta kilpailijalta löytyy vastaavia ominaisuuksia omistaan ohjelmistoistaan.
ElmoScan ohjelmiston kehitystyö on aloitettu Porissa ja ohjelmiston omistajuus on historiansa aikana kokenut muutaman eri omistajan vaihdoksen. Nykyisenä kehityksestä ja omistajuudesta vastaa porilainen Softator Oy, joka on
tämän opinnäytetyön asiakasyritys.
30
7.2
OBD2-ohjelmistojen nykytilanne
Nykytilanteessa ohjelmistojen kehitys alkaa olla sillä tasolla, että ohjelmistoista on todellista hyötyä vaativimmallekin käyttäjälle. OBD2-ohjelmistot ovat
päässeet käsiksi jo huomattavaan määrään päätekomentoja ja moduuleita.
Tämä on selvästi myös huomattavissa kehityksen kiristymisessä ja isompien
ohjelmien kehitystyöstä.
Muutama vuosi takaisin oli aivan turha haaveilla yksityiskäytössä kehittyneemmästä ohjelmasta. Kehittyneemmällä ohjelmalla tarkoitetaan ohjelmaa, joka on kehitetty toimimaan usealla automerkillä ja samalla pystyy tarjoamaan tietylle autonmallille kehittyneempiä komentoja. Kehittyneemmät
komennot antavat huomattavan määrän enemmän tietoa verrattuna OBD2järjestelmän sisältämiin perinteisiin komentoihin. Kehittyneempiä ohjelmia
saattoi olla aikaisemmin tarjolla mutta, yksityishenkilölle hinnat olivat liian kalliit, joten vain isommilla yrityksillä oli mahdollisuus hankkia kehittyneempiä
ohjelmia. Tilannetta hankaloittaa markkinoiden hidas kehittyminen.
Tällä hetkellä markkinoilta löytyy useita eri ohjelmistoja ja uusia ilmestyy useita vuoden aikana. Eräitä OBD2-ohjelmistoja löytyy taulukosta 2.
Taulukko 2. Esimerkkejä OBD2-ohjelmistoista.
Ohjelmisto
Kehittäjä
ScanXL
Palmer Performance Engineering Inc.
OBDwiz
OCTech, LLC
CarMM
CarMM
Digimoto
PerformanceScan, LLC
7.3
ElmoScan ohjelmistoon tutustuminen ja työn etenemisaikataulu
ElmoScan ohjelmistoon ennakkoon tutustuminen auttoi huomattavasti ohjelmointi opinnäytetyöprojektin edistymistä. Samalla tutustuminen selvensi miten ohjelmiston lähdekoodia oli aikaisemmin rakennettu ja kehitetty.
31
ElmoScanin lähdekoodiin ymmärtämiseen menee huomattava määrä aikaa.
ElmoScan ohjelmistossa on jo yli 10 000 riviä lähdekoodia. Lähdekoodi on
jäsennelty hyvin omiin osa-alueisiin, jotka helpottavat tulevaisuudessakin ohjelmiston kehittämistä. Ohjelmisto on rakennettu hyväksymään uusia moduuleita, vaikka itse pääohjelman lähdekoodia ei muokattaisi.
Ennen varsinaista opinnäytetyön aloittamista tuli tutustua laajalti OBD2järjestelmän toimintaan ja käyttäytymiseen. OBD2-järjestelmän tutustuminen
aloitettiin hyvissä ajoin ennen varsinaisen työn tekemistä. Tutkimustyöhön
kului yllättävän paljon aikaa, koska laadukkaiden lähteiden etsimiseen ja tulkintaan kului huomattavasti aikaa. Laajan selvitystyön jälkeen oli välttämätöntä tutustua tässä opinnäytetyössä käsiteltävään ohjelmistoon (ElmoScan).
ElmoScan on toteutettu Delphi-ohjelmointikielellä, jonka ymmärtäminen ja
tulkitseminen vaativat asiaan paneutumista ja sisäistämistä. Ohjelmointikieleen helpotti ElmoScan lähdekoodien runsas läpikäynti ja lähdekoodissa olevat kommentoinnit. Delphi-ohjelmointikieli on tyypillinen Pascal-kieleen perustuva ohjelmointikieli jolloin sitä on helppo tulkita ja ymmärtää. Ymmärtämistä edes auttaa lähdekoodin toiminnan ja syntaksien tarkoituksen täydellisesti.
Opinnäytetyön
vaativampi
osuus
oli
tuoda
nykyiseen
ElmoScan-
ohjelmistoversioon tutkimustyön aikana selvitetyt menetelmät ja halutut toiminnot. Esimerkkinä näistä toiminnoista löytyy luvusta 6. Uusien toimintojen
käyttöönottamiseen vaaditaan huomattava määrä lähdekoodin kirjoittamista
ja olemassa olevan koodiin sovittamista. Kehitetyt lähdekoodit tulee toimia
vanhan ElmoScanin-ohjelmiston lähdekoodin kanssa yhteen ongelmitta. Uuden lähdekoodin kirjoittamiseen kuluu huomattavasti vähemmän aikaa, kuin
sen toiminnallisuuden selvittämiseen.
Tutkimustyön ja ohjelmoinnin lisäksi tulee tehdä kaiken kattava testaustyö
Elmoscan-ohjelmiston toimivuudesta. Uusien ominaisuuksien ja toimintojen
käyttäminen ei saa haitata vanhojen ominaisuuden toimivuutta. Uusien ominaisuuksien integroiminen nykyisiin toimintoihin voi johtaa ongelmallisiin tilanteisiin. Näiden ongelmien selvittäminen ja korjaaminen saattaa vaatia uusien
32
ratkaisujen kehittämistä. Uusien ominaisuuksien toiminta tulee perusteellisesti testata, koska se paljastaa ohjelmistossa olevat mahdolliset ongelmakohdat. Tämä testaus laajennetaan koko ElmoScan-ohjelmistoon, jolloin saadaan selvitettyä mahdolliset ongelmakohdat ja niiden nopealla korjaamisella
pystytään vaikuttamaan ennen ohjelmiston uuden version julkaisemista.
7.4
Tavoitteet
Opinnäytetyöllä oli alusta asti selvät päätavoitteet. Tavoitteena oli selvittää
mahdollisia tapoja luoda yhteys tietyllä tavalla esiintyviin auton OBD2moduuleihin. Tavoitteessa huomioitiin luvun 6 sisältö, josta käy ilmi, ettei moduuleihin yhdistämiseen ole yhteistä tapaa.
Kattavan selvitystyön jälkeen oli tarkoitus saavuttaa toinen päätavoitteista, eli
ElmoScan projektiin liittyvä ohjelmointi. Ohjelmointityön tavoitteena oli kehittää uusi versio nykyiseen ElmoScan ohjelmistoon. Uuden version tarkoituksena on mahdollistaa tietyntyyppisten moduulien hakemisen. Samalla mahdollistamaan tapa, jolla luodaan yhteys löydettyihin moduuleihin. Tapauksissa jossa useampia moduuleita ei löydy, niin sen ominaisuutta ei saa hyödyntää jolloin sen toimiminen tulee olla estettynä.
7.5
Moduulien hakeminen
Moduulien hakemisesta ohjelmointiin täysin oma proseduurinsa EcuSearch.
Proseduurin ansiosta moduulien haku helpottuu jatkossa huomattavasti. Proseduurista on hyötyä, jos moduuleita pitää hakea uudestaan tai mahdollisesti
päivittää listauksen haetuista moduuleista. Tämän opinnäytetyön liitteenä 1
on moduulien hakemisesta toteutetun proseduurin lähdekoodi. Lähdekoodi
havainnollistaa muutettavia asetuksia ja vaadittavia toimenpiteitä eri protokollien välillä.
33
7.6
Selvitystyön aikaiset ongelmat
Projektin aikaisien ongelmatilanteiden selvittämiseen auttoi huolellinen selvitystyö ja ajan kanssa asioiden huolellinen tutkiminen. Tarkempien tutkimuksien jälkeen alkoivat ongelmatilanteet lähes aina selvitä ja mahdollisten ratkaisujen löytäminen alkoi kehittyä. Tässä työssä esitellyn selvitystyön aikana
kohdattiin kaksi merkittävää ja isoa ongelmaa.
Selvitystyön haasteellisimmaksi ongelmaksi ilmeni luotettavan tiedon hankinta. Hyvät lähteet olivat lukijalaitteiden piirisarjojen valmistajien yleiset dokumentaatiot. Dokumentaatioissa oli selkokielisesti selitetty lukijalaitteiden toiminnallisuus ja ohjeistettu komentojen toimintaa.
Toisena erityisen haasteellisena ongelmana oli terminaali ohjelmiston, eli
HyperTerminaalin liian hidas tiedon vastaanottonopeus. Liian hidas tiedon
vastaanottonopeus kadottaa osan vastauksessa olleista tärkeistä riveistä.
Ongelma ratkaistiin tekemällä terminaalityyppinen apuohjelma, joka osaa ottaa tarpeeksi nopeasti tietoa vastaan, eikä kadota yhtään riviä välistä.
7.7
Ohjelmoinnin aikaisia ongelmatilanteita
Varsinaisen ohjelmoinnin aikana ilmeni useita erityyppisiä ongelmia. Lähes
jokaiseen ongelmaan löytyi ratkaisu tutkimalla suoritettua lähdekoodia. Käytetyn ohjelmiston breakpoint-toiminnon avulla oli helppo seurata mihin ohjelma todella pysähtyi.
Projektin ohjelmointi tapahtui Delphi-ohjelmointikielellä. Delphin tarjoamat
työkalut toimivat hyvin lähdekoodin seuraamisessa ja mahdollistivat suorituksen aikaisen lähdekoodin seuraamisen. Ohjelma osaa kertoa, myös mihin
suorittaminen pysähtyi ja samalla antaa mahdollisen virheenkuvauksen. Virheenkuvauksen tulkitsemisen jälkeen tiedossa oli virheen todellinen aiheuttaja tai mistä virhe saattaisi johtua.
34
ElmoScanin lähdekoodin suorittamisen aikaista seuraamista hankaloittaa ohjelmiston lähdekoodin tiedostorakenteessa olevat useat tiedostot. Ohjelmisto
on rakennettu modulaariseksi, joten siihen saa helposti lisättyä uusia ominaisuuksia. Tämäntyyppisellä tiedostorakenteella on tietenkin huomattava määrä hyötyä.
Tämän ohjelmointiprojektin alussa kun saatiin ensimmäiset kokeilut suoritettua tuli heti vastaan ongelma, joka ilmeni vain tietyissä tilanteissa. Alkuperäisessä ElmoScan versiossa poistettiin automaattisesti tietoa tapauksissa,
joissa ilmeni turhaa tietoa. Turha tieto ilmeni OBD2-järjestelmästä tulevasta
”SEARCHING”-tekstistä. Kaikki vastaanotetut tiedot lisättiin taulukkoon ja
taulukosta otettiin talteen vain korkein luku eli aina viimeinen osio. Alkuperäinen tapa tietenkin toimii, mutta jos tarvittiin ainoastaan yhden moduulin vastausta. Alkuperäinen menetelmä ei toiminut, jos moduuleita oli enemmän
kuin yksi moduuli. Tällöin taulukko otti vain korkeimman arvon eli viimeisen
moduulin tiedot ja hävitti muiden moduulien tiedot automaattisesti.
if (Pos('SEARCHING',s_ResponseFull) > 0) then begin
b_isHexData := True;
Log('RemovingSearchText');
HajoitaRivi(ar_Rows,s_ResponseFull,c_DELIMITER);
s_ResponseFull := '';
for i := 1 to High(ar_Rows) do begin //for lausekkeella korjattiin ongelma tilanteet
s_ResponseFull := s_Responsefull + ar_Rows[i] + c_DELIMITER;
end;
for i_Counter := 1 to Length(s_ResponseFull) do begin
if (b_isHexData) then b_isHexData :=
isHexDigit(s_ResponseFull[i_Counter]);
end;
end;
Koodi 1. Searching-tekstin poistaminen ja kaikkien moduulien tietojen lisääminen.
Koodin 1 mukaisen korjauksen kehittäminen oli alkuperäisen mallin mukaan
helppo korjata. Eli tehdä samantyyppisesti toimiva taulukko, mutta talteen
otettaan muitakin arvoja. Taulukkoon ei lisätty ensimmäistä arvoa, vaan kaikki
muut
arvot
lisättiin
taulukkoon.
Tällöin
ensimmäinen
arvo
eli
”SEARCHING”-teksti saatiin pois ja samalla saatiin talteen kaikkien muidenkin moduulien tiedot.
35
Ohjelmointityön edistyessä ilmeni uusia ongelmia, jotka pysäyttivät ohjelman
suorittamisen täydellisesti. Näitä ilmeni tilanteissa, jossa käyttäjä pääsi valitsemaan moduulin mihin haluaa yhdistää ja tämän jälkeä lukea vikakoodeja.
Ongelmaksi tuli jo olemassa olevan koodin aiheuttamat tiukat rajoitteet.
Koodissa 2 päätekomennolla 0101 pyydetään tietoa. Muuttujaan (s_Temp)
kerätään aina kuuden merkin merkkijono. Vanhalla koodilla tuli tietoa kerättäessä muuttujaa tallennettiin 'ERR_NO', joka lopetti ohjelmiston suorittamisen. Korjauksena toimintoa muutettiin vaihtamaan muuttujan sisällöksi
”000000”, Tämä korjasi tilanteen jossa 0101 ei saa oikean tyyppistä vastausta lainkaan.
s_Temp := '';
if (s_Data[i_i] = c_DELIMITER) then inc(i_i);
for i_j := 1 to 6 do begin
s_Temp := s_Temp + s_Data[i_i];
Inc(i_i);
end;
if s_Temp = 'ERR_NO' then S_Temp := '000000'; //käytetty korjaus
Koodi 2. Vääräntyyppinen vastaus.
Ohjelmointityön loppuvaiheessa suoritetussa testauksessa ja toimivuus tarkistuksessa tuli vastaan ongelmatilanne, joka vaati uuden toimivan ratkaisun
kehittämiseen. Käyttäjä ei saa valita moduulia kaikissa suoritettavissa toiminnoissa, kuten katsastusraporttia tehtäessä. Jos estoa moduulin valintaan ei
olisi, niin moduulin yhdistämisellä saatettaisiin pystyä vaikuttamaa katsastusraporttiin tulokseen.
7.8
Saavutetut hyödyt
Projektilla saavutetut hyödyt ovat ohjelmiston kannalta erittäin tärkeitä ja
edistyksellisiä. Ohjelmiston uudella versiolla tullaan jatkamaan ElmoScan ohjelmiston kannalta tärkeää kehitystyötä, joka takaa ohjelmiston tulevaisuuden
jatkumisen. Ohjelmiston uuden version julkaiseminen ja käyttöönottaminen
on ollut projektin yhtenä päätavoitteena. Uuden version päätavoitteena on
36
tuoda lisäarvoa ohjelmalle ja samalla kehittää sitä vastamaan paremmin nykyisten kilpailijoiden tuotteita.
Uuden ElmoScan version myötä markkinoille saadaan kokonaan isompi uudistus, joka houkuttelee asiakkaita lisää tai mahdollisesti vanhoja asiakkaita
päivittämään uudempaan julkaisuun. Uuden version on tietenkin, myös tarkoitus parantaa ohjelmiston luotettavuutta ja samalla laajentaa sitä.
7.9
Tulevaisuuden näkymät
ElmoScan-ohjelmiston tulevaisuuden näkymät, ovat edelleen hyvin positiiviset, koska Suomesta tällä hetkellä kilpailijoiden tuotteita ei löydy. Vahvuutena
on tarjota täysin suomalaisten kehittämä tuote, joka tarjoaa kehittyvän ohjelmiston käyttäjilleen. Kaikki käyttäjät eivät ole tottuneet käyttämään tietokoneita tai englanninkielisiä ohjelmia. Muun muassa suomenkielisyyden vuoksi
ElmoScan-ohjelmisto on todella hyvässä markkina-asemassa.
37
8 POHDINTA
Tämän opinnäytetyöprojektin kokonaisuuden hahmottamiseen ja toteuttamiseen kuluva aika tuntui kasvavan huomattavan pitkäksi. Varsinkin ympäristössä, jossa kehitystyötä pitää tapahtua samalla, kun yritti viimeistellä opinnäytetyötä. Tietenkin kehitystyö opettaa samalla lisää OBD2-järjestelmästä ja
samalla saa lisää ymmärrystä ohjelmistotuotannosta. Pelkästään OBD2järjestelmään tutustumiseen tuntui menevän erittäin paljon aikaa mitä voisi
odottaa. Hyvä ymmärtäminen OBD2-järjestelmän toiminnallisuudesta ja käytännöstä tuo huomattavan avun tämän opinnäytetyön kirjoittamiseen ja
ElmoScan-ohjelmiston kehitystyöhön.
Haasteellisuutta aiheuttaa selvästi heikosti käytössä oleva informaatio tai sen
lähes mahdoton tulkinta. Luotettavat ja laajat lähteet, jotka sisältävät tarkempaa informaatiota OBD2-järjestelmän toiminnasta on vaikeasti saatavilla tai
mahdotonta saada käyttöönsä järkevään hintaan. OBD2-järjestelmästä varmasti pystyisi keräämään lähes loputtomasti tietoa, jos olisi kaikki lähteet vapaasti saatavilla kaikille kiinnostuneille.
Ohjelmointiprojektin tekemisen haasteellisuus on tietenkin aina mielenkiintoa
nostava tekijä minulle, koska olen hyvin kiinnostunut ohjelmistotuotannosta.
Ongelmia tuli tässä projektissa dokumentaation puutteesta koska yksinkertaistakin toiminnallisuutta joutui pelkän lähdekoodin avulla selvittämään pitkään. Lähdekoodia on helppoa tulkita, mutta monimutkaisuutta ei aina välttämättä heti oivalla. Tietenkin isomman lähdekoodi kokonaisuuden toimivuuden ymmärtäminen tuo edistymisen tunnetta ja varsinkin kun samalla saa
yhdistettyä siihen oma kirjoittamaa lähdekoodia. Lopullisen lähdekoodin viimeistely ja toimivuuden testaaminen tuo tullessaan mukavan lisän projektin
loppuun viemisessä varsinkin kun kyseessä on kaupallinen tuote.
38
LÄHTEET
AKE 2007. Ottomoottorikäyttöisten ajoneuvojen pakokaasupäästöjen
tarkastus. Viitattu 18.10.2010. Saatavissa:
http://www.ake.fi/NR/rdonlyres/D9364707-6D5B-4477-A43B186DCCC91403/0/11912082007.pdf.
California Air Resources Board 2009. Transitioning Away from Smog Check
Tailpipe Emission. Viitattu 27.9.2010. Saatavissa:
http://www.arb.ca.gov/msprog/smogcheck/march09/transitioning_to_obd_onl
y_im.pdf.
Elm Electronics Inc. 2010. ELM 327 - OBD to RS232 Interpreter. Viitattu
22.10.2010. Saatavissa:
http://www.elmelectronics.com/DSheets/ELM327DSF.pdf.
Ford Motor Company 2007. 2001 MY OBD System Operation Summary for
Gasoline Engines.
Müller, Gerhard 2005. Diagnostiikkaa EOBD-liitännällä. Prosessori 9, 42-45.
OBD Automotive Oy 2007. EOBD, OBD2 ja valmistajakohtaiset protokollat.
Viitattu 22.9.2010. Saatavissa: http://www.obd.fi/index.php?option=
com_content&task=view&id=32&Itemid=2.
Omitec Limited. EOBD - A detailed history. Viitattu 12.10.2010. Saatavissa:
http://www.omitec.com/en/support/technology-briefs/detailed-history-ofeobd/.
Rleale. ‘OBDII and Enhanced Diagnostics Again’. canbushack: Hack Your
Car. 13.12.2009. Viitattu 14.10.2010. Saatavissa:
http://www.canbushack.com/blog/index.php/2009/12/13/obdii-and-enhanceddiagnostics-again.
39
SAE International 1997. On-Board Diagnostics for Light and Medium Duty
Vehicles Standards Manual HS-3000. Pennsylvania USA.
Seyfert, Karl 2007. OBD2 generic pid diagnosis. Viitattu 2.10.2010.
Saatavissa: http://findarticles.com/p/articles/mi_qa3828/is_200709/
ai_n21033507 .
LIITELUETTELO
LIITE 1
EcuSearch Proseduuri
LIITE 1
procedure Tfrm_Menu.EcuSearch;
//Header päälle & Ecu talteen
var
s_ResponseFull, s_Protocol: String;
i,i_EcuPos,i_EcuSync,I_EcuCopy,I_EcuTunniste: Integer;
begin
Log('Header on');
cport_main.WriteStr('ath1' + #13);
//Headerit
ReceiveData(cport_main,s_ResponseFull,'ath1');
cport_main.WriteStr('ATDPN' + #13);
//Protokolla
ReceiveData(cport_main,s_ResponseFull,'0100');
s_Protocol := s_ResponseFull;
cport_main.WriteStr('0100' + #13);
//Tiedot
ReceiveData(cport_main,s_ResponseFull,'0100');
i := 0;
SetLength(ar_ecus, i+1);
if (s_Protocol = 'A6') or (s_Protocol = '6') or (s_Protocol=
'A8') or (s_Protocol = '8') then begin //11BIT
i_EcuPos := 0;
i_EcuSync :=0;
i_EcuCopy :=3;
i_EcuTunniste :=1;
end;
if (s_Protocol = 'A1') or (s_Protocol = '1') or (s_Protocol =
'A2') or (s_Protocol = '2') or (s_Protocol = 'A3') or
(s_Protocol = '3') OR (s_Protocol = 'A5') OR (s_Protocol =
'5') then begin
//PWM,VPW,ISO9141-2,ISO,14230-4
i_EcuPos := 5;
i_EcuSync := 3;
i_EcuCopy := 2;
i_EcuTunniste :=2;
end;
if (s_Protocol = 'A7') or (s_Protocol = '7') or(s_Protocol =
'A9') or (s_Protocol = '9') then begin // 29BIT ISO15765-4
i_EcuPos := 7;
i_EcuSync := 5;
i_EcuCopy := 2;
i_EcuTunniste :=3;
end;
ar_ecus[i] := copy(s_Responsefull, i_EcuPos, i_EcuCopy);
if AnsiPos(c_Delimiter,s_ResponseFull) > 0 then begin //jos
löytyy ecuja niin käsitellään.
Log('EcuHeaderResponse' + s_Responsefull);
while AnsiPos(c_Delimiter,s_ResponseFull) > 0 do begin
i := i+1;
SetLength(ar_ecus, i+1);
i_EcuSync := AnsiPos(c_Delimiter,s_ResponseFull);
delete(s_Responsefull, 1, i_EcuSync); //poistetaan lisätyt
ar_ecus[i] := copy(s_Responsefull, i_EcuPos, i_EcuCopy);
//ecut lisätään arrayhyn ennen poistoa
end;
for i :=0 to High(ar_ecus) do begin
ar_ecus[i]:= IntToStr(i_EcuTunniste) + ar_ecus[i];
end;
Log('EcusResponsed' + ' Ecu1: ' + ar_ecus[0]+ ' Ecu2: ' +
ar_ecus[1]+ ' Ecu3: ' + ar_ecus[2]);
end; //Otetaan header pois päältä
ReadTimeoutReset;
Log('Header is on, disabling');
cport_main.WriteStr('ath0' + #13);
ReceiveData(cport_main,s_ResponseFull,'ath0');
end;