Echipament de Testare a Sensorilor de Baterie(display Box)

CUPRINS

Capitolul I: Noțiuni generale

Introducere

Display Box este utilizat ca un dispozitiv de testare și achiziționare de date.

Se conecteaza un sensor (IBS, RLS, AQS, Oil sensor) și cu ajutorul comunicatiei LIN datele sunt transmise si achizitionate pe un micro-SD card.

Figure 1: Display Box

Display Box-ul a fost dezvoltat pe un microcontroler pe 64 biți de la Microchip, dinfamilia PIC24FJ256GA110. Mediile de lucru utilizate au fost X32 – pentru scrierea codului sursă și MPLAB IDE – pentru compilarea codului și in programarea microcontrolerului.

Tipuri de senzori utilizați de Hella

IBS – Intelligent Battery Sensor

Senzorul de baterie se montează pe borna negativa a bateriei. Acesta transmite informații catre un ECU central care după ce le interpretează , transmite mai departe anumite informații care sa asigure buna fnuctionare a sistemului.

De cele mai multe ori, datorită consumului ridicat din masină, aceasta nu mai porneste sau anumite functionalitați nu mai răspund la comenzi.

Unele dintre datele cele mai importante pe care le poate furniza IBS-ul sunt:

– tensiunea de la baterie

– curentul(este determinat cunoscand voltajul si rezitenta interna)

– temperatura

– starea de încarcare a bateriei (SOC) – o baterie descarcata va conduce automat la probleme de pornire a autovehiculului

– strarea de sănatate a bateriei – bateria este supusă mai multor procese de incarcare/descarcare a baterie si acest lucru va conduce la distrugerea acesteia in timp

Putem lua de exemplu cazul in care deshiderea masinii se face pe baza unui senzor care determină cand proprietarul este in apropierea mașinii si doreste deblocarea usilor. O incorectă alimentare a acestui senzor va duce la incapacitatea acestuia de a intra in masină. Cunoscând toți acesti parametrii se pot evita anumite probleme de service, ceea ce va conduce automat și la reducerea costurilor.

Figure 2: IBS (Intelligent Battery Sensor)

RLS – Rain Light Sensor

Senzorul de ploaie activează automat stergătoarele în cazul în care pe parbrizul mașinii sunt detectați stropi de apă. De asemenea, viteza de stergere este direct proporțională cu cantitatea de apa de pe parbriz si anume: cu cat plouă mai tare, cu atat viteza stregatoarelor crește.

Acest lucru va conduce automat la un confort crescut pentru șofer si totodata asigură o sigurantă sporită în timpul condusului.

Un alt avantaj al acestui sensor este dat de faptul că este capabil sa detecteze gradul de iluminare. Astfel, la intrarea intr-un tunel, farurile sunt aprinse automat, iar instrumentele de bord sunt iluminate corespunzator.

Figure 3: RLS (Rain Light Sensor)

PULS

Senzorul de ulei masoară nivelul uleiului si temperatura acestuia. Metoda utilizată pentru masurare este bazată pe un principiu ultrasonic. Acesti doi paremetrii, nivelul si temperatura uleiului sunt monitorizate în timpul în care autovehicolul are moturul pornit, dar si cât motorul este oprit. Există mai multe situații de montare a acestui senzor. Toate informațiile colectate de la acest senzor vor fi transmise catre unitatea centrala (ECU).

Alimenterea senzorului se face fie de la baterie, fie direct de la unitatea centrală la care acesta transmite datele. Temperatura de funcționare este de -40 …150 grade Celsius.

Figure 4: PULS (Packaged Ultrasonic Oil Level Sensor)

AQS

Senzorul de calitate a aerului din masină este foarte important pentru confortul șoferului si al pasagerilor în timpul utilizării autovehicului.

Acesta este capabil sa detecteze temperatura din exterior, precum si cea din interiorul habitaclului, dar si umiditatea. Datele colectate sunt de asemenea transmise unitații centrale care dupa interpretarea acestora poate da anumite comenzi catre unitătile periferice.

Figure 5: AQS (Air Quality Sensor)

Aplicațiile unde sunt utilizați senzorii Hella

Hella Romania are ca domeniu de activitate industria automotive. Compania are mai multe divizii, cum ar fi divizia de “lighting” sau cea de “electonics”.

Astefel, majoritatea senzorilor utilizați fac parte din cei corecpunzători industriei automotive. Aici putem menționa câțiva dintre cei mai importanți și anume:

IBS (Intelligent Battery Sensor) – senzorul de baterie

RLS (Rain Light Sensor) – senzorul de ploaie

AQS (Air Quality Sensor) – sonzor pentru climatul din mașină

PULS (Packaged Ultrasonic Oil Level Sensor) – senzorul de ulei

Obiectivele lucrării

Consumul foarte mare care există în mașinile din ziua de astăzi ne obligă să utilizăm dispozitive suplimentare care să asigure buna funcționare a tuturor consumatorilor. Ținându-se astfel cont de multitudinea de ECU-uri aceste dispozitive sunt utilizate mai ales pentru a ajuta în faza de proiectare a sistemului, respectiv la colectarea continuă a datelor din faza de testare.

Echipamentul de testare a senzorilor sau Display Box așa cum a fost numit, este creat pentru a colecta date de la diferiți senzori care se gasesc pe mașină.

De cele mai multe ori astfel de dispozitive de testare se conectează la un calculator sau au un slot de card unde pot fi stocate date pe o anumită perioadă. Aceste date sunt colectate mai apoi de inginerii de test, care la apriția unei defecțiuni sau a unei funcționalități incorecte, pot detecta eroarea mult mai rapid și mai usor.

Capitolul II: Principalele caracteristici pentru Display Box

Tipuri de comunicații

Local Interconnect Network (LIN)

LIN (Local Interconnect Network) este un concept pentru retelele de automatizare cu cost redus, care completeaza soluțiile existente de rețele de automatizare. LIN a fost un factor decisiv pentru implementarea rețelelor ierarhice de automobile, cu scopul de a se obține câstiguri viitoare încalitate și reducerea costurilor vehiculelor. Standardizarea va reduce numărul de soluții low-end și va micșora costurile de dezvoltare, producție, service, și logistică înelectronica vehiculelor.

Istoric

