Sistem de diagnoză auto pentru inter fața OBD -II implementat [618355]

1

Universitatea “Politehnica” din București
Facultatea de Electronică, Telecomunicații și Tehnologia
Informației

Sistem de diagnoză auto pentru inter fața OBD -II implementat
cu µC AT mega2560

Proiect de diplomă
prezentat ca cerintă parțială pentr u obținerea titlului de Inginer
în domeniul Electronică si Telecomunicații programul de
studii de licență Electronică Aplicată

Conducător științific : Absolvent: [anonimizat]. Lucian PERIȘOARĂ Andrei -George UȘURELU

2013

2

3

4

5

6

7
Cuprins

Cuprins ………………………….. ………………………….. ………………………….. ………………………….. ……. 7
Lista tabelelor ………………………….. ………………………….. ………………………….. ……………………….. 9
Lista fi gurilor ………………………….. ………………………….. ………………………….. ………………………. 11
Lista acronimelor ………………………….. ………………………….. ………………………….. …………………. 13
Introducere ………………………….. ………………………….. ………………………….. …………………………. 15
CAP 1. Sisteme a ctuale de monitorizare a parametrilor motoarelor auto …………………………. 17
1.1Evoluția computerelor de bord și a interfețelor de comandă ………………………….. ….. 17
1.2Computere de bord actuale si interfețe de comandă ………………………….. ……………… 18
1.2.1 U nitatea Electronică de Control ………………………….. ………………………….. …… 18
1.2.2 Parametri controlați de ECU ………………………….. ………………………….. ……….. 19
1.2.3 Computere de bord actuale ………………………….. ………………………….. …………. 20
1.3Interfețe și protocoale de comunicare ………………………….. ………………………….. …….. 24
1.3.1 Interfața ALDL ………………………….. ………………………….. …………………………. 24
1.3.2 Interfața OB D I ………………………….. ………………………….. …………………………. 25
1.3.3 Interfața OBD II ………………………….. ………………………….. ………………………… 25
1.3.4 Interfața EOBD ………………………….. ………………………….. …………………………. 28
1.4Proc eduri de diagnosticare a defecțiunilor ………………………….. ………………………….. . 28
1.4.1 Gestionarea defectelor la interfața EOBD ………………………….. …………………. 28
1.4.2 Codurile de defect ………………………….. ………………………….. ……………………… 30
CAP 2. Sisteme de diagnoză aftermarket ………………………….. ………………………….. …………….. 31
2.1 Sisteme de diagnoză autonome ………………………….. ………………………….. …………….. 31
2.1.1 ScangaugeII ………………………….. ………………………….. ………………………….. …. 31
2.1.2 Scangauge D ………………………….. ………………………….. ………………………….. … 33
2.1.3 Scangauge E ………………………….. ………………………….. ………………………….. …. 34
2.1.4 Comparație ScangaugeII/ScangaugeD/ScangaugeE ………………………….. ……. 34
2.1.5 Compatibilitatea cu vehiculele actuale ………………………….. ……………………… 35
2.2Sisteme de diagnoză aft ermarket pentru service (pc based) ………………………….. …… 36
2.2.1Alegerea modulului de control ………………………….. ………………………….. …….. 38
2.2.2Scanarea automată(Auto Scan) ………………………….. ………………………….. …….. 38
2.2.3 SRI Reset ………………………….. ………………………….. ………………………….. …….. 39
2.2.4 OBD -II ………………………….. ………………………….. ………………………….. ………… 40

8
2.2.5Aplicații ………………………….. ………………………….. ………………………….. ……….. 41
2.2.6 Program Options ………………………….. ………………………….. ……………………….. 41
2.2.7About ………………………….. ………………………….. ………………………….. …………… 42
CAP 3. Implementarea hardware ………………………….. ………………………….. ……………………… 43
3.1 Obiectivele proiectului ………………………….. ………………………….. ………………………… 43
3.2 Schema bloc și descrierea func ționării ………………………….. ………………………….. ….. 43
3.3 Componente ………………………….. ………………………….. ………………………….. ………….. 44
3.3.1 Placa de dezvoltare ARDUINO Atmega2560 ………………………….. …………… 44
3.3.2 Ecranul LCD ………………………….. ………………………….. ………………………….. … 46
3.3.3 Shield -ul CAN ………………………….. ………………………….. ………………………….. 47
3.3.4 Cablul de conectare ………………………….. ………………………….. …………………… 49
3.3.5 Sursa de alimentare ………………………….. ………………………….. ……………………. 49
3.3.6 Tastatura ………………………….. ………………………….. ………………………….. ……… 50
3.4 Macheta platformei de laborator ………………………….. ………………………….. …………… 51
3.5 Schema electrică a computerului de bord ………………………….. ………………………….. . 52
Cap 4. Implementarea software ………………………….. ………………………….. ………………………….. 53
4.1 Descrierea meniului ………………………….. ………………………….. ………………………….. .. 53
4.2 Descrierea funcțiilor de prelucrare ………………………….. ………………………….. ……….. 54
Concluziile proiectului ………………………….. ………………………….. ………………………….. …………. 57
Bibliografie ………………………….. ………………………….. ………………………….. …………………………. 59
Anexa 1 ………………………….. ………………………….. ………………………….. ………………………….. …. 61
Lista mașinilor care folosesc protocolul CAN: ………………………….. …………………………. 61
Anexa 2 ………………………….. ………………………….. ………………………….. ………………………….. …. 63
Coduri de diagnostic SAE pentru interfața OBD -II[5][18] ………………………….. ………… 63
Anexa 3 ………………………….. ………………………….. ………………………….. ………………………….. …. 69
Codul surs ă al programului : ………………………….. ………………………….. ………………………. 69

9
Lista tabelelor
Tabel 2.1 Semnificația ab revierilor parametrilor afișați[3] ………………………….. …………………. 32
Tabel 2.2 Comparație ScangaugeII , ScangaugeD , ScangaugeE [4]………………………….. …….. 34
Tabel 2.3 Compatibilitate a produselor ScanGauge cu vehiculele actuale[4] ……………………… 35
Tabel 3.1 Caracteristicile plăcii de dezvoltar ARDUINO Atmega 2560 [1] ………………………. 44
Tabe lul 3.2 Conexiunile dintre pini(DB9 -OBD -II) ………………………….. ………………………….. .. 49
Tabel4.1 Lista PID -urilor [12] ………………………….. ………………………….. ………………………….. .. 54

10

11

Lista f igurilor
Fig 1.1 BMW iDrive ………………………….. ………………………….. ………………………….. ……………. 21
Fig 1.2 Afisaj BMW iDrive[17] ………………………….. ………………………….. …………………………. 21
Fig 1.3 Controler BMW iDrive[17] ………………………….. ………………………….. ……………………. 22
Fig 1.4 Ford Sync[19] ………………………….. ………………………….. ………………………….. ………….. 22
Fig 1.5 Computer de bord Audi ………………………….. ………………………….. …………………………. 23
Fig 1.6 Computer de bord Volkswa gen[21] ………………………….. ………………………….. …………. 24
Fig 1.7 Conector ALDL cu 12 pini[11] ………………………….. ………………………….. ……………….. 24
Fig 1.8 Conector OBD[12] ………………………….. ………………………….. ………………………….. ……. 25
Fig1.9 Conector OBD II ………………………….. ………………………….. ………………………….. ……….. 25
Fig 1.10 Pinii utilizați la protocolul SAE J1850 PWM ………………………….. ………………………. 26
Fig 1.11 Pinii utilizați la pro tocolul SAE J1850 VPW ………………………….. ………………………. 26
Fig 1.12 Pinii utilizați la protocolul ISO 9141 -2 ………………………….. ………………………….. …… 27
Fig 1.13 Pinii utilizați la protocolul ISO 15765 C AN ………………………….. ………………………… 27
Fig 2.1ScanGauge ………………………….. ………………………….. ………………………….. ……………….. 31
Fig 2.2 ScanGaugeII[3] ………………………….. ………………………….. ………………………….. ………… 33
Fig 2.3 Scan gaugeD[3] ………………………….. ………………………….. ………………………….. …………. 33
Fig 2.4 ScangaugeE[3] ………………………….. ………………………….. ………………………….. …………. 34
Fig 2.5 Meniul principal VCDS[6] ………………………….. ………………………….. …………………….. 37
Fig 2.6 Alegerea modulului de control VCDC[7] ………………………….. ………………………….. …. 38
Fig 2.7 VCDS: Auto Scan[7] ………………………….. ………………………….. ………………………….. … 39
Fig 2.8 VCDC: SRI Reset ………………………….. ………………………….. ………………………….. …….. 40
Fig 2.9 VCDS: OBD -II[7] ………………………….. ………………………….. ………………………….. …….. 40
Fig 2.10 VCDC :Aplications[7] ………………………….. ………………………….. …………………………. 41
Fig2.11 VCDS: Pr ogram Options[7] ………………………….. ………………………….. …………………… 42
Fig 2.12 VCDS: About[7] ………………………….. ………………………….. ………………………….. …….. 42
Fig 3.1 Schema bloc a computerului de bord ………………………….. ………………………….. ……….. 44
Fig 3.2 Placă de dezvoltare ARDUINO Atmega 2560[1] ………………………….. ………………….. 44
Fig 3.3 Ecran LCD 20×4 ………………………….. ………………………….. ………………………….. ……… 47
Fig 3.6 Sursa de alimentare ………………………….. ………………………….. ………………………….. …… 50
Fig3.7 Schema bloc a sursei de alimentare ………………………….. ………………………….. ………….. 50
Fig 3.8 Tastatura și schema sa bloc ………………………….. ………………………….. …………………….. 51
Fig 3.9 Macheta platformei de laborator ………………………….. ………………………….. ……………… 51
Fig 3.8 Schema electrcă a computerului de bord ………………………….. ………………………….. ….. 52

12

13
Lista acronimelor

A/C Air Conditioner / Aer condiționat
A/D Analog to digital converter / Convertor analog -digital
ALDL Assembly Line Diagnostic Link / Conexiunea de diagnostic a liniei de asamblare
CCC Computer Command Control / Calculatorul de comandă și control
CONV Converter / Convertor
ECM Electronic Control Module / Modulul de control electronic
ECT Engine Coolant Temperature / Temperatura lichidului de răcire
ECU Engine Control Unit / Unitatea de control a motorului
EFE Early Fuel Ev aporation / Evaporarea rapidă a combustibilului
EGR Exhaust Gas Recirculation / Recircularea gazelor de eșapament
IAT Intake Air Temperature/ Temperatura Aerului Aspirat
M/C Mixture Control / Reglare a amestecului
OBD On Board Diagn ostics / Diagnostic integrat
P/N Park/Neutral – Parcare/Liber
TCU Transmission Control Unit/ Unitatea de Control a Transmisiei
UTP Unshielded Twisted Pair / Pereche torsadată neecranată
VIN Vehicle Identification Number / Seria aut ovehiculului
VSS Vehicle Speed Sensor / Senzorul de viteză al automobilului

14

15

Introducere

Tema acestui proiect este proiectarea și realizarea practică , sub formă de machetă de
laborator, a unui sistem de diagnoză auto folosind interfața de diagnos tic OBD -II , care
monitorizează diferiți parametrii ai autovehiculelor :
 Viteza automobilului
 Turația motorului
 Consumul de combustibil
 Distanța parcursă
 Temperatura exterioară
 Tipul de combustibil folosit
 Coduri de defect
Pentru realizarea acestui proiect sunt necesare cunoștiinte multiple dobândite în cei 4
ani de facultate , iar proiectarea concretă a acestui sistem de diagnoză imi oferă oportunitatea
de a acumula informații si cunoștințe noi în domeniul auto , un sector interesant aflat într -o
continuă d ezvoltare.
În cadrul acestui proiect mi -am propus următoarele obiective :
 Implementarea hardware unui sistem electronic ce preia semnalele transmise
de autovehicul pe magistrala CAN pri n intermediul interfeței OBD -II utiliz ând
diferite protocoale :
 ISO 157 65-4(CAN) ,
 ISO 9141 -2,
 SAE J1939.
 Implemenatrea softwarea unui program care gestioneaz ă meniul , asi gură
comunicarea cu unitățile de control ale autovehiculului, prelucrează datele
primite și afișsază rezultatele pe un ecran LCD.

16

17
CAP 1. Sisteme actuale de monitorizare a parametrilor
motoarelor auto

