introducere În interfeţe paralele Şi interfeţe seriale

236
1 Capitolul 1: Introducere în interfeţe paralele şi interfeţe seriale Un proces de comunicaţii de date necesită cel puţin 5 elemente, figura 1.1: Transmiţător; Mesaj; Interfaţă binară (digitală); Canal de comunicaţie; Receptor. Figura 1.1: Procesul de comunicaţii de date Pentru transmisia unui mesaj, fiecărui grup de biţi trebuie să îi corespundă un caracter (literă, cifră, semn special). Cel mai cunoscut este codul ASCII (American Standard Code for Information Interchange). Figura 1.2: Schema bloc generală a interfeţei paralele pe 8 biţi Emiţător D0 D1 D2 D3 D4 D5 D6 D7 Receptor Reacţie- mesaj de confirmare pe calea de retur Transmiţător Interfaţă binară (digitală) Mesaj Canal de comunicaţie Interfaţă binară (digitală) Receptor

Upload: cristian-simidreanu

Post on 26-Dec-2015

300 views

Category:

Documents


11 download

DESCRIPTION

Introducere în interfeţe paralele şi interfeţe seriale

TRANSCRIPT

Page 1: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

1

Capitolul 1: Introducere în interfeţe paralele şi interfeţe seriale

Un proces de comunicaţii de date necesită cel puţin 5 elemente, figura 1.1:

• Transmiţător; • Mesaj; • Interfaţă binară (digitală); • Canal de comunicaţie; • Receptor.

Figura 1.1: Procesul de comunicaţii de date

Pentru transmisia unui mesaj, fiecărui grup de biţi trebuie să îi corespundă un caracter (literă, cifră, semn special). Cel mai cunoscut este codul ASCII (American Standard Code for Information Interchange).

Figura 1.2: Schema bloc generală a interfeţei paralele pe 8 biţi

Emiţător D0D1D2D3D4D5D6D7

Receptor

Reacţie- mesaj de confirmare pe calea de

retur Transmiţător

Interfaţă binară (digitală)

Mesaj

Canal de comunicaţie

Interfaţă binară (digitală)

Receptor

Page 2: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

2

La transferul paralel informaţia este transmisă pe mai multe linii (8, 16, 32, 64, 128 ...), cu un număr de biţi transmis la un impuls de tact egal cu numărul de linii, cuvintele fiind transmise succesiv, figura 1.2.

Diagrama de timp comprimată a transferului este dată în figura 1.3.

În această carte vor fi prezentate transferurile paralele prin magistrala externă şi prin porturile paralele de I/O de uz general, dar şi alte câteva aplicaţii cum ar fi de exemplu circuitul de conversie USB- paralel FTDI.. Magistralele şi interfeţele paralele sunt în scădere de piaţă, fiind înlocuite de cele seriale, de aceea şi ponderea lor în această carte este mai scăzută.

Figura 1.3: Diagrama de timp a transferului

La transferul serial informaţia este transmisă bit după bit, pe mai puţine fire (minimum 2 fire, dintre care unul de referinţă, masa electrică), figura 1.4. Pentru transmisia datelor acestea trebuie codificate. În această carte se vor descrie transmisii cu codificare NRZ, Manchester, 8B10B etc. Avantajele interfeţelor seriale legate de preţul mai mic au dus la răspândirea acestor interfeţe în majoritatea aplicaţiilor.

Figura 1.4: Schema bloc generală a interfeţei seriale pe un fir

(linia de masă nu este considerată)

În perioada actuală numărul, viteza şi calitatea interfeţelor seriale cresc, cucerind din ce în ce mai multe segmente de piaţă.

Dacă datele seriale vin la receptor pe un singur fir, presupunem prin codare NRZ, receptorul le poate citi cu o anumită frecvenţă şi să obţină datele de pe fond gri din figura 1.5 sau cu altă frecvenţă şi să se obţină datele din chenarul de jos. Acest lucru arată importanţa ca datele să fie recepţionate cu acelaşi tact cu care au fost trimise.

D0-D7

t Perioada de timp în care se transmit 8 biţi

Timp de tranziţie

Emiţător DATE

Receptor

Page 3: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

3

Figura 1.5:importanţa eşantionării corecte

Pentru a se asigura la receptor tactul corect de recepţie există mai multe variante, prezentate în figura 1.6:

Figura 1.6: Variante de asigurare a tactului la recepţie

1.Tactul de transmisie se transmite de la emiţător la receptor pentru citire, figura 1.6 a. Se asigură viteză mare, dar distanţele sunt mici. Costurile unui fir suplimentar sunt mari. Exemple care se vot întâlni în aplicaţiile prezentate în această carte sunt interfaţa SPI (Serial Peripheral Interface), IEEE1394a (1995), JTAG.

2.Emisia şi recepţia se fac cu acelaşi tact, standard, cunoscut şi de emiţător şi de receptor. Distanţele pot fi mari, nu apar costurile unui fir suplimentar, figura 1.6 b. Viteza nu poate fi

t

Tensiune

1 1 0 1 1 1 0 0 1 0 0 0 1 1 0

0 1 1 0 0

Emiţător DateTact

GND

Receptor Emiţător Date

GND

Receptor

TactTact

Emiţător Date

GND

Receptor

Generare tact din datele citite

Tact

a b

c

Page 4: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

4

mare datorită faptului că între tactele standard există diferenţe. Câteva exemple tratate în carte sunt interfaţa serială asincronă RS232 şi LIN.

3.Refacerea tactului din datele emise este cea mai modernă metodă folosită la cele mai multe aplicaţii actuale. Se pot asigura distanţe mari, costuri mici, viteze mari. Circuitul care reface tactul din date se numeşte buclă PLL şi nu poate reface datele decât dacă există variaţii permanente de nivel, figura 1.6 c. Exemple în această carte sunt USB, CAN, FlexRay, IEEE1394b (2002), dar şi Ethernet, SATA etc. care nu sunt tratate aici. Transmisiile wireless, de exemplu Bluetooth şi ZigBee pot fi asociate cu transmisiile seriale pe un singur fir cu refacerea tactului.

Un grup de cuvinte binare formează un cadru (pachet sau bloc) de date. Protocoalele seriale pot fi orientate pe cuvânt sau pe cadru. Un cuvânt respectiv un bloc de date reprezintă entităţi de informaţie care se tratează unitar la receptor, adică sunt acceptate sau respinse în întregime. În transferul asincron (RS232, LIN) se transmit cuvinte şi informaţia de sincronizare este ataşată cuvântului dar în cele mai multe tipuri de transfer (USB, CAN, IEEE1394b, Ethernet, Bluetooth, ZigBee) informaţia de sincronizare este ataşată cadrului.

Bibliografie

[1] Romanca, M., Arhitectura microprocesoarelor, Editura Universităţii "Transilvania" din Braşov, 2004, ISBN 973-635-314-1, 186 pagini

[2] Gerigan C., Ogruţan P., Tehnici de interfaţare, Ed. Transilvania Braşov, 2000, 315p., ISBN 973-9474-94-2

[3] Borza P., Gerigan C., Ogruţan P., Toacşe Gh., Microcontrollere. Aplicaţii, Editura Tehnică Bucureşti, 2001, ISBN973-31-1577-6, 220p

Page 5: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

5

Capitolul 2: Magistrala externă

2.1. Magistrale

O magistrală este un subsistem cu funcţia de comutator universal bidirecţional prin care se transferă date în interiorul unui sistem de calcul sau între sisteme de calcul [1]. Schema bloc a unui sistem bazat pe magistrale este dată în figura 2.1.

Figura 2.1: Structura unui sistem pe bază de magistrale

Sistemul prezentat în figura 2.1 este format din n subsisteme dintre care unul este Master la un moment dat iar celelalte Slave. Comutatorul este comandat de Master care stabileşte subsistemul Slave cu care face transfer de date şi stabileşte sensul transferului. Subsistemele pot fi explorate ciclic sau, mai eficient transferul poate fi realizat printr-o logică de priorităţi. Bufferele B optimizează traficul de date, aceste buffere fiind introduse în structura magistralei începând cu magistrala PCI.. Dacă fiecare subsistem poate transfera date cu viteza vi şi viteza cea mai mare este:

vmax=max (vi), atunci viteza magistralei VM va fi:

VM=k.vmax , adică mai mare (cu un coeficient k) decât viteza celui mai rapid subsistem

Magistralele pot fi de două tipuri:

1. Sincrone, la care există o linie de tact şi toate transferurile se fac într-un număr întreg de tacte, ciclul fiind numit ciclu de magistrală. Acest tip de magistrală este cel mai simplu şi ca urmare s-a răspândit şi la microcontrollere;

2. Asincrone, transferul poate dura oricât, este nevoie însă de un protocol de dialog. Pentru ca un transfer nereuşit să nu blocheze sistemul este nevoie de un mecanism de supraveghere a magistralei.

Transferul de date pe o magistrală sincronă apare la execuţia unei instrucţiuni a microcontrollerului. La execuţia instrucţiunii, în funcţie de instrucţiunea executată, se generează automat un semnal care stabileşte spaţiul de adresare şi sensul transferului. În cazul în care spaţiul de adresare este comun pentru zona de memorie şi zona de IO (In/Out) atunci

1 Master

B

2 3

4

5

n

B B

B B B

Page 6: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

6

există două semnale de comandă - RD şi WR care stabilesc sensul transferului. Dacă spaţiul de adresare este diferit pentru memorie şi IO atunci există patru semnale- IORD, IOWR, MEMRD, MEMWR. O diagramă de timp pentru un transfer tipic pe o magistrală sincronă simplă cu spaţiu comun pentru memorie şi IO în care sunt prezentate un ciclu de citire şi unul de scriere [2] este dată în figura 2.2.

Figura 2.2: Diagrama de timp pentru un ciclu de citire urmat de un ciclu de scriere

Semnalul de tact este reprezentativ pentru magistralele sincrone. Activarea semnalului de /RD înseamnă că datele sunt citite de pe magistrală într-un registru al UC iar activarea semnalului /WR înseamnă că datele sunt scrise în memorie sau într-un dispozitiv de I/O. În această diagramă se remarcă faptul că liniile de adresă şi de date sunt diferite.

Figura 2.3: Diagrama de timp pentru un ciclu de citire urmat de un ciclu de scriere în cazul unei magistrale de adrese şi date multiplexate

CLK

Adrese

/RD

/WR

Date

Citire Scriere

Date scrise Date citite

CLK

ALE

/RD

/WR

Adrese/ dateAD0-AD7

Citire Scriere

Date scrise

Date citite Adrese

Adrese

Page 7: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

7

De regulă, în microcontrollere nu se poate accepta un număr atât de mare de linii din cauza costurilor, de aceea liniile de adrese şi date sunt multiplexate. Aceasta înseamnă cuplarea unui latch de adrese în exteriorul microcontrollerului care să fie încărcat cu adrese, comanda latch-ului fiind realizată cu semnalul ALE (Address Latch Enable). O diagramă de timp în acest caz este dată în figura 2.3.

2.2. Selectarea unui dispozitiv pe magistrală

La un moment dat pe o magistrală sunt active 2 subsisteme, dintre care unul este Masterul. Iar celălalt este subsistemul Slave selectat de Master, figura 2.4.

Figura 2.4: Selecţia prin adrese

Transferul de date are loc între Master şi subsistemul i pe magistrala de date. Liniile de adresă necesare pentru adresarea locaţiilor sau registrelor interne ale subsistemelor sunt conectate direct la acestea. Cu liniile rămase libere se selectează subsistemul cu care Masterul transferă date. Subsistemul selectat devine activ, celelalte subsisteme intră în înaltă impedanţă la interfaţa cu magistrala. Selectarea poate fi:

1. Selectarea liniară se poate realiza dacă numărul liniilor de adresă rămase disponibile este mai mare sau egal cu numărul circuitelor care trebuie selectate. Fiecare circuit este selectat cu o linie de adresă, avantajul soluţiei fiind simplitatea iar dezavantajul fiind faptul că se pierde din spaţiul de adresare;

2. Selectarea decodificată, în care liniile de adresă rămase libere sunt introduse într-un decodificator DCD, iar ieşirile DCD selectează fiecare un circuit. Se poate astfel folosi întregul spaţiu de adresare;

3. Selectarea mixtă, în care unele linii de adresă libere selectează direct câte un circuit în timp ce alte linii selectează prin intermediul unui DCD.

În primul exemplu se propune conectarea pe o magistrală de adrese de 16 biţi a unor circuite de memorie de 16k. Selectarea liniară şi harta memoriei sunt date în figura 2.5.

1 Master 2 i Slave

Magistrala de adrese

Magistrala de date

SEL SEL

Page 8: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

8

Figura 2.5: Selectarea liniară în cazul memoriilor (CS activ în 1)

Figura 2.6: Selectarea decodificată în cazul memoriilor

Se poate observa că în cazul selectării decodificate se foloseşte întreaga zonă de adresare. În cazul conectării unui dispozitiv de IO se aplică aceleaşi reguli, diferenţa fiind dată de faptul că dispozitivele de IO au mai puţine linii de adresare pentru regiştrii interni, ca urmare rămân mai multe linii de adresă libere. În al doilea exemplu se conectează o interfaţă paralelă de tip Intel 8255 pe o magistrală de adrese de 16 biţi. I8255 utilizează 2 linii de adresă pentru selectarea celor 3 regiştrii interni. Să presupunem că adresa de bază la care dorim conectarea circuitului este 0180H. În figura 2.7 este dată schema bloc de conectare şi harta memoriei.

Selecţia prin decodificare a fost realizată cu 4 DCD cu 4 intrări. Schema bloc este detaliată în partea de selecţie. După programarea circuitului I8255 se pot trimite /recepţiona date de un octet cu o singură instrucţiune sau două, dacă datele sunt extrase din memorie, ceea ce înseamnă, de exemplu la un microcontroller RISC cu instrucţiuni executate într-un singur tact o rată de transfer de ordinul de mărime a tactului. La MC complexe, aşa cum sunt de exemplu MC pe 32 de biţi de la Fujitsu se pun la dispoziţia utilizatorului semnale de CS pentru diferite zone de memorie liberă pentru a uşura implementarea aplicaţiilor care necesită lucrul pe o magistrală externă.

Magistrala de adrese A0-A15

A0-A13 CS MEM1

A14

A0-A13 CS MEM2

A15

0000H

3FFFH4000H

7FFFH8000H

BFFFHC000H

FFFFH

MEM2

MEM1

1,01,1

0,10,0

Magistrala de adrese A0-A15

A0-A13 CS MEM1 A0-A13 CS

MEM2

A15, A14

MEM1 0000H

3FFFH4000H

7FFFH8000H

BFFFHC000H

FFFFH

MEM4

MEM3

MEM2

A0-A13 CS MEM3 A0-A13 CS

MEM4

DCD

Page 9: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

9

Figura 2.7: Conectarea unui circuit interfaţă paralelă I8255 pe magistrală

Dacă conectăm acelaşi circuit la porturi paralele obţinem schema bloc din figura 2.8.

Figura 2.8: Conectarea unui circuit interfaţă paralelă I8255 la porturi paralele

Portul 0 al MC este folosit pentru transferul de date pe 8 biţi, bidirecţional. Liniile 0 şi 1 din portul P1 sunt folosite pentru selectarea registrelor interne ale I8255. Liniile 2 şi 3 prin decodificare pot selecta unul din patru circuite conectate cu liniile de date la portul 0 al MC. Liniile 3 şi 4 ale portului 1 stabilesc sensul transferului. Se poate observa din schema bloc faptul că o conectare la porturi paralele este mai simplă decât una pe magistrală, mai ales dac numărul de circuite conectate este mic.

Magistrala de adrese A0-A15

A0 A1 CS I8255

0000H

0180H0183H

FFFFH

DCD

A2-A15

0180HDetalii privind decodificarea

DCD0 DCD3 DCD1 DCD2

A15 14 13 12 A11 10 9 8 A7 6 5 4 A3 2 0 0 0 0 0 0 0 1 1 0 0 0 0 0

0 081

AND

CS

CS1,2,3

MC P0.1-P0.7 P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7

D0-D7 A0 A1 CS RD WR I8255

DCD

Page 10: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

10

Pentru un transfer de un octet se pune octetul pe magistrala de date apoi se selectează portul intern al I8255 prin punerea unui cuvânt pe portul 1, apoi se trimite un RD sau WR, ceea ce înseamnă un cuvânt pe portul 1 care face RD sau WR 1, urmat de un cuvânt care face RD sau WR 0. Din această succesiune de cuvinte de comandă se poate deduce că transferul este de cel puţin 4 ori mai lent decât dacă I8255 este conectat pe magistrală.

2.3.Exemplu la microcontrollerele MCS 51

Familia MCS 51 prevede magistrala externă chiar şi la modelele mai ieftine, aşa cum este de exemplu MC Atmel AT89LS51 [3]. Pe magistrala externă poate fi conectată memoria de date şi memoria de program, spaţiile de adresare fiind separate. Portul 0 poate fi configurat ca port de adrese şi date multiplexate pe 8 biţi astfel: P0.0 – AD0... P0.7 – AD7. Portul 2 generează adresele superioare pentru adresarea pe 16 biţi (MOVX @ DPTR). Dacă se folosesc adresări pe 8 biţi la portul 2 ( MOVX @ RI) este generat conţinutul registrului special P2. Portul 2: P2.0 – A8.... P2.7 - A15. Semnalele de comandă generate sunt ALE, /RD, /WR şi /PSEN (Program Store Enable) care este un strob pentru memoria externă de program. O diagramă de timp de acces la magistrală în cazul unui transfer de citire cu memoria de date (/PSEN inactiv):

Figura 2.9: Diagrama de timp la un ciclu de citire dintr-o memorie externă de date

O aplicaţie de conectare la un MC din familia MCS 51 a unei memorii externe EPROM de 64kocteţi pe magistrală şi a unui afişaj LCD pe un port paralel [5] este dată în figura 2.10.

Pentru a adresa memoria EPROM se folosesc 16 biţi de adresă, cei mai puţin semnificativi la portul P0, cei mai semnificativi la portul P2. Un impuls pe linia ALE încarcă biţii de adresă din portul P0 în latch-ul 74HC573. Se activează PSEN pentru că în EPROM sunt stocate instrucţiuni (memorie externă de program), datele fiind pe liniile de date din portul P0 putând fi citite (/RD activ) sau scrise (/WR activ).

ALE /PSEN /RD PORT 0 PORT 2

A0-A7 din RI (8 biţi) sau DPL (16 biţi)

A8-A15 din DPH (16 biţi)

Date

Page 11: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

11

Figura 2.10: Conectarea unei memorii externe şi a unui LCD la un MC 80C51

Pentru ca MC să execute codul stocat în EPROM trebuie ca semnalul EA să fie 0. Afişajul LCD este conectat cu liniile de date la portul P1 şi semnalele de comandă astfel: RS – datele transmise pot fi un caracter de afişat sau o comandă, RW – sensul de transfer al datelor, CE – comanda de afişare. Un exemplu de programare:

MOV P1,A datele de afişat sunt trimise la portul P1 SETB RS datele reprezintă un caracter de afişat CLR RW sensul este de scriere în afişaj NOP întârziere SETB CE comanda de afişare NOP întârziere NOP CLR CE linia de comanda de afişare este readusă la 0 RET întoarcere în programul principal Înainte de a se lucra cu afişajul LCD este nevoie de trimiterea unor date pentru iniţializare, funcţie de tipul afişajului.

2.4.Exemplu la microcontrollerele ATMEL RISC

MC AVR pe 8 biţi Atmega64 admite lucrul cu magistrală externă pentru cuplarea unei memorii externe printr-o interfaţă internă specială numită XMEM. Magistrala externă este pe 8 biţi de date şi 16 biţi de adresă astfel: PA0- AD0... PA7-AD7, PC0-A8...PC7-A15, PG0-/WR, PG1-/RD, PG2-ALE. Datele sunt multiplexate cu adresele pe portul PA. O schemă bloc de conectare a unei memorii externe este dată în figura 2.11.

Page 12: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

12

Figura 2.11: Schema bloc de conectare a unei memorii externe la un Atmega64

XMEM va detecta un acces la memoria externă şi nu va ţine cont de setările de direcţie ale porturilor PA şi PC. Viteza de transfer a datelor este mare, de aceea se impun condiţii de viteză pentru latch-ul de adrese. Programarea şi controlul modului de lucru se face cu registrele: MCUCR (MCU Control Register), XMCRA şi XMCRB (External Memory Control Register A şi B). Pentru că memoriile au timpi diferiţi de acces se pot defini 4 variante de lucru cu memoria externă prin inserarea a 0, 1 sau 2 stări de WAIT.

O diagramă de timp pentru accesul la memoria externă pe 16 biţi, la citire este dată în figura 2.12.

Figura 2.12: Diagrama de timp pentru un acces la citire

O aplicaţie de conectare a unui LCD la un MC RISC pe magistrala externă [6] este dată în figura 2.13.

Afişajul este validat (Enable) cu linia A15 când are loc o scriere /WR sau o citire /RD. Liniile de date / adrese inferioare sunt folosite doar ca date. Selecţia zonei de adresare este simplă pentru că nu se foloseşte decât un singur circuit conectat pe magistrala externă.

CLK (tact CPU)

ALE

/RD

Adrese A15-A8

Adrese/ dateAD0-AD7

Date anterioare Date citite Adrese

Adrese Adrese anterioare

Page 13: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

13

Figura 2.13: Conectarea unui LCD la un MC RISC

2.5.Exemplu la microcontrollerele Fujitsu

2.5.1. Magistrala externă la MC Fujitsu pe 16 biţi F2MC-16LX

Magistrala externă permite adresarea pe 16 biţi şi transferuri pe 16 biţi de date. Zona de adresare a magistralei externe este mai mică (22 biţi) decât zona de adresare totală care este pe 24 de biţi. De asemenea MC poate fi comandat în înaltă impedanţă pentru a permite un transfer DMA pe magistrală. Memoria Flash din MC poate fi programată prin intermediul magistralei externe, dar există şi alte moduri de programare. Totuşi, programarea pe magistrală este cea mai rapidă. Schema bloc este dată în figura 2.14.

Semnalele magistralei externe au următoarea semnificaţie:

AD07-AD00 pe portul P07-P00, 8 biţi de date multiplexate cu adrese AD15-AD08 (16 biţi) sau A15-A08 pe portul P17-P10, 8 biţi de date multiplexate cu adrese sau doar 8 biţi de adresă A21-A16 pe portul P25-P20, 6 biţi de adresă. Nu este adresabilă spre exterior toată zona de adresare pe 24 de biţi. ALE pe linia P30, Address Latch Enable /RD pe linia P31, Read /WR (8 biţi) sau /WRL (16 biţi) pe linia P32, Write

Page 14: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

14

Port I/O (8 biţi) sau /WRH (16 biţi) pe linia P33, activ doar la magistrala pe 16 biţi, Write. HRQ pe linia P34 cerere către MC de intrare în HOLD. /HAK pe linia P35 răspuns de confirmare la cererea de intrare în HOLD. RDY pe linia P36 CLK pe linia P37.

Figura 2.14: Schema bloc a MC pe 16 biţi Fujitsu cu magistrală externă

Regiştrii de comandă pentru lucrul cu magistrală externă selectează dacă liniile porturilor au semnificaţia de linii de magistrală sau linii IO şi comandă inserarea a 1, 2 sau 3 stări de WAIT pentru accesul pe magistrală.

2.5.2.Magistrală externă la MC Fujitsu pe 32 de biţi

În cazul microcontrollerelor cu putere de calcul mai mare, magistrala externă are mai multe linii [4], astfel că lucrul cu magistrala externă este mai complicat, transferurile de date pot fi pe 8, 16 sau 32 de biţi. În cazul MC din familia MB91F care sunt MC RISC, schema bloc, prezentată în figura 2.15, arată o structură complexă în care magistralele interne sunt de mai multe tipuri. Între CPU şi memorie magistrala este Harvard pe 32 de biţi, legătura cu dispozitivele de IO fiind realizată cu o magistrală pe 16 biţi, iar în exterior MC este prevăzut cu o magistrală externă Von Neuman.

Caracteristicile magistralei externe sunt:

• Spaţiul extern este adresabil cu 32 de biţi fiind de 4GB. • Se pot defini până la 8 bank-uri independente cu semnale de CS generate de MC. Bank-urile pot fi de minimum 64K şi pot ocupa orice poziţie logică în aria externă.

Magistralaexternă

AD07-AD00

A15-A08

A21-A16

ALE/RD/WR

/HAKHRQRDYCLK

F2MC-16LX

Page 15: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

15

• Magistrala de date poate fi pe 32/16/8 biţi, lărgime care poate fi diferită pentru bank-uri diferite. • Se pot transfera date prin DMA.

Figura 2.15: Structura internă a MC pe 32 de biţi Fujitsu MB91F

O schemă bloc a interfeţei cu magistrala externă este dată în figura 2.16.

Figura 2.16: Interfaţa cu magistrala externă

Magistrala internă Adrese Date

Buffer de date citite

Acces

Acces Scriere date

Buffer de adrese

Generare CS

ASR AMR

Generare semnale de control

Magistrală externă de date, 32 de biţi Magistrală externă de adrese 32 de biţi CS0X-CS7X CLK, RDY, BGRNTX, BRQ, RDX, WR0X-WR3X

CPU FR ROM RAM

Convertor Harvard- magistrală unică de date şi instrucţiuni

Convertor 32 biţi- 16 biţi

Controller de magistrală

R-BUS 16 biţi magistrală unică de date şi instrucţiuni

Dispozitive I/O integrate

I-BUS, 32 biţi, Harvard, (magistrala de instrucţiuni)

Real BUS (magistrală externă)

F-BUS 32 biţi, magistrală unică de date şi instrucţiuni

D-BUS 32 biţi, Harvard, (magistrala de date)

Page 16: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

16

Generarea semnalelor de CS poate fi activată sau invalidată, zonele de adrese selectate fiind programabile prin înscrierea unui registru de programare. Semnalele WR0X, WR1X, WR2X, WR3X sunt semnale de strob de scriere, cu legătură cu lărgimea magistralei de date. Astfel la transferul pe octet se activează WR0X, la un transfer pe 16 biţi WR0X şi WR1X, iar la transferul pe 32 de biţi se activează toate 4. Ordinea în care se transferă datele din regiştrii interni este “Big Endian”, figura 2.17.

Figura 2.17: Transferul de date prin magistrala externă

AS- strob de adrese

BRQ- cerere de magistrală

BGRNTX- acceptarea cererii de magistrală

RDX- strob de citire

RDY- semnal de sincronizare (Ready)

ALE- strob de memorare a adresei într-un latch extern (Address Latch Enable).

Diagrama de timp pentru un acces de 32 de biţi în 2 bank-uri diferite, un ciclu de citire şi un ciclu de scriere este dată în figura 2.18. Între ciclurile de scriere / citire se introduc cicluri de sincronizare (a tactelor interne) numite Idle al căror număr depinde de tact şi de tipul de acces. Pentru sincronizarea externă se pot introduce cicluri de WAIT programând corespunzător un registru de programare sau se poate utiliza pinul extern RDY.

Un exemplu de conectare a unui GDC (Graphic Display Controller) la un microcontroller pe 32 de biţi este prezentat pe scurt în continuare. Aplicaţiile de afişare şi prelucrare de imagini necesită o putere de calcul şi o viteză mare.

Transfer pe 32 de biţi Transfer pe 16 biţi Transfer pe 8 biţi Registru intern Magistrală externă Registru intern Magistrală externă Registru intern Magistrală externă 00 01 10 11

D31 D23 D15 D07 D00

AA BB CC DD

AA BB CC DD

D31 D23 D15 D07 D00

AA BB CC DD

biţii cei mai puţin semnif. din adresa externă

AA BB CC DD

(La scriere) Activ WR0X-WR3X Activ WR0X, WR1X Activ WR0X

D31 D23 D15 D07 D00

AA BB CC DD

AA CC BB DD

Page 17: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

17

Figura 2.18: Diagrama de timp pentru un transfer pe 32 de biţi

În figura 2.19 este prezentată conectarea unui GDC din familia Fujitsu la un MC pe 32 de biţi din aceeaşi familie. Conectarea este pe magistrala externă deoarece este singurul mod de conectare care asigură viteza suficientă de afişare.

Figura 2.19: Conectarea unui GDC Fujitsu la un MC pe 32 de biţi

CLK

AS

A31:0

D31:0

/RDX

/WR0-3

/CSnX

/CSmX

Citire din zona externă Scriere în zona externă bank-ul n bank-ul m

Tactul de magistrală Strob de adrese 32 linii de adresă 32 de linii de date, primul ciclu datele sunt citite, în al doilea sunt scrise Semnal care indică un ciclu de citire 4 semnale care indică ciclul de scriere şi precizează modul de transfer 8/16 sau 32 biţi Semnal de selecţie bank, pentru bank-ul n Semnal de selecţie bank pentru bank-ul m

SDRAM opţional Date 32 de biţi Adrese 12 biţi Comenzi şi stări 8 biţi

MB91F361 Magistrala externă

GDC Date 32 de biţi Adrese 32 de biţi RESET WRX CSX RDX RDY CLK INT DREQ DACK

R G B Video input

Sursa de alimentare 5V 3,3V 2,5V

Display analogic

Page 18: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

18

2.6.Scurt istoric al magistralelor standardizate

Prima magistrală a apărut în 1984 în structura calculatorului IBM PC şi s-a numit ISA (Industry Standard Architecture). Magistrala este sincronă, are 16 biţi de date, 24 de biţi de adresă, subansamblele conectate se configurează manual, viteza maximă este de 16Mbps. Specificaţiile tehnice ale magistralei au fost în domeniul public, ceea ce a determinat ca magistrala să fie un succes şi ca urmare compatibilele IBM PC să se răspândească în toată lumea. Specificaţiile fiind libere, IBM nu a beneficiat financiar prea mult de pe urma acestei magistrale, aşa încât a lansat în 1987 o nouă magistrală, superioară, pentru calculatoarele PS2 numită MCA (Microchannel). Caracteristicile ei: 32 de biţi de adresă, 32 de biţi de date, configurare automată, viteza maximă 32Mbps, cu posibilitatea de a lucra multiprocesor. Pentru a construi dispozitive MCA era nevoie de cumpărarea licenţei de la IBM şi au fost puţine firme care să facă acest lucru, ca urmare calculatoarele cu MCA nu s-au răspândit.

Ca reacţie la MCA, un consorţiu de firme (Compaq, Epson, Hewlett Packard, NEC, Olivetti şi Zenith) a lansat magistrala EISA (Extended ISA) în 1988. Magistrala EISA are performanţe cel puţin atât de bune ca şi MCA: 32 de biţi de adresă, 32 de biţi de date, configurare automată sau manuală, viteza maximă 120Mbps şi asigura compatibilitate cu plăcile ISA. Specificaţiile au fost în domeniul public şi probabil magistrala ar fi avut succes. EISA nu s-a răspândit pentru că INTEL a lansat în 1990 magistrala PCI (Peripheral Component Interconnect) cu specificaţii în domeniul public, cu un concept nou al arhitecturii. PCI poate lucra cu 32 sau 64 de biţi de date la o viteză de maximum 2,112Gbps. Conceptul de ierarhizare a magistralei după viteză permite compatibilitatea cu magistrala ISA. În ultimul timp plachetele ISA au dispărut dar PCI a păstrat intern o magistrală de viteză mică numită LPC (Low Pin Count), de fapt o magistrală ISA cu semnale multiplexate pe aceleaşi linii pentru economia de pini.

Microcontrollerele au beneficiat la apariţie de experienţa dezvoltării acestor magistrale şi au împrumutat variantele cele mai simple de magistrale sincrone, bazate pe structura ISA.

Bibliografie

[1] Gerigan C., Ogruţan P., Tehnici de interfaţare, Ed. Transilvania Braşov, 2000, 315p., ISBN 973-9474-94-2

[2] Borza P., Gerigan C., Ogruţan P., Toacşe Gh., Microcontrollere. Aplicaţii, Editura Tehnică Bucureşti, 2001, ISBN973-31-1577-6, 220p

[3] Ogruţan P., Gerigan C., Banciu N., Memorii, interfeţe şi periferice. Interfeţe specializate, Ed. Transilvania Braşov, 2003, 190 pagini, ISBN 973-635-118-1

[4] Ogrutan P., Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3

[5] Lipnharski W., 8051+LCD+EPROM, [online], www.ustr.net [6] Fleury P., Interfacing a HD44780 Based LCD to an AVR, 2003, [online],

http://jump.to/fleury

Page 19: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

19

Capitolul 3: USB şi IEEE1394

3.1.Magistrala USB (Universal Serial Bus)

3.1.1.Descriere Magistrala USB a fost introdusă cu dorinţa de a oferi utilizatorilor o interfaţă universală, cu viteză mare şi uşor de folosit, mai ieftină pentru că, fiind serială, cablurile şi conectorii costă mai puţin. Aceste considerente au impus magistrala USB pe piaţă, în prezent aceasta ocupând o cotă mare de piaţă în domeniul interfaţărilor. Complexitatea USB este mai mare decât a interfeţelor înlocuite, adică a interfeţei RS232 şi a interfeţei paralele, prin urmare implementarea ei în microcontrollere a fost mai dificilă. În 2008 au fost vândute peste 3 miliarde de dispozitive USB, iar intrarea pe piaţă a USB 3.0 (SuperSpeed USB) în anul 2009, cu o estimare de vânzări până în 2013 de 25% din totalul dispozitivelor USB asigură condiţiile supravieţuirii îndelungate. Caracteristicile principale ale magistralei USB:

• rata de transfer este de 1,5 Mbps la USB 1.0 (Low Speed), 12Mbps la USB 1.1 (Full Speed), 480Mbps la USB 2.0 (Hi Speed) şi 4,8Gbps la USB 3.0 (Super Speed);

• conectează până la 127 de dispozitive la un calculator gazdă, dar nu se pot conecta dispozitive USB fără gazdă ca la IEEE 1394;

• configurarea este automată, adică se poate conecta un dispozitiv USB fizic în mers (Hot Plug In). Se remarcă creşterea complexităţii software faţă de partea hardware;

• cablul conţine linii de alimentare, aşa că dispozitivele USB pot fi alimentate de la gazdă (bus powered device) sau pot avea alimentare proprie (self powered device). Din acest motiv cablurile au conectori diferiţi pentru conectarea spre gazdă (upstream) şi spre dispozitiv (downstream);

• distanţa de conectare este de maximum 5m, distanţa se poate mări prin inserarea de hub-uri.

Specificaţiile acestei magistrale descriu atributele de magistrală, definesc protocolul, tipurile de tranzacţii, administrarea magistralei (bus management) şi totodată furnizează informaţii necesare pentru construirea unui sistem în acest standard.

Magistrala USB defineşte trei categorii de dispozitive fizice: • gazda USB (USB Host) • funcţii USB (USB function) • distribuitoare USB (USB Hub)

Dispozitivele USB sunt conectate într-o topologie de tip stea multiplă. Topologia USB este reprezentată în figura 3.1. În nodul fiecărei stele se găseşte un hub.

Page 20: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

20

Figura 3.1: Topologia USB

Legătura este multipunct pe magistrală dar punct la punct între hub şi dispozitive. Este posibil ca un dispozitiv fizic să conţină mai multe funcţii şi un hub, acest dispozitiv numindu-se compus. Un exemplu este o multifuncţională care conţine imprimantă, scanner şi fax, toate acestea fiind funcţii USB.

Fiecare dispozitiv USB poate dispune de una sau mai multe endpoint-uri prin care gazda comunică cu dispozitivul. Un endpoint este un registru intern, adresabil de gazdă în care se pot trimite sau din care se pot citi informaţii specifice. Toate dispozitivele posedă un endpoint special, endpoint zero, care este privit ca pipe de control. Pipe-ului endpoint zero îi este asociată informaţia ce descrie complet dispozitivul USB: clasa de dispozitiv, informaţii de power management, producător etc.

Iniţiatorul transferurilor de date pe magistrală este gazda USB. Protocolul folosit este protocol prin interogare (de tip polled). Datele vehiculate pe magistrală sunt grupate în pachete iar o tranzacţie de magistrală implică transmiterea a cel mult trei pachete. Fiecare tranzacţie începe prin trimiterea de către gazdă a unui pachet de semnalizare -token packet- care descrie tipul şi sensul tranzacţiei, adresa dispozitivului USB şi numărul nodului destinaţie (endpoint). Dispozitivul adresat se selectează prin decodificarea adresei ce-i corespunde. Urmează transferul de date de la gazdă spre dispozitivul adresat sau invers, după cum este specificat în pachetul de semnalizare. Receptorul răspunde în această tranzacţie printr-un pachet de dialog -handshake packet- prin care se confirmă (sau nu) încheierea cu succes a transferului de date.

Aspectele electrice şi mecanice ale interfeţei sunt reglementate foarte precis în specificaţiile de magistrală. Semnalele electrice sunt transmise diferenţial (D+ şi D-). Codificarea utilizată este NRZI cu împănare de biţi (bit-stuffing) şi tactul de recepţie este generat din datele transmise, codul fiind autosincronizabil.

Cablul USB are patru fire, semnalul util este transportat pe două conductoare torsadate iar pe celelalte două conductoare cablul transportă tensiunea de alimentare nominală de +5V (VBUS) şi potenţialul de referinţă (GND), figura 3.2.

Dispozitiv compus

Gazda USBRoot hub

Funcţie USB

Hub 1 Funcţie USB Hub 2

Funcţie USB

Funcţie USB Funcţie

USB Funcţie USB

Endpoint

Page 21: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

21

Figura 3.2: Cablu USB

Tensiunea transmisă pe linie nu este tensiunea de alimentare a calculatorului gazdă ci este gestionată de controllerul USB, aşa încât o suprasarcină este detectată şi un mesaj de eroare este afişat de sistemul de operare.

Uşurinţa cu care este utilizată USB rezultă din atributul special de tip plug-and-play al acestei magistrale. USB acceptă cuplarea şi decuplarea de dispozitive în orice moment; sistemul software se adaptează dinamic la modificările fizice de topologie. Un dispozitiv USB este plasat fizic în structură prin ataşarea la portul unui hub. Hub-ul dispune de indicatori de stare la fiecare port pentru a semnaliza cuplarea sau decuplarea unui dispozitiv. Gazda sesizează semnalizarea de la hub şi atribuie o adresă unică dispozitivului. La decuplare hub-ul dezactivează portul şi indică gazdei acest eveniment. Pentru a se adapta dinamic, sistemul software USB este permanent într-un proces de inventariere a magistralei (bus counting).

Arhitectura USB distinge patru tipuri de bază de transferuri de date:

• transferuri de control (Control Transfers) - sunt folosite pentru configurare şi comandă şi obligatoriu trebuie să fie suportate de toate perifericele;

• transferuri cu volum mare de date (Bulk Data Transfers) - permit dispozitivelor să schimbe cantităţi mari de informaţie cu gazda pe măsură ce magistrala devine disponibilă, (ex.: camere digitale, scannere sau imprimante);

• transferuri prin întreruperi (Interrupt Data Transfers) - a fost proiectat ca suport pentru periferice de intrare controlate de om, (tastatură, mouse, joystick), care au nevoie să comunice rar, cantităţi mici de date; datele transferate în acest mod sunt caractere, coordonate sau semnalizări de evenimente organizate în unul sau mai mulţi octeţi;

• transferuri izocrone (Isochronous Transfers) - asigură un acces garantat la magistrală, flux de date constant şi tolerează erorile de transmisie; datele izocrone sunt continue şi în timp real la toate nivelele: generare, emisie, recepţie şi utilizare la receptor; acest tip de transfer este folosit pentru fluxuri de transfer în timp real cum ar fi sistemele audio.

3.1.2.Protocolul USB

USB foloseşte un protocol bazat pe pachete de date (Data Packet). Un pachet de date este o colecţie de cadre de date (Data Frame). Numărul de biţi dint-un cadru nu are o valoare fixă.

VBUS VBUS

D+ D-

D+ D-

GND GND

Page 22: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

22

Majoritatea sistemelor folosesc cadre de 4 până la 8 biţi de date. Biţii sunt trimişi spre magistrală astfel: primul bit este cel mai puţin semnificativ bit (LSB) din cadru, urmat de bitul mai semnificativ până la trimiterea celui mai semnificativ (MSB) bit din cadrul respectiv. Protocolul USB defineşte patru tipuri de pachete de date:

• pachet de semnalizare (Token Packet) • pachet de date (Data Packet) • pachet de dialog (Handshake Packet) • pachet special (Special Packet)

Toate pachetele conţin la începutul lor un câmp de sincronizare, numit SYNC care permite buclei PLL pentru refacerea tactului din receptor să se sincronizeze, şi un câmp identificator de pachet, numit PID (Packet Identifier).

SYNC este primul câmp din orice pachet USB. Câmpul de sincronizare este constituit dintr-o serie de biţi care produc un şir dens de tranziţii utilizând schema de codificare NRZI cerută de standardul USB. Câmpul apare ca o serie de trei tranziţii 1/0 urmată de o marcă cu lăţimea a două impulsuri. Datele din câmp au succesiunea de valori 0000 0001. Câmpul PID urmează câmpului SYNC într-un pachet USB şi are lungimea de 8 biţi. Primii patru biţi indică tipul pachetului, iar următorii patru sunt în ordine primii patru complementaţi (complement faţă de 1) şi sunt folosiţi ca biţi de verificare pentru a confirma acurateţea primilor patru. Orice transfer începe prin trimiterea de către gazdă a unui pachet de semnalizare. Un pachet are 32 de biţi împărţiţi în cinci câmpuri. Structura pachetului este reprezentată în figura 3.3A. Informaţia propriu-zisă este transferată în sistemele USB sub forma unor pachete de date. Structura acestui pachet este dată în figura 3.3B. După câmpurile SYNC şi PID urmează câmpul de date care este compus dintr-un număr întreg de octeţi, de la 0B la 1023B. Corectitudinea câmpului de date este asigurată prin câmpul de verificare ciclică de 16b aflat la sfârşitul pachetului.

Pachetele handshake sau de dialog sunt folosite pentru a raporta starea unui transfer de date, pentru a indica recepţia cu succes a datelor sau pentru a întoarce valori care indică acceptarea/ respingerea unei comenzi sau o stare de HALT la dispozitiv. Acest tip de pachet este compus doar din două câmpuri; SYNC şi PID. Structura este reprezentată în figura 3.3C.

Câmpul PID defineşte trei categorii de pachete handshake:

• Pachetul handshake ACK indică emiţătorului că pachetul de date a fost recepţionat fără erori;

• Pachetul handshake NAK indică faptul că o funcţie nu a fost capabilă să recepţioneze date de la gazdă (într-o tranzacţie OUT) sau că o funcţie nu are date de transmis gazdei (într-o tranzacţie IN). O gazdă nu poate trimite niciodată NAK;

• Pachetul STALL este emis de o funcţie ca răspuns la un pachet de semnalizare IN sau după o tranzacţie de date OUT, indicând că funcţia nu este capabilă să emită sau să recepţioneze date. Gazda nu poate răspunde cu pachet STALL.

Page 23: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

23

Figura 3.3: Structura pachetelor USB

3.1.3.Cuplarea unui MC la USB printr-o interfaţă specializată

Dacă aplicaţia necesită cuplarea unui MC la USB atunci există două variante, utilizarea unei interfeţe specializate aşa cum sunt cele din familia FTDI sau alegerea unui MC care are interfaţă USB integrată.

Circuitele FTDI [2] cel mai cunoscute sunt cele de conversie USB-RS232 FT8U232AM (USB 1.1) şi FT8U232BM (USB 2.0) şi cele de conversie USB-paralel FT8U245AM (USB 1.1) şi FT8U245BM (USB 2.0). Protocolul USB este încorporat total în circuit şi nu este nevoie de programarea formării sau gestionării cadrelor USB.

Emiţătorul / receptorul USB transmit /recepţionează datele USB. Motorul serial codifică / decodifică datele, asamblează cadrul USB, inserează sau verifică CRC. Datele sunt convertite în format paralel şi sunt transferate printr-un protocol paralel simplu.

Un generator de tact de 6MHz cu un cristal în exterior generează semnalul de tact, care este multiplicat de 8 ori şi constituie tactul intern al circuitului. Un generator de 3,3V alimentează blocurile interne dar tensiunea generată poate fi folosită şi în exterior. EEPROM-ul serial memorează date privitoare la configuraţia circuitului.

Datele în format paralel pot fi citite sau scrise printr-un protocol controlat de semnalele RD, WR, TxE şi RxF dar pot fi transferate automat cu o periodicitate dată de un timer intern, ceea ce face posibile aplicaţii în care FTDI nu este cuplat în partea paralelă la un microcontroller ci la un simplu element de execuţie sau traductor. Acest mod de lucru se numeşte Bit Bang.

Schema bloc a circuitului 245BM este dată în figura 3.4.

A B C

SYNC PID CRC

8b 8b 0 - 16b

DATA

SYNC PID Câmp adresã

Endpoint CRC

8b 8b 7b 4b 5b

SYNC PID

8b 8b

Page 24: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

24

Figura 3.4: Schema bloc a unui circuit FT245BM

Scrierea datelor se face când TxE este în stare 0 logic. După memorarea octetului în bufferul de transmisie TxE devine din nou 0 logic, figura 3.5. La recepţia datelor se foloseşte RxF care în stare 0 logic anunţă că s-a recepţionat un caracter, figura 3.5.

Figura 3.5: Scrierea / citirea datelor în mod paralel

FT245BM

Emiţător/ Receptor USB

Motor serial USB

Generarea protocolului

Buffer de recepţie FIFO 128 octeţi

Buffer de emisie FIFO 384 octeţi

Control FIFO şi interfaţă paralelă

Control EEPROM serial

EEPROM serial

Generator al tensiunii de 3,3V

Oscilator 6MHz

x8

PLL pentru refacerea tactului din date

3,3V D+

D-

D0-D7 RDWRTxERxF

Timer

D0-D7 WR TxE

RxF RD D0-D7

Page 25: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

25

Circuitul FT232BM are o schemă bloc asemănătoare, diferenţa fiind blocul de interfaţă care este în acest caz serială. Semnalele sunt cele de la RS232: TxD, RxD, RTS, CTS, DTR, DSR, DCD, RI şi în plus TxDEN un semnal de validare transmisie necesar la standardul RS485.

Două semnale care arată că se transmit sau se recepţionează date TxLED şi RxLED pot să fie folosite la comanda unor indicatoare luminoase de activitate. Protocoalele permise sunt cele hard DTR sau CTS şi soft Xon-Xoff. Un circuit generator de rată de Baud asigură tactul standard necesar transmisiei.

Figura 3.6: Conectarea FT245BM la un MC PIC16F

Page 26: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

26

Interfaţa cu microcontrollerul este simplă şi uşor de implementat, constă ca şi hardware în conectarea câtorva semnale, TxD cu RxD la FT232BM şi cele 8 linii de date şi 4 de protocol la FT245BM. În figura 3.6 se vede simplitatea unei conectări a unui circuit FT245BM la un microcontroller PIC16F [3]. Interfaţa cu calculatorul gazdă, de regulă un PC înseamnă în primul rând descărcarea driverelor de pe site-ul FTDI pentru sistemul de operare instalat. Cuplarea circuitului FTDI la USB (în cazul sistemului de operare WINDOWS) va avea ca efect dialogul “Found new hardware…). După instalarea driverelor circuitul FTDI va apărea ca în figura 3.7.

Figura 3.7: Driverul software instalat sub WINDOWS

Pentru transferul datelor FTDI pune la dispoziţia utilizatorului o bibliotecă DLL şi documentaţie pentru programare (API). Astfel, o scriere / citire de date prin USB în FTDI se poate face cu o comandă FT_write / FT_read. Un exemplu de citire a tuturor datelor disponibile în circuit, preluat din D2XX Programmer’s Guide [2]:

Page 27: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

27

Uşurinţa implementării unei interfeţe USB a condus la realizarea unui proiect prin care a fost realizată o lucrare de laborator [4]. Proiectul a constat în realizarea unei plăci de interfaţă USB paralel cu circuitul FT245BM. La partea paralelă a circuitului a fost conectată o bară 8 de LED-uri ca ieşire şi 8 întrerupătoare ca intrare, figura 3.8. Sensul datelor a fost stabilit de un microîntrerupător. Circuitul FT245BM a fost lipit pe partea din spate a plăcii. Studenţii au primit software-ul de lucru şi au avut ca sarcină aprinderea LED-urilor şi citirea întrerupătoarelor.

Figura 3.8: Lucrare de laborator cu FT245BM

3.1.4.Microcontrollere cu USB integrat

Un model de microcontroller cu USB integrat este ATMEL AT90USB care este disponibil în diverse combinaţii de memorie. Interfaţa USB are următoarele caracteristici:

• Viteza este de 1,5 Mbps la USB 1.0 (Low Speed), 12Mbps la USB 1.1 (Full Speed); • Conţine 7 endpoint-uri cu dimensiunile de 64 octeţi (endpoint 0, de control), 256

octeţi (endpoint 1) şi câte 64 octeţi celelalte; • Conţine o memorie dual port DPRAM de 832 de octeţi pentru endpoint-uri.

Schema bloc a interfeţei USB integrate este dată în figura 3.9.

Page 28: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

28

Figura 3.9 Schema bloc a interfeţei USB

Tactul necesar pentru interfaţa USB este de 48MHz cu toleranţa de 0,25%, deci trebuie acordată atenţie tactului extern şi prescalării. Circuitul PLL este digital (DPLL) pentru a asigura performanţele necesare refacerii tactului. Regulatorul de tensiune asigură tensiunea necesară pentru D+ şi D- (3V...3,6V) din tensiunea de alimentare a circuitului (5V). MC admite lucrul OTG (On-The-Go) conform cu suplimentul specificaţiilor USB, care permite transmisia de semnalizări pe lina VBUS.

Modurile în care lucrează MC pot fi:

• Funcţie (ATMEL denumeşte dispozitiv USB) cu alimentare de la USB (Figura 3.10 a); • Funcţie cu alimentare proprie (Figura 3.10 b); • Gazdă USB (Figura 3.10 c), mod care nu este implementat în toate MC din familie.

Modul de lucru gazdă sau funcţie şi vitezele de transfer se selectează cu valori logice la pini de comandă.

Figura 3.10: Modurile de lucru ale MC

Interfaţa USB

DPLL refacere tact

DPRAM USB

Prescalare tact 24x

Regulator tensiune 2MHz

D+

D-

VBUS

tact

VBUS

D+

D-

VC

VBUS

D+

D-

VC

Comandă alimentare

VBUS

D+

D-

VC

a b c

Page 29: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

29

Pe liniile de date D+ şi D- se inserează rezistoare serie de 22Ω.

Transferul de date bazat pe endpoint-uri şi pipe-uri este reprezentat în figura 3.11:

Figura 3.11: Transferul de date bazat pe endpoint-uri

Transmiterea datelor pe aceeaşi linie dar din surse diferite prevăzute cu buffer-e şi spre destinaţii diferite fluidizează traficul. Mărimea endpoint-urilor poate fi programată în MC, cu anumite condiţionări. Fiecare endpoint poate cere o întrerupere atunci când este plin (la recepţie) sau gol (la emisie). Registrele de programare a USB au semnificaţii diferite pentru modul de lucru gazdă sau funcţie.

MC are posibilitatea de lucru cu economie de energie în următoarele moduri:

• Mod Idle, în care CPU este oprit, repornirea fiind posibilă la orice întrerupere USB; • Mod Power Down, în care CPU şi periferia sunt oprite, repornirea fiind posibilă doar

la anumite întreruperi USB; • Mod Freeze Clock, în care tactul pentru USB este oprit. Intrarea în acest mod se poate

comanda printr-un bit într-un registru de comandă USB. Repornirea este posibilă doar la anumite întreruperi USB.

Modul de lucru ca gazdă USB sau dispozitiv USB este determinat de valoarea logică a unui pin (UID) sau software prin poziţionarea unui pin într-un registru USB. Modul de lucru Low Speed sau Full Speed se poate selecta prin valoarea logică a doi pini externi. Valorile logice de comandă pot fi stabilite local cu rezistoare sau de la distanţă.

Gazdă USB

Funcţie USB

Endpoint 6

Endpoint 1

Endpoint 0

Buffer

Buffer

Buffer

Program client

Pipe 0

Pipe 6

Page 30: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

30

În funcţie de modul de lucru ales pentru interfaţa USB, software-ul trebuie să comande următoarele acţiuni:

1.Pornirea interfeţei USB • pornirea regulatorului de tensiune; • configurarea PLL, validarea PLL şi comanda unui întârzieri pentru ca PLL să se

sincronizeze; • validarea şi configurarea interfeţei USB prin alegerea vitezei, configurarea endpoint-

urilor etc.; • ataşarea unui dispozitiv USB.

2.Oprirea interfeţei USB: • detaşarea dispozitivelor USB; • invalidarea interfeţei USB, a circuitului PLL şi a regulatorului de tensiune.

Intrarea în modul de lucru cu economie de energie se face astfel: se opreşte tactul, se opreşte bucla PLL, se validează întreruperile care scot interfaţa din acest mod de lucru, se opreşte CPU. Reintrarea în modul de lucru se face cu aceleaşi operaţii în ordine inversă. Ca exemplu de transfer de date prin USB, în figura 3.12 se arată diagrama de timp pentru un transfer de date de scriere:

Figura 3.12: Scriere USB

Un pachet de semnalizare este generat pentru stabilirea destinaţiei transferului. Se generează o întrerupere RXSTPI (generată la transmisia pachetului de semnalizare). Prin software se şterge informaţia din endpoint-ul transmis şi se transmit pachete de date de ieşire. După fiecare pachet de date transmis se generează o întrerupere RXOUTI pentru a informa MC de transmisia pachetului şi a putea şterge conţinutul endpoint-ului folosit. După recepţionarea pachetelor de date dispozitivul destinaţie răspunde cu un pachet de dialog pentru a confirma primirea datelor. Se generează un semnal TXINI în zero pentru a permite recepţionarea unui alt pachet de dialog. Fronturile îngroşate sunt cele generate prin comenzi software iar cele neîngroşate sunt generate hardware ca întreruperi.

Simplitatea constructivă a conectării unui MC pe USB este demonstrată de schema electrică a unei păci de dezvoltare, figura 3.13 [5].

SETUP OUT OUT IN Linia USB RXSTPI RXOUTI

TXINI

CONFIGURARE DATE STARE

Page 31: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

31

Figura 3.13: schema electrică a unei plăci de dezvoltare Teensy

3.2.IEEE 1394

IEEE 1394 este o interfaţă serială cunoscută sub numele de FireWire (Apple), i.LINK (Sony) şi LYNX (TI). Interfaţa a fost adoptată de HANA (High Definition Audio-Video Alliance) ca interfaţă standard disponibilă şi wireless, pe fibră optică sau pe cablu coaxial. Dezvoltarea interfeţei a început în 1980 şi a fost încheiată în 1995. IEEE 1394 a fost aplicată şi în aviaţia militară ca magistrală pentru F-22 Raptor şi F-35. Navetele spaţiale NASA au folosit IEEE 1394 pentru anumiţi senzori. În industria auto a fost implementată o versiune numită IDB 1394. Cu toate că IEEE 1394 nu are răspândirea pe care o are USB, majoritatea camerelor digitale sunt echipate cu o astfel de interfaţă.

Ca şi în majoritatea comunicaţiilor seriale transferul de date este bazat pe pachete. Canalul comun de date este conceput să poată fi folosit pe rând de fiecare dispozitiv care îl solicită. Există un interval de timp specificat (numit fairness interval) în cadrul căruia un dispozitiv are accesul la canalul de date comun. După ce dispozitivul a trimis un pachet de date se aşteaptă scurgerea unui timp de separare (numit sub-action gap) după care un alt dispozitiv poate

Page 32: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

32

trimite un pachet. Dacă după scurgerea timpului de separare nici un dispozitiv nu are de transmis vreun pachet, urmează o secvenţă de reset.

Pentru a face posibilă funcţionarea dispozitivelor care necesită flux de date în timp real, IEEE-1394 foloseşte un mod special de transfer, modul izocron, ca şi USB. Un dispozitiv ce necesită date izocrone emite la fiecare 125µs un pachet special de temporizare prin care asigură prioritatea transferului. Această schemă de arbitrare garantează un minim de buffer-e pentru date audio sau video (1 byte la dispozitive audio, până la 6 bytes la dispozitive video). Perioada de 125µs coincide cu perioada de eşantionare din sistemul de telefonie digitală, astfel interfaţa IEEE-1394 poate fi plasată în sistemul ISDN (Integrated Service Digital Network).

IEEE 1394 este asemănătoare cu USB, aşa încât este utilă o comparaţie:La IEEE 1394 nu este nevoie de un calculator gazdă;

• IEEE 1394 asigură o viteză efectivă de transfer mai mare decât USB ( dovedit pe sistemul de operare MAC OS X dar cu rezultate contradictorii sub Windows);

• Implementarea IEEE 1394 are costuri mai mari: licenţa Apple (0.25$/sistem) şi hardware mai scump cu 1-2$;

• Ambele standarde pun la dispoziţie prin cablul de transmisie de date o tensiune de alimentare, sunt plug and play şi admit hot swapping. IEEE 1394 admite tronsoane de cablu de maximum 4.5m şi poate alimenta o sarcină cu consum de până la 45W.

• Fiecare dispozitiv IEEE 1394 are un identificator propriu unic, (IEEE EUI-64) care este o adresă asemănătoare cu adresa MAC de 48 de biţi.

În decursul timpului au fost realizate mai multe variante constructive:

a.FireWire 400 (IEEE 1394/1995). Versiunea originală poate transfera date cu viteze de 100, 200 sau 400 Mbps (S100, S200, S400) în mod half duplex. Modul de codificare al datelor este data strobe D/S;

b. FireWire 800 (IEEE 1394b/2002). Versiunea a doua asigură o viteză de 800Mbps în mod full duplex. Conectica este diferită faţă de varianta anterioară. Modul de codificare al datelor este 8B10B.

c.FireWire S800T (IEEE 1394c/2006). Versiunea a treia utilizează cablu Ethernet categoria 5e. Nu există încă implementări în sisteme disponibile pe piaţă datorită confuziei posibile la o placă de bază echipată cu 2 conectori RJ45, unul cu interfaţă Ethernet şi unul IEEE 1394.

d.FireWire S1600 şi S3200Se lucrează la versiunile de 1.6Gbps şi 3.2Gbps, care vor fi concurenţi pentru USB 3.0. Conectorii sunt cei de la versiunea FireWire 800.

Page 33: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

33

Se poate implementa o reţea de calculatoare prin legături IEEE 1394 în mod IPv4 sau IPv6. Sistemele de operare care include suport pentru acest tip de reţea sunt MAC OS X, Windows ME, 2000, XP şi Server 2003. Windows Vista şi Server 2008 nu mai conţin acest suport.

În figura 3.14 este dat un tabel cu conexiunile la conectorii IEEE 1394 cu 4, 6 şi 9 pini şi structura unui cablu IEEE 1394.

4 pini 6 pini 9 pini Funcţie Descriere

1 8 Vcc 30V nestabilizat

2 6 Masă Masă pentru tensiune

1 3 1 TPB- semnal diferenţial B

2 4 2 TPB+ semnal diferenţial B

3 5 3 TPA- semnal diferenţial A

4 6 4 TPA+ semnal diferenţial A

5 ecran A

9 ecran B

Figura 3.14: Tabel cu conexiunile la conectorii IEEE 1394 (sus) şi structura unui cablu IEEE 1394 (jos)

Codificarea datelor D/S este de fapt o codificare NRZ cu transmiterea tactului şi necesită 2 linii de semnal, una de date şi una de strob. Un SAU Exclusiv între cele 2 semnale reconstituie tactul, figura 3.15. Petru transmisia datelor este nevoie de ambele perechi FireWire, deci este posibil doar un transfer half duplex. Codificarea este aplicată la FireWire 400. Codificarea 8B10B a fost imaginată de Al. Widmer şi P. Franaszek de la IBM în 1983 şi IBM a obţinut un patent. Răspândirea codificării a luat avânt după expirarea patentului. Aplicaţiile dovedesc eficienţa codificării: PCI Express, SATA, SAS, Fibre Channel, IEEE 1394b, Gigabit Ethernet (mai puţin la 1000BaseT), DVI, HDMI, USB 3.0 şi seamănă cu codificarea folosită la CD (Eight to Fourteen Modulation).

Perechea A,torsadată

Perechea B,torsadată

AlimentareEcran

Page 34: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

34

Figura 3.15: Codificarea Data /Strobe

În principiu codificarea asigură o componentă DC mică pentru ca şirul de date să poată trece prin transformatorul de separare Ethernet, adică numărul de 0-uri este aproape egal cu numărul de 1-uri. Într-un şir de 20 biţi diferenţa între numărul de 0 şi de 1 poate fi maxim 2. Codul este autosincronizabil şi se admit maxim 5 valori de 0 sau de 1 succesive.

Codificarea atribuie la 8b o entitate de 10b numită simbol sau caracter. La 5b mai puţin semnificativi se atribuie 6b (porţiunea 5b/6b) iar la 3b mai semnificativi se atribuie 4b (porţiunea 3b/4b). Se definesc 12 simboluri speciale de control care marchează începutul cadrului, sfârşitul cadrului, skip, etc. Datorită codării cuvintelor de 8b cu simboluri de 10b anumite valori din cele 1024 pot fi excluse pentru a realiza condiţia de a nu exista 5 valori de 0 sau de 1 consecutive.

Pe linie se transmite întâi porţiunea 5b/6b apoi 3b/4b. Datele pot fi notate ca D.x.y unde x este porţiunea 5b/6b şi poate fi 0-31 iar y este porţiunea 3b/4b şi poate fi 0-7 ca valori necodate.

Se defineşte RD (Running Disparity ca diferenţa între numărul de biţi de 1 şi numărul de biţi de 0. Se urmăreşte obţinerea RD cât mai mic. În acest scop grupurile 5b/6b şi 3b/4b se stabilesc în funcţie de RD anterior ca valori negate sau nenegate.

De exemplu:

D.00 se codifică ca 100111 (RD iniţial este –1 şi rezultă RD=+1) sau 011000 (RD iniţial este +1 şi rezultă RD=–1)

La fel, în funcţie de RD iniţial se codifică şi grupul 3b/4b

D.x.0 se codifică ca 1011 (RD iniţial este –1 şi rezultă RD=+1) sau 0100 RD iniţial este +1 şi rezultă RD=-1). Astfel în ipoteza RD iniţial –1, D.00.0 se codifică ca 1001110100 şi rezultă RD=0

Topologia unei arhitecturi IEEE 1394 este de tip stea multiplă (arbore) cu posibilitatea de înlănţuire (daisy-chain).

Data Strob Data XOR Strob

Page 35: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

35

În figura 3.16 sunt prezentate două spaţii de lucru unite cu un bridge. Cele 2 spaţii sunt izolate din punctul de vedere al traficului de date. Spaţiul 1 de lucru ocupă mare parte a benzii din cauza traficului video, dar în spaţiul de lucru 2 calculatorul are întregul control al traficului. Este posibil ca şi calculatorul 2 să solicite date video, chiar dacă calculatorul 1 este oprit.

Este figurat un repetor care măreşte distanţa de conectare şi un splitter care adaugă 2 porturi unui port IEEE 1394.

Figura 3.16: Topologia unei arhitecturi IEEE 1394

Pentru a transmite date în mod asincron dispozitivul IEEE 1394 compune un cadru care conţine adresele sursei şi destinaţiei, apoi date şi CRC. Când receptorul acceptă datele un cadru de confirmare este trimis la transmiţător. Transmiţătorul are posibilitatea să trimită încă 63 de cadre continuu pentru a mări viteza de transfer. Dacă cadrul de confirmare returnează o eroare se aplică o metodă de reacţie la eroare.

În mod izocron emiţătorul solicită un canal izocron iar dacă receptorul îl acceptă i se asigură un interval de timp de transfer pentru a asigura banda necesară transferului. Se pot defini până la 64 de canale izocrone. În exemplul din figura 3.17 în pachetul de date de 125µs sunt definite 2 intervale de timp pentru 2 transferuri izocrone. Timpul rămas liber se poate folosi la transferuri asincrone.

Spaţiul 1

Spaţiul 2 Calculator 1

Cameră digitală

Repetor

Splitter Bridge

Calculator 2

Imprimantă

Imprimantă

Page 36: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

36

Figura 3.17: Transferuri izocrone pentru a asigura un flux de date în timp real

3.2.1.Module IEEE 1394

Nivelele ISO OSI (Open Systems Interconnection) în cazul IEEE 1394 sunt date simplificat în figura 3.18.

Figura 3.18: Structura stivei OSI la IEEE 1394

Nivelul bus-management

defineşte funcţiile de bază de control precum şi registrele de control şi de stare necesare dispozitivelor conectate pentru a-şi face porturile operaţionale. Acest nivel se ocupă şi de asigurarea canalelor, de arbitrare, mastering şi de erori.

Nivelul de tranzacţie

mediază operaţiile de scriere şi citire. Standardul permite la acest nivel operaţii cu cuvinte de lungime variabilă.

125µs

Canal izocron 1 Canal izocron 2 Interval de timp pentru transferuri asincrone

Slot de timp liber Sloturi de timp garantate

Microprocesor, microcontroller sau PCI

Nivel tranzacţie

Nivel legătură

Nivel fizic

Canale IEEE 1394

Nivel bus management

Placa Averna SedNet 1394

PHY TI TSB41

LLC TI TSB12

TI TSB43C Audio/ video

Page 37: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

37

Nivelul de legătură

realizează controlul logic în legătura IEEE 1394. Acest nivel realizează formarea cadrele la transmisie şi extragerea informaţiei din cadrele recepţionate.

Nivelul fizic

presupune atât protocolul transferului cât şi mediul efectiv de transfer. Partea de protocol controlează accesul la legătură, iar partea de mediu este constituită din cabluri şi conectori. La acest nivel se realizează codarea şi decodarea datelor, se asigură nivelele de tensiune necesare şi se face arbitrarea magistralei.

Circuitele IEEE 1394 au un grad de complexitate mai mare decât cele USB, unul dintre motive fiind acela că pot lucra şi independent de calculatorul gazdă. Multe circuite sunt realizate cu magistrală PCI pentru a fi utilizate în calculatoare PC. În figura 3.18 sunt date câteva exemple de circuite şi plăci şi nivelele OSI pe care le acoperă. A fost figurat un circuit care acoperă nivelul fizic (PHY Pysical Layer Controller) şi unul care acoperă nivelul de legătură (LLC Link Layer Controller). Unele circuite, aşa cum este TSB43C de la Texas Instruments acoperă mai multe nivele şi încorporează blocuri de prelucrare audio video, un alt motiv pentru complexitatea mai mare a circuitelor.

Figura 3.19: Placa IEEE 1394 SedNet

Placa SedNet de la Averna [6] este un sistem de dezvoltare IEEE 1394 cu microcontroller Motorola şi arată ca în figura 3.19.

Acest sistem de dezvoltare este o soluţie hardware şi software completă pentru gestionarea unei comunicaţii IEEE 1394 între aplicaţia unui client care rulează pe un microcontroller care se conectează cu această placă prin intermediul unor linii de I/O sau o aplicaţie client care rulează pe microcontrollerul plăcii SedNet. Partea software se numeşte Micro-Stack, rulează pe microcontrollerul plăcii şi realizează nivelele bus-management şi tranzacţie din comunicaţia IEEE 1394. Există şi varianta de a cumpăra sursa programului Micro-Stack şi de a o porta pe un alt microcontroller pentru a dezvolta o soluţie hardware proprie. Alimentarea plăcii este realizată cu alimentator propriu sau prin cablul IEEE 1394, dar în al doilea caz acest caz nu este posibilă izolarea galvanică între controllerul de nivel fizic şi restul plăcii. Schema bloc a plăcii SedNet este dată în figura 3.20.

Page 38: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

38

Figura 3.20: Schema bloc a plăcii SedNet

Microcontrollerul MMC2107 are încorporat 128k FLASH iar pentru testare şi debugging portul JTAG este scos la pinii de I/O. Accesul este posibil de la distanţă prin IEEE 1394 la toate resursele plăcii.

Se pot conecta maximum 62 dispozitive IEEE 1394, cu viteze de transfer posibile 100, 200 şi 400Mbps. Placa suportă atât transferuri izocrone cât şi asincrone, datele putând fi preluate direct, fără intermediul microcontrollerului MMC2107 de la controllerul de nivel legătură. Legătura directă este recomandată pentru transferul datelor cu volum mare, cum ar fi cele de la dispozitivele video. Semnalele de legătură cu microcontrollerul sunt cele obişnuite - un port RS232, SPI, JTAG, semnale de întrerupere, reset, tact, linii de I/O etc. Placa a fost special concepută pentru aplicaţii înglobate care nu conţin PC pentru că nu are interfaţă PCI.

3.2.2.Circuite IEEE 1394

Pentru exemplificare au fost alese circuite de la Texas Instruments, cele reprezentate în figura 3.17. Un circuit care acoperă nivelul fizic este TSB41AB3, cu 3 porturi IEEE1394. Interfaţa către circuitul care acoperă nivelul de legături este paralelă, pe 2, 4, sau 8 biţi la 49,152MHz, admite decuplare optică şi poate lucra cu circuite alimentate cu 3,3V sau 5V. Capsula este de 80 de pini. Schema bloc a circuitului este dată în figura 3.21.

Cele 3 porturi IEEE 1394 conţin transceivere diferenţiale pentru transmisie şi recepţie şi circuite care monitorizează starea conexiunii. Tactul intern este generat prin conectarea în exterior a unui cristal de 24,576MHz şi multiplicarea cu o buclă PLL pentru obţinerea tactului de 393,216MHz. Toate semnalele de tact necesare, cum ar fi cel de transfer de date paralel de

SedNet Motorola MCore

MMC2107

256k RAM static

Conectori I/O

Link Controller

TSB12 LLC

Controller de nivel

fizic TSB41 PHY

1 2 3

Izolare galvanică

3 porturi IEEE 1394

Date direct

Page 39: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

39

49,152MHz se obţin prin divizarea tactului de 393,216MHz. Circuitul admite moduri de lucru cu economie de energie. Astfel, în modul Power Down tactul de 393,216MHz este oprit.

Figura 3.21: Schema bloc a circuitului controller PHY de la TI, TSB41AB3

Circuitul admite lucrul cu izolare galvanică spre controllerul LLC. Pentru aceasta, în cazul validării izolării galvanice furnizează date în mod diferenţial spre LLC pentru ca să poată trece printr-un transformator.

Datele sunt transmise între PHY şi LLC în format paralel pe 2, 4 sau 8 biţi, funcţie de viteza de transfer cerută şi sunt stocate într-un buffer. După codarea datelor ele sunt transmise serial pe linie cu tactul de 392,216MHz, 196,608MHz sau 98,304MHz ceea ce realizează vitezele de transfer S400, S200 sau S100. Datele codate sunt transmise diferenţial pe perechea TPA iar tactul pe TPB. La recepţie transmiţătoarele de linie sunt invalidate şi se face recepţia datelor şi decodificarea lor cu aceleaşi variante de tact. Datele sunt refăcute cu ajutorul strob-ului, codificarea fiind D/S, apoi sunt grupate pe 2, 4 sau 8 biţi în format paralel, resincronizate şi transmise către LLC cu tactul de 49,152MHz.

Fiecare port IEEE 1394 este prevăzut cu comparatoare a tensiunii comune preluate cu divizor rezistiv cuplat între liniile diferenţiale. Informaţia oferită de comparatorul de pe liniile TPA este folosită în timpul arbitrării pentru stabilirea vitezei următorului pachet de date. Comparatorul de pe liniile TPB stabileşte dacă există o conexiune. Impedanţa liniei de

TPBIAS0 TPBIAS1 TPBIAS2

TPA0+ TPA0- TPB0+ TPB0-

Port 0

TPA1+ TPA1- TPB1+ TPB1-

Port 1

TPA2+ TPA2- TPB2+ TPB2-

Port 2

Generare tensiune

Arbitrare şi controlul

liniei

Decodare date

Codare date

Interfaţa spre

nivelul de legătură

Date D0-D7,Semnale de comandă şi stare

Generator tact, multiplicare PLL

Page 40: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

40

transmisie este de 110Ω şi liniile sunt adaptate la capete cu câte 2 rezistoare serie de câte 56Ω. Tensiunea este de 1,86V şi este generată de PHY pentru fiecare port.

Circuitul LLC TSB12LV32 este un circuit care acoperă nivelul legătură. Circuitul este încapsulat într-o capsulă de 100 de pini. Schema bloc a circuitului este dată în figura 3.22.

Figura 3.22: Schema bloc a circuitului controller LLC de la TI, TSB12LV32

Circuitul LLC asigură transmisia şi recepţia cadrelor de date la viteza de maximum 400Mbps prin intermediul celor 2 FIFO de 2kocteţi. Circuitul formează /descompune cadrele, calculează şi ataşează CRC-ul. Circuitul poate administra magistrala (bus manager) şi poate conduce transferuri izocrone (Isochronous Resource Manager IRM). Interfaţa cu microcontrollerul este paralelă pe 8/16 biţi la frecvenţa de maximum 60MHz. Cele 2 FIFO de 2k la recepţie (General Receive FIFO GRF) şi transmisie (Asynchronous Transmit FIFO ATF) sunt accesibili de către microcontroller. Portul direct de date (Data Mover Port DM) poate recepţiona şi transmite date izocrone, asincrone şi streaming cu tact de maximum 25MHz şi la port se conectează de regulă o memorie de capacitate mare.

Ca şi microcontroller gazdă se pot folosi microcontrollere din familia Motorola 68000 sau Freescale ColdFire™ fără hardware suplimentar. Microcontrollerele şi microprocesoarele Freescale folosesc o arhitectură particulară a magistralei externe, numită FlexBus cu varianta Mini-FlexBus [7], pentru conectarea în exterior a memoriei sau altor circuite, asemănătoare cu magistrala prezentată în capitolul 2.

Ultimul circuit amintit aici este TSB43CA43A, care include atât controllerul PHY cât şi cel LLC, precum şi funcţii audio video. Circuitul se bazează pe un nucleu ARM7, are 176 pini şi este destinat ca soluţie single chip pentru interfaţarea dispozitivelor audio video prin IEEE 1394. Cele 3 porturi IEEE 1394 care echipează circuitul pot asigura o rată de transfer de maximum 400Mbps. Circuitul are schema bloc din figura 3.23.

Adrese 7 biţi Date 16 biţi, comenzi, stări D0-D15 Control, tact

Controller PHY

Nucleul LLC

FIFO 2k ATF 2k GRF

Interfaţa microcontroller Adrese 7 biţi Date 32 biţi

Port de date direct (Mover Port)

Page 41: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

41

Blocul audio video se interfaţează cu sursa de semnal prin două canale seriale HSDI (High Speed Data Interface) prin care pot circula date standard MPEG2-DVB (Digital Video Broadcasting, care este un mod de transmisie digital compresat al semnalului video într-un şir MPEG, datele fiind modulate OFDM, Orthogonal Frequency Division Multiplexing). Alte standarde admise sunt DV (Digital Video), DSS (Direct Satellite System, sistem proprietar al DirecTV, SUA, cu codare QPSK şi cadre de 127 octeţi), audio DAC etc.

Figura 3.23: Schema bloc a circuitului TSB43CA43A

În 1998 5 firme (Hitachi, Intel, Matsushita, Sony şi Toshiba) au creat o asociere pentru a asigura protecţia datelor audio video transmise prin cablu, protecţie numită DTLA Digital Transmission Content Protection. Circuitul TSB43 conţine un bloc DTLA (Digital Transmission Licensing Administrator) care asigură criptarea /decriptarea datelor cu ajutorul unui cifru realizat de Hitachi numit M6, prevăzut pentru fiecare canal HSDI. Calculele matematice sunt efectuate pe 160 biţi.

Unitatea centrală este ARM7 la 50MHz cu mod de funcţionare pe 32 de biţi şi 16 biţi, cu 256kocteţi memorie de program şi suport JTAG pentru test şi punere la punct. Interfaţa cu exteriorul este printr-o interfaţă paralelă de 16 biţi în mod sincron sau asincron la care se poate conecta o memorie externă sau un alt circuit. Un port UART asigură transferul de date la viteze mici. 11 linii de I/O de uz general completează posibilităţile de conectare a circuitului cu exteriorul.

TSB43CA43A ARM7TDMI

HSDI Criptare / decriptare

Link Controller

Controller de nivel

fizic

1 2 3

Interfaţă paralelă 16 biţi UART JTAG Linii I/O Date audio/ video

256ko program

Page 42: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

42

Bibliografie

[1] Filatova A., USB 3.0 Poised for Success, 2009, [online], http://exectweets.com/2009/11/30/superspeed-usb-poised-for-success/

[2] www.ftdichip.com, [online] [3] Stedman I., PIC USB Interface, [online],

http://www.ianstedman.co.uk/Projects/PIC_USB_Interface/pic_usb_interface.html [4] Gerigan C., Ogrutan P., USB Controller- Educational aspects, The 10 International

Conference on Optimization of Electrical and Electronic Equipment, Optim 2006, ISBN 973-635-702-3, Brasov

[5] Teensy++ USB Development Board, [online] [6] http://www.averna.com/en/products/ieee1394/hardware.php

[7] Lobdell M., Using the Mini-FlexBus External Bus Interface for ColdFire Microcontrollers AN3854/2009, Freescale Semiconductor

Page 43: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

43

Capitolul 4: Aplicaţii auto

Aplicaţiile auto au câteva particularităţi care trebuie considerate atunci când se alege un microcontroller care să gestioneze o astfel de aplicaţie. Câteva dintre aceste particularităţi sunt:

• Respectarea legislaţiei specifice • Posibilitatea de lucru cu nivele digitale auto • Consum mic de energie • Generare mică de perturbaţii electromagnetice • Siguranţă mare de funcţionare • Microcontrollerul care gestionează aplicaţiile trebuie să aibă integrate modulele

specifice aplicaţiilor. • Temperatura de lucru

Consumul mic de energie şi generarea unui spectru redus de perturbaţii sunt legate de generarea şi folosirea tactului [1].

4.1.Cerinţe specifice şi legislaţie

În plus faţă de majoritatea microcontrollerelor, unele dintre cele produse special pentru industria auto admit pe lângă nivelele logice obişnuite (TTL sau CMOS) şi nivele logice auto, la care VIL este 0,5xVCC. Modul de lucru cu nivele auto măreşte siguranţa în funcţionare 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 acelaşi circuit de masă. Lucrul cu nivele auto poate fi selectat soft pentru anumiţi pini de I/O. Datele de catalog pentru nivelele de intrare arată importanţa nivelelor logice auto pentru mărirea imunităţii la perturbaţii. În ipoteza unei tensiuni de alimentare VCC=5V tabelul nr.1 următor arată nivelele admise la intrare pentru 3 configurări ale pinilor de intrare.

Dacă pentru nivel High la intrare nivelele auto au aceeaşi 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ă decât la MC de uz obişnuit, astfel se solicită uzual temperaturi de lucru între -40°C şi 105°C şi temperaturi de stocare între -55°C şi 150°C.

Un microcontroller destinat industriei auto poate avea un mod specific de generare şi control al tactului: • multiplicarea internă a tactului cu buclă PLL • existenţa tactului de rezervă • modulaţia tactului

Page 44: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

44

Tabel. 4.1: Niveluri admise la intrare pentru 3 configurări ale pinilor de intrare (tensiunea de alimentare VCC=5V)

Tip de nivel pentru nivel High la intrare

Plaja admisă în funcţie 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 funcţie de tensiunea de alimentare

Plaja admisă (Volt)

Nivel CMOS cu histerezis între VSS-0,3V şi 0,2VCC -0,3Vpână la 1V Nivel TTL între VSS-0,3V şi 0,8V -0,3V până la 0,8V Nivel auto între VSS-0,3V şi 0,5VCC -0,3V până la 2,5V

Obţinerea 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 perturbaţii de valoare mai mică. • Este posibilă alegerea factorului de multiplicare prin software, deci pentru aplicaţii care acceptă viteze mai mici se obţine un consum mai mic de la sursa de alimentare.

Pentru mărirea siguranţei în funcţionare, anumite modele de MC au integrat un tact de rezervă RC integrat şi un supervizor de tact. Atunci când supervizorul de tact detectează dispariţia tactului principal sau a subtactului comută pe tactul de rezervă (cu frecvenţa, precizia şi stabilitatea mai mică decât tactul principal sau subtact) şi MC execută un program de urgenţă (salvare date, comunicarea stării de defect etc.). Modulaţia tactului are rolul de a reduce interferenţele electromagnetice (EMI) prin împrăştierea spectrului semnalului de tact.

Modulele electronice care echipează un autovehicul au câteva sarcini care pot fi grupate în următoarele categorii: • Preiau mărimi neelectrice prin intermediul senzorilor, prelucrează valorile electrice după conversia analog numerică, comandă elemente de execuţie şi eventual afişează rezultate. • Comunică între ele pentru a se informa reciproc despre evenimentele din sistem.

Interfeţele care echipează MC utilizate în auto trebuie să îndeplinească în principal câteva condiţii importante: • Siguranţa în funcţionare (pentru că la viteza de rulare o eroare poate duce la pierderea de vieţi omeneşti) • Consum redus de energie (pentru că alimentarea se face de la baterie)

Page 45: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

45

• Pentru comunicaţii între module trebuie folosite cât mai puţine fire (cablajele sunt scumpe şi nesigure).

De regulă, toate MC utilizate în prelucrarea mărimilor neelectrice trebuie să conţină în structură convertoare ADC, minimum 8 canale de conversie, cu aproximări succesive având rezoluţia de 10 biţi. Toate aceste canale pot fi folosite şi cu o rezoluţie de 8 biţi. Modul de funcţionare trebuie să permită conversii continue şi baleierea unui grup de canale de achiziţie în mod continuu. Grupul de canale poate fi definit software. De asemenea achiziţia poate fi declanşată software, printr-un semnal extern sau periodic, determinat de un timer. Timpul de conversie de câteva microsecunde face posibilă achiziţia oricăror semnale din domeniul auto. Precizia şi acurateţea rezultatelor este îmbunătăţită de posibilitatea de programare a timpilor de eşantionare şi de menţinere. Unele MC sunt echipate cu convertoare DAC, de regulă canale de 10 biţi pentru a putea comanda sisteme analogice.

Multe din elementele de execuţie sunt construite pe baza motoarelor pas cu pas şi mai puţine pe baza motoarelor de curent continuu. Motoarele pas cu pas oferă precizie de poziţionare şi simplitate de comandă la costuri mici. Astfel, multe MC sunt echipate cu interfeţe specializate pentru comanda motoarelor pas cu pas şi a celor de curent continuu. Pot fi comandate atât motoarele pas cu pas unipolare cât şi cele bipolare. Comanda fazelor cu un semnal PWM face posibil controlul precis al curentului prin înfăşurare. Conectarea unei înfăşurări între 2 module de control permite comanda cu curenţi în ambele sensuri în înfăşurare, deci o comandă bidirecţională pentru un motor de curent continuu. Driverele integrate permit comanda înfăşurărilor cu curent mare, aşa încât motoarele de mică putere pot fi conectate direct la MC. De exemplu indicatoarele de bord (viteză, turaţie) sunt realizate actual cu motoare pas cu pas.

Multe elemente care trebuie afişate sunt mai bine acceptate dacă sunt afişate pe LCD. Multe MC din familiile pe 8, 16 şi 32 de biţi conţin interfeţe pentru comanda unui LCD în mod caracter. La MC care echipează bordul auto este importantă semnalizarea auditivă pe lângă cea vizuală. De aceea unele MC au integrată o interfaţă de generare sunete, cu posibiltatea reglării volumului şi posibilitatea generării tonurilor cu volum descrescător.

Interfeţele specifice comunicaţiilor de date în domeniul auto sunt: 1.LIN (Local Interconnect Network) este o interfaţă care realizează o comunicaţie serială asincronă punct la punct pe un singur fir. Rata maximă de transfer este de 4 MBd şi distanţa de transmisie, în funcţie de transceiverul folosit este de câţiva metri. Unul dintre circuitele conectate la LIN trebuie să fie master, iar celelalte slave. Masterul generează un nivel space pe perioada 13-16 biţi urmat de un cuvânt 55H. Ca şi slave, interfaţa LIN detectează trecerea liniei în space şi calculează viteza de transmisie din cuvântul 55H recepţionat. Ca avantaje se poate menţiona simplitatea interfeţei, uşurinţa de programare, viteza mare de transfer, transferul pe un singur fir. Distanţa de transfer este suficientă pentru aplicaţii în interiorul autovehiculului. Un dezavantaj major este lipsa siguranţei în funcţionare, nu se face nici măcar verificarea corectitudinii transferului cu bit de paritate, de aceea aplicaţiile trebuie să se rezume la aplicaţii care nu afectează siguranţa autovehiculului.

Page 46: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

46

2.CAN (Controller Area Network) este o magistrală serială introdusă de Robert Bosch GmbH în 1986 pentru comunicaţia de date între 3 module electronice pentru automobilele Mercedes, deoarece interfaţa UART nu putea lucra decât punct la punct. Magistrala CAN a fost dedicată industriei auto dar s-a răspândit rapid şi în alte domenii: automatizări, sisteme integrate etc. Transmisia se face pe 2 fire, half duplex, cu mare viteză (până la 1MBps) pe distanţe 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 conţine câte un registru de erori pentru recepţie şi transmisie care se incrementează cu 1 la o eroare minoră şi cu 8 la o eroare gravă. Un număr de erori mare face ca interfaţa să fie exclusă din comunicaţie. Transmisia se realizează cu cadre şi fiecare mesaj conţine un identificator care arată prioritatea mesajului. Interfeţele receptoare recepţionează toate mesajele şi le reţin pe acelea cu prioritate mare sau cele care le sunt destinate.

Avantajele nete pe care le are CAN faţă de LIN au dus la răspândirea CAN, cu toate că preţul unui MC cu CAN este mai mare decât al celui cu LIN. Preţul mai mare al CAN este justificat de suprafaţa mare de siliciu ocupată de această interfaţă, figura 4.1.

Figura 4.1: Chip de MC echipat cu 2 interfeţe CAN (sursa Fujitsu Microcontroller Seminar, 2003)

Se observă comparativ suprafaţa ocupată de cele 2 interfeţe CAN faţă de memorie. Multe MC sunt echipate cu 2 canale CAN pentru a putea lucra în acelaşi 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 corespunzător şi având adăugat în exterior transceiverul CAN potrivit. Standardele sunt:

• ISO 11519 (CAN Low Speed) standardizează transmisia diferenţială pe 2 fire. Cablul este torsadat, ecranat sau neecranat, cu impedanţa caracteristică de 120Ω +/- 10%. La capătul liniei nu este nevoie de rezistenţe de adaptare pentru că viteza maximă de transfer de 125kbps nu dă naştere la reflexii pe linie.

• ISO 11898 (CAN High Speed) se foloseşte acelaşi tip de cablu, dar linia se adaptează cu rezistenţe de 120Ω pe fiecare fir. Lungimea de transmisie depinde de rata de

Page 47: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

47

transfer. Astfel la 40 metri se poate obţine 1Mbps iar la 6 km rata de transfer nu poate depăşi 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 decât 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 ). Evoluţia automobilelor a dus la creşterea numărului de senzori, elemente de execuţie şi sisteme de control, care a dus mai departe la nevoia unui transfer de date mai rapid şi cu toleranţă la defecte. Aceste cerinţe 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 frânele se comandă prin magistrale mai complexe (Flex Ray sau cel puţin CAN).

Câteva aspecte de legislaţie î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 numărul 2002/95/EC din 27 ian. 2003 interzice utilizarea anumitor substanţe în echipamentele electronice utilizate în industria auto. Aceste substanţe sunt Cadmiul (Cd), plumb (Pb), mercur (Hg), crom hexavalent (Cr), şi doi compuşi ai bromului, polibrominat bifenil (PBB) şi polibrominat bifenil eter (PBDE). Procentul în care apar aceste substanţe trebuie să fie mai mic de 0,1%.

2. AEC-Q100 este un document realizat de Automotive Electronics Council care defineşte câteva condiţii 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 aplicaţii.

Se defineşte gama de temperaturi de funcţionare a circuitelor astfel:

Denumire categorie Gama de temperaturi de lucru în grade Celsius Grad 0 -40 până la +150 Grad 1 -40 până la +125 Grad 2 -40 până la +105 Grad 3 -40 până la +85 Grad 4 0 până la +70

Page 48: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

48

Figura 4.2: Arhitectura unui sistem complex de control auto

Conform cu declaraţiile producătorului de încadrare a temperaturii de lucru într-o anumită categorie, testele se execută în acele condiţii de temperatură.

Câteva dintre testele la care sunt supuse circuitele: • Variaţia temperaturii • Variaţia umidităţii • Stocarea la temperaturi mari • Străpungerea izolaţiei • Caracteristici la lipire • Descărcări electrostatice • Compatibilitate electromagnetică • Şocuri mecanice • Acceleraţii • Vibraţii • Torsiuni • Timp de memorare şi număr de programări 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 maşinii

Conexiune de diagnostic

-control motor -control şasiu -control direcţiecontrol frânare

-bord -sistem navigaţie-ecran de informare

-control confort -clima -uşi -iluminare -trapă

Page 49: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

49

J1752/3, alte teste folosesc norme militare, MIL-STD-883 iar pentru unele teste se definesc condiţii specifice, descrise în AEC-Q100.

Rata de defectare timpurie se determină printr-o încercare accelerată, supunând 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 producător 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.Interfaţa serială LIN

4.2.1.Descriere

De regulă interfaţa LIN este implementată împreună cu UART din cauza faptului că formatul datelor şi transmisia sunt asemănătoare. LIN UART este un modul de comunicaţii seriale sincrone sau asincrone cu dispozitive externe având şi posibilitatea de a lucra în standardul LIN (Local Interconnect Network). Comunicaţia poate fi bidirecţională şi se poate lucra în modul master /slave. Funcţiile ş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 biţi. În mod sincron şi LIN cuvintele pot fi doar de

8 biţi. • Funcţionarea master slave permite operarea master-ului cu mai multe circuite slave • Ceasul serial poate fi conectat permanent la SCK, astfel încât 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 condiţiile în care tactul nu se transmite pe linie, caracterele se transmit asincron dar biţii în caracter se transmit cu un tact standard, care poate fi ales la transmiţător şi la receptor. Tactul de transmisie se numeşte rata de Baud şi trebuie să fie acelaşi la transmiţător şi receptor. Transferul începe cu un bit de start (nivel 0) şi se termină cu unul sau 2 biţi de stop. Datele sunt transmise începând cu LSB sau MSB, programabil. Bitul de paritate este opţional şi este transmis între ultimul bit de date şi primul bit de stop. Lungimea cuvintelor de date poate fi de 7 sau 8 biţi, cu paritate sau fără, 1 sau 2 biţi de stop. Structura unui cuvânt este dată în figura 4.4.

0 1 1 0 1 0 0

Page 50: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

50

Figura 4.4: Structura cuvintelor în mod asincron

Operarea în mod sincron are loc în prezenţa unui tact transmis o dată cu datele. Datele pot fi transmise fără separatori între octeţi şi în acest caz tactul este transmis numai când se transmit date sau în acelaşi 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 biţi fără paritate, un bit de stop, cel mai puţin 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 ieşire un nivel space pe perioada 13-16 biţi, 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 recepţionează trecerea liniei în space şi trebuie să calculeze rata de Baud din cuvântul 55H. Aceasta se realizează cu circuitul de captură care este legat intern la LIN UART şi care măsoară timpul de recepţie 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 fără separare Tactul este generat doar când 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

Biţii D7, paritate şi un bit de stop pot să lipsească.

Sau A/D care indică adresa /data

Page 51: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

51

Figura 4.6: Conectarea a 2 circuite în mod LIN cu transceivere

Modulul LIN UART funcţionează astfel: datele seriale de intrare sunt eşantionate, se detectează biţii de start şi stop şi când este recepţionat un cuvânt se verifică paritatea (dacă s-a programat transfer cu paritate). Cuvântul recepţionat este transformat în format paralel cu tactul dat de generatorul de rată de Baud. Când s-a terminat recepţia unui caracter se poate cere o întrerupere de recepţie. Traseul este invers la transmisie, se serializează caracterul şi se inserează biţii de paritate, start şi stop.

Comunicarea între 2 circuite cu LIN are loc astfel: • Se programează LIN UART • La transmisie se trimite un cuvânt în registrul de transmisie (la o întrerupere de

registru gol) • La recepţie se citeşte registrul de recepţie (la o întrerupere de registru de recepţie plin

sau prin testarea unui flag).

În mod master slave, master-ul trimite un cuvânt care conţine adresa slave-ului, ceea ce este semnalizat de bitul A/D (ultimul bit înainte de stop, inserat în cuvântul transmis). Fiecare slave verifică adresa, dacă mesajul îi este adresat. Transferul are loc astfel:

• Se programează LIN UART • La transmisie se trimite un cuvânt în registrul de transmisie cu adresa (bitul A/D=1) • Se trimite adresa slave-ului • Se trimite un cuvânt cu A/D=0 • Se trimite cuvântul de date în registrul de transmisie • La recepţie 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 recepţionează date prin citirea registrului de recepţie.

TxD RxD

Transceiver LIN

TxD

RxD

Transceiver LIN

Bus bidirecţional pe un fir LIN

Page 52: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

52

4.2.2.Exemplu de microcontroller cu interfaţă LIN integrată

MC ATMEL ATA6612/6613 sunt microcontrollere specializate pe aplicaţii auto şi au integrată o interfaţă LIN care conţine 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 acelaşi chip, figura 4.7.

Figura 4.7: Structura ATA6612

Pentru a mări flexibilitatea în utilizare, ambele circuite componente au scoşi toţi pinii la capsulă. Circuitele sunt verificate AEC-Q100, temperatura de lucru fiind între –40°Celsius şi 125° Celsius şi sunt alimentabile cu tensiuni până la 40V, fiind astfel posibilă alimentarea de la bateria auto. Modurile de lucru Sleep şi Silent asigură un curent consumat mic (10µA în Sleep şi 57µA în Silent). Rata de transfer maximă prin LIN este de 20kBaud şi circuitul poate lucra atât ca master cât ş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

Ieşire din sleep sau silent

Control fronturi

Filtru

Regulator

Vbat

Detecţie supracurent şi supratemperatură

NRES LIN

Protecţie subtensiune

Watchdog

Page 53: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

53

Modurile de funcţionare ale modulului LIN sunt: 1. Normal, în care se transmit şi se recepţionează date. Consumul este de aproximativ 50mA; 2. Silent, comandat de pinul EN cu un front căzător (TxD în stare High). Magistrala LIN este

decuplată de la rezistenţa de pull up pentru ca un scurtcircuit la masă să nu ducă la creşterea curentului. Regulatorul de tensiune este pornit. Ieşirea 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. Ieşirea se poate face de asemenea cu un front căzător pe magistrala LIN urmat de un nivel High menţinut un anumit interval de timp (remote wake-up).

3. Sleep, comandat de pinul EN cu un front căzător (TxD în stare Low) şi este asemănător cu modul Silent cu diferenţa că şi regulatorul de tensiune este oprit.

Ieşirea din mod Sleep sau Silent şi intrarea în mod Normal se face prin starea de Fail Safe, o stare intermediară în care comunicaţia LIN este oprită până la restabilirea parametrilor normali de lucru.

Blocul de protecţie la scurtcircuit şi supratemperatură comandă intrarea în mod Sleep sau Silent dacă linia LIN este scurtcircuitată la masă sau la Vcc până când circuitul se răceşte. Blocul de protecţie la subtensiune verifică tensiunea de +5V şi comandă un RESET al MC prin semnalul NRES la scăderea tensiunii sub o anumită limită.

Watchdog-ul aşteaptă un semnal de redeclanşare pe pinul NTRIG într-un interval de timp Twd şi dacă semnalul nu este primit se generează un RESET pe pinul NRES. Frecvenţa 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

Page 54: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

54

Schema electrică a unui nod LIN slave dată în figura 4.10 arată simplitatea constructivă în aplicaţii şi numărul mic de componente care se folosesc.

Figura 4.10: Aplicaţie: 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 condiţii de siguranţă mare de funcţionare. 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 aplicaţii auto, unde funcţionarea sigură este importantă.

CAN foloseşte protocolul CSMA/CD+AMP (Carrier Sense Multiple Access/ Collision Detection + Arbitration on Message Priority). Înainte de a trimite un mesaj transmiţătorul CAN verifică dacă magistrala este liberă, începe să transmită, apoi verifică existenţa unei coliziuni. Acelaşi principiu este aplicat şi la Ethernet, unde ca reacţie la apariţia unei coliziuni transmiţătoarele abandonează transmisia şi reîncearcă după perioade aleatoare de timp, ceea ce face ca transmisia să aibă probleme la un număr mare de dispozitive cuplate pe linie. La CAN este aplicat un alt principiu de reacţie după detectarea unei coliziuni. Fiecare mesaj

Page 55: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

55

CAN conţine un identificator (11 sau 29 biţi) şi toate nodurile receptoare recepţionează 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 cât identificatorul reprezintă un număr mai mic, cu atât prioritatea este mai mare. Mesajele cu prioritate mai mică aşteaptă eliberarea magistralei pentru a fi trimise.

Linia de transmisie fiind unică pentru toate nodurile (dispozitivele cuplate), nivelul de 0 se numeşte 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 numeşte dominant). În acest mod se poate detecta o coliziune, când un transmiţător transmite un nivel de 1 şi citeşte pe linie un nivel de 0 înseamnă că mai multe transmiţătoare transmit simultan. În acest caz transmiţătorul cu prioritate mai mică abandonează transferul.

Două noduri nu pot transmite mesaje cu acelaşi identificator. Dacă acest lucru se întâmplă totuşi şi transmiterea este simultană nu se poate detecta coliziunea. Coliziunea este detectată mai târziu, în câmpul 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 informaţie (Remote Frame). Un nod poate cere informaţii transmiţând un astfel de cadru. Nodul care dispune de această informaţie trebuie să răspundă. Magistrala CAN poate fi: • CAN standard (Versiunea 2.0 A) cu identificator pe 11 biţi • CAN extins (Versiunea 2.0 B) cu identificator pe 29 de biţi.

Structura unui cadru CAN 2.0A este dată în figura 4.11.

Figura 4.11: Cadru CAN 2.0A

SOF- câmp de start (Start of Frame). RTR- (Remote Transmission Request) un bit care indică un cadru de cerere de informaţie. Cadrele de cerere de informaţii nu au câmp de date. R0, R1- rezervaţi DLC- (Data Length Code) indică numărul de octeţi în câmpul de date.

SOF Câmp de control Câmp de date 0-8 Câmp ACK EOF INT Octeţi CRC

Identificator 11 biţi RTR R1 R0 DLC Date CRC

Câmp de arbitrare

Nivel 0 logic (dominant)

Nivel 1 logic (recesiv) Bus liber

Page 56: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

56

CRC- câmp de 15 biţi de verificare a corectitudinii datelor prin cod ciclic. Câmpul CRC se termină cu un bit recesiv. ACK- este un câmp de confirmare format din 2 biţi, 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 biţi recesivi INT- (INTermission) constă în 3 biţi recesivi după care magistrala se consideră liberă.

Cadrul de date CAN 2.0B este la fel cu cadrul de date 2.0A cu excepţia câmpului de arbitrare care este reprezentat în figura 4.12 şi care conţine 2 zone, una cu identificatorul pe 11 biţi şi una cu restul de 18 biţi de identificare:

Figura 4.12: Câmp 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 biţi este identic. IDE- (Identifier Extension) este un bit care indică dacă cadrul de 2.0A sau 2.0B.

Observaţii privind compatibilitatea între 2.0A şi 2.0B

• Controllerele 2.0B (numite active) pot transmite sau recepţiona mesaje cu ambele structuri.

• Controllerele 2.0A obişnuite, la recepţia unui cadru 2.0B vor genera o eroare. • Există controllere 2.0A (numite pasive) care pot recepţiona cadre 2.0B dar le vor

ignora.

Cadrul de cerere de informaţie are structura unui cadru de date cu bitul RTR recesiv şi fără câmp de date, figura 4.13.

Figura 4.13: Cadrul CAN de cerere de informaţie

CAN este conceput pentru a compensa timpii de întârziere datorate liniilor lungi şi a diferenţelor dintre tactele fiecărui nod. Tactul CAN dă cuanta de timp T cu care se formează bitul CAN. Fiecare timp de bit este împărţit în 4 sectoare, figura 4.14.

• Segmentul SYNC de sincronizare este intervalul de timp în care se aşteaptă frontul activ al impulsului. Are valoarea T.

SRR IDEIdentificator de 11 biţi Identificator de 18 biţi RTR

Câmp de arbitrare

Câmp ACK EOF INT CRC

SOF

RTR

Câmp de arbitrare

CRCIdentificator 11 biţi

Page 57: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

57

• Segmentul de propagare compensează întârzierea 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 (descrescător). Se defineşte SJW (Synchronisation Jump Width) ca numărul maxim de cuante T cu care se poate face resincronizarea. Dacă transmiţătorul este mai rapid (bit de date mai scurt) frontul descrescător apare în FAZA 1 şi FAZA 1 se dublează sau se prelungeşte cu o cuantă T (sau cu mai multe, dar nu mai mult de SJW). Dacă frontul descrescător apare în FAZA 2, FAZA 2 se scurtează. Resincronizarea este necesară pentru recepţia corectă a biţilor recepţionaţi. Codarea la transmisie se face în cod NRZ cu împănare de biţi (bit stuffing) şi este posibilă recepţia mai multor biţi cu aceeaşi 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 acelaşi 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ă următorii paşi:

• Eroarea este detectată de controller (la recepţie 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 împănare (bit stuffing). Codarea datelor se face NRZ cu împănare de

biţi prin adăugarea unui 1 după 5 biţi consecutivi de 0 sau un 0 după 5 biţi consecutivi de 1. Nodul de recepţie detectează un număr mai mare de 5 biţi consecutivi cu aceeaşi valoare logică.

2. Eroare de bit, când un transmiţător care citeşte tot ce transmite detectează o nepotrivire între ceea ce a transmis şi ceea ce a recepţionat (în altă parte decât

Bit de date recesiv transmis pe linie

SYNC PROP FAZA1 FAZA 2

Timp de bit

Punct de eşantionare pentru sincronizare

Page 58: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

58

în câmpul de arbitrare sau în câmpul de confirmare ACK) generează o condiţie de eroare.

• Erori de mesaj

1. Eroare de sumă de control CRC 2. Eroare de cadrare. În cadrul CAN se transmit anumiţi biţi 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ă transmiţătorul determină că mesajul nu a fost recepţionat (nu s-a recepţionat ACK).

Un modul CAN poate fi din punctul de vedere al gestionării erorilor în una dintre 3 stări: • Stare activă, care este modul de operare normală în care apariţia unei erori

poziţionează un bit de eroare • Stare pasivă, este un mod în care poate opera normal, în condiţiile în care nodul a avut

probleme dese de transmisie sau recepţie a mesajelor. • Blocat, nu se pot transmite sau recepţiona mesaje. Nodul poate ieşi din această stare printr-un RESET comandat de calculatorul gazdă.

Numărătorul de erori se modifică în următoarele condiţii: • La o recepţie eronată numărătorul rx_count se incrementează cu 1 • La recepţia unui bit dominant după transmiterea unui bit de eroare, rx_count se

incrementează cu 8. • Când un transmiţător trimite un bit de eroare tx_count se incrementează cu 8. • După recepţia cu succes a unui cadru rx_count se decrementează cu 1. • Nodurile acceptă maximum 7 biţi dominanţi după transmisia unui bit de eroare. Dacă

se transmit / recepţionează mai mult de 14 biţi dominanţi sau 8 biţi dominanţi urmaţi 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ă conţine 6 biţi dominanţi • Flagul de eroare pasivă conţine 6 biţi recesivi, dacă nu sunt suprascrişi de biţi

dominanţi de la alte noduri, într-o stare de eroare activă (mai gravă).

Cadru de eroare

Flag de eroare

Delimitator

Page 59: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

59

Observaţie: acest cadru nu respectă regula de codare CAN cu bit stuffing pentru că delimitatorul este format din 8 biţi recesivi.

Un cadru de eroare este transmis când 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 biţi recesivi) magistrala nu se blochează.

Tipuri de CAN:

1. Basic CAN echipează controllerele mai ieftine. Conţine 2 buffere de recepţie de tip FIFO şi unul de transmisie. La recepţie în timp de MC citeşte un mesaj, un altul se poate recepţiona în FIFO. Mesajele recepţionate sunt verificate cu un filtru de acceptanţă de 2 octeţi pentru a se identifica mesajele care trebuie preluate. Verificarea identificatorilor este hardware şi se face pe mai puţini biţi pentru a mări viteza. Verificarea finală a identificatorilor se face software. Cadrele de cerere de informaţie nu sunt generate hardware, ele trebuie generate prin program.

2. Full CAN conţine un set de buffere de cadre numite căsuţe poştale. La iniţializare fiecărei căsuţe poştale i se asignează un identificator. Cadrele de cerere de informaţie sunt gestionate hardware. Filtrele de acceptanţă verifică în întregime identificatorii şi recepţia se face în căsuţa poştală de destinaţie.

4.3.2.Transceiver CAN Microchip MCP2551

Circuitul transceiver CAN este o interfaţă între semnalele digitale de la nivelul MC şi semnalul diferenţial de magistrală CAN. Transceiverul protejează MC de vârfurile de tensiune prezente pe magistrala CAN datorită EMI sau descărcărilor 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 perturbaţiilor generate • Detectează erorile de masă (permanent dominant) şi decuplează driverul de ieşire • Curentul de funcţionare poate fi redus prin intrarea în starea de standby • Are protecţie la scurtcircuit, la supratensiune şi la supratemperatură • Se pot conecta până la 112 noduri • Gama de temperaturi de funcţionare poate fi cea industrială (I) –40°C la +85°C sau cea extinsă (E) –40°C la +125°C • Capsula este PDIP cu 8 pini

Schema bloc a circuitului este dată în figura 4.16.

Starea logică dominantă este atunci când între CANH şi CANL tensiunea diferenţială este mai mare decât un prag (1,2V) iar starea recesivă când tensiunea diferenţială este mai mică decât 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 citeşte magistrala CAN (mesaje

Page 60: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

60

Low Speed). MC primeşte 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 depăşeşte 1,2ms (20 de biţi dominanţi consecutivi) driverul de ieşire este decuplat de la linie.

Dacă circuitul se supraîncălzeşte (mai mult de 165°C) circuitul de protecţie decuplează driverul de ieşire până 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 aplicaţii auto. Pe lângă 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

Protecţie termică

Control driver

Referinţă

CANH CANL

Receptor

TxDRs

RxD

Vref

Vdd

Vss

Page 61: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

61

Microcontrollerul implementează pentru interfaţa 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 atât mai mare cu cât numărul 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 citeşte una dominantă înseamnă apariţia unei coliziuni. Circuitele care detectează o coliziune devin receptoare ale mesajului în curs şi reîncearcă transmisia doar după eliberarea magistralei.

În figura 4.17 este dată diagrama de timp a unei arbitrări de magistrală:

Figura 4.17: diagrama de timp a unei arbitrări de magistrală

Modul de lucru cu căsuţă poştală (Message Objects şi buffere de date) este arătat în figura 4.18. În fiecare dintre cele 15 buffere din căsuţa poştală există un mesaj de transmis sau recepţionat împărţit în date şi informaţii asupra mesajului (Message Object MOb) – identificator, durate de bit, mască de acceptare. Căsuţa poştală permite compararea identificatorului mesajelor CAN recepţionate cu identificatorii stocaţi în fiecare buffer şi salvarea mesajelor cu acel identificator. La cadrele de cerere de informaţie (Remote) se răspunde automat cu cadrul de date corespunzător. Acest mod de lucru permite reducerea activităţii CPU, sarcinile fiind preluate hardware de căsuţa poştală.

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 stările (stabilite prin programare): • Oprit; • Transmisie; • Recepţie; • Răspuns automat.

La transmisie fiecare MOb funcţionează astfel: • Se programează zona de identificare şi zona de date; • Canalul CAN verifică toate MOb programate pentru transmisie şi trimite cadrele începând cu cel mai prioritar; • După transmisia datelor se cere o întrerupere.

Nod A /TxCAN Nod B /TxCAN

Bus CAN

Nodul A câştigă magistrala

Page 62: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

62

Figura 4.18: structura căsuţei poştale CAN cu 15 buffere

La recepţie fiecare MOb funcţionează astfel: • Se programează zona de identificare şi masca de identificare; • La recepţia unui cadru CAN canalul CAN verifică identificatorul şi dacă apare o coincidenţă salvează cadrul. Numărul de octeţi de date este actualizat din cadrul recepţionat; • După recepţia cadrului se cere o întrerupere.

Canalul CAN poate lucra în următoarele moduri de lucru: • Normal, transmisia şi recepţia pornite, tactul pornit; • Standby, receptor oprit, transmiţător oprit (nivel recesiv pe TxCAN intern), tactul pornit, informaţiile din controller sunt accesibile; • Ascultare, receptor pornit, transmiţător oprit, numărătoare de erori invalidate.

Timpul de bit este realizat de canalul CAN coform cu figura 4.19. Dacă frecvenţa CAN este 8MHz atunci debitul de informaţie 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 întârzierile pe magistrală. Punctul de eşantionare este momentul în care se citeşte valoarea bitului. Timpii fazei 1 TPH1 şi fazei 2 TPH2 pot fi unul scurtat şi celălalt prelungit pentru a modifica poziţia punctului de eşantionare.

Sistemul de întreruperi CAN cere o întrerupere în următoarele cazuri: • La recepţia completă a unui mesaj; • La transmisia completă a unui mesaj; • La apariţia unei erori: de bit, de împănare (stuff), de CRC, de format, de confirmare); • La umplerea unui buffer de mesaj • La trecerea magistralei în stare OFF;

Căsuţa poştală

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

Page 63: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 eşantionare

Punct de transmisie

Page 64: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 reţelei în cazul unui singur canal poate fi de tip magistrală liniară sau stea multiplă. În cazul a 2 canale cu aceleaşi configuraţii de tip magistrală sau stea se pot construi reţele în care canalele sunt redundante. În cazul reţelelor cu 2 canale redundante un canal se poate defecta şi sistemul îşi păstrează funcţionalitatea. La nivel fizic interfaţa admite un gardian de magistrală care realizează detecţia erorilor în domeniul timp şi care interacţionează 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

Interfaţa cu gazda

Generarea protocolului

Interfaţa cu canalul fizic

Canal A Canal B

Segment static Segment dinamic Simbol Timp bus inactiv

Sloturi statice Minisloturi

Unităţi de informaţie numite microtick

Page 65: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

65

Cadrul conţine:

• Un bit de gestionare a reţelei • Un bit care indică un cadru gol • Un bit de cadrare • Identificator de cadru pe 12 biţi • Lungimea cadrului (în octeţi) codificată pe 7 biţi • CRC pentru antet pe 11 biţi • Identificator de mesaj (opţional) pe 16 biţi • Date, lungime variabilă • CRC pentru date pe 24 de biţi

Comunicarea este de 2 tipuri după modul de iniţiere:

1. Comunicată iniţiată la anumite momente de timp în care ciclul de comunicaţii începe periodic, de exemplu la întreruperile unui timer.

2. Comunicare iniţiată 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 funcţionării unui

subansamblu 2. Cadrele dinamice se transmit la cerere, de exemplu informaţia de diagnostic.

Fluxul de date poate fi urmărit în figura 4.23.

Figura 4.23: Fluxul de date

Structura segmentelor statice transmise în cazul comunicaţiei pe 2 canale este prezentată în figura 4.24.

Gazda

Interfaţa cu gazda

Generarea protocolului

Interfaţa cu canalul fizic

Transmisie Recepţie

Modulul de ataşare / separare protocol separă antetul de date şi trimite datele către gazdă la recepţie şi adaugă informaţia de protocol la transmisie.

Antet pe 5 octeţi Date 0-254 octeţi + CRC

Page 66: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

66

Figura 4.24: Segment static

Lungimea unui slot static este constantă. Un mesaj poate avea un număr variabil de sloturi. Numărătorul 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 către generatorul de protocol la nivel de unitate de informaţie (microtick). Cea mai mare deviaţie 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 renunţa niciodată la transferul unui mesaj. O eroare gravă este de exemplu pierderea sincronizării (prea puţine cadre de sincronizare recepţionate de la un nod).

Serviciul de simboluri contribuie la mărirea siguranţei în funcţionare. Simbolurile sunt trimise la sfârşitul cadrului de către controller şi trebuie recepţionate de către controllerul destinaţie formând un sistem de supraveghere de tip Watchdog. Simbolurile pot fi de stare normală sau de alarmă.

Serviciul de economie de energie este folosit pentru micşorarea energiei consumate. Ieşirea din starea de adormit se poate face la cererea oricărui nod care trimite un cadru de “trezire“.

Serviciul de diagnostic conţine 2 tipuri de teste: • Monitorizarea cu gardianul de magistrală, executată de generatorul de protocol • Teste de comunicaţie solicitate de gazdă.

Slot static 1 Slot static 2 ……………………

1 2 3

Cadru 1

Cadru 1

Cadru 2

Cadru 2

Numărător de sloturi

Canal A Canal B

Segment static

m +1 +2 +3

m +1 +2 +3 Numărător de sloturi A

Canal A Canal B

Numărător de sloturi B

Cadru m+3

Cadru m Cadru m+3

Page 67: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

67

Rezultatele testelor sunt comunicate gazdei care poate decide excluderea nodului din comunicaţie.

În cazul în care comunicaţia este iniţiată de un eveniment extern (Event Triggered Mode) cadrul curent este abandonat, figura 4.26.

Figura 4.26: Cadrul iniţiat de un eveniment extern

4.4.2.Interfeţe specializate şi microcontrollere FlexRay

Fujitsu MB88121 este un circuit specializat care implementează protocolul FlexRay şi adaugă conectivitatea FlexRay microcontrollerelor pe 16 sau 32 de biţi. Circuitul are două canale FlexRay şi un buffer de mesaje de 8kByte. Interfaţa de cuplare cu microcontrollerele este pe magistrala paralelă externă multiplexată sau nemultiplexată sau prin interfaţa 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 interfeţei specializate FlexRay

Segment static Segment dinamic Pauză Simbol Timp între cadre Segment static

Eveniment extern

Masterul abandonează cadrul curent

Slave-ul abandonează cadrul după recepţia simbolului

Cadrul abandonat Cadrul iniţiat de eveniment

Transceivere FlexRay Microcontroller gazdă

MB88121

Port A

Port B

RAM A

RAM B

Gestionare mesaje

Interfaţa cu microcontrollerul

Buffere de date

RAM pentru mesaje

Suport DMA şi întreruperi

Gestionarea erorilor

Gestionarea tactului şi a timpului

Gestionarea erorilor

Page 68: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

68

O schemă de conectare pe magistrala externă nemultiplexată între un microcontroller şi interfaţa 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). Interfaţa este selectată cu semnalul CS. Modul de lucru al interfeţei cu transfer pe magistrală este comandat prin nivelul logic al semnalelor MD.

Figura 4.28: Schema de conectare între un microcontroller şi interfaţa FlexRay pe magistrala externă

Pentru punerea la punct a aplicaţiilor Fujitsu pune la dispoziţia utilizatorilor un driver pentru FlexRay inclusiv codul sursă şi exemple - software pentru o punte CAN- FlexRay. Se pun de asemenea la dispoziţie 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 obţinut 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 interfeţe utilizate în tehnica auto: FlexRay (2 canale), CAN (2 canale, fiecare cu câte 32 de buffere de mesaje) şi LIN (3 canale). Modulele interne asigură o gamă largă de funcţionalităţi: 17 canale de conversie analog digitală pe 10 biţi, 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 numărător la apariţia unui semnal din exterior), watchdog hardware, ceas de timp real, interfaţă I2C, etc.

Page 69: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 biţi Core FR70 Tact 100MHz

Flash 544k

SRAM 32k

Module integrate: -2 timere de 8 canale,

16 biţi -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

Page 70: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 degajării 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 măsurare automată a presiunii în pneuri a devenit obligatorii în SUA începând din 2008 şi se preconizează să devină obligatoriu în Europa începând din 2012.

Monitorizarea presiunii se poate face cu metode indirecte pe baza unor parametri preluaţi din exterior, cum ar fi viteza de rotaţie preluată de la senzorii ABS, diametrul roţii sau vibraţiile în mers. Aceste metode au avantajul unui preţ mic dar acurateţea de măsurare este de asemenea mică. Metodele directe implică existenţa unui traductor de presiune, microcontroller şi emiţător în pneu şi a unui sistem de centralizare de date cu receptor şi microcontroller cuplat pe o magistrală a maşinii. Dezavantajele sunt preţul mai mare şi înglobarea unui dispozitiv electronic în pneu inclusiv cu alimentare proprie.

O schemă bloc a unui sistem de măsură propus de ATMEL (www.atmel.com) care asigură un consum redus de energie (bateria durează până 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 conţine un MC ATMEL ATAR862 cu transmiţător de date integrat care preia datele de la un senzor de presiune. Pentru că este foarte simplu să se mai ataşeze un senzor schema a fost completată cu un senzor de temperatură a aerului din anvelopă. Microcontrollerul este oprit până apare o cerere de măsurare transmisă de MC de control prin driver-ul de antenă ATMEL ATA5286 şi recepţionată de receptorul ATMEL ATA5283 din pneu. După ce a efectuat măsurarea datele sunt transmise prin transmiţătorul integrat şi recepţionate de receptorul ATMEL T5743.

Wake-up125kHz

Date 868MHz sau 433MHz

În pneu

Receptor wake-up ATA5283

Microcontroller cu transmiţător 868MHz ATAR862

Senzor de presiune

Senzor de temperatură Alimentare

Centralizator al măsurărilor

Driver de antenă ATA5286

Receptor T5743

MC de control LIN sau CAN

Page 71: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

71

ATAR862 este un circuit care conţine 3 module în aceeaşi capsulă: transmiţător UHF (în gama de frecvenţe 868-928MHz) cu modulare ASK/FSK, un microcontroller de 4 biţi şi o memorie EEPROM de 512 biţi. Circuitul este încapsulat într-o capsulă mică de 24 de pini SSO24. Alimentarea este între 2-4V, făcând 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 informaţie 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 ieşirea timerului 2. Reciproc, Timer-ul 3 poate decoda şirul de date codate Manchester sau Bifazic de la ieşirea SO şi le trimite la ieşirea timerului 3. Astfel ATAR862 poate fi folosit atât la recepţia de date (dar nu are bloc de recepţie de RF) cât şi la transmiterea lor. Microcontrollerul are un program scris cu mască în ROM. Senzorii care se cuplează trebuie să fie cu ieşire serială, deoarece nu există un modul intern de conversie analog digitală. La transmisie ieşirea SO constituie intrarea blocului de emisie. Cele 3 timere şi interfaţa serială pot lucra într-o multitudine de moduri de lucru din care a fost menţionat doar unul, cel mai simplu. Un exemplu de codare Manchester este dată în figura 4.33.

SC este tactul serial iar SO ieşirea de date seriale codate NRZ. La ieşirea timerului 3 TO3 semnalul este codat Manchester. Decodarea este ceva mai complicată, timerul 3 având la început o perioadă de sincronizare cu datele recepţionate.

ATAR862 PLL Amplificator antenă Enable

Microcontroller CPU 4 biţi ROM 4kx8biţi RAM 256x4biţi

Timer 1 (Watch dog)

Timer 2 8/12 biţi

Timer 3 (8 biţi)

Interfaţă serială

Port 1 (2 linii)

Port 2 (4 linii)

Port 4 (4 linii/ funcţii alternative)

Port 5 (3 linii/ funcţii alternative)

Port 6 (2 linii/ funcţii alternative)

EEPROM 32x16biţi

Page 72: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 ieşirea din mod Sleep) iar alte linii pot fi prevăzute cu microîntrerupătoare şi folosite pentru configurare. Intrarea în mod Sleep se face în urma execuţiei unei instrucţiuni Sleep. Modul Sleep poate avea două variante, cu tactul pornit şi cu tactul oprit, în această a doua variantă consumul fiind sub 1µA.

Datele emise de ATAR862 sunt recepţionate 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ă frecvenţa purtătoarei 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 recepţionate sunt trimise serial pe două linii (date şi tact). Circuitul se poate programa cu date seriale şi tact cu sensul spre circuit pe aceleaşi linii.

Tact SC SO TO3

1 1 0 0

T5743

LNA X

FTB

AMP

DEMOD Control

VCO

PLL

MC

Page 73: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

73

Circuitul receptor ATA5283 este folosit pentru trezirea circuitului ATAR862 din modul Sleep. Circuitul are 8 terminale şi conţine un amplificator de intrare pentru amplificarea semnalului emis pe frecvenţa 125kHz şi modulat în amplitudine (ASK). Dacă nu există purtătoare circuitul aşteaptă în stand by. Circuitul conţine un bloc de detecţie a unui preambul (192 perioade neîntrerupte ale purtătoarei) şi după recepţia acestui preambul circuitul devine activ.

Figura 4.35: Protocolul de wakeup şi transfer de date la ATA5283

După recepţia preambulului se activează blocul de control al amplificării în amplificatorul de intrare (după 512 perioade ale purtătoarei) şi după 704 perioade ATA5283 generează un semnal de Wakeup pentru microcontroller. În stare inactivă circuitul consumă 0,5µA, dacă este pornit controlul automat al amplificării 1µA iar în mod recepţie 2µA. După preambul se recepţionează datele modulate în amplitudine conform diagramei de semnal din figura 4.35.

Figura 4.36: Sistem ATAK5276-83 pentru măsurarea presiunii în pneuri

Semnal ASK Wakeup Date

704 perioade

Emiţător pentru wakeup şi MC ATAR862, pentru montare în pneuri, alimentare cu baterie

Antene de emisie wakeup şi recepţie date

Receptor de date şi driver de antenă

Page 74: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

74

Emiţătorul ATA5276 poate transmite date modulate în amplitudine pe frecvenţa 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 conţine 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 asemănătoare cu cele din figura anterioară, sensul fiind de transmisie a datelor.

După transmisia datelor (indicată de faptul că linia DIO rămâne în stare unu logic un timp de 16ms) circuitul confirmă transmisia punând 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 măsurarea presiunii în pneuri (ATAK5276-83), figura 4.36.

4.6.Măsurarea înclinaţiei autovehiculului cu un sistem giroscopic

Sistemul de măsurare format dintr-un senzor unghiular şi dispozitivul de procesare a datelor are ca scop informarea şoferului asupra unghiului de înclinaţie al autovehiculului. Şoferul este avertizat la atingerea unui unghi de înclinaţie critică care poate avea ca şi consecinţă rostogolirea autovehiculului. În acest subcapitol este prezentată o realizare a unui grup de studenţi îndrumat de autori şi de un specialist de la firma Fujitsu.

Figura 4.37: Unghiul de înclinaţie a unui automobil

Afişarea unghiului de înclinaţie este realizată printr-un afişor grafic în două moduri, mod grafic pentru o vizualizare intuitivă şi în mod caracter pentru afişarea numerică a unghiului de înclinaţie. De asemenea sistemul este prevăzut cu un generator de sunet, pentru avertizare sonoră în cazul în care sistemul depăşeşte unghiul de înclinaţie periculos.

O problemă majoră a sistemului de măsurare o reprezintă acumularea erorilor, deoarece sistemul calculează unghiul de înclinare prin adunări succesive. Pentru obţinerea stabilităţii sistemului de măsurare este necesară realizarea unei transmisii analogice de calitate între senzor şi microcontroller, precum şi găsirea unei soluţii de calibrare automată a senzorului principal. Pentru determinarea stabilităţii dinamice a fost implementat un sistem de testare acţionat de un motor pas cu pas şi aplicarea unor filtre software pe semnalul analogic,

∆φ

Page 75: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

75

rezultatele obţinute fiind în final comparate. De asemenea s-a adăugat la sistemul de măsurare un senzor mecanic auxiliar de detecţie a poziţiei 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ă forţa Coriolis generată când un obiect în mişcare este rotit în jurul unei axe. Senzorii vibratori piezoelectrici detectează forţa 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. Când elementul piezoelectric format din două lamele este rotit în jurul axei Z în timp ce pe axa X este prezentă o vibraţie de operare, datorită forţei Coriolis pe axa Y apare o vibraţie secundară. Măsurând această vibraţie putem obţine mărimea vitezei unghiulare cu care a fost rotit senzorul.

Figura 4.38: Principiul de funcţionare a senzorului giroscopic

Unghiul de înclinare trebuie calculat din informaţia (viteza unghiulară) furnizată de senzor prin produsul dintre viteza unghiulară şi perioada de eşantionare:

∆φ = ω ∆t ∆φ - unghi de înclinare ω - viteza unghiulară ∆t - perioada de eşantionare

În figura 4.39 se prezintă eşantionarea semnalului furnizat de senzorul unghiular. Vcc - tensiunea de alimentare a senzorului Unull - tensiunea de nul

x

zy

Detection Operation

Operation mode

Detection mode

Page 76: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

76

0

Unull

Vcc

T(ms)

Vout

1 5 10 15

Figura 4.39: Eşantionarea semnalului de ieşire a senzorului unghiular

S-a ales o rată de eşantionare de 1kHz, valoare propusă de către producător. Rata de eşantionare este suficient de mare pentru a urmării eficient semnalul de variaţie unghiulară.

Zp

Zp-1Zp-2

Zp-3

Zp+1

Zp+2

Zp+3Semnal eşantionat

1 cuantă1 ms

Zp – valoare de nul

Figura 4.40: Semnalul eşantionat şi cuantizat

Valoarea unghiului de înclinare se calculează prin adunări succesive a variaţiilor eşantioanelor curente de la valoare Zp , valoare corespunzătoare tensiunii de nul şi înmulţită cu constata de transformare tensiune – viteză unghiulară, figura 4.40. Constanta de transformare tensiune-viteză unghiulară face corespondenţa dintre tensiunea de ieşire 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

Page 77: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

77

După rularea câtorva teste s-a constatat că la fluctuaţii de alimentare a modulului valoarea de nul Zp nu este constantă. Valoarea de nul se determină prin citirea ieşirii convertorului analog digital când senzorul se află în stare nemişcată. Pentru obţinerea corectă a valorii de nul s-a implementat o procedură de calibrare software cu eşantionare multiplă şi mediere, figura 4.41. Prin parametrul NR_SMPL se defineşte numărul de eşantioane din care se calculează prin rotunjire valoarea de nul Zp .

4.6.2.Sistemul de măsurare şi afişare

Figura 4.42: Schema bloc a sistemului de măsurare

Microcontrollerul preia semnalul de la senzorul giroscopic (figura 4.42), realizează o conversie A/N pe 10 biţi şi calculează unghiul de înclinare. Unghiul de înclinare este afişat pe un afişor grafic 64x128 iar depăşirea unui anumit unghi limită este semnalizată printr-un semnal acustic cu un buzzer. Sistemul funcţionează independent de calculator, dar în stadiul de testare şi analiză a stabilităţii datele au fost transmise către un calculator prin interfaţa serială RS232.

Afişarea (figura 4.43) s-a realizat cu un afişor 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: Afişarea unghiului de înclinare în mod grafic (stânga) şi în mod caracter (dreapta), şi o fotografie a afişajului

Afişarea în mod grafic constă din mişcarea (rotirea) unui obiect pe afişor, acesta practic urmărind orizontul in funcţia datelor furnizate de senzorul giroscopic. Afişarea grafică a fost creată din două părţi, fundalul nemişcat si două indicatoare care urmăresc poziţia orizontală şi indică unghiul de înclinaţie curentă. Pe fundal sunt marcate unghiul de înclinaţie. Punctele de

Sistem de

dezvoltar

Afişor grafic 64x128

Senzor giroscopic

RS232

Page 78: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

78

marcare sunt puse din zece in zece grade până la ±40 de grade, poziţia orizontală fiind marcată cu puncte mai mari.

Peste fundal se suprapun indicatoarele specifice pentru fiecare unghi. Se reprezintă indicatoarele cu rezoluţia de cinci grade. Din motive de economie a memoriei ocupate partea de afişor grafic s-a împărţit in 4 cadrane, desenând indicatoare doar pentru un cadran. Prin operaţii de oglindire pe orizontala si verticala s-au alcătuit imaginile aferente pentru celelalte cadrane. Astfel din desenele realizate pentru cadranul 1 printr-o operaţie de oglindire verticala se ajunge la o imagine în cadranul 2, printr-o operaţie de oglindire orizontala la cadranul 4 şi prin aplicarea ambelor operaţii la cadranul 3. Afişarea în mod caracter a fost realizată prin stocarea în memoria microcontrollerului a imaginilor grafice ale cifrelor, ceea ce asigură o viteză mare de afişare cu un consum de memorie mare.

Având în vedere că sistemul conţine ca element traductor un senzor giroscopic, la pornirea sistemului nu se cunoaşte unghiul de înclinare, ceea ce este un dezavantaj al acestui sistem. Prin rularea câtorva teste s-a constatat de asemenea că apar erori, iar calcularea unghiului de înclinare are la bază adunări succesive a eşantioanelor curente, ca urmare se poate ajunge la rezultate incorecte prin acumularea erorilor de măsurare.

Pornind din acest neajuns al acestui senzor s-a constatat necesitatea implementării unui senzor auxiliar de detecţie a poziţiei 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 măsurare a înclinaţiei constă din măsurări succesive ale semnalului furnizat de senzorul giroscopic în stare fixă şi trimiterea datelor la calculator pentru analiză prin interfaţa RS232., datele fiind recepţionate de un program specializat de citire a portului serial.

Figura 4.44: Date recepţionate pentru 1000 măsurători, senzor nemişcat

În figura 4.44 pe coordonata verticală este prezentată valoarea eşantionului curent furnizat de convertorul analog digital (stânga), precum şi nivelul de tensiune al eşantionului (dreapta). Prima măsurătoare 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 deviaţii de la valoarea de nul de mărimea a 7 LSB ceea ce este echivalent unei variaţii de 34,16mV aceasta fiind inacceptabil în cazul acestui sistem.

Page 79: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

79

Pentru micşorarea erorilor au fost luate următoarele măsuri: • Trecerea microcontrollerului în stand by pe perioada conversiei analog digitale; • Conectarea senzorului cu o legătură ecranată cât 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 filtrări software. Filtrarea prin mediere constă din eşantionarea semnalului cu o frecvenţă mărită şi calcularea eşantionului curent prin medierea mai multor eşantioane precedente luate timp de o milisecundă.

yj = (xj*N+1 + xj*N+2 + xj*N+3 + ……….+ xj*N+N) / N Unde :

N – numărul eşantioanelor luate timp de o milisecundă Y – semnalul de ieşire din filtrul de mediere X – semnal de intrare în filtru

În figura 4.45 sunt prezentate rezultatele preluării a 4000 de eşantioane după mediere şi după aplicarea măsurilor de compatibilitate electromagnetică şi se vede că doar 4 eşantioane sunt eronate, cu o valoare care se încadrează în 1LSB.

Figura 4.45: Date recepţionate pentru 4000 măsurători, senzor nemişcat

S-a realizat un sistem de testare dinamică a stabilităţii sistemului de măsurare prin mişcarea senzorului de înclinaţie 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 acelaşi sistem de dezvoltare cu care se face şi achiziţia şi prelucrarea semnalului de la senzorul giroscopic. Înfăşurările motorului au fost comandate prin intermediul circuitului specializat ULN2003A.

Sistemul porneşte dintr-o poziţie fixă şi prin acţionarea motorului face 50 de paşi ceea ce este echivalent cu 90° (50*1,8°) schimbă direcţia de mişcare făcând tot 50 de paşi repetând aceste operaţii de mai multe ori. Starea prezentă a sistemului este afişată pe 2 afişoare cu 7 segmente, precum şi pe afişorul grafic, putând verifica în orice moment corectitudinea măsurătorilor.

Page 80: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

80

Figura 4.46: Metoda de testare

În graficul din figura 4.47 sunt prezentate două seturi de măsurători, fiecare reprezentând câte o serie de paşi făcuţi de motorul pas cu pas, una în sensul ceasului iar celălalt în sens invers. Măsurătorile au fost făcute separat, pe rând, reprezentarea grafică s-a făcut pe un singur grafic suprapunând cele două rezultate pentru o vizualizare mai bună.

În cazul ideal când sistemul a parcurs un ciclu de testare şi se reîntoarce în starea iniţială valoarea unghiului calculat trebuie să fie egală cu zero. Prin rularea multiplă a ciclului de testare s-a observat acumularea informaţiilor eronate. Astfel se justifică implementarea unui sistem de calibrare a valorii unghiului de înclinaţie calculat.

Figura 4.47: Rezultatele măsurătorilor dinamice

În figura 4.48 este prezentat dispozitivul mecanic cu motor pas cu pas pentru mişcarea senzorului.

Calibrarea senzorului unghiular s-a realizat prin introducerea în sistemul de măsurare a unui senzor auxiliar de detecţie a poziţiei orizontale. Astfel când senzorul detectează poziţia orizontală a sistemului resetează valoarea unghiului de înclinaţie calculat.

Page 81: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

81

Figura 4. 48: Motorul pas cu pas şi senzorul (stânga) şi o fotografie a sistemului de test (dreapta)

Dispozitivul de detecţie a poziţiei orizontale este alcătuit dintr-un fotocomutator şi un pendul care indică poziţia verticală, astfel când modulul se află în poziţie orizontală pendulul obturează lumina, figura 4.49.

Figura 4.49: Reset- principiul de funcţionare

Senzorul este cuplat la o linie de întrerupere a microcontrollerului. La sosirea unei cereri de întrerupere se determină durata staţionării în poziţie orizontală şi daca durata este mai mare decât o valoare de prag se consideră că poziţia este orizontală şi se iniţializează cu zero unghiul de înclinare.

Au fost realizate teste ciclice în care s-au comandat câte zece mişcări complete (90 grade) ale motorului cu trecere prin poziţia orizontală. După un set de zece mişcări s-a făcut o pauză la orizontală pentru ca să fie posibilă calibrarea şi s-a memorat poziţia unghiulară. Un grafic în figura 4.49 arată că dacă nu se ţine cont de calibrare erorile se însumează ajungând la 2.75 grade după 1000 de mişcări, iar dacă se ţine cont de calibrare eroarea este de 0.5 grade.

Sistemul de măsurare implementat include măsurile de micşorare a erorilor menţionate în [3]. Erorile apărute la măsurare au fost menţionate şi în alte lucrări, de exemplu [4]. În [5] se

Pendul

Page 82: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

82

propune o metodă de compensare în timp real a erorilor. Cea mai bună soluţie este folosirea unui senzor de unghi absolut, cum este cel prezentat în [6].

Figura 4.49. Evoluţia erorii în grade la o mie de cicluri de mişcare ale senzorului giroscopic

Cele mai multe aplicaţii ale giroscopului sunt în domeniul navigaţiei aeriene şi spaţiale. Extinderea aplicaţiilor către autoturisme se face în cadrul constrângerilor de preţ. Micşorarea 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 detecţia poziţiei orizontale. Pentru a se testa comportarea dinamică a fost implementat un sistem de mişcare periodică a senzorului şi măsurare a datelor care a dovedit eficienţa determinării poziţiei orizontale [7]. În prezent sistemul este testat în condiţii reale pe autoturisme, unde apar erori suplimentare datorate vibraţiilor, iar resetul erorilor nu se face periodic.

4.7. Modulaţia tactului pentru micşorarea perturbaţiilor radiate

În acest subcapitol sunt prezentate simulări ale modulării tactului şi măsurători realizate de cercetători din cadrul Catedrei de Electronică şi calculatoare legate de eficientei modulării tactului. Pentru teste a fost aleasă familia de microcontrollere Fujitsu pentru că această familie este dedicată aplicaţiilor 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.

Modulaţia tactului are rolul de a reduce interferenţele electromagnetice (EMI) prin împrăştierea spectrului semnalului de tact. Metoda este implementată la MC pe 32 de biţi şi la cele pe 16 biţi. Modulaţia se aplică tactului generat de bucla PLL, astfel încât unele interfeţe care generează intervale de timp precise (timer de bază, Watchdog sau CAN ) nu pot avea ca tact tactul modulat. Frecvenţa dată de tactul PLL este F0 iar spectrul are un vârf corespunzător acestei frecvenţe. Modularea tactului înseamnă variaţia frecvenţei /fazei între 2 limite, ceea ce micşorează vârful 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

Page 83: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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:

• modulaţie în fază, semnalul modulator fiind un semnal triunghiular • modulaţie î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 modulaţie şi se pot programa limitele de variaţie ale frecvenţei sau fazei. În general comportarea cea mai bună din punct de vedere EMI se obţine la variaţia maximă a frecvenţei /fazei tactului, dar aceasta nu este o regulă şi în cele mai multe cazuri este nevoie de încercări experimentale.

La modelul MB90350 pe 16 biţi 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. Lăţimea impulsului de tact modulat variază cu +/- 0,8ns, ceea ce înseamnă la frecvenţa maximă a tactului PLL de 24MHz o frecvenţă maximă a tactului maşină modulat de 25,45MHz. Interfeţele care nu au tact PLL (Timerul de bază, Watchdog Timer) nu pot avea ca tact tactul modulat. De asemenea când se utilizează interfaţa CAN nu se poate folosi tactul modulat.

Modelul MB90390 pe 16 biţi admite ambele variante de modulaţie. La modulaţia în frecvenţă variaţia între Fmax şi Fmin este definită în 7 grupe, 1 fiind varianta cu variaţia cea mai mică şi 7 cu variaţia cea mai mare. În figura 4.51 sunt date spectrele generate în gama de frecvenţe 150kHz-500MHz furnizate de Fujitsu în catalog pentru procesoarele de 32 de biţi. Se observă că prin modularea tactului se obţine 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

Selecţie tact

Interfeţe

CPU DMA

Modulare tact

Controlul stabilizării oscilaţiilor

Timer de bază

Watch Timer Watchdog Timer

Tact maşină

Tact PLL

Cuarţ sau generator

Cuarţ sau generator

Page 84: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

84

Figura 4.51: Spectrul de frecvenţă radiat în cazul unui tact nemodulat (stânga) ş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 rezoluţia de variaţie a frecvenţei între Fmin şi Fmax. Se pot programa 3 grade de rezoluţie. 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 modulării tactului

Câteva simulări în MATLAB dovedesc utilitatea modulării tactului. Un semnal dreptunghiular a cărui frecvenţă variază total aleator are armonicile superioare foarte mici, un semnal a cărui frecvenţă variază aleator între 2 limite are armonici mai mari iar un semnal cu frecvenţa fixă are armonici şi mai mari.

Semnalul nemodulat are forma în timp şi spectrul de frecvenţe date în figura 4.52.

Primul program realizează simularea unui semnal dreptunghiular a cărui frecvenţă variază periodic. Forma semnalului modulator este cea triunghiulară sau cea dreptunghiulară. Se generează un semnal triunghiular cu funcţia SAWTOOTH.

Figura 4.52: Semnal dreptunghiular şi spectrul de frecvenţe

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]

Page 85: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

85

Cu funcţia SQUARE se generează un semnal dreptunghiular şi se realizează modularea acestui semnal. Se calculează spectrul de frecvenţe cu funcţia FFT şi se reprezintă grafic, figura 4.53.

Figura 4.53: Semnal modulat cu un semnal dreptunghiular şi spectrul de frecvenţă

Se observă micşorarea amplitudinii primelor armonici superioare. O altă variantă de modulare este realizată cu un semnal modulator cu frecvenţa variabilă. Funcţia care generează un astfel de semnal este funcţia CHIRP, figura 4.54.

Figura 4.54: Semnal modulat cu frecvenţa variabilă şi spectrul de frecvenţă

Se observă că şi modularea cu frecvenţă variabilă (variaţia maximă 10% din frecvenţă) are ca efect micşorarea spectrului, mai ales a armonicilor de ordin superior. Este interesant de remarcat ce se întâmplă la extrem, adică la modularea frecvenţei cu un semnal aleator, în condiţiile în care variaţia aleatoare nu este un procent oarecare (sub 10%) din frecvenţă.

Figura 4.55: Semnal cu frecvenţa variabilă aleator şi spectrul de frecvenţă

Acest caz în care frecvenţa variază aleator nu poate fi folosit în practică pentru că microcontrollerul nu ar putea funcţiona cu un asemenea tact. Pentru generarea numerelor

Page 86: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

86

aleatoare se foloseşte funcţia RANDOM, în care parametrul EXP specifică distribuţia 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 păcate acest semnal dreptunghiular nu se poate folosi ca tact din motive funcţionale.

4.7.2.Măsurarea spectrului radiat

Pentru verificarea experimentală a acestor simulări a fost folosit un sistem de dezvoltare cu microcontrollerul MB91F362GA, care are posibilitatea modulării tactului. Tactul a fost vizualizat la un pin extern iar spectrul radiat a fost măsurat 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 măsură 0 - 6.2GHz. Antena analizorului a fost poziţionată în apropierea sistemului de dezvoltare, figura 4.56.

Figura 4.56: Sistemul de măsurare a radiaţiei electromagnetice

Microcontrollerul a fost programat cu posibilitatea modificării 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 unităţii centrale poate fi modulat. Cu un buton se pot selecta cele trei frecvenţe la care se poate realiza modularea tactului- 16MHz, 32MHz şi 48MHz. La modificarea frecveţei tactului trebuie să treacă un timp de stabilizare până când microcontrollerul lucrează la noua frecvenţă şi tactul este scos în exterior la pinul MONCLK. Pentru modularea tactului au fost utilizaţi parametrii recomandaţi de producător. Un fir lung s-a ataşat la pinul MONCLK pentru ca radiaţia emisă să aibă o valoare mai mare, altfel radiaţia ar fi fost mai mică cu 20dB şi ar fi fost nevoie de măsurarea în camere anecoide. Fără ataşarea firului valoarea câmpului electromagnetic extern ar fi fost apropiată de valoarea radiată de microcontroller.

Page 87: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

87

Semnalul de tact vizualizat la pinul MONCLK este reprezentat în figura 4.57, la frecvenţa de 16MHz. La frecvenţele 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 uşor aspectul diferit.

Figura 4.57 Tactul de 16 MHz nemodulat (stânga) şi modulat (dreapta)

Spectrele de frecvenţă asociate celor două situaţii sunt date în figura 4.58.

Figura 4.58 Spectrul de frecvenţă măsurat în cazul tactului de 16 MHz nemodulat (stânga) şi modulat (dreapta)

Cu tactul modulat se observă o mai mare uniformitate a distribuţiei de energie în domeniul frecvenţei, fără vărfuri ale spectrului. Porţiunea 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 modulării tactului este obţinut la 32MHz, o diminuare cu 16dB a celui mai mare vârf al spectrului faţă de doar 10dB în cazul frecvenţelor de 16 şi 48MHz. Acest lucru se explică prin faptul că la 32MHz variaţa frecvenţei tactului este în ambele sensuri, câtă vreme la 16MHz variaţia este doar spre frecvenţe mai mari şi la 48MHz

a b

Page 88: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

88

doar spre frecvenţe mai mici.

Numărul echipamentelor electronice se măreşte continuu şi se caută permanent metode de a micşora interferenţa electromagnetică dintre acestea. Una dintre metodele care începe să se aplice din ce în ce mai mult în ultimii ani este modulaţia tactului. Modulaţia tactului se aplică atât la procesoare cât şi la microcontrollere, şi începe să se aplice şi la circuitele specializate pentru transferul datelor cu un dispozitiv periferic [8], [9]. Tendinţa actuală este de a se implementa modularea tactului în cât mai multe aplicaţii dar şi găsirea 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 radiaţii electromagnetice fiind restrictive. Constructorii de microcontrollere pentru domeniul auto implementează în noile familii modularea tactului. Importanţa modulării tactului este dovedită şi de faptul că şi alţi producători de microcontrollere, aşa 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, aşa 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 următoarele funcţii: • Reglarea tensiunii în sistemul ARB în limitele impuse de constructorul autovehiculului (prin controlul curentului de excitaţie al alternatorului); • Răspuns adecvat la situaţiile tranzitorii întâlnite în exploatare (pornire din repaus şi modificarea sarcinii alternatorului); • Realizarea unei construcţii compacte, protejate la şocuri mecanice, adaptată unei funcţionări în condiţii de mediu şi climatice foarte severe, conform standardelor specifice domeniului auto. Suplimentar, un regulator de tensiune electronic poate asigura: • Funcţionarea î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 protecţii (la întreruperea conexiunii alternator-baterie, scurtcircuitarea înfăşurării de excitaţie a alternatorului, scurtcircuitarea lămpii de control); • Furnizarea unui semnal (în fază cu cel furnizat înfăşurării de excitaţie) către unitatea de control electronic a sistemului de management al motorului (EMS – Engine Management System Electronic Control Unit); • Modificarea controlată a plajei de reglaj în funcţie de temperatura mediului ambiant.

Page 89: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

89

Un proiect realizat împreună cu studenţii 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ă conţine un generator electric (alternator auto), un motor care acţionează alternatorul şi care simulează astfel motorul autovehiculului. Aparate de măsură conectate la stand au urmărit evoluţia unor parametrii în timp pentru a verifica comportarea sistemului la variaţia sarcinii şi a turaţiei alternatorului. Regulatorul de tensiune implementat cu microcontroller are rolul de a menţine constantă tensiunea la bornele alternatorului (şi implicit a sarcinii) atunci când turaţia 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 maşinii ş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 biţti 8FX. Microcontrollerul are următoarele sarcini:

• Comandă înfăşurarea de excitaţie a alternatorului cu un semnal PWM pentru a asigura regimul optim de încărcare a bateriei (în soluţia clasică înfăşurarea este comandată ON-OFF);

• Determină viteza de rotaţie a alternatorului prin preluarea semnalului înainte de diodele de redresare din alternator cu un modul intern de Input Capture;

• Măsoară tensiunea bateriei şi în funcţie de rezultat comandă înfăşurarea de excitaţie; • Măsoară temperatura ambiantă şi corectează regimul de încărcare conform unor curbe

furnizate de producător 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 maşinii

Sistemul integrat de comanda

Baterie

Page 90: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

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 funcţionarii – turaţia alternatorului şi tensiunea bateriei. Conectarea la distanţă (uzual 20 m) prin standardul RS232 permite urmărirea funcţionării sistemului din interiorul autovehiculului.

Microcontrollerul F2MC-8FX (Basoon) [13] este conceput cu o arhitectură pe 8 biţi, proiectat pentru aplicaţii industriale diverse şi în special pentru aplicaţii care necesită tensiuni scăzute şi putere consumată mică. Caracteristici generale: tactul 10MHz, memorie RAM si FLASH, UART, LIN UART, I2C, 12 canale ADC de 10 biţi, timere, generator PWM, watchdog, moduri de funcţionare cu economie de energie (Sleep, stop, watch). Unele modele de microcontrollere se fabrică pentru gama de temperaturi între -40°C şi 105°C, ceea ce face potrivite aceste microcontrollere pentru utilizarea auto.

Partea software realizează următoarele operaţii: 1. Iniţializează porturile de I/O şi modulele interne folosite: UART, ADC, PWM, IN

CAP 2. Se măsoară turaţia ş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, corespunzător tensiunii mici pe baterie. Alternatorul este astfel frânat şi porneşte cu întârziere. De aceea se recurge la varianta de comandă a înfăşurării de excitaţie doar după ce alternatorul are o anumită turaţie.

ALTERNATOR

Energia motorului maşinii

Infăşurare de excitaţie

Baterie (acumulator auto) 12V

Sarcina variabilă- consumatori

Microcontroller FUJITSU 8FX PWM Input Capture ADC1 ADC2 UART

Page 91: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

91

3. Daca turaţia este peste limita aleasă se măsoară tensiunea pe baterie şi se modifică factorul de umplere corespunzător cu valoarea măsurată.

4. dată la 10-100 măsurători se măsoară temperatura şi se corectează factorul de umplere.

Programul a fost scris în C şi assembler şi a fost testat în mediul Softune Workbench 8FX pus la dispoziţie de Fujitsu.

În afară de sistemul de dezvoltare Concerto au fost folosite mai multe module de interfaţare cu procesul controlat:

• Alimentarea microcontrollerului şi a circuitelor anexe se realizează de la tensiunea bateriei printr-un stabilizator serie clasic.

• Valorile tensiunii pe baterie sunt 12V+/-1V când alternatorul nu se roteşte şi 14,4V+/-0.2V când generatorul se roteşte. Preluarea tensiunii de la baterie în vederea măsurării a fost realizată prin decalarea tensiunii cu o diodă Zenner (varianta low cost) sau cu un montaj cu AO.

• Măsurarea frecvenţei se face prin transformarea semnalului pulsatoriu preluat de la diodele de redresare ale alternatorului în semnal dreptunghiular şi limitarea tensiunii la 4.7V.

• Comanda înfăşurării de excitaţie se face cu un canal PWM din microcontroller, semnalul fiind amplificat de un tranzistor NMOS de tip IRF540.

Montajul format din sistemul de dezvoltare şi circuitele de adaptare este arătat în figura 4.61.

Figura 4.61: Modelul experimental

Pentru punerea la punct a sistemului a fost implementată o legătură între microcontroller şi un PC prin interfaţa serială RS232. Microcontrollerul trimite în timp real valoarea tensiunii măsurate la bornele alternatorului şi valoarea turaţiei. Programul care rulează pe calculator interpretează datele recepţionate şi le afişează în timp real prin intermediul unei interfeţe grafice. Este posibilă stocarea acestori valori precum şi informaţii despre factorul de umplere al semnalului PWM generat. Interfaţa grafică este prezentată în figura 4.62.

Au fost realizate teste prin varierea aleatoare a turaţiei şi sarcinii, rezultatele fiind preluate de la microcontroller şi afişate [14]. Graficul din figura arată valoarea tensiunii la bornele alternatorului dacă sarcina şi turaţia variază aleator timp de 2 minute. Curentul de sarcină în regim normal este mai mic decât 20A (la 12V). S-a simulat o creştere scurtă a sarcinii peste valoarea admisă (scurtcircuit) pentru a se verifica sistemele de siguranţă implementate software.

Page 92: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

92

Figura 4.62: Interfaţa grafică pentru afişarea turaţiei şi tensiunii

Se remarcă căderea de tensiune de scurtă durată din dreapta graficului. În graficul din figura următoare se văd rezultatele aceluiaşi test în cazul utilizării unui regulator electronic clasic. Se poate constata o mai mică gamă de timp în care regulatorul funcţionează eficient precum şi comportarea la scurtcircuit, mult mai dezavantajoasă.

Figura 4.63: Tensiunea la bornele alternatorului la reglarea cu microcontroller

Figura 4.64: Tensiunea la bornele alternatorului la reglarea clasică

Page 93: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

93

4.9. Economia de combustibil şi emisia de bioxid de carbon

Înlocuirea unor subansamble clasice din autovehicul cu sisteme înglobate cu microcontroller are de multe ori ca efect secundar micşorarea noxelor emise în aer. Se subliniază acest aspect prin evidenţierea unor aplicaţii la sfârşitul capitolului dedicat aplicaţiilor auto pentru a sensibiliza proiectanţii la problemele de mediu.

Datorită activităţii industriale şi în special datorită arderii combustibililor fosili, cantitatea de bioxid de carbon emisă în atmosferă este în continuă creştere. US Environmental Agency [15] afirmă că nivelul actual al concentraţiei este cel mai mare din ultimii 650 mii de ani, crescând de la 280 ppm (părţi pe milion) la 382 ppm. Chiar dacă efectul global de încălzire este încă controversat [16], societatea actuală a înţeles pericolele posibile şi se încearcă găsirea unor soluţii.

Un grafic al emisiei de bioxid de carbon din surse neindustriale, preluat de pe un site al unei organizaţii guvernamentale americane [17] este dat în figura 4.65.

Figura 4.65: Distribuţia procentuală a surselor neindustriale de emisie de bioxid de carbon

Pe primul loc se află automobilele (51%), apoi aparatura casnică, (ex. frigider) (26%), sistemele de încălzire şi aer condiţionat (18%) şi gunoiul (5%). Este unanim acceptat că emisia de bioxid de carbon este legată de consumul de combustibil şi măsurile de reducere a consumului reduc şi emisiile. Firmele constructoare de autovehicule cercetează intens posibilitatea implementării măsurile de reducere a consumului, dar şi utilizatorii pot avea o contribuţie semnificativă. Astfel, site-ul [17] oferă sfaturi de micşorare a consumului.

În acest capitol un prim exemplu de aplicaţie care are ca urmare economia de combustibil a fost monitorizarea presiunii în pneuri. O altă aplicaţie care, pe lângă efectul principal urmărit are şi un efect benefic asupra mediului este direcţia asistată electric.

0

10

20

30

40

50

60

1 2 3 4

Gunoi Încălzire Casnice Automobile

Page 94: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

94

4.9.1.Direcţia asistată electric (Electric Power Steering, EPS)

Se consideră că direcţia asistată a fost inventată de F. Lanchester în 1902, brevetul fiind obţinut în Anglia [18]. Chrysler introduce prima implementare comercială în 1951 pe modelul Chrysler Imperial. Sistemul clasic de direcţie asistată este hidraulic, în care o pompă acţionată de motor creează presiunea aplicată sistemului de direcţie. Sistemul electric (Electric Power Steering, EPS) foloseşte un motor electric de acţionare a direcţiei, ceea ce asigură o economie de combustibil, deoarece nu există o pompă care să fie permanent în funcţiune. Un alt avantaj este simplificarea motorului pentru că nu mai există pompa acţionată prin intermediul unei curele de transmisie. Primul sistem EPS a fost montat în 1990 pe Honda NSX. În anul 2000 Honda a introdus primul EPS cu forţă variabilă funcţie de viteză numit Power Variable Gear Steering (VGS). Un sistem EPS este dat în figura 4.66.

Figura 4.66: EPS [19]

Un senzor de poziţie a volanului transmite date unui microcontroller care, în funcţie de unghiul de rotaţie al volanului comandă un motor care acţionează direcţia. O schemă bloc a unui sistem de comandă EPS, bazat pe o nouă generaţie de microcontrollere de la Fujitsu este dată în figura 4.67.

Figura 4.67: Schema bloc a unui sistem de comandă EPS [20]

Senzor de poziţie

Intrări digitale: -temperatura motor -tensiune baterie ........................

Senzor poziţie

Software

Validare

Senzor de poziţie

Page 95: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

95

Viteza de reacţie a unui sistem EPS trebuie să fie mare, de aceea sistemul de control este implementat cu două microcontrollere pe 32 de biţi, unul pentru preluarea datelor de la senzorul de la volan şi pentru comanda motorului iar celălalt pentru supervizare şi comunicaţia cu calculatorul autoturismului. Microcontrollerul de comandă a motorului are înglobate interfeţe specifice de comandă PWM (Pulse Width Modulation), canalele numite de Fujitsu PPG (Programmable Pulse Generator), iar microcontrollerul de supervizare şi comunicaţie are încorporate interfeţe pentru cuplarea pe LIN (Local Interconnect Network), CAN (Controller Area Network) şi FlexRay. Un senzor de poziţie a motorului verifică dacă acesta a executat comanda dată de mişcarea volanului. Microcontrollerul de supervizare validează funcţionarea motorului şi este informat dacă acesta are erori de poziţionare. Resursele microcontrollerului de supervizare permit şi achiziţia şi verificarea unor parametrii auxiliari: temperatura motorului electric şi temperatura motorului maşinii, tensiunea bateriei etc.

Bibliografie

[1] Ogrutan P., Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3

[2] http://edevice.fujitsu.com/fj/MARCOM/find/22-3e/pdf/7.pdf [online] Fujitsu S1BG Gyro Sensor Fact sheet

[3] Dong L., Zheng Q., Zhiqiang G., On Control System Design for the Conventional Mode of Operation of Vibrational Gyroscopes, Sensors Journal, IEEE, 2008, Volume: 8 , Issue: 11, page(s) 1871 – 1878, ISSN: 1530-437X

[4] Haipeng Z., Jiancheng F., Research Periodic Error Characteristics of Quartz MEMS Gyroscope in Navigation System, Electronic Measurement and Instruments, 2007. ICEMI '07. 8th International Conference on, 2007, page(s): 1-430 - 1-435, ISBN: 978-1-4244-1136-8

[5] Haipeng Z., Jiancheng F., Xiangdong X., Real time Compensation of Quartz MEMS Gyroscope Drift Periodic Error, Electronic Measurement and Instruments, 2007. ICEMI '07. 8th International Conference on, 2007 page(s): 1-392 - 1-397, ISBN: 978-1-4244-1136-8

[6] Piyabongkarn D., Rajamani R., The development of a MEMS gyroscope for absolute angle measurement, American Control Conference, 2002. Proceedings of the, Volume 3, page(s): 1960 - 1965 ISSN: 0743-1619, ISBN: 0-7803-7298-0

[7] Nagy L., , Building a digital clinometer with the FAR-S1bg gyro sensor, Fujitsu Application Note, 2006

Page 96: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

96

[8] Chen W.T.; Hsu J.C., Lune H.W., Su C.C., A spread spectrum clock generator for SATA-II, Circuits and Systems, 2005. ISCAS 2005. IEEE International Symposium on, 23-26 May 2005 Page(s):2643 - 2646 Vol. 3

[9] Ko J., Lee S., Kim D., Kim K., Chang K.E., Spread spectrum clock generator for reducing Electro-Magnetic Interference (EMI) noise in LCD driver IC, Circuits and Systems, 2007. MWSCAS 2007. 50th Midwest Symposium on 5-8 Aug. 2007 Page(s):1106 – 1109

[10] Kim J., Jun P., Dithered timing spread spectrum clock generation for reduction of electromagnetic radiated emission from high-speed digital system, Electromagnetic Compatibility, 2002. EMC 2002. IEEE International Symposium on, Volume 1, 19-23 Aug. 2002 Page(s):413 - 418 vol.1

[11] http://www.arm.com/markets/embedded_solutions/armpp/429.html

[12] Kitagawa Y., Takahashi S., Yaguchi Y., US Patent 6563359, Semiconductor integrated circuit including clock modulation circuit, 2003

[13] F2MC-8FX Fujitsu Semiconductor Data Sheet (Preliminary)

[14] Gal P., Microcontroller- driven Alternator Voltage Regulator, Application Note, Fujitsu ME, 2006

[15] http://www.epa.gov/climatechange/science/recentac.html

[16] Ristoiu D., Tahas S.V., Cosma C., Încălzirea globală şi efectele ei asupra climatului terestru, ENVIRONMENT & PROGRESS, 6, 2006, P.489 – 496

[17] http://www.fueleconomy.gov/

[18] http://en.wikipedia.org/wiki/Power_steering

[19] http://www.indiacar.com/infobank/epc.htm

[20] 32-bit Microcontroller with Built-in FlexRay for Automotive Control Systems, Find, vol. 25, No. 4, 2007, p.1-4

Page 97: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

97

Capitolul 5: Comanda motoarelor cu microcontrollere

Foarte multe aplicaţii din domeniul microcontrollerelor au sarcina acţionării unor motoare. De exemplu aplicaţiile auto-motoarele de la geamurile electrice, motoarele indicatoarelor de bord etc. sau aplicaţiile din domeniul echipamentelor periferice - imprimantă, hard disc etc. Sau aplicaţiile industriale - acţionări de vane, robinete etc. Motoarele pot fi:

• de curent continuu cu perii sau fără perii; • motoare pas cu pas; • de curent alternativ cu inducţie; • motoare cu reluctanţă comutată.

Primele două categorii de motoare sunt utilizate mai des în aplicaţiile cu microcontroller de aceea vor fi abordate în acest capitol. Un motor poate fi comandat de către un microcontroller atât direct, cât şi prin intermediul unor interfeţe specializate, programabile.

5.1.Comanda motoarelor de curent continuu

Schema bloc a sistemului de acţionare cu motor de curent continuu este dată în figura 5.1.

Figura 5.1: Schema bloc a unei acţionări cu motor de curent continuu

Cel mai simplu de comandat, pentru a obţine o viteză variabilă, sunt motoarele de c.c. deoarece cu cât tensiunea aplicată este mai mare cu atât viteza este mai mare. O mişcare de poziţionare este compusă dintr-o accelerare, dintr-o deplasare cu viteză constantă şi o frânare, conform unei traiectorii de viteză ca în figura 5.2.

Figura 5.2: Traiectoria de viteză

v

t

Accelerare Viteza Frânare ta constantă tc tf

Poziţia actuală

Valoarea numerică a poziţiei finale

Comparator numeric

MCC

SERVOMECANISM

SARCINA

Convertor D/A

Traductor de poziţie

Traductor de viteză

Page 98: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

98

Timpul de deplasare este td= ta+ tc +tf iar timpul de poziţionare este suma dintre timpul de deplasare şi timpul de stabilire (de amortizare a oscilaţiilor sistemului de poziţionare după atingerea poziţiei finale), tp= td+ ts

Pentru a obţine viteza variabilă este suficient să aplicăm o tensiune variabilă. Tensiunea variabilă poate fi aplicată în mai multe feluri:

• informaţia numerică este convertită într-o informaţie analogică şi este aplicată unui tranzistor (pentru comanda într-un sens) sau la doi tranzistori (pentru comanda în ambele sensuri). Tensiunea variabilă astfel obţinută se aplică motorului de c.c. Un dezavantaj este folosirea unui convertor D/A şi puterea pierdută în tranzistorii care lucrează în zona liniară.

• informaţia numerică creează un semnal PWM, cu frecvenţa destul de mare ca motorul, datorită inerţiei, să integreze impulsurile. Motorul va avea o viteză proporţională cu factorul de umplere. Acest mod de comandă este mult mai simplu şi tranzistorul, fiind în regim de comutaţie nu disipă inutil.

Dificultatea acţionărilor cu motor de curent continuu este partea de traductor de poziţie care, mai ales la precizia cerută în aplicaţiile noi sunt dificil de implementat.

În diagrama următoare (figura 5.3) se arată comanda PWM în ambele sensuri:

Figura 5.3: Comanda unui motor de curent continuu

Cuplând un motor de curent continuu între PWM1P0 şi PWM2P0 se poate obţine o rotire cu viteză variabilă în ambele sensuri ale motorului. Motorul de curent continuu se roteşte cu o viteză proporţională cu tensiunea aplicată. Dacă tensiunea aplicată este sub formă de impulsuri motorul se roteşte proporţional cu valoarea medie a tensiunii.

PWM1P0=1 PWM2P0=0 MCC

PWM1P0 PWM2P0 Tensiunea pe motor

Factorul de umplere este egal la cele 2 canale PWM şi motorul nu se roteşte pentru că tensiunea la bornele lui este 0

PWM1P0=0 PWM2P0=1 MCC

Motorul se roteşte pentru că tensiunea la bornele lui (PWM1P0-PWM2P0) este diferită de 0.

Page 99: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

99

O simulare în SIMULINK dovedeşte valabilitatea acestei metode de control. S-a folosit un model din SIMULINK pentru motorul de curent continuu şi cele 2 canale PWM au fost simulate cu generatoare de impulsuri cu lăţime variabilă, figura 5.4.

Figura 5.4: Model SIMULINK pentru simularea funcţionării motorului de curent continuu

Rezultatele simulării sunt reprezentate în figura 5.5. În stânga sus este reprezentată forma curentului prin motor şi jos turaţia obţinute pentru factor de umplere de 90% respectiv 10%.

Figura 5.5: Rezultatele simulării SIMULINK

Se observă că acestea au aceeaşi formă de variaţie. În dreapta sunt reprezentate aceleaşi curbe, dar cu factor de umplere 10% respectiv 90%. Se vede că motorul se roteşte în sens contrar.

Page 100: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

100

Din punct de vedere constructiv motoarele de curent continuu pot fi cu perii la care rotirea câmpului magnetic este realizată prin comutarea curentului prin înfăşurări cu un sistem colector şi perii. Aceste motoare sunt asociate cu un nivel mare de perturbaţii electromagnetice generate. În figura 5.61 este reprezentat un motor de acţionare a hârtiei la o imprimantă HP lângă o şurubelniţă pentru a putea aprecia dimensiunea. Se poate observa tubul de ferită de pe cablu care are rolul de a micşora perturbaţiile.

Figura 5.6: Motor de curent continuu

O altă variantă este motorul de c.c. la care câmpul învârtitor este realizat prin excitarea pe rând a unor bobine, funcţionarea fiind asemănătoare motoarelor pas cu pas. Motoarele cu mişcare circulară pot acţiona liniar printr-un sistem de conversie mecanic al mişcării, cele mai cunoscute fiind acţionarea unui şurub fără sfârşit sau cu bandă elastică.

O categorie deosebită sunt motoarele de c.c. liniare electrodinamice. Motorul liniar este format dintr-un stator magnet permanent şi o bobină mobilă. Aceasta este acţionată de forţa electrodinamică care rezultă din interacţiunea dintre câmpul produs de curentul care parcurge bobina şi câmpul magnetic staţionar produs în stator de magneţii permanenţi. Se utilizează două tipuri constructive: cu bobină lungă şi întrefier scurt şi cu bobină lungă şi întrefier scurt.

Lungimea bobinei lungi şi a întrefierului lung trebuie să fie suficient de mari pentru ca în timpul mişcărilor de poziţionare forţa să se menţină constantă, deci în întrefier să se afle aceeaşi lungime de bobină, figura 5.7.

Figura 5.7: Motorul electrodinamic cu bobină lungă (stânga), cu bobină scurtă (mijloc) şi fotografia unui motor

1 În acest capitol majoritatea fotografiilor sunt ale unor subansamble din colecţia autorilor

Page 101: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

101

5.2.Comanda motoarelor pas cu pas

Motorul pas cu pas este un dispozitiv pentru conversia informaţiilor numerice în lucru mecanic pe baza unui consum de energie de la o sursă. Motorul pas cu pas este un motor de curent continuu comandabil digital, cu deplasarea unghiulară a rotorului proporţională cu numărul de impulsuri primite. La fiecare impuls rotorul execută un pas unghiular apoi se opreşte până la sosirea unui nou impuls. Motorul pas cu pas este capabil de reversarea sensului de mişcare. Dacă este comandat corect (cu o frecvenţă mai mică decât cea admisibilă) rămâne în sincronism cu impulsurile de comandă la accelerare, mers constant şi încetinire. O schemă bloc de acţionare este dată în figura 5.8.

Figura 5.8: Schema bloc de acţionare cu motot pas cu pas

Se poate observa din schema bloc că traductorul de poziţie poate lipsi pentru că, în aplicaţii mai simple motorul va executa numărul de paşi comandat şi va ajunge în poziţia dorită. Se câştigă astfel o simplificare a schemei dar se pierde la performanţă. Comanda cu traiectorie de viteză este posibilă prin variaţia frecvenţei impulsurilor dar schema de acţionare se complică.

Motoarele pas cu pas pot fi motoare unipolare sau bipolare. La motoarele bipolare comanda paşilor se face prin inversarea curentului prin înfăşurări. Principiul comenzii seamănă cu cel de la comanda motorului de curent continuu, cu diferenţa că în acest caz de regulă sunt 2 înfăşurări, figura 5.9.

Figura 5.9: Structura motorului pas cu pas bipolar

Conectarea unei înfăşurări (de exemplu 1a-1b) la cele 2 canale PWM permite inversarea curentului ca în diagramele din figura 5.10.

În acest caz controllerul trebuie să poată inversapolaritatea pentru o deplasare a curentului înambele sensuri. Controllerul trebuie să alimentezeînfăşurările succesiv cu o anumită secvenţă pentruun sens şi secvenţa inversă pentru celălalt sens. Îndesenul alăturat o parcurgere a 4 faze înseamnă orotire de 360°. Motoarele reale au mai multeînfăşurări şi un pas înseamnă o deplasareunghiulară mică.

Impulsuri de comandă

MPP

SERVOMECANISM SARCINA

Page 102: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

102

Figura 5.10: Inversarea curentului în înfăşurări la motoarele bipolare

MPP unipolare folosesc o priză mediană legată la alimentare, inversarea curentului obţinându-se prin legarea la masă succesivă a terminalelor extreme ale înfăşurării, ca în figura 5.11.

Figura 5.11: Inversarea curentului în motoarele unipolare

Înfăşurările motorului sunt conectate ca în figura 5.12.

Figura 5.12: Structura şi înfăşurările motorului unipolar

PWM1P0 PWM2P0 Tensiunea pe înfăşurarea 1a-1b

+V 0 -V

Factorul de umplere al PWM1P0 este > decât al PWM2P0, tensiunea aplicată este pozitivă

Factorul de umplere al PWM1P0 este < decât al PWM2P0, tensiunea aplicată este negativă

V

I

V

ISe obţin astfel câmpuri magnetice de sens contrar fără inversarea polarităţii

Prizele mediane sunt legate la alimentare şi secvenţa de impulsuri se aplică terminalelor 1a, 1b, 2a, 2b.

Page 103: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

103

Secvenţele digitale pentru comanda unui motor pas cu pas unipolar cu 4 faze în varianta cea mai simplă sunt date în figura 5.13 [5].

Figura 5.13: Secvenţele digitale pentru comanda unui motor pas cu pas unipolar

Pentru exemplificare se alege un port paralel pentru microcontrollerelor compatibile x86, linia D0 este cel mai puţin semnificativ bit şi un motor pas cu pas cu 3 faze. Un pas înseamnă parcurgerea tuturor fazelor. Schema de conectare şi programul care generează un pas într-un sens sunt date în figura 5.14.

Figura 5.14: Schema de conectare a unui motor pas cu pas la un port paralel şi programul

Programul din acest exemplu este dat pentru a arăta principiul de comandă. Este necesară introducerea unei întârzieri pentru menţinerea alimentării fazei un timp suficient pentru acţionarea electromecanică, timp care depinde de motor. Schema mai trebuie completată cu amplificatoare de curent şi/sau tensiune pentru acţionarea motorului. Un exemplu de motor pas cu pas modern, comandat cu două semnale (asigurarea semnalelor pentru faze sunt create intern) este dat în figura 5.15.

Figura 5.15: Motor pas cu pas

TACT FAZA 1 FAZA 2 FAZA 3 FAZA 4

t t t t t

Un pas într-un sens Un pas în sensul contrar Menţinere

Port paralel, adresa “adr”

D0

D1

D2

D3........

F1 F2 F3 MOV DX, adr MOV AL,01 OUT DX, AL CALL delay MOV AL,02 OUT DX,AL CALL delay MOV AL, 04 OUT DX,AL CALL delay

Motor bipolar pas cu pas Tensiunea de alimentare +12 - 24 VDC Curentul de pas pe fază 0.25 - 2.0 Amperi Pasul 1,8 grade Se poate comanda cu semnale: Pas, Directie, Validare, decuplate optic Protecţie la depăşirea temperaturii de lucru şi la subtensiune

Page 104: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

104

Observaţie

Un canal PWM poate fi folosit pentru a comanda o fază a motorului pas cu pas pentru a obţine un curent variabil. Semnalul PWM nu asigură succesiunea fazelor ci valoarea medie a tensiunii de alimentare a unei faze. Conectarea ieşirilor PWM la fazele unui motor unipolar este dată în figura 5.16.

Figura 5.16: Comanda PWM a fazelor unui motor unipolar

Un modul de comandă poate controla un motor pas cu pas asigurând un curent bine definit prin înfăşurări. Acest tip de comandă creează de exemplu posibilitatea de a comanda motorul cu un curent mai mare la pornire sau permite realizarea unor traiectorii optime de viteză (regim accelerat- frânat).

5.3.Traductori de poziţie şi circuite driver

Există o mare diversitate de traductoare de poziţie pentru poziţionarea motoarelor. Câteva exemple vor demonstra acest lucru. Senzorii cei mai utilizaţi sunt cei care generează două semnale defazate la deplasare (encoder), cu formă liniară sau circulară. Aceşti senzori pot fi inductivi, capacitivi sau optici. Senzorii optici echipează imprimantele cu jet de cerneală la poziţionarea capetelor de scriere. În funcţie de modelul de imprimantă există senzori optici liniari sau circulari. Un senzor optic circular (encoder) şi unul liniar sunt prezentaţi în figura 5.17, alături de o ruletă gradată în mm pentru comparaţie.

Se poate vedea precizia mai mare a traductorului circular (imprimantă de 600dpi) faţă de cea a traductorului liniar (300dpi). La echipamentele la care precizia unor asemenea senzori nu este suficientă, aşa cum este poziţionarea capetelor la hard disc sau unitatea optică, se folosesc pentru poziţionare semnalele scrise pe suport.

La aplicaţii mai modeste pot fi folosiţi senzori cum sunt cei prezentaţi în figura 5.18.

Senzorul de poziţie M150 este un potenţiometru miniatură (18,8mm) la care axul este rotit prin tragerea unui fir de oţel acoperit cu plastic cu lungimea de 1,5” (38,1mm) care se retractează automat [1]. Acurateţea senzorului este mai bună de 1%. Rezistenţa maximă a potenţiometrului este de 5k şi tensiunea aplicată poate fi de maximum 20V. Extinderea firului poate să nu fie liniară, cu condiţia respectării unor unghiuri limită. Senzorul SP1 este de

PWM1P0 conectat la 1a PWM1M0 conectat la 2a PWM2P0 conectat la 1b PWM2M0 conectat la 2b

Page 105: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

105

dimensiuni mai mari (50mm) dar firul poate atinge lungimea de 1270mm. Senzorul LX-EP [2] este un senzor cu fir de oţel dar principiul de detecţie a poziţiei este optic iar ieşirea este digitală, oferind la ieşire două semnale defazate (encoder). Lungimea maximă a firului este de 1270mm.

Figura 5.17: Traductor optic de poziţie, circular (stânga), un detaliu (mijloc) şi liniar (dreapta)

Figura 5.18: Senzor de poziţie M150 (stânga) şi SP1 (mijloc) şi LX-EP (dreapta)

În funcţionarea anumitor motoare se urmăreşte obţinerea unei viteze constante şi nu a poziţionării precise (de exemplu la motoarele imprimantelor LASER). În aceste situaţii se pot utiliza traductori Hall sau spirale pe cablaj în care se induce o tensiune proporţională cu viteza de rotaţie, figura 5.19.

În figura 5.19 dreapta se poate remarca structura internă a unui motor de curent continuu fără perii în care câmpul învârtitor este realizat prin mai multe bobine. La acest motor rotorul este exterior şi este un magnet permanent.

Ruleta gradată

1mm

Roata dinţată de antrenare

Zona traductor

Page 106: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

106

Figura 5.19: Traductor Hall (stânga) şi spirală traductor de viteză (dreapta)

Un traductor Hall este de exemplu cel produs de Infineon, TLE4921. Traductorul constă în 2 senzori Hall la 2,5mm distanţă formând un traductor diferenţial utilizat pentru determinarea poziţiei şi turaţiei. Piesa mobilă poate fi un magnet permanent dar poate fi şi din material feromagnetic, caz în care pe senzor trebuie montat un magnet permanent. Traductorul conţine sisteme de protecţie la supratensiune şi alimentare inversă şi poate fi alimentat în gama 0-30V. Ieşirea este digitală. Traductorul şi o schemă de conectare sunt date în figura 5.20.

Figura 5.20: Traductorul Hall Infineon TLE4921 şi schema electrică de conectare

Pentru acţionarea motoarelor care absorb un curent de comandă mai mare decât cel generat de microcontroller se pot folosi amplificatoare de curent. Un circuit integrat preferat în proiectele noastre este ULN2003, figura 5.21. Circuitul conţine şapte tranzistoare Darligton integrate care asigură un curent mediu de 500mA şi un curent de vârf de 600mA la o tensiune de maxim 50V. Pentru mărirea curentului se pot folosi două canale în paralel. Intrările sunt comandabile TTL /CMOS. Intrările şi ieşirile sunt pe părţi diferite ale capsulei, uşurând astfel proiectarea cablajului. Câte o diodă pe fiecare canal asigură protecţia în cazul sarcinilor inductive.

Senzor Hall fixat pe cablaj

Magnet fixat pe rotor

Page 107: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

107

Figura 5.21: Circuit driver pentru motoare ULN2003

Un circuit driver mai sofisticat prin care se pot comanda motoare de curent continuu bidirecţional cu un singur canal PWM şi 2 semnale linii de semnal ajutătoare este circuitul Allegro A3950. Acesta poate asigura curenţi de până la 2,8A la o tensiune de 36V. Circuitul are protecţie la scurtcircuitul motorului, la subtensiune şi la supratemperatură. Circuitul conţine o punte Full Bridge prin care curentul poate fi furnizat bidirecţional. Circuitul poate fi comandat într-o stare de economie de energie cu un semnal de SLEEP. Diagrama de timp pentru comanda bidirecţională este dată în figura 5.22.

Figura 5.22: Diagrama de timp pentru comanda bidirecţională a unui motor de curent continuu cu Allegro A3950

Dacă semnalul PWM este aplicat la intrarea ENABLE motorul va fi comandat într-un sens dacă semnalul PHASE este 1 logic şi în sensul contrar dacă semnalul PHASE este 0 logic.

Diversitatea driverelor este foarte mare, aşa cum de fapt este diversitatea motoarelor. Pe pagina Sanyo (http://semicon.sanyo.com/en/motor/index.php) există prezentate multe modele de drivere grupate duă tipul motoarelor la care se folosesc dar şi după domeniul de aplicabilitate: uz casnic, auto, echipamente periferice, aparate foto etc.

ENABLE PHASE IMOTOR

Page 108: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

108

5.4.Generarea semnalelor PWM

Generarea semnalelor PWM cu microcontrollere se poate realiza folosind un timer de uz general din structura microcontrollerului sau module specializate în cazul microcontrollerelor dedicate controlului motoarelor.

5.4.1. Timere I/O

Un timer de I/O tipic familiei de microcontrollere Fujitsu [3] constă în 2 numărătoare de 16 biţi care au asociate 4 module de comparare şi 4 module de captură. Modulele de comparare au 8 pini externi de ieşire iar modulele de captură au 8 pini externi de intrare.

Numărătorul numără liber un tact intern sau un tact extern care pot fi divizate de un circuit de prescalare. Se poate genera o întrerupere dacă numărătorul a ajuns la capăt (Overflow) sau la egalitatea ieşirilor numărătorului cu un registru de comparare. Numărătorul se poate iniţializa la un Reset extern, la un Reset soft sau la egalitatea cu registrul de comparare.

Regiştrii de comparare sunt de 16 biţi şi sunt controlaţi de un registru de control. Când un numărător ajunge la valoarea stocată în registrul de comparare nivelul de ieşire al pinului extern corespunzător este modificat, se cere o întrerupere şi se iniţializează numărătorul (dacă această opţiune este validată). Pentru generarea PWM este folosit numărătorul şi regiştrii de comparare.

Regiştrii de captură sunt de 16 biţi şi sunt controlaţi de un registru de control. La apariţia unui front de la un pin extern valoarea numărătorului poate fi stocată într-un registru de captură şi se generează o întrerupere. Frontul de declanşare poate fi programat: cel crescător, descrescător sau ambele fronturi.

Schema bloc a timerului este dată în figura 5.23. Liniile gri din spatele blocurilor semnifică faptul că fiecare numărător are asociate module de comparare OCU (Output Compare Unit) şi module de captură ICU (Input Capture Unit). Numărătorul 0 este conectat cu OCU 0/1/2/3 şi cu ICU 0/1/2/3 iar numărătorul 1 este conectat cu OCU 4/5/6/7 şi cu ICU 4/5/6/7.

Se poate spune că timerul constă în 2 canale identice bazate pe câte un numărător, fiecare canal având asociate 2 module de comparare, 2 module de captură şi 8 pini externi din care 4 de ieşire şi 4 de intrare.

Numărătorul conţine un registru de date TCDT0/1 (Data Register of Free Running Timer) de 16 biţi din care se poate citi valoarea numărătorului sau se poate scrie (doar când numărătorul este oprit). Tactul numărătorului poate fi selectat tactul intern sau tactul de la un pin extern. Selecţia se face cu un bit din registrul TCCSH0/1.

Page 109: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

109

Figura 5.23: Schema bloc a timerului de I/O

Un registru de control TCCSL0/1 programează funcţionarea numărătorului. Cererea de întrerupere IVF este validată de bitul IVFE. Schema bloc a numărătorului este dată în figura 5.24.

Figura 5.24: Schema bloc a numărătorului din componenţa timerului de I/O

intern

Numărător de 16 biţi 0/1

Registru de comparare 0/2/4/6

Registru de comparare 1/3/5/7

Registru de captură 0/2/4/6

Registru de captură 1/3/5/7

Selecţie tact FRK0 FRK1

OUT0 OUT2 OUT4 OUT6 OUT1 OUT3 OUT5 OUT7 IN0 IN2 IN4 IN6 IN1 IN3 IN5 IN7

Tact intern FRCK

tact Numărător pe 16 biţi TCDT0/1

TCCSL

Ieşire pentru comparare

Divizare

ECKE TCCSH

Cerere de întrerupere

IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0

Page 110: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

110

TCCSL0/1 (Control Status Register of Free Running Timer) este un registru de 8 biţi care conţine: IVF este un flag de cerere de întrerupere, IVFE validează cererea de întrerupere, STOP opreşte numărătorul, MODE stabileşte modul de iniţializare (cu nivel H numărătorul se iniţializează prin comparare şi egalitate cu regiştrii de comparare), CLR iniţializează numărătorul cu 0000H, 3 biţi CLK stabilesc factorul de divizare al tactului.

TCCSH0/1 (Control Status Register of Free Running Timer) este un registru de 8 biţi din care este folosit un singur bit (ECKE) care selectează tactul intern sau tactul extern de la pinul FRCK.

O diagramă de timp arată evoluţia numărătorului şi iniţializarea prin depăşire (figura 5.25a) şi iniţializarea prin egalitate cu registrul de comparare (figura 5.25b).

Pentru analiza evoluţiei unui timer sunt utile diagramele de timp cu reprezentare “analogică” a valorii digitale din numărător. Modulul de comparare constă în 2 regiştrii de 16 biţi, 2 pini de comparare de ieşire şi un registru de control. În MB90350 sunt integrate 4 module de comparare separate (dar acelaşi numărător la 2 module).

Figura 5.25: Iniţializarea numărătorului prin depăşire şi prin egalitate cu registrul de comparare

Pentru fiecare modul regiştrii de comparare pot fi utilizaţi independent. În funcţie de modul de operare regiştrii pot comanda pinii de ieşire. Valoarea iniţială a fiecărui pin poate fi programată separat. Fiecare modul poate genera un semnal PWM folosind ambii regiştrii de comparare. Schema bloc a modulului de comparare este dată în figura 5.26.

timp

Valoare numărător

FFFFH BFFFH 7FFFH 3FFFH 0000H /RESET INT

timp

Valoare numărător

FFFFH BFFFH 7FFFH 3FFFH 0000H /RESETINT

Registrul de comparare este BFFFH

Figura a Figura b

Page 111: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

111

Figura 5.26: Schema bloc a modulului de comparare

OCCP (Registru de comparare, Output Compare Register) de 16 biţi conţine valoarea cu care se compară valoarea numărătorului. Acest registru trebuie încărcat înainte de a valida operarea.

OCS0/2/4/6 (Control Status Register of Output Compare Low) sunt regiştrii de 8 biţi în care ICP este o cerere de întrerupere la egalitate (câte una pentru fiecare registru de comparare), ICE sunt biţi de validare a cererii de întrerupere iar 2 biţi (CST) validează operaţia de comparare.

OCS1/3/5/7 (Control Status Register of Output Compare High) sunt regiştrii de 8 biţi în care 2 biţi (CMOD0 şi CMOD1) validează modul de operare al pinilor de ieşire (nivelul lor logic se schimbă sau nu la egalitate), 2 biţi validează pinii de ieşire iar 2 biţi schimbă valoarea logică a ieşirilor.

Funcţionarea poate fi fără schimbarea valorii logice a pinilor de ieşire la egalitate (CMOD0/1=00B) şi funcţionarea cu schimbarea valorii logice a ieşirii OUT0 şi OUT1 la egalitatea OCCP0 cu OCCP1 (CMOD0/1=01B). De asemenea ieşirea poate să schimbe sau nu valoarea logică la iniţializarea numărătorului. Generarea a 2 semnale PWM este exemplificată în figura 5.27.

Cerere de întrerupere comparator 1 /comparator 0

OCS Controlul comparării

OCCP0 Registru de comparare 0

Valoare numărător

OCCP1 Registru de comparare 1

OUT0 OUT1

ICP1 ICP0 ICE1 ICE0 CST0 CST1

Page 112: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

112

Figura 5.27: Două moduri de lucru ale modulului de comparare

5.4.2. Exemplu de modul pentru comanda motoarelor în microcontrollere specializate

MC Fujitsu sunt folosite mult în aplicaţii auto, de aceea se integrează un modul dedicat comenzii motoarelor pas cu pas, dar care poate comanda şi motoare de curent continuu. Acest modul apare deja la MC pe 8 biţi de tip vechi (MB89940), echipează multe MC pe 16 biţi (MB90390, 90420, 90590, 90595) şi MC pe 32 de biţi (MB91360).

Modulul de comandă pentru comanda motoarelor conţine 2 generatoare PWM, 4 etaje de ieşire de putere (drivere de motor) şi logica de selecţie. Driverele pot asigura un curent mare care permite conectarea directă a motoarelor de mică putere. Un mecanism de sincronizare asigură funcţionarea sincronizată a celor 2 generatoare PWM. În general MC conţin mai multe asemenea module. Schema bloc a unui modul de control motoare care conţine 2 canale PWM şi 4 drivere de ieşire este dată în figura 5.28.

Numărătorul PWM pentru fiecare canal numără până la capăt, apoi se reîncarcă şi numărarea reîncepe. La coincidenţa valorii din numărător cu cea stocată în registrul de comparare semnalul de ieşire îşi schimbă starea logică. La sfârşitul numărării semnalul de ieşire îşi schimbă din nou starea logică. Regiştrii de comandă sunt:

PWM Control Register (8 biţi) controlează pornirea/ oprirea operării, pinii externi şi întreruperile. 2 biţi selectează funcţionarea pinilor externi ca pini de control motor sau pini de I/O de uz general, 2 biţi selectează tactul (tact divizat cu 1, 2, 4 sau 8), un bit porneşte operarea (PWM2 porneşte un tact după PWM1 pentru a micşora zgomotul produs în driver la o comutare simultană de curenţi mari), un bit selectează operarea PWM pe 8 sau 10 biţi.

OCCP0=BFFFH OCCP1=7FFFH Ieşirile schimbă valoarea logică la iniţializarea numărătorului.

timp

Valoare numărător

FFFFH

BFFFH

7FFFH

3FFFH

0000H

/RESET

OUT0

OUT1

CMOD1/0=00B

Page 113: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

113

Figura 5.28: Schema bloc a modulului de comandă a motoarelor

PWM1/2 Compare Register (16 biţi) specifică lăţimea impulsului PWM (formatul de scriere este pe 8 sau 10 biţi). O valoare de 000H indică un factor de umplere de 0% iar o valoare de 3FFH indică un factor de umplere de 99,9% (99,6% pentru formatul pe 8 biţi). Pentru a putea stoca valori pe 10 biţi regiştrii de comparare sunt pe 16 biţi. Trei variante de semnale cu factor de umplere diferit sunt arătate în figura 5.29.

Figura 5.29: Trei diagrame de timp pentru 3 factori de umplere diferiţi

PWM1/2 Selection Register controlează pinii de ieşire. Un bit asigură sincronizarea ieşirilor în sensul că orice modificare în configurarea canalelor PWM nu se reflectă la ieşire decât după ce acest bit este setat. Câte 3 biţi selectează tipul de semnal de ieşire la ieşirile PWM1P0, PWM1M0, PWM2P0, PWM2M0- semnal în stare L, H, impedanţă ridicată sau PWM.

PWM1 Selecţie tact Selecţie ieşire

Registru de comparare PWM1

Registru de selecţie PWM1

PWM1P0 PWM1M0

PWM2 Selecţie ieşire

Registru de comparare PWM2

Registru de selecţie PWM2

PWM2P0 PWM2M0

Ciclu PWM Registru de comparare 8 biţi 10 biţi 00H 000H 80H 200H FFH 3FFH

Page 114: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

114

5.5. Interfaţa pentru comanda motoarelor HCTL 1100 (Hewlett Packard)

Un circuit de interfaţă specializat în comanda motoarelor este circuitul HCTL 1100 [4]. Acesta poate comanda atât motoare pas cu pas cât şi motoare de curent continuu cu traiectorie determinată de viteză. Această interfaţă poate fi conectată la un microcontroller de uz general obţinând un sistem înglobat performant de control. Alegerea acestei variantei în locul celei cu microcontroller specializat în controlul motoarelor depinde de aplicaţie şi de costurile din acel moment. Schema bloc a interfeţei HCTL-1100 este dată în figura 5.30.

Figura 5.30: Schema bloc a interfeţei HCTL-1100

AD0/DB0- AD5/DB5- sunt 6 linii de adrese multiplexate cu date. Selecţia adresei se face cu /ALE; DB6, DB7- 2 linii de date nemultiplexate.

La început se stabileşte adresa pe liniile de date, apoi cu /ALE, aceasta se stochează în registrele interne. Apoi se stabilesc datele şi se validează cu R//W. Semnalul /OE stabileşte momentul citirii datelor în registrul intern al lui HCTL1100.

Semnalele CHA, CHB şi INDEX provin de la traductorul foto de turaţie. Aceste impulsuri incrementează un registru de poziţie actuală de 24 de biţi (se incrementează sau decrementează). Pentru evitarea impulsurilor eronate CHA şi CHB, acestea trebuie să rămână active cel puţin 3 perioade EXTCLK pentru a fi luate în considerare.

Intrările LIMIT şi STOP sunt semnale de urgenţă care comandă oprirea motorului independent de procesorul sau MC gazdă. Ieşirile PROF şi INIT pot fi interogate de MC gazdă pentru a afla starea circuitului. Cu /SYNC se pot sincroniza între ele mai multe circuite HCTL 1100. Semnalul RESET aduce circuitul în starea iniţială.

Interfaţa cu microprocesorul

AD0/DB0 ........ AD5/DB5 DB6 DB7 /ALE /CS /OE R//W RESET REGISTRE INTERNE

LIMIT STOPFlaguri urgenţe

INIT Flaguri de stare PROF

Generator de profil

Reacţie CHA CHB

Port de comandã a motorului

MC0 ............

MC7

Port PWM PULSE SIGN

Comutator PHA PHB PHC INDEX PHD

/SYNC Timer EXTCLK

Page 115: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

115

HCTL 1100 are 64 de registre interne pe 8 biţi din care 35 utilizabile din exterior. Aceste registre sunt adresate pe liniile de adresă AD0-AD5.

Traductorul optic de poziţie şi de sens este format dintr-un disc cu orificii dreptunghiulare dispuse pe circumferinţă. Orificiile sunt sesizate de două sisteme optice decalate. Din formele de undă generate de cele două sisteme decalate se poate deduce sensul rotaţiei, (figura 5.31).

Figura 5.31: Formele de undă generate de traductorul de poziţie şi sens şi un traductor optic cu disc

Pe disc mai este realizat un orificiu pentru impulsul de INDEX. La o rotaţie se generează un impuls INDEX. Impulsurile de la traductoare sunt sensibile la perturbaţii, de aceea se impun măsuri specifice EMC de protecţie. Aceste semnale pot constitui atât semnale pentru stabilirea poziţiei (prin numărarea impulsurilor), a sensului prin verificarea defazajului cât şi a vitezei, printr-un convertor tensiune/frecvenţă.

5.5.1. Comanda unui motor de curent continuu printr-un convertor D/A

La ieşirile MC0-MC7 se cuplează un convertor D/A, ca în figura 5.32.

Figura 5.32: Conectarea unui motor de c.c. la HCTL 1100

HCTL 1100 MC0 MC1 MC7

CD/A +5V

IoConv. I-U

vo +

FOTO 1

FOTO 2

FOTO 1

FOTO 2

SENS

SENS

Page 116: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

116

Datele se stochează în registrul 08H al HCTL pe 8 biţi. Pentru a putea comanda motorul în ambele sensuri, se consideră tensiuni negative în intervalul de comandă 00H-7FH şi valori pozitive în intervalul 80H-FFH, figura 5.33.

Figura 5.33: Generarea tensiunilor de comandă prin convertorul AD

5.5.2.Comanda PWM a unui motor de c.c. cu HCTL 1100

Comanda unui motor de c.c. se face cu semnalul PULSE. Frecvenţa acestuia este stabilită la EXTCLK/100. Semnalul SIGN comandă sensul de rotaţie. În registrul 09H al HCTL 1100 se încarcă lăţimea impulsului, figura 5.34. Comanda se face cu valori zecimale, astfel 00H=0D înseamnă un factor de umplere de 0%, 32H=50D înseamnă 50% iar 64H=100D înseamnă 100%.

Figura 5.34: Programarea HCTL 1100 pentru comanda unui motor de c.c. cu modulaţie PWM

5.5.3. Comanda unui motor pas cu pas cu HCTL 1100

Se pot comanda motoare pas cu pas cu 2,3 sau 4 faze, cu diferite succesiuni de comandă a fazelor. Semnalul INDEX serveşte la stabilirea poziţiei iniţiale a motorului. Succesiunea fazelor se poate programa prin registrul 07H. Pentru o programare în care toate fazele sunt active se generează o secvenţă ca în figura 5.35.

00H 40H 80H C0H FFH registrul 08H

U +5V 2,5V -2,5V -5V

100% 50%

Factor de umplere

SIGN=0 SIGN=1

80H 9CH 00H 32H 64H registrul 09H

Page 117: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

117

Frecvenţa impulsurilor poate fi variabilă (programabilă). Ca urmare se pot comanda şi motoare pas cu pas cu un anumit profil de viteză.

Figura 5.35: Secvenţă de comandă a unui MPP cu patru faze

5.5.4. Cuplare circuitului HCTL 1100 la microcontroller

Cuplarea circuitului HCTL1100 la microcontrollerul AT90S1200 este dată în figura 5.36. Circuitul driver pentru motoare pas cu pas şi pentru motoare de curent continuu, HCTL-1100, primeşte semnalele de comandă şi date de la microcontroller prin porturile acestuia. Pe portul B al microcontrollerului se trimit date catre circuitul HCTL1100 şi se citesc date din acesta, iar pe portul D se trimit comenzi (semnale) pentru circuitul HCTL1100.

VCC

C4

30pF

C61uF

C3

30pF

Y12MHz

R6

10K

U4

HCTL1100

AD02

AD13

AD24

AD35

AD46

AD57

AD68

AD79

MC018

MC119

MC220

MC321

MC422

MC523

MC624

MC725

SYNC1 PHA

26

PHB27

PHC28

PHD29

SIGN17

PULSE16

CHA31

CHB30

INDEX33

PROF 12

INIT13

LIMIT 14

STOP15

EXT CLK34

R/W37

OE40

CS39

ALE38

RESET36

U4

AT90S1200

reset1

xtal14

xtal25

pb012

pb113

pb214

pb315

pb416

pb517

pb618

pb719

pd02

pd13

pd26

pd37

pd48

pd59

pd611

Figura 5.36: Cuplarea HCTL 1100 la un MC AT90S1200

În continuare sunt prezentate rutine AT90S1200 pentru lucrul cu circuitul HCTL1100. Procedurile prezentate ca exemple realizeaza RESET-ul, citirea şi scrierea în circuitul HCTL-1100.

/INDEX PHA PHB PHC PHD

Page 118: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

118

.device AT90S1200 rjmp start short_delay: ;total 1+80*(1+1/2)-1+4=124

;o întârziere de 124 perioade de tact ldi r26,80 ;1 tact sd: dec r26 ;1 tact brne sd ;1/2 tact ret ;4 tact ;################################################################# ;PROCEDURA RESET HCTL-1100 ;################################################################# rst: cbi $12,4 ;bitul de reset din portul D rcall short_delay ;se menţine pinul de reset in 0 logic sbi $12,4 ;reset încheiat ret ;################################################################# ;PROCEDURA CITIRE ;################################################################# cit: clr r16 out $17,r16 ;portul B intrare sbi $12,0 ;comandă read ldi r17,0b00000001 ;s-a selectat un registru din HCTL out $18,r17 cbi $12,3 ;puls pe ALE sbi $12,3 cbi $12,2 ;puls pe CS sbi $12,2 rcall short_delay cbi $12,1 ;OE=0 in r18,$18 ;citire propriu zisă din HCTL1100 sbi $12,1 ;OE=1 ret ;################################################################# ;################################################################# ;PROCEDURA SCRIERE IN HCTL1100 ;################################################################# scr: ser r16 out $17,r16 ;portul B ieşire ldi r17,0b000000001 ;selecţie latch din HCTL1100 out $18,r17 cbi $12,3 sbi $12,3 ;puls ALE cbi $12,0 ;selecţie R/W pe scriere ldi r18,0b1111111 ;date de trimis în HCTL1100

Page 119: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

119

out $18,r18 ;scrierea propriu zisă cbi $12,2 sbi $12,2 ;puls CS sbi $12,0 ;revenire la modul citire din HCTL1100 ret ;################################################################# start : ser r16 out $11,r16 ;portul D ieşire rcall short_delay ;se invocă o mică întârziere rcall rst ;se trimite comandă reset la HCTL1100 rcall cit rcall scr

Există două moduri de cuplare a lui HCTL-1100 la MC 8051, şi anume legarea la magistrala de adrese/date/control sau la portul I/O. Alegerea uneia dintre metode sau a celeilalte depinde de modul în care este folosit MC 8051. Dacă MC 8051 foloseşte bus-ul în aplicaţia dată se recomandă cuplarea lui HCTL pe bus. Este necesar hard suplimentar (două circuite TTL). La legarea pe bus se pot cupla până la 4 circuite HCTL. Dacă circuitul nu foloseşte bus-ul, adică nu are conectată nici un fel de memorie exterioară se recomandă legarea lui HCTL la portul I/O, soluţie care nu necesită hard suplimentar. În figura 5.37 se arată modul de legare la portul de I/O.

Vcc

Vcc

U4

HCTL1100

AD02

AD13

AD24

AD35

AD46

AD57

AD68

AD79

MC018

MC119

MC220

MC3 21

MC4 22

MC5 23

MC624

MC725

SYNC1 PHA 26

PHB 27

PHC 28

PHD29

SIGN17

PULSE16

CHA 31

CHB 30

INDEX33

PROF12

INIT13

LIMIT14

STOP15

EXT CLK34

R/W37

OE40

CS39

ALE38

RESET36R710K

C9

10uF

C8

22pF

C7

22pF Y22MHz

U5

8051

EA/VP31

X119

X218

RESET9

INT012

INT113

T014

T115

P1.01

P1.12

P1.23

P1.3 4

P1.4 5

P1.5 6

P1.67

P1.78

P0.039

P0.138

P0.237

P0.336

P0.435

P0.534

P0.633

P0.732

P2.021

P2.122

P2.223

P2.3 24

P2.4 25

P2.5 26

P2.627

P2.728

RD17

WR16

PSEN29

ALE/P 30

TXD 11

RXD10

Figura 5.37: Conectarea HCTL 1100 la MC 8051

Din această figură se remarcă simplitatea conectării şi hardul suplimentar minimal utilizat. Un software minimal este prezentat în continuare (rutine de RESET, citire şi scriere).

Page 120: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

120

;############################################################## ;PROCEDURA RESET ;############################################################## RS1100: ORL P2,#0FH ;Setează liniile de R/W la citire, OE=1, CS=1, AE=1 MOV P0,#0FFH ;Setează P1=HIGH CLR P2.4 ;Setează RESET pe LOW NOP ;Întârziere corespunzătoare unui impuls de 5µs NOP NOP NOP SETB P2.4 :Readuce linia RESET în HIGH RET ;################################################################ ;################################################################ ;PROCEDURA CITIRE (Citeşte registrul lui HCTL) ;################################################################ RD1100 SETB P2.0 ;Setează liniile R/W pentru citire MOV P1,B ;Adresa de LATCH CLR P2.3 :Se generează un puls ALE SETB P2.3 MOV P1,#0FFH CLR P2.2 ;Se generează un puls CS SETB P2.2 NOP ;Întârziere corespunzătoare unui impuls de 4µs NOP NOP CLR P2.1 ;Setează OE=0 MOV A,P0 ;Se iau datele din HCTL 1100 SETB P2.1 ;Setează OE=1 RET ;################################################################ ;PROCEDURA SCRIERE (Scrie în registrul lui HCTL) ;################################################################ WR1100 MOV P1,B ;Adresa de LATCH CLR P2.3 :Se generează un puls ALE SETB P2.3 MOV P1,#0FFH CLR P2.0 ;Setează liniile R/W pentru scriere MOV P1,A ;Se emit datele CLR P2.2 ;Se generează un puls CS SETB P2.2 SETB P2.0 ;Întoarcere la modul de citire MOV P1,#0FFH RET ;###############################################################

Page 121: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

121

5.6.Exemple de implementare

5.6.1. Comanda PWM a motoarelor folosind MC Motorola 6805

Schema bloc de control a unui motor de c.c. cu perii realizată de un MC68HC705 este dată în figura 5.38. Controlul vitezei poate fi realizat:

• cu un program intern pentru un sistem care nu are nevoie de feedback sau de schimbări dese ale programului; • cu un program intern ghidat de câteva intrări, cu funcţionalităţile sugerate în figură.

Figura 5.38: Schema bloc de control a unui motor de c.c. cu perii realizată de MC68HC705

Un program simplificat la maxim, care sugerează modul în care se comandă motorul este:

PORTA EQU $00 Se alocă denumiri sugestive porturilor A şi C PORTC EQU $02 precum şi registrelor pentru stabilirea sensului DRDA EQU $04 DRDC EQU $06 PWMAD EQU $10 portul de date PWM (pe liniile port A CTLA EQU $14 portul de control al PWM Start EQU *

CLR CTLA registrul de control al PWM este Resetat LDA #$20 se trimite 20h în portul de date PWM STA PWMAD (factor de umplere 50%) LDA #$00 registrul C este definit de intrare STA DDRC (se putea şi cu CLR PORTC)

adr BRSET 0,PORTC,adr1 bitul 0 este setat (buton apăsat)? BSR adr_off dacă da, salt la subrutina motor oprit (off) adr1 BRSET 1,PORTC,adr2 dacă nu, se verifică următorul buton ...........................................................

MC68705 OSC1 PWMA1 OSC2 Vdd PC0 PC1 PC2 Vss

+5V

+5V

Motor de c.c. cu perii

Oprit Creştere viteză Scădere viteza

Page 122: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

122

BRA adr bucla se repetă continuu Adr_off LDA #$00 se trimite 00h în portul de date PWM

STA PWMAD Dezavantajul acestei scheme de control este că permite mişcarea motorului doar într-un sens. Pentru a fi posibilă schimbarea sensului este nevoie de un bit suplimentar pentru comanda schimbării polarităţii tensiunii de alimentare a motorului.

Comanda PWM a unui motor pas cu pas folosind un MC Motorola 6805 poate fi realizată ca în figura 5.39. Bobinele trebuie alimentate într-o anumită succesiune pentru a obţine sensul de rotaţie dorit. Majoritatea motoarelor sunt echipate cu traductoare de poziţie (Hall sau optice). Un astfel de motor poate fi comandat cu viteză variabilă prin modificarea factorului de umplere (PWM), dar în acest caz trebuie modificată şi viteza de comutaţie.

Figura 5.39: Comanda PWM a unui motor pas cu pas folosind un MC Motorola 6805

Acest sistem asigură performanţe de reglare superioare, având o complexitate mai mare. Secvenţa de acţionare pentru comanda motoarelor este transmisă prin intermediul unui amplificator de putere. Semnalele digitale de la traductoare sunt citite pe 3 intrări digitale. Aplicaţia este detaliată în nota de aplicaţii Motorola AN1702/D, (http://mcu.motsps.com ).

5.6.2. Comanda PWM a motoarelor folosind MC 8051

În această aplicaţie se foloseşte un MC cu arie de numărătoare programabilă (PCA - 83C51FA) care are posibilitatea de a programa 2 canale PWM. O comandă bidirecţională a unui motor folosind 2 canale PWM şi o buclă de reacţie prevăzută pentru a menţine o viteză constantă este arătată în figura 5.40.

MC68705 OSC1 PWMA1 PWMA2 OSC2 PWMA3 Vdd PA0 PB7 PB6 Vss

+5V

Motor

ULN 2003

Înfăşurăristator

Traductori Hall

Page 123: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

123

Figura 5.40: Comanda PWM a unui motor de c.c. folosind un MC 8051

MC comandă motorul folosind 2 canale PWM. Curentul necesar motorului nu poate fi furnizat de MC, de aceea se foloseşte un circuit driver L293 care conţine 4 canale de amplificare, din care în acest caz sunt folosite 2 şi un semnal de modificare a sensului. În acest montaj modificarea sensului se face prin modificarea factorului de umplere la cele 2 canale PWM.

Figura 5.41: Diagrame de semnal pentru comanda PWM a motorului în ambele sensuri

Când P1.3 şi P1.4 sunt egale diferenţă de potenţial la bornele motorului este zero. În cazul (a), P1.3 este mai mult în 1 şi motorul este alimentat cu +5V de la P1.3 la masă (P1.4) şi se roteşte într-un sens. În cazul B el este alimentat de la P1.4 şi se roteşte în celălalt sens. Viteza poate fi comandată prin variaţia factorului de umplere a celor 2 canale PWM, fiind proporţională cu diferenţa lor.

Bucla de feedback se poate închide montând pe rotorul motorului 2 piese magnetice, diametral opuse şi formând 2 impulsuri, la fiecare rotire a motorului, cu un traductor Hall cu ieşire digitală. Semnalul este preluat de MC la un pin I/O de uz general, sau poate fi preluat la un canal al PCA în mod numărător (cum s-a realizat în acest caz), sau poate genera o întrerupere.

83C51FA

P1.3

P1.4

L293 (Driver)

M

Traductor Hall cu ieşire digitală

u

Generator de tact

P1.3 P1.4 Tensiunea u la bornele motorului a b

Page 124: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

124

Pentru că motorul cu perii este foarte perturbator, se impun măsuri de protecţie. Se recomandă conectarea unor condensatori de 6,8µF între bornele motorului şi masă şi de 0,33µF între bornele motorului. De asemenea se recomandă decuplarea tensiunii de alimentare cu condensatori de 50µF, 6,8µF şi 100nF în paralel, diode pentru eliminarea vârfurilor de tensiune de la fiecare bornă a motorului la masă şi +5V.

Câteva elemente din programul de comandă sunt prezentate în continuare:

MOV CMOD,#06 :se stabileşte intrarea pentru PWM de la pin exterior MOV CCAPM0,#42H :stabileşte canalul 0 din arie în mod PWM MOV CCAPM1,#42H :stabileşte canalul 1 din arie în mod PWM MOV CCAP0L,#0H :stabileşte un factor de umplere 100% pentru canalul 0 MOV CCAP1L,#0H :stabileşte un factor de umplere 100% pentru canalul 1,

ceea :ce înseamnă că motorul stă.

După iniţializarea acestor registre de comenzi trebuie pornit timerul, ceea ce se realizează prin poziţionarea bitului 6 (CR) din registrul de control CCON.

SETB CR Rotirea cu viteză maximă într-un sens se comandă cu secvenţa:

MOV CCAP0L,#0FFH MOV CCAP1L,#0H SETB CR

Rotirea cu viteză maximă în celălalt sens se comandă cu secvenţa: MOV CCAP0L,#0H MOV CCAP1L,#0FFH ETB CR

Traductorul de viteză dă impulsuri canalului 4 programat în mod de captură. La primirea unui impuls pe P1.6 se încarcă conţinutul timerului în registrele CCAP3H şi CCAP3L, conţinutul acestor registre fiind proporţional cu timpul scurs între 2 impulsuri ale traductorului.

MOV CMOD,#0 ;se stabileşte tactul timerului ca fosc/12 MOV CCAPM3 ;canalul 4 în mod captură SETB IP.6 ;se setează întreruperea de la PCA la cea mai mare prioritate MOV IE,0C0H ;se validează întreruperile de la PCA SETB CR ;se porneşte timerul

Când apare o întrerupere, în CCAP3L şi CCAP3H apare conţinutul timerului. O aplicaţie asemănătoare este descrisă de Jafar Modares în nota de aplicaţii AP-425, de la INTEL ( www.questlink.com ).

O altă aplicaţie a fost realizată la laboratorul de Interfaţare. Cu un microcontroller 80C552 care dispune de un modul specializat PWM cu două ieşiri PWM, figura 5.42. Aceste două ieşiri pot fi folosite pentru comanda unui motor de curent continuu care poate fi comandat să se rotească în ambele sensuri cu viteză variabilă.. Frecvenţa de bază este asigurată de oscilatorul intern (fosc/2) şi de un prescaler de 8 biţi, PWMP. Acesta poate fi încărcat prin

Page 125: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

125

program cu o constantă de divizare, cu valori între 0 şi FFh, corespunzătoare unui factor de divizare 1÷256. Ieşirea prescalerului este conectată la intrarea unui numărător cu incrementare, PWMC, modulo 255 (PWMC = 0÷FEh). Atât prescalerul cât şi numărătorul sunt utilizate în comun de către cele două canale PWM.

Conţinutul numărătorului este comparat continuu cu conţinutul a două registre de 8 biţi, PWMO şi PWM1, câte unul pentru fiecare canal (PWMn, n=0,1). Cât timp PWMC este mai mică decât valorile înscrise PWMO şi PWM1, ieşirile PWMO, respectiv PWM1 sunt forţate în "0" logic, în momentul în care PWMC devine egal cu una din valorile PWMn, n=0,1, ieşirea corespunzătoare este forţată în "1" logic, nivel care se menţine atâta timp cât PWMC ≥ PWMn.

Astfel, factorul de umplere pentru un ciclu complet de numărare (255 de perioade ale semnalului la ieşirea prescalerului) este controlabil prin conţinutul registrelor PWM0 şi PWM1, între 0 şi 1, în incremenţi de 1/255. Frecvenţa semnalelor la ieşirile PWM0 şi

PWM1este dată de relaţia:

255)1(2 ×+×=

PWMOf

f OSCPWM ,

Aceasta conduce la o frecvenţă cuprinsă între 92Hz şi 23,5kHz, pentru fosc=12MHz.

Figura 5.42: Blocul PWM

La modificarea conţinutului registrelor de comparare PWMn, ieşirile corespunzătoare sunt actualizate imediat, nu după terminarea ciclului curent de numărare.

Prescaler PWMP

Numărător PWMC

Registru de compararePWM0

Comparator

Registru de compararePWM0

Comparator

PWM0 PWM1

Page 126: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

126

Cu acest tip de microcontroller a fost construit un dispozitiv de comandă a unui motor de c.c. Rotirea în ambele sensuri este realizată prin conectarea lui la un montaj în punte, figura 5.43.

Figura 5.43: Schema amplificatorului de curent

Atunci când s-a testat această conectare şi s-a folosit aceeaşi sursă de alimentare pentru partea de comandă şi cea de putere s-a constatat că perturbaţiile generate de motor influenţează funcţionarea plăcii.

Observaţie: ieşirile PWM sunt negate, de aceea este nevoie ca valorile introduse în regiştrii PWMx trebuiesc complementate, pentru ca palierul activ sa fie proporţional cu ceea ce se doreşte la ieşirile PWM.

Ex: MOV A,#55 ; incarca in acumulator valoarea imediata 55H CPL A ; se complementeaza acumulatorul ; doarece iesirea PWM0 este negata MOV PWM0,A ; încărcare registru de comparare

A fost realizat un program de test care comandă motorul astfel încât să se rotească până la viteza maximă posibilă şi apoi să descrească turaţia până când se opreşte.

; semnalul porneşte ca fiind 100% din timp 1 logic, scade, apoi creşte, operaţia ; se repetă. PWMP equ 0FEh PWM0 equ 0FCh PWM1 equ 0FDh ORG 8000h LJMP MAIN ORG 8090h MAIN:

MOV A,#20 ; se incarca acumulatorul cu #XX pentru ; frecventa semnalului de XkHz=11,059MHz/(2*(1+A)*255)

MOV PWMP,A MOV A,#0FFh ; in A este valoarea imediata 00h de start CLR SENS ; pentru a stabili CRESTEREA/DESCRESTERA turaţiei

Page 127: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

127

ROTESTE: CPL A ; se complementeaza deoarece iesirea PWM este negata MOV PWM0,A ; încărcare registru de comparare MOV R2,#4 DELAY: MOV R1,#0F0h DELAY1: MOV R0,#0FFh DJNZ R0,$ DJNZ R1,DELAY1 DJNZ R2,DELAY ; verificare si apoi stabilirea noului sens daca este nevoie CPL A JB SENS,DIRECT INVERS: SUBB A,#10h CJNE A,#0Fh,ROTESTE SETB SENS ; se schimba sensul SJMP ROTESTE DIRECT: CJNE A,#0FFh,CRESTE CLR SENS ; se schimba sensul SJMP ROTESTE CRESTE: ADD A,#10h ; factorul de umplere creste SJMP ROTESTE STOP: SJMP $ BSEG AT 20H SENS: DBIT 1 ; 1/0- factorul de umplere pozitiv creste/scade END

5.6.3.Detectorul de stare zero

O aplicaţie de comandă a motoarelor poate să ofere surprize în faza de proiectare sau chiar de implementare. Un exemplu de astfel de surpriză este cea care a apărut la înlocuirea indicatoarelor de bord clasice auto cu indicatoare comandate cu motoare de curent continuu. Dacă cheia este decuplată în timpul mişcării maşinii sistemul electronic nu mai este alimentat şi indicaţia de viteză, respectiv turaţie rămân la valorile din momentul scoaterii cheii. Pentru rezolvarea acestei probleme trebuie ca sistemul electronic să mai rămână alimentat un timp. Oricum, la maşinile noi după scoaterea cheii geamurile electrice se pot ridica, oglinzile se rabat etc. Pentru a uşura comanda motorului în acest caz au apărut microcontrollere care au un bloc intern de feedback.

Page 128: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

128

Modulul de comandă al motoarelor din componenţa MC pe 32 de biţi (MB91360) are integrat un bloc de detectare a stării rotorului1 . Schema bloc a blocului este dată în figura 5.44.

Figura 5.44: Schema bloc a detectorului de stare zero

Logica de analiză eşantionează ieşirea comparatorului cu tactul selectat în ZPD0. Comparatorul compară intrarea de la PWM2M0 cu tensiunea de referinţă şi setează bitul de rezultat al comparării dacă tensiunea de intrare este mai mare decât tensiunea de referinţă. Rezultatul comparării devine 1 dacă toate eşantioanele (numărul lor este specificat în ZPD0) sunt 1. Ca urmare pinul PWM2M0 poate fi folosit pentru închiderea unei bucle de reacţie de control a motorului.

Registrul ZPD0 (Zero Detect Register) conţine: 3 biţi selectează tactul (tact divizat cu 1,2,4,5,6 sau 8), un bit validează operarea detectorului de zero, 3 biţi stabilesc numărul de eşantioane (1,2,3,4 sau 5), un bit validează/ invalidează alimentarea blocului analogic, un bit indică rezultatul comparării.

Bibliografie

[1] http://www.celesco.com/?gclid=CLrzz_-A76ACFQO7ZwodlzrEHw, Traductori de poziţie

[2] http://www.unimeasure.com/lx.htm, Traductori de poziţie [3] Ogrutan P., Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii Transilvania

Brasov, 2006, 182 pag, ISBN 973-635-621-3 [4] Gerigan C., Ogruţan P., Tehnici de interfaţare, Ed. Transilvania Braşov, 2000, 315p.,

ISBN 973-9474-94-2 [5] Toacse Gh., Romanca M., Pană Gh., Step transductor for PM hybrid stepping motor, in

Electric Power Components And Systems, Taylor & Francis INC, ISSN: 1532-5008 vol. 11/4, 1986, pp. 347-356

1 Această funcţie a controllerului este patent al Siemens VDO Automotive AG şi poate fi folosită doar cu acordul proprietarului.

Rezultat

+ -

Logica de analiză Numărător de 8 biţi

PWM2M0 1/9 AVCC

Registru ZPD0 Validare/ invalidare alimentare

Selecţie tact

Comparator

Page 129: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

129

Capitolul 6: Controlul dispozitivelor cuplate la reţeaua de curent alternativ

Dispozitivele cuplate la reţeaua de curent alternativ pot fi comandate cu microcontrollere în principal în două feluri:

• ON-OFF prin intermediul releelor; • Cu componente semiconductoare- tiristori, triacuri, IGBT pentru comanda cu tensiune

variabilă.

Dacă este relativ simplu ca o sarcină să fie comandată cu un releu, este mai complicată comanda cu elemente semiconductoare. Acest capitol detaliază comanda consumatorilor cu triacuri, care este cel mai des întâlnită metodă de comandă. Aplicaţiile de control la tensiunea reţelei implică câteva dificultăţi specifice:

• Se lucrează cu curenţi şi tensiuni mari, ceea ce solicită o atenţie deosebită şi măsuri de siguranţă cum ar fi decuplări optice, gestionarea potenţialelor de masă, izolarea galvanică a osciloscopului etc.;

• procesul controlat, mai ales în zonele tranzitorii este de regulă un proces complex; • necesitatea aplicării în industrie duce la restricţii de costuri, la necesitatea asigurării

unor performanţe bune de fiabilitate, la asigurarea condiţiilor de compatibilitate electromagnetică etc.

6.1.Triacul

Triacul este un comutator bidirecţional care poate fi folosit în aplicaţii de curent alternativ. Triacul poate fi comandat printr-un terminal numit poartă (G Gate). În stare blocată triacul blochează trecerea curentului între terminalele principale A1 şi A2. Un impuls sau un nivel de tensiune pe poartă comandă intrarea în conducţie a triacului şi curentul trece între A1 şi A2. Blocarea triacului nu se poate face doar prin terminalul de poartă. Pentru blocare este necesar să nu existe tensiune pe poartă şi curentul între A1 şi A2 să scadă sub o anumită valoare (să treacă prin zero). Simbolul şi caracteristica curent tensiune a triacului sunt date în figura 6.1.

Tensiunea de străpungere VS este definită la curent de poartă zero. Crescând curentul de poartă scade tensiunea la care triacul intră în conducţie. Polaritatea tensiunii de comandă nu trebuie să fie aceeaşi cu tensiunea pe triac, dar curentul de poartă diferă în funcţie de curentul principal prin triac. Se consideră că triacul este cel mai uşor de comandat dacă sensul curentului de poartă este acelaşi cu cel principal. Amplitudinea impulsului de amorsare şi curentul de poartă trebuie să depăşească limitele solicitate în datele de catalog pentru modelul respectiv. Pentru a obţine un timp de amorsare scurt şi o disipare redusă de energie se recomandă să se aplice impulsuri de amorsare mai lungi. De regulă un microcontroller nu poate asigura curentul necesar amorsării unui triac.

Page 130: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

130

În majoritatea aplicaţiilor se foloseşte un grup RC serie în paralel cu triacul. Grupul RC acţionează în sensul eliminării supratensiunilor care ar putea produce autoamorsarea (tensiune între A1 şi A2 mai mare decât VS).

Figura 6.1: Triacul - simbol (stânga) şi caracteristica curent tensiune (dreapta)

Prezenţa grupului RC este indispensabilă în cazul sarcinilor inductive, la care ieşirea din conducţie a triacului se poate produce în apropierea maximului unei alternanţe a tensiunii de alimentare. Valorile R şi C sunt date de regulă în foile de catalog ale triacului.

6.1.1. Comanda digitală a triacului

Cel mai simplu mod de utilizare este prin alimentarea directă de la reţea [1], figura 6.2.

Figura 6.2: Schema electrică a unui etaj de comandă cu triac alimentat direct de la reţea

Tensiunea reţelei este redresată monoalternanţă şi filtrată. Alternanţa pozitivă este aplicată diodei Zener şi alimentează partea digitală. Curentul de alimentare poate fi mărit prin modificarea valorii rezistorului serie dar, în această schemă curentul nu poate fi prea mare deoarece creşte disipaţia pe rezistenţa serie.

G A2

A1

OFF

ON

V

I

VS

VS

Logica de comandă

Sarcina

220V

Page 131: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

131

Pentru variantele de comandă mai complexe se recomandă separarea galvanică a circuitului digital de comandă de triac, deci de partea de reţea. Izolarea poate fi realizată prin transformator, optocuplor sau optotriac. Cea mai elegantă soluţie este folosirtea unui optotriac care asigură un curent de amorsare de acelaşi sens cu cel principal, deci o comandă optimă a triacului. O schemă de comandă a unui triac cu optotriacul MOC302X este dată în figura 6.3.

Figura 6.3: Comanda digitală a triacului cu optotriac

Curentul principal prin optotriac se obţine prin divizarea curentului principal prin triac, deci curentul de amorsare pentru triac are acelaşi sens cu cel principal. Optotriacul este conceput ca etajul de ieşire să poată fi folosit la 220V (tensiunea maximă 400V). Rezistenţa de izolaţie optică este de 7,5kV. Curentul repetitiv maxim generat de optotriac este 100mA, iar curentul nerepetitiv (maximum 10ms, o alternanţă) este de 1,2A.

6.1.2.Comanda în fază

Se poate obţine o valoare efectivă variabilă a tensiunii pe sarcină prin amorsarea triacului după un anumit timp de la trecerea sinusoidei reţelei prin zero, adică cu un anumit unghi de fază. Pentru a demonstra funcţionarea triacului în acest mod a fost realizat un model Simulink, figura 6.4.

Figura 6.4: Model Simulink al comenzii în fază

Page 132: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

132

Triacul a fost modelat cu doi tiristori în antiparalel. Impulsurile de comandă de amorsare au fost generate cu un generator de impulsuri şi arată ca în figura 6.5 sus.

Figura 6.5: Impulsuri de amorsare (sus) şi forma tensiunii pe sarcină (jos)

Până triacul este blocat tensiunea pe sarcină este zero, ceea ce micşorează valoarea efectivă a tensiunii, figura 6.5 jos. Cu cât unghiul de aprindere este mai mare cu atât valoarea efectivă a tensiunii este mai mică. Curentul prin unul din tiristoarele care compun triacul şi tensiunea pe triac sunt reprezentate în figura 6.6.

Figura 6.6: Tensiunea pe triac (linia gri) şi curentul prin unul din tiristoare (linia neagră)

Prin triac curentul are şi alternanţa negativă. Simularea a fost realizată în cazul unei sarcini rezistive. Dacă sarcina are şi componente inductive şi capacitive atunci apar probleme datorită defazajului între curent şi tensiune. De exemplu, în figura 6.7, R=100Ω, L=20mH, C=100µF se poate observa deformarea formei tensiunii pe sarcină. Pentru alte valori ale inductivităţii şi

Page 133: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

133

capacităţii se poate întâmpla ca triacul să nu intre în conducţie, să nu se blocheze sau tensiunea să fie puternic deformată.

Figura 6.7: Deformarea tensiunii pe sarcina RLC

6.1.3.Detectarea trecerii tensiunii prin zero

Pentru comanda în fază este nevoie ca microcontrollerul să fie informat printr-o întrerupere la trecerea tensiunii reţelei prin zero. Problemele care apar în acest caz sunt că detectarea trecerii prin zero se face cu o anumită întârziere şi după detectarea trecerii prin zero microcontrollerul execută o rutină de generare a unui impuls de amorsare. Ambele aspecte duc la o întârziere de amorsare a triacului. Pentru a determina întârzierea admisibilă se poate calcula valoarea efectivă a tensiunii în cazul unui unghi de amorsare a triacului de π/4, figura 6.8, cu relaţia:

∫∫ ==π

ππ4

220

2 .sin2.2)2220(1 daadtuTUT

ef

Efectuând calculele rezultă o valoare efectivă de 209,73V, ceea ce este acceptabil.

Figura 6.8: Explicativă la amorsarea cu întârziere a triacului

π/4

Page 134: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

134

Această întârziere permite o eroare maximă teoretică de detectare a trecerii prin zero de 25% sau rularea unui număr de instrucţiuni în perioada de 2,5ms, adică sute de instrucţiuni. De exemplu, la un microcontroller RISC care execută multe instrucţiuni într-un singur tact, cu tact de 1MHz, se pot executa o mie de instrucţiuni într-o ms. Pentru a putea asigura o valoare efectivă cât mai mare întârzierea detectării trecerii prin zero trebuie să fie cât mai mică.

Detectarea trecerii prin zero poate fi realizată prin mai multe metode: • Măsurarea tensiunii reţelei cu un canal de conversie A/D, tensiunea reţelei fiind

preluată cu redresare şi fără separare galvanică; • Acelaşi mod de preluare dar cu separare galvanică cu transformator (apare un defazaj

de care trebuie ţinut cont) sau optică (apare o neliniaritate care introduce o întârziere în amorsarea triacului);

• Preluarea tensiunii cu blocul comparator analogic al microcontrollerului cu sau fără separare galvanică.

În figura 6.9 este prezentată o variantă de detectare a trecerii prin zero cu decuplare optică (stânga sus).

Figura 6.9: Variantă pentru schema de detectare a trecerii prin zero şi simulare SPICE

Divizorul rezistiv cu R1 şi R2 asigură la intrarea optocuplorului o tensiune de 10VVV, pentru ca în alternanţa negativă tensiunea inversă pe dioda LED să fie mai mică decât valoarea admisibilă (6V la CNY17). Rezistorul R limitează curentul prin LED la valoarea maximă admisibilă (60mA). O simulare SPICE (dreapta) arată că întârzierea introdusă de neliniaritatea

220V c.a.

+5V MC ADC0 GND

R1

R2 R

Optocuplor CNY17

MC AIN0 AIN1

220V c.a.

R1

R2

Page 135: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

135

diodei LED este de 630µs, ceea ce este admisibil. Această variantă asigură detectarea trecerii prin zero pentru alternanţa pozitivă. Pentru alternanţa negativă se poate deduce că trecerea prin zero va fi după timpul de 10ms sau, prin redresarea bialternanţă a tensiunii reţelei se pot detecta trecerile prin zero la fiecare alternanţă. În stânga jos este prezentată o variantă fără decuplare optică. În varianta prezentată în stânga sus microcontrollerul detectează trecerea prin zero cu un canal de conversie AD. O altă variantă (stânga jos) este prin folosirea comparatorului analogic (ATMEL RISC, Atmega8, Atmega16, AT90xx). Comparatorul analogic compară valorile de intrare de pe pinul pozitiv (AIN0) cu valorile de pe pinul negativ AIN1. Când tensiunea de pe pinul pozitiv AIN0 este mai mare decât tensiunea de pe pinul negativ AIN1, bitul ACO al comparatorului este setat. Ieşirea comparatorului poate fi setată astfel încât să declanşeze funcţia “Input Capture” a unui timer, astfel se poate genera întârzierea necesară înainte de generarea impulsului de amorsare a triacului. În plus comparatorul poate declanşa o întrerupere. Utilizatorul poate selecta declanşarea întreruperii pe frontul crescător sau descrescător. Este posibil să se selecteze oricare dintre pinii ADC7-0 (intrare analogică pentru convertorul ADC) pentru a înlocui intrarea negativă a comparatorului. Pentru a utiliza această opţiune se utilizează multiplexorul ADC (ADC trebuie să fie oprit).

6.2. Pornirea motoarelor asincrone asistată de microcontrollere

Acest proiect a fost realizat în colaborare cu firma Fujitsu. Proiectul a fost realizat şi testat până în faza de model experimental. Dispozitivul propus constă într-un microcontroller Fujitsu din familia CONCERTO care comandă cuplarea condensatorului de pornire prin intermediul unui triac. Condensatorul de pornire este cuplat la pornirea motorului şi decuplat atunci când curentul de pornire scade sub o anumită valoare de prag. În cursul proiectării s-a constatat că resursele microcontrollerului permit şi preluarea de sarcini suplimentare de protecţie. Astfel s-a conceput un sistem de protecţie la avarie, care intră în funcţiune dacă motorul nu porneşte din cauza unui defect intern sau a unei suprasarcini. Dacă curentul de pornire nu scade într-un anumit interval de timp sub valoarea de prag motorul este decuplat de la tensiunea de alimentare. O protecţie la supraîncălzire decuplează motorul de la alimentare dacă temperatura măsurată cu un termistor pe carcasa motorului depăşeşte o anumită valoare.

Simularea pornirii motorului şi măsurările de curent executate au pus în evidenţă curenţi mari la pornire, de 10-20 ori mai mari decât curentul nominal în lipsa sarcinii şi curenţi şi mai mari la pornirea motorului cu sarcină. Aceasta înseamnă că triacul trebuie să conducă curenţi de ordinul a 100A, deci este nevoie de un triac scump. Pentru a evita acest lucru s-a adoptat metoda de soft start (sau slow start) care înseamnă comanda triacului în fază cu un unghi descrescător în timp pentru a realiza un curent crescător.

Probleme dificile au fost rezolvate la comanda în fază a triacului, la alimentarea microcontrollerului şi la traductorul de curent.

Varianta clasica de pornire a motoarelor asincrone monofazate este data in figura 6.10.

Page 136: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

136

Figura 6.10: Pornirea motorului asincron

Un capacitor de pornire şi o înfăşurare de pornire asigură pornirea motorului la punerea sub tensiune. Acest mod de pornire rezultă din principiul de funcţionare al motorului asincron. În soluţiile clasice condensatorul de pornire este decuplat cu un întrerupător centrifugal atunci când turaţia motorului atinge o valoare de prag (75% din turaţia nominală). La unele motoare asincrone nu se foloseşte întrerupătorul centrifugal de decuplare a condensatorului ci un releu de curent care decuplează condensatorul atunci când curentul prin înfăşurarea de pornire scade sub o anumită valoare.

Dezavantajele soluţiilor actuale:

• la decuplare curentul mare afectează contactele releului (decuplarea poate surveni în orice punct al sinusoidei reţelei)

• dacă motorul nu porneşte din anumite motive (de exemplu o sarcină excesivă) înfăşurarea de pornire rămâne cuplată tot timpul şi pune în pericol integritatea motorului

În mediul MATLAB Simulink a fost realizată o simulare simplă a curentului absorbit de un motor asincron la pornire pentru a putea evalua performanţele necesare pentru triacul de conectare/ deconectare a condensatorului de pornire. Modelul folosit este prezentat în figura 6.11, urmat de o diagramă a curentului absorbit la pornire împreună cu o diagramă a turaţiei la pornire, fără sarcină. Se observă un curent de pornire de 3 ori mai mare decât cel nominal.

Simulări mai exacte sunt prezentate în [2] şi se confirmă un curent de pornire de câteva ori mai mare decât curentul nominal.

Condensator de pornire

Alimentare 220V c.a. Rotor

Infasurare de pornire

Infasurare stator

Intrerupator centrifugalCondensator

permanent

Page 137: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

137

Figura 6.11: Modelarea Simulink, diagrama curentului absorbit şi diagrama turaţiei la pornire

După simularea curentului absorbit s-a trecut la măsurarea curentului. Pentru aceasta s-a utilizat sistemul de dezvoltare Concerto de la Fujitsu şi s-au achiziţionat datele cu convertorul A/D din structura microcontrollerului. Ca traductor de curent a fost folosit un traductor Hall. Datele achiziţionate au fost trimise prin interfaţa serială RS232 la un calculator gazdă PC şi au fost prelucrate în Excel. Un grafic al valorilor achiziţionate pentru un motor de 2,2kW este dat în figura 6.12.

Curentul absorbit (simulare 1,8s de la pornire) Turaţia

Page 138: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

138

Figura 6.12: Curentul de pornire măsurat

Pe abscisă este reprezentat timpul în ms iar pe ordonată curentul în A. Măsurarea s-a efectuat doar pentru alternanţa pozitivă pentru a simplifica circuitul de măsurare, considerând că pentru alternanţa negativă fenomenul de descreştere a curentului este simetric. Se vede din acest grafic că la pornire curentul este de 9 ori mai mare decât cel nominal.

În urma simulărilor şi a măsurării curentului de pornire a fost realizată schema bloc a sistemului de pornire care este data în figura 6.13. Microcontrollerul măsoară tensiunea aplicată prin intermediul divizorului rezistiv R1 şi R2 pentru a determina trecerea prin zero. De asemenea este măsurat şi curentul de pornire care trece prin condensatorul şi înfăşurarea de pornire.

Figura 6.13: Schema bloc a sistemului de pornire si protectie a motorului asincron

La momentul pornirii motorului se comandă triacul T cu un unghi de aprindere mare, şi care scade apoi repede la zero (timp de sub 0,5s) realizând soft startul. O scădere prea rapidă a unghiului dă naştere unui curent prea mare în triac iar o scădere prea lentă face ca motorul să nu pornească pentru că nu poate fi asigurat cuplul de pornire necesar. Curentul de pornire este monitorizat tot timpul şi după scăderea lui sub un anumit prag triacul este decuplat. Dacă

Trad. curent

R1 R2

MICROCONTROLLER FUJITSU

Motor asincron

monofazat

Condensator şi înfăşurare de pornire

Alimentare 220V c.a.

Traductor de temperatură

K

T

Page 139: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

139

curentul nu scade sub valoarea de prag în 3s se consideră că este indeplinită condiţia de avarie şi comutatorul K este deschis. După pornirea motorului se măsoară temperatura carcasei la intervale de timp constante şi comutatorul K se deschide dacă temperatura creşte peste o anumită limită.

Sistemul de dezvoltare cu care a fost realizată aplicaţia a fost sistemul Concerto care conţine un microcontroller Fujitsu pe 8 biţi din familia F2MC-8FX (Basoon). Aceste microcontrollere conţin 71 de linii de I/O, 7 canale timer, 12 linii de conversie A/D, 12 linii de întrerupere externă. Mediul de dezvoltare a părţii software a fost Softune Workbench pus la dispoziţie de Fujitsu care conţine: compilator ANSI C, macro asamblor, editor de legături, simulator, emulator, verificator C, analizor C.

O fotografie cu modulele experimentale este dată în figura 6.14.

Figura 6.14: Modulele folosite la experimentare

Modulul de dezvoltare Concerto

Circuit de putere:

Redresor de precizie cu AO şi decuplare optică

Triac cu radiator şi ventilator

Traductor Hall de curent

Motorul şi placa de probă

Page 140: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

140

Traductorul de curent folosit a fost un traductor cu efect Hall de tip LEM LA100P care are un factor de divizare de 2000:1. Măsurarea curentului se face fără întreruperea circuitului, conductorul prin care trece curentul intră într-un orificiu al traductorului Hall. Traductorul este alimentat cu tensiuni continue de + şi –12V, şi ieşirea este bipolară. De aceea pentru a putea conecta intrarea unui convertor A/D la ieşirea traductorului Hall este nevoie de o redresare. Pentru ca precizia unui redresor cu diodă nu este suficientă s-a folosit o redresare de precizie cu amplificator operaţional fără prag. Acest traductor a fost folosit la măsurarea curentului cu precizie, dar este un traductor scump aşa încât se recomandă ca în producţia de serie să fie înlocuit cu o spirală înfăşurată pe conductorul parcurs de curent sau cu un transformator de măsură.

Separarea galvanică a fost realizată pentru încercările în laborator furnizând impulsurile de amorsare pentru triac prin intermediul unui optotriac MOC 3020. Pentru măsurarea tensiunii s-a folosit de asemenea decuplare optică cu optocuplor. Cel mai complicat a fost alegerea unui sistem de alimentare pentru microcontroller, de mici dimensiuni şi ieftin. A fost ales un convertor AC-DC în comutaţie al firmei Rohm care este un circuit hibrid de mici dimensiuni care converteşte direct tensiunea alternativă de 220V în tensiune continuă de 5V.

6.3.Dispoziv de protecţie la supratensiune şi supracurent a consumatorilor

O statistică publicată în [6], figura 6.15 arată că din 9600 de defecte reclamate datorită distribuţiei de energie 26,6% se datorează supratensiunilor.

Figura 6.15: Distribuţia avariilor instalaţiilor electrice

Mai mult decât atât, supratensiunile şi scurtcircuitele sunt o cauză importantă a incendiilor. În anul 2009 într-un singur judeţ al României au avut loc 265 de incendii soldate cu 3 morţi. Conform unui studiu citat în [7], cele mai multe incendii au avut ca şi cauze probleme electrice.

Soluţia actuală este utilizarea unei siguranţe pentru supratensiuni şi a unei siguranţe pentru scurtcircuite. Un sistem de protecţie de la DEHN-SOHNE [8] este prezentat în figura 6.16.

Supratensiuni 26,6%

Vandalisme 8.,9%

Foc 8,2% Apa 2,6%

Neglijenţă 25,7%

Izolaţie 27,9%

Furtuni 0,1%

Page 141: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

141

Figura 6.16: Schema electrică şi dispozitivul de protecţie DEHNBloc Maxi

Dispozitivul se încadrează în clasa A de protecţie pentru reţele de 220V (EN 61643-1), tensiunea maximă nominală fiind de 255V. Dispozitivele sunt construite cu varistoare zinc- oxid şi tuburi cu descărcare în gaze. Dispozitivul este completat cu o siguranţă (timp de acţiune 200ms dependent de valoarea curentului) şi cu un indicator LED al funcţionării.

A fost realizat un sistem cu microcontroller pentru protecţia la supracurent, scurtcircuit şi supratensiune a consumatorilor de energie electrică. Acest dispozitiv a fost brevetat [9]. Dispozitivul propus prezintă următoarele avantaje:

• viteză mare de decuplare, (maximum 10ms), fiind astfel mai rapidă decât metodele clasice;

• nu necesită intervenţia unei persoane pentru că după oprirea tensiunii în cazul unui scurtcircuit sau supratensiune, revenirea tensiunii este automată (în cazul unui scurtcircuit doar după ce cauza a fost eliminată;

• prin acţiunea în două etape, la apariţia unor supratensiuni sau supracurenţi de valoare mică valoarea medie a tensiunii se scade şi sarcina nu este decuplată de la reţea, funcţionând în continuare;

• prin interfaţa de comunicaţie prin Internet se pot comunica date on line despre consumatorul de energie electrică.

Schema bloc a dispozitivului de protecţie la supracurent şi supratensiune este dată în figura 6.17. Analiza curentului absorbit şi a tensiunii este realizată de microcontroller prin convertorul analog digital integrat. Analiza curentului este realizată cu un traductor specializat de curent (traductor Hall) iar analiza tensiunii prin redresare, filtrare şi divizare. La detectarea unui scurtcircuit sau a unei supratensiuni microcontrollerul nu mai trimite impulsuri de amorsare pentru triac şi consumatorul este scos de sub tensiune.

Metoda de protecţie este concepută ca o protecţie în două etape. Dacă se detectează o supratensiune sau un supracurent, acestea sunt clasificate în:

• nepericuloase (+/- 3%) şi nu se ia nici o măsură;

Page 142: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

142

• puţin periculoase (+/-10%) şi se modifică unghiul de aprindere al triacului. În funcţie de valoarea supratensiunii şi supracurentului se programează un timer care stabileşte întârzierea în amorsarea triacului (unghiul de deschidere). Prin aceasta valoarea medie a tensiunii pe sarcină scade şi compensează creşterea tensiunii sau curentului;

• periculoase (peste 10%) se blochează impulsurile către triac şi astfel sarcina este decuplată de la reţea. Tensiunea este măsurată în continuare şi la revenirea la valori normale sarcina este realimentată. La detectarea unui scurtcircuit, după o perioadă de timp se reia alimentarea şi dacă scurtcircuitul se menţine triacul este blocat o nouă perioadă de timp.

Figura 6.17: Schema bloc a dispozitivului de protecţie la supracurent şi supratensiune

Senzor Hall de curent şi senzor de tensiune

Comanda triac pentru decuplarea tensiunii

Microcontroller

Convertor AD

Port I/O

Web server sau modem GPRS

Sistem cu microcontroller

pentru întreruperea tensiunii la

apariţia unei supratensiuni sau

scurtcircuit

Sursa de alimentare

Transmisia datelor prin

Internet

Page 143: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

143

Observaţii:

1. Sursa de alimentare trebuie să poată suporta creşterile de tensiune pe linie pentru ca dispozitivul de protecţie să nu se defecteze;

2. Curentul de scurtcircuit trebuie să nu depăşească curentul maxim nerepetitiv prin triac (de circa 10 ori mai mare decât curentul maxim repetitiv).

Schema electrică a dispozitivului este dată în figura 6.18.

Figura 6.18: Schema electrică a dispozitivului de protecţie cu microcontroller

6.3.1. Simularea protecţiei în 2 etape la supratensiune

Pentru simulare a fost realizat un model SIMULINK® . Simularea protecţiei la supratensiune în 2 etape este arătată în figura 6.19.

Plus15V

Minus15V

+15V -15V

+C1

4700uF/25V

D4 + C44700uF/25V

+

C5

4700uF/25V

R921.7K

ATmega8

1

2

3

4

5

6

7

8

9

10

11

12

13

14

28

27

26

25

24

23

22

21

20

19

18

17

16

15

(RESET)PC6

(RXD)PD0

(TXD)PD1

(INT0)PD2

(INT1)PD3

(XCK/T0)PD4

VCC

GND

(XTAL)PB6

(XTAL2)PB7

(T1)PD5

(AIN0)PD6

(AIN1)PD7

(ICP)PB0

PC5(ADC5)

PC4(ADC4)

PC3(ADC3)

PC2(ADC2)

PC1(ADC1)

PC0(ADC0)

GND

AREF

AVCC

PB5(SCK)

PB4(MISO)

PB3(MOSI/OC2)

PB2(SS/OC1B)

PB1(OC1A)

R8319K

1

1

R1 56K

R210K

D2

DIODE

D3

1N4001

T1

2x6V1

6

12

10

7

12MHz

C230pF

C330pF

R5

470

R4

370Q1

BTA41/600B1

3

2

D5

U1L7805

1

2

3VIN

GND

VOUT

U4MOC3020 1

2

6

4

R7 R LIM (0,8)

S

HALL

LEM LA 100-P

R6SARCINA

D1

1N4001

P10-10K

BLOC DECUPLARE

220V~

BLOC DETECTORDE VARF

Page 144: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

144

Figura 6.19: Simularea protecţiei în 2 etape la supratensiune

Pe abscisă o unitate înseamnă o perioadă (20ms). Pe graficul de sus, în momentul 8 tensiunea care creşte depăşeşte prima limită şi triacul este comandat cu un unghi de fază pentru reducerea tensiunii medii pe sarcină. Tensiunea continuă să crească şi în momentul 12 se depăşeşte a 2-a limită şi triacul este blocat, protejând sarcina. Detaliul arată că în momentul comutărilor apar vârfuri de tensiune, cu amplitudini de până la 10V. Graficul de jos arată forma unei integrale a tensiunii pe sarcină, proporţională cu puterea consumată. Se vede că în etapa a doua puterea este mai mică decât în prima etapă, astfel sarcina fiind protejată prin micşorarea tensiunii medii.

6.3.2. Simularea protecţiei în 2 etape la supracurent şi scurtcircuit

Simularea protecţiei la supracurent şi scurtcircuit în 2 etape este arătată în figura 6.20.

Tensiunea creşte în limita admisă Se micşorează valoarea medie Se blochează tensiunea

Page 145: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

145

Figura 6.20. Simularea protecţiei în 2 faze la supracurent şi scurtcircuit

În ipoteza unui supracurent cu viteză mică de creştere sunt vizibile cele 2 etape. Pe graficul de sus, în momentul 8 apare un supracurent şi triacul este comandat cu un unghi de fază pentru reducerea tensiunii medii pe sarcină. Curentul creşte în continuare şi în momentul 12 triacul este blocat, protejând sarcina. În momentul 15 se testează menţinerea supracurentului sau scurtcircuitului. Se poate observa că timpul maxim de blocare a triacului în cazul unui scurtcircuit este de 10ms. Pe graficul de jos pot fi văzute impulsurile de amorsare a triacului.

Curentul este sub limita admisă Curentul Curentul depăşeşte atinge limita 1 a 2-a limită

Se testează menţinerea supracurentului

Page 146: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

146

6.3.3.Recuplarea automată şi treptată a consumatorului la tensiune

Figura 6.21: Recuplarea automată şi treptată a consumatorului la tensiune

Recuplarea consumatorului poate duce la un curent excesiv consumat în primele momente datorită caracterului capacitiv al sarcinii. Acest curent mare poate provoca uneori în regim tranzitoriu supracreşteri nedorite ale tensiunii. De aceea dispozitivul propus recuplează treptat sarcina, comandând triacul ca în figura 6.21. În diagrama de sus se poate observa variaţia tensiunii în timp. Până în momentul 7 triacul este blocat. După acest moment triacul este comandat de impulsuri de amorsare care să asigure un unghi de aprindere descrescător, crescând astfel tensiunea. În momentul 11 tensiunea este integral aplicată pe sarcină. În figura 6.21 jos se poate observa forma variaţiei treptate a puterii consumate pe sarcină.

Modelul conceput pentru aceste simulări este cel din figura 6.22. Dispozitivul propus în acest proiect prezintă următoarele avantaje: viteză mare de decuplare, curentul de scurtcircuit poate fi reglat cu precizie, viteză mare de reacţie la creşterea tensiunii de la reţea, reglarea cu precizie a supratensiunii de prag, disipaţie termică redusă în cazul unui scurtcircuit, protejarea mediului electromagnetic înconjurător, comoditate în exploatare şi cost mic.

Tensiunea este oprită (sarcina decuplată) Tensiunea creşte Tensiunea este normală treptat

Recuplarea sarcinii

Page 147: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

147

Figura 6.22: Model Simulink pentru protecţia în 2 etape

Flexibilitatea acestui dispozitiv, datorată utilizării microcontrollerului duce la posibilitatea implementării şi a altor funcţii utile. După un scurtcircuit sau o supratensiune, repunerea în funcţiune nu necesită intervenţia unei persoane pentru că după oprirea tensiunii în cazul unui scurtcircuit sau supratensiune, revenirea tensiunii este automată (în cazul unui scurtcircuit doar după ce cauza a fost eliminată. De asemenea, prin acţiunea în două etape, la apariţia unor supratensiuni sau supracurenţi de valoare mică valoarea medie a tensiunii se scade şi sarcina nu este decuplată de la reţea, funcţionând în continuare.

În figura 6.23 este prezentată fotografia modelului experimental.

Figura 6.23: Fotografia modelului experimental

Datele preluate referitoare la valorile tensiunii şi curentului pot fi trimise la distanţă şi puse la dispoziţia celor interesaţi (proprietarul locuinţei dacă nu se află în localitate sau distribuitorului de energie electrică). Transmisia datelor poate fi realizată:

TRIAC cu ventilaţie

Web server (Site player)

Senzor Hall

Microcontroller

Conexiune Ethernet

Page 148: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

148

• prin modem GSM, comunicaţia fiind asigurată prin SMS sau GPRS; • prin INTERNET, cu un dispozitiv de tip web server care preia datele de la

microcontroller şi le postează pe un site.

Componentele sistemului: 1. Modulul cu microcontroller şi circuite anexe; 2. Modulul de putere care conţine triacul şi traductorii de curent şi tensiune; 3. Modulul web server (Site Player) conectat la Internet care crează o pagină pe care sunt

afişate evenimentele din reţea precum şi o diagramă a consumului.

Bibliografie

[1] www.national.com/ms/CN/CN-6.pdf, [online], Triac Control Using the COP400 Microcontroller Family

[2] Magdun O., Covrig M., The numerical simulation in Matlab-Simulink of an electrical drive with two-phased induction motor, Advanced Topics in Electrical Engineering – ATEE 2002, Bucharest, 29 November, 2002

[3] F2MC-8FX Fujitsu Semiconductor Preliminary

[4] AN 887, AC Induction Motor Fundamentals, Microchip, 2004

[5] AN900, Controlling 3- Phase AC Induction Motors using the PIC 18F4431, Microchip, 2004

[6] Stoian C., Misca T., Soluţii privind protecţia la supratensiuni atmosferice si de comutaţie, http://www.eximprod.ro/produse/supratensiuni.pdf

[7] http://www.obiectivbr.ro/component/content/article/38027.html

[8] www.dehn.de [online]

[9] Ogrutan P., Munteanu R., Suciu L., Dispozitiv de protecţie la scurtcircuit şi supratensiune pentru receptori de energie electrică, Brevet de inventie nr. 122067/2008

Page 149: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

149

Capitolul 7: Aplicaţii mobile

7.1.Introducere

Multe dintre aplicaţiile cu microcontroller necesită o transmisie de date fără fir. Comunicaţiile fără fir înseamnă transferul informaţiei prin intermediul câmpului electromagnetic în gama de frecvenţă 9kHz-300GHz. Spectrul electromagnetic este o resursă publică şi alocarea gamelor de frecvenţe pentru diferite transmisii se realizează de către organisme naţionale şi internaţionale. În spectru există benzi de frecvenţă pentru care trebuie licenţă şi benzi libere, aşa cum este banda ISM (Industrial, Scientific and Medical - 2,4GHz). Istoricul transmisiilor fără fir începe cu David E. Hughes care a transmis codul Morse in 1878 cu o bobină parcursă de curent electric şi a patentat invenţia. În urma acestui patent s-a născut compania Western Union Telegraph. Thomas Alva Edison (1847 – 1931), un prolific inventator, care a inventat becul cu incandescenţă, microfonul etc. a inventat în 1888 o metodă de transmisie fără fir cu ajutorul unui magnet vibrator, invenţie patentată şi aplicată la căile ferate. Heinrich Rudolf Hertz (1857 –1894) a avut realizări importante în domeniul teoriei câmpului electromagnetic. A demonstrat teoretic posibilitatea transmisiei radio dar nu a realizat experimente. Nikola Tesla (1856 – 1943) a avut realizări experimentale deosebite, cum ar fi de exemplu realizarea unui model de vapor telecomandat de la distanţa de câţiva kilometri, a construit antene, sisteme de transport al energiei fără fir etc.

În cel de-al doilea război mondial rachetele şi torpilele începuseră să fie ghidate prin radio, dar bruierea semnalului făcea ca ghidarea să nu reuşească. Hedy Lamarr care a privit multă vreme activitatea navelor în porturi a inventat în 1942 un mod de a schimba frecvenţele de transmisie foarte repede în timpul transmisiei pentru ca transmisia să nu poată fi bruiată. Schimbarea frecvenţei se făcea prin programul înscris pe un tub, ca şi cel al flaşnetei. Invenţia a fost făcută cu 20 de ani prea devremePrima aplicaţie a fost realizată de armata SUA în timpul crizei rachetelor din Cuba, metoda de salt de frecvenţă fiind folosită la ghidarea rachetelor. Astăzi, metoda este folosită la WLAN, Bluetooth, ghidarea rachetelor, comunicaţii prin satelit etc. Această invenţie istorică, cunoscută de puţină lume dovedeşte că pasiunea pentru noutate şi patriotismul nu sunt doar vorbe.

Există în prezent o mare varietate de transmisii fără fir. Alegerea uneia sau alteia se face în funcţie de aplicaţie. Dacă este nevoie ca transferul de date să fie între două module cu microcontroller la distanţă mică şi aplicaţia trebuie să fie ieftină atunci se pot folosi protocoale proprietare implementate în module ieftine. Dacă este vorba de un aparat care transmite date direct în Internet şi este situat mai departe de civilizaţie atunci se poate folosi o transmisie GPRS. Dacă receptorul de date este un PDA sau un telefon mobil şi distanţa de transmisie este mică atunci o transmisie Bluetooth este cea mai potrivită. Necesitatea integrării într-o reţea de măsură existentă poate obliga proiectantul să aleagă metoda folosită în reţea, de exemplu ZigBee. O transmisie cu debit mare de informaţie poate determina

Page 150: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

150

alegerea unei transmisii WLAN, costurile fiind însă mai mari ca la variantele anterioare. În consecinţă, principalele criterii de alegere a metodei de transmisie sunt:

• Distanţa de transmisie; • Debitul de informaţie; • Restricţii determinate de conectarea la o reţea existenţă; • Poziţia geografică; • Costurile admisibile.

7.2.Transmisii simple

Pentru a realiza o transmisie simplă de date la distanţe de câţiva metri, cu debit mic de informaţie şi care nu trebuie să fie interconectată printr-un anumit standard într-o reţea de date se pot folosi module sau interfeţe cu protocol proprietar. Consultând pagina web a unei firme de componente (www.adelaida.com) se pot găsi multe asemenea module, cu preţuri variind între 6 şi 50 de dolari la cumpărarea unei bucăţi.

7.2.1.Module RF

Perechea de circuite RFM01 (receptor) şi RFM02 (emiţător), figura 7.1 sunt echipate cu interfaţă SPI, lucrează în banda 433MHz iar debitul de informaţie maxim este de 115,2Kbps la o distanţă de maximum 300m. Preţul unui asemenea modul este de aproximativ 8 dolari.

Figura 7.1: Perechea de circuite RFM

Modulaţia datelor este FSK, receptorul conţine o buclă PLL şi pot fi alimentate între 2,4V şi 5,4V, făcând posibilă realizarea de module portabile, alimentate de la două baterii. Dimensiunile mici de 18mm x 14mm x 9mm asigură posibilitatea miniaturizării aplicaţiilor. Receptorul are protecţie la subtensiune şi poate asigura reglajul automat al unor parametri ai antenei. Schemele simple a receptorului din figura 7.2 şi a transmiţătorului în figura 7.3 arată simplitatea interconectării cu un microcontroller din familia ATmega.

Page 151: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

151

Figura 7.2: Receptor cu RFM01

Figura 7.3: Transmiţător cu RFM02

Poate cea mai simplă soluţie este folosirea perechii de circuite hibride TLP434A/ RLP434, figura 7.4.

Figura 7.4: Circuite TLP434A (stânga) şi RLP434 (dreapta)

Frecvenţa de lucru este 433,92MHz, debitul maxim este de 4,8Kbps la o distanţă de maximum 200m cu o antenă adaptată. Tensiunea de alimentare este de 3V-12V iar interfaţa cu microcontrollerul este serială. Modulaţia datelor este ASK iar preţul unui circuit este sub 6

Page 152: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

152

dolari. Un proiect realizat cu această pereche de circuite este dat în [1], datele seriale transmise fiind codate Manchester de un microcontroller PIC12F509. Schema este extrem de simplă.

O altă variantă este circuitul HM-TR (figura 7.5) construit de Hope Microelectronics Co. Ltd. [2] care conţine un receptor şi un transmiţător pe aceeaşi placă care pot asigura comunicaţia half duplex între două puncte, interfaţa fiind RS232.

Figura 7.5: Circuitul HM-TR, RS232, half duplex

Circuitul lucrează în banda de frecvenţe între 310,24Mhz şi 929,27MHz, deci se poate lucra la 433MHz sau 868MHz., modulaţia fiind FSK. Debitul maxim este de 19,2Kbps, dimensiunile modulului fiind 24x43mm. Distanţa maximă determinată într-un spaţiu fără obstacole este de 330m. Denumirea circuitului HM-TR 433/RS232 sau HM-TR 866/TTL sugerează frecvenţa de lucru şi nivelele de tensiune de interfaţă (RS232 sau TTL).

7.2.2.Interfeţe RF

O interfaţă radio modem realizată de Atmel este AT86RF211 [3], destinată emisiei şi recepţiei de date în banda 400-950Mhz, cu posibilitatea selecţiei digitale a canalului. Viteza de transfer a datelor este de până la 50kbps, ce refacerea ceasului la recepţie, modularea fiind de tip FSK. Banda de transmisie nu necesită licenţă. Circuitul are nevoie de un minim de componente externe: condensatori, rezistoare, filtre şi bobine. Interfaţa cu microcontrollerul este simplă, formată dintr-un canal de date serial pe două linii şi un canal serial de programare cu trei linii. Câteva dintre caracteristicile principale ale circuitului sunt:

• posibilitatea de transfer de date bidirecţional, half duplex, având un comutator RX TX integrat, trecerea între TX şi RX realizându-se în mai puţin de 200µs;

• putere de emisie mare, conform cu standardele internaţionale (+10dBm) la tensiuni mici de alimentare (2,4V), puterea fiind reglabilă soft în 8 trepte prin registre de control;

• frecvenţa de lucru pentru RX/TX este programabilă digital prin registre de control, oscilatorul local fiind integrat în întregime, atât pentru RX cât şi pentru TX. Frecvenţa de lucru poate fi stabilită cu o precizie de 200Hz. Modificarea frecvenţei se poate face cu o viteză mare - 100kHz/µs;

• economia de energie este realizată prin intrarea într-un mod de operare cu energie redusă în care circuitul de recepţie testează periodic şirul de date recepţionate pentru a

Page 153: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

153

determina când este adresat. În acest moment se poate transmite o întrerupere microcontrollerului asociat pentru a începe recepţia datelor.

Schema bloc a circuitului AT86RF211 este dată în figura 7.6.

Figura 7.6: Schema bloc a modemului radio

Ca şi receptor a fost aleasă o structură de superheterodină cu 2 etaje, frecvenţa intermediară fiind aleasă cu valorile cele mai populare pentru ca filtrele externe să fie uşor de obţinut. Sunt posibile două frecvenţe intermediare:

• 10,7MHz, cea mai populară opţiune; • 21,4MHz, la care frecvenţa imagine este suficient de departe de purtătoare pentru ca la

intrare să se poată utiliza un filtru ceramic mai ieftin;

Circuitul poate lucra în două benzi, 400-480MHz şi 800-950MHz, pentru schimbarea benzii fiind nevoie de schimbarea filtrului de intrare şi a unei impedanţe de intrare. Selectarea canalului în bandă se face software, prin comandarea blocului sintetizator. Singura componentă externă pentru sintetizator este filtrul pentru bucla PLL. Sintetizatorul conţine un oscilator comandat în tensiune, cu panta de 150MHz/V. Viteza de modificare a frecvenţei funcţie de tensiunea de comandă trebuie să fie mai mare pentru a se putea realiza modularea FSK a datelor. Pentru un şir de date cu debitul de 50kbps, la care fiecărui bit i se asociază o frecvenţă dacă este 0 şi alta dacă este 1, viteza de modificare a frecvenţei trebuie să fie de 100kHz/50µs. Cele 2 frecvenţe de codificare sunt preîncărcate în circuit prin programarea unui registru.

Antenă

Filtru de intrare

Comutator

RX TX

Filtru

X

Filtru

X

Filtru

Demodulator

SINTETIZATOR

Modulator

Circuit de control Controlul puterii de emisie

DataMsg DataClk SLE SCK SDATA

Date digitaleAdrese, comenzi, stări

Interfaţă serială sincronă

Page 154: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

154

Toate celulele receptorului sunt concepute să poată lucra între 400-1000MHz. Amplificarea primei celule este programabilă prin registrul CTRL1. Comutatorul RX/TX protejează intrarea receptorului de excursia mare de tensiuni a emiţătorului (până la 10V vârf la vârf la o tensiune de alimentare de 5,5V). Comutatorul este comandat de un bit de control. Demodulatorul este format dintr-un oscilator care oscilează la frecvenţa Fin (a semnalului de intrare), frecvenţa liberă de oscilaţie fiind F0. Faza semnalului de ieşire din oscilator este proporţională cu diferenţa între Fin şi F0. Un circuit SAU EXCLUSIV transformă diferenţa de fază în factor de umplere, apoi un filtru trece jos o transformă în tensiune. Dacă Fin = F0 factorul de umplere este 50% şi tensiunea de ieşire este VDD/2. Chiar şi primul bit poate fi detectat corect aşa încât nu mai este nevoie să se insereze un şir de biţi 010101…… pentru sincronizarea receptorului. Tensiunea de ieşire este convertită în nivele CMOS cu un comparator cu rezoluţie mare. Tensiunea de comparaţie se extrage din valoarea medie a semnalului analogic demodulat. Pentru un cod de tip Manchester cu un număr de zerouri aproape egal cu cel de unu, schema este eficientă. Tensiunea de comparaţie este scoasă la un pin exterior. O altă posibilitate este de a fixa tensiunea de comparaţie din exterior la VDD/2 cu un divizor rezistiv. Astfel sunt posibile şi codări NRZ. Pentru a permite comparaţii foarte exacte, tensiunea de comparaţie se poate modifica în jurul valorii VDD/2 prin program. Este implementat un DAC de 4 biţi, programarea făcându-se în registrul DTR.

Amplificatorul de putere de ieşire poate genera 10dBm (10mW) în 3 canale foarte utilizate (434MHz, 868MHz şi 915MHz) (la 2,4V alimentare). Puterea maximă poate fi mai mare dacă tensiunea de alimentare este mai mare, astfel în canalul 400MHz, la 4V, puterea poate fi până la +19dBm. În banda 868MHz circuitul poate genera 14dBm, ceea ce reprezintă nivelul maxim admis în Comunitatea Europeană. Curentul absorbit de circuit pentru a obţine aceste puteri de ieşire este de 39-46mA, funcţie de canal. Controlul puterii se poate face în 2 moduri:

• Un rezistor extern stabileşte puterea maximă, funcţie de reglementările legale în ţara respectivă;

• Cu 2 biţi din registrul de control CTRL1 se pot stabili 8 nivele de putere, sub puterea maximă.

Stabilirea puterii prin soft este utilă la economia de energie. Astfel, 2 circuite care se află în legătură radio pot comunica nivelul de putere şi îl pot micşora până la nivelul la care comunicaţia se mai poate desfăşura corect. Etajul de putere are integrată o buclă de control a puterii pentru a micşora sensibilitatea puterii de ieşire la modificarea temperaturii sau a tensiunii de alimentare. Cu cât excursia tensiunii de ieşire este mai mare, cu atât şi eficienţa etajului de putere este mai mare. Cu o alimentare de 3V, tensiunea de ieşire este de +5V vârf la vârf sau 1,77V valoare eficace. Pentru a emite cu 10mW (10dBm) rezistenţa de sarcină este RS=314Ω . Impedanţa antenei fiind de 50Ω este nevoie de un filtru pentru adaptarea de impedanţă. Filtrul trebuie realizat cu atenţie, cu componente SMD de suprafaţă mică, cu mase bune pentru a nu radia armonici superioare. Filtrul, în afară de rolul de adaptare de impedanţe poate micşora nivelul de armonici superioare generate în antenă, conform cu reglementările din ţara respectivă.

Page 155: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

155

Microcontrollerul poate controla şi monitoriza circuitul printr-o interfaţă serială sincronă cu 3 fire:

• SLE validare intrare; • SCK tact (semnal de intrare); • SDATA date de intrare/ieşire

Dacă SLE=1 interfaţa este inhibată. Un ciclu de citire/scriere începe dacă SLE trece în 0 şi se termină când SLE trece în 1. Într-un ciclu de acces se poate realiza o singură operaţie: un singur registru poate fi citit sau scris. Un mesaj este format din 3 câmpuri:

• Adresa (4 biţi, la început MSB); • Selecţia R/W; • Date (32 de biţi maxim, la început MSB).

Diagrama de semnale pentru scriere /citire este dată în figura 7.7.

Figura 7.7: Diagrama de semnale pentru scrierea /citirea serială sincronă

Datele transmise sau recepţionate circulă în mod half duplex pe linia bidirecţională DataMsg cu tactul DataClk. Interfaţa între microcontroller şi modemul radio se realizează ca în schema bloc din figura 7.8.

Figura 7.8: Conectarea prin UART (stânga) şi la porturi paralele de uz general (dreapta)

În stânga este prezentată o variantă de conectare a radio modemului la interfaţa UART a microcontrollerului. Liniile RxD şi TxD sunt unite pentru că DataMsg este bidirecţional. Canalul UART trebuie programat half duplex. Semnalul Wakeup generat de modem comandă pe o linie de întrerupere ieşirea din stand by a microcontrollerului. Pentru comenzi se folosesc trei linii dintr-un port paralel, SDATA fiind o linie bidirecţională, toate liniile fiind comandate software. Dacă nu este disponibil un port UART se poate folosi varianta din figura 7.8

A3 A2 A1 A0 R/W D31 D30 D29 ……………………………..D0

SLE SCK SDATA

MC AVR

TxDRxDInt0Px.1Px.2Px.3

AT86RF DataMsg DataClk Wakeup SDATA SCK SLE

MC AVR

Px.4Int1Int0Px.1Px.2Px.3

AT86RF DataMsg DataClk Wakeup SDATA SCK SLE

Page 156: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

156

dreapta, toate semnalele provenind din porturi paralele de uz general. Tactul pentru date DataClk este generat de modem la mijlocul bitului de date.

7.3.Transmisia datelor prin GPRS

Datorită necesităţii de a putea avea acces la informaţie şi de a fi totodată mobil, s-a recurs la folosirea terminalelor mobile GSM pentru transmisii de date. Comunicaţiile de date prin intermediul reţelelor de telefonie mobilă au devenit mult mai eficiente în momentul în care a fost împrumutată o idee de la reţelele de calculatoare, cea a comutaţiei de pachete. Informaţia este încapsulată în pachete care circulă prin intermediul unor echipamente de reţea până la destinaţie. Adresele sursei şi destinaţiei sunt conţinute în pachet. Astfel a luat naştere GPRS (General Packet Radio Services).

7.3.1.Structura şi module tipice GPRS

Pentru transmisia de date modulele din reţeaua GSM sunt completate cu un PCU (Packet Control Unit) care trimite datele spre SGSN (Serving GPRS Support Node). SGSN are sarcina de routare a pachetelor, atribuirea de IP şi gestionarea legăturii la trecerea de la o celulă la alta (handover). GGSN (Gateway GPRS Support Node) este conectat la un server din Internet. HLR (Home Location Register) conţine o bază de date a utilizatorilor. Arhitectura GPRS este dată în figura 7.9.

Rata de transfer maximă care se poate obţine prin GPRS este de 171,2 kbps adică 21.4kBps. Transferul datelor poate fi efectuat prin UDP (User Datagram Protocol), sau prin TCP/IP. Avantajul transferului prin TCP/IP constă în faptul ca pachetele ajung la destinaţie în ordinea în care au fost transmise şi există o garanţie a transmisiei corecte a pachetelor.

Figura 7.9: Arhitectura GPRS

Din punct de vedere al modalităţii de transmisie a datelor, sistemul se comportă în felul următor: unitatea de procesare iniţiază o conexiune a modemului GPRS către un BS (Base Station) a unei reţele de telefonie mobilă, apoi este efectuată o cerere pentru conexiunea la internet prin GPRS. BS-ul sesizează acest lucru şi prin intermediul PCU-lui (Packet Control Unit), comunică cu SGSN-ul în vederea obţinerii unei adrese IP şi a alocării unui canal de

Staţie GSM(Base Station)

Reţeaua GSM

Controller de staţie

PCUHLR

...

...

...

GPRS

SGSN GGSN Internet

Modem GPRS

Page 157: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

157

transmisie între acestea din urmă. Prin interfaţa dintre BS şi SGSN circulă pachete de date, SMS-uri în mod GPRS şi semnalizări. Astfel, SGSN verifică HLR (registrul de localizare), alocă o adresă IP, deschide un canal logic pentru transmisia datelor către PCU şi îi cere acestuia alocarea şi gestionarea resurselor necesare pentru stabilirea comunicaţiei între staţia mobilă şi BS.

Sistemul de transmisie GPRS este pus la dispoziţie de operatorii de telefonie mobilă şi datele achiziţionate sunt trimise la un server al utilizatorului. Fiecare modul GPRS trebuie să aibă un card SIM furnizat de operatorul de telefonie mobilă cu un tip de abonament sau în sistem pre-plătit pentru transferul de date. Tarifele sunt de regulă funcţie de traficul realizat.

În aplicaţiile realizate au fost folosite două tipuri de module GPRS, produse de TELIT [4], modelul GM862-GPRS şi modelul EZ10. Ambele modele sunt echipate cu interfeţe RS232, figura 7.10.

Figura 7.10: Modulul GPRS GM862 (stânga) şi EZ10 (dreapta)

Modulul GPRS GM862-GPRS a fost achiziţionat împreună cu placa pe care se montează pentru a evita lipirea direct la pinii modulului. Conexiunea modulului GM862 se face prin interfaţa serială RS232, la nivele de tensiune de 3,3V, de aceea trebuie construită o interfaţă pentru modificarea nivelului cu circuite specializate MAX2232. În figura 7.11 este dată schema electrică de conectare a modulului GM862 la interfaţa RS232 pentru interfaţarea cu un microcontroller.

Modulul GM862 are şi o interfaţă USB, utilă pentru conectarea la un PC în faza de punere la punct a programelor software de aplicaţie, figura 7.12.

EZ10 este un modul GPRS/GPS construit ca ansamblu separat de placa cu microcontroller la care se conectează prin o conexiune serială RS232. Modulul este construit pe baza circuitului GM862, având suplimentar şi funcţia de GPS. EZ10 administrează intern stiva TCP-IP şi uşurează astfel implementarea aplicaţiei. Alimentarea modulului se face de la un alimentator extern.

Page 158: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

158

Figura 7.11: Schema electrică de conectare a modulului GM862 la interfaţa RS232

Figura 7.12: Placa cu modulul GM862 şi interfeţele RS232 şi USB

Caracteristicile principale ale modulelor GPRS sunt: • Dual Band 900-1800MHz • EASY GPRS (comenzi AT incluse )RS232 UART, nivele CMOS la GM862 şi RS232

la EZ10 • Auto-bauding de la 2.4 până la 57.6 KbpsInterfaţă card SIM, 3V şi 1.8VMaxim 13 x

GPIO porturi2 convertoare A/D • Agendă numere de telefon • Este suportat codul PUK2 pentru condiţia de blocare. • Audio integrat

Interfaţa USB

Interfaţa RS232

Modulul TELIT

Cuplă de alimentare

Page 159: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

159

• Posibilitatea de lucru cu SMS • GPS integrat (în EZ10).

7.3.2.Comenzi AT

Conexiunea modulului TELIT cu microcontrollerul se face prin interfaţa serială RS232, comunicaţia fiind bazată pe comenzi AT. Comenzile AT sunt şiruri de date care încep cu prefixul AT şi pot fi trimise modulului cu un program cum este de exemplu Hyper-Terminal din Windows dacă modulul este conectat la un PC prin interfaţa RS232 sau direct de la microcontroller. Conectarea la un PC este utilă în faza iniţială de punere la punct a părţii software. După ce programul a fost pus la punct se programează microcontrollerul care comunică cu modulul GPRS tot prin interfaţa serială RS232, cu aceleaşi comenzi AT.

La activarea conexiunii GPRS trebuie specificaţi parametrii reţelei şi numărul de telefon apelat şi se stabileşte o conexiune între modem şi un server de date (nu se poate stabili o conexiune între două modemuri GPRS). Conectarea cu o aplicaţie aflată pe un server se realizează astfel:

• Cu o comandă AT se setează proprietăţile GPRS pentru a permite modemului GPRS activeze conexiunea GPRS ori de câte ori este nevoie de un transfer de date;

• Cu o comandă AT se setează parametrii de autentificare, nume utilizator şi parolă care vor fi folosiţi pentru validarea conectării;

• Cu o comandă AT se definesc portul de conectare la server şi protocolul UDP sau TCP-IP;

• Se porneşte conexiunea cu o comandă de formare a numărului şi conectare.

Câteva dintre comenzile utilizate la conectare sunt:

AT- Comandă vidă, va întoarce întotdeauna răspunsul „OK” , folosită sub forma AT

AT#USERID[=<user>] – se trimite numele reţelei pentru autentificare, folosită sub forma AT#USERID="net.vodafone.ro“ (autentificare)

AT#PASSW= <pwd> - se trimite parola pentru autentificare, folosită sub forma AT#PASSW="vodafone" (parolă)

AT+CPIN[=<pin> [,<newpin>]] – se trimite codul PIN, folosită sub forma AT+CPIN=2649 (cod PIN)

AT+CREG=? - Dupa ce se introduce codul PIN al cartelei SIM se asteapta până când se efectuează conectarea. Comanda a fost folosita în forma: AT+CREG?

AT+CGDCONT=1 - Se utilizează o conexiune IP prin serverul GGSN cu numele „net.vodafone.ro” fără o compresie a datelor sau a header-ului pachetelor. Comanda a fost folosită în forma: AT+CGDCONT=1,"ip","net.vodafone.ro","0.0.0.0",0,0

AT#GPRS[=[<mode>]] – activare GPRS cu 1, dezactivare cu 0, transmisia a fost activată cu AT#GPRS=1 . AT#GPRS? interoghează starea modemului

Page 160: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

160

AT#SKTD=0 - Tipul socketului folosit este TCP, numărul portului pe care ascultă serverul este 2222, adresa de IP a serverului este „86.125.93.184” iar conexiunea se închide când serverul închide portul. Comanda a fost folosită în forma: AT#SKTD=0,2222,"86.125.93.184",0Programul arată astfel:

at OK at+cpin=2649 OK at++CREG: 0,1 OK at#userid="net.vodafone.ro“ OK at#passw="vodafone" OK at+cgdcont=1,"ip","net.vodafone.ro","0.0.0.0",0,0 OK at#gprs=1 +IP: 172.23.65.136 OK at#sktd=0,2222,"86.125.93.184",0 CONNECT

După această secvenţă urmează transmiterea datelor. Practic tot ce primeşte modulul prin USART va fi transmis către server urmând ca după închiderea conexiunii modulul să fie trecut în stare oprită. O listă completă a comenzilor AT se poate găsi în documentaţiile TELIT, de exemplu în [5]. Oprirea sa se va face hardware. Transferul de date între modulul cu microcontroller şi modemul GPRS are loc în aplicaţiile realizate astfel:

1. Unitatea de procesare selectează prin intermediul circuitului de selecţie ieşirea USART-ului către modemul GPRS.

2. Unitatea de procesare activează modemul. 3. Unitatea de procesare iniţializează înregistrarea în reţeaua GSM a modemului şi

conectarea la GPRS. 4. Unitatea de procesare transmite efectiv pe USART datele de transmis. Aceste date vor

fi transmise prin intermediul modemului la server-ul cu o anumită adresă IP. Pe acest server este rulat un program ce ascultă şi primeşte pe portul 2222 pachete prin TCP/IP. Aceste pachete conţin ca identificator codul IMEI (International Mobile Equipment Identity – Identitatea Internaţională a Echipamentului Mobil) al modemului, cod ce este unic. Ca măsură de siguranţă, acest cod este căutat într-o listă în care se află toate codurile IMEI ale echipamentelor ce vor fi utilizate, iar dacă codul IMEI nu se află în lista echipamentelor va închide conexiunea.

5. Unitatea de procesare dezactivează modemul;

Principala dificultate în aceste aplicaţii este faptul că se utilizează de regulă mai multe canale USART. Astfel la primele aplicaţii s-au folosit module GPRS şi GPS diferite, deci două canale USART folosite. EZ10 realizează o transmisie GPRS şi GPS pe acelaşi canal, dar a

Page 161: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

161

trebuit implementată o comunicaţie cu un PC pentru realizarea de teste. Într-o aplicaţie a fost nevoie de conectarea unui contor Geiger Muller pe un canal UART şi EZ10 pe celălalt. În prima etapă s-a căutat un microcontroller cu două canale USART dar au fost dificultăţi de aprovizionare şi s-au mărit costurile. În a doua etapă s-a implementat un multiplicator de canale seriale [6], figura 7.13.

Aplicaţiile GPRS sunt mai simplu de implementat decât pare la prima vedere, aceasta datorită în primul rând programabilităţii medemurilor GPRS cu comenzi AT (Easy GPRS). Nu este necesară cunoaşterea traseului datelor până la serverul utilizatorului, singura condiţie pusă serverului fiind să aibă atribuit un IP fix.

Figura 7.13: Multiplicare porturi USART

Transmisia GPRS se pretează la aplicaţii în care nu există un receptor în apropierea punctului de culegere de date dar există acoperire de telefonie mobilă. Singura variantă posibilă de transmisie de date pentru aplicaţia de măsurare a Radonului realizată de colectivul nostru de cercetare şi prezentată într-un capitol special, în care punctele de măsură sunt plasate de-a lungul unor falii seismice în câmp a fost transmisia GPRS.

7.4. Bluetooth

Prin Bluetooth se realizează transferuri de date pe distanţe scurte între un calculator şi diverse echipamente periferice, de exemplu căşti, telefoane mobile, playere, imprimante, camere video, GPS etc. Numele provine de la numele unui rege danez, Blatand din secolul 10 care a unit triburile scandinave. Modulaţia datelor este asemănătoare cu cea de la WLAN, adică împărţirea spectrului alocat în mai multe canale şi o modulaţie GFSK (Gaussian Frequency-Shift Keying) a datelor pe fiecare canal. În modul de transmisie de date salturile de frecvenţă sunt 1600/s, iar în modul de descoperire poate fi de 3200/s pentru a micşora timpul de conectare. Spectrul alocat este situat în banda de 2,4GHz, între 2,402GHz şi 2,480GHz. Distanţa de transmisie este de uzual de 1m, viteza fiind de 1Mbps, dar există unele dispozitive cu putere mai mare de emisie care asigură distanţe până la 100m. Conectarea unui dispozitiv

Microcontroller TX RX PI/O (selecţie)

MAX232

MAX232

TX1 RX1 TX2 RX2

DMUX

MUX

Page 162: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

162

Bluetooth la un calculator gazdă se realizează printr-un software de descoperire. O descriere bună a sistemului Bluetooth este în [7].

Ca şi la alte interfeţe prezentate în această carte există două variante de implementare a unui sistem înglobat cu transmisie Bluetooth, prin utilizarea unei interfeţe Bluetooth conectate la un microcontroller existent sau utilizarea unui microcontroller cu Bluetooth integrat. Momentan prima soluţie este preferată asigurând o viteză de implementare mai mare şi costuri mai mici.

Figura 7.14: Interfaţa Bluetooth, aspect (stânga) şi schema bloc (dreapta)

7.4.1.Interfeţe Bluetooth

Interfaţa Bluetooth de la Rayson BTM222. figura 7.14 conţine un nucleu BlueCore4 cu interfeţe de conectare SPI, UART, USB şi o interfaţă PCM (Pulse Code Modulation) pentru conectarea unui modul audio. De la nucleu datele sunt emise printr-un amplificator de putere prin antenă, iar datele recepţionate sunt amplificate cu un LNA. Alimentarea de putere şi cea a nucleului sunt diferite.

Interfaţa asigură transfer Bluetooth versiunea 2 cu EDR (Enhanced Data Rate) de până la 3Mbps. Sunt posibile moduri de lucru cu economie de energie. Alimentarea este între 3V şi 3,6V, puterea de emisie fiind de 18dBm.

Acest tip de modul Bluetooth admite comenzi AT. Comenzile AT sunt formate din prefixul AT, o literă care reprezintă tipul comenzii, apoi parametri:

ATAn –stabilire conexiune cu dispozitivele n=1-8

ATB? – afişează adresele dispozitivelor slave conectate

ATD=xxxxxxxxxxxx – defineşte o adresă de 12 digiţi pentru un dispozitiv cuplat

BlueCore4 SPI UART USB PCM PIO

FLASH

LNA

AMP

Vcc

PVcc

Page 163: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

163

ATEX – stabileşte ecoul la o transmisie USART, X=0 fără ecou, X=1 cu ecou, X=? se interoghează starea curentă

ATF? – caută dispozitive timp de 60s şi afişează numele lor

ATHX – setează permisiunea de descoperire, X=0 nu poate fi descoperit, X=1 poate fi descoperit, X=? se interoghează starea curentă

ATI? – interoghează versiunea software

ATKX – stabileşte numărul de biţi de Stop la transmisia serială

ATLX - stabileşte viteza de transfer la transmisia serială

ATMX – stabileşte controlul de paritate

ATN=xxx…. – stabileşte un nume dispozitivului, maximum 16 caractere

ATO – comandă de conectare automată

ATP=xxxx – trimite codul PIN

ATQX – setează trimiterea confirmării execuţiei unei comenzi

ATRX – stabileşte modul master sau slave

ATU=parola – permite accesul cu parolă la upgrade de firmware

ATZ – restaurează setările iniţiale

Un alt modul de inetrfaţă Bluetooth este modulul Erissson ROK 101 008, echipat cu interfeţe serială USART, PCM şi I2C, figura 7.15 [8].

Modulul conţine un transceiver radio PBA313 construit pe baza unui circuit ASIC de la care datele sunt transmise prin circuite BALUN (BALanced UNbalanced) prin amplificatoare spre antenă. La recepţia datelor este folosită o buclă PLL. Microcontrollerul este un ARM7 cu capacitatea de prelucrare voce de tip ROP101. Un tact de 13MHz cu acurateţea de 20ppm este montat pe placă. O schemă electrică tipică de utilizare pentru transferul de date şi voce, în pricipiu valabilă pentru ambele module prezentate este dată în figura 7.16.

Page 164: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

164

Pentru comanda modulului şi transferul datelor se folosesc comenzile HCI (Host Control Interface) conform standardului Bluetooth v1.0B. Ericsson are câteva comenzi HCI proprii, aşa cum este de exemplu cea de stabilire a vitezei de comunicaţie prin RS232. Ericsson pune la dispoziţia dezvoltatorilor un sistem de dezvoltare în care intră HCIdriver, un driver pentru folosit de gazdă (PC), L2CAP , RFCOMM pentru emularea unui port serial şi SDP (Service Discovery Protocol) pentru identificarea serviciilor disponibile la un dispozitiv Bluetooth.

Figura 7.15: Modul Bluetooth Ericsson ROK 101

Figura 7.16: Schema electrică tipică de utilizare pentru transferul de date şi voce

Comenzile HCI au următorul format, figura 7.17.

MC ARM7 I2CUART

PCM

FLASH

Vcc

Transceiver radio PBA313

ASIC BALUN

BALUN

UART PCM

ROK101 sau BTM222

MAX3232

CODEC

PVcc Vcc RS232

Page 165: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

165

Figura 7.17: Formatul comenzilor HCI

Comenzile HCI sunt de mai multe tipuri:

• Pachet HCI de comandă, de la gazdă la dispozitiv; • Pachet HCI ACL date (Asynchronous Connectionless Link) care asigură benzi diferite

pentru sensuri diferite de transfer; • Pachet HCI SCO date de la PCM (voce) (Synchronous Connection Oriented Link)

care asigură viteze egale pentru cele două sensuri de transfer; • Pachet HCI de evenimente, de la dispozitiv la gazdă.

O legătură între două module Bluetooth este asigurată între Host-B care aşteaptă o scanează cererile de conexiune şi Host-A care solicită conexiunea. De exemplu descoperirea unui modul Bluetooth de către Host-B se poate face cu comenzile HCI:

• Read_BD_ADDR care are ca răspuns din partea Host-A pachetul HCI Command_Complete_Event care conţine adresa solicitată ca parametru;

• Inquiry are ca răspuns adresa Host-A.

Pentru ca Host-A să poată răspunde la o scanare trebuie programat cu pachetul HCI HCI_Write_Scan_Enable (OCF este 001AH). Legătura este creată prin pachetul HCI_Create_Connection. De exemplu comanda HCI fără parametri HCI_Inquiry_Cancel are codul OCF + OGF cu 00H parametri 020400H care se trimite pe seriala RS232 şi produce abandonarea descoperirii dispozitivelor Bluetooth.

Transferul de date se realizează full duplex, prin TDD (Time Division Duplex). Pachetele de date sunt trimise în perioade fixe de timp de 625µs şi un pachet poate ocupa maximum 5 asemenea intervale de timp. Un pachet este trimis folosin acelaşi canal radio. Pachetele de voce SCO pot ocupa maximum două canale de 64kbps. Pentru pachetele ACL se pot defini vitezele de transfer în ambele direcţii, de exemplu în pachetul de tip DH5 723,2kbps într-un sens şi 57,6kbps în sensul opus, asimetria fiind maximă, dar există şi posibilitatea de viteze egale, cum sunt pachetele DM1 cu 108,8kbps în ambele sensuri.

Un alt modul Bluetooth care poate fi utilizat în aplicaţii cu microcontrollere este adaptorul serial LM058, figura 7.18 [9].

0 4 8 12 16 20 24 28 31

Codul instrucţiunii Parametrii OCF (10b) OGF (6b)

Numărul de parametri

OCF- OpCode Command Field, 10 biţi OGF-OpCode Group Field, 6 biţi

Page 166: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

166

Acest adaptor este conform cu specificaţiile v2.0+EDR, şi asigură o distanţă de transmisie de 100m, viteza maximă fiind de 115,2kbps dar şi 230,4kbps cu tact transmis. Alimentarea poate fi realizată cu un alimentator de 5V, prin cupla USB sau de la un semnal serial nefolosit.

Figura 7.18: Adaptorul Bluetooth serial LM058

Modulul poate fi programat cu comenzi AT. Câteva comenzi AT sunt: AT – verificare AT+ENQ – afişează toate setările, cele de Bluetooth şi de RS232 AT+ACON – validează conectarea automată AT+CONN =xxxxxxxxxxxx– stabileşte o conexiune cu dispozitivul a cărui adresă este xxxxxxxxxxxx AT+FIND – caută un dispozitiv Bluetooth timp de un minut AT+NAME – stabileşte un nume pentru un dispozitiv Bluetooth AT+PIN – trimite codul PIN AT+RESET –iniţializează dispozitivul AT+BAUD – stabileşte viteza de comunicaţie prin RS232

Lista completă a comenzilor AT este dată în foile de catalog.

7.4.2.Microcontroller Bluetooth

Un microcontroller complex Bluetooth este Atmel AT76C551 bazat pe un nucleu ARM7. Microcontrollerul prototip este echipat cu interfeţe USB, UART şi PCMCIA şi se foloseşte la punerea la punct a aplicaţiilor. Pentru producţia în serie se fabrică microcontrollere cu una dintre interfeţe. Microcontrollerul poate fi folosit la realizarea adaptoarelor USB Bluetooth pentru calculatoare desktop, adaptoare PCMCIA pentru notebook-uri, adaptoare USB pentru imprimante, adaptoare pentru camere digitale, telefoane mobile, PDA etc.

O schemă bloc simplificată a acestui microcontroller este dată în figura 7.19.

Microcontrollerul are o structură complexă, capsula prototipului fiind LQFP 176. Arhitectura microcontrollerului se bazează pe nucleul ARM7TDMI, toate interfeţele şi memoria SRAM internă de 32k fiind conectate printr-o magistrală internă pe 32 de biţi. Frecvenţa este de 24MHz şi este posibilă oprirea oricărei interfeţe pentru economia de energie. Nucleul ARM este un procesor RISC pe 32 de biţi care poate executa instrucţiuni pe 32 de biţi sau un subset de instrucţiuni compresate pe 16 biţi în modul Thumb®.

Page 167: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

167

Datele de la interfeţele USB şi PCMCIA pot fi stocate în memoria internă dar şi într-o memorie externă organizată în cuvinte de 8 sau 16 biţi, de tip SRAM sau Flash cu capacitate maximă de 512ko la organizare pe 8 biţi şi 1Mo la organizare pe 16 biţi. Memoria externă este accesibilă prin două porturi, unul dedicat nucleului ARM şi unul interfeţelor USB sau PCMCIA. Interfaţa PCMCIA 2.1 este o interfaţă pe 8 biţi cu posibilitatea de acces la memoria internă şi externă şi care conţine regiştri pentru programarea, citirea stării şi schimbul de date cu interfaţa Bluetooth.

Figura 7.19: Schema bloc simplificată a microcontrollerului AT76C551

Interfaţa Bluetooth asigură nivelul de legătură, conţinând un numărător de 28 de biţi care asigură temporizările necesare procesării, un generator de salturi de frecvenţă, un generator de coduri de acces la alte module Bluetooth şi circuite de verificare a corectitudinii transferului. Acestea sunt FEC (Forward Error Correction) în care secvenţa transmisă se repetă de 3 ori sau se generează prin cod Hamming 5 biţi suplimentari la fiecare 10 biţi, HEC (Header Error Check) pentru verificarea informaţiei importante din antet şi CRC (Cyclic Redundancy Generation and Check) pentru informaţia din anumite cadre Bluetooth. Interfaţa mai conţine circuite de criptare/ decriptare, circuite pentru accelerarea procesului de autentificare, un indicator al puterii semnalului RSSI (Receiver Signal Strenght Indicator) realizat cu un

Nucleu ARM7 Regiştri

Bluetooth Controller

2x64k RAM

UART

32k RAM

Voice Codec

2x32k RAM

DAC

ADC

Controller de întreruperi

2xTimer

Controller USB

64k RAM

Interfaţă PCMCIA

Controller de memorie

RAM intern 64k

Memorie externă RAM/FLASH

Page 168: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

168

convertor A/D. Interfaţa Bluetooth conţine şi secvenţiatoarele necesare formării cadrului transmis sau recepţionat pentru a elibera nucleul de aceste operaţii. Secvenţierea este realizată diferit în funcţie de tipul de cadru. Între nucleu şi secvenţiator există două buffere FIFO de 64 de octeţi, unul pentru date recepţionate iar unul pentru date transmise. La recepţia cu succes a unui pachet, interfaţa verifică antetul şi verifică HEC, apoi în funcţie de pachet secvenţiatorul extrage datele pe care le trimite în bufferul de recepţie. Codecul de voce suportă codări PCM şi CVSD (Continous Variable Slope Delta) cu rata de 64kbps.

Interfaţa USB este realizată în principal de nucleul ARM. Partea hardware suplimentară constă din trei părţi: motor serial SIE (Serial Interface Engine) care realizează separarea tactului de date, codarea/decodarea NRZI, generarea şi verificarea CRC, introducerea biţilor suplimentari, conversia serie paralel şi paralel serie. SBC (Serial Bus Controller) asigură 6 endpoint-uri şi asigură gestionarea adreselor şi a bufferelor. SI (System Interface) asigură conectarea SBC la nucleu.

Interfaţa UART este compatibilă 16550 [10]. Interfaţa are buffere de transmisie şi recepţie de 16 octeţi şi viteza poate fi programată între 1200bps şi 921kbps.

Microcontrollerul Bluetooth conţine mecanismul de prelucrare a cadrelor în banda de bază şi pentru a realiza o aplicaţie Bluetooth completă schema trebuie completată cu un transceiver. Un astfel de transceiver este T2901 de la Temic [11], circuit cu 48 de pini, datele fiind transmise la microcontroller serial. Diagrama de semnal pentru protocolul serial de transmisie date este dată în figura 7.20.

Figura 7.20: Protocol serial pe 3 fire

Datele transmise conţin serial şi cuvintele de programare pentru modelele interne programabile ale transceiverului, cum ar fi de exemplu puterea de emisie. Cadrul de programare conţine un cuvânt de 23 de biţi urmat de un bit de adresă 1, apoi un cuvânt de 11 biţi urmat de bitul de adresă 0.

Transceiverul conţine un amplificator de putere la transmisie cu 3dBm la 2,4GHz, un receptor, circuite de modulare şi demodulare, filtre şi un bloc de măsurare a RSSI alimentarea fiind între 2,7 şi 3,3V, cu regulator intern.

Prin urmare se poate vedea că utilizarea unui modul Bluetooth cuplabil pe serială şi programabil cu comenzi AT este simplă, dar proiectarea hardware şi software a unui modul cu microcontroller şi transceiver este mult mai complexă.

ENABLE DATA

CLOCK

MSB

Page 169: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

169

7.5.Zigbee

Transmisia ZigBee este o transmisie wireless mai ieftină decât Bluetooth, asigură un consum mai redus de energie şi dimensiuni mici dar asigură şi un debit mai mic de date. Numele se pare că provine de la zborul în zig zag al albinelor care îşi transmit date referitoare la poziţia sursei de hrană. Acest tip de transmisie se pretează la aplicaţii de tip reţea de senzori (reţele mesh). Prima apariţie a ZigBee a fost în 1998, ca urmare a nevoii de o interfaţă mai ieftină decât Bluetooth pentru aplicaţii cu mulţi senzori în care reţeaua se auto-configurează la intrarea sau ieşirea unor senzori din activitate. Ca aplicaţii se pot menţiona sisteme de senzori în domeniul casnic (incendiu, fum etc.), industrial, medical pentru urmărirea datelor provenite de la un pacient, în telecomunicaţii etc. Banda alocată este 2,4GHz, dar şi alte 2 benzi folosite în diferite ţări. Modulaţia este în cuadratură, QPSK.şi asigură 250kbps la o distanţă uzual până la 70m. Intervalul de bandă folosit este între 2,405GHz şi 2,480GHz, împărţit în canale de 5MHz. Modulele ZigBee pot lucra în modul punct la punct sau punct la multipunct şi o reţea de astfel de dispozitive necesită un dispozitiv cu funcţia de coordonator. Reţeaua mesh permite conexiuni radio de date între dispozitive mai îndepărtate decât raza de acţiune radio prin interpunerea unor noduri ZigBee intermediare iar defectarea unui nod poate fi transparentă prin preluarea sarcinilor de alt nod. Zigbee a fost standardizat de IEEE cu numele IEEE 802.15.4.

7.5.1.Module şi interfeţe ZigBee

Cea mai simplă soluţie este utilizarea unui modul ZigBee, aşa cum este de exemplu [12], la care există sisteme de dezvoltare şi software. Un modul XBee, interoperabil în reţele ZigBee este dat în figura 7.21.

Figura 7.21: Modul XBee

XBee asigură o rată de transfer de 250kbps la distanţe de maximum 100m în spaţii închise şi 1,6km în spaţii fără obstacole, iar datele sunt furnizate printr-o interfaţă serială care admite şi comenzi AT, viteze posibile fiind între 1200bps şi 1Mbps. Comunicarea radio poate fi criptată (AES) iar corectitudinea transmisiei este asigurată de un mecanism de confirmare (ACK) şi

Page 170: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

170

reîncercare. Puterea de emisie este de maximum 50mW (17dBm) la 2,4GHz. Pentru legătura cu senzorii modulul are 10 pini de I/O şi un canal de conversie A/D pe 10 biţi. Tensiunea de alimentare poate fi între 2,1V şi 3,3V, curentul maxim (în cazul transmisiei) fiind de 295mA. Există şi variante de module cu consum mic şi rază de transmisie mai mică.

Aceste module pot realiza o reţea mesh şi astfel se pot implementa reţele cu proprietăţi de descoperire a noilor dispozitive, eliminarea dispozitivelor defecte etc. Astfel modelul XBee-PRO asigură doar o comunicaţie punct la punct iar XBee Znet poate fi interconectat într-o reţea mesh.

Un transceiver ZigBee care se poate conecta cu uşurinţă la un microcontroller este transceiverul MRF24J40 de la Microchip, compatibil cu speciţicaţiile IEEE.15.4. Pe lângă protocolul ZigBee transceiverul poate implementa şi MiWi sau protocoale proprietare. Pentru conectarea cu microcontrollerul se foloseşte o interfaţă SPI cu 4 fire. Structura şi performanţele circuitului sunt asemănătoare cu ale unui transceiver Bluetooth. Circuitul are integrate două generatoare de tact, unul de 20MHz care poate fi folosit şi ca tact pentru microcontroller şi unul de 32,768kHz. Curentul absorbit este mai mic de 22mA la emisie şi 18mA la recepţie, fiind tipic de 2µA în modul adormit. Capsula este mică, 40 de pini QFN. Schema bloc simplificată a circuitului este dată în figura 7.22.

Figura 7.22: Schema bloc simplificată a transceiverul MRF24J40

Schema bloc prezintă funcţionalitatea logică fără să prezinte amănunte referitoare la funcţionarea radio, asemănătoare cu cea a unui circuit Bluetooth.

Memoria SRAM internă a circuitului este formată din bufferele de transmisie şi recepţie TxFIFO şi RxFIFO, bufferul de securitate şi registrele de control LCR (Long Control Register) şi SCR ( Short Control Register). Registrele de control se pot scrie şi citi direct prin interfaţa SPI şi sunt folosite pentru configurarea, controlul şi citirea stării circuitului. Adresele LCR sunt pe 10 biţi iar adresele SCR sunt pe 6 biţi. Modulul de securitate realizează criptarea

Interfaţa SPI Reset Întreruperi

TxFIFO RxFIFO LCR SCR

MAC Formare pachete

RF Modul securitate

GPIO

Page 171: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

171

datelor la transmisie, decriptarea la recepţie şi criptarea datelor în memoria RAM. Un bloc de I/O oferă 6 linii de I/O de uz general.

Interfaţa SPI este folosită pentru citirea /scrierea datelor precum şi pentru citirea / scrierea adreselor SCR şi LCR, figura 7.23.

Figura 7.23: Scrierea pe SPI a unei adrese SCR

Spaţiul de adresare pentru registrele SCR este accesat prin trimiterea unui 0 ca prim bit, după care urmează adresa registrului urmată de un bit de 1 şi datele de scris. La fel se face şi citirea unui registru SCR, după adresa trimisă pe SDI se trimite un bit de 0, apoi pe SDO se pot citi cei 8 biţi ai registrului. La scrierea / citirea LCR adresa de 10 biţi este încadrată de un bit de 1 la început şi un bit de 0 la sfârşit la citire, respectiv 1 la scriere. Bufferele de date sunt mapate în memorie şi pot fi citite / scrise ca şi registrele LCR.

Pachetele ZigBee sunt formate în blocul circuitului dedicat acestui scop şi au lungimea între 5 şi 127 de octeţi, figura 7.24. Pachetul începe cu un preambul de 4 octeţi urmat de un octet început de cadru (Start of Frame SFD). Această informaţie este inserată automat de MRF24J40 la transmisie şi eliminată la recepţie, uşurând astfel sarcina microcontrollerului. Urmează apoi un octet care reprezintă lungimea pachetului, fără să fie socotit preambulul, SFD şi el însuşi.

Câmpul control cadru descrie tipul cadrului, far (semnalizare), ACK, de date etc., dacă este criptat sau nu, dacă solicită un cadru de confirmare ACK sau nu, specifică formatul adreselor sursă şi destinaţie, informaţia fiind folosită de microcontrollerul gazdă. Câmpul număr secvenţă este utilizat în procesul de confirmare ACK. Un pachet ACK nu conţine adrese aşa că doar din acest câmp se poate determina dacă pachetul a ajuns la destinaţie.

Câmpul de adrese poate să lipsească, poate fi o adresă scurtă sau lungă, aşa cum este specificat în câmpul Control Cadru. La sosirea unui pachet circuitul rejectează cadrele care nu îi sunt adresate, fără nicio intervenţie din partea microcontrollerului gazdă. Adresa lungă constă din trei octeţi numiţi EUI (Extended Organizationally Unique Identifier, distribuit de IEEE 802.15.4). Adresa sursei este automat introdusă în cadru iar adresa destinaţiei trebuie introdusă de microcontrollerul gazdă.

0 A5 A4 A3 A2 A1 A0 1 D7 D6 D5 D4 D3 D2 D1 D0

/CS SCK SDI

Page 172: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

172

Tip câmp Lungime (octeţi) Preambul 4 Început cadru 1 Lungime cadru 1 Control cadru 2 Număr secvenţă 1 Adresa destinaţiei 0, 4, 10 Adresa sursei 0, 2, 4, 8, 10 Date 0-122 CRC 2

Figura 7.24: Cadrul ZigBee

Câmpul de date poate fi între 0 octeţi şi 122 octeţi. Dacă lungimea cadrului depăşeşte 127 octeţi, cadrul va fi rejectat. Câmpul CRC numit FCS (Frame Check Sequence) are 2 octeţi şi este verificat la recepţia unui cadru. MRF24J40 poate abandona cadrul la care CRC nu este corect sau îl poate transmite microcontrollerului în funcţie de o setare la recepţie. La transmisie MRF24J40 adaugă automat CRC.

Modulul MAC din MRF24J40 se ocupă cu transmisia şi recepţia cadrelor. La transmisie adaugă automat preambulul şi începutul de cadru şi eventual CRC dacă este programat. Microcontrollerul trebuie să scrie în bufferul TxFIFO restul de câmpuri din cadru. Înainte de transmisie MRF24J40 trebuie iniţializat. Modulul MAC asigură controlul bufferelor TxFIFO, asigură alinierea în timp a informaţiei transmise (conform CSMA-CA, Carrier Sense Multiple Access With Collision Avoidance). Sunt implementate patru buffere TxFIFO pentru stocarea cadrelor de semnalizare (Beacon), normale sau GTS (Guaranteed Time Slot). MAC asigură asamblarea supercadrelor. Supercadrul este o structură opţională, figura 7.25.

Figura 7.25: Structura unui supercadru

Coordonatorul emite un cadru de semnalizare prin care stabileşte structura cadrelor şi forţează nodurile care au date de trimis să le trimită în perioada rezervată după cadrul de semnalizare.

Intră în calculul lungimii cadrului

Intră în calculul CRC

Cadre de semnalizare

Spaţiu rezervat pentru cadrul de semnalizare

Cadre cu acces la orice nod prin CSMA-CA GTS2 GTS1

Page 173: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

173

Urmează apoi o perioadă rezervată accesului liber al nodurilor prin CSMA-CA, dacă nu este în curs o altă transmisie. Partea a doua a supercadrului este alocată transmisiilor de date care au nevoie de o bandă garantată, GTS. Alocarea unui slot de timp transferurilor care au nevoie este un concept întâlnit şi la USB şi la IEEE 1394. La recepţia cadrelor fiecare cadru este verificat conform cu filtrul de acceptanţă definit. Dacă cadrul este adresat circuitului respectiv, dacă tipul cadrului este corect, eventual dacă CRC este corect (dacă circuitul este programat în acest sens) cadrul este stocat în RxFIFO şi microcontrollerul gazdă este anunţat printr-o întrerupere.

Cadrul rămâne în RxFIFO până gazda îl citeşte. Se poate defini un mod de citire numit mod de eroare în care se citesc toate cadrele cu preambul şi delimitatori corecţi, chiar dacă nu au trecut celelalte condiţii de acceptanţă. MAC adaugă în RxFIFO doi octeţi, unul LQI (Link Quality Index) şi RSSI (Receive Signal Strenght Indicator) pentru a putea fi citiţi de gazdă.

7.5.2.Microcontroller ZigBee

O soluţie ZigBee pe un singur chip de la ST este microcontrollerul SN250 [13], un circuit mic, cu 48 de pini. Microcontrollerul include o unitate centrală XAP2b pe 16 biţi şi un transceiver IEEE 802.15.4, figura 7.26.

Transceiverul conţine blocul de recepţie cu filtre concepute pentru a evita interferenţele cu WLAN şi Bluetooth şi blocul de emisie cu puterea de 3dBm. Memoria integrată este de 128kocteţi Flash şi 5kocteţi SRAM. Două controllere seriale asigură standardele de interfaţă I2C, UART şi SPI. Ca circuite de timp sunt integrate două timere de 16 biţi şi un watchdog. Un convertor ADC sigma delta de 12 biţi asigură achiziţia de semnale analogice şi 17 linii de I/O de uz general cu semnificaţii duble asigură interfaţa cu procesele digitale. Circuitul poate lucra în moduri cu economie de energie, în mod Sleep consumând 1µA cu tact generat intern cu un circuit RC. Este posibilă şi conectarea unui tact extern de 32,768kHz pentru moduri Sleep care necesită acurateţe temporală. Microcontrollerul este livrat cu software numit ZNet pentru implementarea stivei ZigBee.

Microcontrollerul este împărţit în două domenii de alimentare, unul alimentat tot timpul care conţine blocul GPIO, un canal serial, watch dog-ul şi alte câteva blocuri esenţiale pentru controlul funcţionării şi un domeniu care poate avea alimentarea întreruptă pentru economia de energie.

Microcontrollerul poate fi utilizat în două moduri de acces. Primul, mod sistem asigură accesul la toate resursele interne- MAC, RF, Power Management, Watch dog, PTI (Packet Trace Interface). Pentru a proteja software-ul ZNet de eventuale erori, în al doilea mod numit mod aplicaţie designer-ul de aplicaţii nu are acces la toate resursele.

Page 174: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

174

Figura 7.26: Schema bloc a microcontrollerului ZigBee SN250

Calea de recepţie conţine un receptor superheterodină diferenţial, semnalul de RF fiind transformat în semnal de 4MHz într-un mixer. Semnalul din mixer este convertit în semnal digital cu un ADC de 12Msps. Semnalul digital este demodulat şi sincronizat prin preambulul ZigBee. Blocurile analogice ale receptorul sunt calibrate de către ZNet, inclusiv datorită variaţiei cu temperatura şi tensiunea de alimentare. Receptorul calculează RSSI (Receive Signal Strenght Indicator) într-o perioadă de 8 simboluri şi la sfârşitul cadrului. Transmiţătorul are o structură diferenţială ca şi receptorul, realizează modularea semnalului, conversia DAC şi poate fi calibrat. Dacă o aplicaţie necesită putere mai mare de emisie, SN250 are un semnal TX_ACTIVE care poate fi folosit pentru validarea unui amplificator de putere extern.

Modulul MAC lucrează DMA cu memoria RAM pentru a minimiza intervenţia unităţii centrale. Când un cadru este gata de transmisie software-ul indică modulului MAC locaţia din RAM, modulul MAC aşteaptă eliberarea canalului de comunicaţie, calculează CRC-ul şi îl adaugă la cadru şi transmite cadrul către transmiţător. În majoritatea timpului modulul MAC este în modul recepţie, verificând cadrele recepţionate şi filtrând informaţia. Modulul MAC verifică lungimea cadrului eliminând cadrele prea lungi, citeşte tipul cadrului şi calculează CRC. Dacă cadrul este destinat circuitului el este salvat prin DMA în memoria RAM. La sfârşitul cadrului este adăugată informaţii statistice despre cadrul recepţionat. Sarcinile MAC sunt:

• Generarea CRC, verificare şi adăugare; • Stabilirea perioadelor de timp pentru cadru;

SRAM FLASH

Unitate centrală XAP2b

Encriptare Controller întreruperi

MAC IEEE 802.15.4

Emiţător

Receptor RF

GPIO 0-16

Canal serial 2

CLK MISO MOSI LOAD Watch

dog

Alimentate permanent

ADC

Timer

UART

Oscilator RC intern

Packet Trace Interface

Page 175: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

175

• Adăugare automată preambul şi început de cadru; • Recunoaştere adresă şi filtrare cadre la recepţie; • Transmitere automată de confirmare; • Gestionarea transferului de date prin DMA cu memoria RAM; • Ataşarea informaţiei la cadrele recepţionate: LQI, RSSI, amplificare, stare pachet etc.;

Un modul special PTI (Packet Trace Interface) poate fi folosit la diagnosticarea reţelei. Acest modul monitorizează toate cadrele Tx şi Rx printr-o interfaţă asincronă de 500kbps unidirecţională, doar de citire a cadrelor.

Unitatea centrală XAP2b a fost dezvoltată de Cambridge Consultants şi are o arhitectură Harvard pe 16 biţi, atât pentru date cât şi pentru instrucţiuni. Adresarea este pe 15 biţi pentru date, deci un spaţiu adresabil de 32k şi de 16 biţi pentru instrucţiuni, deci 64k. Unitatea centrală are un sistem de protecţie care permite programului ZNet să aibă acces la toate resursele în mod sistem, iar programul utilizator care rulează în mod aplicaţie are anumite restricţii. Scrierea unor regiştri sau zone de memorie protejate în mod aplicaţie va determina o eroare în etapa de punere la punct a programului în mediul de dezvoltare.

Memoria Flash de 128k integrată este împărţită în 8 părţi de 16k şi este accesibilă o parte în zona de date şi una în zona program. O zonă numită EEPROM simulat este accesibilă în modul aplicaţie. O zonă de 1024 octeţi este rezervată datelor de identificare ale circuitului, inclusiv date de calibrare. Accesul la memoria RAM şi EEPROM este permis la citire şi scriere în mod sistem, iar în mod aplicaţie este permis la citire în toată memoria şi la scriere doar în anumite zone, dedicate aplicaţiei. În memorie este implementat şi acceleratorul de encriptare AES (Advanced Encryption Standard).

În modul aplicaţie este posibil accesul la modulele GPIO, controllerele seriale, timere şi ADC. Liniile de I/O sunt comandate de câte doi regiştri de citire date, scriere date, direcţie, validare rezistoare de pull up şi validare rezistoare de pull down. Prin intermediul pinilor cu semnificaţii duble din GPIO pot fi accesate unele module interne. Un registru de control configurează semnificaţia acestor pini.

Controllerul serial UART realizează transmisia asincronă UART şi sincronă SPI sau I2C dar nu simultan. Schema bloc modulului este dată în figura 7.27.

Figura 7.27: Schema bloc a controllerului serial UART

UART

SPI

I2C

Canal DMA

Unitate centrală

Întreruperi

TxD, RxD, RTS, CTS MISO, MOSI, CLK SCL, SDA

Page 176: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

176

Transferul datelor are loc prin DMA, datele fiind stocate în buffere de 4 octeţi. Al doilea canal serial are o schemă bloc asemănătoare, lipseşte însă interfaţa UART.

Convertorul ADC este un convertor sigma delta cu frecvenţa de eşantionare programabilă, maximum 1MHz, figura 7.28. Timpul de eşantionare poate fi ales între 32µs şi 4096µs în registrul de configurare al ADC. Sursele de semnal analogic pot fi 4 intrări ADC ADC0-ADC3 unipolare sau diferenţiale ADC0-ADC1 şi ADC2-ADC3, iar pentru test se pot alege ca surse tensiunea de alimentare la intrare (2,1V-3,6V, se poate astfel monitoriza starea bateriei de alimentare), sursa de alimentare pentru nucleu (1,8V) sau Vref. Tensiunea Vref este realizată din tensiunea de alimentare, este de 1,2V şi se poate folosi pentru calibrarea convertorului. După validarea funcţionării convertorului cu un bit în registrul de configurare convertorul va realiza conversii continuu, după fiecare conversie activând un semnal de întrerupere. Bitul de întrerupere trebuie şters pentru ca terminarea unei noi conversii să îl poată seta din nou.

Figura 7.28: Schema bloc a convertorului sigma delta

SN250 conţine două timere pe 16 biţi cu următoarele caracteristici: • Tact configurabil, tact principal 12MHz, 32,768kHz, tact RC 1kHz, sau de la o sursă

externă, toate aceste tacte având posibilitatea de divizare; • Regiştri de numărare pot fi încărcaţi; • Fiecare timer are asociaţi 2 regiştri de comparare la ieşire şi 2 de captură la intrare; • Timerele pot fi configurate pentru a genera semnale PWM; • Funcţionarea poate fi cu o singură numărare sau continuă.

În modul numărare timerul admite numărare înainte, înapoi şi alternantă (înainte, înapoi, înainte). La numărarea înainte numărarea continuă până la atingerea unei valori stocate într-un registru, iar cea înapoi până la zero. În modul de comparare, se introduc 2 regiştri suplimentari CMP A şi CMP B de comparare. În modul captură la intrare există 2 regiştri care reţin valoarea numărată la apariţia unui semnal de declanşare din exterior.

În figura 7.29 se dau ca exemplu formele de undă pentru modul de comparare la ieşire.

SN250

ConvertorΣ∆

Unitate centrală

Întreruperi

ADC0 ADC1 ADC2 ADC3

Generare Vref

Vdd

Page 177: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

177

Figura 7.29: Funcţionarea timerului în mod comparare la ieşire

Contorul se incrementează între 0 şi valoarea stocată în registrul de valoare maximă, apoi numărarea este reluată. Se cer întreruperi la atingerea valorii de zero, a valorii din registrul CMP A, CMP B şi registrul de valoare maximă. Mai multe amănunte despre timere sunt date în [14].

Figura 7.30: SN250, schema electrică de aplicaţie tipică

Validare timer

Valoare contor

INT zero

INT A

INT B

INT maxim

Interfaţă de programare şi testare

Page 178: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

178

O interfaţă special concepută de Cambridge Consultants este interfaţa SIF, serială sincronă destinată diagnosticului şi programării circuitului SN250. Prin această interfaţă se pot citi şi scrie regiştri din memorie în timp real, fără a afecta funcţionalitatea circuitului. Această interfaţă se foloseşte la testarea în stadiul de producţie a circuitului şi în stadiul de producţie a plachetei echipate, precum şi pentru dezvoltarea de programe. Interfaţa este de tip SPI cu un semnal suplimentar de LOAD care trezeşte circuitul din modul de lucru cu economie de energie.

O schemă electrică a unei aplicaţii tipice este dată în figura 7.30. Un Balun (Balanced Unbalanced) adaptează impedanţele între SN250 şi antenă pentru Tx şi Rx. Un cristal de 24MHz asigură tactul de bază pentru circuit iar cristalul de 32,768kHz (opţional) asigură tactul pentru modul de lucru cu economie de energie.

7.6. RFID

Identificare prin frecvenţă radio (Radio-Frequency Identification sau RFID) este o metodă de identificare automată care se bazează pe stocarea şi regăsirea datelor la distanţă, folosind dispozitive numite etichete RFID ( tag RFID) şi transmiţătoare RFID. Tehnologia necesită o cooperare a unui aparat cititor de RFID cu eticheta RFID. O etichetă RFID este un obiect mic sau foarte mic (sub 1 mm x 1 mm) care poate fi aplicat sau încorporat într-un produs, animal, sau chiar persoană, cu scopul de identificare şi urmărire, folosind undele radio. Unele etichete pot fi citite de la mulţi metri depărtare, chiar mult peste 50 m, iar eticheta se poate afla şi în afara razei de vedere a cititorului.

O istorie a RFID scrisă de unul dintre cei care au dezvoltat această tehnologie este [15]. H. Stockman a scris în 1948 prima lucrare care prevede posibilitatea RFID “Communication by Means of Reflected Power”. În 1960 R. F. Harrington studiază teoretic RFID dar primul patent a fost acordat lui H.W. Cardullo în 1973 pentru o etichetă RFID cu memorie [16]. În 1970 guvernul SUA a început cercetările la Los Alamos pentru un sistem de urmărire a materialelor nucleare, avându-l ca membru pe J. Landt. Preluarea ideii de RFID în comerţul retail a constat în eticheta de un bit- articol plătit sau nu, în 1960. După Los Alamos cercetătorii au fondat propria companie pentru dezvoltarea de aplicaţii comerciale. Primele etichete au fost realizate cu funcţionare la 125kHz, dar frecvenţa a crescut ulterior pentru a extinde raza de acţiune. În 1999 a fost fondat la MIT Auto-ID Center de câteva companii importante pentru a realiza tag-uri ieftine care se pot ataşa pe orice produs. La Auto-ID Center s-au alipit peste 100 de companii până în 2003 şi au dezvoltat EPC (Electronic Product Code) şi o arhitectură de reţea cu acces Internet pentru gestionarea datelor.

Cele mai multe etichete (tag-uri) RFID conţin cel puţin două părţi, figura 7.31. • un circuit integrat pentru stocarea şi prelucrarea de informaţii, modulare şi

demodulare a unui semnal de radio-frecvenţă (RF), şi alte funcţii de specialitate (transponder RFID);

• o antenă pentru recepţionarea şi transmiterea de semnale radio.

Page 179: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

179

Figura 7.31: Eticheta RFID

Astăzi tehnologia RFID este deja folosită în domenii foarte numeroase. De exemplu în lanţul de aprovizionare al întreprinderilor, pentru a îmbunătăţi eficienţa inventarelor, pentru urmărirea produselor în cursul fabricaţiei şi pentru managementul produselor. Alte exemple care sunt rezolvate automat cu ajutorul RFID:

• măsurarea timpului de la cursele atletice; • controlul paşapoartelor; • aplicarea taxelor rutiere pe anumite autostrăzi etc.; • urmărirea produselor (vacile unei cirezi, cărţile unei biblioteci, transcontainerele unui

vapor); • urmărirea locomotivelor şi vagoanelor la căile ferate; • autentificarea persoanelor care doresc să intre în zone speciale; • paza şi inventarierea în muzee.

Din cauza miniaturizării permanente a tag-urilor, ajunsă până acolo încât ele sunt din ce în ce mai greu de văzut şi recunoscut, a apărut şi o problematică gravă - cea a potenţialului pentru spionaj aproape invizibil, în cele mai diverse domenii.

În figura 7.32 se observă cititorul (stânga) care generează un câmp electromagnetic pentru alimentarea transponderului din eticheta RFID. Aceeaşi bobină este folosită ca antenă pentru transferul de date.

Figura 7.32: Structura sistemului RFID

Energie

Date

Cititor RFID

Transponder Controller

Memorie

Page 180: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

180

Etichetele pot fi pasive (ca în figura 7.32, cazul cel mai frecvent), ele folosesc energia furnizată de cititor, fiind astfel mai mici, mai ieftine şi având o viaţă mai lungă. Pentru extinderea razei de funcţionare etichetele pot fi active, având o sursă de alimentare proprie.

Frecvenţa de lucru poate fi 125kHz care asigură un preţ scăzut dar o rată mică de transfer şi o etichetă de dimensiuni mai mari. O altă frecvenţă este de 13,56MHz care elimină dezavantajele de la 125kHz dar costurile sunt mai mari. Alte frecvenţe utilizate în prezent sunt cea de 869MHz – 950MHz (funcţie de zona geografică) şi 2,4GHz, banda ISM în care se aglomerează aproape toate tipurile de comunicaţii de rază scurtă. O aplicaţie RFID la frecvenţa de 125kHz cu etichetă activă a fost descrisă în capitolul de aplicaţii auto la monitorizarea presiunii în pneuri.

Din punctul de vedere al iniţierii transferului există două situaţii, când eticheta iniţiază transferul când intră în zona de acţiune a cititorului (TTF, Tag Talks First) cu dezavantajul că intrarea simultană a mai multe etichete duce la apariţia unor întârzieri şi a doua situaţie când cititorul interoghează continuu zona de acţiune şi identifică eticheta care intră în zonă (RTF, Reader Talks First).

7.6.1.Sistem RFID- cea mai simplă implementare

Cel mai simplu mod de implementare este de a achiziţiona o interfaţă specializată de citire /scriere a etichetelor, cum este cea de la Netronix, H1M-005 [17]. Interfaţa lucrează la frecvenţa de 125kHz, poate fi alimentată între 4,1V şi 5,5V, asigură un debit de 4kbps la maximum 20cm. Legătura cu un calculator gazdă sau microcontroller se face prin RS232 la viteza de 9600Bd. Conectarea este simplă, ca în figura 7.33.

Figura 7.33: Conectarea modulului Netronix H1M-005

Formatul comenzii către etichetă şi al răspunsului primit sunt date în Tabelul 1 respectiv Tabelul 2:

Tabelul 1 Adresa modulului

Lungime cadru

Comandă Parametri (1..n)

CRC

1 octet 1 octet 1 octet n octeţi 2 octeţi

Antena 1 Rx Antena 2 Tx GND GND 5V port 2 port 1

RS232

CALCULATOR SAU MC GAZDĂ

Page 181: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

181

Tabelul 2 Adresa modulului

Lungime cadru

Răspuns Parametri (1..n)

Confirmare operaţie

CRC

1 octet 1 octet 1 octet n octeţi 1 octet 2 octeţi

Fiecare etichetă are o adresă, dacă adresa pusă de cititor este 00H nu va răspunde nici un modul, dacă este FFH vor răspunde toate modulele aflate în raza de acţiune. Parametri există sau nu în funcţie de tipul comenzii. Confirmarea operaţiei specifică în răspuns corectitudinea execuţiei.

Transponderul HITAG1 din etichetă este văzut de cititor ca o memorie organizată în 16 blocuri, fiecare bloc are 4 pagini, fiecare pagină are 4 octeţi, deci un total de 256 octeţi în 64 de pagini. Blocurile 0 şi 1 sunt rezervate pentru configurare. Unele blocuri sunt publice, iar altele sunt protejate la citire.

Pentru exemplificare se descriu câteva comenzi şi răspunsuri care pot fi trimise de calculatorul gazdă spre HIM-005 prin interfaţa serială în formatul din Tabelul 1 respectiv Tabelul 2:

• Scriere în etichetă - codul instrucţiunii este A0H, parametri sunt 4 octeţi de scris şi adresa paginii (sunt 64 de pagini, adresa este între 00H şi 3FH). Codul răspunsului este A1H, ca parametri este dată adresa etichetei şi confirmarea operaţiei care este FFH dacă s-a scris cu succes;

• Citirea din etichetă - codul instrucţiunii este A2H, parametru este adresa paginii. Codul răspunsului este A3H, ca parametri este dată adresa etichetei, cei 4 octeţi de date citiţi şi confirmarea operaţiei care este FFH dacă s-a citit cu succes;

• Comanda de cuplare / decuplare a câmpului electromagnetic generat de antenă - codul comenzii este 10H /12H, fără parametri, răspunsul are codul 11H /13H şi confirmarea operaţiei întotdeauna FFH;

• Scrierea / citirea unui bit din liniile de I/O locale ale HIM-005- codul comenzii este E0H / E2H, parametru este numărul portului şi bitul de scris, codul răspunsului este E1H / E3H, parametru bitul citit şi confirmarea operaţiei întotdeauna FFH;

• Setarea amplificării receptorului - codul comenzii este F0H, parametru este amplificarea (0,1,2 sau 3), codul răspunsului este F1H şi confirmarea operaţiei întotdeauna FFH.

În figura 7.34 este arătat un model experimental de sistem RFID cu Netronix HIM-005 realizat ca şi proiect de licenţă. În stânga este modulul electronic cu HIM-005 şi un microcontroller ca şi sistem gazdă, cu antena cuplată şi o etichetă HITAG1 în partea de jos a fotografiei. În dreapta este o captură de ecran a softului pus la dispoziţie de Netronix pentru citirea / scrierea etichetei.

Page 182: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

182

Figura 7.34: Model experimental de sistem RFID cu Netronix HIM-005

7.6.2.Eticheta RFID

O etichetă RFID la frecvenţa de 125kHz poate fi implementată cu transponderul Atmel U3280M. Acest transponder conţine în principal o memorie EEPROM de 256 biţi organizată în 32x16 biţi, o interfaţă serială pe 2 fire pentru comunicaţia cu un microcontroller gazdă cu un debit de maximum 10kBd, un modul de codificare / decodificare a datelor în cod bifazic sau Manchester, permite modularea datelor în amplitudine şi gestionarea alimentării din câmpul electromagnetic sau de la baterie. Utilizări posibile sunt la sisteme de acces, senzori de poziţie wireless, etc. Schema bloc a unei etichete cu U320M este dată în figura 7.35.

Figura 7.35: Schema bloc a unei etichete cu U320M

Energie

Date

Transponder U320M

MC gazdă Vdd SDA SCL

Senzori, elemente de

execuţie

EEPROM 512 bit Interfaţă serială Modulatorbifazic

Emisie / Recepţie Redresor

Detecţie câmp

Extragere tact

FC NGAP MOD

Gestionare energie

Page 183: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

183

Circuitul de intrare preia energia şi semnalul din câmpul electromagnetic prin circuitul oscilant LC şi îl redresează. Circuitul de gestionare a energiei comută alimentarea pe o baterie externă (opţional) sau pe energia câmpului, dacă acesta există. Tensiunea de alimentare este scoasă la un pin astfel încât să poată fi alimentat şi microcontrollerul gazdă. Un condensator asigură existenţa tensiunii pe perioada în care câmpul este folosit pentru comunicare. Pentru comunicare se poate modula intensitatea câmpului (cu pinul MOD) iar un circuit de intrare detectează lipsa câmpului (gap) şi generează semnalul NGAP. Un circuit extrage tactul din câmp şi formează semnalul FC, figura 7.36. Pentru ca microcontrollerul să fie trezit la apariţia câmpului semnalul NGAP trebuie conectat la o cerere de întrerupere.

Figura 7.36: Diagrame de timp pentru circuitul de antenă

Interfaţa de comunicaţie este o interfaţă serială pe 2 fire (I2C) care trebuie controlată de un master şi prin care se pot scrie sau citi date din EEPROM. Prin interfaţa serială se pot controla modulatorul sau blocul care gestionează energia. Cele 2 linii care compun interfaţa serială sunt SCL (tact) şi SDA (date).

Formatul secvenţei de date la transfer este următoarea:

Figura 7.37: Structura secvenţei de transfer prin interfaţa serială

MOD Tensiunea pe antenă NGAP FC

Alimentare din câmp

Front folosit pentru wake-up

START Octet control ACK Octet date ACK Octet date ACK

START 5 biţi adresa EEPROM 2 biţi control R/W ACK

Page 184: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

184

Condiţia de START este un front descrescător al SDA când SCL este 1 logic iar STOP un front descrescător când SCL este 1 logic. Biţii de date apar când SCL este 0 logic. Pentru confirmarea ACK master-ul inserează un tact SCL în plus şi slave-ul pune linia în 0 dacă transmisia a fost corectă şi în 1 dacă nu a fost corectă.

Octetul de control conţine adresa de rând a memoriei EEPROM organizată în 32x16 cuvinte. Bitul R/W arată dacă este vorba de o citire sau scriere. În urma acestei comenzi un buffer de date de 16 biţi se umple cu informaţia citită din EEPROM sau transmisă prin serială pentru a fi scrisă în EEPROM. Cei doi biţi de control permit definirea octetului care se citeşte / scrie primul, cel mai semnificativ sau cel mai puţin semnificativ. Se poate defini şi un mod de citire cu incrementarea automată a adresei.

Cu o combinaţie a biţilor de control se poate programa cu octetul de control modularea- bifazică sau Mancheste şi modul de lucru cu comutarea automată de la alimentarea de la baterie la cea din câmpul elctromagnetic. După alegerea modulării se pot trimite/ recepţiona date de la modulator prin interfaţa serială, figura 7.38.

Figura 7.38: Structura secvenţei de transfer cu modulatorul 7.7.Concluzii

1. Concepţia, proiectare şi realizarea practică a unei comunicaţii wireless este mai simplă decât pare, aceasta datorită circuitelor de interfaţare specializate. Utilizarea circuitelor specializate micşorează timpul de realizare a unei aplicaţii – Time to market.

2. Concepţia unui sistem electronic de comunicaţii începe cu un studiu pe net în ceea ce priveşte existenţa circuitelor specializate (pe paginile constructorilor de circuite- ATMEL, TI, Microchip etc.) apoi disponibilitatea comercială (pe paginile furnizorilor din România- Vitacom, ECAS, Adelaida, Farnell etc.);

3. Interfaţarea unui circuit specializat cu un microcontroller se reduce de cele mai multe ori la conectarea printr-o interfaţă standard serială sau paralelă, de aceea este importantă studierea detaliată a acestor interfeţe.

În [10] sunt date amănunte folositoare pentru înţelegerea acestui capitol şi completări utile, de exemplu explicaţii privind comenzile AT, descrierea protocolului serial RS232 şi compatibilitatea 16550 etc.

Un tabel comparativ al standardelor parcurse în acest capitol cu avantaje şi dezavantaje este dat în tabelul următor:

START Octet control ACK Bit 1 Bit 2 Bit 3 ... Bit n STOP

Page 185: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

185

ZigBee GPRS 802.11 Bluetooth Protocoale proprietare

Aplicaţii Monitorizare şi control

Reţele internaţionale de date şi voce

Internet Conectivitate între dispozitive

Conectivitate între dispozitive

Durata bateriei

Ani Săptămâni Săptămâni Săptămâni Luni

Viteza 250kps 2Mbps 54Mbps (300Mbps la n)

720kbps 115kbps

Raza 100m Km 100m 100m 200m

Avantaje Putere şi cost mic

Rază mare de acţiune

Viteza Comoditate Preţ şi consum mic, simplitate

Reţea Posibilă Acces Internet Posibilă Posibilă Greu de implementat

Prin analiza acestui tabel se pot deduce variantele optime de transmisie radio pentru fiecare aplicaţie. După alegerea principiului de transmisie se trece la alegerea variantei constructive. În acest capitol sunt prezentate de regulă câte trei variante constructive. Prima, cea mai simplă, care optimizează timpul de realizare a unei aplicaţii este folosirea unui modul specializat. A doua, un compromis între timpul necesar dezvoltării şi costului este folosirea unui circuit de interfaţă conectat la microcontrollerul aplicaţiei. A treia, care asigură costul cel mai redus al aplicaţiei este utilizarea unui microcontroller care conţine integrată interfaţa de comunicaţii aleasă. Totuşi, în această variantă mai trebuie adăugat de regulă un circuit transceiver (partea de RF).

Bibliografie

[1] http://www.coolcircuit.com/project/rf_remote/ [2] http://www.hoperf.com/ [3] Ogruţan P., Gerigan C., Banciu N., Memorii, interfeţe şi periferice. Interfeţe

specializate, Ed. Transilvania Braşov, 2003, 190 pagini, ISBN 973-635-118-1 [4] http://www.telit.com/en/ [5] www.semiconductorstore.com/pdf/newsite/Telit/GM862-GPS/GM862-

GPS_Software_User_Guide_r4.pdf [6] Gerigan C., Ogruţan P., Pană Gh., Connecting More Measurement Devices to the

Serial Assynchronous Interface, Proceedings of the 8th International Conference on Optimisation of Electric and Electronic Equipment, Braşov, May16-17 2002, ISBN 973-635-012-6,Vol III ISBN 973-635-015-0, pp 711-716

Page 186: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

186

[7] http://en.wikipedia.org/wiki/Bluetooth [8] www.adelaida.ro [9] www.farnell.ro [10] Gerigan C., Ogruţan P., Tehnici de interfaţare, Ed. Transilvania Braşov, 2000, 315p.,

ISBN 973-9474-94-2 [11] www.temic.com [12] http://www.digi.com/ [13] www.st.com [14] Ogrutan P., Microcontrollere si controllere grafice Fujitsu, Ed. Universitatii

Transilvania Brasov, 2006, 182 pag, ISBN 973-635-621-3 [15] Landt J., The history of RFID,

http://www.transcore.com/pdf/AIM%20shrouds_of_time.pdf [16] http://www.rfidjournal.com/article/view/1338/1/129 [17] www.netronix.pl [18] Ogrutan P., Romanca M., Kertesz C.Z., A Multisensor GPRS-Based Security System

for Intelligent Building, Acta Technica Napocensis, Electronics and Telecommunications, vol.48, Nr. 3, 2007, ISSN 1221-6542, pp. 45-48

[19] Alexandru, M., Romanca, M., Ogrutan, P., Remote temperature recording using Bluetooth technology, Acta Technica Napocensis, Electronics and Telecommunications, vol.48, Nr. 3, 2007, ISSN 1221-6542, pp. 27-30

Page 187: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

187

Capitolul 8: Exemplu de concepţie şi proiectare a unui sistem de măsurare

a concentraţiei de Radon în aer şi transmisia datelor la distanţă

8.1.Introducere

Radonul 222 (timpul de înjumătăţire 3,8 zile) apare prin dezintegrarea Radiumului (timpul de înjumătăţire 1620 ani). Radium-226 apare prin dezintegrarea Uraniului-238 (timpul de înjumătăţire 4,5 miliarde ani). Uraniul-238 este conţinut în scoarţa Pământului (4ppm). Expunerea la Radon în interiorul clădirilor creează un risc semnificativ de îmbolnăvire, circa 3000 de cazuri de cancer /an, fiind a doua cauză de apariţie a cancerului pulmonar după fumat [1].

Măsurarea concentraţiei de Radon în aer se poate face prin mai multe metode. În acest capitol se descrie o metodă de măsurare în timp real cu un sistem înglobat pe bază de microcontroller conceput şi realizat în cadrul unui proiect CEEX [2] coordonat de IFIN-HH Bucureşti. Aparatul este completat cu un sistem de transmisie a datelor la distanţă prin GPRS folosind infrastructura telefoniei mobile GSM.

Una din aplicaţiile deosebit de utile ale aparatului poate fi la măsurarea Radonului pe falii seismice şi transmiterii în timp real la distanţă a datelor. Ultimele cercetări pe plan internaţional converg spre ideea unei corelări a variaţiilor în concentraţia de Radon din sol şi din ape freatice (din zona faliilor seismice de suprafaţă) cu mişcările seismice.

Mai multe aparate de măsură sunt montate pe teren în anumite puncte. Aceste aparate trimit date cu o anumită periodicitate prin GPRS. Datele trimise conţin concentraţia de Radon măsurată şi poziţia modulului determinată prin GPS. Pentru ca transmisia de la mai multe module să nu fie simultană se alocă fiecărui modul un interval de timp de transmisie. Timpul este determinat de fiecare aparat din informaţia GPS recepţionată.

Un aparat de măsură este un sistem înglobat cu microcontroller ATMEGA16 având ca traductor o cameră de detecţie cu fotoelement, ca afişaj un LCD grafic iar pentru transmisia datelor un modul GPRS/GPS marca Telit. Sistemul de transmisie GPRS este pus la dispoziţie de un operator de telefonie mobilă şi datele achiziţionate sunt trimise la un server al utilizatorului. Fiecare modul GPRS/GPS trebuie să aibă un card SIM furnizat de operatorul de telefonie mobilă. Realizări similare sunt prezentate în [3], [4], [5]. Modulul GPRS/GPS Telit a fost achiziţionat de la firma RCS [6], firma acordând şi suportul tehnic necesar în derularea proiectării. În ipoteza că locaţia nu este în suprafaţa de acoperire cu semnal a operatorului a fost prevăzută o soluţie de conectare prin modem de linie telefonică. Pentru aplicaţii în zone fără alimentare de la reţea a fost prevăzut un sistem de alimentare de la un acumulator de 12V/9Ah.

În acest capitol se descriu etapele de realizare a proiectului: alegerea traductorului, concepţia circuitului analogic, alegerea microcontrollerului, soluţiile alese fiind justificate cu simulări. Schema bloc a aparatului este dată în figura 8.1.

Page 188: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

188

Figura 8.1: Schema bloc a aparatului de măsurare a Radonului

Camera de ionizare

Sistem înglobat cu microcontroller

Unitate centrală cu microcontroller Atmega 16

Camera de detecţie cu element fotosensibil

Sursa de alimentare Intrare 12V DC Ieşiri 250V DC/ 5VDC /3,3V

Etaj analogic de amplificare camera de detectie

Etaj analogic de amplificare camera de ionizare

Modem GPRS (opţional)

Generare referinţă de timp GPS

(opţional)

Antena GPS/GPRS

Afişaj LCD grafic 128x64

Modem de linie telefonica (opţional)

Linie telefonică analogică/ digitală

Alimentator extern 12V DC cu acumulatori cu posibilitatea încărcării acumulatorilor de la reţea

Page 189: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

189

8.2.Traductori

8.2.1.Camera de ionizare

Camera de ionizare este o incintă închisă, de diferite forme (apropiate de forma cilindrică) în care se găsesc doi electrozi plan paraleli şi aer în condiţii normale sau cu circulaţie forţată. Electrozii formează un condensator plan. Atomii de Radon vor produce prin descompunere ionizarea aerului iar particulele ionizate vor produce în circuitul exterior un curent măsurabil. Schema camerei de ionizare este dată în figura 8.2.

Figura 8.2: Camera de ionizare

În urma interacţiunii între atomul de Radon şi moleculele de aer se produc ioni pozitivi şi negativi. Numărul perechilor de sarcini care se produc depinde de natura radiaţiei. De exemplu o particulă încărcată cu 10MeV produce cam 300 mii perechi de ioni. Dacă toată această sarcină este colectată şi dacă se estimează capacitatea camerei la 50pF atunci impulsul de tensiune va fi de aproximativ:

VCQV 310.96.0 −=−=∆ sau aproximativ 0,1mV/MeV

În urma ionizării produse ionii pozitivi şi cei negativi pot interacţiona cu moleculele de aer şi pot apărea noi ioni pozitivi şi negativi. Atunci când la electrozii camerei se aplică o tensiune continuă, în interiorul camerei apare un câmp electric care direcţionează ionii către electrozi. În lipsa câmpului electric ionii au o mişcare dezordonată. Ionizarea produsă de descompunerea unei particule radioactive produce în exterior apariţia unui curent mic care dă naştere unei tensiuni pe rezistenţa R. Apare un impuls de tensiune care poate fi vizualizat sau achiziţionat şi înregistrat cu un sistem electronic de măsurare.

Pentru măsurarea numărului de particule de Radon din aer este necesară realizarea unei surse de polarizare a camerei de ionizare cu tensiune variabilă pentru a se putea stabili tensiunea optimă pentru detecţie. În anumite condiţii lăţimea impulsului de tensiune măsurat pe R va putea oferi informaţii despre energia particulei radioactive care a produs ionizarea, deci se va putea stabili natura particulei.

Incinta închisă cu aer

U R

+

Ion negativ

Ion pozitiv

Page 190: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

190

8.2.2.Camera de detecţie

Camera de detecţie este prezentată în figura 8.3.

Figura 8.3: Camera de detecţie

În interior se creează un câmp electric puternic. Particulele radioactive lovesc suprafaţa fotosensibilă şi dau naştere unui semnal electric la ieşire. Înainte de utilizare se face un autotest al funcţionării prin aprinderea unui LED (intensitate luminoasă foarte mică) şi măsurarea semnalului de ieşire. Se compară valorile citite cu cele de referinţă şi dacă sunt în gama de precizie acceptată începe măsurătoarea. Dacă nu, se afişează un cod de eroare. În lipsa iluminării semnalul citit trebuie să fie apropiat de zero (într-un interval programat), dacă nu, zgomotul apărut poate fi datorat interferenţelor electromagnetice. Se afişează un cod de eroare şi se indică utilizatorului îndepărtarea surselor de câmp electromagnetic

Comportarea particulelor încărcate în câmp electric este descrisă de ecuaţia de mişcare a electronilor în câmp electric uniform [7]:

qEdtdvm = unde m este masa electronului şi q sarcina electrică (8.1)

Efectuând prima integrare se obţine:

MEtv += η

După a doua integrare se obţine NtMtEr ++= .2. 2η unde t este variabila timp, M şi N

constante de integrare care se determină din condiţiile la limită iar mq

Anod, 250VDC, realizat din plastic metalizat, opac

Catod, 250VDC

Element fotosensibil

Semnal de ieşire

LED pentru autotest

Fante laterale pentru intrarea aerului

Page 191: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

191

Considerăm câmpul electric paralel cu axa Oy şi electronii intră în câmp cu viteza v0 care face unghiul θ cu axa Ox. Din ecuaţia (8.1) rezultă:

0=dt

dvx şi Edt

dvy .η−=

După prima integrare se obţine:

θη

θsin....

cos..

0

0

tvtEvtvv

yy

x

+−==

După a doua integrare, cu condiţiile iniţiale la t=0, x=0 şi y=0:

θη

θ

sin..2

..

cos..

0

20

tvtEy

tvx

+==

=

Eliminând timpul din ultimele două relaţii se obţine traiectoria electronului:

θθ

η tgxv

xEy .cos..2

. 220

2

+−= (8.2)

Pentru a simula comportarea electronului în câmp electric considerăm: sarcina elementară: q=1.602 176462(63) × 10-19 C, masa electronului: m=9.10938188(72) × 10-31 kg, viteza electronilor aproximativ 104 m/s, intensitatea câmpului electric în camera de ionizare aproximativ 2500V/m. Cu aceste date se obţin simulările în MATCAD din figurile 8.4 şi 8.5.

θθ

tgxxKy .cos

. 2

2

+−= unde 620

20

10.2..2

..2.

≅==vm

EqvEK η

Se observă din aceste simulări că electronii vor fi direcţionaţi către fotoelement / electrod indiferent de unghiul de incidenţă. Simulările sunt valabile pentru comportarea particulelor încărcate şi în camera de ionizare şi în camera de detecţie.

Figura 8.4: Traiectoria electronului în câmp electric pentru un unghi de intrare de 0° (stânga) şi 90°(dreapta)

0 50 1002 .1010

1 .1010

0

2− 106×

2− 1010×

y x( )

1001 x

0 50 1002 .1010

1 .1010

0

3.997− 106×

2− 1010⋅

y x( )

1001 x

Page 192: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

192

Figura 8.5: Traiectoria electronului în câmp electric pentru un unghi de intrare de 0° (stânga) şi 90°(dreapta) pentru un câmp cu intensitate dublă

Traductorul fotoelectric este o celulă fotovoltaică, adică o joncţiune pn cu concentraţii relativ mari de impurităţi pentru a micşora rezistenţa electrică. Regiunea supusă iluminării este subţire pentru a permite luminii să ajungă la regiunea de trecere. Dacă celula se află în întuneric la bornele ei nu apare nici o tensiune, celula fiind în echilibru termodinamic. Dacă lumina cade pe suprafaţa celulei fotonii penetrează zona subţire şi generează perechi electroni gol care datorită câmpului electric intern E din regiunea de trecere sunt orientaţi- golurile spre regiunea p şi electronii spre n. La polarizarea inversă a dispozitivului curentul printr-o rezistenţă de sarcină R este puternic influenţat de acţiunea radiaţiei luminoase. Acesta este domeniul în care dispozitivul funcţionează ca fotodiodă. Caracteristicile statice permit realizarea unui model simplificat, figura 8.6.

Figura 8.6 Modelul celulei fotovoltaice

Pentru a putea realiza o modelare simplificată a fenomenelor care au loc la apariţia unei particule alfa în camera de detecţie se consideră că o particulă alfa generează prin ciocniri circa 600 de electroni, ceea ce înseamnă 18keV iar zgomotul de fond se consideră generat de 200 de electroni, adică 7keV. Cu relaţia I=dQ/dt se poate face o apreciere a ordinului de mărime al curentului generat de intrarea unei particule alfa care rezultă 10-7 A pentru o durată a impulsului de 10-9 s. Nivelele de curent care trebuie măsurate sunt extrem de mici în prezenţa unui zgomot de valoare importantă (10-8 A)

Măsurarea nivelului de radiaţie, deci a numărului de particule radioactive poate fi realizată în două feluri: • prin integrare, se măsoară nivelul tensiunii la ieşirea unui integrator care este proporţional cu numărul de particule din incintă; • prin numărarea vârfurilor de tensiune, deci a numărului de particule.

0 50 1002 .1010

1 .1010

0

7.994− 106×

2− 1010⋅

y x( )

1001 x

0 50 1002 .1010

1 .1010

0

4− 106×

2− 1010⋅

y x( )

1001 x

Cb

If RS

Page 193: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

193

8.3.Metode de măsurare

8.3.1.Măsurarea prin integrare

Simularea în SIMULINK a integrării în prezenţa unui zgomot aleator şi în prezenţa influenţei perturbatoare a tensiunii reţelei de alimentare a fost realizată cu modelul din figura 8.7.

Figura 8.7: Modelul măsurării prin integrare

Un generator de impulsuri simulează apariţia unei particule radioactive cu frecvenţa de o particulă/10ms, amplitudinea de 10-7 A şi durata 0,01% din perioadă, adică 10µs. Zgomotul este simulat printr-un generator de numere aleatoare, amplitudinea zgomotului fiind de 10-8 A. Fotocelula este simulată printr-o sursă de curent iar rezistenţa de sarcină este de 10MΩ.

În figura 8.8 sunt prezentate diagramele de timp ale ieşirii în ipoteza preluării datelor fără integrator. În stânga se văd impulsurile de durată mică (10µs) amestecate cu zgomotul de amplitudine 1/10 din semnalul util. În dreapta scara de timp este extinsă.

Figura 8.8: Impulsuri şi zgomot fără integrare

Page 194: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

194

În figura 8.9 sunt prezentate rezultatele după integrare (perioada 10ms, durata impulsului 10µs). Valoarea finală a tensiunii este 1,06.10-3, cu o eroare de 6% introdusă de zgomot. În stânga este prezentat tot intervalul de timp de integrare iar în dreapta intervalul de timp final.

Figura 8.9: tensiunea după integrator (perioada 10ms, durata impulsului 10µs)

În figura 8.10 sunt prezentate diagrame de timp ca şi cele din figura 8.9 dar cu o perioadă de 10 ori mai mică (o particulă/1ms, deci perioada 1ms şi aceeaşi durată a impulsului). Se poate observa forma în timp a tensiunii pe integrator care este mai apropiată de cea ideală. Eroarea scade la 1%.

Figura 8.10: Tensiunea după integrator (perioada 1ms, durata impulsului 10µs)

Ultimul exemplu este prezentat în figura 8.11, în cazul a 10 particule/ms, adică o perioadă de 0,1ms şi aceeaşi durată a impulsului, eroarea fiind în acest caz de 0,1%.

Figura 8.11: Tensiunea după integrator (perioada 0,1ms, durata impulsului 10µs)

Page 195: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

195

În cazul unei concentraţii şi mai mici de gaz, adică o particulă la 100ms eroarea este deja de 60%, inadmisibil de mare. Eroarea este cu atât mai mare cu cât frecvenţa impulsurilor este mai mică (mai puţine particule în timp). De asemenea eroarea este cu atât mai mare cu cât durata şi amplitudinea impulsurilor sunt mai mici (evident eroarea depinde de energia impulsurilor).

Pentru a constata cum se manifestă influenţa tensiunii reţelei la intrare se însumează un semnal sinusoidal cu frecvenţa de 50Hz şi amplitudinea de 10% din cea a semnalului util. Semnalul este figurat fără integrare şi cu integrare în figura 8.12.

Figura 8.12: Tensiunea înainte de integrator (stânga) şi după integrator (dreapta)

Comparând semnalele cu cele din figura 8.11 (perioada 0,1ms, durata impulsului 10µs) se observă că tensiunea la sfârşitul perioadei de integrare are aceeaşi valoare şi că adăugarea semnalului perturbator sinusoidal nu deteriorează rezultatul măsurării. Dacă perioada de integrare este aleasă ca multiplu al perioadei semnalului perturbator periodic se constată rejecţia acestei perturbaţii. Dacă s-ar fi măsurat tensiunea pe integrator la momentul 9,99s atunci valoarea ar fi fost 0,1006 şi eroarea ar fi fost de 0,6%, mai mare de 6 ori decât în lipsa acestei perturbaţii.

Se pot măsura curenţi cu metoda clasică a integratorului transimpedanţă. În figura 8.13 se prezintă o schemă de principiu:

Figura 8.13: Schema de principiu a integratorului transimpedanţă

- +

CINT IIN

Vo

Page 196: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

196

Tensiunea de ieşire Vo este:

∫−

= dttIC

V ININT

).(10

Pentru un curent constant IIN, la sfârşitul intervalului de integrare TINT se obţine:

INT

INTIN C

TIV −=0

După perioada de integrare tensiunea la ieşirea circuitului este proporţională cu IIN (curentul de intrare).

Ca şi integrator se poate folosi circuitul integrat IVC102 de Burr-Brown care este un amplificator integrator de precizie comutat. Ca şi aplicaţii sunt menţionate în catalog măsurările de curenţi mici preluaţi de la camere de ionizare sau fotodiode. Circuitul are integrate 3 capacităţi de integrare care se pot conecta în paralel dar se pot conecta şi capacitoare exterioare. La intrare se pot măsura atât curenţi pozitivi cât şi negativi, curentul de polarizare la intrare fiind de maximum 750fA. Circuitul IVC 102 are doi pini de masă, unul pentru masa analogică la care este conectată intrarea neinversoare a amplificatorului operaţional şi unul pentru masa digitală. Cei doi pini de masă între care diferenţa de potenţial poate fi de maximul 100mV se unesc la sursa de alimentare. Cablajul este recomandat de furnizor.

8.3.2.Măsurarea prin numărarea impulsurilor

Dacă impulsurile date de traductor nu se integrează ele pot fi amplificate şi numărate direct de un microcontroller. În acest caz nu se poate determina tipul de descărcare radioactivă din incinta de detecţie. Variante de măsură care determină şi tipul descărcării sunt:

• Amplificarea impulsurilor şi achiziţia lor cu un convertor analog digital integrat în microcontroller. Microcontrollerul calculează aria (energia) impulsului din amplitudinea şi durata lui, ceea ce este dificil deoarece necesită o viteză mare a convertorului şi o putere de calcul mare a microcontrollerului.

• Amplificarea impulsurilor şi realizarea unei conversii durată număr de impulsuri de ieşire respectiv amplitudine număr de impulsuri de ieşire, ceea ce înseamnă că microcontrollerul poate deduce energia impulsului din numărul de impulsuri de ieşire.

Circuitul de amplificare este aşezat în apropierea camerei de detecţie / camerei de ionizare. La intrare circuitul are un amplificator operaţional de instrumentaţie AD712. Amplificatorul de instrumentaţie este urmat de două etaje construite cu amplificatorul operaţional cvadruplu LM324 care asigură semnalul necesar pentru ca ieşirea etajului să poată fi conectată la intrarea digitală a microcontrollerului. Etajul de amplificare cu LM324 este un etaj neliniar format din două ramuri. Ramura superioară dă la ieşire un număr de impulsuri proporţional cu amplitudinea semnalului şi ramura inferioară dă impulsuri doar dacă amplitudinea semnalului este mai mare decât o valoare de prag. Valoarea de prag poate fi astfel aleasă încât amplificatorul să semnalizeze cu un impuls dat de ramura inferioară o eroare, adică apariţia

Page 197: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

197

unui impuls cu o valoare energetică anormal de mare care nu poate proveni dintr-o descărcare ci datorită interferenţei electromagnetice. A fost implementată o variantă simplificată a ramurii de sus care nu dă un singur impuls la fiecare impuls de intrare, fiind astfel imposibilă determinarea naturii gazului radioactiv, figura 8.14.

Figura 8.14: Schema bloc a măsurării prin numărarea impulsurilor

Durata şi amplitudinea unui impuls de curent depind de energia particulelor incidente pe fotoelement. Amplitudinea este mărită de amplificatorul de instrumentaţie dar durata rămâne mică. La microcontrollerele uzuale rata de eşantionare este destul de mică- 10ks/s la ATMEL ATMEGA16, 100ks/s la Fujitsu, de aceea există riscul ca un impuls să nu fie detectat de către microcontroller. Pentru a putea realiza un aparat de măsurare portabil cu cost redus trebuie utilizat un microcontroller ieftin, de aceea se impune prelungirea lăţimii impulsurilor cu circuite RC de diferenţiere.

Variaţia parametrilor mediului în care se realizează măsurarea precum şi variaţiile parametrilor componentelor electronice face ca măsurarea să fie afectată de erori şi funcţionarea aparatului să fie perturbată. Mediul electromagnetic agresiv este una dintre principalele cauze posibile. A fost implementat un mod de verificare a calibrării care constă dintr-un LED aflat în incinta de măsurare (în interiorul traductorului) alimentat de la un canal PWM al microcontrollerului. Comparatorul 2 compară impulsul de ieşire cu un prag mai mare care poate fi atins doar când LED-ul luminează cu o intensitate mare. LED-ul este comandat să lumineze mai puternic la începutul măsurătorii pentru verificarea calibrării. Pe parcursul măsurării dacă se detectează un impuls dat de comparatorul 2 se consideră că acesta nu poate proveni decât de la o perturbaţie electromagnetică şi se abandonează măsurătoarea prin afişarea unui mesaj de eroare

Camera de detecţie

Amplificator de instrumentaţie

Comparator 1

Prag 1

Comparator 2

Prag 2

Microcontroller PWM ADC canal 1 ADC canal 2

LED

Fotoelement

Sursă 250V DC

Page 198: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

198

Schema de simulare a măsurării în Simulink este dată în figura 8.15.

Figura 8.15: Schema de simulare a măsurării prin numărarea impulsurilor

Ca şi în simularea măsurării prin integrare, pe lângă sursele de impulsuri utile se adaugă o sursă de zgomot aleator care simulează zgomotul intern al fotoelementului şi o sursă sinusoidală care simulează perturbaţia de 50Hz care provine de la reţeaua industrială de curent alternativ. Un generator de impulsuri simulează impulsurile de amplitudine mică care provin de la o descărcare iar un generator de impulsuri simulează impulsurile de amplitudine mare generate la calibrare prin aprinderea LED-ului. Semnalul de intrare arată ca în figura 8.16:

Figura 8.16 Impulsuri de intrare Circuitele de diferenţiere măresc durata impulsului iar circuitele de prag selectează impulsurile după amplitudine. Impulsurile de ieşire din comparatorul 1 şi 2 sunt date în figura 8.17 stânga respectiv dreapta.

Impuls de calibrare Impuls de

descărcare

Zgomot

Page 199: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

199

Figura 8.17: Impulsuri de ieşire

Se poate observa că la ieşirea comparatorului 1 apar impulsurile de descărcare şi cel de calibrare iar la ieşirea comparatorului 2 apare doar impulsul de calibrare.

Măsurarea prin integrare este superioară celei prin numărarea impulsurilor din mai multe puncte de vedere: • Perturbaţia sinusoidală este rejectată în totalitate dacă perioada de integrare este multiplu

al perioadei tensiunii reţelei industriale; • În timpul integrării microcontrollerul poate executa alte sarcini, de exemplu de transmisie

de date; • Etajul analogic este simplu.

Din păcate metoda integrării se poate aplica doar la un număr mare de impulsuri de descărcare în unitatea de timp, iar măsurarea concentraţiilor mici de Radon înseamnă un număr foarte mic de descărcări pe zi. Prin integrare zgomotul de măsurare creşte în timp şi produce saturarea circuitului analogic de integrare. Metoda numărării impulsurilor se pretează şi la măsurări de concentraţii mici, folosind însă mai mult resursele microcontrollerului. Aşa cum a fost implementată, metoda prin numărarea impulsurilor nu poate determina tipul particulei radioactive care s-a descompus deoarece aşa cum se vede din simulare impulsurile sunt prelungite şi au aceeaşi amplitudine.

8.4.Unitatea de prelucrare

8.4.1. Alegerea microcontrollerului

Au fost considerate două variante de microcontroller, una cu un microcontroller din familia Fujitsu cu care Catedra de Electronică şi Calculatoare are o colaborare şi o altă variantă cu un microcontroller Atmel care este preferat în realizări prin faptul că este foarte cunoscut. Criteriul principal de selecţie a fost performanţa convertorului analog digital pentru că se fac achiziţii de semnale analogice.

Prin rularea câtorva teste de achiziţie s-a constatat o instabilitate a valorilor de la ieşirea convertorului analog/digital din componenţa microcontrollerului Fujitsu care influenţează negativ precizia măsurătorilor. Metoda statică de testare a constat din măsurări succesive a semnalului furnizat de convertor cu intrarea lui analogică conectată la masă şi trimiterea datelor la calculator pentru analiză. Interfaţarea cu calculatorul s-a realizat prin standardul

Page 200: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

200

serial RS232, datele fiind primite de un program specializat de citire a portului serial. Şi la microcontrollerul Atmel s-a păstrat modul de lucru în faze, gen sample-hold-send, practic se iau câte 1000 de eşantioane în lipsa conexiunii cu calculatorul, după care se realizează conexiunea către calculator după care se realizează transmisia datelor. După preluare datele sunt salvate într-un fişier text şi pot fi reprezentate grafic.

Analiza semnalului analogic furnizat de senzor arată că zgomotul apărut la intrarea convertorului poate fi micşorat prin ecranarea traseului de intrare. Se constată că mărimea şi frecvenţa impulsurilor nedorite este mult redusă. Aşezarea în imediata vecinătate a traductorului este esenţială în acest tip de aplicaţie.

Ca şi filtrări software, cea mai simplă este filtrarea prin mediere care constă în eşantionarea semnalului cu o frecvenţă mărită şi calcularea eşantionului curent prin medierea mai multor eşantioane preluate timp de o milisecundă.

yj = (xj*N+1 + xj*N+2 + xj*N+3 + ……….+ xj*N+N) / N

Unde : N – numărul eşantioanelor luate timp de o milisecundă Y – semnalul de ieşire din filtrul de mediere X – semnal de intrare în filtru

Semnalul de ieşire este calculat din N eşantioane luate anterior, prin efectuarea unei medieri aritmetice asupra lor. La valori mari ale N algoritmul necesită putere mare de procesare. De exemplu pentru valoarea N=50 rezultatele sunt prezentate în figura 8.18, rata erorilor fiind mult redusă, doar 4-5 eşantioane eronate. Sigur această performanţă poate fi atinsă doar la folosirea la maxim a resurselor sistemului de procesare, lucru care este inacceptabil în majoritatea aplicaţiilor, sistemul având şi alte taskuri de executat în paralel. Pentru aplicaţii diferite se pot lua în considerare metode diferite de eliminare a zgomotului. De exemplu la achiziţia semnalelor de la traductoare de Radon prin metoda integrării se pot face medieri software pentru că achiziţia se face doar la sfârşitul perioadei de integrare. Se poate spune că principiul de măsurare prin integrare este superior din punctul de vedere antiperturbativ şi prin faptul că permite o achiziţie lentă şi prin urmare microcontrollerul are timp să efectueze operaţia de mediere.

Un avantaj din punctul de vedere al zgomotului introdus de măsurătoare este ca traductorul să fie în apropierea sistemului de măsură. În cazul aparatului propus apropierea este realizată pentru camera de detecţie care este montată în interiorul carcasei. Camera de ionizare fiind de mari dimensiuni este montată în exterior şi semnalul este preluat cu cabluri ecranate. Este posibil ca să fie nevoie să se monteze partea analogică direct pe camera de ionizare.

Valorile achiziţionate pentru un semnal constant la ieşire sunt în cazul unui microcontroller Fujitsu date în figura 8.18.

Page 201: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

201

1000 2000 3000 4000 5000 6000 7000 8000240

245

250

255

260

265

270

275

280

Figura 8.18: Valorile eşantionate pentru o tensiune continuă constantă la intrare (MB90F352S) (8000 de eşantioane)

Pentru un microcontroller Atmega16 valorile achiziţionate sunt date în figura 8.19.

100 200 300 400 500 600 700 800 900 1000370

375

380

385

Figura 8.19: valorile eşantionate pentru o tensiune continuă constantă la intrare (Atmega16) (1000 de eşantioane)

Dacă la Fujitsu erorile erau de 4 biţi, la Atmega16 erorile sunt de 1 bit, ceea ce justifică alegerea familiei ATMEL. Folosind o mediere software erorile scad, doar 4 eşantioane eronate din 3000. Dezavantajul medierii este creşterea timpului de achiziţie.

8.4.2. Schema electrică

Unitatea centrală cu microcontroller este o unitate cu structură clasică, în care, în afară de microcontroller sunt prevăzute generatorul de tact, circuitul de RESET şi circuitul de modificare de nivel MAX232 pentru interfaţa serială RS232 la care se vor conecta modulele GPRS, GPS şi modemul de linie telefonică. Pe placă este prevăzut un conector pentru

Page 202: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

202

programarea microcontrollerului ISP (In System Programming) şi condensatori pentru atenuarea variaţiilor tensiunii de alimentare.

Implementarea interfeţei sistem - utilizator s-a realizat cu un afişaj grafic cu cristale lichide suficient de mare pentru vizualizarea in mod grafic şi în mod text a meniurilor de lucru şi a rezultatelor. Pentru implementare s-a ales modulul DEM128064ASYH-LY care dispune de 128 coloane şi 64 de linii şi un număr de 8192 pixeli, suficienţi pentru aplicaţia curentă. Afişajul a fost folosit şi în alte aplicaţii prezentate în celelalte capitole. Elementul principal al modulului îl reprezintă panoul cu cristale lichide de dimensiunea 128x64 puncte, acesta fiind controlat de circuitele auxiliare (drivere) KS0107B care controlează liniile, şi KS0108B care controlează coloanele. De asemenea modulul dispune de un convertor intern de tensiune pentru generarea unei tensiuni negative necesară funcţionării afişajului. Interfaţa de 14 de pini a modulului este alcătuită din magistrala de date de 8 biţi şi semnalele de control CS1, CS2, RS , R/W, RSTB şi E, conform tabelului următor:

PIN MCU NUME SEMNAL

DESCRIERE

P40 CS1 semnal de selecţie circuit de control segment stânga

P41 CS2 semnal de selecţie circuit de control segment dreapta

P65 RS specifică daca se transmite o comandă sau date

P4 R/W semnal de control pentru citire/ scriere

P67 E semnal de validare

P66 RSTB semnal de resetare modul

P10-P17 D Magistrala paralelă de date de 8 biţi

Schema electrică a unităţii centrale cu microcontroller şi a interfeţei cu afişajul LCD este dată în figura 8.20.

Ciclul de scriere a unei comenzi sau date în modulul LCD începe prin aplicarea la intrarea modului a semnalelor de selecţie CS1 si CS0 precum şi a semnalului de R/W care specifică tipul operaţiei. După un timp bine definit se aplică semnalul de validare E, timp în care datele trebuiesc să fie stabile. Durata ciclului de scriere este bine definită şi se găseşte în foaia de catalog a modulului LCD. Modulul LCD dispune de un registru de intrare în care se stochează datele primite de la microcontroller înainte sa fie afişate. La activarea semnalului E datele se scriu în registrul de intrare, după care printr-o operaţie internă ele sunt transferate în memoria internă şi afişate.

Page 203: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

203

Figura 8.20: Schema electrică a unităţii centrale şi de conectare a afişajului LCD

Cablajul pentru unitatea de prelucrare cu microcontroller este dat în figura 8.21.

8.4.3.Software

Partea software este necesară la unitatea de prelucrare numerică cu microcontroller şi la serverul care primeşte mesajele GPRS.

Procedura de măsurare software implementată în microcontroller în cazul variantei constructive în care impulsul nu este preluat prin convertorul analog digital ci este aplicat ca cerere de întrerupere este formată din mai multe etape:

Page 204: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

204

Figura 8.21: Cablajul unităţii centrale cu microcontroller ATMega16

1. Procedura de numărare a impulsurilor

Impulsurile au o durată şi o amplitudine cunoscute pentru descărcarea unei particule de Radon. Microcontrollerul verifică impulsul primit ca durată şi îl numără doar dacă durata lui este cea aşteptată, între anumite limite, conform diagramei din figura 8.22.

După fiecare incrementare registrul este salvat în EEPROM pentru ca o întrerupere a tensiunii de alimentare să nu afecteze rezultatul măsurătorii. Dacă microcontrollerul are putere de calcul mai redusă salvarea se face doar la sfârşitul unei ore.

Page 205: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

205

Figura 8.22: Procedura de numărare a impulsurilor

2. Procedura de totalizare şi afişare, figura 8.23.

Figura 8.23: Procedura de totalizare şi afişare

da

Se aşteaptă un impuls pe linia de întrerupere 1

Se verifică dacă există impuls pe linia de întrerupere 2

Apare un impuls

da Se ignoră impulsul de pe linia 1 considerat perturbaţie

nu

Se verifică dacă impulsul are durata standard

nu Se ignoră impulsul de pe linia 1 considerat perturbaţie

Se numără impulsul prin incrementarea unui registru

La punerea sub tensiune se citeşte timpul transmis GPS. Se verifică dacă coincide cu ora- minutul alocat transmisiei

da

Se porneşte un timer cu timp programat o oră

Se numără impulsurile şi se incrementează un registru

A trecut o oră

da

Se afişează numărul de impulsuri pe LCD şi se transmite numărul de impulsuri prin GPRS

Valorile numărului de impulsuri stocate în orele anterioare se mediază şi se afişează pe LCD media calculată şi un grafic

Page 206: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

206

3. Procedura de atenţionare

Procedura de atenţionare este implementată pentru a trimite mesaje de avertizare dacă concentraţia de Radon în aer depăşeşte repetat valorile anterioare, figura 8.24. Se programează în microcontroller numărul N1 de citiri din care se face media de referinţă (o medie a concentraţiei de Radon pe N1 ore), numărul N2 de citiri care depăşesc media de referinţă şi D procentul de depăşire pentru care se emite avertizarea. N1, N2 şi D se stabilesc experimental.

Figura 8.24: Procedura de atenţionare

Transmisia la ore exacte poate fi realizată prin folosirea unui timer din microcontroller. În acest caz nu se transmite şi poziţia aparatului. Poziţia şi timpul pot fi aflate cu mare exactitate folosind sistemul GPS.

GPS (Global Positioning System) este un sistem de determinare a poziţiei care se bazează pe recepţia unor semnale de la o reţea de 24 de sateliţi plasaţi pe orbită. Acest sistem a fost folosit iniţial pentru aplicaţii militare dar din 1980 s-a putut folosi şi în aplicaţii civile. Receptorul GPS trebuie să recepţioneze semnale de la minim 3 sateliţi pentru o poziţionare 2D (latitudine şi longitudine) şi de la minim 4 sateliţi pentru o poziţionare 3D (latitudine,

da

Se introduc valorile N1, N2 şi D

Se fac N1 citiri şi se calculează media

Se realizează o citire la finalul unei ore. Valoarea citită este mai mare cu D decât media N1.

nu

da

S-au citit N2 valori care depăşesc cu D media N1

Se incrementează registrul de valori care depăşesc cu D media N1

Se generează o avertizare

Se realizează o nouă citire. Valoarea citită este mai mare cu D decât media N1.

da

nu Se goleşte registrul de valori care depăşesc cu D media N1

nu

Page 207: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

207

longitudine şi altitudine). Precizia de determinare a poziţiei este de 10-15m dar există metode de a îmbunătăţi precizia până la 2-5m.

Receptorul folosit este EZ10 de la Telit. Câteva dintre caracteristicile tehnice esenţiale ale receptorului sunt:

• Acurateţe: în modul autonom de funcţionare modulul are o acurateţe de detectare a poziţiei de 10m, în modul WAAS (Wide Area Augmentation System) acurateţea este sub 5m, iar folosind DGPS (Differential GPS) sub 2,5m.

• Receiverul dispune de 12 canale de recepţie, astfel că se pot urmări până la 12 sateliţi simultan.

• Rata maximă de împrospătare a informaţiei este de 10Hz. • Protocolul folosit este NMEA (National Marine Electronics Association) • Ca ieşire de date modulul foloseşte o comunicaţie serială RS232 la 4800 b/s (standard

NMEA-0183 versiunea 2.2 [8])

Mesajele NMEA pot fi vizualizate cu orice program standard de comunicaţie serială, cum ar fi Windows Hyper-Terminal. Modulul transmite cinci tipuri de propoziţii: GGA, GSA, RMC, VTG şi GSV. Dintre acestea cinci, doar propoziţiile GGA si RMC conţin atât date despre timp cât şi poziţie (latitudine şi longitudine).

$GPGGA,235948.999,0000.0000,N,00000.0000,E,0,00,50.0,0.0,M,,,,0000*33 $GPRMC,235948.999,V,0000.0000,N,00000.0000,E,0.00,,171101,,*05

Se poate vedea indicaţia de timp, achiziţia a început la ora 23.59.48,999. Indicaţia despre poziţie nu a fost actualizată pentru că sistemul a fost testat într-o casă unde pereţii au ecranat semnalul GPS de poziţionare.

Software-ul pentru server a fost realizat de un grup de studenţi pasionaţi condus de dl. Marius Moga. Radon Data Manager este un sistem software care permite preluarea de mesaje predefinite de la echipamentele implicate în măsurarea concentraţiei de Radon conectate în sistemul GPRS, interpretarea acestora şi transmiterea datelor rezultate către un server MySQL, în vederea stocării într-o bază de date. Sistemul software înglobează trei interfeţe, interconectate:

• Interfaţa grafică - permite utilizatorului să comunice cu sistemul software; • Interfaţa server ( serverul ) – reprezintă legătura aplicaţiei cu echipamentele care trimit

mesaje predefinite serverului, utilizând stiva de protocoale TCP-IP şi diferite tehnologii de acces la internet;

• Interfaţa client MySQL – asigură înregistrarea şi actualizarea datelor în baza de date, prin tranzacţii între interfaţă şi un server MySQL 5.0 .

Radon Data Manager 1.0 permite la nivel de interfaţă grafică operaţiuni de control al serverului şi al conexiunii cu serverul MySQL, gestiunea echipamentelor implicate în procesul de măsurare şi supravegherea activităţii sistemului software prin mesaje furnizate de metodele aplicaţiei.

Page 208: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

208

La nivelul serverului sistemul acceptă orice conexiune TCP-IP adresată acestuia pe un port de comunicaţie dedicat, care poate fi setat de către utilizatorul sistemului, de regulă pot fi alese porturi cuprinse in intervalul 1024 – 65535, deoarece valorile mai mici de 1024 sunt rezervate pentru servicii predefinite ( FTP, HTTP, SMTP, etc.). Conexiunea între client si server poate fi realizată numai dacă respectivul client utilizează acelaşi port de comunicaţie pentru care serverul acceptă conexiuni, astfel încât odată ce este modificat portul de comunicaţie al serverului, trebuie modificate şi porturile de comunicaţie ale tuturor clienţilor. În momentul acceptării unei conexiuni, serverul va aştepta sosirea mesajului predefinit. Dacă după stabilirea conexiunii clientul conectat la server nu trimite date sau trimite mesaj incomplet, conexiunea va fi întreruptă după un timp de aşteptare care poate fi setat de către utilizatorul sistemului. Întreruperea conexiunii cu respectivul client nu afectează preluarea unei noi conexiuni, iar dacă mai mulţi clienţi solicită o conexiune la server, serverul va accepta şi trata pe rând fiecare conexiune în parte, în ordinea sosirii cererilor, clienţii aşteptând acceptarea conexiunii. Numărul maxim de cereri de conexiune este fix ( nu poate fi modificat de utilizator ), cel mult 50 de cereri pot fi stocate în coada de aşteptare. Sistemul de operare va respinge oricare a 51-a cerere de conexiune. Un ecran al programului care arată un raport al conexiunilor şi datele preluate este capturat în figura 8.25.

Figura 8.25: Date preluate de la echipamente

Page 209: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

209

Clientul MySQL asigură tranzacţiile între Radon Data Manager şi serverul MySQL utilizând mai multe metode implementate în sistemul software. Autentificarea la serverul MySQL este realizată printr-o metodă complexă ce asigură în acelaşi timp crearea bazei de date în cazul în care aceasta nu există, preluarea datelor de autentificare dintr-un fişier binar, permiţând astfel autentificarea automată la serverul MySQL în momentul pornirii sistemului software, fără a mai fi necesară intervenţia utilizatorului. La prima utilizare a sistemului RadonDataManager, este necesară introducerea de către utilizator a datelor de autentificare. Acestea vor fi stocate în fişierul binar “autentif.bin”, imediat după stocare se va declanşa automat procedura de autentificare pentru verificarea corectitudinii datelor de autentificare, în cazul în care datele sunt incorecte, fereastra pentru setarea datelor de autentificare va rămâne deschisă pentru introducerea altor date.

Pentru funcţionarea sistemului este necesar ca aplicaţia software să ruleze pe un calculator conectat permanent şi dedicat la Internet prin diverse tehnologii de acces oferite de furnizorii de servicii. O conexiune dedicată la Internet implică o adresă IP fixă oferită prin contract de către un Internet Service Provider. Conexiunea permanentă poate fi susţinută de un serviciu de acces la Internet cu un parametru QoS ( Quality of Service ) cât mai bun.

8.5. Sursa de alimentare 250V DC

Sursa de alimentare de tensiune mare are rolul de polarizare a camerei de ionizare sau a camerei de detecţie. Circuitul integrat care stă la baza acestei aplicaţii este LM 3524, un generator de semnal PWM. Schema din figura 8.26 arată principiul unui convertor pentru ridicarea tensiunii de alimentare (Step Up) şi formele de undă.

Figura 8.26: Convertor DC DC pentru ridicarea tensiunii de alimentare (Step Up)

LTVI L

L.

=∆ , deci 1

.L

tVI ONIN

L ≅+∆ dacă se neglijează tensiunea de saturaţie a

tranzistorului Q1

la fel ( )

1

0 .L

tVVI OFFIN

L−

≅−∆ dacă se neglijează tensiunea pe D1

∆IL+=∆IL- deci OFFINOFFOONIN tVtVtV ... −=

V1

D1 Co

tOFF tON

PWM LM 3524 RL

VIN L1 Vo Vo

V1 tON tOFF

∆IL+ ∆IL-

IL

Page 210: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

210

ca urmare se obţine relaţia care arată că se poate obţine creşterea valorii tensiunii de ieşire în funcţie de factorul de umplere:

⎟⎟⎠

⎞⎜⎜⎝

⎛+=

OFF

ONINO t

tVV 1

Pentru o mărire a tensiunii de la 5V la 250V este nevoie ca factorul de umplere tON/tOFF să fie 49. Pentru a asigura precizia şi stabilitatea unui astfel de factor de umplere este nevoie de un circuit specializat, aşa cum este LM3524.

Pentru a calcula curentul absorbit de la intrare presupunem un randament de 100%, deci pierderi nule.

INININ VIP .= şi

⎟⎟⎠

⎞⎜⎜⎝

⎛+==

OFF

ONINOOOO t

tVIVIP 1..

şi PO=PIN

astfel că ⎟⎟⎠

⎞⎜⎜⎝

⎛+=

OFF

ONOIN t

tII 1

Se remarcă faptul că, aşa cum ne aşteptam, dacă tensiunea de ieşire este de 50 de ori mai mare, curentul de ieşire este de 50 de ori mai mic.

Sursa de polarizare cu circuitul integrat LM 3524 are schema dată în figura 8.27, care este o schemă tipică de convertor Step Up. Circuitul generează o tensiune de referinţă de 5V cu precizia de 1% iar curentul furnizat la ieşire este de maxim 200mA la o tensiune maximă de 60V. Circuitul admite sincronizare externă şi are performanţe ridicate în mediu industrial.

Figura 8.27: Schema circuitului de ridicare a tensiunii cu LM 3524

Page 211: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

211

8.6. Rezultatele măsurărilor. Etalonare şi concluzii

Primele măsurători au fost efectuate cu un sistem de achiziţii de date National Instruments DAQ USB care constă dintr-un modul DAQ USB şi un calculator PC. Cu acest sistem s-au efectuat achiziţii ale semnalului analogic furnizat de camera de detecţie (după amplificatorul analogic), figura 8.28.

Figura 8.28: Rezultatul achiziţiei pentru o zi cu camera de detecţie realizată cu modulul National Instruments

Impulsurile gri provin de la descărcări ale particulelor de Radon iar impulsurile negre sunt impulsuri de eroare. Se vede din grafic că pe perioada unei zile nu au apărut impulsuri de eroare suficient de mari pentru ca aparatul să semnalizeze o eroare. Viteza convertorului DAQ-USB de 10ks/s nu permite conectarea directă la ieşirea camerei de ionizare /detecţie pentru că impulsurile generate sunt prea rapide. Un impuls din graficul din figura 8.28 este prezentat în detaliu în figura 8.29.

Se observă din figură forma dreptunghiulară a impulsului (a cărui energie nu este proporţională cu energia impulsului de intrare) şi se mai observă şi ieşirea a doua a amplificatorului unde tensiunea variază foarte puţin.

Page 212: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

212

Figura 8.29: Impuls datorat unei particule în camera de detecţie

O fotografie cu o vedere de sus a aparatului portabil cu cameră de detecţie realizat este dată în figura 8.30.

Figura 8.30: Aparatul de măsurare a conţinutului de Radon în aer cu cameră de detecţie (vedere de sus)

Din fotografie lipsesc modulele opţionale: modem-ul GPRS şi cel de linie telefonică. O fotografie cu o vedere din faţă este dată în figura 8.31. Se observă indicaţia afişajului LCD grafic pe care este afişată concentraţia de Radon în aer.

Camera de detecţie

Sursa de alimentare

Unitate centrală cu microcontroller

Afişaj LCD

Amplificator analogic

Conexiune în exterior pentru sursa de alimentare

Page 213: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

213

Figura 8.31: Aparatul de măsurare a conţinutului de Radon în aer cu cameră de detecţie (vedere din faţă)

Datele transmise de către microcontroller sunt recepţionate pe portul serial de la calculator cu ajutorul programului Hyper Terminal. S-a setat Baud rate-ul la 9600 b/s, iar formatul datelor 8-n-1. Pentru recepţie s-a folosit portul COM1 de la un PC.

Etalonarea aparatului a fost realizată prin comparaţie cu aparatul electronic de producţie SUA SAFETY SIREN 2 Au apărut 79 de impulsuri în 93 de ore ceea ce înseamnă 0.8494 de impulsuri pe oră. Aparatul SAFETY SIREN 2 a afişat 3.0 pCi/L (111 Bq/m3 ). Valoarea minimă pe care o poate detecta aparatul este de 0.1 pCi/L sau 3.7 Bq/m3, valoare pentru care corespunde perioada de 0,0283154121 de impulsuri pe oră. Toate valorile concentraţiei de Radon vor fi exprimate in pCi/L, pentru ca numărul de impulsuri şi valoarea concentraţiei să poată fi reprezentate pe acelaşi grafic. Conversia între pCi/L şi Bq/m3 se poate face apoi cu relaţia 1pCi/L=37Bq/m3

Relaţia dintre numărul de impulsuri pe oră şi valoarea concentraţiei exprimată în pCi/L este liniară şi este reprezentată în graficul din figura 8.32.

Page 214: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

214

Figura 8.32: Dependenţa dintre numărul de impulsuri pe oră şi valoarea concentraţiei Radonului exprimată in pCi/L

Graficul din figura 8.33 arată valoarea concentraţiei afişate de aparat la o urmărire de 93 de ore cu o mediere la 5 ore, prima valoare a mediei fiind afişată după 5 ore:

0,0

0,5

1,0

1,5

2,0

2,5

3,0

3,5

5 15 25 35 45 55 65 75 85

ora

dezintegrari/ora pCi/L

Figura 8.33: Variaţia în timp a valorii concentraţiei de Radon şi a numărului de impulsuri pe oră, medierea impulsurilor făcându-se pe 5 ore

Page 215: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

215

Prima valoare reală a concentraţiei este afişată după 5 ore, valorile de mai înainte fiind calculate din prea puţine eşantioane.

Cele două variante de aparate realizate sunt prezentate în figura 8.34. Sus stânga este prezentată varianta cu cameră de ionizare (mijloc) în timpul verificării măsurătorilor prin comparaţie cu SAFETY SIREN 2 (dreapta) şi un contor Geiger Muller (stânga). Modemul GPRS/GPS este pus pe aparat. Un detaliu al camerei de ionizare este prezentat în figura 8.34 dreapta. Figura 8.34, jos, arată aparatul cu cameră de detecţie montat şi echipat cu modemul GPRS/GPS EZ10 şi antene.

Figura 8.34: Cele două variante de aparate construite În acest proiect s-au implicat mai multe colective de studenţi şi cadre didactice, unul dintre ele condus de dl. conf. dr. ing. Gheorghe Morariu care au elaborat aparatul cu cameră de ionizare pentru care s-a depus o cerere de brevet de invenţie şi celălalt condus de dl. şef lucrări dr. ing. Kertesz Csaba care s-a ocupat de realizarea aparatului de măsurare a Radonului în aer cu camera de detecţie şi partea de prelucrare numerică.

Măsurarea prin integrare nu dă rezultatele dorite la concentraţii mici de Radon deoarece impulsurile de integrat sunt prea rare (câteva pe zi). Rezultate bune se obţin cu metoda de numărare a impulsurilor. Această concluzie a fost trasă după construirea lanţului analogic, achiziţia semnalului şi urmărirea lui o perioadă mai lungă cu modulul de achiziţii de National Instruments.

Page 216: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

216

Camera de detecţie este mult mai mică ca şi dimensiuni decât camera de ionizare şi în bibliografie se pare că este mai utilizată în aplicaţiile moderne. Totuşi, un dezavantaj al camerei de detecţie este faptul că primele rezultate sunt date cu mai mare întârziere decât camera de ionizare. Dimensiunile fiind mai mici, durează mai mult până aerul intră în incinta de măsurare. Aparatele cu cameră de detecţie se pretează la aplicaţii portabile.

Cu toate că nu există o limită teoretică a sensibilităţii se apreciază că sensibilitatea este 0,1pCi/l (4Bq/m3) datorită faptului că nu au existat mijloace tehnice de a verifica aparatul la un conţinut mai mic de Radon. În lucrarea [9] se arată un sistem de măsurare a Radonului care detectează şi o concentraţie de 18mBq/m3 (o descărcare/24ore) cu o cameră de detecţie de 70l polarizată cu 1500V şi o fotodiodă PIN. Această lucrare din 2006 arată corectitudinea liniei alese în acest proiect de a insista pe varianta constructivă cu fotoelement.

Concepţia de realizare a fost considerată originală, a fost prezentată în [10]. a fost înregistrată o cerere de invenţie [11 ], iar cercetările ulterioare publicate [12].

Bibliografie

[1] Cosma C., Jurcut T., Radonul şi mediul înconjurător, Editura Dacia 1996 [2] Ogruţan P., Documentaţie proiect CEEX 747/2006, Cercetări privind cartarea naţională

a Radonului (în interior şi în diferiţi factori de mediu) pentru protecţia populaţiei în conformitate cu cerinţele normelor internaţionale şi ale UE

[3] Yamamoto, S.; Yamasoto, K.; Iida, T., Development of a real-time radon monitoring system for simultaneous measurements in multiple sites, Nuclear Science Symposium, 1998. Conference Record. 1998 IEEE , Volume 2, 8-14 Nov. 1998 Page(s):1052 - 1055 vol.2

[4] Roca, V.; Boiano, A.; Esposito, A. et all A monitor for continuous and remote control of radon level and environmental parameters Nuclear Science Symposium Conference Record, 2004 IEEE , Volume 3, 16-22 Oct. 2004 Page(s):1563 - 1566 Vol. 3

[5] Noto, N.; Ohsumi, H.; Kobayashi, S.; Performance of the electrostatic collection type radon and toron detector Nuclear Science Symposium Conference Record, 2002 IEEE , Volume 1, 10-16 Nov. 2002 Page(s):429 - 434 vol.1

[6] Radio Communications & Supply SRL, [email protected], reprezentant TELIT, documentaţie tehnică TELIT EZ10

[7] Sandu D. D., Electronica fizica, Editura Didactica si Pedagogica, Bucuresti, 1973 [8] http://www.nmea.org, GPS [9] Nachab A., Radon reduction and Radon Measurements at the Modane Underground

Laboratory, 2nd Workshop in Low Radioactivity Techniques, 2006, Aussois [10] Morariu Gh., Ogrutan P., Kertesz Cs., Alexandru M., A Novel Procedure and Apparatus

for Measuring the Radon Concentration in Air, Proceedings of the 11-th International Conference on Optimization of Electrical and Electronic Equipments, Brasov, 2008, OPTIM 2008, IEEE Catalog Number 08EX1996C, ISBN1-4244-1545-4

[11] Purghel L., Morariu Gh., Ogrutan P., Alexandru M., Kertesz Cs., Suciu L., Metoda si aparat pentru masurarea concentratiei de Radon in aer si transmiterea datelor la distanta, cerere nr. OSIM A/00259 9.04.2008

[12] Ogrutan P., Romanca M., Gerigan C., Morariu Gh., Aciu L.E., Real Time and Multiple Location Radon (222Rn) Monitoring System, Advances in Electrical and Computer Engineering, ISSN: 1582-7445, Volume 10, Number 4, 2010, pp. 155 – 160

Page 217: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

217

Capitolul 9: JTAG- principii de testare

9.1.Principii generale şi unelte de testare

Orice sistem integrat pe bază de calculator trebuie testat, fie că este vorba despre un model experimental sau de producţia de serie. Testabilitatea trebuie asigurată încă din faza de proiectare, conform următoarelor principii:

1. Principiul vizibilităţii care presupune accesibilitatea la nodurile care vor fi testate; 2. Principiul controlabilităţii care presupune posibilitatea controlului principalelor

semnale de pe placă, adică inhibarea lor şi substituirea cu semnale de test; 3. Principiul sincronizării generale solicită sincronizarea tuturor evenimentelor de pe o

placă cu un singur semnal de tact care să fie posibil de generat şi de echipamentul de testare.

4. Principiul partiţionării presupune gruparea topologică pe placă a circuitelor în raport cu funcţiile realizate;

5. Principiul iniţializării generale impune crearea posibilităţii de a aduce circuitele de pe placă într-o stare cunoscută în momentul declanşării testului;

6. Principiul autotestării recomandă transferarea unor operaţii de testare sau auxiliare testării la nivelul plăcii.

Integrarea permite includerea funcţiilor de autotestare la nivelul chip-urilor (Built In Self Test BIST), şi funcţii de testare a interconexiunilor de pe plăci (Boundary Scan).

Testele pot fi clasificate în: 1. Teste parametrice- se evaluează parametrii statici ( ex. tensiune de offset etc.) sau

dinamici (timpi de creştere etc.); 2. Teste funcţionale- se evaluează funcţionalitatea. Condiţii le pot fi statice (cu frecvenţa

mai mică decât în circuit) sau dinamice (frecvenţe de test comparabile cu cele din circuit). Testele pot fi executate în condiţii parametrice impuse.

Efectuarea unui test se realizează conform schemei bloc din figura 9.1.

Figura 9.1: Testarea prin comparaţie cu un model

Generator de secvenţe

Circuit sub test DUT

Model Gold Unit Compactor

Compactor

Comparator

Rezultat test

Page 218: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

218

O secvenţă de test este aplicată circuitului de testat şi unui model (o placă martor sau un model matematic). Dacă secvenţa de ieşire este identică cu cea de referinţă atunci circuitul testat se poate considera fără defecte. Prin compactare se micşorează lungimea secvenţei de ieşire şi comparaţia durează mai puţin. Avantajul este umbrit de posibilitatea apariţiei unor defecte nedetectabile.

Pentru testarea funcţională a unui modul se aplică secvenţe de test la intrare şi se citesc răspunsurile atât la ieşirile plăcii cât şi în nodurile interioare pentru care s-a implementat principiul vizibilităţii şi poate fi:

1. Testarea funcţională statică îşi propune detectarea defectelor statice PP0, PP1 şi scurtcircuite;

2. Testarea dinamică, la frecvenţa de lucru, detectează de exemplu impulsuri parazite; 3. Testarea funcţională în sistem, cu 2 subvariante:

• Placa funcţionează în testor şi se simulează funcţionarea în sistem; • Placa funcţionează în sistem, testorul culege informaţii (ex. analizor logic)

La testarea în circuit acţiunea testului este fixată asupra unui singur chip. Secvenţa se aplică direct pe pinii chip-ului testat şi se citesc răspunsurile chip-ului. Accesul se face prin pat de cuie- bed of nails. Testorul trebuie să rezolve problemele:

1. Izolarea circuitului prin dezactivarea ieşirii tri state, inhibarea generatoarelor de semnal, întreruperea buclelor de reacţie;

2. Protecţia ieşirilor cuplate în nodurile forţate prin limitarea valorilor curenţilor injectaţi.

Defectul este o imperfecţiune fizică sau logică care apare în cadrul unei componente hardware sau software iar Eroarea este o manifestare a defectului şi reprezintă o deviaţie de la corectitudinea de execuţie a funcţiilor.

Cauzele defectelor pot fi: 1. Specificaţii de proiectare greşite 2. Implementări greşite 3. Componente defecte 4. Perturbaţii exterioare

Caracteristicile defectelor sunt: 1. Cauzele defectelor 2. Natura- hardware sau software 3. Durata defectelor- permanente, tranzitorii sau intermitente 4. Extinderea defectelor- generale sau locale 5. Valoarea defectului (la cele parametrice).

Defectele logice sunt: 1. Puneri pe 0 (PP0) şi puneri pe 1 (PP1) 2. Scurtcircuite, care pot fi între un traseu de semnal şi una din bornele de alimentare,

figura 9.2 sau între două trasee de semnal, figura 9.3. Aceste defecte se pot detecta indirect prin măsurarea curentului absorbit şi compararea lui cu un curent al unei plăci bune sau prin măsurarea temperaturii chip-urilor de pe placă.

Page 219: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

219

Figura 9.2: Scurtcircuit între un traseu de semnal şi una din bornele de alimentare

Figura 9.3: Scurtcircuit între două trasee de semnal

Apariţia sistemelor structurate pe magistrale a dus la necesitatea unor noi moduri de testare. În 1973 a fost introdus de către HP analizorul logic. Analizorul logic este dedicat activităţii de laborator în etapele de proiectare şi punere la punct a sistemului. Cerinţele necesare pentru un analizor logic sunt:

1. Să urmărească şi să vizualizeze mai multe semnale de intrare în acelaşi timp; 2. Să dispună de frecvenţe de eşantionare mai mari decât cel mai rapid semnal din

sistem; 3. Să dispună de un nivel de intrare de prag adaptabil la diferite tipuri de familii logice; 4. Să memoreze secvenţe de date; 5. Să dispună de posibilităţi de declanşare care să permită captarea unor blocuri de date

dintr-un flux de date; 6. Să asigure moduri variate de vizualizare.

VccR

Q1 Q2

D

PP0

În cazul unui defect PP0, dacă ieşirea estecomandată în stare 1 apare un curent mare dela Vcc prin R, Q1, D, GND. În cazul unui defect PP1, dacă ieşirea estecomandată în stare 0 apare un curent mare dela Vcc prin Q2, GND. Ambele defecte se manifestă prin creştereatemperaturii capsulei.

Dacă poarta 1 este comandată în 1 iar poarta 2 în 0 apare un curent mare de la Vcc prin R, Q1, D, Q4, GND.

R

Q1 Q2

D

R

Q3 Q4

D

Vcc

Poarta 1 Poarta 2

Page 220: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

220

Analiza logică poate fi:

1. Sincronă (cu tactul sistemului), dedicată părţii software. Se compară datele cu cele de referinţă şi se stabilesc diferenţele.

2. Asincronă (cu tactul mai mare decât tactul sistemului), dedicată părţii hardware, care pune în evidenţă defecte hardware- impulsuri eronate etc.

Schema bloc a unu analizor logic este dată în figura 9.4.

Figura 9.4: Schema bloc a unu analizor logic

De exemplu la o magistrală externă de MC trigger-ul de declanşare a memorării poate fi semnalul ALE care identifică începutul unui ciclu de acces la memorie sau I/O. Se poate genera un semnal special ca trigger prin software prin intermediul unui port de I/O. Există şi posibilitatea de declanşare cu un cuvânt stocat în analizor. La întâlnirea acelui cuvânt pe una dintre liniile de intrare se porneşte memorarea. Se poate stabili o întârziere a declanşării după apariţia cuvântului.

Cel mai comun mod de afişare este sub forma unei diagrame de timp, figura 9.5.

Figura 9.5: Afişarea datelor la un analizor logic

Linii de intrare

Bloc de eşantionare

Memorie Vizualizare

Tact de eşantionare Trigger 1- semnal de declanşare a memorării Trigger 2- semnal de oprire a memorării

A0 A1 D0 D1 IOR

Tact de eşantionare t

Se observă că impulsul de IOR apare prea târziu şi datele nu mai sunt active şi sistemul nu

Page 221: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

221

Analizorul de semnături se foloseşte în activitatea de depanare. Într-un punct se culege o “semnătură “, adică o formă comprimată a fluxului de date. Semnătura se compară cu cea determinată când circuitul funcţionează bine (sau este determinată prin calcul) şi se decide dacă nodul respectiv funcţionează bine sau nu. Dacă nu, se culege semnătura dintr-un nod anterior ş.a.m.d. Analiza de semnături se poate aplica la fenomene sincrone, inclusiv pe bază de magistrale dar nu se poate aplica la fenomene asincrone, cum ar de exemplu DMA pe magistrală. Schema bloc este dată în figura 9.6.

Figura 9.6: Schema bloc a unui analizor logic

Diagrama de semnal este dată în figura 9.7.

Figura 9.7: Diagrama de semnal preluat de analizorul de semnături

Comprimarea se realizează prin coduri ciclice. Schema de implementare a unei comprimări bazate pe cod ciclic se realizează prin registre cu reacţie. De exemplu dacă ecuaţia reacţiei este G=x16+x12+x7 atunci schema de implementare este cea din figura 9.8.

Date START STOP TACT

Unitate de testat

Nod

Analizor de semnătură

Bloc de selecţie fronturi

Memorietampon

Comprimare Afişare

1 0 0 1 1 1 0 1 1

TACT

START

STOP

DATE

MEMORAT t

Fereastra de analiză

Page 222: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

222

Figura 9.8: Implementarea comprimării

Modurile de lucru ale analizorului de semnături pot fi:

1. NORMAL, când datele, semnalele de START şi STOP apar repetitiv în nodurile testate. Testarea continuă dă posibilitatea punerii în evidenţă a defectelor intermitente (modificarea semnăturii la un ciclu din N cicluri).

2. REŢINERE, se afişează semnătura culeasă în prima fereastră după RESET 3. AUTOTESTARE, se introduc sondele la un generator de secvenţe şi se compară

semnătura obţinută cu cea de control şi se poate decide dacă analizorul funcţionează bine.

Metoda analizei de semnături poate fi aplicată şi în domeniul analogic [1], semnătura unei componente analogice fiind caracteristica ei tensiune- curent. Aparatul folosit pentru analiza de semnături conţine o sursă de tensiune Vs şi o impedanţă internă Zs şi este aplicat pentru ridicarea caracteristicii componentei ZL. Dacă aceasta este o rezistenţă se obţine pe un ecran caracteristica cunoscută, panta dreptei fiind măsura valorii rezistenţei, care poate fi comparată cu valoarea corectă. Reprezentarea se face în 4 cadrane. Semnătura unui capacitor este o elipsă, reprezentare obţinută la aplicarea unei tensiuni alternative. O elipsa asimetric aşezată reprezintă semnătura unui condensator cu pierderi (cu componentă rezistivă). La fel se pot analiza semnăturile altor componente, cum este de exemplu joncţiunea pn. Semnătura joncţiunii pn poate fi folosită pentru analiza circuitelor integrate, prin analiza fiecărei intrări/ ieşiri, pornind de la premiza că majoritatea defectelor apar în zona I/O.

Observaţie: Autotestarea este de o importanţă vitală pentru orice echipament electronic, oricât de simplu. De exemplu aprinderea tuturor indicatoarelor luminoase din bordul auto la introducerea cheii în contact constituie un test al semnalizărilor de avarie. Osciloscopul are un generator dreptunghiular de 1kHz pentru test. Orice realizare profesională trebuie să aibă posibilităţi de autotest hardware sau software.

Pentru modulele realizate ca model experimental este indicată folosirea unor LED-uri de semnalizare. Un LED la tensiunea de alimentare poate asigura utilizatorul că modulul este alimentat. Un set de LED-uri care se aprind pe rând după efectuarea unor secvenţe importante soft poate indica starea în care s-a blocat modulul. Unele plăci de bază de PC au fost prevăzute cu LED-uri pentru a marca evoluţia autotestului şi a încărcării sistemului de operare.

16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SAU EXCLUSIV

IS

Date

Page 223: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

223

9.2.Structura SCAN

Un circuit care conţine atât componente combinaţionale cât şi componente secvenţiale poate fi redesenat astfel, figura 9.9.

Figura 9.9: Partiţionarea unei scheme

S-a împărţit (partiţionat) această schemă pentru punerea în evidenţă a părţii combinaţionale şi a celei secvenţiale.

Proiectarea pentru testabilitate bazată pe registre de scanare se bazează pe adăugarea de elemente de circuit suplimentare unui chip (ceea ce nu mai este o problemă la gradul actual de integrare). Circuitele înzestrate cu aceste structuri de test au două moduri de funcţionare:

• NORMAL când execută funcţia pentru care este utilizat • TEST se execută operaţii de testare. Se doreşte ca semnalele de testare la pini să fie cât

mai puţine. Pe baza acestei redesenări se poate introduce noţiunea de structură SCAN multiplexată – MDSD Multiplexed Data Scan Design în care se adaugă un MUX pentru fiecare bistabil existent, figura 9.10. Dacă intrarea de selecţie S a multiplexoarelor validează calea I1 -D atunci circuitul funcţionează normal (N) iar dacă validează calea I0 -D atunci se validează modul de test (T).

Intrări combinaţionaleprimare

Intrări combinaţionalesecundare

Ieşiri combinaţionale primare Ieşiri combinaţionale secundare

Circuite combinaţionale

Q D CLK

Q D CLK

Q D CLK

CLK

Page 224: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

224

Figura 9.10: Structura SCAN multiplexată

Testarea părţii secvenţiale în modul test (T): 1. 0 la SI şi un număr de impulsuri CLK egal cu numărul de bistabili din structură

asigură iniţializarea tuturor bistabililor cu 0 (în lipsa defectelor); 2. 1 la SI şi apoi n-1 de 0 înseamnă trecerea fiecărui bistabil în 1, pe rând la fiecare

impuls de CLK; 3. se pot aplica 2n (n fiind numărul de bistabili) secvenţe pentru testarea integrală cu

toate combinaţiile posibile.

Condiţia de eroare se obţine dacă la ieşirea SO şirul de impulsuri nu este cel aşteptat.

Testarea părţii combinaţionale în modul test (T): 1. Prin încărcarea bistabililor (prin SI) cu o secvenţă de test se obţine un vector pe

intrările combinaţionale secundare. Se aplică un vector de test pe intrările primare şi astfel se poate asigura o secvenţă de test completă la intrările circuitului combinaţional şi se poate citi răspunsul la ieşirile combinaţionale primare;

2. Se pune T/N pentru funcţionare normală şi în bistabili se încarcă răspunsul părţii combinaţionale (ieşiri secundare);

3. Se pune T/N pentru test şi se citeşte serial la SO, după n impulsuri de tact, răspunsul citit la ieşirile secundare. Împreună cu ieşirile primare se obţine răspunsul părţii combinaţionale.

Intrări combinaţionaleprimare

Intrări combinaţionalesecundare

Ieşiri combinaţionale primare Ieşiri combinaţionale secundare

Circuite combinaţionale

Q D CLK

Q D CLK

CLK S

I0I1

S

I0I1

S

I0I1

S

Q D CLK

SI

SO

T/N

Page 225: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

225

În structura BOUNDARY SCAN fiecărui pin de I/O al unui chip i s-a ataşat o celulă specializată care separă logica internă de exteriorul chip-ului, figura 9.11.

1. T/N pe poziţia normal, D0 identic cu DI şi circuitul realizează funcţia pentru care a fost proiectat;

2. T/N pe poziţia test, bistabilii pot fi încărcaţi serial prin intrarea SI şi în n/2 impulsuri de CLK se poate încărca un vector de test la pinii de intrare, apoi se pot citi răspunsurile circuitului citind ieşirile. Tot pe poziţia test, bistabilii pot fi încărcaţi paralel cu vectorul de test prezent la intrare, cu semnalul SHIFT/ LOAD (S/L) pe poziţia LOAD (L). Ieşirile pot fi testate deplasând serial vectorul de intrare la ieşiri.

Figura 9.11: Structura BOUNDARY SCAN

Testarea interconexiunilor se poate realiza cu o buclă Boundary Scan pe o placă cu chip-uri care admit acest mod de test, figura 9.12:

1. Se încarcă paralel în primul circuit (A) un vector de test 010101... ; 2. Se deplasează serial vectorul de test de la intrări la ieşiri; 3. Se încarcă în circuitul B setul de ieşiri din circuitul A ş.a.m.d. până datele apar la

ieşirea SO a ultimului circuit; 4. Se analizează secvenţa de ieşire, de exemplu 2 de 0 alăturaţi arată existenţa unui defect

de punere la 0 PP0.

Logica internăDI SO DO S/L T/N SI

DI SO DO S/L T/N SI

DI SO DO S/L T/N SI

DI SI DO S/L T/N SO

DI SI DO S/L T/N SO

DI SI DO S/L T/N SO

SI S/L CLK T/N

Page 226: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

226

Figura 9.12: Testarea interconexiunilor

Testarea se face pe etape: 1. Testarea conexiunilor 2. Testarea chip-urilor.

Motivul testării în 2 etape este acela că o conexiune PP0, PP1 sau scurtcircuit între 2 trasee poate avea aceleaşi manifestări ca un defect intern. Pentru testare se aleg mai multe tipuri de şiruri de date, capabile să pună în evidenţă defectele logice PP0, PP1 sau scurtcircuite. De exemplu se poate aplica un şir de 0 şi se detectează punerile pe 1, apoi un şir de 1 şi se detectează punerile pe 0, apoi alternativ 0 şi 1 care detectează scurtcircuitele.

9.3.JTAG. Standardele IEEE 1149.1, IEEE 1149.4, IEEE1149.6 şi IEEE 1532

Grupul de lucru Joint Test Action Group (JTAG) a fost format în 1985 de către Harry Wardrop pentru a dezvolta o metodă de testare a plăcilor echipate după ce au fost produse. Grupul JTAG a realizat primul standard de testare în 1990 (Standardul IEEE 1149.1) în care se regăseşte arhitectura SCAN şi Boundary Scan. Tot în 1990 Intel a realizat primul procesor dotat cu JTAG, 80486. În 1994 a fost adăugat la standard un supliment care descrie limbajul BSDL (Boundary Scan Description Language). Curând JTAG a depăşit utilizarea la testarea plăcilor şi a început să fie folosit la accesul modulelor interne ale circuitelor integrate pentru urmărirea funcţionării lor (debugging). La un circuit cu interfaţă JTAG funcţionarea este vizibilă prin JTAG imediat după Reset. Un emulator sau interfaţă JTAG permite accesul la modulele interne care pot astfel să fie urmărite. Prin JTAG funcţionarea unui procesor poate fi oprită şi un program se poate rula pas cu pas sau procesorul rulează un program şi se introduc puncte de întrerupere în program. Există structuri cu acest mod de testare bine pus la punct cum sunt microcontrollerele ARM. O altă noutate introdusă este posibilitatea programării memoriei flash a circuitului prin JTAG.

SO SISO SI A 0

1

0

0

1

1

1

0

1

0

1

1

0

0

0

1

SI B 1

0

0

1

0

0

0

1

C

SO

Page 227: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

227

Circuitele cu JTAG cuprind în arhitectura lor un port de testare TAP (Test Access Port) care permite:

1. Testarea funcţiilor circuitului; 2. Testarea conexiunilor cu alte circuite; 3. Excluderea circuitului din procesul de testare la nivelul plachetei; 4. Operaţii de autotestare executate de circuit (opţional).

În schema bloc a unui modul JTAG (figura 9.13) se poate observa structura bazată pe regiştrii.

Figura 9.13: Modul JTAG

Regiştrii JTAG sunt: 1. Prin registrul BYPASS se exclude chip-ul din procesul de testare; 2. Registrul BOUNDARY SCAN este folosit pentru testarea circuitului şi conexiunilor; 3. Registrul UTILIZATOR, liber ca utilizatorul să realizeze operaţii de test sau autotest; 4. Registrul IDENTIFICARE permite identificarea circuitului. 5. În registrul INSTRUCŢIUNI se trimit serial (prin TDI) instrucţiunile de executat care

pot fi: • BYPASS, chip-ul este exclus din lanţul de testare. Logica chip-ului

funcţionează normal. Datele merg de la TDI spre TDO şi poate fi testat următorul circuit din lanţ;

Registre de date de test

Registru BOUNDARY SCAN

Registru BYPASS

Registru IDENTIFICARE

Registru UTILIZATOR

TDI TDOMUX

Decodificator

Registru Instrucţiuni

Controller TAP TMS TCK TRS

TCK- tact de test, independent de alte tacte TMS- modul de lucru al controllerului TAP TRS- test RESET TDI- date seriale de intrare TDO date seriale de ieşire

Page 228: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

228

• SAMPLE/ PRELOAD, logica chip-ului funcţionează normal şi ieşirile pot fi citite serial prin Boundary Scan. Se poate face astfel o operaţie de test funcţional în sistem;

• EXTEST, se testează conexiunile prin înscrierea registrului Boundary Scan cu valorile de test, apoi se citesc valorile din alt circuit.

Există şi instrucţiuni opţionale: • HIGHZ- se comandă toate ieşirile în stare de înaltă impedanţă; • IDCODE- se citeşte codul de identificare chip. • USERCODE – se selectează registrul UTILIZATOR (32 de biţi).

Observaţie: la ultimele 2 instrucţiuni nu este afectată funcţionarea normală simultană a chip-ului.

Standardul IEEE 1149.4 are scopul de a reduce dificultatea testării sistemelor care prelucrează semnale mixte digitale şi analogice. Standardul de testare a circuitelor digitale IEEE 1149.1 se poate extinde pentru testarea circuitelor analogice. În schema de testare a fost introdus ABM Analogue Boundary Module şi DBM Digital Boundary Module, figura 9.14.

Figura 9.14: Structura de testare analogică şi digitală

ABM

Secţiune analogică

DAC ADC

Secţiune digitală

TAP 1149.1

DBM

DBM DBM

DBM

DBM DBM

TDO TDI TMS TCK

Intrări analogice

Ieşiri analogice

Intrări digitale

Ieşiri digitale

Page 229: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

229

Modulele DBM au structura prezentată în figura 9.14. Pentru a se putea testa partea analogică care a fost separată se introduc modulele ABM care conţin convertoare AD şi DA de un bit. Se pot astfel unifica vectorii de test şi răspunsul circuitului în forma digitală. La prima vedere pare că se poate testa o valoare analogică prin comparare cu un singur prag (în convertorul AD de un bit), ceea ce este un nivel sărac de informaţie. De fapt pragul poate fi programat şi se pot face comparaţii succesive cu mai multe nivele, ceea ce măreşte precizia testării dar prelungeşte şi timpul de testare. Transformarea din digital în analogic şi invers are loc în celula ABM, figura 9.15.

Figura 9.15: Structura ABM Analogue Boundary Module

Procedura de test: • Se citeşte semnalul IN, se compară cu valoarea de referinţă şi rezultatul (1 bit) se

trimite pe SDO (CAD de un bit). Astfel s-a măsurat intrarea (K1 deschis); • Se închide K1 şi se pot genera spre circuitul intern +5V, GND, VH, VL (pentru un

circuit digital) dar şi valori analogice de la TBIC; • Pentru o celulă ABM de ieşire se schimbă pe schema bloc poziţia pin extern cu circuit

intern. • Pentru citiri mai exacte a tensiunii de intrare, la referinţă se pot conecta valori

analogice prin TBIC.

Dezvoltarea în timp a JTAG a dus la necesitatea introducerii a noi standarde [2]. IEEE 1149.6 a fost introdus pentru testarea circuitelor LVDS (Low Voltage Data (Differential) Signal) şi a circuitelor cuplate capacitiv. Testarea se realizează cu impulsuri generate cu un bit în BSR (Boundary Scan Register) şi recepţionate pe 2 biţi (prin recepţie diferenţială). Acest mod de testare se mai numeşte şi AC-EXTEST.

ABM SDO Referinţă

K1

+5V GND VH VL

Magistrală internă analogică de test

TBIC Test Bus Interface Circuit

Analog Test Access Port

Circuit intern

Pin extern de intrare

Page 230: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

230

IEEE 1532 a fost introdus în anul 2000 pentru a standardiza programarea PLD şi FPGA, indiferent de producătorul circuitului. Algoritmul care programează, şterge, citeşte şi verifică circuitul se află într-un fişier BSDL (Boundary Scan Description Language).

9.4.Interfaţa JTAG la microcontrollerul Atmega64

La familia ATmega interfaţa JTAG poate fi folosită la testarea plăcii prin scanare, la programarea memoriei nevolatile şi la debugging.

Funcţionarea JTAG este validată de un bit cu înscriere fuzibilă (fuse bit JTAGEN) care iniţial este programat pentru validarea JTAG. Pe lângă această validare este nevoie ca bitul JTD din MCUCSR (MCU Control and Status Register) să fie setat. Pentru a evita programările false, aplicaţia trebuie să repete setarea acestui bit, adică să execute de două ori instrucţiunea de scriere a bitului JTD. Dacă interfaţa JTAG nu este validată atunci pinii au semnificaţii de port paralel de uz general şi controllerul TAP este în Reset. Dacă se doreşte programarea MC prin JTAG şi bitul JTD nu este setat atunci se forţează linia de Reset în Low două tacte şi bitul JTD este setat.

TAP (Test Access Port) este un automat cu 16 stări care controlează funcţionarea interfeţei JTAG. Navigarea între stările TMS se face cu comenzi pe pinul TMS (comenzi seriale pe 4 biţi). Întotdeauna LSB este trimis ca prim bit în cuvintele seriale JTAG.

9.4.1. Programarea memoriei prin JTAG

Programarea memoriei Flash şi EEPROM prin JTAG se poate face după validarea interfeţei JTAG. Fiecare instrucţiune generată printr-un cuvânt serial de 4 biţi trimis pe linia TMS acţionează asupra unui registru care devine după instrucţiune registru de date. Datele se introduc în acest registru sau se extrag pe liniile TDI respectiv TDO. Instrucţiunile care pot fi trimise serial către TAP sunt (valoarea hexa este dată în paranteză):

• AVR_RESET (CH) se resetează MC fără a se reseta controllerul TAP. Reset Register este selectat ca registru de date şi durata reset-ului este dată de valoarea acestui registru;

• PROG_ENABLE (4H) se validează scrierea memoriei Flash sau EEPROM prin JTAG, registrul Programming Enable Register este selectat ca registru de date de 16 biţi;

• PROG_COMMANDS (5H) registrul Programming Command Register este selectat ca registru de date de 15 biţi;

• PROG_PAGELOAD (6H) registrul de 1024 biţi Virtual Flash Page Load Register este selectat ca registru de date, egal cu numărul de biţi dintr-o pagină de memorie Flash;

• PROG_PAGEREAD (7H) registrul de 1032 biţi Virtual Flash Page Read Register este selectat ca registru de date. În acest registru se citesc cei 1024 biţi dintr-o pagină Flash plus 8 biţi.

Page 231: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

231

După instrucţiunea PROG_ENABLE pe linia TDI se introduce o secvenţă 1010 0011 0111 0000 (A370H) numită semnătura de programare pentru a valida programarea în Programming Enable Register. După terminarea programării registrul trebuie resetat.

După validarea programării, cu instrucţiunea PROG_COMMANDS se introduce în registrul Programming Command Register o comandă care realizează citirea/ scrierea/ ştergerea memoriei, a biţilor fuzibili şi a biţilor de blocare. Comenzile sunt date în foile de catalog a MC. De exemplu citirea memoriei Flash se face prin introducerea în ordine pe linia TDI, după instrucţiunea PROG_COMMANDS: 0100011 00000010 pe TDI este comanda de citire Flash; 0000111 aaaaaaaa pe TDI este adresa, octetul superior; 0000011 bbbbbbbb pe TDI este adresa, octetul inferior; 0110010 00000000 pe TDI comanda de citire a locaţiei; 0110110 00000000 pe TDO apare octetul inferior în forma xxxxxxxx oooooooo; 0110111 00000000 pe TDO apare octetul superior.

La fel există secvenţe pentru citirea /scrierea Flash, citirea/scrierea EEPROM, citirea/scrierea biţilor fuzibili şi ai celor de blocare.

9.4.2.Debugging prin JTAG

Debugging-ul prin JTAG se bazează pe existenţa unei căi de scanare între CPU şi modulele interne existând posibilitatea inserării de maximum 4 Break Point-uri. Ca şi instrument software se poate folosi AVR Studio, modul debug fiind posibil atât în limbaj de asamblare cât şi în C. Pentru a lucra în modul debug trebuie ca bitul JTAGEN să fie programat şi nici un bit de blocare să nu fie programat. Orice bit de blocare programat duce la blocarea sistemului de debug din raţiuni de securitate.

În mod debug utilizatorul poate executa un program pas cu pas, poate trece peste anumite instrucţiuni, poate executa un program până la atingerea unei anumite stări, poate opri sau reseta execuţia. Instrucţiunile JTAG pentru debug (8H, 9H, AH, BH) sunt considerate private şi sunt documentate doar pentru firmele care vând software pentru Atmel.

Pentru a uşura munca de debugging Atmel a creat un emulator în circuit numit JTAGICE mkII, figura 9.16.

Figura 9.16: JTAGICE mkII

JTAGICE

Placa cu MC AVR

USB /RS232 JTAG/

debugWIRE

Page 232: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

232

JTAGICE permite accesul la toate resursele microcontrollerelor din familia AVR. Locul acestui dispozitiv este dat în figura 9.16 dreapta, între un PC care rulează AVR Studio şi placa pe care este plasat microcontrollerul. Interfaţa cu PC-ul poate fi RS232 sau USB. Pentru MC cu număr mic de pini a fost introdusă ca interfaţă de testare debug/WIRE în care comunicaţia se face pe un singur pin, cel de Reset. JTAGICE poate realiza:

1. Emularea tuturor funcţiilor analogice şi digitale ale MC AVR de la ATmega 16 la ATmega 6490 prin JTAG şi de la Attiny 13 la ATmega 168 prin debug/WIRE. La apariţia unor modele noi de MC, prin descărcarea unei noi variante de AVR Studio JTAGICE va putea lucra şi cu modelele noi;

2. Programarea MC clasică sau prin JTAG; 3. Mod debug în care se pot introduce Break Point-uri, când programul ajunge la o

adresă sau într-o gamă de adrese, când datele sunt citite/ scrise la o adresă sau într-un interval de adrese, la schimbarea fluxului de citire a programului din memoria program;

4. Monitorizarea tuturor resurselor interne ale MC.

Conectorii de acces pe placă sunt recomandaţi de Atmel cu configuraţia pinilor dată în figura 9.17, acces SPI şi debug prin debug/WIRE (stânga) şi JTAG (dreapta).

Figura 9.17: conectori recomandaţi de Atmel

Pentru debug de tip debug/WIRE, bitul care validează operarea este neprogramat, ca urmare este nevoie de programarea lui, ceea ce se realizează prin programarea SPI. La conectorul JTAG semnalul nTRST este un Reset al interfeţei JTAG şi nu este folosit.

9.4.3.Testarea prin JTAG

Calea de testare Boundary Scan are rolul de a stabili valori logice şi de a le citi la pinii de I/O. Toate circuitele care au interfaţă JTAG se conectează într-un lanţ prin TDI/TDO, testarea formând un cuvânt serial lung. Secvenţa de test este generată de un controller exterior care apoi citeşte rezultatul şi îl compară cu cel aşteptat. Se recomandă ca MC să fie în Reset pe timpul testării, altfel, la ieşirea din mod test MC va rămâne într-o stare nedeterminată. Intrarea în Reset se poate face comandând pinul RESET cu un nivel low sau executând instrucţiunea JTAG proprietară AVR_RESET. După intrarea în Reset instrucţiunea JTAG HIGHZ devine inutilă. Pentru a putea lucra în acest mod bitul JTAGEN trebuie să fie programat şi bitul JTD din registrul MCUCSR trebuie să fie 0. De asemenea se recomandă ca tactul TCK de test să fie mai mare decât tactul intern. Instrucţiunile utilizate pentru testare sunt:

Page 233: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

233

• EXTEST (0H), instrucţiunea selectează calea de scanare ca registru de date pentru testarea conexiunilor exterioare. Pentru pinii de I/O se poate realiza invalidarea Pull-up, se poate stabili direcţia, se poate seta sau reseta un pin;

• IDCODE (1H), instrucţiunea (opţională) selectează registrul de identificare (ID) de 32 de biţi ca registru de date. Registrul ID conţine: versiunea MC(4 biţi), tipul MC (16 biţi, ATmega 64 are 9602H) şi fabricantul pe 11 biţi (Atmel are 01FH);

• SAMPLE_PRELOAD (2H), instrucţiunea permite inspectarea pinilor de I/O fără a afecta funcţionarea MC şi de a preîncărca datele de test în latch-ul de ieşire, fără a le transmite la pinii de ieşire. Calea de scanare este selectată ca registru de date;

• AVR_RESET (CH), MC este forţat în Reset, mai puţin controllerul TAP. Instrucţiunea este folosită şi la programare;

• BYPASS (FH), se selectează registrul Bypass ca registru de date. Când este selectat acest registru ca şi cale între TDI şi TDO se scurtează calea de scanare, mod utilizat când se testează alte circuite JTAG din sistem.

O schemă bloc simplificată a unui pin de I/O testabil JTAG (schema completă este dată în foile de catalog) este dată în figura 9.18.

Figura 9.18: Schema simplificată a unui pin testabil JTAG

Multiplexoarele comandă funcţionarea normală sau testarea JTAG. Celula de testare este conectată în lanţul JTAG. Calea de testare la un ATmega 64 are 205 biţi şi poate fi găsită în foile de catalog. De exemplu, primii biţi din lanţ sunt alocaţi portului F astfel:

EXTEST

Output Data

Output Control

Input Data

Pullup Enable

Spre celula următoare

MUX Celulă în calea de scanare

Vcc

MUX

MUX

Pin exterior

Semnale De la celula JTAG anterioară

Page 234: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

234

Bit Pin Semnificaţie 0 PF0 Pullup Enable 1 PF0 Control 2 PF0 Data 3 PF1 Pullup Enable 4 PF1 Control 4 PF1 Data ..... ..... ......

Testarea modulelor de interfaţă integrate în MC impune nişte precauţii. Astfel de exemplu la modulul de interfaţă serială TWI (Two Wire Interface, compatibil cu I2C), se pot testa în mod normal cei 2 pini SCL şi SDA şi este accesibil semnalul de control TWIEN. Acest semnal este accesibil pentru a dezactiva un bloc din componenţa interfeţei care controlează viteza de creştere / descreştere a frontului semnalelor. Setarea TWIEN şi OC (Output control) poate duce la rezultate imprevizibile.

O celulă specială care permite doar observarea este alocată semnalului de Reset. Tactul are de asemenea celule speciale, doar de observare. MC admite o gamă largă de semnale de tact (RC intern, tact extern, cristal extern, rezonator ceramic) şi validarea tactului este realizată cu celule de testare normale. Comparatorul analogic şi convertorul analog digital au celule de test cu structuri speciale.

Pentru a uşura testarea circuitelor, un fişier de stimuli şi răspunsuri de referinţă este în general disponibil pe site-urile producătorilor. Aceste fişiere se numesc fişiere BSDL (Boundary Scan Description Language).

9.5.Unelte pentru testare JTAG

Testarea plachetelor cu circuite se poate realiza la scară diferită în diferite situaţii- pe scară largă post producţie în firmele specializate sau în proiectare unde se testează un număr mic de plăci. Din acest motiv echipamentele de testare JTAG sunt foarte diverse. O selecţie din controllerele JTAG de productivitate mică prezentate în [2] este:

• Controllere sub forma unor module separate, prevăzute cu interfaţă USB, Ethernet şi FireWire, cu tact TCK până la 40MHz, figura 9.19 stânga;

• Plachete pentru conectarea pe magistrale de tip PXI, PCI sau PCIe, cu tact TCK până la 40MHz;

• Controllere compatibile DIMM care pot fi introduse în conectori DIMM; • Module de dimensiuni mici şi ieftine cu interfaţă USB, TCK până la 6MHz, figura

9.19 mijloc; • Montabile în dulapuri standard (Rack Mountable), figura 9.19 dreapta; • Plăci cu controller JTAG şi spaţiu de dezvoltare pentru utilizatori.

Page 235: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

235

Toate aceste variante pot avea 1 până la 4 controllere TAP şi pot fi prevăzute cu pini de I/O pentru preluarea semnalelor (de exemplu cel montabil în dulap are 256 pini de I/O).

Figura 9.19: Controllere JTAG- JT 37x7/TSI independent, JT 3705/USB cel mai ieftin, JT 37x7/RMI montabil în dulap standard de 19”

În [3] este prezentat un aparat de testare AEROFLEX de mare productivitate, figura 9.20 stânga, prevăzut pe lângă JTAG cu 2048 de canale de testare prevăzute cu pini. În [4], figura 9.20 dreapta este prezentat aparatul Digital Test cu 1400 de canale de testare. Cu aceste aparate se pot face teste automate la ieşirea de pe linia de producţie şi se pot implementa strategii de testare. De regulă, în activitatea industrială de mare productivitate testarea JTAG este combinată cu testarea cu pat de ace.

Figura 9.20: Aparatul AEROFLEX 4250 şi Digital Test Eagle MTS180

Partea software pentru aplicaţiile JTAG poate fi împărţită în două mari clase, cu nenumărate variante:

• Pe staţii dedicate, cum este aplicaţia AEX (Application Executor) [2], în care sunt definite nivele de acces. Cel care a proiectat placa îşi poate defini secvenţa de test JTAG şi stabileşte strategia de testare, în paşi dependenţi de paşii anteriori de testare. La cel mai jos nivel de acces operatorul poate rula secvenţa de testare şi observă rezultatele;

• În anumite situaţii este util ca secvenţele de test să fie încorporate în programele utilizate şi care sunt familiare utilizatorului. Astfel există secvenţe realizate în LABVIEW, pentru C sau pentru Visual Basic. Acest tip de programe se numesc PIP.

Un software important este cel de verificare BSDL (Boundary Scan Description Language), care verifică discrepanţele între fişierul de verificare BSDL şi circuitul de testat, verifică

Page 236: Introducere În Interfeţe Paralele Şi Interfeţe Seriale

236

erorile de sintaxă şi de semantică. De asemenea se poate crea un fişier BSDL dacă există circuitul fizic.

Bibliografie

[1] www.polarinstruments.com

[2] www.jtag.com

[3] http://www.aeroflex.com/ats/products/product/ATE/Test_Systems/

[4] http://www.digitaltest.de/digitaltest.php?loadtype=products&lang=en&filename=mts180