In 1999 a fost publicata revizia LIN 1.0 și a fost puternic influențată de magistrală VLITE folosita de companiile automatizate. Standardul LIN a fost actualizat de două ori înanul 2000, rezultând LIN 1.2 înnoiembrie 2000. In noiembrie 2002 consorțiul LIN a lansat standardul LIN 1.3. Au fost facute modificări la Nivelul Fizic care urmareau imbunatățirea compatibilitații dintre noduri. LIN 2.0 este un pas imens fata de predecesorul, LIN 1.3. Nodurile proiectate pentru LIN 2.0 și LIN 1.3 comunica unul cu celalalt cu mici excepții.

Apariția reviziei 2.1 a fost datorata credinței ca compatibilitatea este foarte importantă. LIN 2.1 este un superset al lui LIN 1.3. In LIN 2.1 nodul master poate manevra clustere constănd atat înslave-uri LIN 1.3 cat și LIN 2.1. Master-ul va evita astfel cererea caracteristicilor de LIN 2.1 de la un slave LIN 1.3 :

Checksum marit;

Reconfigurare și diagnoză;

Detecție automata de baudrate;

Monitorizarea starii Response_error.

Nodurile slave LIN 2.1 nu pot opera cu noduri LIN 1.3 (master-ul LIN 1.3 nu suportă checksum-ul mărit de la LIN 2.0).

Caracteristici

Standardul LIN include specificatiile protocolului de transmisie, mediul de transmisie, interfața dintre utilitarele de dezvoltare și interfața pentru programarea software.

LIN este un protocol serial de comunicatie, care suporta controlul nodurilor mecatronice dînaplicațiile de automatizare ditribuită.

Principalele caracteristici ale magistralei LIN sunt:

Conceptul cu un singur master și mai mulți slave;

Implementarea siliconului la un preț scăzut, bazată pe interfața hardware UART/SCI, un echivalent însoftware.

sincronizare automata, fără un rezonator de cermică sau quartz înnodurile slave.

Transmisie deterministă de semnal cu calculul apriori a timpului propagării semnalului.

Implementare cu cablu cu un singur fir (cost redus).

Viteze de pana la 20 kbit/s.

Reconfigurabilitate

Nivel de Transport și suport pentru diagnoză.

LIN ofera o comunicație de magistraă cu cost scazut, unde lațimea de bandă și suplețea protocolului CAN nu sunt necesare. Specificațiile liniei motor/receptor au la baza standardul ISO 9141 cu unele schimbari referitoare la EMI.

Configuration Language Specification permite o accesare sigură a nodurilor fără a primejdui funcționalitatea sistemului LIN prînincompatibilitatea de mesaje sau supraincăracarea retelei. Este un utilitar puternic pentru depanarea unui cluster LIN, inclusiv emularea nodurilor neterminate.

Node Capability Language Specification, ofera o sintaxa standardizata pentru specificatiile nodurilor slave. Aceasta va simplifica obtinerea nodurilor Standard slave cât și posibilitatea de a asigura utilitarelor acea generare automata de clustere. Astfel posibilitați reale de Plug-and-Play a nodurilor slave pot deveni o realitate.

Figure 6: Structura nodurilor intr-o rețea

Nodurile slave sunt conectate la nodul master formand un cluster LIN. In procesul de proiectare a cluster-ului LIN, fisierul cu capacitatea corespunzatoare a nodului, este analizata de utilitarul de proiectare a cluster-ul LIN, care generează un fisier cu descriere LIN (LDF). Fisierul LDF este analizat de generatorul de cluster care genereaza automat functii speciale LIN înnodurile dorite (Nodul Master și nodul Slave3 dînexemplul de mai sus). Fisierul LDF este folosit și de un utilitar analizor/emulator de magistrală LIN, pentru a permite depanarea cluster-ului.

Conceptul de nod

Fluxul de lucru descris mai sus generează un modul complet de interacțiune de cluster LIN și proiectantul nu trebuie decât sa furnizeze aplicației decât funcțiile logice a unui nod. Desi multe dînspecificatiile LIN presupun o implementare software a majoritații funcțiilor, sunt incurajate și relizari alternative.

Telegramele nu sunt accesate direct de o aplicație; un nivel interacțiune bazat pe semnal este adugat între aceastea. Complementar exista o interfață a Nivelului de Transport între aplicație și manipulatorul de telegrame.

Figure 7: Modalitatea de transport a datelor

Conceptul de funcționare Master și Slave

Un cluster constă intr-o sarcina master și mai multe sarcini slave. Un nod master conține sarcina master cat și o sarcina slave. Toate celelalte noduri slave conțînnumai o sarcina slave. Un nod poate parțicipa înmai mult de un cluster. Termenul de nod este asociat unei singure interfețe de magistrală a unui nod, dacă nodul are mai multe interfețe de magistrală.

Figure 8: Cluster cu un nod master și două noduri slave

Sarcina master decide când și care telegramă va fi transferata pe magistrală. Sarcina slave asigura datele transportate de fiecare telegramă. Atât sarcina master cat și cea slave sunt părți dînmanipulatorul de telegrame.

Telegrama

O telegramă constă într-un header (oferit de sarcina master) și într-un răspuns (oferit de o sarcină slave).

Header-ul constă într-un câmp de pauză și un câmp de sync urmat de identificatorul de telegramă. Identificatorul de telegramă definește în mod unic scopul telegramei. Sarcina slave numita sa asigure răspuns impreuna cu identificatorul de telegramă, transmite răspunsul. Raspunsul constă într-un câmp de date și un câmp de checksum.

Sarcina slave interesata de datele asociate cu identificatorul de telegramă, recepționează răspunsul, verifica checksum și folosește data transportată.

Figure 9: Task scheduler

Acestea conduc la următoarele caracteristici:

Flexibilitatea sistemului: Pot fi adaugate noduri cluster-ului LIN fără a face modificări hardware sau software în celalalte noduri slave.

Rutare de mesaje: Conținutul unui mesaj este definit de identificatorul telegramei (similar cu CAN).

Multicast: Oricate de noduri pot recepționa simultan și poate acționa pe o singură telegramă.

Transportul datelor

Două tipuri de date pot fi transportate intr-o telegramă: semnale sau mesaje de diagnoză.

Semnale

Semnalele sunt valori scalare sau array-uri de byte care sunt împachetate în câmpul de date din telegrame. Un semnal este prezent întotdeuna în aceeași poziție a câmpului de date pentru toate telegramele cu aceiasi identificator de telegramă.