1.1Evoluția computerelor de bord și a interfețelor de comandă
La î nceputurile automobilului motoarele mașinilor erau făcute simplu, cu sisteme
mecanice de comandă și control. Emisiile nu erau releva nte, eficiența fiind dată de caii putere
și de viteză. La începutul anilor 1970, luând ca reper SUA, au început să apară mandate
federale, referitoare la emisiile automobilelor. De asemenea, criza de combustibil din anii
1973, 1974 a arătat că motoarele ma i mari nu erau la fel de importante precum economia de
carburant. Cele mai multe automobile erau alimentate cu combustibil de către carburatoare, și
foarte puține funcționau pe principiul injecției mecanice, așa ca nevoia de calculatoare de
bord a crescut treptat. Cerințele fizice necesare implementării acestor calculatoare de bord
erau imposibil de realizat în acea perioadă .
În 1969 Wolkswagen a introdus primul computer de bord ce putea scana și monitoriza
sistemele controlate în modelele Type 3 dotate c u motoare cu injecție. La mijlocul anilor „70 ,
automobilele personale produse de Nissan (Datsun 280 Z) încep să fie vândute cu computere
de bord integrate datorită nevoii de a monitoriza noile sisteme de injecție. Apar primele
implementări ale interfeței OBD deși nu există standarde prinvind datele monitorizate .
La sfârșitul anilor 1970 producătorii de mașini au început să implementeze mici circuite
electronice pentru a sincroniza aprinderea și scânteia. Circuitele aflate intr -o cutie cât palma
se „ardeau” în câțiva ani. Câțiva producători au experimentat cu carburatoare controlate de
calculator la începutul anilor 1980, folosind un microchip pentru a măsura concentrația
amestecului de carburant și pentru a imbunătăți sincronizarea, dar acestea s -au dovedit
imprecise și greu de reparat. Viitorul aprinderii controlate de calculator nu era bazată pe
carburator, ci pe injecția de carburant, și pe la mijlocul anilor 1980 aproape toți producătorii
de mașini au dorit trecerea la injecția de carburant contr olată de circuite integrate.
General Motors a implementat un prototip de interfață și un protocol folosite la testarea
modulului de control al motorului (Engine Control Module, ECM) pe linia de asamblare a
vehiculului. Conexiunea de diagnostic a liniei de asamblare (Assembly Line Diagnostic Link,
ALDL) funcționa la 160 baud (probabilitatea de apariție a simbolurilor – symbol rate) și
folosea modulația in impulsuri (PWM) prin care se monitorizau sistemele mașinii. ALDL a
fost utilizat la automobile le fabricate în 1980 în California și la cele din 1981 fabricate în
Statele Unite, însă doar în interiorul fabricilor. Singura funcție accesibilă cumpărătorilor se
putea activa prin conectarea a 2 pini cu contactul pus și motorul oprit. Astfel, martorul de
bord al motorului (Check Engine Light, CEL) afișa un număr format din 2 digiți ce
corespundea unei erori. Modelele Cadillac cu injecție sunt echipate cu un dispozitiv
diagnosticare on -board ce oferă coduri de eroare, testarea senzorilor și a actuatorilor în timp
real prin display -ul Climatronic -ului (Electronic Climate Control, ECC). Ținând apăsat in
același timp butoanele de oprire și de creștere a temparaturii pentru câteva secunde, se
activează modul de diagnoză fără a mai fi nevoie de o unealtă externă de scanare . În 1986 a
apărut o nouă versiune pentru protocolul folosit de ALDL ( protocol denumit GM XDE –
5024B ), ce comunica la o viteză de 8192 baund prin semnale UART half -duplex .

18
Trecerea de la carburator la injecție a fost posibilă, în principal , datorită abilității
computerului de a calcula cu precizie cantitatea de combustibil aflată in motor. Carburatoarele
aveau o serie de dezavantaje, precum probleme de amestec la altitudine sau blocaje de vapori,
pe care un computer le putea re zolva cu câ teva ajustări la sistemul de injecție. Odată cu
trecerea timpului, microchipul a devenit din ce în ce mai mic și mai puternic, iar metodele de
protecție s -au imbunătățit ferind eficient microchipul de căldură și umezeală. Primele
computere de bord puteau fi accesate cu ajutorul unui port standardizat, numit OBD sau On –
Board Diagnostics. Acest sistem utiliza mai mulți senzori așezați în așa fel încât să sesizeze
anumite defecte pentru a ușura repararea sistemului.
La începutul anilor 1990 computerele de bord a u început să aibă din ce în ce mai multe
responsabilități. Acestea nu numai că măsurau și ajustau amestecul de combustibil, ci
controlau majoritatea proceselor de natură electrică. Calculatorul a devenit o parte importantă
a mașinii oferindu -i mecanicului amator un control im presionant asupra abilităților î ntregului
sistem de propulsie. În 1991 , CARB (California Air Resources Board) a cerut ca toate
vehiculele noi vândute in California să aibă capacități primare OBD. Acestea vor reprezenta
OBD -I, deși nume le nu le va fi atribuit decât după introducerea OBD -II. Conectorul de
comunicare, poziția sa și protocoalele de date nu erau încă standardizate. Folosind un laptotp
și un program -interfață pentru portul OBD, programarea a devenit a doua natură a piloților de
raliuri. Performanțele motorului puteau fi modificate în timp ce mașina mergea, iar in același
timp informații importante puteau fi aflate in timp real. În 1996 , OBD -II a devenit obligatorie
pentru toate mașinile vândute în Statele Unite, iar în 2001 U niunea Europeană a făcut ca
EOBD sa fie obligatorie pentru toate mașinile cu motor pe benzină fabricate începând cu acest
an.
În 2010 a apărut variant HDOBD (Heavy Duty On -Board Diagnostics) pentru
autovehiculele comerciale , î n prezent calculato rul de bord fiind cea mai importantă parte a
sistemului electric auto. În timp ce producătorii de mașini încă îmbunătățesc motorul cu
ardere internă, viitorul calculato rului de bord de -abia î ncepe. [14]

1.2Computere de bord actuale si interfețe de comandă
1.2.1 Unitatea Electronică de Control
În domeniul electronicii auto, termenul de unitate electronică de control (UEC) se
referă la orice sistem încapsulat care controlează unul sau mai multe sisteme sau subsisteme
electrice dintr -un vehicul motorizat. Aceste sisteme formează binecunoscutul computer de
bord, unele mașini având până la 80 de UEC -uri. Practic, mașina conține mai multe
computere într -unul singur.
Principalele tipuri de UEC:
 Unitatea de Control a Motorului (ECU)
 Unitatea de Control a Trans misiei (TCU)
 Unitatea de Control a Frânei (BCU)
 Unitatea de Control a Suspensiei (SCU)
 Unitatea Centrală de Sincronizare(CTU)
 Unitatea Electronica Generală(GEU)

19

1.2.2 Parametri controlați de ECU
Controlul amestecului de combustibil
Pentru un motor cu injecție unitatea de control a motorului va determina, bazându -se pe
un număr de parametri cantitatea de combustibil ce trebuie injectată. Dacă pedala de
accelerație este apasată, mai mult aer va intra în motor. ECU va injecta mai mult combustibi l
în funcție de cantitatea de aer. În cazul în care motorul este încă rece, se va injecta mai mult
combustibil decât in mod normal. Carburatoarele controlate de computere lucrează la fel ca
cele de generație veche, singura diferență fiind încorporarea unui solenoid sau a unui motor cu
pas în injector.
Controlul timpilor de aprindere
Pentru a fi inițiată aprinderea combustibilului în camera de ardere este nevoie de o
scânteie. Unitatea de control a motorului poate ajusta timpul exact al scânteii și poate genera o
putere mai bună. Dacă se detectează rateuri in arderea combustibilului, caz di structiv pentru
motor, ECU va întârzia timpii viitori de aprindere. A doua și cea mai comună sursă de rateuri
constă în funcționarea motorului într -o gamă de rotați i prea mică pentru sarcina din momentul
respectiv. În acest caz rateurile apar atunci când pistonul nu e ste capabil să coboare în acelaș i
timp cu detonarea. Acest caz apare in special la mașinile dotate cu cutie manuală de viteze. La
mașinile cu cutie auto mată reglarea turațiilor se face de către ECU care va folosi o treaptă
inferioară.
Controlul vitezei de mers în gol
Majoritatea motoarelor au un dispozitiv de control al vitezi de mers în gol incorporat în
ECU. Rotațiile motorului sunt monitorizate de către senzorul arborelui cotit. Acesta joacă un
rol important în injecția de combustibil și timpii scânteilor. Viteza de mers în gol este
controlată de un senzor de accelerație sau de un motor cu pas. Motoarele de început bazate pe
carburator foloseau un senzor de accelerație acționat cu ajutorul unui motor bidirecțional.
Pentru a funcționa corect, dispozitivul de control al mersului în gol trebuie să poată anticipa
sarcina motorului. Sarcina motorului la relanti se poate schimba dacă sunt activate sist emul de
servo -direcție, sistemul de servo -frână, sau apariția de consumatori noi în sistemul electric. De
asemenea, aceasta poate varia și în funcție de temperatura motorului. Un sistem de control al
accelerației poate fi utilizat la controlul vitezei de r elanti, în implementarea funcțiilor de pilot
automat sau limitarea vitezei constructive.
Scopul reglării relantiului este de a obține un regim stabil de funcționare gestionând
cantitatea de aer aspirată. Reglarea relantiului nu poate fi făcută dec ât dacă calculatorul are
informația “picior ridicat”.
Regimul de consemn rela nti este determinat în funcție de:
 Temperatura apei motorului
 Funcția climatizare și puterea absorbită
 Presinea din circuitul hidraulic al direcției asistate
 Încărcarea bateriei
 Debitul de aer este controlat prin:
 Poziția voletului corpului clapetă
 Printr -o derivație a acestuia

20
Reglarea relantiului prin rotația clapetei de acclerație
Corecț ia regimului de relanti se face grație com enzii primite de către clapeta mo torizată.
Reglarea deschiderii clapetei permite reglarea cantităț ii de aer absorbită de motor.

Reglarea relantiului prin derivație
Sistemele care permit acest lucru sunt de două tipuri:
 Motor pas cu pas
 Electrovane cu una sau două înfășurări.
Cont rolul electronic al valvelor
Au fost create și testate motoare experimentale ce nu conțin arborele cotit, dar care dețin
controlul admisiei și al deschiderii valvelor de evacuare. Aceste motoare pot fi pornite și
utilizate fără ajutorul unui starter, ci do ar echipate cu un sistem electronic de aprindere și
injecție. “Startul static” poate oferi o reducere a emisiilor de gaze și eficiență asemenea
motoarelor hibride, însă fără un starter complex ce duce la creșterea prețului
autoturismului .[13]

1.2.3 Comput ere de bord actuale
Computerele de bord au evoluat în decurs de câțiva ani de la sisteme simple, care
estimează numai distanța ce poate fi parcursă cu cantitatea de carburant rămasă, până la
sisteme sofisticate care oferă informații cum ar fi consumul inst antaneu și mediu de carburant,
cantitatea de benzină consumată, viteza medie, cantitatea de benzină rămasă, timpul estimat
pâna la destinație, indicator asupra duratei de viață a uleiului și oferă chiar și capacitatea de
diagnostic.
Unii producători de au tovehicule au mers și mai departe, ei integrând într -un singur
modul de control aproape toate funcțiile electronice existente. Acest fapt este ilustrat în
exemplele următoare.

BMW iDrive
Sistemul iDrive de la BMW oferă șoferului controlul total asup ra funcțiilor automobilului,
permițându -i în același timp să se concentreze la drum. iDrive prezintă o interfață creată într –
un mod simplu și intuitiv cu ajutorul căreia se controleză următoarele funcții: navigație,
comunicație, informație și divertisment.

21

Fig 1.1 BMW iDrive

Acest sistem de control este format din:
 Afișajul prezintă clar, ușor de citit toate funcțiile care pot fi controlate. Printre
acestea sunt informațiile primite de la computerul de bord propriu -zis, setările
pentru sistemul audi o și pentru radio, direcțiile date de sistemul de navigație,
informații în timp real despre trafic precum și informații despre starea mașinii.
Afișajul de tip LCD oferă un contrast excelent, generând imagini clare fără
reflexii în orice perioadă a zilei. U n senzor fotosensibil măsoară intensitatea
luminoasă din interior și ajustează automat afișajul, el rămânând ușor de citit,
chiar dacă se află în soare sau dacă intensitatea luminoasă este foarte scăzută.
Meniul principal este impărțit în patru categorii: Comunicație, Navigație,
Divertisment și Climat.

Fig 1.2 Afisaj BMW iDrive [17]

 Controlerul este un element principal al sistemului iDrive construit conform
celor mai recente principii din biometrică pentru a menține atenția conducătorului
auto la drum. Mecanismul de tipul „rotește și apasă” asigură o manipulare facilă a
controlerului .

22

Fig 1.3 Controler BMW iDrive [17]

Ford Sync
Ford Sync este unul dintre cele mai performante sisteme de control existente. Acesta
inglobează în structu ra sa numeroase alte funcții de comandă pe lângă cea de bază de
computer de bord. Sistemul Sync permite crearea de „rapoarte de sănatate” ale autovehicului
prin care este determinată starea tehnică, sunt oferite sfaturi și se pot fixa date pentru lucrări
de mentenanță. Consumul mediu sau instantaneu de combustibil, distanța parcursă, etc. toate
acestea pot fi vizualitate pe bordul autovehiculului. Controlul multor funcții este asigurat de
butoane amplasate pe volanul mașinii, facilitând astfel condusul .[19]

Fig 1.4 Ford Sync [19]

Audi
Computerul de b ord utilizat la modelele Audi poate indica următorii parametrii :
 Consum mediu de la ultima pornire
 Consum mediu de la un moment stabilit până în prezent
 Consum instantaneu

