Author
lytuong
View
215
Download
2
Embed Size (px)
43
Capitolul 4: Aplicaii auto
Aplicaiile auto au cteva particulariti care trebuie considerate atunci cnd se alege un microcontroller care s gestioneze o astfel de aplicaie. Cteva dintre aceste particulariti sunt:
Respectarea legislaiei specifice Posibilitatea de lucru cu nivele digitale auto Consum mic de energie Generare mic de perturbaii electromagnetice Siguran mare de funcionare Microcontrollerul care gestioneaz aplicaiile trebuie s aib integrate modulele
specifice aplicaiilor. Temperatura de lucru
Consumul mic de energie i generarea unui spectru redus de perturbaii sunt legate de generarea i folosirea tactului [1].
4.1.Cerine specifice i legislaie
n plus fa de majoritatea microcontrollerelor, unele dintre cele produse special pentru industria auto admit pe lng nivelele logice obinuite (TTL sau CMOS) i nivele logice auto, la care VIL este 0,5xVCC. Modul de lucru cu nivele auto mrete sigurana n funcionare deoarece la autovehicule nivelul masei de semnal este destul de variabil i are uzual un decalaj de nivel a 1V deoarece toate circuitele se nchid prin acelai circuit de mas. Lucrul cu nivele auto poate fi selectat soft pentru anumii pini de I/O. Datele de catalog pentru nivelele de intrare arat importana nivelelor logice auto pentru mrirea imunitii la perturbaii. n ipoteza unei tensiuni de alimentare VCC=5V tabelul nr.1 urmtor arat nivelele admise la intrare pentru 3 configurri ale pinilor de intrare.
Dac pentru nivel High la intrare nivelele auto au aceeai margine de imunitate ca i nivelele CMOS cu histerezis, la nivel Low de intrare marginea de imunitate este mult mai mare, nivelul maxim admis pentru 0 logic fiind 2,5V fa de 1V la CMOS cu histerezis i 0,8V la TTL. La familiile dedicate domeniului auto gama de temperaturi este mai larg dect la MC de uz obinuit, astfel se solicit uzual temperaturi de lucru ntre -40C i 105C i temperaturi de stocare ntre -55C i 150C.
Un microcontroller destinat industriei auto poate avea un mod specific de generare i control al tactului: multiplicarea intern a tactului cu bucl PLL existena tactului de rezerv modulaia tactului
44
Tabel. 4.1: Niveluri admise la intrare pentru 3 configurri ale pinilor de intrare (tensiunea de alimentare VCC=5V)
Tip de nivel pentru nivel High la intrare
Plaja admis n funcie de tensiunea de alimentare
Plaja admis (Volt)
Nivel CMOS cu histerezis ntre 0,8 VCC i VCC +0,3V 4V-5,3V Nivel TTL ntre 2V i VCC +0,3V 2V-5,3V Nivel auto ntre 0,8 VCC i VCC +0,3V 4V-5,3V
Tip de nivel pentru nivel Low la intrare
Plaja admis n funcie de tensiunea de alimentare
Plaja admis (Volt)
Nivel CMOS cu histerezis ntre VSS-0,3V i 0,2VCC -0,3Vpn la 1V Nivel TTL ntre VSS-0,3V i 0,8V -0,3V pn la 0,8V Nivel auto ntre VSS-0,3V i 0,5VCC -0,3V pn la 2,5V
Obinerea tactului intern prin multiplicarea tactului extern cu bucl PLL are 2 avantaje majore: Tactul extern poate fi de valoare mai mic, ceea ce nseamn o generare de perturbaii de valoare mai mic. Este posibil alegerea factorului de multiplicare prin software, deci pentru aplicaii care accept viteze mai mici se obine un consum mai mic de la sursa de alimentare.
Pentru mrirea siguranei n funcionare, anumite modele de MC au integrat un tact de rezerv RC integrat i un supervizor de tact. Atunci cnd supervizorul de tact detecteaz dispariia tactului principal sau a subtactului comut pe tactul de rezerv (cu frecvena, precizia i stabilitatea mai mic dect tactul principal sau subtact) i MC execut un program de urgen (salvare date, comunicarea strii de defect etc.). Modulaia tactului are rolul de a reduce interferenele electromagnetice (EMI) prin mprtierea spectrului semnalului de tact.
Modulele electronice care echipeaz un autovehicul au cteva sarcini care pot fi grupate n urmtoarele categorii: Preiau mrimi neelectrice prin intermediul senzorilor, prelucreaz valorile electrice dup conversia analog numeric, comand elemente de execuie i eventual afieaz rezultate. Comunic ntre ele pentru a se informa reciproc despre evenimentele din sistem.
Interfeele care echipeaz MC utilizate n auto trebuie s ndeplineasc n principal cteva condiii importante: Sigurana n funcionare (pentru c la viteza de rulare o eroare poate duce la pierderea de viei omeneti) Consum redus de energie (pentru c alimentarea se face de la baterie)
45
Pentru comunicaii ntre module trebuie folosite ct mai puine fire (cablajele sunt scumpe i nesigure).
De regul, toate MC utilizate n prelucrarea mrimilor neelectrice trebuie s conin n structur convertoare ADC, minimum 8 canale de conversie, cu aproximri succesive avnd rezoluia de 10 bii. Toate aceste canale pot fi folosite i cu o rezoluie de 8 bii. Modul de funcionare trebuie s permit conversii continue i baleierea unui grup de canale de achiziie n mod continuu. Grupul de canale poate fi definit software. De asemenea achiziia poate fi declanat software, printr-un semnal extern sau periodic, determinat de un timer. Timpul de conversie de cteva microsecunde face posibil achiziia oricror semnale din domeniul auto. Precizia i acurateea rezultatelor este mbuntit de posibilitatea de programare a timpilor de eantionare i de meninere. Unele MC sunt echipate cu convertoare DAC, de regul canale de 10 bii pentru a putea comanda sisteme analogice.
Multe din elementele de execuie sunt construite pe baza motoarelor pas cu pas i mai puine pe baza motoarelor de curent continuu. Motoarele pas cu pas ofer precizie de poziionare i simplitate de comand la costuri mici. Astfel, multe MC sunt echipate cu interfee specializate pentru comanda motoarelor pas cu pas i a celor de curent continuu. Pot fi comandate att motoarele pas cu pas unipolare ct i cele bipolare. Comanda fazelor cu un semnal PWM face posibil controlul precis al curentului prin nfurare. Conectarea unei nfurri ntre 2 module de control permite comanda cu cureni n ambele sensuri n nfurare, deci o comand bidirecional pentru un motor de curent continuu. Driverele integrate permit comanda nfurrilor cu curent mare, aa nct motoarele de mic putere pot fi conectate direct la MC. De exemplu indicatoarele de bord (vitez, turaie) sunt realizate actual cu motoare pas cu pas.
Multe elemente care trebuie afiate sunt mai bine acceptate dac sunt afiate pe LCD. Multe MC din familiile pe 8, 16 i 32 de bii conin interfee pentru comanda unui LCD n mod caracter. La MC care echipeaz bordul auto este important semnalizarea auditiv pe lng cea vizual. De aceea unele MC au integrat o interfa de generare sunete, cu posibiltatea reglrii volumului i posibilitatea generrii tonurilor cu volum descresctor.
Interfeele specifice comunicaiilor de date n domeniul auto sunt: 1.LIN (Local Interconnect Network) este o interfa care realizeaz o comunicaie serial asincron punct la punct pe un singur fir. Rata maxim de transfer este de 4 MBd i distana de transmisie, n funcie de transceiverul folosit este de civa metri. Unul dintre circuitele conectate la LIN trebuie s fie master, iar celelalte slave. Masterul genereaz un nivel space pe perioada 13-16 bii urmat de un cuvnt 55H. Ca i slave, interfaa LIN detecteaz trecerea liniei n space i calculeaz viteza de transmisie din cuvntul 55H recepionat. Ca avantaje se poate meniona simplitatea interfeei, uurina de programare, viteza mare de transfer, transferul pe un singur fir. Distana de transfer este suficient pentru aplicaii n interiorul autovehiculului. Un dezavantaj major este lipsa siguranei n funcionare, nu se face nici mcar verificarea corectitudinii transferului cu bit de paritate, de aceea aplicaiile trebuie s se rezume la aplicaii care nu afecteaz sigurana autovehiculului.
46
2.CAN (Controller Area Network) este o magistral serial introdus de Robert Bosch GmbH n 1986 pentru comunicaia de date ntre 3 module electronice pentru automobilele Mercedes, deoarece interfaa UART nu putea lucra dect punct la punct. Magistrala CAN a fost dedicat industriei auto dar s-a rspndit rapid i n alte domenii: automatizri, sisteme integrate etc. Transmisia se face pe 2 fire, half duplex, cu mare vitez (pn la 1MBps) pe distane de ordinul zecilor de metri. Arbitrarea magistralei se face prin detectarea coliziunilor iar un sistem complex i eficient de detectare i tratare a erorilor face ca magistrala s fie extrem de sigur. Fiecare interfa CAN conine cte un registru de erori pentru recepie i transmisie care se incrementeaz cu 1 la o eroare minor i cu 8 la o eroare grav. Un numr de erori mare face ca interfaa s fie exclus din comunicaie. Transmisia se realizeaz cu cadre i fiecare mesaj conine un identificator care arat prioritatea mesajului. Interfeele receptoare recepioneaz toate mesajele i le rein pe acelea cu prioritate mare sau cele care le sunt destinate.
Avantajele nete pe care le are CAN fa de LIN au dus la rspndirea CAN, cu toate c preul unui MC cu CAN este mai mare dect al celui cu LIN. Preul mai mare al CAN este justificat de suprafaa mare de siliciu ocupat de aceast interfa, figura 4.1.
Figura 4.1: Chip de MC echipat cu 2 interfee CAN (sursa Fujitsu Microcontroller Seminar, 2003)
Se observ comparativ suprafaa ocupat de cele 2 interfee CAN fa de memorie. Multe MC sunt echipate cu 2 canale CAN pentru a putea lucra n acelai timp cu CAN High Speed i Low Speed.
Au fost standardizate mai multe tipuri de niveluri fizice de transfer pentru CAN. Un MC cu interfa CAN poate lucra n oricare dintre aceste standarde fiind programat corespunztor i avnd adugat n exterior transceiverul CAN potrivit. Standardele sunt:
ISO 11519 (CAN Low Speed) standardizeaz transmisia diferenial pe 2 fire. Cablul este torsadat, ecranat sau neecranat, cu impedana caracteristic de 120 +/- 10%. La captul liniei nu este nevoie de rezistene de adaptare pentru c viteza maxim de transfer de 125kbps nu d natere la reflexii pe linie.
ISO 11898 (CAN High Speed) se folosete acelai tip de cablu, dar linia se adapteaz cu rezistene de 120 pe fiecare fir. Lungimea de transmisie depinde de rata de
47
transfer. Astfel la 40 metri se poate obine 1Mbps iar la 6 km rata de transfer nu poate depi 10kbps.
ISO 11898-3 (CAN High Speed tolerant la erori) este folosit ndeosebi n industria auto. Linia este scurt de aceea nu este nevoie de adaptare, iar viteza maxim este 125kbps. Ca urmare topologia poate fi i alta dect cea liniar iar consumul de putere este mai redus. Este de asemenea posibil transmiterea asimetric a datelor (pe un singur fir) dac o linie se defecteaz. Pentru acest standard se folosesc transceivere speciale cu comutatoare pentru transmisia simetric sau asimetric.
SAE J2411 standardizeaz transmisia CAN pe un singur fir i asigur o vitez de 83,3kbps (High Speed) i 33,3kbps (Low Speed). Transferul de date este dedicat pentru zone mici, cum ar fi interiorul motorului. Firul de transmisie poate fi neecranat.
3.Flex Ray ( www.flexray.com ). Evoluia automobilelor a dus la creterea numrului de senzori, elemente de execuie i sisteme de control, care a dus mai departe la nevoia unui transfer de date mai rapid i cu toleran la defecte. Aceste cerine sunt ndeplinite de noua magistral Flex Ray care urc viteza de transfer la 10Mbps. O schem bloc a unui sistem complex de control auto este dat n figura 4.2, n care se observ c elementele de confort pot fi comandate printr-o magistral mai simpl (LIN sau cel mult CAN) iar elementele mai complexe cum ar fi motorul sau frnele se comand prin magistrale mai complexe (Flex Ray sau cel puin CAN).
Cteva aspecte de legislaie n domeniu sunt:
1. Directiva RoHS (Restriction of Hazardous Substances in Electrical and Electronic Equipment) a fost adoptat n Comunitatea European ( europa.eu.int ). Aceast directiv cu numrul 2002/95/EC din 27 ian. 2003 interzice utilizarea anumitor substane n echipamentele electronice utilizate n industria auto. Aceste substane sunt Cadmiul (Cd), plumb (Pb), mercur (Hg), crom hexavalent (Cr), i doi compui ai bromului, polibrominat bifenil (PBB) i polibrominat bifenil eter (PBDE). Procentul n care apar aceste substane trebuie s fie mai mic de 0,1%.
2. AEC-Q100 este un document realizat de Automotive Electronics Council care definete cteva condiii pe care trebuie s le ndeplineasc circuitele integrate pentru a fi acceptate n industria auto ( www.aecouncil.com ). Se definesc teste n regim de stress (teste accelerate) care, dac sunt trecute garanteaz circuitelor un anumit nivel de fiabilitate n aplicaii.
Se definete gama de temperaturi de funcionare a circuitelor astfel:
Denumire categorie Gama de temperaturi de lucru n grade Celsius Grad 0 -40 pn la +150 Grad 1 -40 pn la +125 Grad 2 -40 pn la +105 Grad 3 -40 pn la +85 Grad 4 0 pn la +70
48
Figura 4.2: Arhitectura unui sistem complex de control auto
Conform cu declaraiile productorului de ncadrare a temperaturii de lucru ntr-o anumit categorie, testele se execut n acele condiii de temperatur.
Cteva dintre testele la care sunt supuse circuitele: Variaia temperaturii Variaia umiditii Stocarea la temperaturi mari Strpungerea izolaiei Caracteristici la lipire Descrcri electrostatice Compatibilitate electromagnetic ocuri mecanice Acceleraii Vibraii Torsiuni Timp de memorare i numr de programri pentru memoria FLASH Rata de defectare timpurie
Fiecare tehnologie (CMOS, NMOS, TTL etc.) se testeaz cu teste diferite. De asemenea la capsularea n plastic sau ceramic se folosesc teste diferite. Pentru anumite teste exist standarde, de exemplu testarea la compatibilitate electromagnetic se face conform SAE
Magistrala Flex Ray
CAN CAN / LIN Flex Ray / CAN
Controlul traficului de date la motor i asiu
Control bord Controlul corpului mainii
Conexiune de diagnostic
-control motor -control asiu -control direciecontrol frnare
-bord -sistem navigaie-ecran de informare
-control confort -clima -ui -iluminare -trap
49
J1752/3, alte teste folosesc norme militare, MIL-STD-883 iar pentru unele teste se definesc condiii specifice, descrise n AEC-Q100.
Rata de defectare timpurie se determin printr-o ncercare accelerat, supunnd probele la cicluri de supra temperaturi urmate de reveniri la temperatura camerei, un timp de 48 de ore la temperaturile maxime admise conform gradului declarat de productor sau 24 de ore la temperaturi mai mari (cu 25 de grade pentru grad 0 i cu 20 de grade mai mari pentru grad 1, 2, 3 i 4).
4.2.Interfaa serial LIN
4.2.1.Descriere
De regul interfaa LIN este implementat mpreun cu UART din cauza faptului c formatul datelor i transmisia sunt asemntoare. LIN UART este un modul de comunicaii seriale sincrone sau asincrone cu dispozitive externe avnd i posibilitatea de a lucra n standardul LIN (Local Interconnect Network). Comunicaia poate fi bidirecional i se poate lucra n modul master /slave. Funciile i caracteristicile LIN UART sunt:
Mod de transmisie full duplex Transferul poate fi sincron sau asincron Rata de transfer este programat cu un generator de rat de Baud dedicat Cuvintele de date pot fi pe 7 sau 8 bii. n mod sincron i LIN cuvintele pot fi doar de
8 bii. Funcionarea master slave permite operarea master-ului cu mai multe circuite slave Ceasul serial poate fi conectat permanent la SCK, astfel nct un transfer sincron poate
fi executat cu bit de start i stop. Datele sunt codificate NRZ, de exemplu irul de date 0110100 se va codifica astfel,
figura 4.3.
Figura 4.3: ir de date codate NRZ
Modul de operare asincron (UART) are loc n condiiile n care tactul nu se transmite pe linie, caracterele se transmit asincron dar biii n caracter se transmit cu un tact standard, care poate fi ales la transmitor i la receptor. Tactul de transmisie se numete rata de Baud i trebuie s fie acelai la transmitor i receptor. Transferul ncepe cu un bit de start (nivel 0) i se termin cu unul sau 2 bii de stop. Datele sunt transmise ncepnd cu LSB sau MSB, programabil. Bitul de paritate este opional i este transmis ntre ultimul bit de date i primul bit de stop. Lungimea cuvintelor de date poate fi de 7 sau 8 bii, cu paritate sau fr, 1 sau 2 bii de stop. Structura unui cuvnt este dat n figura 4.4.
0 1 1 0 1 0 0
50
Figura 4.4: Structura cuvintelor n mod asincron
Operarea n mod sincron are loc n prezena unui tact transmis o dat cu datele. Datele pot fi transmise fr separatori ntre octei i n acest caz tactul este transmis numai cnd se transmit date sau n acelai format ca la transferul asincron (bit de start, stop i paritate), caz n care tactul se transmite permanent, figura 4.5.
La operare n mod LIN (LIN UART) poate lucra ca master sau slave. Formatul datelor este pe 8 bii fr paritate, un bit de stop, cel mai puin semnificativ bit se transmite primul. Viteza de transmisie este stabilit de master iar circuitele slave trebuie s se sincronizeze la aceast vitez. Master-ul genereaz pe pinul serial de ieire un nivel space pe perioada 13-16 bii, ceea ce constituie semnal de sincronizare pentru slave i nceputul unui mesaj LIN. Dup aceasta se transmite un octet de 55H.
Figura 4.5: Operarea n mod sincron
Ca i slave, LIN UART recepioneaz trecerea liniei n space i trebuie s calculeze rata de Baud din cuvntul 55H. Aceasta se realizeaz cu circuitul de captur care este legat intern la LIN UART i care msoar timpul de recepie pentru octetul 55H. A opta parte a acestui timp este timpul de bit. Conectarea circuitelor n mod LIN se face cu circuite transceiver LIN, ca n figura 4.6.
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2
Date fr separare Tactul este generat doar cnd se transmit date, altfel linia este n stare mark.
start D0 D1 D2 D3 D4 D5 D6 D7 Parit Stop Stop
Date cu separare Un bit de stop poate s lipseasc. Tactul este prezent permanent.
start D0 D1 D2 D3 D4 D5 D6 D7 Parit stop stop
Biii D7, paritate i un bit de stop pot s lipseasc.
Sau A/D care indic adresa /data
51
Figura 4.6: Conectarea a 2 circuite n mod LIN cu transceivere
Modulul LIN UART funcioneaz astfel: datele seriale de intrare sunt eantionate, se detecteaz biii de start i stop i cnd este recepionat un cuvnt se verific paritatea (dac s-a programat transfer cu paritate). Cuvntul recepionat este transformat n format paralel cu tactul dat de generatorul de rat de Baud. Cnd s-a terminat recepia unui caracter se poate cere o ntrerupere de recepie. Traseul este invers la transmisie, se serializeaz caracterul i se insereaz biii de paritate, start i stop.
Comunicarea ntre 2 circuite cu LIN are loc astfel: Se programeaz LIN UART La transmisie se trimite un cuvnt n registrul de transmisie (la o ntrerupere de
registru gol) La recepie se citete registrul de recepie (la o ntrerupere de registru de recepie plin
sau prin testarea unui flag).
n mod master slave, master-ul trimite un cuvnt care conine adresa slave-ului, ceea ce este semnalizat de bitul A/D (ultimul bit nainte de stop, inserat n cuvntul transmis). Fiecare slave verific adresa, dac mesajul i este adresat. Transferul are loc astfel:
Se programeaz LIN UART La transmisie se trimite un cuvnt n registrul de transmisie cu adresa (bitul A/D=1) Se trimite adresa slave-ului Se trimite un cuvnt cu A/D=0 Se trimite cuvntul de date n registrul de transmisie La recepie se verific bitul A/D Dac A/D=1 se verific adresa Dac adresa coincide se verific bitul A/D Dac A/D este 0 se recepioneaz date prin citirea registrului de recepie.
TxD RxD
Transceiver LIN
TxD
RxD
Transceiver LIN
Bus bidirecional pe un fir LIN
52
4.2.2.Exemplu de microcontroller cu interfa LIN integrat
MC ATMEL ATA6612/6613 sunt microcontrollere specializate pe aplicaii auto i au integrat o interfa LIN care conine un transceiver, un stabilizator de 5V i un watchdog. Aceste MC sunt de fapt System-in-Package (SIP) deoarece sunt formate dintr-un nucleu ATmega88 sau ATmega168 i un modul LIN ATA6624 pe acelai chip, figura 4.7.
Figura 4.7: Structura ATA6612
Pentru a mri flexibilitatea n utilizare, ambele circuite componente au scoi toi pinii la capsul. Circuitele sunt verificate AEC-Q100, temperatura de lucru fiind ntre 40Celsius i 125 Celsius i sunt alimentabile cu tensiuni pn la 40V, fiind astfel posibil alimentarea de la bateria auto. Modurile de lucru Sleep i Silent asigur un curent consumat mic (10A n Sleep i 57A n Silent). Rata de transfer maxim prin LIN este de 20kBaud i circuitul poate lucra att ca master ct i ca slave. Nivelele de tensiune pe linia de transmisie LIN pot fi ntre +27V i 40V.
Schema bloc simplificat a modulului LIN este dat n figura 4.8.
Figura 4.8: Schema bloc a modulului LIN
ATA 6612
MC ATmega88
LIN ATA6624
Magistrala LIN
Vcc
EN WAKE KL-15 NTRIG TxD RxD
Ieire din sleep sau silent
Control fronturi
Filtru
Regulator
Vbat
Detecie supracurent i supratemperatur
NRES LIN
Protecie subtensiune
Watchdog
53
Modurile de funcionare ale modulului LIN sunt: 1. Normal, n care se transmit i se recepioneaz date. Consumul este de aproximativ 50mA; 2. Silent, comandat de pinul EN cu un front cztor (TxD n stare High). Magistrala LIN este
decuplat de la rezistena de pull up pentru ca un scurtcircuit la mas s nu duc la creterea curentului. Regulatorul de tensiune este pornit. Ieirea din acest mod se poate face cu pinul EN sau KL_15 care admite tensiuni mari de comand (12V- bateria auto) sau cu pinul WAKE. Ieirea se poate face de asemenea cu un front cztor pe magistrala LIN urmat de un nivel High meninut un anumit interval de timp (remote wake-up).
3. Sleep, comandat de pinul EN cu un front cztor (TxD n stare Low) i este asemntor cu modul Silent cu diferena c i regulatorul de tensiune este oprit.
Ieirea din mod Sleep sau Silent i intrarea n mod Normal se face prin starea de Fail Safe, o stare intermediar n care comunicaia LIN este oprit pn la restabilirea parametrilor normali de lucru.
Blocul de protecie la scurtcircuit i supratemperatur comand intrarea n mod Sleep sau Silent dac linia LIN este scurtcircuitat la mas sau la Vcc pn cnd circuitul se rcete. Blocul de protecie la subtensiune verific tensiunea de +5V i comand un RESET al MC prin semnalul NRES la scderea tensiunii sub o anumit limit.
Watchdog-ul ateapt un semnal de redeclanare pe pinul NTRIG ntr-un interval de timp Twd i dac semnalul nu este primit se genereaz un RESET pe pinul NRES. Frecvena oscilatorului pentru watchdog este ajustabil printr-un rezistor extern. n modurile Sleep i Silent watchdog-ul este oprit. Diagrama de timp pentru un RESET generat de o subtensiune i de watchdog este dat n figura 4.9.
Figura 4.9: Diagrame de timp pentru generarea semnalului de RESET NRES
Vcc NTRIG NRES
Twd Twd
RESET (4ms) datorit subtensiunii
RESET (4ms) datorit watchdog-ului
54
Schema electric a unui nod LIN slave dat n figura 4.10 arat simplitatea constructiv n aplicaii i numrul mic de componente care se folosesc.
Figura 4.10: Aplicaie: nod LIN slave implementat cu ATA6612/6613
4.3.Magistrala CAN
4.3.1. Descriere
CAN (Controller Area Network) este o magistral serial introdus de Bosch. Transmisia se face pe 2 fire, half duplex, cu mare vitez, n condiii de siguran mare de funcionare. CAN poate lega teoretic 2032 dispozitive dar practic se pot conecta maximum 110 noduri. Modurile de detectare i tratare a erorilor fac ca aceast magistral s fie preferat pentru medii perturbate sau pentru aplicaii auto, unde funcionarea sigur este important.
CAN folosete protocolul CSMA/CD+AMP (Carrier Sense Multiple Access/ Collision Detection + Arbitration on Message Priority). nainte de a trimite un mesaj transmitorul CAN verific dac magistrala este liber, ncepe s transmit, apoi verific existena unei coliziuni. Acelai principiu este aplicat i la Ethernet, unde ca reacie la apariia unei coliziuni transmitoarele abandoneaz transmisia i rencearc dup perioade aleatoare de timp, ceea ce face ca transmisia s aib probleme la un numr mare de dispozitive cuplate pe linie. La CAN este aplicat un alt principiu de reacie dup detectarea unei coliziuni. Fiecare mesaj
55
CAN conine un identificator (11 sau 29 bii) i toate nodurile receptoare recepioneaz mesajul i i aplic un test de acceptan. Dac identificatorul este recunoscut ca relevant mesajul este procesat, dac nu este ignorat. Prioritatea unui mesaj este dat de identificator, cu ct identificatorul reprezint un numr mai mic, cu att prioritatea este mai mare. Mesajele cu prioritate mai mic ateapt eliberarea magistralei pentru a fi trimise.
Linia de transmisie fiind unic pentru toate nodurile (dispozitivele cuplate), nivelul de 0 se numete dominant i nivelul 1 recesiv. Dac 2 noduri transmit simultan unul valoarea 0 i unul valoarea 1, linia trece n 0 (de aceea nivelul 0 se numete dominant). n acest mod se poate detecta o coliziune, cnd un transmitor transmite un nivel de 1 i citete pe linie un nivel de 0 nseamn c mai multe transmitoare transmit simultan. n acest caz transmitorul cu prioritate mai mic abandoneaz transferul.
Dou noduri nu pot transmite mesaje cu acelai identificator. Dac acest lucru se ntmpl totui i transmiterea este simultan nu se poate detecta coliziunea. Coliziunea este detectat mai trziu, n cmpul de date i se utilizeaz mecanismul de gestionare a erorilor CAN i nu mecanismul de arbitrare.
Cadrele CAN pot fi de 2 feluri: Cadre de date Cadre de cerere de informaie (Remote Frame). Un nod poate cere informaii transmind un astfel de cadru. Nodul care dispune de aceast informaie trebuie s rspund. Magistrala CAN poate fi: CAN standard (Versiunea 2.0 A) cu identificator pe 11 bii CAN extins (Versiunea 2.0 B) cu identificator pe 29 de bii.
Structura unui cadru CAN 2.0A este dat n figura 4.11.
Figura 4.11: Cadru CAN 2.0A
SOF- cmp de start (Start of Frame). RTR- (Remote Transmission Request) un bit care indic un cadru de cerere de informaie. Cadrele de cerere de informaii nu au cmp de date. R0, R1- rezervai DLC- (Data Length Code) indic numrul de octei n cmpul de date.
SOF Cmp de control Cmp de date 0-8 Cmp ACK EOF INT Octei CRC
Identificator 11 bii RTR R1 R0 DLC Date CRC
Cmp de arbitrare
Nivel 0 logic (dominant)
Nivel 1 logic (recesiv) Bus liber
56
CRC- cmp de 15 bii de verificare a corectitudinii datelor prin cod ciclic. Cmpul CRC se termin cu un bit recesiv. ACK- este un cmp de confirmare format din 2 bii, primul este un bit dominant trimis de toate nodurile care au primit mesajul iar al doilea bit este recesiv i este un bit de delimitare. EOF- (End of Frame) este format din 7 bii recesivi INT- (INTermission) const n 3 bii recesivi dup care magistrala se consider liber.
Cadrul de date CAN 2.0B este la fel cu cadrul de date 2.0A cu excepia cmpului de arbitrare care este reprezentat n figura 4.12 i care conine 2 zone, una cu identificatorul pe 11 bii i una cu restul de 18 bii de identificare:
Figura 4.12: Cmp de identificare ntr-un cadru CAN 2.0B
SRR- (Substitute Remote Request) este un bit recesiv. Dac se realizeaz arbitrarea ntre un cadru 2.0A i unul 2.0B mesajul 2.0A va avea prioritate mai mare dac identificatorul de 11 bii este identic. IDE- (Identifier Extension) este un bit care indic dac cadrul de 2.0A sau 2.0B.
Observaii privind compatibilitatea ntre 2.0A i 2.0B
Controllerele 2.0B (numite active) pot transmite sau recepiona mesaje cu ambele structuri.
Controllerele 2.0A obinuite, la recepia unui cadru 2.0B vor genera o eroare. Exist controllere 2.0A (numite pasive) care pot recepiona cadre 2.0B dar le vor
ignora.
Cadrul de cerere de informaie are structura unui cadru de date cu bitul RTR recesiv i fr cmp de date, figura 4.13.
Figura 4.13: Cadrul CAN de cerere de informaie
CAN este conceput pentru a compensa timpii de ntrziere datorate liniilor lungi i a diferenelor dintre tactele fiecrui nod. Tactul CAN d cuanta de timp T cu care se formeaz bitul CAN. Fiecare timp de bit este mprit n 4 sectoare, figura 4.14.
Segmentul SYNC de sincronizare este intervalul de timp n care se ateapt frontul activ al impulsului. Are valoarea T.
SRR IDEIdentificator de 11 bii Identificator de 18 bii RTR
Cmp de arbitrare
Cmp ACK EOF INT CRC
SOF
RTR
Cmp de arbitrare
CRCIdentificator 11 bii
57
Segmentul de propagare compenseaz ntrzierea pe linie i se poate programa ntre 1 i 8T.
Figura 4.14: Timpul de bit
Segmentele FAZA 1 i FAZA 2 sunt folosite pentru resincronizare. Resincronizarea se face pe frontul de la nivel recesiv la dominant (descresctor). Se definete SJW (Synchronisation Jump Width) ca numrul maxim de cuante T cu care se poate face resincronizarea. Dac transmitorul este mai rapid (bit de date mai scurt) frontul descresctor apare n FAZA 1 i FAZA 1 se dubleaz sau se prelungete cu o cuant T (sau cu mai multe, dar nu mai mult de SJW). Dac frontul descresctor apare n FAZA 2, FAZA 2 se scurteaz. Resincronizarea este necesar pentru recepia corect a biilor recepionai. Codarea la transmisie se face n cod NRZ cu mpnare de bii (bit stuffing) i este posibil recepia mai multor bii cu aceeai valoare logic.
Codarea NRZ asociaz bitului de 1 un nivel recesiv i bitului de 0 un nivel dominant. Dac n irul de date apar mai mult de 5 valori cu acelai nivel logic se introduce automat un bit de valoare contrar.
Detectarea erorilor i semnalizarea lor face din CAN o magistral de mare siguran. Nodurile defecte nu afecteaz traficul pe magistral. Procesarea erorilor implic urmtorii pai:
Eroarea este detectat de controller (la recepie sau transmisie) Se transmite un cadru de eroare Se incrementeaz un registru de eroare Mesajul eronat este abandonat n toate nodurile, apoi este retransmis.
Erorile detectate pot fi:
Erori de bit 1. Eroare de mpnare (bit stuffing). Codarea datelor se face NRZ cu mpnare de
bii prin adugarea unui 1 dup 5 bii consecutivi de 0 sau un 0 dup 5 bii consecutivi de 1. Nodul de recepie detecteaz un numr mai mare de 5 bii consecutivi cu aceeai valoare logic.
2. Eroare de bit, cnd un transmitor care citete tot ce transmite detecteaz o nepotrivire ntre ceea ce a transmis i ceea ce a recepionat (n alt parte dect
Bit de date recesiv transmis pe linie
SYNC PROP FAZA1 FAZA 2
Timp de bit
Punct de eantionare pentru sincronizare
58
n cmpul de arbitrare sau n cmpul de confirmare ACK) genereaz o condiie de eroare.
Erori de mesaj
1. Eroare de sum de control CRC 2. Eroare de cadrare. n cadrul CAN se transmit anumii bii cu valori predefinite.
Dac receptorul detecteaz un astfel de bit eronat se genereaz o eroare (Frame, Format sau Form Error).
3. Eroare de confirmare, dac transmitorul determin c mesajul nu a fost recepionat (nu s-a recepionat ACK).
Un modul CAN poate fi din punctul de vedere al gestionrii erorilor n una dintre 3 stri: Stare activ, care este modul de operare normal n care apariia unei erori
poziioneaz un bit de eroare Stare pasiv, este un mod n care poate opera normal, n condiiile n care nodul a avut
probleme dese de transmisie sau recepie a mesajelor. Blocat, nu se pot transmite sau recepiona mesaje. Nodul poate iei din aceast stare printr-un RESET comandat de calculatorul gazd.
Numrtorul de erori se modific n urmtoarele condiii: La o recepie eronat numrtorul rx_count se incrementeaz cu 1 La recepia unui bit dominant dup transmiterea unui bit de eroare, rx_count se
incrementeaz cu 8. Cnd un transmitor trimite un bit de eroare tx_count se incrementeaz cu 8. Dup recepia cu succes a unui cadru rx_count se decrementeaz cu 1. Nodurile accept maximum 7 bii dominani dup transmisia unui bit de eroare. Dac
se transmit / recepioneaz mai mult de 14 bii dominani sau 8 bii dominani urmai de un bit de eroare rx_count se incrementeaz cu 8.
Cadrul de eroare este reprezentat n figura 4.15.
Figura 4.15: Cadrul CAN de eroare
Flagul de eroare activ conine 6 bii dominani Flagul de eroare pasiv conine 6 bii recesivi, dac nu sunt suprascrii de bii
dominani de la alte noduri, ntr-o stare de eroare activ (mai grav).
Cadru de eroare
Flag de eroare
Delimitator
59
Observaie: acest cadru nu respect regula de codare CAN cu bit stuffing pentru c delimitatorul este format din 8 bii recesivi.
Un cadru de eroare este transmis cnd un nod detecteaz o eroare. Cadrul transmis nu permite altor noduri s accepte mesajul eronat. Dup transmisia cadrului de eroare toate nodurile detecteaz violarea de cod i transmit cadre de eroare. Dup acest pas transmisia de cadre se reia. Dac cadrul de eroare este pasiv (6 bii recesivi) magistrala nu se blocheaz.
Tipuri de CAN:
1. Basic CAN echipeaz controllerele mai ieftine. Conine 2 buffere de recepie de tip FIFO i unul de transmisie. La recepie n timp de MC citete un mesaj, un altul se poate recepiona n FIFO. Mesajele recepionate sunt verificate cu un filtru de acceptan de 2 octei pentru a se identifica mesajele care trebuie preluate. Verificarea identificatorilor este hardware i se face pe mai puini bii pentru a mri viteza. Verificarea final a identificatorilor se face software. Cadrele de cerere de informaie nu sunt generate hardware, ele trebuie generate prin program.
2. Full CAN conine un set de buffere de cadre numite csue potale. La iniializare fiecrei csue potale i se asigneaz un identificator. Cadrele de cerere de informaie sunt gestionate hardware. Filtrele de acceptan verific n ntregime identificatorii i recepia se face n csua potal de destinaie.
4.3.2.Transceiver CAN Microchip MCP2551
Circuitul transceiver CAN este o interfa ntre semnalele digitale de la nivelul MC i semnalul diferenial de magistral CAN. Transceiverul protejeaz MC de vrfurile de tensiune prezente pe magistrala CAN datorit EMI sau descrcrilor electrostatice. Principalele caracteristici ale circuitului sunt: Implementeaz standardul ISO 11898 pentru nivelul fizic de transmisie Viteza maxim de transfer este 1Mbps Panta semnalului emis pe magistral poate fi ajustat extern ceea ce reduce spectrul de frecven al perturbaiilor generate Detecteaz erorile de mas (permanent dominant) i decupleaz driverul de ieire Curentul de funcionare poate fi redus prin intrarea n starea de standby Are protecie la scurtcircuit, la supratensiune i la supratemperatur Se pot conecta pn la 112 noduri Gama de temperaturi de funcionare poate fi cea industrial (I) 40C la +85C sau cea extins (E) 40C la +125C Capsula este PDIP cu 8 pini
Schema bloc a circuitului este dat n figura 4.16.
Starea logic dominant este atunci cnd ntre CANH i CANL tensiunea diferenial este mai mare dect un prag (1,2V) iar starea recesiv cnd tensiunea diferenial este mai mic dect un prag (0V). Circuitul poate fi comandat s intre ntr-o stare cu consum redus (standby) printr-un nivel High pe pinul Rs. n mod standby circuitul citete magistrala CAN (mesaje
60
Low Speed). MC primete datele, supravegheaz magistrala i poate comanda viteza nominal, dar primul mesaj poate fi pierdut.
Figura 4.16: Schema bloc a transceiverului CAN MCP2551
Panta semnalelor emise pe magistral poate fi controlat cu un rezistor ntre pinul Rs i mas (control posibil n modul de lucru cu vitez mic). n modul High Speed CAN, pinul Rs se leag la mas. Dac durata inerii n 0 a magistralei depete 1,2ms (20 de bii dominani consecutivi) driverul de ieire este decuplat de la linie.
Dac circuitul se supranclzete (mai mult de 165C) circuitul de protecie decupleaz driverul de ieire pn le revenirea temperaturii la normal. Tensiunea de alimentare Vdd este de +5V (ntre 4,5V i 5,5V) iar tensiunea de referin este Vdd/2.
4.3.3.Exemplu de microcontroller cu CAN ncorporat
Microcontrollerul ATMEL AT90CAN32/64/128 a fost special conceput pentru aplicaii auto. Pe lng modulele interne comune pentru familia AT90, microcontrollerul are implementat un modul intern CAN 2.0B activ (poate lucra i cu cadrele CAN 2.0A), viteza de transfer maxim 1Mbps i buffere pentru 15 mesaje (Message Objects). Varianta AT90CAN32 dispune de 32K Bytes memorie Flash, iar celelalte variante 64K respectiv 128K.
Gama de temperaturi de lucru este pentru circuitele marcate cu T 40 la +85 grade Celsius, similar cu gama industrial dar cu calitate auto, la cele marcate cu T1 40 la +105 grade (gama auto redus) i Z pentru gama auto 40 la 125 grade.
MCP2551
Protecie termic
Control driver
Referin
CANH CANL
Receptor
TxDRs
RxD
Vref
Vdd
Vss
61
Microcontrollerul implementeaz pentru interfaa CAN nivelele ISO OSI: Nivel fizic: semnalizare la nivel fizic (subnivelul Physical Signalling PLS); Nivel Data Link: subnivelele Logical Link Control LLC i Medium Access Control MAC.
Nivelul de prioritate al mesajului este specificat n identificatorul mesajului. Prioritatea este cu att mai mare cu ct numrul binar care codific prioritatea este mai mic. Coliziunea este detectat prin citirea liniei. Dac un circuit CAN situat ntr-un nod pune pe linie o valoare recesiv i citete una dominant nseamn apariia unei coliziuni. Circuitele care detecteaz o coliziune devin receptoare ale mesajului n curs i rencearc transmisia doar dup eliberarea magistralei.
n figura 4.17 este dat diagrama de timp a unei arbitrri de magistral:
Figura 4.17: diagrama de timp a unei arbitrri de magistral
Modul de lucru cu csu potal (Message Objects i buffere de date) este artat n figura 4.18. n fiecare dintre cele 15 buffere din csua potal exist un mesaj de transmis sau recepionat mprit n date i informaii asupra mesajului (Message Object MOb) identificator, durate de bit, masc de acceptare. Csua potal permite compararea identificatorului mesajelor CAN recepionate cu identificatorii stocai n fiecare buffer i salvarea mesajelor cu acel identificator. La cadrele de cerere de informaie (Remote) se rspunde automat cu cadrul de date corespunztor. Acest mod de lucru permite reducerea activitii CPU, sarcinile fiind preluate hardware de csua potal.
Un MOb (Message Object) este un descriptor care permite utilizarea unui cadru CAN, prin descrierea cadrului ca un obiect. Fiecare MOb poate fi n una dintre strile (stabilite prin programare): Oprit; Transmisie; Recepie; Rspuns automat.
La transmisie fiecare MOb funcioneaz astfel: Se programeaz zona de identificare i zona de date; Canalul CAN verific toate MOb programate pentru transmisie i trimite cadrele ncepnd cu cel mai prioritar; Dup transmisia datelor se cere o ntrerupere.
Nod A /TxCAN Nod B /TxCAN
Bus CAN
Nodul A ctig magistrala
62
Figura 4.18: structura csuei potale CAN cu 15 buffere
La recepie fiecare MOb funcioneaz astfel: Se programeaz zona de identificare i masca de identificare; La recepia unui cadru CAN canalul CAN verific identificatorul i dac apare o coinciden salveaz cadrul. Numrul de octei de date este actualizat din cadrul recepionat; Dup recepia cadrului se cere o ntrerupere.
Canalul CAN poate lucra n urmtoarele moduri de lucru: Normal, transmisia i recepia pornite, tactul pornit; Standby, receptor oprit, transmitor oprit (nivel recesiv pe TxCAN intern), tactul pornit, informaiile din controller sunt accesibile; Ascultare, receptor pornit, transmitor oprit, numrtoare de erori invalidate.
Timpul de bit este realizat de canalul CAN coform cu figura 4.19. Dac frecvena CAN este 8MHz atunci debitul de informaie va fi de 1Mbps, fiecare bit este transmis cu 8 tacte, dac nu apare introducerea de tacte suplimentare. TSYNC este introdus pentru a sincroniza diferitele noduri. Segmentul de propagare TPRS este folosit pentru a compensa ntrzierile pe magistral. Punctul de eantionare este momentul n care se citete valoarea bitului. Timpii fazei 1 TPH1 i fazei 2 TPH2 pot fi unul scurtat i cellalt prelungit pentru a modifica poziia punctului de eantionare.
Sistemul de ntreruperi CAN cere o ntrerupere n urmtoarele cazuri: La recepia complet a unui mesaj; La transmisia complet a unui mesaj; La apariia unei erori: de bit, de mpnare (stuff), de CRC, de format, de confirmare); La umplerea unui buffer de mesaj La trecerea magistralei n stare OFF;
Csua potal
Canal CAN -mod de lucru- -timp de bit-
RX TX
Buffer date 14
Message Object 14
Buffer date 1
Message Object 1
Buffer date 0
Message Object 0
63
La o eroare de Overrun a timerului CAN.
Figura 4.19: Timpul de bit
n figura 4.20 se poate vedea o schem electric a unui microcontroller AT90CAN cuplat la magistrala CAN prin intermediul unui transceiver CAN (www.olimex.com).
Figura 4.20: Schema electric a unui microcontroller CAN cu transceiver
TSYNC TPRS TPHS1 TPHS2
Timpul de bit
FCAN
Punct de eantionare
Punct de transmisie
64
4.4.Magistrala Flex Ray
4.4.1. Descriere
Flex Ray este o nou arhitectur de interfa n care viteza de transfer ajunge la 10Mbps, cu elemente de redundan pentru a asigura o siguran mare de utilizare, dedicat industriei auto. Arhitectura magistralei este dat n figura 4.21:
Figura 4.21: Arhitectura magistralei Flex Ray
Topologia reelei n cazul unui singur canal poate fi de tip magistral liniar sau stea multipl. n cazul a 2 canale cu aceleai configuraii de tip magistral sau stea se pot construi reele n care canalele sunt redundante. n cazul reelelor cu 2 canale redundante un canal se poate defecta i sistemul i pstreaz funcionalitatea. La nivel fizic interfaa admite un gardian de magistral care realizeaz detecia erorilor n domeniul timp i care interacioneaz cu gazda prin comunicarea erorilor, configurare, activare sau dezactivare.
Blocul de generare al protocolului realizeaz mesajul Flex Ray care este detaliat n figura 4.22:
Figura 4.22: Cadrul Flex Ray
Gazda
Interfaa cu gazda
Generarea protocolului
Interfaa cu canalul fizic
Canal A Canal B
Segment static Segment dinamic Simbol Timp bus inactiv
Sloturi statice Minisloturi
Uniti de informaie numite microtick
65
Cadrul conine:
Un bit de gestionare a reelei Un bit care indic un cadru gol Un bit de cadrare Identificator de cadru pe 12 bii Lungimea cadrului (n octei) codificat pe 7 bii CRC pentru antet pe 11 bii Identificator de mesaj (opional) pe 16 bii Date, lungime variabil CRC pentru date pe 24 de bii
Comunicarea este de 2 tipuri dup modul de iniiere:
1. Comunicat iniiat la anumite momente de timp n care ciclul de comunicaii ncepe periodic, de exemplu la ntreruperile unui timer.
2. Comunicare iniiat de un eveniment extern
Mesajele se transmit n cadre. Cadrele pot fi transmise astfel: 1. Cadrele statice se transmit repetitiv, de exemplu cadrele de control a funcionrii unui
subansamblu 2. Cadrele dinamice se transmit la cerere, de exemplu informaia de diagnostic.
Fluxul de date poate fi urmrit n figura 4.23.
Figura 4.23: Fluxul de date
Structura segmentelor statice transmise n cazul comunicaiei pe 2 canale este prezentat n figura 4.24.
Gazda
Interfaa cu gazda
Generarea protocolului
Interfaa cu canalul fizic
Transmisie Recepie
Modulul de ataare / separare protocol separ antetul de date i trimite datele ctre gazd la recepie i adaug informaia de protocol la transmisie.
Antet pe 5 octei Date 0-254 octei + CRC
66
Figura 4.24: Segment static
Lungimea unui slot static este constant. Un mesaj poate avea un numr variabil de sloturi. Numrtorul de sloturi se incrementeaz cu 1 dup fiecare slot. La transmisia unui segment dinamic alocarea timpului pentru cele 2 canale este dinamic, figura 4.25.
Figura 4.25: Segment dinamic
Sincronizarea se realizeaz de ctre generatorul de protocol la nivel de unitate de informaie (microtick). Cea mai mare deviaie permis ntre tactele nodurilor conectate este de o microsecund. Sincronizarea se execut cu ajutorul unor cadre de sincronizare trimise de noduri.
Serviciul de gestionare al erorilor se bazeaz pe principiul de a nu renuna niciodat la transferul unui mesaj. O eroare grav este de exemplu pierderea sincronizrii (prea puine cadre de sincronizare recepionate de la un nod).
Serviciul de simboluri contribuie la mrirea siguranei n funcionare. Simbolurile sunt trimise la sfritul cadrului de ctre controller i trebuie recepionate de ctre controllerul destinaie formnd un sistem de supraveghere de tip Watchdog. Simbolurile pot fi de stare normal sau de alarm.
Serviciul de economie de energie este folosit pentru micorarea energiei consumate. Ieirea din starea de adormit se poate face la cererea oricrui nod care trimite un cadru de trezire.
Serviciul de diagnostic conine 2 tipuri de teste: Monitorizarea cu gardianul de magistral, executat de generatorul de protocol Teste de comunicaie solicitate de gazd.
Slot static 1 Slot static 2
1 2 3
Cadru 1
Cadru 1
Cadru 2
Cadru 2
Numrtor de sloturi
Canal A Canal B
Segment static
m +1 +2 +3
m +1 +2 +3 Numrtor de sloturi A
Canal A Canal B
Numrtor de sloturi B
Cadru m+3
Cadru m Cadru m+3
67
Rezultatele testelor sunt comunicate gazdei care poate decide excluderea nodului din comunicaie.
n cazul n care comunicaia este iniiat de un eveniment extern (Event Triggered Mode) cadrul curent este abandonat, figura 4.26.
Figura 4.26: Cadrul iniiat de un eveniment extern
4.4.2.Interfee specializate i microcontrollere FlexRay
Fujitsu MB88121 este un circuit specializat care implementeaz protocolul FlexRay i adaug conectivitatea FlexRay microcontrollerelor pe 16 sau 32 de bii. Circuitul are dou canale FlexRay i un buffer de mesaje de 8kByte. Interfaa de cuplare cu microcontrollerele este pe magistrala paralel extern multiplexat sau nemultiplexat sau prin interfaa serial SPI. Tipul de magistral de conectare se poate selecta cu valori logice la pinii de mod sau prin programare. Modul de transfer poate fi programat, prin ntreruperi sau DMA. Circuitul poate fi alimentat n gama 3-5,5V, iar tactul este de 80MHz realizat prin multiplicare intern cu o bucl PLL, tactul extern fiind de 4, 5, 8 sau 10MHz stabilizat cu cuar sau provenind de la microcontrollerul gazd. O schem bloc simplificat este dat n figura 4.27.
Figura 4.27: Schema bloc simplificat a interfeei specializate FlexRay
Segment static Segment dinamic Pauz Simbol Timp ntre cadre Segment static
Eveniment extern
Masterul abandoneaz cadrul curent
Slave-ul abandoneaz cadrul dup recepia simbolului
Cadrul abandonat Cadrul iniiat de eveniment
Transceivere FlexRay Microcontroller gazd
MB88121
Port A
Port B
RAM A
RAM B
Gestionare mesaje
Interfaa cu microcontrollerul
Buffere de date
RAM pentru mesaje
Suport DMA i ntreruperi
Gestionarea erorilor
Gestionarea tactului i a timpului
Gestionarea erorilor
68
O schem de conectare pe magistrala extern nemultiplexat ntre un microcontroller i interfaa FlexRay este dat n figura 4.28.
Conectarea permite lucrul prin DMA solicitat de interfa cu o cerere DMA (DMA_REQ) i lucrul n ntreruperi solicitat cu semnalele INT0, INT1 i INT2. Tactul de magistral i semnalele de comand a sensului de transfer sunt generate de microcontrollerul gazd (BCLK, RD, WR). Interfaa este selectat cu semnalul CS. Modul de lucru al interfeei cu transfer pe magistral este comandat prin nivelul logic al semnalelor MD.
Figura 4.28: Schema de conectare ntre un microcontroller i interfaa FlexRay pe magistrala extern
Pentru punerea la punct a aplicaiilor Fujitsu pune la dispoziia utilizatorilor un driver pentru FlexRay inclusiv codul surs i exemple - software pentru o punte CAN- FlexRay. Se pun de asemenea la dispoziie contra cost sisteme de evaluare i starter kit-uri.
Un microcontroller cu FlexRay integrat este modelul MB91F465XA de la Fujitsu. Schema bloc a acestui microcontroller este dat n figura 4.29.
Acest nou microcontroller din familia Fujitsu este alimentat cu o singur tensiune, ntre 3 i 5,5V iar tactul intern este de 100MHz obinut prin multiplicare cu un PLL de la un cuar extern de 4MHz. Memoria Flash poate fi protejat la citire. Microcontrollerul este echipat cu cele trei interfee utilizate n tehnica auto: FlexRay (2 canale), CAN (2 canale, fiecare cu cte 32 de buffere de mesaje) i LIN (3 canale). Modulele interne asigur o gam larg de funcionaliti: 17 canale de conversie analog digital pe 10 bii, 12 canale PPG (Generator programabil de impulsuri), 6 canale cu registre de comparare i generare a unui semnal la coinciden, 8 canale de captur (memorarea valorii unui numrtor la apariia unui semnal din exterior), watchdog hardware, ceas de timp real, interfa I2C, etc.
69
Figura 4.29: Schema bloc a microcontrollerului Fujitsu MB91F465XA
La Automotive Engineering Exposition n Japonia (http://jp.fujitsu.com/microelectronics/events/exhibition/2007aee.html) n 2007 a fost prezentat un demonstrator al modului de lucru cu magistrala FlexRay, figura 4.30.
Figura 4.30: Demonstrator al magistralei FlexRay
MB91F465XA
Modulator de tact
Supervizor de tact
FlexRay A FlexRay B
CAN A CAN B
LIN A LIN B LIN C
I2C
CPU 32 de bii Core FR70 Tact 100MHz
Flash 544k
SRAM 32k
Module integrate: -2 timere de 8 canale,
16 bii -PPG 12 canale
-11 canale cerere ntrerupere
-5 canale DMA -Ceas de timp real
-Watchdog hardware -17 canale ADC -8 canale Input
Capture -6 canale Output
Compare
70
4.5. Monitorizarea presiunii n pneuri (Tire Pressure Monitoring System TPMS)
n prezent toate autovehiculele care se fabric au ncorporate elemente de siguran minimale, de exemplu airbag-uri sau ABS. Presiunea incorect n pneuri devine o cauz important a accidentelor i de asemenea o cauz a degajrii suplimentare de bioxid de carbon (o presiune mai mic cu 15% produce un consum mai mare de combustibil cu 5% i o degajare suplimentar de bioxid de carbon). Din acest motiv sistemul de msurare automat a presiunii n pneuri a devenit obligatorii n SUA ncepnd din 2008 i se preconizeaz s devin obligatoriu n Europa ncepnd din 2012.
Monitorizarea presiunii se poate face cu metode indirecte pe baza unor parametri preluai din exterior, cum ar fi viteza de rotaie preluat de la senzorii ABS, diametrul roii sau vibraiile n mers. Aceste metode au avantajul unui pre mic dar acurateea de msurare este de asemenea mic. Metodele directe implic existena unui traductor de presiune, microcontroller i emitor n pneu i a unui sistem de centralizare de date cu receptor i microcontroller cuplat pe o magistral a mainii. Dezavantajele sunt preul mai mare i nglobarea unui dispozitiv electronic n pneu inclusiv cu alimentare proprie.
O schem bloc a unui sistem de msur propus de ATMEL (www.atmel.com) care asigur un consum redus de energie (bateria dureaz pn la 10 ani) este dat n figura 4.31.
Figura 4.31: Schema bloc a sistemului de monitorizare a presiunii n pneuri
Modulul din pneu conine un MC ATMEL ATAR862 cu transmitor de date integrat care preia datele de la un senzor de presiune. Pentru c este foarte simplu s se mai ataeze un senzor schema a fost completat cu un senzor de temperatur a aerului din anvelop. Microcontrollerul este oprit pn apare o cerere de msurare transmis de MC de control prin driver-ul de anten ATMEL ATA5286 i recepionat de receptorul ATMEL ATA5283 din pneu. Dup ce a efectuat msurarea datele sunt transmise prin transmitorul integrat i recepionate de receptorul ATMEL T5743.
Wake-up125kHz
Date 868MHz sau 433MHz
n pneu
Receptor wake-up ATA5283
Microcontroller cu transmitor 868MHz ATAR862
Senzor de presiune
Senzor de temperatur Alimentare
Centralizator al msurrilor
Driver de anten ATA5286
Receptor T5743
MC de control LIN sau CAN
71
ATAR862 este un circuit care conine 3 module n aceeai capsul: transmitor UHF (n gama de frecvene 868-928MHz) cu modulare ASK/FSK, un microcontroller de 4 bii i o memorie EEPROM de 512 bii. Circuitul este ncapsulat ntr-o capsul mic de 24 de pini SSO24. Alimentarea este ntre 2-4V, fcnd posibil alimentarea cu o baterie Li cu o singur celul, curentul absorbit fiind de 8,5mA. Gama de temperaturi este cea solicitat de domeniul auto, fiind astfel posibil montarea n anvelop. Debitul maxim de informaie este 32kBaud.
Schema bloc a circuitului ATAR862 este dat n figura 4.32.
Figura 4.32: Schema bloc a circuitului ATAR862
Circuitul Timer 2 are rolul de a coda Manchester sau n cod Bifazic irul de date seriale primite la SO i le trimite la ieirea timerului 2. Reciproc, Timer-ul 3 poate decoda irul de date codate Manchester sau Bifazic de la ieirea SO i le trimite la ieirea timerului 3. Astfel ATAR862 poate fi folosit att la recepia de date (dar nu are bloc de recepie de RF) ct i la transmiterea lor. Microcontrollerul are un program scris cu masc n ROM. Senzorii care se cupleaz trebuie s fie cu ieire serial, deoarece nu exist un modul intern de conversie analog digital. La transmisie ieirea SO constituie intrarea blocului de emisie. Cele 3 timere i interfaa serial pot lucra ntr-o multitudine de moduri de lucru din care a fost menionat doar unul, cel mai simplu. Un exemplu de codare Manchester este dat n figura 4.33.
SC este tactul serial iar SO ieirea de date seriale codate NRZ. La ieirea timerului 3 TO3 semnalul este codat Manchester. Decodarea este ceva mai complicat, timerul 3 avnd la nceput o perioad de sincronizare cu datele recepionate.
ATAR862 PLL Amplificator anten Enable
Microcontroller CPU 4 bii ROM 4kx8bii RAM 256x4bii
Timer 1 (Watch dog)
Timer 2 8/12 bii
Timer 3 (8 bii)
Interfa serial
Port 1 (2 linii)
Port 2 (4 linii)
Port 4 (4 linii/ funcii alternative)
Port 5 (3 linii/ funcii alternative)
Port 6 (2 linii/ funcii alternative)
EEPROM 32x16bii
72
Figura 4.33: Diagrama de timp pentru codarea Manchester
Unele dintre liniile porturilor paralele pot fi utilizate ca cereri de ntrerupere (de exemplu pentru ieirea din mod Sleep) iar alte linii pot fi prevzute cu microntreruptoare i folosite pentru configurare. Intrarea n mod Sleep se face n urma execuiei unei instruciuni Sleep. Modul Sleep poate avea dou variante, cu tactul pornit i cu tactul oprit, n aceast a doua variant consumul fiind sub 1A.
Datele emise de ATAR862 sunt recepionate de circuitul T5743, un circuit cu 20 de terminale, care este n esen un receptor ASK/FSK cu bucl PLL pentru semnale codate Manchester sau n cod bifazic cu debitul maxim de 10kBd. Schema bloc a receptorului este dat n figura 4.34.
Figura 4.34: Schema bloc a receptorului de date T5743
Antena este cuplat la un amplificator cu zgomot redus (LNA Low Noise Amplifier). Structura circuitului este de heterodin n care oscilatorul local genereaz frecvena purttoarei prin bucla PLL. Schema este completat cu un oscilator controlat prin tensiune (VCO Voltage Controlled Oscillator), un filtru trece band FTB, un amplificator AMP i un demodulator DEMOD. Circuitul este controlat de un microcontroller MC prin 5 linii de comand i stare. Datele recepionate sunt trimise serial pe dou linii (date i tact). Circuitul se poate programa cu date seriale i tact cu sensul spre circuit pe aceleai linii.
Tact SC SO TO3
1 1 0 0
T5743
LNA X
FTB
AMP
DEMOD Control
VCO
PLL
MC
73
Circuitul receptor ATA5283 este folosit pentru trezirea circuitului ATAR862 din modul Sleep. Circuitul are 8 terminale i conine un amplificator de intrare pentru amplificarea semnalului emis pe frecvena 125kHz i modulat n amplitudine (ASK). Dac nu exist purttoare circuitul ateapt n stand by. Circuitul conine un bloc de detecie a unui preambul (192 perioade nentrerupte ale purttoarei) i dup recepia acestui preambul circuitul devine activ.
Figura 4.35: Protocolul de wakeup i transfer de date la ATA5283
Dup recepia preambulului se activeaz blocul de control al amplificrii n amplificatorul de intrare (dup 512 perioade ale purttoarei) i dup 704 perioade ATA5283 genereaz un semnal de Wakeup pentru microcontroller. n stare inactiv circuitul consum 0,5A, dac este pornit controlul automat al amplificrii 1A iar n mod recepie 2A. Dup preambul se recepioneaz datele modulate n amplitudine conform diagramei de semnal din figura 4.35.
Figura 4.36: Sistem ATAK5276-83 pentru msurarea presiunii n pneuri
Semnal ASK Wakeup Date
704 perioade
Emitor pentru wakeup i MC ATAR862, pentru montare n pneuri, alimentare cu baterie
Antene de emisie wakeup i recepie date
Receptor de date i driver de anten
74
Emitorul ATA5276 poate transmite date modulate n amplitudine pe frecvena de 125kHz cu de bitul maxim de 4kBd. Circuitul poate fi alimentat n gama 8V-24V pentru a putea fi conectat direct la bateria autovehiculului. Caracteristicile electrice i de temperatur sunt specifice domeniului auto. Circuitul are 20 terminale i conine un amplificator de anten comandat digital. Dup RESET circuitul este n standby pentru un consum minim, stare din care iese la primirea datelor pe intrarea serial DIO, diagramele de timp fiind asemntoare cu cele din figura anterioar, sensul fiind de transmisie a datelor.
Dup transmisia datelor (indicat de faptul c linia DIO rmne n stare unu logic un timp de 16ms) circuitul confirm transmisia punnd linia DIO n zero timp de 0,256ms. Dac exist o eroare de transmisie (cum ar fi de exemplu scurtcircuitarea bobinei de emisie), linia DIO este pus n zero un timp de 0,128ms, dup terminarea transmisiei.
ATMEL ofer un sistem complet hardware i software pentru msurarea presiunii n pneuri (ATAK5276-83), figura 4.36.
4.6.Msurarea nclinaiei autovehiculului cu un sistem giroscopic
Sistemul de msurare format dintr-un senzor unghiular i dispozitivul de procesare a datelor are ca scop informarea oferului asupra unghiului de nclinaie al autovehiculului. oferul este avertizat la atingerea unui unghi de nclinaie critic care poate avea ca i consecin rostogolirea autovehiculului. n acest subcapitol este prezentat o realizare a unui grup de studeni ndrumat de autori i de un specialist de la firma Fujitsu.
Figura 4.37: Unghiul de nclinaie a unui automobil
Afiarea unghiului de nclinaie este realizat printr-un afior grafic n dou moduri, mod grafic pentru o vizualizare intuitiv i n mod caracter pentru afiarea numeric a unghiului de nclinaie. De asemenea sistemul este prevzut cu un generator de sunet, pentru avertizare sonor n cazul n care sistemul depete unghiul de nclinaie periculos.
O problem major a sistemului de msurare o reprezint acumularea erorilor, deoarece sistemul calculeaz unghiul de nclinare prin adunri succesive. Pentru obinerea stabilitii sistemului de msurare este necesar realizarea unei transmisii analogice de calitate ntre senzor i microcontroller, precum i gsirea unei soluii de calibrare automat a senzorului principal. Pentru determinarea stabilitii dinamice a fost implementat un sistem de testare acionat de un motor pas cu pas i aplicarea unor filtre software pe semnalul analogic,
75
rezultatele obinute fiind n final comparate. De asemenea s-a adugat la sistemul de msurare un senzor mecanic auxiliar de detecie a poziiei orizontale cu scopul de calibrare a senzorului principal.
Sistemul de test a fost implementat cu un sistem de dezvoltare Fujitsu echipat cu un microcontroller pe 16 biti MB90F352.
4.6.1. Senzorul giroscopic
Senzorii giroscopici vibratori sunt senzori unghiulari care au la baz fora Coriolis generat cnd un obiect n micare este rotit n jurul unei axe. Senzorii vibratori piezoelectrici detecteaz fora Coriolis folosind ca element rezonator un material piezoelectric. Pentru teste a fost folosit senzorul giroscopic S1BG de la Fujitsu. [2].
Figura 4.38 ilustreaz principiul de operare a senzorului piezoelectric vibrator. Cnd elementul piezoelectric format din dou lamele este rotit n jurul axei Z n timp ce pe axa X este prezent o vibraie de operare, datorit forei Coriolis pe axa Y apare o vibraie secundar. Msurnd aceast vibraie putem obine mrimea vitezei unghiulare cu care a fost rotit senzorul.
Figura 4.38: Principiul de funcionare a senzorului giroscopic
Unghiul de nclinare trebuie calculat din informaia (viteza unghiular) furnizat de senzor prin produsul dintre viteza unghiular i perioada de eantionare:
= t - unghi de nclinare - viteza unghiular t - perioada de eantionare
n figura 4.39 se prezint eantionarea semnalului furnizat de senzorul unghiular. Vcc - tensiunea de alimentare a senzorului Unull - tensiunea de nul
x
zy
Detection Operation
Operation mode
Detection mode
76
0
Unull
Vcc
T(ms)
Vout
1 5 10 15
Figura 4.39: Eantionarea semnalului de ieire a senzorului unghiular
S-a ales o rat de eantionare de 1kHz, valoare propus de ctre productor. Rata de eantionare este suficient de mare pentru a urmrii eficient semnalul de variaie unghiular.
ZpZp-1Zp-2
Zp-3
Zp+1
Zp+2
Zp+3 Semnal eantionat
1 cuant1 ms
Zp valoare de nul
Figura 4.40: Semnalul eantionat i cuantizat
Valoarea unghiului de nclinare se calculeaz prin adunri succesive a variaiilor eantioanelor curente de la valoare Zp , valoare corespunztoare tensiunii de nul i nmulit cu constata de transformare tensiune vitez unghiular, figura 4.40. Constanta de transformare tensiune-vitez unghiular face corespondena dintre tensiunea de ieire a senzorului i valorile date de convertorul analog digital. Acesta se calculeaz din parametrii electrici ai senzorului.
Smpl_cntr = 0;Acc = 0;
NR_SMPL = 10;
Acc += ADC_Data;Smpl_cntr++;
Smpl_cntr < NR_SMPL da
Zp= round(acc / NR_SMPL)
nu
Figura 4.41: Algoritm de calcul a valorii de nul
77
Dup rularea ctorva teste s-a constatat c la fluctuaii de alimentare a modulului valoarea de nul Zp nu este constant. Valoarea de nul se determin prin citirea ieirii convertorului analog digital cnd senzorul se afl n stare nemicat. Pentru obinerea corect a valorii de nul s-a implementat o procedur de calibrare software cu eantionare multipl i mediere, figura 4.41. Prin parametrul NR_SMPL se definete numrul de eantioane din care se calculeaz prin rotunjire valoarea de nul Zp .
4.6.2.Sistemul de msurare i afiare
Figura 4.42: Schema bloc a sistemului de msurare
Microcontrollerul preia semnalul de la senzorul giroscopic (figura 4.42), realizeaz o conversie A/N pe 10 bii i calculeaz unghiul de nclinare. Unghiul de nclinare este afiat pe un afior grafic 64x128 iar depirea unui anumit unghi limit este semnalizat printr-un semnal acustic cu un buzzer. Sistemul funcioneaz independent de calculator, dar n stadiul de testare i analiz a stabilitii datele au fost transmise ctre un calculator prin interfaa serial RS232.
Afiarea (figura 4.43) s-a realizat cu un afior grafic cu cristale lichide suficient de mare pentru vizualizarea in mod grafic si in mod text a unghiului de nclinare a sistemului.
Figura 4.43: Afiarea unghiului de nclinare n mod grafic (stnga) i n mod caracter (dreapta), i o fotografie a afiajului
Afiarea n mod grafic const din micarea (rotirea) unui obiect pe afior, acesta practic urmrind orizontul in funcia datelor furnizate de senzorul giroscopic. Afiarea grafic a fost creat din dou pri, fundalul nemicat si dou indicatoare care urmresc poziia orizontal i indic unghiul de nclinaie curent. Pe fundal sunt marcate unghiul de nclinaie. Punctele de
Sistem de
dezvoltar
Afior grafic 64x128
Senzor giroscopic
RS232
78
marcare sunt puse din zece in zece grade pn la 40 de grade, poziia orizontal fiind marcat cu puncte mai mari.
Peste fundal se suprapun indicatoarele specifice pentru fiecare unghi. Se reprezint indicatoarele cu rezoluia de cinci grade. Din motive de economie a memoriei ocupate partea de afior grafic s-a mprit in 4 cadrane, desennd indicatoare doar pentru un cadran. Prin operaii de oglindire pe orizontala si verticala s-au alctuit imaginile aferente pentru celelalte cadrane. Astfel din desenele realizate pentru cadranul 1 printr-o operaie de oglindire verticala se ajunge la o imagine n cadranul 2, printr-o operaie de oglindire orizontala la cadranul 4 i prin aplicarea ambelor operaii la cadranul 3. Afiarea n mod caracter a fost realizat prin stocarea n memoria microcontrollerului a imaginilor grafice ale cifrelor, ceea ce asigur o vitez mare de afiare cu un consum de memorie mare.
Avnd n vedere c sistemul conine ca element traductor un senzor giroscopic, la pornirea sistemului nu se cunoate unghiul de nclinare, ceea ce este un dezavantaj al acestui sistem. Prin rularea ctorva teste s-a constatat de asemenea c apar erori, iar calcularea unghiului de nclinare are la baz adunri succesive a eantioanelor curente, ca urmare se poate ajunge la rezultate incorecte prin acumularea erorilor de msurare.
Pornind din acest neajuns al acestui senzor s-a constatat necesitatea implementrii unui senzor auxiliar de detecie a poziiei orizontale care are rolul de calibrare a senzorului principal n momentul n care unghiul de nclinare este zero.
Metoda de testare static a sistemului de msurare a nclinaiei const din msurri succesive ale semnalului furnizat de senzorul giroscopic n stare fix i trimiterea datelor la calculator pentru analiz prin interfaa RS232., datele fiind recepionate de un program specializat de citire a portului serial.
Figura 4.44: Date recepionate pentru 1000 msurtori, senzor nemicat
n figura 4.44 pe coordonata vertical este prezentat valoarea eantionului curent furnizat de convertorul analog digital (stnga), precum i nivelul de tensiune al eantionului (dreapta). Prima msurtoare a avut datele reprezentate n figura 4.44 i arat c peste semnalul util care ar trebui s fie constant i egal cu valoarea de nul, se suprapun deviaii de la valoarea de nul de mrimea a 7 LSB ceea ce este echivalent unei variaii de 34,16mV aceasta fiind inacceptabil n cazul acestui sistem.
79
Pentru micorarea erorilor au fost luate urmtoarele msuri: Trecerea microcontrollerului n stand by pe perioada conversiei analog digitale; Conectarea senzorului cu o legtur ecranat ct mai scurt i decuplarea cu
condensatori.
Prin aceste metode s-a ajuns la ncadrarea erorilor n limitele de 1LSB.
Pentru eliminarea erorilor au fost aplicate i filtrri software. Filtrarea prin mediere const din eantionarea semnalului cu o frecven mrit i calcularea eantionului curent prin medierea mai multor eantioane precedente luate timp de o milisecund.
yj = (xj*N+1 + xj*N+2 + xj*N+3 + .+ xj*N+N) / N Unde :
N numrul eantioanelor luate timp de o milisecund Y semnalul de ieire din filtrul de mediere X semnal de intrare n filtru
n figura 4.45 sunt prezentate rezultatele prelurii a 4000 de eantioane dup mediere i dup aplicarea msurilor de compatibilitate electromagnetic i se vede c doar 4 eantioane sunt eronate, cu o valoare care se ncadreaz n 1LSB.
Figura 4.45: Date recepionate pentru 4000 msurtori, senzor nemicat
S-a realizat un sistem de testare dinamic a stabilitii sistemului de msurare prin micarea senzorului de nclinaie cu un motor pas cu pas, figura 4.46.
Pentru implementare s-a ales un motor unipolar cu unghiul de pas de 1,8. Motorul pas cu pas a fost comandat cu acelai sistem de dezvoltare cu care se face i achiziia i prelucrarea semnalului de la senzorul giroscopic. nfurrile motorului au fost comandate prin intermediul circuitului specializat ULN2003A.
Sistemul pornete dintr-o poziie fix i prin acionarea motorului face 50 de pai ceea ce este echivalent cu 90 (50*1,8) schimb direcia de micare fcnd tot 50 de pai repetnd aceste operaii de mai multe ori. Starea prezent a sistemului este afiat pe 2 afioare cu 7 segmente, precum i pe afiorul grafic, putnd verifica n orice moment corectitudinea msurtorilor.
80
Figura 4.46: Metoda de testare
n graficul din figura 4.47 sunt prezentate dou seturi de msurtori, fiecare reprezentnd cte o serie de pai fcui de motorul pas cu pas, una n sensul ceasului iar cellalt n sens invers. Msurtorile au fost fcute separat, pe rnd, reprezentarea grafic s-a fcut pe un singur grafic suprapunnd cele dou rezultate pentru o vizualizare mai bun.
n cazul ideal cnd sistemul a parcurs un ciclu de testare i se rentoarce n starea iniial valoarea unghiului calculat trebuie s fie egal cu zero. Prin rularea multipl a ciclului de testare s-a observat acumularea informaiilor eronate. Astfel se justific implementarea unui sistem de calibrare a valorii unghiului de nclinaie calculat.
Figura 4.47: Rezultatele msurtorilor dinamice
n figura 4.48 este prezentat dispozitivul mecanic cu motor pas cu pas pentru micarea senzorului.
Calibrarea senzorului unghiular s-a realizat prin introducerea n sistemul de msurare a unui senzor auxiliar de detecie a poziiei orizontale. Astfel cnd senzorul detecteaz poziia orizontal a sistemului reseteaz valoarea unghiului de nclinaie calculat.
81
Figura 4. 48: Motorul pas cu pas i senzorul (stnga) i o fotografie a sistemului de test (dreapta)
Dispozitivul de detecie a poziiei orizontale este alctuit dintr-un fotocomutator i un pendul care indic poziia vertical, astfel cnd modulul se afl n poziie orizontal pendulul obtureaz lumina, figura 4.49.
Figura 4.49: Reset- principiul de funcionare
Senzorul este cuplat la o linie de ntrerupere a microcontrollerului. La sosirea unei cereri de ntrerupere se determin durata staionrii n poziie orizontal i daca durata este mai mare dect o valoare de prag se consider c poziia este orizontal i se iniializeaz cu zero unghiul de nclinare.
Au fost realizate teste ciclice n care s-au comandat cte zece micri complete (90 grade) ale motorului cu trecere prin poziia orizontal. Dup un set de zece micri s-a fcut o pauz la orizontal pentru ca s fie posibil calibrarea i s-a memorat poziia unghiular. Un grafic n figura 4.49 arat c dac nu se ine cont de calibrare erorile se nsumeaz ajungnd la 2.75 grade dup 1000 de micri, iar dac se ine cont de calibrare eroarea este de 0.5 grade.
Sistemul de msurare implementat include msurile de micorare a erorilor menionate n [3]. Erorile aprute la msurare au fost menionate i n alte lucrri, de exemplu [4]. n [5] se
Pendul
82
propune o metod de compensare n timp real a erorilor. Cea mai bun soluie este folosirea unui senzor de unghi absolut, cum este cel prezentat n [6].
Figura 4.49. Evoluia erorii n grade la o mie de cicluri de micare ale senzorului giroscopic
Cele mai multe aplicaii ale giroscopului sunt n domeniul navigaiei aeriene i spaiale. Extinderea aplicaiilor ctre autoturisme se face n cadrul constrngerilor de pre. Micorarea erorilor trebuie s fie realizat prin metode software n limita puterii de calcul a unui procesor cu pre mic. n acest studiu metodele software nu au fost suficiente, de aceea s-a implementat o metod de reset a erorilor la detecia poziiei orizontale. Pentru a se testa comportarea dinamic a fost implementat un sistem de micare periodic a senzorului i msurare a datelor care a dovedit eficiena determinrii poziiei orizontale [7]. n prezent sistemul este testat n condiii reale pe autoturisme, unde apar erori suplimentare datorate vibraiilor, iar resetul erorilor nu se face periodic.
4.7. Modulaia tactului pentru micorarea perturbaiilor radiate
n acest subcapitol sunt prezentate simulri ale modulrii tactului i msurtori realizate de cercettori din cadrul Catedrei de Electronic i calculatoare legate de eficientei modulrii tactului. Pentru teste a fost aleas familia de microcontrollere Fujitsu pentru c aceast familie este dedicat aplicaiilor auto i au astfel implementat modulatorul de tact.
Schema bloc de generare a tactului n care se vede locul modulatorului de tact este dat n figura 4.50.
Modulaia tactului are rolul de a reduce interferenele electromagnetice (EMI) prin mprtierea spectrului semnalului de tact. Metoda este implementat la MC pe 32 de bii i la cele pe 16 bii. Modulaia se aplic tactului generat de bucla PLL, astfel nct unele interfee care genereaz intervale de timp precise (timer de baz, Watchdog sau CAN ) nu pot avea ca tact tactul modulat. Frecvena dat de tactul PLL este F0 iar spectrul are un vrf corespunztor acestei frecvene. Modularea tactului nseamn variaia frecvenei /fazei ntre 2 limite, ceea ce micoreaz vrful spectrului.
0
0.5
1
1.5
2
2.5
3
1 6 11 16 21 26 31 36 41 46 51 56 61 66 71 76 81 86 91 96
83
Figura 4.50: Schema bloc a generatorului de tact tipic pentru microcontrollerele Fujitsu Tactul de la bucla PLL poate fi modulat n 2 feluri:
modulaie n faz, semnalul modulator fiind un semnal triunghiular modulaie n frecven, semnalul modulator fiind un semnal pseudo aleator.
Modulatorul poate fi validat sau invalidat cu un registru de comand, se poate alege tipul de modulaie i se pot programa limitele de variaie ale frecvenei sau fazei. n general comportarea cea mai bun din punct de vedere EMI se obine la variaia maxim a frecvenei /fazei tactului, dar aceasta nu este o regul i n cele mai multe cazuri este nevoie de ncercri experimentale.
La modelul MB90350 pe 16 bii tactul de la bucla PLL este modulat cu un semnal triunghiular. Comanda modulatorului se realizeaz cu registrul CMCR (Clock Modulator Control Register) care valideaz modularea. Limea impulsului de tact modulat variaz cu +/- 0,8ns, ceea ce nseamn la frecvena maxim a tactului PLL de 24MHz o frecven maxim a tactului main modulat de 25,45MHz. Interfeele care nu au tact PLL (Timerul de baz, Watchdog Timer) nu pot avea ca tact tactul modulat. De asemenea cnd se utilizeaz interfaa CAN nu se poate folosi tactul modulat.
Modelul MB90390 pe 16 bii admite ambele variante de modulaie. La modulaia n frecven variaia ntre Fmax i Fmin este definit n 7 grupe, 1 fiind varianta cu variaia cea mai mic i 7 cu variaia cea mai mare. n figura 4.51 sunt date spectrele generate n gama de frecvene 150kHz-500MHz furnizate de Fujitsu n catalog pentru procesoarele de 32 de bii. Se observ c prin modularea tactului se obine un spectru cu armonici superioare de amplitudini mai mici.
Bloc de generare tact
Generare tact principal
Generare subtact
Divizare cu 2
Divizare cu 2 sau 4
Multiplicare PLL cu 1,2,3,4,6
Selecie tact
Interfee
CPU DMA
Modulare tact
Controlul stabilizrii oscilaiilor
Timer de baz
Watch Timer Watchdog Timer
Tact main
Tact PLL
Cuar sau generator
Cuar sau generator
84
Figura 4.51: Spectrul de frecven radiat n cazul unui tact nemodulat (stnga) i modulat (dreapta)
La microcontrollerele pe 32 de biti semnalul de tact generat de PLL este modulat cu un semnal pseudoaleator. La tactul modulat se poate modifica gradul de modulare i rezoluia de variaie a frecvenei ntre Fmin i Fmax. Se pot programa 3 grade de rezoluie. Modulatorul poate lucra cu tact ntre 16MHz i 48MHz, de aceea circuitul de modulare trebuie calibrat. Calibrarea poate fi lansat hardware sau software. Semnalul de tact poate fi observat n exterior la pinul MONCLK. Modulul CAN nu poate lucra cu tact modulat de aceea tactul este furnizat direct printr-un circuit de prescalare.
4.7.1.Simularea modulrii tactului
Cteva simulri n MATLAB dovedesc utilitatea modulrii tactului. Un semnal dreptunghiular a crui frecven variaz total aleator are armonicile superioare foarte mici, un semnal a crui frecven variaz aleator ntre 2 limite are armonici mai mari iar un semnal cu frecvena fix are armonici i mai mari.
Semnalul nemodulat are forma n timp i spectrul de frecvene date n figura 4.52.
Primul program realizeaz simularea unui semnal dreptunghiular a crui frecven variaz periodic. Forma semnalului modulator este cea triunghiular sau cea dreptunghiular. Se genereaz un semnal triunghiular cu funcia SAWTOOTH.
Figura 4.52: Semnal dreptunghiular i spectrul de frecvene
0.1 50 100 150 200 250 300 350 400 450 f[MHz]
50
40
30
20
10
0
-10
V[dB/V]
0.1 50 100 150 200 250 300 350 400 450 f[MHz]
50
40
30
20
10
0
-10
V[dB/V]
85
Cu funcia SQUARE se genereaz un semnal dreptunghiular i se realizeaz modularea acestui semnal. Se calculeaz spectrul de frecvene cu funcia FFT i se reprezint grafic, figura 4.53.
Figura 4.53: Semnal modulat cu un semnal dreptunghiular i spectrul de frecven
Se observ micorarea amplitudinii primelor armonici superioare. O alt variant de modulare este realizat cu un semnal modulator cu frecvena variabil. Funcia care genereaz un astfel de semnal este funcia CHIRP, figura 4.54.
Figura 4.54: Semnal modulat cu frecvena variabil i spectrul de frecven
Se observ c i modularea cu frecven variabil (variaia maxim 10% din frecven) are ca efect micorarea spectrului, mai ales a armonicilor de ordin superior. Este interesant de remarcat ce se ntmpl la extrem, adic la modularea frecvenei cu un semnal aleator, n condiiile n care variaia aleatoare nu este un procent oarecare (sub 10%) din frecven.
Figura 4.55: Semnal cu frecvena variabil aleator i spectrul de frecven
Acest caz n care frecvena variaz aleator nu poate fi folosit n practic pentru c microcontrollerul nu ar putea funciona cu un asemenea tact. Pentru generarea numerelor
86
aleatoare se folosete funcia RANDOM, n care parametrul EXP specific distribuia folosit. Semnalul dreptunghiular generat i spectrul sunt date n figura 4.55. Se poate observa c n acest caz spectrul este cel mai redus, armonicile superioare fiind foarte mici. Din pcate acest semnal dreptunghiular nu se poate folosi ca tact din motive funcionale.
4.7.2.Msurarea spectrului radiat
Pentru verificarea experimental a acestor simulri a fost folosit un sistem de dezvoltare cu microcontrollerul MB91F362GA, care are posibilitatea modulrii tactului. Tactul a fost vizualizat la un pin extern iar spectrul radiat a fost msurat cu un analizor spectral. n experimente a fost folosit analizorul Tektronix SA2600 echipat cu o anten de band larg Aaronia HYPERLOG6080. Analizorul are gama de msur 0 - 6.2GHz. Antena analizorului a fost poziionat n apropierea sistemului de dezvoltare, figura 4.56.
Figura 4.56: Sistemul de msurare a radiaiei electromagnetice
Microcontrollerul a fost programat cu posibilitatea modificrii tactului. Tactul principal este generat printr-un PLL intern pe baza unui tact de baz de 4MHz, cu cuar extern. Cele trei subsisteme (unitatea central, dispozitivele de I/O i controllerul CAN) pot utiliza tacte separate, configurabile software. Doar tactul unitii centrale poate fi modulat. Cu un buton se pot selecta cele trei frecvene la care se poate realiza modularea tactului- 16MHz, 32MHz i 48MHz. La modificarea frecveei tactului trebuie s treac un timp de stabilizare pn cnd microcontrollerul lucreaz la noua frecven i tactul este scos n exterior la pinul MONCLK. Pentru modularea tactului au fost utilizai parametrii recomandai de productor. Un fir lung s-a ataat la pinul MONCLK pentru ca radiaia emis s aib o valoare mai mare, altfel radiaia ar fi fost mai mic cu 20dB i ar fi fost nevoie de msurarea n camere anecoide. Fr ataarea firului valoarea cmpului electromagnetic extern ar fi fost apropiat de valoarea radiat de microcontroller.
87
Semnalul de tact vizualizat la pinul MONCLK este reprezentat n figura 4.57, la frecvena de 16MHz. La frecvenele de 32 i 48MHz aspectul semnalului este sinusoidal, datorit benzii de trecere limitat a osciloscopului. n figura 4.57a este reprezentat tactul nemodulat iar n figura 4.57b tactul modulat n durat (PWM) i se poate observa uor aspectul diferit.
Figura 4.57 Tactul de 16 MHz nemodulat (stnga) i modulat (dreapta)
Spectrele de frecven asociate celor dou situaii sunt date n figura 4.58.
Figura 4.58 Spectrul de frecven msurat n cazul tactului de 16 MHz nemodulat (stnga) i modulat (dreapta)
Cu tactul modulat se observ o mai mare uniformitate a distribuiei de energie n domeniul frecvenei, fr vrfuri ale spectrului. Poriunea superioar a spectrului (88-100MHz) nu trebuie luat n considerare, armonicile din aceast zon fiind datorate transmisiilor radio FM.
Cel mai mare impact pozitiv al modulrii tactului este obinut la 32MHz, o diminuare cu 16dB a celui mai mare vrf al spectrului fa de doar 10dB n cazul frecvenelor de 16 i 48MHz. Acest lucru se explic prin faptul c la 32MHz variaa frecvenei tactului este n ambele sensuri, ct vreme la 16MHz variaia este doar spre frecvene mai mari i la 48MHz
a b
88
doar spre frecvene mai mici.
Numrul echipamentelor electronice se mrete continuu i se caut permanent metode de a micora interferena electromagnetic dintre acestea. Una dintre metodele care ncepe s se aplice din ce n ce mai mult n ultimii ani este modulaia tactului. Modulaia tactului se aplic att la procesoare ct i la microcontrollere, i ncepe s se aplice i la circuitele specializate pentru transferul datelor cu un dispozitiv periferic [8], [9]. Tendina actual este de a se implementa modularea tactului n ct mai multe aplicaii dar i gsirea de noi metode de modulare [10].
Domeniul autovehiculelor este unul dintre domeniile n care modularea tactului se impune ca o necesitate, standardele de emisii de radiaii electromagnetice fiind restrictive. Constructorii de microcontrollere pentru domeniul auto implementeaz n noile familii modularea tactului. Importana modulrii tactului este dovedit i de faptul c i ali productori de microcontrollere, aa cum este Micronas, care a inceput s produc o familie de microcontrollere auto (CDC32) pe baza core-ului ARM7, a implementat modularea tactului [11]. n lume au fost nregistrate mai multe patente referitoare la generarea tactului modulat, aa cum este [12].
4.8. Sistem alternator-regulator-baterie cu microcontroller
4.8.1.Regulatorul de tensiune
Regulatorul de tensiune se conecteaz n sistemul de alimentare cu energie electric Alternator-regulator-baterie(ARB), existent pe orice autovehicul, ndeplinind urmtoarele funcii: Reglarea tensiunii n sistemul ARB n limitele impuse de constructorul autovehiculului (prin controlul curentului de excitaie al alternatorului); Rspuns adecvat la situaiile tranzitorii ntlnite n exploatare (pornire din repaus i modificarea sarcinii alternatorului); Realizarea unei construcii compacte, protejate la ocuri mecanice, adaptat unei funcionri n condiii de mediu i climatice foarte severe, conform standardelor specifice domeniului auto. Suplimentar, un regulator de tensiune electronic poate asigura: Funcionarea n regim de avarie al sistemului ARB (ruperea curelei de antrenare, defectarea unei diode din puntea redresoare, ntreruperea unor conexiuni interne ale sistemului ARB); Asigurarea unor protecii (la ntreruperea conexiunii alternator-baterie, scurtcircuitarea nfurrii de excitaie a alternatorului, scurtcircuitarea lmpii de control); Furnizarea unui semnal (n faz cu cel furnizat nfurrii de excitaie) ctre unitatea de control electronic a sistemului de management al motorului (EMS Engine Management System Electronic Control Unit); Modificarea controlat a plajei de reglaj n funcie de temperatura mediului ambiant.
89
Un proiect realizat mpreun cu studenii din anul terminal, supervizat de compania Fujitsu a fost un regulator de tensiune electronic cu microcontroller. Pentru testarea acestui modul a fost realizat un stand de prob, figura 4.59.
Figura 4.59: Stand pentru testarea regulatorului electronic
Standul de prob conine un generator electric (alternator auto), un motor care acioneaz alternatorul i care simuleaz astfel motorul autovehiculului. Aparate de msur conectate la stand au urmrit evoluia unor parametrii n timp pentru a verifica comportarea sistemului la variaia sarcinii i a turaiei alternatorului. Regulatorul de tensiune implementat cu microcontroller are rolul de a menine constant tensiunea la bornele alternatorului (i implicit a sarcinii) atunci cnd turaia alternatorului i sarcina sunt variabile.
4.8.2.Descrierea regulatorului cu microcontroller
Schema bloc a modelului experimental este dat n figura 4.60.
Un alternator este cuplat la motorul electric care simuleaz motorul mainii i o baterie de 12V constituie elementul tampon de energie. In modelul experimental s-a folosit un sistem de dezvoltare de la Fujitsu de tip Concerto, echipat cu un microcontroller pe 8 biti 8FX. Microcontrollerul are urmtoarele sarcini:
Comand nfurarea de excitaie a alternatorului cu un semnal PWM pentru a asigura regimul optim de ncrcare a bateriei (n soluia clasic nfurarea este comandat ON-OFF);
Determin viteza de rotaie a alternatorului prin preluarea semnalului nainte de diodele de redresare din alternator cu un modul intern de Input Capture;
Msoar tensiunea bateriei i n funcie de rezultat comand nfurarea de excitaie; Msoar temperatura ambiant i corecteaz regimul de ncrcare conform unor curbe
furnizate de productor pentru tipul de baterie folosit. Acest lucru este important pentru c gama de temperaturi de lucru pentru ARB fiind foarte larg.
Alternator
Motor care simuleaz Motorul mainii
Sistemul integrat de comanda
Baterie
90
Figura 4.60: Schema bloc a regulatorului cu microcontroller
La UART se poate conecta un notebook cu care se poate programa microcontrollerul sau se pot prelua date n timpul funcionarii turaia alternatorului i tensiunea bateriei. Conectarea la distan (uzual 20 m) prin standardul RS232 permite urmrirea funcionrii sistemului din interiorul autovehiculului.
Microcontrollerul F2MC-8FX (Basoon) [13] este conceput cu o arhitectur pe 8 bii, proiectat pentru aplicaii industriale diverse i n special pentru aplicaii care necesit tensiuni sczute i putere consumat mic. Caracteristici generale: tactul 10MHz, memorie RAM si FLASH, UART, LIN UART, I2C, 12 canale ADC de 10 bii, timere, generator PWM, watchdog, moduri de funcionare cu economie de energie (Sleep, stop, watch). Unele modele de microcontrollere se fabric pentru gama de temperaturi ntre -40C i 105C, ceea ce face potrivite aceste microcontrollere pentru utilizarea auto.
Partea software realizeaz urmtoarele operaii: 1. Iniializeaz porturile de I/O i modulele interne folosite: UART, ADC, PWM, IN
CAP 2. Se msoar turaia i se verific atingerea unei limite prestabilite. Acest lucru este
necesar pentru c la oprirea temporar a alternatorului tensiunea pe baterie scade, iar la reluarea rotirii alternatorului se comand un factor PWM mare, corespunztor tensiunii mici pe baterie. Alternatorul este astfel frnat i pornete cu ntrziere. De aceea se recurge la varianta de comand a nfurrii de excitaie doar dup ce alternatorul are o anumit turaie.
ALTERNATOR
En