Un semnal scalar are între 1 și 16 biți. Semnal scalar de 1 bit este numit semnal boolean. Semnalele scalare cu mărimea între 2 și 16 biți sunt tratate ca intregi fără semn.

Un array de byte este un array de 1-8 biți.

Fiecare semnal este scris întotdeuna de același nod din cluster. Nici unul, 1 sau mai multe noduri pot subscrie semnalului.

Toate semnalele au valoari inițiale. Valoarea inițială pentru un semnal editor (publisher) este valabil pana când este receptionata o noua valoare actualizata de la un alt nod.

Mesajele de diagnoză

Mesajele de diagnoză sunt transportate întelegrame cu doi identificatori de telegramă rezervați. Interpretarea câmpului de date depinde de câmpul de date cât și de starea nodurilor care comunică.

Schedule Table

Sarcina master (din nodul master) transmite header-ele pe baza unui orar. Acesta specifica telegramele și intervalul dintre inceputul telegramei și inceputul telegramei urmatoare. Aplicația master poate folosi tabele orar diferite și poate face selectie între ele.

Împachetarea semnalelor

Un semnal este transmis cu LSB la început și MSB la sfârșit. Nu este nici o restricție la împachetarea semnalelor scalare. Fiecare byte dîntr-un array de byte trebuie sa treaca intr-o telegramă cu un singur byte, incepand de la cel mai mic byte de date numerotat.

Intr-o telegramă pot fi impachetatemai multe semnale, atata timp cat nu se suprapun.

Același semnal poate fi impachetat în mai multe telegrame atâta timp cât editorul semnalului este același. Dacă un nod receptionează un semnal împachetat în mai multe telegrame, ultima valoare de semnal receptionata este valida.

Recepția și transmisia semnalului

Momentul încare semnalul este transmis/recepționat trebuie definit pentru a ajuta utilitarele de proiectare și testare înanaliza timpilor semnalelor.

Timing-ul este diferit pentru un nod master fata de slave, pentru ca nodul master controleaza orarul și stie care telegramă va fi transmisă. Un nod slave primeste informația atunci când este transmis header-ul pe magistrală.

Un semnal este considerat recepționat și disponibil pentru aplicație dupa cum urmează:

Nod master – la următorul time base tick dupa lungimea maxima a telegramei. Nodul master actualizează periodic semnalele receptionate la inceputul time base.

Nodul slave – când checksum-ul pentru telegramă recepționata este validat. Nodul slave actualizează semnalul recepționat direct dupa ce telegramă este terminată.

Figure 10: Transmisia/Recepția unui semnal

Un semnal este considerat transmis în situațiile:

Nod master – înainte ca transmisia telegramei sa fie inițiata.

Nod slave – când ID-ul pentru aceeasi telegramă este recepționat

Structura telegramei

Telegrama este alcatuita din mai multe câmpuri: un câmp de pauză urmat de 4-11 câmpuri de byte.

Timpul în care este trimisa o telegramă este timpul insumat al timpilor pentru a trimite fiecare byte plus răspunsul și inter-byte-ul.

Figure 11: Structura unei telegrame

Fiecare câmp de byte, exceptie facând câmpul de pauză, este trimis ca în figura de mai jos. Primul trimis este LSB, ultimul fiind MSB. Bit-ul de start este codat ca bit cu valoarea 1 (regresiv).

Figure 12: Transmisia unui câmp de byte

Campurile header-ului

Brake Field

Folosit pentru a semnaliza începutul unei noi telegrame. Este întotdeuna generat de sarcina master (înnodul master) și trebuie sa fie de cel putin 13 bit time din valoarea dominantă, urmat de un delimitator de pauză (cel putîn1 bit time).

Figure 13: Structura unui brake

Câmpul byte-ului de Sync

Conține informatia pentru sincronizarea de ceas. Are valoarea de 0x55, caracterizat prin cinci creste (regresive și dominante) intr-o distanta de 8 bit time.

Figure 14: Campul byte-ului de Sync

Câmpul identificatorului de protecție

Constâ din două subcâmpuri: identificatorul telegramei și paritatea. Biți 0-5 sunt identificatorul telegramei, iar biți 6-7 sunt paritatea.

Figure 15: Câmpul identificatorului

Identificatorul de telegramă are valori cuprinse între 0 și 63:

0-59 (0x3B) folosit pentru telegramele transportoare de semnal;

60 (0x3C) și 61 (ox3D) folosit pentru transportul datelor de diagnoză și configurare;

62 (0x3E) și 63 (0x3F) sunt rezervate pentru implementari viitoare ale protocolului.

Paritatea este calculata astfel :

Câmpul de Date

O telegramă transporta 1-8 byte de date. Pentru transmisii de date mai mari de 1 byte, LSB este conținut în byte-ul trimis primul iar MSB înbyte-ul trimis ultimul.

Figure 16: Numerotarea de byte de date într-o telegramă cu 8 byte

Checksum

Conține suma celor 8 biți inversată, supra toți biții de date transportați cu sau fără identificator. Calculul checksum fără identificator este folosit pentru telegramă de cerere a master-ului, a slave-ului și comunicatia cu slave-urile LIN 1.x și se numeste clasic checksum. Calculul cu identificator este folosit pentru comunicatia cu slave-urile LIN 2.x și se numeste enhanced checksum.

Telegrame Event triggered

Scopul unei astfel de telegrame este de a mari responsabilitatea cluster-ului LIN fără a atribui prea mult dînlatimea de banda, la apelarea selectiva a nodurilor slave cu evenimente ce apar rar.

Toți abonatii la telegramă event triggered vor receptiona telegramă și vor folosii datele ca și cum telegramă unconditional asociata a fost receptionata. Dacă telegrama unconditional asociata cu telegrama event triggered este prevazută ca o telegramă unconditional, răspunsul va fi întotdeuna transmis.

Header-ul unei telegrame event triggered este transmis când slotul alocat telegramei event triggered este procesat. Editorul al unei telegrame unconditional va transmite numai răspunsul dacă cel putin un semnal transportat în telegramă unconditional este actualizat. Dacă răspunsul este transmis, semnalul nu mai este considerat a fi actualizat.