23
 Temperatura exterioară
 Distanța parcursă de la ultima pornire
 Distanța parcusă de la un moment stabilit
 Distanța ce mai poate fi parcursă până la golirea rezervorului
 Ceas
 Numele stației radio/melodiei
 Viteza medie de la ultima pornire
 Timpul de funcționare
 Afișarea presiunii roților

Fig 1.5 Computer de bord Audi
Volkswagen
Computerul de bord utilizat la modelele Volkswagen poate indica următorii parametrii :
 Consum mediu de la ultima pornire
 Consum mediu pentru de la un moment stabilit până în prezent
 Cons um instantaneu
 Temperatura exterioară
 Distanța parcursă de la ultima pornire
 Distanța parcusă de la un moment stabilit
 Distanța ce mai poate fi parcursă până la golirea rezervorului
 Ceas
 Numele stației radio/melodiei
 Viteza medie de la ultima pornir e
 Timpul de funcționare [21]

24

Fig 1.6 Computer de bord Volkswagen [21]

1.3Interfețe și protocoale de comunicare
1.3.1 Interfața ALDL
Interfața ALDL(Assembly Line Diagnostic Link) sau ALCL(Assembly Line
Communica tions Link) este considerată de cei mai mulți ca predecesorul interfeței OBD I sau
ca versiunea proprie a interfeței OBD I deținută de producătorul de automobile General
Motors.
Sistemul a fost foarte vag standardizat și a suferit din cauza fapt ului că specificațiile
conexiunii de comunicații variau de la un model la altul. Interfața ALDL a fost folosită, in
principal de producători, pentru diagnostic la reprezentanțe și pentru servicii oficiale de
mentenanță.
Primele versiunile folosea u o rată de simbol de 160, în timp ce versiuni mai noi foloseau
o rată de simbol de 8192 comunicând bidirecțional cu ECU. [11]

Fig 1.7 Conector ALDL cu 12 pini [11]

Există cel pu țin 3 tipuri de conectori cu interfața ALDL. General Motors a
implementat atât conectorul cu 5 pini cât și cel cu 12 pini , ultimul fiind folosit la majoritatea
automobilelor GM. Lotus a implementat conectorul cu 10 pini .
Conector ALDL cu 10 pini : A B C D E Conector ALDL cu 5 pini: A B C D E
K J H G F

25

1.3.2 Interfața OBD I
Apariț ia OBD -I a avut ca scop încurajarea producătorilor de automobile de a crea
sisteme inovatoare de control al emisiilor care să rămână utilizabile pe întreg parcursul vieții
mașinilor. Se dorea ca prin verificarea anuală a emisiilor de gaze să se evite înscrierea
mașinilor poluante iar șoferii să cumpere automobile noi. OBD -I a fost un eșec total din cauza
lipsei standardelor în cazul informațiilor obținute. Varietatea tipurilor de d ate despre emisiile
de gaze strâ nse de la marii producători au dus la incapacitatea de implementare a programului
anual de verificare. Conectorul pentru comunicarea cu interfața OBD este cea din figura 1.8.
Pinii 4 și 5 reprezintă masa, iar pinul 16 oferă informații legate de tensiunea bateriei. [12]

Fig 1.8 Conector OBD [12]

1.3.3 Interfața OBD II
OBD -II reprezintă o îmbun ătățire a OBD -I atât asupra capabilităților cât și a
standardizării. Standardul OBD -II specifică tipul de conector folosit împreună cu
funcționalitatea fiecărui pin, tipurile semnalelor electrice și a protocoalelor si formatul
informațiilor oferite. De ase menea oferă o serie de parametri ce pot fi monitorizați. În
conector este integrat un pin folosit la alimentarea uneltei de scanare direct de la bateria
mașinii, eliminându -se astfel nevoia unei surse separate de alimentare. Standardul OBD -II
oferă o listă extensibilă de coduri de eroare (Diagnostic Trouble Codes, DTC). Există 2
variante: OBD -IIA și OBD -IIB.

Fig1.9 Conector OBD II

26
Există 5 protocoale de comunicație utilizate pentru OBD -II: SAE J1850 PWM , SAE
J1850 VPW , ISO 9141 -2 , ISO 14230 KWP2000 și ISO 15765 CAN . Majoritatea
vehiculelor au implementat un singur protocol din cele 5. De cele mai multe ori se poate
deduce protocolul utilizat verificând ce pini sunt folosiți la conectorul J1962.
SAE J1850 PWM – Acest standard este utilizat in principal de catre Ford
 Folose ște modulația în impulsuri
 Viteză de transfer a datelor de 41,6 kb/sec
 Pin 2: Bus +
 Pin 10: Bus –
 Tensiunea maximă este de +5 V
 Lungimea mesajelor este de maxim 12 octeți
 Utilizează un sistem multi -master de arbitrare numit “Carrier Sense Multiple Access
with Non -Destructive Arbitration” (CSMA/NDA)

Fig 1.10 Pinii utilizați la protocolul SAE J1850 PWM
SAE J1850 VPW – Standard utilizat de către General Motors
 Folosește modu lația cu puls variabil
 Viteză de transfer a datelor de 10,4/41,6 kb/sec
 Pin 2: Bus +
 Tensiunea maximă este de +7 V
 Tensiunea minimă este 0 V
 Lungimea mesajului este de maxim 12 octeți
 Utilizează CSMA/NDA

Fig 1.11 Pinii utilizați la protocolul SAE J1850 VPW

27
ISO 9141 -2. Acest protocol utilizează o conexiune serială asincronă cu o rată de maxim 10,4
kBaud. Comunicația are loc pe o singură linie bidirecțională. A fost folosit pentru prima dată
de către Chrysler pentru vehiculele vân dute in Europa și Asia.
 Pin 7: linia de comunicare la ECU – linia K
 Pin 15: linia de activare a ECU – linia L
 Receptor/transmițător asincron universal UART
 Lungimea mesajului este de 12 octeți

Fig 1.12 Pinii utilizați la protocolul ISO 9141 -2

ISO 14230 (KWP2000
 Pin 7: linia K
 Pin 15: linia L
 Nivelul fizic este identic cu cel al ISO 9141 -2
 Schimbul de date se face cu rată de la 1,2 la 10,4 kBaud
 Mesajul poate avea maxim 255 octeți

ISO 15765 CAN Interfaț a CAN este cel mai folosit mijlo c de transferde date utilizat in
indrustia automobilistică, atât în int erfețe de diagnoză cât și între computerele mașinii .
 Viteză de transfer a datelor de 250 kBit/s sau de 500 kBit/s
 Pin 6: CAN – H
 Pin 14: CAN – L

Fig 1.13 Pinii utilizați la protocolul ISO 15765 CAN
CAN(Controller Area Network) este o metodă nouă de comunicație si de diagnostic
pentru automobile utilizată de cele mai noi tipuri de VW, Audi , Seat si Skoda. Spre deosebire

28
de vechiul standard ISO9141 care folosea o singură linie pentru diagnostic, noul sistem CAN –
Bus utilizează o pereche de fire torsadate cu semnale diferențiale.
Lista mașinilor care folosesc protocolul CAN (Vezi Anexa 1).
1.3.4 Interfața EOBD
EOBD reprezintă o versiune a OBD -II utilizată în Europa la toate modele fabricate
începând din 2003 cu motoare diesel și la modelele fabricate din 2001 cu motoare pe benzină.
Datorită apariției standardelor Euro V și Euro VI, rezultatele statisticilor EOBD cu privire la
emisiile de gaze vor fi mai bu ne decât cele din perioada standardelor Euro III și Euro IV.
EOBD este prescurtar ea Europe On -Board Diagnostics. Vehiculele care răspund normelor de
poluare EURO 2000 (EURO III) sunt echipate cu sistem de auto -diagnoză EOBD.

1.4Proceduri de diagnosticar e a defecțiunilor
Procedura de diagnosticare este o abordare organizată pentru identificarea unei
probleme creată de o defecțiune la sistemul de comandă a motorului. Această procedură
trebuie să fie punctul de plecare pentru orice diagnoză pri vind o pro blemă în funcționarea
motorului. Î nțelegerea tabelului de diagnosticare și utilizarea sa corectă vor reduce timpul de
diagnoză și va preveni înlocuirile de piese nenecesare.
În cazul unor defecte ale diferitelor sisteme ale automobilului, pe cal culatoarele de
control (motor, cutie de viteze automată, etc.), de cele mai multe ori, sunt stocate coduri de
defect. Aceste coduri sunt utile pentru a face o diagnosticare rapidă și corectă a problemei.
Interfața OBD -II oferă acces la numeroas e informații din unitatea de control a
motorului (Engine Control Unit, ECU) în momentul identificării problemelor din interiorul
mașinilor. Datele oferite de către ECU sunt denumite cu ajutorul numerelor de idetificare a
parametrilor (Parameter Identificat ion Numbers, PID) definite în J1979. Producătorii nu sunt
obligați să implementeze toate numerele de identificare a parametrilor, și, deasemenea pot
introduce noi valori ce nu sunt standardizate.
1.4.1 Gestionarea defectelor la interfața EOBD
Principiu de funcționare a gestionării defectelor EOBD
a) Strategia de diagnostic EOBD :
 Diagnosticul rateurilor de ardere și diagnosticul electric este făcut permanent.
 Celelalte organe de depoluare sunt testate o singură dată pe rulaj (diagnosticul nu este
permanen t). Totuși aceste secvențe de test nu au loc întotdeauna. Vehiculul trebuie să
ruleze în anumite condiții pentru a se putea face un diagnostic:
 Condiții de temperatură
 Condiții de viteză
 Temporizare după pornire
 Condiții motor (Presiune colector, regim , pozitie clapetă acceleratie, etc.).
b) Declararea penelor EOBD.
În cazul în care calculatorul detectează o eroare validă timp de trei rulaje consecutive,
atunci :
 O eroare EOBD este memorată.

29
 Se cere aprinderea martorului MIL. Această cerere va fi luată în considerare numai
dacă eroarea considerată este autorizată pentru aprinderea martorului.
 O gamă de parametri motor este memorată în momentul detectării defectului ( freeze
frame ).
c) Ștergerea defectelor EOBD.
Pentru stingerea ma rtorului MIL, nu trebuie detectată aceeași eroare validă ti mp de trei
rulaje consecutive. Pentru a repune la zero defectele EOBD (defect pe dispozitivul de
diagnostic) memorate, nu trebuie detectată eroarea validă timp de 40 de warm -up-uri
consecutive (Tem peratura apei trebuie să fi crescut cu aproximativ 22°C față de temperatura
avută la pornirea motorului.). Defectul rateurilor de combustie care pot distruge catalizatorul
nu duc la memorarea de defect EOBD. Nu provoacă decât aprinderea intermitentă a
martorului MIL. Atunci când defectul dispare, martorul se stinge.

Condiții de aprindere a martorului EOBD
 Dacă la punerea contactului, temperatura apei, aerului sau a presiunii din colector sunt
în afara anumitor plaje de valori, atunci diagnosticul funcționa l al catalizatorului, a
sondei de oxigen și d etectarea rateurilor de ardere nu vor fi autorizate până la
urmă toarea punere a contactului.
 Dacă calculatorul detectează o eroare la captorul de temperatură , apă, aer sau presiune
colector, diagnosticul nu est e autorizat.
 Dacă sonda de oxigen amonte este defectă, diagnosticu l catalizatorului nu poate fi
făcut.
 Diagnosticul funcțional al sondei de oxigen și a catalizatorului nu pot fi făcute
niciodată în același timp.
 Dacă diagnosticul sondei de oxigen și a c atalizatorului sunt în curs, purjarea canistrei
este închisa iar adaptivii sunt blocați la ultima lor valoare.

Diagnosticul rateurilor de ardere
Scopul diagnosticului rateurilor de ardere este de a repara o anumită disfuncționalitate
ce poate duce la o depășire a pragului de poluare EOBD.

Diagnosticul sondei de oxigen amonte
Sonda O2 este declarată defectă dacă perioada sa medie de răspuns depășește pragul
EOBD. Ea provoacă aprinderea martorului EOBD ( MIL ) . Defectele sondei de O2 sunt de
două tipuri :
 Degradarea mecanică a componentelor (spargere, tăierea firului) care se traduce
printr -o pană electrică.
 Degradarea chimică a componentelor care duce la o mărire a timpului de răspuns a
sondei și care se traduce printr -o perioadă de trecere de la tensiune mică la tensiune
mare crescută.

30

Diagnosticul catalizatorului
Scopul diagnosticului catalizatorului: diagnosticul functional al catalizatorului trebuie
să perm ită detectarea unei disfuncționalitate care ar putea duce la depășirea pragului de
poluare a normei EOBD.
1.4.2 Codurile de defect
Codul de defect este format din 5 caractere: o literă urmată de 4 cifre. Litera se referă la
sistemul interogat. Al doilea caracter este 0 dacă autovehiculul este compatibil cu standardul
EOBD, al treilea se referă la subsisteme, iar ultimele două se referă la eroarea individuală din
cadrul fiecărui subsistem.
 P00xx – Monitorizarea Aerului și a Combustibilului și Controlul Auxiliar al Emisiilor.
 P01xx – Monitorizarea Aerului și a Combustibilului.
 P02xx – Monitorizarea Aerului și a Combustibilului (Circuitul Injectoarelor).
 P03xx – Sistemul de aprindere.
 P04xx – Controlul Auxiliar al Emisiilor.
 P05xx – Controlul Vitezei Autovehiculului.
 P06xx – Circuitul de Ieșire al Compute rului.
 P07xx – Transmisie.
 P08xx – Transmisie.

Coduri le de diagnos tic SAE pentru interfata OBD -II sunt prezentate în Anexa 2.

31

CAP 2. Sisteme de diagnoză aftermarket

2.1 Sisteme de diagnoză autonome
Produsele din categoria S canGauge integrează un c omputer de bord avansat , un
dispozitiv digital și un mecanism de scanare ușor de utilizat într -un pachet mic și compact ,
conc eput pentru a se potrivi la orice mașină .
ScanGaugeII și noul J1939/J1708 compatibil cu ScanGaugeD a u caracteristici
compatibile cu sistemul programabil X -Gauge , în timp ce ScanGaugeE furnizează un grafic
în timp real referitor la consumul de carburant și emisia de CO2.

Fig 2.1ScanGauge
2.1.1 ScangaugeII
Trip Computer -ul integrat furnizează răspuns în timp real și urmă rește trei seturi de da te.
Indicatoarele digitale oferă date î n timp real legate de fiecare automobil iar echipamentul de
diagnoză inclus permite citirea coduri lor de eroare de la calculato rul de motor si
diagnosticarea potențialelor probleme, înainte ca ele să scape de sub control.
Caracteristici ale ScanGaugeII:
 Dimensiuni mici
 Compatibil cu aproape toate tipurile de mașini
 Cablu detașabil : permite manipulaera și deconectarea rapidă din mașină
 Operațiile se selectează din meniu : nu necesită me morarea unor secvențe complicate
 Funcționează cu toate protocoalele OBDII /EOBD
 Display LCD cu contrast mare
 Nu necesită alimentare externă : Se alimentează prin conectorul OBD [3]

32

Tabel 2.1 Semnificația abrevierilor parametrilor afișați [3]
Abreviere Numele parametrilor Descrierea parametrilor afi șați
CLSD LP
OPEN LP Fuel system loop status Aceste abrevieri indică atunci când senzorul de
oxigen este folosit pentru a controla amestecul de
carburant,acesta poate fi deschis (OPEN) sau închis
(CLS).

CMP Cost per mile Costul pe fiecare milă parcursă
FIA
CIA Intake Air temperature
Temperatura aerului care intră în admisie în grade
F sau Celsius.

FWT
CWT Water temperature Temperatura lichidului de răcire in grade F și C
FPR Fuel Pressure Presiunea combustibilului raportată de pompa de
alimentare, puține autovehicule au această funcție.

GPH
LPH Galons/liters per hour Rata consumului în unitățile selectate, depinde
foarte mult de accelerație, treapta de viteză
selectată și sarcină .

IGN Ignition Timing Arată mărimea avansului sau a întârzierii aprinderii
LOD Engine Load Aceasta arată procentual cât anume din puterea
maximă a motorului este generată în acel
moment.

MPG
KPG
MPL
LHK
Miles/ Gallon
Km/ Gallon
Miles /Liter
Liters/100km
Econ omia / consumul de combustibil în unitatea
selectată,este actualizată la fiecare 2 secunde, asta
înseamnă că valoarea fișată este pentru următoarele
2 secunde.

MPH
KPH miles,KM/hour Viteza pe oră în unitatea selectată
MAP Mainfold absolute
pressure Această valoare indică presiunea absolută din
galeria de admisie. Este raportaă fie în Pounds -per-
square -inch PSI , fie în kilopascali KPA, depinde
de selecție.

RPM Revolutions per minute Turația motorului măsurată în numărul de rotații
într-un minut

TPS Throttle – Position –
Setting La unele vehicule, clapeta de accelerație închisă va
corespunde valorii 0 iar deschisă la maxim va fi
100.

VLT Battery Voltage Încărcarea bateriei.

33

Fig 2.2 ScanGaugeII [3]
2.1.2 Scangau ge D
Spre deosebire de mașinile cu motoare pe benzină , OBDII nu este standard utilizat
pentru o gamă largă de mașini cu motoare diesel precum camioanele si utilajele de mare
putere ; aceste autovehicule bazându -se pe protocoalele J1939 și J1708. Sistemele de
diagnostic pentru aceste autovehicule sunt mari și foarte scumpe , însă sistemul ScanGaugeD
elimină aceste incoveniente.
ScanGaugeD este dotat cu un singur cablu de conectare construit pentru a fi
compatibil cu ambele protocoale :
 J1939 cu un port de diagnostic care are 9 pini
 J1708 care are un port de diagnostic cu 6 pini.
ScanGaugeD este compatibil cu cele mai important e sisteme ale unei game largi de
autovehicule cu motoare diesel și furnizează informații in ti mp real despre anumiți parametr i.
Caracteristicile sale includ 15 dispozitive digitale integrate, 5 computere de bord și un
dispozitiv de scanare car e returnează codurile de eroare .
Autovehiculele moderne dispun de calculatoare incorporate , iar de cele mai multe ori
acestea sunt utilizate pe ntru a rezolva anumite erori ce pot apărea. ScanGaugeD trimite un
mesaj de avertizare când un cod de eroare este detectat. De aseme nea se pot citi codurile
active , inactive și codurile aflate în așteptare. ScanGaugeD furnizează detalii ale codu rilor de
defect, detectează si elimină condițiile care au dus la apariția codurilor respective.

ScanGaugeD dispune de mai multe funcții :
 Trimite o avertiz are câ nd un cod de defect este detectat
 Citește codurile active, inactive și codurile aflate în așteptare
 Detecte ază condițiile prezente in momentul aparitiei codului de eroare (RPM,
Temperatura , etc.)
 Rezolvarea acestor coduri [3]

Fig 2.3 ScangaugeD [3]

34
2.1.3 Scangauge E
ScanGa ugeE oferă informații în timp real cu privire la economia de carburant a
autovehiculului. Potrivit unui raport emis de Guvernul USA ajustarea obiceiurilor de condus
poate reduce consumul de combustibil cu până la 33 %. ScanGaugeE™ furnizează un
feedback cu privire la ajustarea obiceiurilor de condus pentru o îmbunatățire cât mai bună a
consumului de combustibil.
ScanGaugeE monitorizează :
 Consumul de carburant, oferind informații precum
 Numărul de litri consumați într -o oră
 Numărul de litri consumați pe o d istanță de o milă
 Consumul tota l de când motorul este pornit
 Consumul mediu.
 Emisiile de CO2 , oferind informații precum
 Emisia curentă de CO2
 Media emisiei de CO2 pe o perioadă de timp
 Emisia de CO2 pentru întreg rezervorul
ScanGaug eE se instalează foar te ușor și nu necesită instrumente speciale , baterii sa o
sursă de alimentare externă.Toate datele și alimentarea sunt preluate de la o singura conexiune
OBDII care este prezentă pe toate mașinile începând cu anul 1996. [3]

Fig 2.4 ScangaugeE [3]

2.1.4 Comparație ScangaugeII/ScangaugeD/ScangaugeE
Pentru funcții avansate , precum X -Gauge și sisteme performante de scanare ca re oferă
posibilitatea de a urmă ri parametri performanți în perioade scurte te timp și pe o distanță
mică , se folosește ScanGaugeII. ScanGaugeE este utilizat dacă se urmăresc caracteristici
precum economisirea consumului de carburant, sau emisia de CO2. [3]
Tabel 2.2 Comparaț ie ScangaugeII , ScangaugeD , ScangaugeE
Caracteristici ScangaugeII ScangaugeE ScangaugeD
OBDII Interface  
J1939 & J1708 Interface 
Scan Tool Functions   
Built in Digital Gauges   
Built -in Trip Computers   
Color Backlite Display   

35
English& Metric read outs   
Performance Features  
X-Gauge Feature  
User Programmable
Commands  
MPG Graph Display 
Computes Horsepower in
real-time  
Computes CO2 emitted by
vehicle. 
Overall Dimensions Height:(38.1mm)
Width:(121.92mm)
Depth: (25.4mm) Height (35.56mm)
Width (91.44mm)
Depth (25.4mm)
Height (38 .1mm)
Width (121.92mm)
Depth (25.4mm)

2.1.5 Compatibilitatea cu vehiculele actuale
Familia de produse ScanG auge este , in general, compatibilă cu toate tipurile de
vehicule fabricate după anul 1996 .În următorul tabel sunt prezentate câteva excepții.
Tabel 2.3 Compatibilitatea produselor ScanGauge cu vehiculele actuale [4]
An Excepții
1997 Ford , Mașinile GM si Dodge cu motoare diesel
Ford Explorer și Ford Ranger –Nu există informații despre viteză, distanța
parcursă si desper consumul de carburant
1998 Ford Explorer și Ford Ranger –Nu există informații despre viteză, distanța
parcursă si desper consumul de carburant
1999 Nu există excepții
2000 Nu există excepții
2001 Nu există excepții
2002 Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant.
2003 Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant, cu excepția cazului in care actualizarea softului ECU a fost
finalizată.
2004 Camionetele Dodge cu motoare diesel
Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant, cu excepția cazului in care actualizarea softului ECU a fost
finalizată.
2005 Camionetele Dodge cu motoare diesel
Lotus Elise
Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant , cu excepția cazului in care actualizarea softului ECU a fost
finalizată.
2006 Honda Odyssey
Lotus Elise
Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant, cu excepția cazului in care actualizarea softului ECU a fost

36
finaliz ată.
2007 Lotus Elise
Jeep Liberty cu motoare diesel nu oferă informații despre consumul de
carburant, cu excepția cazului in care actualizarea softului ECU a fost
finalizată.
2008 Nu există excepții
2009 Nu există excepții
2010 Nu există excepții
2011 Chevrolet Cruze
2012 Chevrolet Cruze

2.2Sisteme de diagnoză aftermarket pentru service (pc based)
În acest subcapitol voi prezenta o interfața de diagnoză aftermarket ”pc based” , interfața
VCDC , care este de peste un deceniu lider pe piața de acceso rii pentru diagnoza vehiculelor
din grupul VW -Audi.
 2000: Primul sistem de diagnosticare cu adevărat accesibil, cu funcții complete , pentru
VW/Audi. Software -ul este actualizat constant care menține compatibilitatea cu toate
modelele de mașini pentru pasag eri, de la VW, Audi, Seat, și Skoda, prin modelul
actual, încă de atunci.
 2001: Prima interfață care permite utilizatorilor să vizualizeze și să înregistreze 3
grupuri de măsuratori (live) simultan.
 2002: Prima interfață de pe piața de accesorii care accep tă coduri SKC din 7 cifre și
este capabilă să acceseze modulele care cer moduri proprietare VAG, pe protocolul
KWP -2000 (2001 + Teves Mk.60 ABS, și numeroase module din 2002 +).
 2003: Prima interfață de orice fel care afișează informații critice despre mot oarele TDI
sub formă grafică și permite realizarea de grafice ale rezultatelor grupurilor de
masuratori (live) în format similar osciloscopului, prin intermediul unui plugin open –
source.
 2004: Prima interfață de pe piața de accesorii, care asigură suport c omplet pentru noile
modele VW/Audi care necesită pentru diagnosticare conexiune CAN directă.
 2005: Prima interfață de pe piața de accesorii "VAG" care are capacități generice
pentru OBD -II, fără cost uri suplimentare, și descifrează noile "Coduri Lungi" uti lizate
la ultimele modele.
 2006: Prima interfață care a facut ușoară descoperirea datelor live pe care utilizatorul
le caută, prin intermediul opțiunii Valori ale Masuratorilor Complexe, care afișează
date instantanee pentru codurile erorilor, afișând, în paralel, și codurile erorilor, și care
incorporeaza abilitatea de a face Masurători ale Accelerației.
 2007: Prima interfață de pe piața de accesorii care suportă Diagnosticarea Magistralei
Optice și conține scripturi predefinite pentru forțarea execuției S enzorilor pentru
Emisii.
 2008: : Prima interfață de pe piața de accesorii care suportă citirea și ștergerea
codurilor erorilor din modulele care folosesc noile protocoale UDS/ODX/ASAM

37
introduse în platforma Audi B8, și prima care include un Asistent de Cod ificare a
Pasarelei.
 2009: Prima interfață de pe piața de accesorii care suportă opțiunile Valori ale
Masuratorilor, Teste ale Evacuării și Adaptări, pe module de control care utilizează
noile protocoale UDS/ODX/ASAM, și care suportă resetarea corectă a celor 3
dispozitive de măsurare ale Reamintirilor de Intrare în Service, pentru modelele Audi
mai noi de 2008.
 2010: Prima interfață de pe piața de accesorii care suportă Setări Elementare pe