Dacă nici un nod slave nu răspunde la header, restul slotului telegramei este “silent” și header-ul este ignorat. Dacă mai mult de un nod slave răspunde la header înacelasi slot telegramă va rezulta o coliziune.

Nodul master trebuie sa rezolve coliziunea intr-o tabela orar de rezolvare de coliziuni. Fiecare telegramă event triggered are asociată o tabelă orar de rezolvare a coliziunilor. Trecerea la această tabela se face automat de catre driver-ul dînnodul master. Tabela va fi activata la începutul slotului telegramă următor dupa coliziune.

In aceasta tabela vor aparea toate telegramele unconditional asociate. Tabela poate conține și alte telegrame unconditional decât cele asociate (acestea pot fi de lungimi diferite).

Telegrame Diagnoză

Transporta datele Nivelului de Transport și conțîn8 biți de date. Identificatorul este fie 60, numit telegramă răspuns master, sau 61, numit telegramă răspuns slave. Inainte de transmiterea unei telegramă răspuns master, sarcina master interogheaza modulul de diagnoză dacă sa transmita sau dacă magistrală va fi “silent”. O telegramă răspuns slave este trimisa neconditionat.

Wake-up

Orice nod dîntr-un cluster LIN sleeping, poate cere wake-up (trezirea), prin transmiterea unui semnal de wake –up. Acest semnal este transmis prin fortarea magistralei în starea dominanta pentru 250 μs pana la 5 ms. Nodul master poate emite un câmp de pauză, spre exemplu emiterea unui header, deoarece pauză va actiona ca semnal de wake-up.

Fiecare nod slave va trebui sa detecteze semnalul de wake-up, și sa fie pregatit pentru comenzile magistralei în100 ms. Dacă nodul care a transmis semnalul de wake-up este slave, va fi gata sa receptioneze sau sa transmita telegrame imediat. Nodul master va trebui sa fie și el “treaz” când nodurile slave sunt disponibile, pentru a transmite header-e pentru a afla cauza wake-up-ului.

Dacă nodul master nu transmite câmpul de pauză sau dacă nodul care a emis semnalul de wake-up nu receptioneaza semnalul de wake-up de la alt nod, în intervalul 150-250 ms, nodul care a emis semnalul de wake-up va transmite un nou semnal de wake-up. În cazul în care nodul slave transmite un semnal de wake-up înacelasi timp încare master-ul transmite un câmp de pauză, slave-urile vor trebui sa receptioneze și sa recunoasca acest câmp. Dupa trei cereri nereusite nodul va astepta minim 1.5 secunde inainte de a emite un al patrulea semnal de wake-up. Motivul este de a permite cluster-ului sa comunice în cazul încare nodul slave are probleme.

Go To SLEEP

Master-ul seteaza cluster-ul înmodul sleep prin transmiterea comenzii de sleep. Cererea un va obliga nodurile slave sa între într-un mod low-power.

In cazul încare magistrală este inactiva un nod slave trebuie sa fie capabil sa receptioneze /transmita telegrame pentru 4 s.

Nodul slave trebuie sa intre automat în modul magistralei, de sleep nu mai devreme de 4 s și cel tarziu 10 s de inactivitate pe magistrală (nici o transmisie între valorile de bit dominante și regresive).

Serviciile de Configurare și Identificare a Nodului

Definesc cum se configureaza un nod, și cum se identifica un nod slave folosind serviciul de identificare. Sunt transportate de Nivelul de Transport.

Memoria unui nod slave:

VRAM – invalida dupa reset;

NVRAM – se mentine dupa resetsi poate fi modificata prînprocese interne;

ROM – memorie constănta care nu poate fi modificata prînprocese interne.

Sunt definite trei tipuri de noduri slave :

Noduri slave Neconfigurate – dupa reset nodurile slave nu conțîno configuratie valabila, acesta trebuie configurat de master.(config este memorata înVRAM)

Noduri slave Preconfigurate – aceste noduri au dupa reset o configurare valida.(config este memorata normal înROM)

Noduri slave Configurate Complet – nodul slave memoreaza configuratia înNVRAM, care va fi activa dupa reset.

Toate cererile sunt transportate în telegrame master cerere, și toate răspunsurile sunt transportate în telegrame răspuns slave, folosesc numai telegrame SF. Un nod slave isi va aminti răspunsul la o cerere pana ce o noua cerere este receptionata de la nodul master.

Servicii:

Asignare NAD (Node Address) – folosit pentru a rezolva conflictele de adrese NAD dîncluster folosind noduri slave noi sau refolosite.

Conditional change NAD – folosit pentru a detecta noduri slave necunoscute într-un cluster și de a le separa NAD-ul. Apariția acestor noduri necunoscute, este datorată asamblarii incorecte la crearea cluster-ului sau o inlocuire incorecta a unui slave întimpul service-ului.

Data dump – folosit pentru configurarea initiala a nodului slave de catre furnizorul de noduri.

Salvarea configuratiei – acest serviciu informeaza nodul slave ca aplicatia slave va salva configuratia curenta.

Asignarea clasei de identificare pentru telegramă – folosit pentru a elimina PID-uri de pana la patru telegrame

Universal Asynchronous Receiver/Transmitter (UART)

Transmisia de date.Notiuni de baza

Prin comunicație de date se ințelege schimbul de informație numerică codificată între două DTE.

Trebuie făcută distincția între termenii "dată" și "informație". Termenul "dată" este folosit pentru a desemna un set sau un bloc de caractere numerice sau alfabetice codificate ce sunt schimbate între două echipamente. In cadrul comunicației de date înafară transferului acestui tip de date este de asemenea necesar ca cele două echipamente să schimbe și diverse mesaje de control (de exemplu pentru a preveni sau corecta erorile de transfer). De aceea termenul de informație este folosit cu un inteles mai larg desemnând atât date cât și mesaje de control.

Comunicația de date se ocupă nu numai cu modul de transmisie a datelor prîntr-un mediu de transmisie fizic ci și cu tehnicile ce trebuie folosite pentru detectarea și corectarea erorilor de transmisie, cu controlul ratei de transfer a datelor și stabilirea formatului datelor ce trebuie transferate.

Dînpunct de vedere al numărului de linii ce interconectează două echipamente se deosebesc două tipuri de conexiuni:

modul de transfer paralel presupune folosirea câte unui fir pentru fiecare bit de date (al unui cuvânt). Aceasta inseamnă că mai multe fire sunt folosite pentru interconectarea a două DTE. Din acest motiv modul de transfer paralel nu se folosește decât în cazul în care distanța între DTE este mică.

modul de transfer serial presupune folosirea unei singure perechi de fire pentru interconectarea echipamentelor.

La un moment dat pe linie se transmite un singur bit, pentru fiecare bit fiind alocat un interval de timp fix. Viteza de transfer este mai mică decât încazul 1 dar distanța între DTE poate fi mult mai mare.

Comunicația de date între două echipamente se poate realiza în trei moduri:

simplex: presupune transmisia datelor intr-o singură direcție.

half-duplex: presupune transferul de date alternativ între cele două echipamente. Când unul dînechipamente se află înstarea de emisie celălalt se află înrecepție.

duplex (full-duplex): presupune schimbul de date înambele direcții simultan.

Comunicația între două echipamente poate fi de două tipuri:

1) asincronă – dacă ceasul receptorului este independent de cel al emițătorului.

2) sincronă – dacă ceasurile emițătorului și receptorului sunt sincrone.

În cazul în care datele ce trebuie transmise sunt formate din caractere separate de intervale de timp de lungime aleatoare atunci fiecare caracter este transmis ind ependent și receptorul se sincronizează la inceputul fiecărui nou caracter primit. Pentru acest tip de comunicație se folosește transmisia asincronă.

În cazul încare datele ce trebuie transmise sunt formate din blocuri conținând mai multe caractere (octeți) fiecare, ceasurile emițătorului și receptorului trebuie să se afle în sincronism pentru mai mult timp și de aceea se folosește transmisia sincronă.

Serial Peripheral Interface (SPI)

SPI este un standard sincron (ca și I2C) dezvoltat de Motorola ce opereaza în mod full-duplex (transferul de date are loc în ambele directii simultan). Device-urile comunică folosind o relatie de tipul master/multi slave (nu sunt suportati mai multi masteri) master-ul fiind cel care initiaza frame-urile de date.

SPI se mai numeste și "four wire" serial bus pentru al deosebi de celelalte standarde ce folosesc 1, 2 sau 3 fire. Cele 4 fire

SCLK — Serial Clock ( output from master)

MOSI/SIMO — Master Output, Slave Input (output from master)

MISO/SOMI — Master Input, Slave Output (output from slave)

SS — Slave Select (active low; output from master)

Figure 17: Transmisia “four wire”

Se poate observa ca de data aceasta avem două fire pe care se transmit date (MOSI și MISO). De asemenea, slave-ul este selectat direct prin intermediul semnalului SS, pentru fiecare slave fiind nevoie de înca un fir de selectie

Figure 18: Transmisia “full duplex”

In timpul unui ciclu SPI, transmisia este full-duplex: masterul trimite un bit pe linia MOSI, iar slave-ul il citeste de pe aceeasi linie; slave-ul trimite un bit pe linia MISO, iar master-ul il citeste de pe aceeasi linie.

Comunicatia pe SPI implica de obicei existenta a doi registri de shiftare (Shift Registers), unul în master și unul în slave, conectati în ciclu:

Figure 19: Transmisia Master-Slave pe SPI

Tipul de comunicație RS232

Este cel mai cunoscut și utilizat standard de comunicație serială asincronă. El a fost definit de mai multe organisme internaționale de standardizare sub diferite nume : IEC232, CCITT-V24, RS232C. Inițial standardul a fost conceput cu scopul de a permite conectarea unui terminal inteligent la un calculator central printr-o legătură telefonică. Standardul precizează interfața dintre un echipament de calcul (DTE- Data Terminal Equipment) și adaptorul sau la linia telefonică ( DCE – Data Circuit – terminating Equipment ), cunoscut și sub numele de modem ( Modulator / Demodulator ). Interfața permite comunicația serială bidirecțională între cele două echipamente, și este simetrică la cele două capete ale liniei. Ulterior specificațiile acestei interfețe s-au folosit pentru a realiza legături seriale între diverse echipamente fără a se mai folosi un modem.

Figure 20: Structura unui caracter transmis conform standardului RS232

Capitolul III: Funcționalitatea Display Box-ului

Noțiuni generale

În cele ce urmează este prezentată schema bloc de conexiune dintre Display Box, IBS și baterie. În cazul nostru, de proiectare a sistemului, s-a utilzat o sursa pentru alimentarea cu 12 V a echipamentelor.

Trebuie menționat faptul ca IBS (Intelligent Battery Sensor ) se montează pe borna negativă a bateriei. Aceasta are 2 ieșiri

Un cablu pentru alimentarea cu 12 V

Un cablu care este specific comunicatiei LIN

Pe langa aceste iesiri, mai exista si conexiunea de ground, acesta facându-se de asenenea direct de pe sensor.

Figura x Conexiunea Display Box – IBS – Baterie

Deoarece Display Box-ul trebuie să fie capabil să stocheze multe multe informatii despre parametrii bateririe pe o perioada mai indelungata de timp, memoria internă a microcontrolerului nu este suficent de mare pentru stocarea informații.

Este necesar un MicroSD card, pe care se datele sunt stocate. Totodată această soluție permite un studiu ulterior amanunțit cu privire la valorile stocate.

Figura xx Conexiunea fizica a Display Box-ului

Datorită consumului tot mai mare de energie în masina (numar mare de ECU-uri, implementarea unor functionalități multiple care sa asigure un confort ridicat și o siguranță sporită a pasagerilor), se incearcă descoperirea unor metode care sa previna aceste probleme.

Intelligent Battery Sensor se montează pe borna negativa a bateriei. Rolul acestuia este de a transmite informații despre starea bateriei (SOC – State of Charge, SOH – State of health), precum și paremetrii bateriei (Tensiune, Curent, Temperatura).

SOC – State of Charge – parametru care ne arata cat de incarcată este bateria în fiecare moment

SOH – State of Health – parametru care arată “buna funcționare”; bateria este supusă mai multor cicluri de dscarcare/incarcare și acest lucru va duce la aparția anumitor probleme (masina nu mai poate porni)

Tensiune, Curent, Temperatură – acesti parametri sunt esentiali pentru descoperirea anumitor consumatori care nu functioneaza corect; detectarea unor probleme la pornirea/oprirea vehicolului.