module de control care utilizează noile protocoale UDS/ODX/ASAM, și care va fi
disponibilă in varianta complet funcțională pe 64 de biți, pentru PC -urile care rulează
Windows pe 64 de biți.
 2011: prima interfață accesibilă care oferă suport pentru furgonetele VW Crafter, și
compatibilitate cu cele mai recente modele VW/Audi Group, din 2012, pentru
pasageri. [6]

Fig 2.5 Meniul principal VCDS [6]

Această ferea stră apare atunci când se pornește VCDS, apăsând pe scurtătura de pe
desktop, sau prin selectarea VCDS din meniul principal. În această apar 8 butoane :
 [Select]
 [Auto -Scan]
 [SRI Reset]
 [OBD -II]
 [Applications]
 [Options]
 [About]
 [Exit] (Acesta închide prog ramul VCDS)

38
2.2.1Alegerea modulului de control

Fig 2.6 Alegerea modulului de control VCDC [7]

Multiplele computere din mașina sunt numite "module de control" sau "controlere". În
această fereastră se poate alege cu ce modul de control do riți sa " vorbiți" . O mașină nu va
avea toate modulele de control enumerate în VCDS, ci doar pe cele din Pagina de Aplicaț ii
disponibile pentru mașina respectivă . Mașinile noi au mai multe, maș inile mai vechi au mai
puține. Fiecare filă din partea de sus a acestei fe restre conține o serie de controlere grupate pe
categorii.
La automobilele CAN care au o Pasarelă (Gateway) adecvată ce suportă o Listă de
Instalare, VCDS va completa automat una sau mai multe file din categoria Installed,
conținând butoane doar pentru acele module de control care sunt de fapt existente în maș ină.
Atunci când este utilizată pe o mașină care nu are o pasarelă care să suporte o Listă de
Instalare, vechea filă Common va fi afișată în continuare. Pentru clienții care utilizează VCDS
în primu l rând pe mașinile mai vechi, care nu au o Listă de Instalare disponibilă, această
caracteristică poate fi dezactivată în interfața utilizatorului și in fila Identification a ferestrei
cu Options.
Celelalte file sunt: Drivetrain (Trenul de rulare), Chassi s (șasiu), Comfort/Conv ,
Electronics 1 , Electronics 2 , și LT3. LT3 este „camioneta” Volkswagen, care nu este
vândută în America de Nord. La aceste camionete, de obicei, doar motorul, centurile, și
închiderea centralizată sunt VW. Restul componentelor su nt furnizate de Mercedes, dar nu
folosesc obișnuitele interfețe de diagnosticare Mercedes.

2.2.2Scanarea automată(Auto Scan)
Această funcție scanează fiecare controler din vehicul pentru a prelu a informațiile de
la acestea – Numerele Parților, ale Compon entelor, codul Softului, WSC, și codurile

39
erorilor .AutoScan este, probabil, funcția cea mai importantă din VCDS. Se recomandă rularea
și salvarea unui AutoScan complet al fiecărui vehicul la care se lucrează .
Acest lucru oferă o istorie a vehiculului, care poate fi de neprețuit în viitor, de
exemplu, în cazul în care un modul ABS eșuează, și trebuie să fie înlocuit. Utilizarea copiilor
anterioare este mult mai simplă decât identificarea unor asemenea valori pornind de la zero.
Există un fișier în direct orul VCDS denumit AutoScan.txt, care conțin e toate profilurile
vehiculelor .

Fig 2.7 VCDS : Auto Scan [7]
2.2.3 SRI Reset
Funcț ia [SRI Reset] este folosită pentru a reseta Reamintirile de Intrare in Service ale
vehiculelor echipate cu aceasta funcție. Funcția va accesa automat computerul de bord și va
prelua instrucțiunile SRI din Label File, precum și valorile curente stocate în computerul de
bord. Noile valori pot fi introduse manual, sau utilizatorul poate selecta dintr -o listă
predefinită pentru a alege dintr -o serie de funcții care vor încărca seturi de valori standard.
Modele care folosesc intervale flexibile de service pot afisa " –", ca valori temporale/distanța
pana la următorul service în computerul de bord. Aceasta nu este o eroare, sistemul având
nevoie de o anumită perioadă de timp/distanță pentru a se calibra și pentru a arăta valori
concrete. De obicei, sunt necesare aproximativ 300 de mile sau 500 km.
În multe modele mai noi de la Audi ( începand cu 2008 ), "Simple Ser vice Reset" sau "Basic
Service Reset" nu pot fi utilizate .[7]

40

Fig 2.8 VCDC : SRI Reset

2.2.4 OBD -II
Funcționalitate generică OBD -II. Deoarece multe din recentele manuale de service
VW nu mai au tradiționalele informații "On Board Diagn ostic" și au fost înlocuite cu
informații "Generic Scan Tool", acest lucru a devenit mult mai important decât a fost în
trecut. Funcționalitatea generică OBD -II este "suportată" numai pentru mașinile VW, Audi,
Seat, si Skoda. Probabil ca acesta va funcțion a pe multe alte marci de mașini.
Funcționalitatea generică OBD -II este limitată pentru mașini ce folosesc protocoalele
ISO 9141 -2 ("CARB"), ISO 14230 ("PCC -2000") și ISO -15765 ("CAN"). Nici una dintre
interfețele nu suportă protocoalele SAE J1850 VPW, s au protocoalele J1850 -PWM, folosite
de cele mai multe piețe din US, de GM înainte de 2008 GM și de Ford, astfel încât VCDS nu
poate funcționa deloc pe aceste mașini.

Fig 2.9 VCDS : OBD -II[7]

41
2.2.5Aplicații
Gateway Installation List. Această f uncție este disponibilă doar pentru pasarelele
(gateway -urile) mașinilor care folosesc o conexiune directă CAN pentru diagnosticare
(precum noul A8 și toate mașinile cu șasiu Golf -5). Acestei funcții foarte rapide îi ia
aproximativ 3 secunde pentru a inter oga pasarela mașinii și a afla ce module sunt instalate în
mașină și care este situația lor. Orice module care contin erori trebuie să indice o "defecțiune ".
Ștergerea tuturor erorilor (Erase All DTCs) La vehiculele care utilizează magistrala
CAN pentru d iagnosticare, VCDS șterge toate codurile erorilor de la toate modulele de
control din mașină, fără a accesa individual fiecare modul de control.
Butonul [eMail today's debug/log files] va deschide clientul e -mail implicit, și va
compune un mesaj pentru support@Ross -Tech.com cu toate fișierele cu înregistrari, și cu
toate fișierele de depanare, av ând data curentă .[7]

Fig 2.10 VCDC :Aplications [7]

2.2.6 Program Options
În acest meniu se pot shimba un număr de opțiuni organizate în ferestre, care tre buiesc
setate prima dată când se rulează VCDS de pe un PC.
Select Port .Se selectează portul COM l a care a fost conectat adaptorul interfeței.
Porturile seriale ar trebui să fie de la COM1 până la COM4 (cel mai adesea COM1), în timp
ce portul USB are o sing ură variantă. Motorul trebuie sa fie pornit și interfața conectată la
vehicul, apoi se apasă pe [Test] pentru a vedea dacă VCDS găsește interfaț a. Butonul [LED]
face ca LEDul interfaței să clipească și poate fi util pentru testarea porturilor, sau pentru
remedierea unor probleme referitoare la conectare.

42

Fig2.11 VCDS: Program Options [7]

2.2.7About
Informații despre licență:
 Cheia va fi inițial " Please test on car to see serial number ", până când se
conectează interfața la o mașină și se verifică codu rile de eroare dintr -un
controler. După aceea va fi disponibilă o cheie compusă din litere si cifre .
 Starea licenței trebuie să fie întotdeauna Fully Registered / Activated la toate
interfețele noastre actuale, deoarece acestea conțin propria lor cheie. În cazul în care
este afișat „not tested”, atunci este necesară conectarea la un controler (precum 01 –
Engine) și verificarea codurilor de eroare . După aceea, cheia trebuie să fie vizibilă.

Fig 2.12 VCDS: About [7]

43
CAP 3. Implementarea hardware

3.1 Obiectivele proiectului
Acest proiect are ca scop:
 Proiectarea și realizarea practic ă, sub formă de machetă de laborator, a unui sistem
de diagnoză auto care monitorizează diverși parametri ai automobilului prin
conectarea la interfața de diagnostic OBD -II:
 parametri motor,
 parametri sisteme ABS, ESP,
 computer habitaclu,
 radio
 Implementarea hardware a sistemului utilizând :
 kitul de dezvoltare Arduino MEGA 2560,
 afișaj LCD,
 tastatură,
 modul de comunicare utilizând protocoalele: ISO 15765 -4 (CAN), I SO 9141 -2
(Asia, Europa, Chrysler), SAE J1850 VPW (General Motors), SAE J1850
PWM (Ford), SAE J1939 OBD pentru interfața OBD -II;
 Implementarea software a unui program pentru μC ATmega2560 care
 gestioneaz ă meniul,
 asigură comunicarea cu unitățile de contr ol ale autovehiculului,
 prelucrează datele primite și afișează rezultatele pe un ecran LCD .

3.2 Schema bloc și descrierea func ționării
În acest proiect se construieș te un sistem de diagnoză auto utilizând co nexiunea la
interfaț a de diagnostic OBD -II .
Placa de dezvoltare ArduinoMega2560 preia informații de la shield -ul CAN .
Comunicarea între cele două module este realizată de shield prin intermediul interfaței SPI.
Mesajele recepționate de Arduino MEGA2560 sunt în hexazecimal, iar pentru a pu tea utiliza
informațiile obținute ele trebuie decodate utilizând formulele de calcul prezente în d escrierea
standardului SAE -J2284 .
După procesul de decodificare , informațiile sunt afișate pe un ecran LCD iar pentru
setarea opțiunilor și vizualiz area parametrilor doriț i si folosește și o tastatură .

44

12V

Fig 3.1 Schema bloc a computerului de bord
3.3 Componente
3.3.1 Placa de dezvoltare ARDUINO Atmega2560
Placa ARDUINO Atmega2560 utilizată în realizarea practică a proiectului are ca element
princ ipal microcontrolerul pe 8 biți Atmega 2560 . Conține , de asemenea , 54 de pini pentru
intrare/ieșire din care 14 pot fi utilizați ca porturi de ieșire cu modulație î n impulsuri, 16
intrări analogice , 4 porturi seriale UART , un oscilator cu cristal de c uarț ce lucrează la
frecventa de 16MHz , un port USB , o mufa de alimentare și un buton de reset .

Fig 3.2 Placă de dezvoltare ARDUINO Atmega 2560 [1]
Tabel 3.1 Caracteristicile plăcii de dezvoltar ARDUINO Atmega 2560
Microcontroler Atmega2560
Tensiunea de alimentare a uC 5V
Tensiunea recomandata de alimentare
a plăcii 7-9V
Limitele tensiunii de intrare 6-20V
Număr p ini digitali intrare/ieșire 54
Număr p ini analogici de intrare 16
Valoarea curentului continuu pentru
un pin I/O 40 mA

Placa de dezvoltare
ARDUINO ATMega2560 USB

Shield CAN DB9
Sursă de alimentare(5V)
Ecran LCD
Tastatură

45
Valoarea curentului continuu pentru
un pin I/O alimentat l a 3,3V 50mA
Memorie Flash 256KB
SRAM 8KB
EEPROM 4KB
Frecvența de ceas 16MHz

Alimentarea
Arduino Mega poat e fi alimentată prin portul USB de la unitatea centrală a calculatorului
sau de la o sursă externă. Sursa este selectată automat de către microrontroler. Ca sursă
externă se poate folosi un adaptor curent alternativ – curent continuu sau o baterie. Adaptor ul
se poate conecta cu ajutorul unei mufe de 2,1 milimetri. Placa poate fi alimentată de la o sursă
externă de tensiune cu valori cuprinse între 6V si 20V. Dacă tensiunea de intrare nu va depăși
7V, placa va funcționa defectuos, iar pinul de alimentare pen tru porturile de I/O nu va mai
atinge valoarea corectă de 5V. Pinii de alimentare existenți pe placă sunt :
a). VIN: pinul de alimentare utilizat în cazul în care se foloseste altă sursă de tensiune
decât portul USB. Dacă pentru alimentare se foloseș te conectorul existentă pe placă, se poate
utiliza acest pin ca punct de alimentare cu 5V.
b). 5V : pinul utilizat la alimentarea microcontrolerului și a altor componente de pe placă.
c).3.3V : pin utilizat pentru alimentarea altor componente. Intensitatea curentului ce trece
prin acest pin este de 50mA.
d).GND : pinul de masă.
Memoria
ATmega2560 deține:
a).256 KB de memorie flash utilizată pentru stocarea codului sursă al programului ;
b).8KB SRAM
c).4 KB EEPROM , memorie ce poate fi citită sau scrisă cu ajutorul librăriei
EEPROM.
Porturile de intrare/ieșire I/O
Toți cei 54 de pini de pe placă pot fi utilizați ca pini de intrare sau ieșire folosind funcțiile
pinMode(), digitalWrite() și digitalRead(). De asemenea, funcțione ază la o tensiune de 5 volți.
O parte din pini posedă funcții speciale:
a). Serial : 0 (RX) și 1 (TX); Serial 1: 19 (RX) și 18 (TX); Serial 2: 17 (RX) și 16 (TX); Serial
3: 15 (RX) și 14 (TX). Acești pini sunt utilizați la comunicarea serială ( RX – recept or, TX –
transmițător).
b). Întreruperi : 2, 3, 18, 19, 20 și 21. Acești pini pot fi configurați să declanșeze o
întrerupere la o valoare scăzută, un front crescător sau descrescător, sau la schimbarea unei
valori.
c). PWM : de la pinul 0 la pinul 13 inclu siv. Pot oferi modulare în impuls pe 8 biți cu ajutorul
funcției analogWrite().
d). LED : pinul 13. LED digital conectat la pinul 13.
e). AREF : tensiunea de referință pentru porturile de intrare analogice; utilizat împreună cu
funcția analogReference().