Driverul de SPI a fost implementat tinându-se cont de specificațiile microcontroller-ului.

SPI – ATMega32M1

Microcontroller-ul ATMega16 pune la dispozitia utilizatorilor sai și interfață SPI putand functiona atat ca master cat și ca slave. Pentru configurarea și utilizarea unei interfețe se lucrează cu registri: de control, de stare și de date. Pentru interfață SPI implementata în ATMega32M1 avem urmatorii registri:

SPCR – Control Register – în acest registru dăm enable la SPI, activam întreruperile asociate, setăm modul de funcționare a microcontrolerului (master sau slave) și ceasul. SPSR – Status Register – cel mai important bit din acest registru este SPIF, care semnalizeaza când s-a terminat o transmisie. SPDR – Data Register – acesta este registrul dîncare citim, sau încare scriem, datele pe care leam primit, sau pe care vrem sa le trimitem.

Parametrizarea bateriei

Capitolul IV: Achiziția datelor și afișarea acestora

Tipuri de parametrii ce pot fi afișați și utilizarea lor în practică

Fisierul de configurare a semnalelor care sunt transmise pe LIN de catre IBS (Intelligent Battery Sensor) sunt descrisi untr-un fisier denumit LDF (LIN description file). Aceata contine informatii despre fiecare pachet de semnale. De asemenea, fiecare semnal este descris in detaliu:

– limitele intre care semnalul poate sa ia valori

– rezoluția semnalului

– offset (valoarea care se adauga după ce valoare transmisă se inmulțeșe cu rezolutia)

Sunt prezentate valorile care sunt utilizate în calcul pentru cațiva parametrii importanți – tensiune, curent, temperature, SOC (State of Charge)

Aceste valori fac parte dîntr-un tabel de descriere (LIN matrix) unde, pentru fiecare semnal în parte sunt prezentate mai multe valori care sunt utilizate mai apoi pentru determinarea valorii finale.

Acest fișsier poate fi încărcat în configuratia de CANoe. Se poate realize astfel un “trace” pentru semnale care sunt transmise pe LIN.

Dupa cum se poate observa în exemplul de mai jos, toate semnalele care sunt transmise pe LIN sunt grupate în frame-uri. Un frame conține toate semnalele care vor fi transmise simultan.

Structura unul fisier de tip LDF

LIN_description_file;

LIN_protocol_version = "2.0";

LIN_language_version = "2.0";

LIN_speed = 19.2 kbps;

Nodes {

Master: LDFMasterNode, 10 ms, 0 ms ;

Slaves: IBS ;

}