46
f). Reset : utilizat la resetarea microcontrolerului. De obicei se utilizează atunci când se
dorește adăugarea unui nou buton de resetare pe lângă cel deja existent pe placă.
Comunicația
Arduino Mega2560 poate comunica cu un computer, cu o altă pla că Arduino sau cu alte
microcontrolere prin 4 porturi seriale UART. Unul dintre acestea este utilizat cu ajutorul
ATmega8U2 pentru crearea unui port virtual prin care se face conectarea cu computerul.
Programarea
Placa de dezvoltare poate fi prog ramată cu ajutorul software -ului Arduino. Acesta este
oferit gratuit și poate fi descărcat de pe site -ul producătorului împreună cu indicații si
tutoriale. ATmega2560 are deja încărcat un soft cu ajutorul căruia noile bucăți de cod scrise
pot fi salvate și rulate de către microcontroller. Comunicarea se face cu ajutorul protocolului
STK500.
Resetarea software
Pe lângă butonul de reset aflat pe placă ce trebuie apăsat înainte de fiecare încărcare a
codului, Arduino Mega 2560 a fost concepută să se poată reseta singură atunci când este
conectată la un computer. Una din liniile de control ale ATmega8U2 este conectată la linia de
reset a plăcii printr -un condensator de 100 nanofarazi. Atunci când această linie este activată,
tensiunea de pe linia de re set scade îndeajuns de mult încât cipul se va reseta. Această
funcționalitate este apelată de către software atunci când utilizatorul dorește să încarce un nou
cod.
Protecția portului USB
Arduino Mega 2560 are în componența sa o siguranță ce prot ejează portul USB al
computerului de scurt -circuite sau tensiuni prea mari. Deși majoritatea plăcilor de bază dețin
circuite de protecție, siguranța de pe placa de dezvoltare va oferi protecți e dublă. În cazul în
care un cu rent mai mare de 500 mA va ajunge la portul USB, siguranța va întrerupe imediat
conexiunea.[1]

3.3.2 Ecran ul LCD
Afișajul HD44780U (Vezi Fig3.3) cu matrice de cristale lichide conține un controler și un
driver cu ajutorul cărora poate reprezenta semne alfanumerice, simboluri și c aractere
japoneze. Poate fi configurat să funcționeze împreună cu un microprocesor pe 4 sau 8 biți .
Deoarece memoria RAM utilizată la afișare, generatorul de caractere și driverul pentru
inițializarea cristalelor lichide se află toate pe aceeasi plăcuță sub forma unui singur cip, nu
este nevoie de o configurație avansată la care să se conecteze pentru a funcționa. Generatorul
de caractere crează 208 fonturi a câte 5 x 8 puncte și 32 de fo nturi a câte 5 x 10 puncte.
Deoarece tensiunea de care are n evoie pentru a funcționa este foarte mică ( de la 2,7 volți la
5,5 volți), HD44780U poate fi folosit împreună cu orice fel de sursă de alimentare.

47

Fig 3.3 Ecran LCD 20×4
Caracteristici:

 Tensiune de funcționare : într e 2,7V și 5,5V
 Formă de undă a semnalului de intrare specifică afișajelor cu cristale lichide
 Interfață de comunicare cu viteză de 2MHz
 Interfață c e poate funcționa pe 4 sau 8 biți
 Afișaj de 80 x 8 biți ( maxim 80 caractere)
 Generator de caractere cu ROM ce poate crea 240 tipuri de fonturi
 Generator de caractere cu RAM de 64 x 8 biți
 Cicli de lucru programabili
 Arie mare de instrucțiuni și funcții (ștergere ecran, mutarea cursorului,
activarea/dezactivarea ecranului, activarea/dezactivarea cursorulu i, shiftarea
caracterelor)
 Circuit automat de resetare ce inițializează driverul după alimentare
 Oscilator intern
 Consum scăzut de energie
 Matrici de câte 5 x 8 sau 5 x 10 puncte

3.3.3 Shield -ul CAN
Shield -ul(vezi fig. 3.4 ) oferă plăcii Arduino posibil itatea de a comunica cu magistrala
CAN, utilizând microchipurile MCP2515 și MCP2551 pentru control, respectiv transmitere
sau recepționare de date. De asemenea, dispozitivul dispune de o interfață SPI de mar e viteză
cu frecvența de 10MHz.
MCP2515 realizeaz ă schimbul de date dintre placa de dezoltare Arduino și shield prin
intermediul interfeței SPI. Acest tip de interfață permite transmisia serială de date dintre un
dispozitiv Master și mai multe dispozitive Slave dispunând de 5 semnale(pini) de comunicare:
a).SCK(Serial Clock): Semnalul de ceas necesar sincronizării datelor. La
dispozitivele Master semnalul este transmis, iar la cele Slave este recepționat;
b).MISO(Master In Slave Out): Reprezintă calea pe care dispozitivul Slave
transmite pachete de date către dispozitivul Master;

48
c).MOSI (Master Out Slave In): Reprezintă calea pe care dispozitivul Master
transmite pachete de date către dispozitivul Slave;
d).SS(Slave Select) sau CS(chip select): Datorită faptului că există posibilitatea ca un
dispozitiv Master să aibă subordonate mai multe dispozitive Slave, este necesar un
mod de a selecta dispozitivul Slave dorit. Acest semnal permite exact acest lucru;
e).INT: Pinul de intreruperi

Interfața SPI dispune și de 3 registre de 8 biți pentru setări și tr ansmitere de date:

 SPCR(SPI Control Register)
Bitul 7 Bitul 6 Bitul 5 Bitul 4 Bitul 3 Bitul 2 Bitul 1 Bitul 0
SPIE SPE DORD MSTR CPOL CPHA SPR1 SPR0

 SPSR(SPI Status Register)
Bitul 7 Bitul 6 Bitul 5 Bitul 4 Bitul 3 Bitul 2 Bitul 1 Bitul 0
SPIF WCOL – – – – – SPI2X

 SPDR(SPI Data Register): acest registru este utilizat la transmiterea datelor. În
momentul în care se scrie ceva în registru se inițiază transmisiunea, iar când se citește
ceva are loc receptia datelor.

Un alt set de regi stre important pentru MCP2515 este format din CNF1, CNF2, CNF3.
Aceste registre controlează sincronizarea biților pentru interfața magistralei CAN și pot fi
modificate nu când MCP2515 se află în modul de configurare. [10]

Fig 3.4 Shield CAN [9]

49

3.3.4 Cablu l de conectare
Cablul de conectare realizează legătura dintre shield -ul CAN și interfața OBDII.
Acesta este format din 3 părți: conectorul DB9, conectorul OBDII și cablul propr iu-zis de tip
UTP(vezi fig. 3.5 ).
Cablul este compatibil cu orice tip de protocol OBDII, el fiind de asemenea protejat de
semnale electromagnetice exterioare datorită faptului că fiecare protocol se află pe câte două
fire torsadate. Legăturile dintre cele două tipuri de conectori sunt realizate conform tabelului
următor.

Tabelul 3.2 Conexiunile dintre pini(DB9 -OBD -II)
DB9(9 pini) OBD -II(16 pini)
1 5 – Masă
2 4 – Masă
3 6 – CAN High
4 7 – ISO 9141 -2 K
5 14 – CAN Low
6 10 – J1850 bus
7 2 – J1850 bus
8 15 – ISO 9141 -2 L
9 16 – Tensiune Baterie

Fig 3.5 Cablu de conectare OBD -II DB9

3.3.5 Sursa de alimentare
Funcționarea sursei de alimentare este bazată pe circuit ul integrat L7805CV (vezi fig.
3.6). Ea primește tensiune de la bateria autovehiculului(aproximativ 12V) și distribuie prin

50
regulatorul de tensiune o tensiune de 5V pentru alimentarea tastaturii , a ecranului LCD și a
shieldului CAN.

Fig 3.6 Sursa de alimentare
De asemenea, la intrare avem amplasată o celulă de condensatoare pentru nete zirea
tensiunii . Mai departe tensiunea provenită de la bateria auto vehiculului ajunge la circuitul
integrat L780 5CV și este stabilizată la 5V. După circuitul integrat avem amplasat un grup de
două condensatoare c u rol de netezire . Pe plac ă a fost plasat si un led pentru verificarea
prezenței tensiunii de alimentare.

Fig3.7 Schema bloc a sursei de alimentare

3.3.6 Tastatura
Tastatura permite navigarea prin meniul comp uterului de bord (vezi fig. 3.6 ). Este
formată din 5 taste de tip microswitch „on/off” fără reținere: „OK”, „Sus”, „Jos”, „Anulare” și

51
”Start” este alimentată la 5V, iar semnalele de i eșire provenite de la taste sunt conectate la
pinii plăcii de dezvoltare.

Fig 3.8 Tastatura și schema sa bloc

3.4 Macheta platformei de laborator

Fig 3.9 Macheta platformei de laborator

52

3.5 Schema electrică a computerului de bord
În schema următoare sunt prezentate modu lele utilizate la realizarea calculatorului de
bord. Conectarea dintre module este rep rezentată pe pini fiecărui modul.

Fig 3.8 Schema electrcă a computerului de bord

53
Cap 4. Implementarea software

4.1 Descrierea meniului
Parcurgerea meniu lui se realizează cu ajutorul celor 5 butoane : „Sus”, „Jos”, „OK”,
„Anulare” ,”Start” . Butonului „S tart” permite accesarea meniului principal . Prima pagină a
meniului permite alegerea structurii setului de parametri afișați: „1.Simplu”, „2.Avansat”,
„3.Service”. Pentru a accesa unul din cele 3 seturi , cursorul trebuie poziționat pe linia
corespunzătoar e lui și apoi apăsată tasta „OK”. Revenirea la prima pagină se face prin
apăsarea tastei „Anulare”.

Parametrii afișați în setul „Simplu” sunt următorii:

 Turația motorului
 Viteza autovehiculului
 Temperatura lichidului de răcire
 Presiunea uleiului
 Nivelul combustibilului
 Distanța totală parcursă
 Distanța parcursă de la ultima pornire a motorului
 Temperatura exterioară

Parametrii afișați în setul „Avansat” sunt următorii:

 Tensiunea senzorului de oxigen
 Temperatura aerului din galeria de admisie
 Presiunea absolută din galeria de admisie
 Presiunea combustibilului
 Presiunea atmosferică
 Consumul mediu de combustibil
 Tensiunea bateriei
 Reglarea avansului
 Poziția clapetei de accelerație

Parametrii afișați în setul „Service” sunt următorii:

 Tipul de combustibil folosit
 Standardele OBD cu care este compatibil autovehiculul

54
 Coduri de defect
4.2 Descrierea funcțiilor de prelucrare
O funcție importantă în preluarea datelor de la autovehicul este inițializarea circuitului
integrat MCP2515 ampla sat pe shield -ul CAN.

Principalele funcții de prelucrare aflate în librăria Canbus.h sunt:
 char Canbus.ecu_req(int pid ,char *buffer)
 char Canbus.init(char speed)

Funcția de inițializare a circuitului MCP2515 este și funcția de inițializare a
protocolu lui CAN (Canbus.init()), iar în cazul acestui proiect parcurge următoarele etape
principale:
 setarea pinilor
 CS – pin de ieșire;
 SCK – pin de ieșire;
 MOSI – pin de ieșire;
 MISO – pin de intrare;
 INT – pin de intrare;
 activarea interfaței SPI Master p entru shield
 SPCR = 01010001;
 SPSR = 0;
 resetarea software a MCP2515 pentru a intra în procesul de configurare
 SPDR = 0xC0;
 încărcarea registrelor CNF1..CNF3
 SPDR = 0x02;
 SPDR = 0x28;
 se utilizează rata de bit de 125kbps
 se setează biții PHSEG21 = BTLMODE = PHSEG11 =1;
 SPDR = 7;
 resetarea MCP2515 pentru a trece în modul de funcționare normală
 se setează bitul CANCTRL = 0;

Comunicarea dintre Arduino și shield -ul CAN se realizează prin intermediul interfeței
SPI.Pentru a obține informații despre autovehicul este necesară următoarea listă ce conține
identificatorii p arametrilor (PID) :
Tabel4.1 Lista PID -urilor
Nume utilizat în
program PID (hexazecimal) Descriere
TempMotor 0x05 Temperatură lichid răcire
PresComb 0x0A Presiune Combustibil
PresAerAdm 0x0B Presiunea aerului din galeria de admisie
RPM 0x0C Turatie motor

55
Viteză 0x0D Viteza autovehiculului
Avans 0x0E Reglarea avansului
TempAer 0x0F Tensiunea aerului din galeria de admisie
Accel 0x11 Poziția clapetei de accelerație
TensO2 0x14 Tensiunea senzor de oxigen
OBDStd 0x1C Standardul OBD utilizat
TimpUltPornire 0x1F Timpul trecut de la ultima pornire a motorului
NivComb 0x2F Nivel combustibil
Barometru 0x33 Presiune atmosferică
TempExt 0x46 Temperatura externă
TipComb 0x51 Tip combustibil

Func ția de afișare a parametrilor este următoarea :
if(Canbus.ecu_req(NIVComb ,buffer) == 1)// NIVComb = 0x0C
{
lcd.setCursor(15,1);
lcd.print(buffer);
}
else {
lcd.setCursor(15,1);
lcd.print("N/A");
}

Funcția Canbus.ecu_req() realizează schimbul de me saje. Etapele necesare schimbului
de mesaje dintre placa Arduino – shieldul CAN și unitatea ECU a mașinii sunt următoarele :

 pregătirea mesajului de cerere
 mesaj.id = 0x7DF; //cerere pid
 mesaj.header.rtr = 0;
 mesaj.header.lungime = 8;
 mesaj.data[0] = 0x02;
 mesaj.data[1] = 0x01;
 mesaj.data[2] = PID; // în această zonă se introduce PID -ul
corespunzător parametrului de
 mesaj.data[3] = 0x00; // afișat
 mesaj.data[4] = 0x00;
 mesaj.data[5] = 0x00;
 mesaj.data[6] = 0x00;
 mesaj.data[7] = 0x00;
 transmiterea mesajului
 recepționarea mesajului
 mesaj.data[3] – mesaj.data[7]
 mesaj.id = 0x7E8;
 mesaj.header.rtr 0;

56
 mesaj.header.lungime = 8;
 mesaj.data[0] = 0x02;
 mesaj.data[1] = 0x01;
 mesaj.data[2] = PID;
 mesaj.data[3] = DATA;
 mesaj.data[4] = DATA;
 prelucrarea datelor

57

Conc luziile proiectului
În partea hardware a acestui proiect am reușit să proiectez o machetă de laborator
formată în din circuite electr onice, conexiuni de legătură și conectori , precum :
 Sursa de alimentare
 Cablul de conectare DB -9 – OBD -II
 Tastatura
 Conecto ri de alimentare
În partea software a acestui program am realizat un program pentru µC ATmega2560
care gestionează meniul necesar navigării printre funcțiile programului, prelucrează datele
primite și afișează rezultatele pe un ecran LCD.
În pa rtea teoretică a acestui proiect am introdus noțiuni generale referitoare la
computerele de bord existente, noțiuni legate de interfețe si protocoale de comunicare și am
prezentat câteva sisteme de diagnoză auto aftermarket.
După realizarea acestui proiect am acumulat informații si cunoștințe noi în domeniul
electronicii aplicate precum și în domeniul programării microcontrolerelor.La crearea acestui
proiect am folosit cunoștințele dobândite în timpul facultății la discipline precum:
Microcontrolere, Dispo zitive Electronice, Arhitectura M icroprocesoarelor și Programarea
Calculatoarelor.
În acest proiect am construit un sistem menit să faciliteze sarcinile conducătorului
auto, prin controlul și monitorizarea unei serii de parametri.

58

59
Bibliografie

[1] http://arduino.cc
[2] http://www.autoscan.ro/data_files/product_documents/file_30.pdf
[3] http://www.scangauge.com/products/
[4] http://www.scangauge.com/support/compatibility/
[5] http://www.obd -codes.com/trouble_codes/
[6] http ://wiki.ross -tech.com/wiki/index.php/Main_Page
[7] http://www.ross -tech.com/vcds/tour/main_screen.html
[8] http://www.ross -tech.com/vcds/canbus.html
[9] https://www.sparkfun.com/datasheets/DevTools/Arduino/MCP2551.pdf
[10] http://en.wikipedia.org/wiki/Cont roller_Area_Network#Data_frame
[11] http://en.wikipedia.org/wiki/ALDL
[12] http://en.wikipedia.org/wiki/On -board_diagnostics
[13] http://en.wikipedia.org/wiki/Engine_control_unit
[14] http://www.ehow.com/about_5082250_car -computer -history.html
[15] http:// www.e -automobile.ro/categorie -diagnoza/5 -obd-diagnoza -auto.html
[16] http://standards.sae.org/maintenance -aftermarket/diagnostics/standards/?pg=4
[17] http://www.bmw.com/com/en/insights/technology/technology_guide
[18]http://forum.4tuning.ro/27 -discutii -generale -masini/345488 -obd-erori -traducere -erori –
piese -localizate -functie -eroare.html
[19] http://www.ford.com/technology/sync/features/
[20] http://www.onboarddiagnostics.com
[21] http://vwforum.promotor.ro/topic/22627 -afisaj -computer -de-bord/
[22] http://a utodiagnoze.ro/index.php?main_page=index&cPath=2

60

61
Anexa 1

Lista mașinilor care folosesc protocolul CAN:
Cu puține exceptii toate tipuri de VW/Audi Group fabricate după 2008 necesită
interfata CAN [8]

Marca Anul aparitiei
modelului Model Serie
sasiu
Volkswagen 2003 Touran 1T
2004 Golf/Rabbit/GTI 1K
Caddy 2K
2005 Passat 3C
Golf Plus 5M
Jetta/GLI 1K
2006 Eos 1F
Crafter/LT3
2007 Golf
Variant/Wagon 1K
Phaeton 3D
Touareg 7L6
2008 Tiguan 5N
Passat CC 35
2009 Golf Mk.6 5K
Scirocco 13
2010 Amarok
Polo 5R
Transporter T5
facelift 7E/7F
2011 Jetta 16/AJ
Sharan 7N
2012 Beetle 5C/AT
Passat (NMS) A3
Up! 12
Audi 2003 A8 and A8L 4E
2004 A3/S3 8P
2005 A4/S4/RS4 B7
A6/S6/RS6 4F
2006 Q7 4L
2007 TT 8J

62
R8 42
2008 A3 Cabriolet 8P
A5/S5 8T
A4/S4/RS4 8K
2009 Q5 8R
2010 A5/S5 Cabriolet 8F/FR
2011 A1 8X
Q3 8J
A7 4L/FC
A8 4H/FD
2012 A6 4G
Seat 2004 Altea 5P
2005 Toledo 5P
Leon 1P
2008 Ibiza 6J
2009 Exeo 3R
2011 Alhambra 72
Skoda 2004 Octavia 1Z
2008 Superb 3T
2010 Yeti 5L
Bentley 2008 Continental GT 3W
2011 Mulsannee 3Y
KTM X -Bow 2008

63

Anexa 2

Coduri de diagnostic SAE pentru interfața OBD -II[5][18]
Codul SAE Descriere codului de defect
P00xx -Monitorizarea Aerului și a Combustibilului și Controlul Auxiliar al
Emisiilor
P0001 Circuit de control debit combustibil/ circuit deschis
P0002 Circuit de control debit combustibil/ semnal în afara limitelor
P0005 Circu it de control supapă debit combustibil/ circuit deschis
P0006 Circuit de control supapă debit combustibil/ semnal în afara
limitelor
P0008 Performanța sistemului de detectție a poziției motorului(arbore
cotit)
P0010 Circuit actuator poziționare arbore c ame(A)/circuit deschis
P0026 Cirucuitul solenoiduluide control a supapei de admisie/în afara
limitelor
P0030 Circuit de control al reyistenței de încălzire a sondei lambda
P0033 Compresor mechanic/circuit de control al supapei de descărcare
P0036 Circu it de control al rezistenței de încălzire a sondei lambda
P0040 Semnale sonde lambda schimbate între ele
P0049 Compresor mecanic/turație turbine peste limită
P0069 Incorelare între senzorul MAP și BARO
P0070 Circuit sensor de temperature aer atmosferic
P0075 Circuitul solenoidului de control al supapei de admisie
P0078 Circuitul solenoidului de control al supapei de evacuare
P0087 Rampă/Circuit combustibil – presiune prea mică
P0088 Rampă/Circuit combustibil – presiune prea mare
P0089 Performanța reg ulatorului de presiune a combustibilului
P0093 Scurgere detectată în sistemul de alimentare cu combustibil
P01xx – Monitorizarea Aerului și a Combustibilului
P0100 Masa/volumul fluxului de aer – defecțiune (MAF)
P0105 Circuitul senzorului de presiune abso lută aer admisie(MAP)
P0110 Circuitul senzorului de temperature aer admisie (IAT)
P0115 Circuitul senzorului de temperature motor (ECT)
P0120 Cirucitul senzorului contactului de poziție pedală/abturator
accelerație
P0125 Temperatură insuficientă a lich idului de racier pentru controlul
injecției
P0127 Temperatura aerului de admisie prea mare
P0128 Termostatul circuitului de răcire
P0129 Presiune barometrică prea mică
P0148 Circuit alimentare combustibil defect
P0149 Defect sincronizare injecție comb ustibil
P0168 Temperatură combustibil prea mare

64
P0169 Compoziția combustibilului incorectă
P0170 Corecție cantitate de combustibil injectată
P0176 Circuit senzor detecție combustibil
P0180 Circuitul senzorului de temperature combustibil defect
P0190 Circuitul senzorului de presiune combustibil defect
P0195 Senzorul de temperature ulei motor defect
P02xx – Monitorizarea Aerului și a Combustibilului (Circuitul injectoarelor)
P0200 Circuit injector -circuit deschis
P0210 Sincronizarea injecției
P0215 Solenoidul de oprire al motorului
P0216 Circuitul de control a sincronizării injectorului
P0217 Temperatura lichidului de racier a motorului peste limită
P0218 Temperatura uleiului de transmisie peste limită
P0219 Turația motorului peste limită
P0230 Circuitul primar al pompei de alimentare cu combustibil
P0234 Compresor mecanic – suprapresiune
P0251 Controlul debitului de combustibil al pompei de injecție
P0260 Controlul debitului de combustibil al pompei de injecție
P0261 Circuitul injectorului ci lindrului 1 -semnal peste limita admisă
P0297 Viteza automobilului peste limita maxima
P0298 Temperature uleiului de motor peste limita admisă
P03xx – Sistemul de aprindere
P0300 Rateu de combustie detectat
P0313 Rateu de combustie detectat cu nivel scă zut de combustibil
P0315 Variația poziției arborelui cotit nu este cunoscută
P0317 Sistemul de detecție a stării drumului nu este present
P0320 Circuitul de intrare a turației motorului – defect
P0324 Eroare a sistemului de control al detonației
P0325 Circuitul senzorului de detonație – defect
P0335 Circuitul(A) al senzorului de poziție arbore cotit -defect
P0350 Circuitul primar/secundar al bobinei de inducție
P0363 Rateu de combustie detectat –alimentarea cu combustibil întreruptă
P0370 Semnalul d e referință cu rezoluție mare pentru sincronizare
aprindere
P0380 Circuitul (A) al bujiei incandescente/ rezistenței de încălzire
P0381 Circuitul de semnalizare al activității bujiei incandescente
P0382 Circuitul (B) al bujiei incandescente/ rezistenței de încălzire
P0385 Circuitul (B) al senzorului de poziție arbore cotit
P0390 Circuitul (B) al senzorului de poziție arbore cu came
P04xx – Controlul auxiliar al emisiilor
P0400 Debitul sistemului de recirculare gaze (EGR)
P0404 Circuit control EGR –semnal în afara limitelor
P0409 Cirucuitul senzorului (A) al EGR
P0410 Sistemul de injecție de aer secundar
P0420 Eficiența sistemului catalizator sub limită
P0421 Eficiența sistemului de încălzire a catalizatorului sub limită
P0422 Eficiența catalizato rului primar sub limită
P0424 Temperatura catalizatorului încălzit sub limită