IBS_FRM2: 34, IBS, 7 {

BatteryCurrent, 0 ;

BatteryVoltage, 24 ;

BatteryTemperature, 40 ;

CurrentAutorange, 49 ;

IBS_Error, 55 ;

Codarea semnalelor

Enc_BatteryCurrent {

physical_value, 0, 4000000, 0.001, -2000, "A" ;

logical_value,16777215,"Invalid" ;

}

Enc_BatteryTemperature {

physical_value, 0, 330, 0.5, -40, "°C" ;

logical_value,511,"Invalid" ;

}

Enc_BatteryVoltage {

physical_value, 0, 50000, 0.001, 0, "V" ;

logical_value,65534,"Invalid" ;

Cu ajutorul acestor informatii despre fiecare semnal în parte se va utiliza urmatoarea formulă pentru a se determina valoarea finala (pentru un caz general) :

Valorea finală = valoarea fizică * LSB + offset

Figura 1: Structura unui fișier de tip matrice LIN

Achiziția semnalelor transmise pe LIN

Datele pot fi achizitionate la diferite intervale de timp.

IBS-ul care funcționeaza ca un slave are anumite stari de tranziție. In funcție se starea in care se afla IBS-ul, Display Box-ul poate face achizitie de date la diferite intervale de timp.

Intervalul de timp la care se poate face achiziția de date poate fi selectat din ecranul ”Menu”.

Ecranul meniu are urmatoarele optiuni:

– ”Language”: poate fi selectata limba. Așa cum era descris mai devreme, momentan numai meniul în limba engleză este implementata

– ”Batterycondition”: de aici se poate configura afișajul ecranul principal. Putem sa afișam starea de încarcare a bateriei ”Charge State” sau putem afișa parametrii citiți de catre IBS de la baterie ”Voltage”

– ”Configuration”: Putem configura optiuni ale ecranului – module de afișare

-”Output” – inactiv momentan

– ”Datalog” – permite achiziția datelor la anumite intervale de timp

Ceea ce am modificat in cadrul lucrarii a fost adaugarea unei noi opțiuni de pentru achiziția datelor. Din ecranul”Menu”, apasând opțiunea de”Datalog”

Figura xx: Ecranul ”Menu”

Se va putea face achizia de date și la intervalul de 100ms.

Acesta optiune este necesară în cazul în care se dorește achiziția de date pe un interval de timp mai scurt (fără ca acesta sa fie înlocuit).

Modificarea a fost realizată in configurația deja exiatentă prin adaugarea unui nou ”case” .

Mediul de dezvolatare este X32.

Anumiți parametrii ai bateriei sunt transmiși de IBS pe LIN la u interval de ms. O achiție mai detaliata ne poate ajuta să descoperim eventualele probleme carea u apărut pe un interval de timp.

Așadar, pentru ecranul”Datalog” a fost adauga opțiunea de achiziție a datelor la 100ms.

Figura xx: Ecranul ”Datalog”

O alta modificare pe care am realizat-o a fost achiziția doar a anumitor pachete de semnale.

Dacă la ănceput se achiziționau toate semnalele, pentru a putea face achiziție pentru o periodă mai îndelungată de timp, doar anumite semnale au fost achiziționate.

Pentru acest lucru a fost necesară modificarea ”planificatorului” (”schedule table”) pentru ca acesta sa corespundă cu cel care există implementat pe IBS.

Capitolul V: Testare

Testarea valorilor afisate pe display utilizând CANoe

Utilizand Tool-urile de la vector, și anume CANoe se poate realize o configuratie.

Aceasta va avea extensie “.cfg”.

Se va crea o rețea de comunicare(încazul nostru o rețea LIN).

Se va încarca în configuratia de CANoe și fisierul “.ldf”. Aici se gasesc toate pachetele de semnale (frame-uri), impreuna cu ID-ul fiecarui frame, lungimea, bitul de start, tipul comunicatiei LIN, etc.

Figure 21: Afisarea datelor în CANoe

Dupa ce configuratia a fost realizata și senzorul a fost conectat, se poate observa pachetul de semnale trimis in fiecare moment (acesta depinde de scheduler-ul care il avem).

Transmitere detaliată:

In fereastra de trace din CANoe vor apărea toate pachetele trimise pe magistrala LIN de

către Display Box, precum și răspunsurile IBS-ului la aceste pachete. Se poate observa in

această fereastră:

• Time – timpul cand s-a recepționat mesajul;

• Start of Frame – timpul cand a fost recepționat bitul de inceput al mesajului;

• Channel – pe care din canale a fost trimis-recepționat mesajul;

• Dir – tipul mesajului din punct de vedere al transmiterii, dacă mesajul a fost

transmis/recepționat de CANoe;

• Event Type – tipul mesajului (mesaj de dignoză, de configurare …);

• Frame Name – numele mesajului (Master Request, Slave Response);

• ID – identificatorul mesajului;

• Data – octeții de date ai mesajului.

Pachetele de date ce sunt trimise de master (Display Box sunt mesaje de diagnoză și au numele de MasterReq. Pentru aceste mesajele de tipul MasterReq s-a utilizat identificatorul 0x3C. Pachetele de date ce sunt recepționate de master (Display Box), sunt mesajele trimise de IBS. Aceste mesaje de diagnoză sunt mesaje de tipul SlaveResp cu identificatorul 0x3D.

În cazul nostru, este transmis IBS_FRM2 cu semnalele de current, tensiune, temperature, eroare.

Toate aceste pachete de semnale pot fi vizualizate direct din CANoe cu “LIN Network Viewer”. și aici, ca și înfisierul de ldf se poate observa pentru fiecare semnal în parte bitul de start, lungimea și valuarea de inceput.

Aceste valori sunt foarte importante, deoarece în functie de ele, se va extrage din bufferul corespunzator valoarea dorita pentru fiecare semnal, care este mai apoi prelucrată. Această valoare fie stocata, fie este transmisă mai departe pentru a putea fi utilizată.

Figure 22: LIN Network Viewer

Configurarea nodurilor este folosita prin setarea nodurile slave într-un cluster. Este un set de servicii creat pentru a evita conflictele dintre nodurile slave dîntr-un cluster. Configurarea este facuta prin detinerea unui spatiu de adrese, constănd int-un Identificator de Produs LIN și un NAD initial pentru nodurile slave. Folosind aceste valori este posibil schițarea de identificatori de telegrame unice pentru toate telegramele transportate în cluster.

Trimiterea unui mesaj greșit, intarzierea trimiterii unui mesaj sau trimiterea greșită a unor octeți se poate observa foarte repede prin intermediul acestei ferestre.

Pachetele de semnale obținute pe LIN

Pentru o verificare mai detaliată a mesajelor transmise pe magistrala LIN, am utilizat un

PicoScope, un mediu ce permite vizualizarea semnalelor.

Această vizualizare permite o verificare mai detaliată a timpilor de transmitere,

recepțioanare a mesajelor, precum și a tranzițiilor de pe magistrală.

In testarea precedentă, in care am utilizat CANoe-ul, dacă un mesaj ar fi fost transmis

greșit, puteam să observăm această in fereastra de trace prin apariția unui mesaj cu culoarea

roșie. Insă nu putem afla cauza exactă din care a apărut eroarea (dacă este o eroare din cauza

timpului de transmisie/recepție a mesajului sau din cauza valorii greșite a unui bit).

Utilizand PicoScope-ul putem observa cat durează un mesaj, timpul dintre mesaje sau a

unei anumite parti dintr-un mesaj.

Figure 23: LIN frames

Pentru a observa un anumit semnal utilizand PicoScope-ul, sonda acestuia se conectează

la magistrala LIN, iar masa la masa comună a sistemului, iar in aplicația software a acestuia se

setează diferite praguri pentru a obține o vizualizare a semnalului dorit pe ecran.

Figure 24: LIN frame detaliat

Figure 25: Componența unui frame de LIN (1)

Figure 26: Componenta unui frame de LIN (2)

Din figurile de mai sus se pot observa break-uk, pachetul de date care este transmis, checksumul pachetului de semnale care este transmis pe LIN.

Testarea funcționalităților implementate

Testarea serviciilor de diagnoza

Teste făcute pentru parametrii bateriei transmiși de către Display Box către IBS:

Start Display Box

Menu -> Configuration->BatteryParam

Setare Nominal capacity

Setare U0min

Setare U0max

Setare BatteryType

Reset

Ce se urmărește prin acest test:

Prin CANoe: – se verifică daca parametrii bateriei au fost transmiși corect prin serviciile de diagnoză

Se verifică daca dupa resetarea IBS-ul, parametrii au fost scriși in memoria EEPROM a acestuia și sunt afișati corect pe ecranul Display Box-ului

Testarea intervalelor la care se face achiziția semnalelore

Start Display Box

Se aplică un current de -0.350 A pe IBS Sensor

Se aplică un current de -0.021 A pe IBS Sensor

Se face achizitie 10 min in modul sleep

Se aplica un current din afara intervalului [-0.250; 0.250]. (e.g.: -0.370A)

Nota: în cazul in care pe IBS se aplica un current din afara intervalului [-0.250; 0.250] acesta trece automat din modul de ”sleep” în module ”wake”

Figura xx: Achziție de date de micro-SD card

Ce se urmărește prin acest test:

– achiziția datelor in modul normal de funcționare (IBS-ul este in ”wake” mode)

– curentul este afișat corect pe ecran

– Display Box-ul merge în modul de funcționare ”Sleep” atunci când pe IBS se aplică un curent din intervalul [-0.250; 0.250]

– IBS –ul și Display Box-ul merg în modul de funcționare ”Wake” atunci când pe IBS se aplică un curent din afara intervalului [-0.250; 0.250].

Testarea valorilor semnalelor achiziționate

– Start Display Box

– Start CANoe

– Aplică un current (I_BATT = 12A)

– Se pornește achiziția de date

– Se oprește achiziția de date după un anumit timp

Ce se urmărește prin acest test:

– comunicația dintre master (Display Box) și slave (IBS)

– achiziția valorilor este corectă

– SOC (”State of Charge”) iși modifică valoarea

Concluzii și contribuții

Echipamentul de testare a senzorilor este un dispozitiv care ajută la achiziționarea și interpretarea datelor furnizate de anumiți senzori care se află pe mașină.

In funcție de fiecare senzor utilizat, un fișier de configurare trebuie creat, iar apoi prin intermediul comunicației LIN, datele sunt transmise de la senzor catre Display Box, sunt stocate pe un micro-SD card si apoi analizate.

Interpretarea datelor într-un anumiti moment va conduce la reducerea costurilor de service, precum și la prevenirea unor probleme care pot să apară in mașină si care pot afecta siguranța șoferului si a pasagerilor.

Contribuțiile proprii aduse lucrării de disertație sunt:

Driverel de LIN au fost modificate pentru a putea fi utilizate strict pentru acest dispozitiv, pentru a se putea asigura o bună trasmisie si achiziție a datelor.

Am adaptat display-ul…

Am realizat fișiere de configurare. Aici trebuie adugate informații despre fiecare senzor in parte, cum ar fi : bitul de start dintr-un pachet pentru fiecare semnal in parte, lungimea semnalului, rezoluția, offsetul. Aceste date au fost mai apoi preluate (s-a facut o funcție care extrage din fiecare buffer în parte informația) si afișate pe display.

Am creat o configuratie de CANoe unde se poate observa un pachet de date care este trasmis de la senzorul de baterie către STU.

Cu ajutorul osciloscopului am obținut formele de undă pentru niște pachete de semnale din care se pot observa parametrii specifici comunicației LIN (ID, break, pachetul de date).

Referințe

[1]Miron Mandoiu, stst.elia.pub.ro/…/RETELE%20PENTRU%20COMUNICATII%20INDUSTRIALE.doc

[2] B. Haworth, LIN2.0 driver suite, 07.07.2006

[3]andrei.clubcisco.ro/cursuri/3pm/lab6.pdf

[4]Vector, “Canoe – User Manual”, www.vector.com/vi_index_en.html

[5]www.cs.ucv.ro/staff/dmancas/CD/ro/Cap3.doc

[6]http://www.hella.com/hella-com-en/270.html

[7]http://www.hella.com/hella-com-en/287.html

[8]http://www.hella.com/hella-com-en/298.html

[9]http://www.hella.com/hella-com-en/300.html

Table of figures

Similar Posts

  • Sistem Informatic de Analiza a Bazelor de Date Multidimensionale

    TEMA: SISTEM INFORMATIC DE ANALIZĂ A BAZELOR DE DATE MULTIDIMENSIONALE CUPRINS CAPITOLUL 1. Baze de date – elemente fundamentale 1.1. Prezentare generala a bazelor de date 1.2. S.G.B.D.R – prezentare generala 1.3. Elemente caracteristice BDM si BDO 1.4. Procesarea analitică a informațiilor 1.4.1. Arhitectura sistemelor de analiză multidimensională 1.4.2. Rolul motorului analitic 1.4.3. Elemente definitorii…

  • Platforma Web Pentru Studenti

    Cuprins: NOTIUNI iNTRODUCTIVE ……………………………………………………1 Prezentarea Lucrării …………………………………………………..0 Analiza de proiectare ……………………………………………………D Scopul Aplicației…………………………………………………………D Publicul țintă………………………………………..…………………D Analiza business…………………………………………………….D Tema aplicatiei…………………………………………………..D Probleme rezolvate…………………………………………………………D Analiza SWOT……………………………………………………D Project Management în ONG-uri……………………………………….D Etapele unui proiect…………………………………………………D Feedback……………………………………………………..……D Branding……………………………………………………………… INTRODUCERE ÎN APLICAȚII WEB MODERNE……………………………20 Tehnologii ………………………………………………………….D HTML5 …………………………………………………………………..D CSS3……………………………………………………………………D PHP………….…………………………………………………………..D MySQL……………………………………………………………… WAMP …………………………………………………………. Open Source…………………………………………………………….D Evoluția limbajului php …………………………………………..D Fire de execuție…

  • Curbe Inchise Izoperimetrice

    Сurbе înсһіsе іzopеrіmеtrісе Сuprіns Ιntroduсеrе Gеomеtrіɑ dіfеrеnțіɑlă еstе o rɑmură ɑ mɑtеmɑtісіі, сɑrе сombіnă gеomеtrіɑ ɑnɑlіtісă сu ɑnɑlіzɑ mɑtеmɑtісă. Gеomеtrіɑ dіfеrеnțіɑlă studіɑză сurbеlе șі suprɑfеțеlе сu mіϳloɑсеlе ɑnɑlіzеі, în spесіɑl prіn сɑlсul dіfеrеnțіɑl șі іntеgrɑl, сu sсopul dе ɑ сɑlсulɑ lungіmеɑ totɑlă sɑu pɑrțіɑlă ɑ unеі сurbе prесum șі ɑlțі pɑrɑmеtrіі ɑі ɑсеstеіɑ сum ɑr…

  • Protocolul DE Rutare Meshspf Pentru Retele DE Senzori Wireless

    CUPRINS 1. INTRODUCERE… .5 1.1. Motivație … .5 1.2. Obiective … .5 1.3. Conținutul lucrării … ..6 2. REȚELELE DE SENZORI WIRELESS: FUNDAMENTE TEORETICE … .7 2.1. Descriere generală a rețelelor de senzori wireless … ..7 2.2. Standardul IEEE 802.15.4 ZigBee … .8 2.2.1. IEEE 802.15.4 WPAN … ..9 2.2.2. IEEE 802.15.4 PHY … .12…

  • Utilizarea Ip Ului In Retele DE Telefonie Mobila

    UTILIZAREA IP-ULUI ÎN REȚELE DE TELEFONIE MOBILĂ CUPRINS CAPITOLUL 1. INTRODUCERE. EVOLUȚIA TELEFONIEI MOBILE 1.1. Evoluția telefonului mobil 1.2. Generațiile rețelelor mobile 1.2.1. Prima generație (1G 1.2.2. A doua generație (2G 1.2.3. A treia generație (3G 1.2.4. A patra generație (4G 1.3. GSM în România CAPITOLUL 2. GSM (Global System for Mobile Communications) 2.1. Evoluția…