65
P0440 Sistemul de captare a vaporilor de benzină EVAP
P0441 EVAP – debit de purjare incorect
P0442 EVAP – scurgere detectată – scurgere mica
P0443 Circuitul de control a supape i de purjare EVAP
P0449 Circuitul supapei de ventilare EVAP
P0450 Senzorul/contactul de presiune al sistemului EVAP
P0460 Circuitul (A) al senzorului de sistem combustibil
P0465 Circuitul senzorului de debit purjare EVAP
P0470 Circuitul (A) al senzoru lui de presiune evacuare
P0475 Supapa de control a presiunii de evacuare
P0480 Circuitul de control ventilator racire motor
P0486 Circuitul (B) al senzorului EGR
P0493 Ventilator răcire motor – supraviteză
P0494 Ventilator răcire motor – viteză mică
P0496 Sistemul de captare a vaporilor de benzină (EVAP) – debit mare
P05xx – Controlul vitezei automobilului
P0500 Senzorul (A) al vitezei automobilului
P0504 Corelare contact(A)/(B) contact frână
P0510 Contactul pentru poziția închis a clapetei obturat oare
P0511 Circuitul de control al turației de relanti
P0512 Circuitul de comandă al demarorului
P0513 Cod immo incorect
P0515 Circuitul senzorului de temperatură a bateriei de acumulatori
P0518 Circuitul de control al admisiei aerului la turație de r elanti
P0520 Circuitul senzorului/contactului de presiune ulei motor
P0524 Presiunea uleiului de motor prea mică
P0525 Circuitul de control al sistemului cruise control
P0526 Circuitul senzorului de turație ventilator răcire motor
P0534 Pierdere de ag ent frigorific A/C
P0535 Circuitul senzorului de temperatură evaporator A/C
P0540 Circuitul (A) a sistemului de încălzire aer admisie
P0544 Circuitul senzorului de temperatură gaze evacuare
P0550 Circuitul senzorului/contactului de presiune servo -direc ție
P0555 Circuitul senzorului de presiune servo -frână
P0560 Tensiunea sistemului
P0564 Circuitul (A) al modulului de comandă cruise control
P0571 Circuitul (A) al contactului frână
P0575 Circuitul de intrare al modulului de control al vitezei de croa zieră
P0597 Circuitul de control al sistemului de încălzire termostat -circuit
deschis
P06xx – Circuitul de ieșire al computerului
P0600 Rețeaua de comunicație serială
P0601 Modulul de control intern – eroare sumă de verificare memorie
P0602 Eroare de pr ogramare a modulului de control
P0606 Procesor modul control motor (ECM/PCM)
P0610 Modulul de control opțiuni vehicul – eroare
P0611 Modul de control injector combustibil – performanțe in afara
limitelor
P0613 Procesor modul de control transmisie (TCM)

66
P0614 Incompatibilitate modul de control motor cu modul de control
transmisie
P0615 Circuitul releului de acționare demaror
P0619 Modulul de control combustibil alternativ -eroare memoria RAM
P0620 Circuitul de control alternator
P0621 Circuit terminal lampă/L bord alternator
P0627 Circuitul(A) de control pompă combustibil -circuit deschis
P0630 Modul de control motor/ grup motor – propulsor (ECM/PCM)
P0635 Circuit de control servo -direcție
P0640 Circuit de control sistem de încălzire aer admisie
P0644 Circuit de comunicație serială cu afișajul de bord
P0645 Circuit de control releu acționare ambreiaj (A/C)
P0650 Circuit de control lampă bord
P0654 Circuit de ieșire turație motor
P0656 Circuit de ieșire nivel combustibil rezervor
P0657 Circuitul (A) tensiune alimentare actuator – circuit deschis
P0660 Circuitul de control al supapei de modificare a lungimii traseului de
admisie
P0666 Circuit senzor temperatură internă modul de control grup moto –
propulsor/motor/transmisie
P0670 Circuit de contro l modul de control bujii incandescente
P0690 Circuit releu alimentare calculator injecție/grup moto -propulsor
P0691 Circuit de control ventilator răcire motor
P07xx – Transmisie
P0700 Sistemul de control transmisie
P0702 Sistemul electric de control al transmisiei
P0703 Circuit (B) contact frână
P0704 Circuit intrare contact ambreiaj
P0710 Circuit senzor temperatură ulei transmisie
P0715 Circuitul (A) senzor turație intrare cutie/turbină
P0720 Circuit senzor turație ieșire
P0725 Circuit intrare se nzor turație motor
P0730 Raport incorect treaptă de viteză
P0743 Circuitul electric al ambreiajului convertizorului de cuplu
P0745 Solenoid (A) control presiune
P0750 Solenoid (A) schimbare treaptă
P0780 Eroare schimbare treaptă
P0785 Solenoid tempor izare/schimbare treaptă
P0790 Circuit contact mod normal
P08xx – Transmisie
P0800 Sistemul de control al cutiei de transfer
P0805 Circuit senzor de poziție ambreiaj
P0810 Eroare control poziție ambreiaj
P0812 Circuit intrare treaptă de mers înapoi
P0814 Circuit afișare treaptă de viteză
P0815 Circuit contact schimbare în sus treaptă de viteză(upshift)
P0816 Circuit contact schimbare în jos treaptă de viteză(downshift)
P0820 Circuit senzor se poziție levier trepte x -y
P0830 Circuit (A) contact peda lă ambreiaj

67
P0836 Circuit contact tracțiune integrală (4WD)
P0850 Circuit intrare contact neutru (N)/parcare(P)
P0853 Circuit intrare contact drive (D)
P0867 Presiune lichid de transmisie
P0895 Timp de schimbare a treptei prea scurt
P0896 Timp de sch imbare a treptei prea lung
P0897 Uleiul de transmisie deteriorat

68

69
Anexa 3
Codul surs ă al programului :

#include <CANInterface.h>
#include <LiquidCrystal.h>
#include <Canbus.h>
#include <SPI.h>

// definirea parametrilor
#define ECT 0x0 5
#define PresComb 0x0A
#define PresAerAdm 0x0B
#define RPM 0x0C
#define Viteza 0x0D
#define Avans 0x0E
#define TempAer 0x0F
#define Accel 0x11
#define TensO2 0x14
#define OBDStd 0x1C
#define TimpUltPornire 0x0F
#define NivComb 0x2F
#define Barometru 0x33
#define TempExt 0x46
#define TipComb 0x51

//asignare optiuni meniu
const int Simplu_1=1 ;
const int Simplu_2=2;
const int Simplu_3=3;
const int Avansat_1=4;
const int Avansat_2=5;
const int Avansat_3=6;
const int Service_1=7;
const int Service_2=8;
const int Service_3=9;

// asignare taste
const int butonSus = 52;
const int butonJos =50;

70
const int butonOK = 46;
const int butonAnulare =48;
const int butonPornire = 44;

// setare LCD
const int numRows = 4;
const int numCols = 20;
const int col = 0;

// zona tampon în care vor fi stocate rezultatele mesajelor recepționate
char buffer[512];

// setări ale funcției debounce
long lastDebounceTime = 0;
long debounceDelay = 2000;
int ledState = HIGH;
int buttonState;
int lastButtonState = LOW;
int OK;
int pag =1;
int lin =1;
int pornire = 0;

// introducerea pinilor de pe placa de dezvoltare corespunză tori pinilor LCD -ului
LiquidCrystal lcd(49, 47, 45, 43, 41, 39);

// această funcție elimină posibilitatea interferențelor verficând dacă tasta a fost apăsată
// o perioadă de cel puțin 20ms
void debounce(int buttonPin)
{
int reading = digitalRead(buttonPi n);
if (reading != lastButtonState)
{
lastDebounceTime = millis();
}
if ((millis() – lastDebounceTime) > debounceDelay)
{
buttonState = reading;
}
lastButtonState = reading;
delay(20);
}

71
// această funcție afișează o pagină de meniu
void Afisare(char titlu[],int nr, char titlu_p1[], char titlu_p2[], char titlu_p3[])
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print(" ");
lcd.print(titlu);
lcd.setCursor(2,1);
lcd.print(nr);
lcd.print(titlu_p1);
lcd.setCursor(2,2);
lcd.print(nr+1);
lcd.print(ti tlu_p2);
lcd.setCursor(2,3);
lcd.print(nr+2);
lcd.print(titlu_p3);
lcd.setCursor(col,lin);
lcd.print(" ->");
}

// această funcție mută cursorul y linii mai sus/jos
void mut_cursor(int y)
{
lcd.setCursor(col,lin);
lcd.print(" ");
lin=lin+y;
lcd.setCursor(co l,lin);
lcd.print(" ->");
}

// această funcție realizează afișarea parametrilor
void reimprospatare(int pid)
{
switch(pid)
{

case 1:
if(Canbus.ecu_req( RPM,buffer) == 1)
{
lcd.setCursor(15,1);
lcd.print(buffer);
}
else
{

72
lcd.setCursor(15,1);
lcd.print("N /A");
}
if(Canbus.ecu_req( VITEZA ,buffer) == 1)
{
lcd.setCursor(15,3);
lcd.print(buffer);
}
else
{
lcd.setCursor(15,3);
lcd.print("N/A");
}

if(Canbus.ecu_req( TEMP_AER ,buffer) == 1)
{
lcd.setCursor(15,2);
lcd.print(buffer);
}
else

{
lcd.setCursor(15,2);
lcd.print("N/A");
}
break;

case 2:
if(Canbus.ecu_req(PRES_ULEI,buffer) == 1)
{
lcd.setCursor(15,1);
lcd.print(buffer);
}
else
lcd.setCursor(15,1);
lcd.print("N/A");
if(Canbus.ecu_req(NIV_COMB,buffer) == 1)
{
lcd.setCursor(15,2);

lcd.print(buffer);
}
else
lcd.setCursor(15,2);

73
lcd.print("N/A");
break;
}
}

case 3:
if(Canbus.ecu_req(ACCEL,buffer) == 1)
{
lcd.setCursor(15,1);
lcd.print(buffer);
}
else
lcd.setCursor(15,1);
lcd.print("N/A");
if(Canbus.ecu_req(TENSO2,buffer) == 1)
{
lcd.setCursor(15,2);

lcd.pri nt(buffer);
}
else
lcd.setCursor(15,2);
lcd.print("N/A");
break;
}
}

void generarePagina(int nrPagina,int deplasareJos,int deplasareSus,int pid)
{
while(pag==nrPagina)
{
reimprospatare(pid);
debounce(butonJos);
if (lastButtonState==LOW)
{
if(lin == 3)
{
lin=1;
pag=pag+deplasareJos;
}
else
{
mut_cursor(1);

74
}
}
debounce(butonSus);
if (lastButtonState==LOW)
{
if(lin == 1)
{
lin=1;
pag=pag+deplasareSus;
}
else
{
mut_cursor( -1);
}
}
debounce(butonAnulare);
if (lastButtonState == LOW)
{
lcd.clear();

Afisare( "Meniu",1," Simplu " ," Avansat "," Service ");
OK=!true;
pag=pag+100;
}
delay(100);
}
}

void setup()
{
// setarea numărului de coloane și linii pt. LCD
lcd.begin(numCols,numRows);
pinMode(butonSus, INPUT);
pinMode(butonJos, INPUT);
pinMode(butonOK, INPU T);
pinMode(butonAnulare, INPUT);
pinMode(butonPornire,INPUT);

if(Canbus.init(CANSPEED_125)) // Inițializează MCP2515 CAN controller la viteza dorită
{
lcd.print("Init. OK");

75
}
else
{
lcd.print("Init. esuata");
}
delay(1550);
lcd.clear();
lcd.print("P roiect Licenta");
lcd.setCursor(0,2);
lcd.print("Usurelu Andrei");

delay(100);
}

void loop()
{
if(pornire==0)
{
debounce(butonPornire);
if(lastButtonState == LOW)
{
if(pornire==0)
{
Afisare("Meniu",1," Simplu " ," Avansat "," Service ");
pornire = 1;
}
}
}
else
{
debounce(butonJos);
if (lastButtonState == LOW)
{
if(lin == 3)
{
mut_cursor( -2);
}
else
{
mut_cursor(1);
} }

76
debounce(butonSus);
if (lastButtonState==LOW)
{
if(lin == 1)
{

mut_cursor(2);
}
else
{
mut_cursor( -1);
} }

debounce(bu tonOK);
if (lastButtonState == LOW)
{
pag=1;
OK=true;

switch(lin)
{

case 1:
while(OK)
{
lcd.clear();
Afisare("Simplu",1," Turatie "," Viteza "," CTS ");
generarePagina(1,1,1,Simplu_1);
if(OK==false) break;
lcd.clear();
Afisare("Simplu",4," PrsUlei"," Ni vComb","");
generarePagina(2,1, -1,Simplu_2);
if(OK==false) break;
lcd.clear();
Afisare("Simplu",7," DistTotal"," DistParc "," TempExt");
generarePagina(3, -2,-1,Simplu_3);
}
break;

case 2:
while(OK)
{
lcd.clear();

77
Afisare("Avansat",1," TensBat "," CombPrs" ," TempAer");
generarePagina(1,1,1,Avansat_1);
if(OK==false) break;
lcd.clear();
Afisare("Avansat",4," PresAbsAer"," Barometr"," TensO2");
generarePagina(2,1, -1,Avansat_2);
if(OK==false) break;
lcd.clear();
Afisare("Avansat",7," ConsumMediu"," Avans"," Acc el");
generarePagina(3, -2,-1,Avansat_3);
}
break;

case 3:
while(OK)
{
lcd.clear();
Afisare("Service",0,"Standard OBD ","OBD II "," ");
generarePagina(1,1,1,Service_1);
if(OK==false) break;
lcd.clear();
Afisare("Service",0,"Coduri defect ","0 ","Fara defec tiuni ");
generarePagina(2,1, -1,Service_2);
if(OK==false) break;
lcd.clear();
Afisare("Service",0,"Tip combustibil ","Diesel "," ");
generarePagina(3, -2,-1,Service_3);
}
break;
} }
}
delay(120);
}

Similar Posts