Sunteți pe pagina 1din 236

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.

Canal de comunicaţie

Interfaţă binară Interfaţă binară


(digitală) (digitală)

Mesaj
Reacţie- mesaj de
Transmiţător Receptor
confirmare pe calea de
retur

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).

Emiţător Receptor
D0
D1
D2
D3
D4
D5
D6
D7

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

1
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ă.

D0-D7

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

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.

Emiţător Receptor
DATE

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.

2
Tensiune

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

0 1 1 0 0

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:

Emiţător Receptor Emiţător Receptor


Date Date
Tact Tact Tact
GND GND

a b

Emiţător Receptor
Date
Generare tact din
GND datele citite

c Tact

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

3
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

4
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.

1 Master 2 3
B B B

B B B
4 5 n

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

5
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.

CLK

Adrese

/RD

/WR

Date

Date citite Date scrise

Citire Scriere

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.

CLK

ALE

/RD

/WR

Adrese/ date
AD0-AD7
Date scrise
Adrese
Citire Scriere Adrese
Date citite

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

6
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.
Magistrala de
adrese
SEL SEL
1
Master 2 i Slave

Magistrala de
date

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.

7
Magistrala de 0000H
adrese A0-A15
3FFFH
4000H
A14 A15 MEM1
7FFFH
8000H
A0-A13 CS A0-A13 CS MEM2
MEM1 MEM2 BFFFH
C000H

FFFFH

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

Magistrala de 0000H
adrese A0-A15 MEM1
3FFFH
4000H
A15, A14 MEM2
DCD 7FFFH
8000H
A0-A13 CS MEM3
MEM1 A0-A13 0,0 0,1
CS BFFFH
MEM2 1,0 C000H MEM4
A0-A13 CS 1,1
MEM3 A0-A13 FFFFH
CS
MEM4

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ă.

8
Magistrala de
adrese A0-A15
0000H

A2-A15 0180H
0183H
DCD
FFFFH
0180H
Detalii privind decodificarea
A0 A1 CS A15 14 13 12 A11 10 9 8 A7 6 5 4 A3 2
I8255 0 0 0 0 0 0 0 1 1 0 0 0 0 0

DCD0 DCD1 DCD2 DCD3

0 1 8 0

AND

CS
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.

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

DCD

CS1,2,3

D0-D7 A0 A1 CS RD WR
I8255

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.

9
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):

ALE

/PSEN

/RD
Date
PORT 0

PORT 2

A0-A7 din RI (8 biţi) A8-A15 din DPH


sau DPL (16 biţi) (16 biţi)

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).

10
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.

11
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.

CLK (tact CPU)

ALE
Adrese Adrese
anterioare /RD

Adrese A15-A8

Adrese/ date
AD0-AD7
Date anterioare Adrese Date citite

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ă.

12
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

13
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.
Magistrala
externă F2MC-
16LX
AD07-AD00

A15-A08

A21-A16

ALE
/RD
/WR
/HAK
HRQ
RDY
CLK

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ă.

14
• 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.

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

F-BUS 32
RAM ROM CPU FR D-BUS 32
biţi,
magistrală biţi, Harvard,
unică de date (magistrala de
şi instrucţiuni date)

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

Convertor 32 biţi- 16 Controller de


biţi magistrală

R-BUS 16 biţi magistrală Real BUS


unică de date şi instrucţiuni (magistrală
Dispozitive I/O integrate externă)

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.

Magistrala internă
Adrese Date
Magistrală externă de
Buffer de Acces date, 32 de biţi
date citite

Scriere date Acces

Magistrală externă de
Buffer de adrese adrese 32 de biţi

Generare CS CS0X-CS7X

ASR AMR

CLK, RDY, BGRNTX,


Generare semnale BRQ, RDX, WR0X-
de control WR3X

Figura 2.16: Interfaţa cu magistrala externă

15
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.

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
AA AA D31 D31
AA AA CC AA AA BB CC DD
D23
BB BB D23 D23
BB BB DD BB
D15
CC CC D15 D15
CC CC
D07 biţii cei mai
DD D07 D07
DD DD puţin semnif.
DD
D00 din adresa
D00 D00
externă

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

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.

16
CLK Tactul de magistrală

AS Strob de adrese

32 linii de adresă
A31:0

D31:0 32 de linii de date, primul ciclu datele sunt


citite, în al doilea sunt scrise
/RDX
Semnal care indică un ciclu de citire
/WR0-3 4 semnale care indică ciclul de scriere şi
precizează modul de transfer 8/16 sau 32 biţi
/CSnX
Semnal de selecţie bank, pentru bank-ul n

/CSmX Semnal de selecţie bank pentru bank-ul m

Citire din zona externă Scriere în zona externă


bank-ul n bank-ul m

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.

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

RESET
WRX
CSX RDisplay
RDX Ganalogic
RDY B
CLK
INT
DREQ Video
DACK input

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

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

17
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

18
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.

19
Gazda USB
Root hub

Dispozitiv compus
Funcţie Hub 1 Funcţie
USB USB Hub 2
Endpoint

Funcţie Funcţie
Funcţie Funcţie USB USB
USB USB

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.

20
VBUS VBUS
D+ D+

D- D-
GND GND

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ă.

21
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.

22
Câmp Endpoint A
SYNC PID CRC
adresã

8b 8b 7b 4b 5b

SYNC PID DATA CRC B

8b 8b 0- 16b

SYNC PID C

8b 8b

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.

23
FT245BM
Timer
3,3V Generator al Control
tensiunii de 3,3V FIFO şi
Motor serial Buffer de interfaţă
paralelă
D+ Emiţător/ USB recepţie FIFO
D0-
Receptor USB 128 octeţi
D7
D-
Generarea RD
Buffer de
protocolului emisie FIFO
WR
TxE
384 octeţi
RxF

PLL pentru refacerea


tactului din date
Control
EEPROM serial
Oscilator x8
6MHz

EEPROM serial

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.

D0- RxF
D7
RD
WR

TxE D0-
D7

Figura 3.5: Scrierea / citirea datelor în mod paralel

24
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

25
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]:

26
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.

27
tact

Regulator
tensiune 2MHz

Prescalare tact
24x
Interfaţa USB

D+ DPLL DPRAM
refacere USB
tact
D-

VBUS

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ă.

VC VC VC

Comandă
VBUS VBUS VBUS alimentare

D+ D+ D+
D- D- D-

a b c

Figura 3.10: Modurile de lucru ale MC

28
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:

Funcţie USB Gazdă


Pipe 6 USB

Endpoint 6 Buffer
Program
client

Endpoint 1

Buffer
Endpoint 0

Buffer

Pipe 0

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ţă.

29
Î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:

Linia USB
SETUP OUT OUT IN

RXSTPI

RXOUTI
TXINI

CONFIGURARE DATE STARE

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].

30
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

31
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.

32
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

Perechea A,
torsadată
Alimentare
Ecran
Perechea B,
torsadată

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).

33
Data

Strob

Data
XOR
Strob

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).

34
Î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.

Spaţiul 1
Imprimantă

Splitter Bridge

Repetor

Calculator 1 Spaţiul 2

Calculator 2
Cameră digitală

Imprimantă

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.

35
Sloturi de timp garantate Slot de timp liber

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

125µs

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.

Microprocesor,
microcontroller sau PCI

Nivel bus management


Placa TI
Nivel tranzacţie Averna TSB43C
SedNet 1394 Audio/
video
Nivel legătură LLC TI
TSB12

Nivel fizic PHY TI


TSB41

Canale IEEE 1394

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ă.

36
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.

37
SedNet
1 Motorola
Controller Link MCore
de nivel Izolare Controller MMC2107
2 fizic galvanică TSB12
TSB41 LLC
PHY
3
Date 256k RAM
direct static
3 porturi
IEEE 1394

Conectori I/O

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

38
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.

TPA0+ Decodare
TPA0- Port 0 Interfaţa
date
spre
TPB0+
TPB0- nivelul de
Arbitrare şi legătură
TPA1+ controlul
Port 1 Date D0-D7,
TPA1- liniei
Semnale de
TPB1+ comandă şi
TPB1- stare
TPA2+
TPA2- Port 2

TPB2+ Codare date


TPB2-

TPBIAS0 Generare Generator tact,


TPBIAS1 tensiune multiplicare PLL
TPBIAS2

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

39
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.

Nucleul LLC Interfaţa


Controller microcontroller Adrese 7
PHY FIFO biţi
2k ATF Adrese 7 biţi
Date 16
2k GRF Date 32 biţi biţi,
comenzi,
stări

Port de date direct D0-D15


(Mover Port) Control,
tact

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.

40
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.

TSB43CA43A
ARM7TDMI Interfaţă
1 paralelă 16
Controller Link biţi
256ko
2 de nivel Controller program
fizic UART
JTAG
Linii I/O
3

HSDI Date
Criptare / decriptare
audio/
video

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.

41
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

42
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

43
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 Plaja admisă în funcţie de Plaja admisă (Volt)
High la intrare tensiunea de alimentare
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 Plaja admisă în funcţie de Plaja admisă (Volt)
Low la intrare tensiunea de alimentare
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)

44
• 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.

45
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

46
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

47
Magistrala Flex Ray
Conexiune de
diagnostic

Controlul traficului de Control bord Controlul corpului


date la motor şi şasiu maşinii

Flex Ray / CAN CAN / LIN


CAN

-control motor -control confort


-control şasiu -clima
-control direcţie -uşi
control frânare -iluminare
-trapă
-bord
-sistem navigaţie
-ecran de
informare

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

48
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.

0 1 1 0 1 0 0

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.

49
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

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.

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.

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.

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.

50
Transceiver Transceiver
LIN LIN
TxD TxD

RxD RxD

Bus bidirecţional
pe un fir LIN

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.

51
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.

ATA 6612 Magistrala


LIN
MC LIN
ATmega88 ATA6624

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.

Vbat
EN Ieşire din Protecţie
Regulator
WAKE sleep sau subtensiune
silent
NRES
KL-15 Watchdog
Vcc
NTRIG
Control LIN
TxD fronturi
Detecţie
supracurent şi
RxD Filtru supratemperatură

Figura 4.8: Schema bloc a modulului LIN

52
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.

Twd Twd
Vcc

NTRIG

NRES

RESET (4ms) datorită RESET (4ms) datorită


subtensiunii watchdog-ului

Figura 4.9: Diagrame de timp pentru generarea semnalului de RESET NRES

53
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

54
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.

SOF Câmp de arbitrare 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

Nivel 0 logic Nivel 1 logic


Bus liber (dominant) (recesiv)

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.

55
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:

Câmp de arbitrare

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

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.

SOF Câmp de arbitrare Câmp ACK EOF INT


CRC

Identificator 11 biţi RTR CRC

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.

56
• Segmentul de propagare compensează întârzierea pe linie şi se poate programa între 1 şi
8T.

Timp de bit

SYNC PROP FAZA1 FAZA 2

Punct de eşantionare pentru sincronizare

Bit de date recesiv


transmis pe linie

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

57
î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.

Cadru de eroare

Flag de Delimitator
eroare

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ă).

58
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

59
Low Speed). MC primeşte datele, supraveghează magistrala şi poate comanda viteza
nominală, dar primul mesaj poate fi pierdut.

Vdd

Protecţie termică

TxD CANH
Control driver
Rs CANL

RxD

Vref Referinţă
Receptor

MCP2551

Vss

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.

60
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ă:
Nodul A câştigă magistrala
Nod A /TxCAN
Nod B /TxCAN
Bus CAN

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.

61
Căsuţa poştală
Buffer Message
date 14 Object 14

Canal CAN RX
-mod de lucru-
-timp de bit- TX
Buffer Message
date 1 Object 1

Buffer Message
date 0 Object 0

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;

62
• La o eroare de Overrun a timerului CAN.

Timpul de bit

FCAN

TSYNC TPRS TPHS1 TPHS2

Punct de Punct de
eşantionare transmisie
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

63
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:
Gazda

Interfaţa cu gazda

Generarea protocolului

Interfaţa cu canalul fizic

Canal A Canal B

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:

Segment static Segment dinamic Simbol Timp bus inactiv

Sloturi statice Minisloturi

Unităţi de informaţie numite microtick

Figura 4.22: Cadrul Flex Ray

64
Cadrul conţine:
• Un bit de gestionare a reţelei
• Un bit care indică un cadru gol Antet pe 5
• Un bit de cadrare octeţi
• Identificator de cadru pe 12 biţi
• Lungimea cadrului (în octeţi) codificată pe 7 biţi
• CRC pentru antet pe 11 biţi Date 0-254
• Identificator de mesaj (opţional) pe 16 biţi octeţi + CRC
• 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.

Gazda Modulul de ataşare /


separare protocol separă
antetul de date şi trimite
datele către gazdă la
Interfaţa cu gazda
recepţie şi adaugă
informaţia de protocol la
transmisie.
Generarea protocolului

Interfaţa cu canalul fizic

Transmisie Recepţie

Figura 4.23: Fluxul de date

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


figura 4.24.

65
1 2 3 Numărător de sloturi

Canal A Cadru 1 Cadru 2

Canal B
Cadru 1 Cadru 2

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

Segment static

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.

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

Canal A Cadru m Cadru m+3

Canal B
Cadru m+3

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

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ă.

66
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.
Slave-ul abandonează cadrul
după recepţia simbolului

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

Eveniment Masterul
extern abandonează
cadrul curent

Cadrul abandonat Cadrul iniţiat de


eveniment

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.

MB88121
Port A RAM A Gestionare RAM pentru
Transceivere
mesaje mesaje
FlexRay Port B RAM B

Interfaţa cu Buffere de date


Microcontroller
gazdă microcontrollerul

Suport DMA Gestionarea Gestionarea Gestionarea


şi întreruperi erorilor tactului şi a erorilor
timpului

Figura 4.27: Schema bloc simplificată a interfeţei specializate FlexRay

67
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.

68
MB91F465XA
Module integrate:
Modulator de CPU 32 de biţi -2 timere de 8 canale,
tact Core FR70 16 biţi
Tact 100MHz -PPG 12 canale
Supervizor -11 canale cerere
de tact întrerupere
-5 canale DMA
-Ceas de timp real
FlexRay A Flash 544k -Watchdog hardware
FlexRay B -17 canale ADC
-8 canale Input
SRAM 32k Capture
CAN A -6 canale Output
CAN B Compare

LIN A
LIN B
LIN C

I2C

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

69
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.

Centralizator al măsurărilor În pneu


Wake-up
Driver de 125kHz
MC de Receptor Microcontroller
control antenă
wake-up cu transmiţător
LIN sau ATA5286
ATA5283 868MHz
CAN ATAR862

Receptor
T5743
Date
868MHz Senzor de presiune
sau
433MHz
Senzor de temperatură
Alimentare

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.

70
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.

ATAR862
Enable PLL Amplificator antenă

Microcontroller
Port 1 CPU 4 biţi
(2 linii) ROM 4kx8biţi EEPROM
RAM 256x4biţi 32x16biţi
Port 2
(4 linii)

Port 4 Timer 1
(4 linii/ funcţii alternative) Interfaţă (Watch dog)
serială
Port 5 Timer 2
(3 linii/ funcţii alternative) 8/12 biţi

Port 6 Timer 3
(2 linii/ funcţii alternative) (8 biţi)

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.

71
Tact
SC
SO
TO3
1 1 0 0

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.

T5743
MC
Control
DEMOD

AMP

FTB PLL

LNA X VCO

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.

72
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.

704 perioade

Semnal
ASK

Wakeup

Date

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.

Antene de
emisie
wakeup şi
recepţie date
Emiţător pentru
wakeup şi MC
Receptor de ATAR862, pentru
date şi montare în pneuri,
driver de alimentare cu
antenă baterie

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

73
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,

74
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.
z
y

Operation
mode
x

Detection
mode

Operation Detection

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

75
Vout

V cc

Unull

0 1 5 10 15
T(ms)

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+3
Semnal eşantionat
Zp+2
Zp+1
Zp
1 cuantă
Zp-1
1 ms
Zp-2
Zp-3 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 <
nu da
NR_SMPL

Zp= round(acc / NR_SMPL)

Figura 4.41: Algoritm de calcul a valorii de nul

76
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

Afişor grafic
64x128

Senzor Sistem
giroscopic de
dezvoltar RS232

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

77
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.

78
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.

79
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.

80
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.

Pendul

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

81
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].

2.5

1.5

0.5

0
11
16
21
26
31
36
41
46
51
56
61
66
71
76
81
86
91
96
1
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.

82
Timer de bază

Bloc de generare tact Controlul stabilizării oscilaţiilor

Generare tact Divizare Multiplicare PLL Selecţie Interfeţe


principal cu 2 cu 1,2,3,4,6 tact
Cuarţ sau
generator
Modulare tact Tact
PLL CPU
Generare Divizare
subtact cu 2 sau 4 DMA
Cuarţ sau
generator
Tact
maşină

Watch Timer Watchdog


Timer

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.

83
V[dB/µV] V[dB/µV]
50 50

40 40

30 30

20 20

10 10

0 0

-10 -10
0.1 50 100 150 200 250 300 350 400 450 f[MHz] 0.1 50 100 150 200 250 300 350 400 450 f[MHz]

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

84
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

85
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.

86
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.

a b

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

87
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.

88
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.

Alternator
Sistemul integrat de
comanda

Motor care simulează


Baterie Motorul maşinii

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ă.

89
Infăşurare Microcontroller
Energia motorului de excitaţie FUJITSU 8FX
maşinii
PWM
Input Capture
ALTERNATOR
ADC1
ADC2

UART
Baterie (acumulator
auto) 12V

Sarcina variabilă-
consumatori

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.

90
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.

91
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ă

92
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.

60

50

40

30

20

10

0
1 2 3 4

Gunoi Încălzire Casnice Automobile

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.

93
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.

Senzor de
poziţie

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.

Senzor de
poziţie
Senzor poziţie
Intrări digitale:
-temperatura motor
Validare
-tensiune baterie
........................

Software

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

94
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

95
[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

96
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.
Valoarea
numerică a Traductor
poziţiei finale de viteză
Comparator
numeric Convertor SERVOMECANISM
D/A

MCC
Poziţia Traductor de SARCINA
actuală poziţie

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.
v

Accelerare Viteza Frânare


ta constantă tc tf
Figura 5.2: Traiectoria de viteză

97
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:

PWM1P0=1 PWM1P0=0

PWM2P0=0 MCC PWM2P0=1 MCC

PWM1P0

PWM2P0

Tensiunea
pe motor

Factorul de umplere este egal la cele 2 canale PWM şi Motorul se roteşte pentru că tensiunea la bornele
motorul nu se roteşte pentru că tensiunea la bornele lui lui (PWM1P0-PWM2P0) este diferită de 0.
este 0

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.

98
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.

99
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

100
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.

Impulsuri de
comandă SERVOMECANISM SARCINA

MPP

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.

În acest caz controllerul trebuie să poată inversa


polaritatea pentru o deplasare a curentului în
ambele sensuri. Controllerul trebuie să alimenteze
înfăşurările succesiv cu o anumită secvenţă pentru
un sens şi secvenţa inversă pentru celălalt sens. În
desenul alăturat o parcurgere a 4 faze înseamnă o
rotire de 360°. Motoarele reale au mai multe
înfăşurări şi un pas înseamnă o deplasare
unghiulară mică.

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.

101
PWM1P0

PWM2P0

Tensiunea pe +V
înfăşurarea 0
1a-1b -V
Factorul de umplere al PWM1P0 este > decât Factorul de umplere al PWM1P0 este < decât
al PWM2P0, tensiunea aplicată este pozitivă al PWM2P0, tensiunea aplicată este negativă

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.

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

Figura 5.11: Inversarea curentului în motoarele unipolare

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

Prizele mediane sunt


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

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

102
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].

TACT t

FAZA 1 t

FAZA 2 t

FAZA 3 t

FAZA 4 t

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

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.
MOV DX, adr
Port paralel, MOV AL,01
adresa “adr” F1 F2 F3
OUT DX, AL
D0
CALL delay
D1 MOV AL,02
OUT DX,AL
D2 CALL delay
D3
MOV AL, 04
........ OUT DX,AL
CALL delay

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.

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

Figura 5.15: Motor pas cu pas

103
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.

PWM1P0 conectat la 1a

PWM1M0 conectat la 2a

PWM2P0 conectat la 1b

PWM2M0 conectat la 2b

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

104
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.

1mm

Roata Ruleta
Zona
dinţată de gradată
traductor
antrenare

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.

105
Senzor Hall
fixat pe cablaj

Magnet fixat pe
rotor

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.

106
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.

ENABLE

PHASE

IMOTOR

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.

107
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.

108
intern

FRK0
Numărător de 16 biţi 0/1 Selecţie tact
FRK1

OUT0
Registru de comparare OUT2
0/2/4/6 OUT4
OUT6

OUT1
Registru de comparare OUT3
1/3/5/7 OUT5
OUT7

IN0
Registru de captură IN2
0/2/4/6 IN4
IN6

IN1
Registru de captură IN3
IN5
1/3/5/7 IN7

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.
Cerere de întrerupere

TCCSL

IVF IVFE STOP MODE CLR CLK2 CLK1 CLK0

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

FRCK

Ieşire pentru comparare

TCCSH ECKE

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

109
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).

Valoare numărător Valoare numărător


Registrul de
comparare
FFFFH FFFFH este BFFFH

BFFFH BFFFH

7FFFH 7FFFH

3FFFH 3FFFH

0000H 0000H
timp timp
/RESET /RESET
INT INT

Figura a Figura b

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.

110
OCCP0 Registru de comparare 0 OUT0

Valoare numărător

OCCP1 Registru de comparare 1


OUT1

OCS Controlul comparării

ICP1 ICP0 ICE1 ICE0 CST0 CST1

Cerere de întrerupere comparator 1 /comparator 0

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.

111
Valoare numărător

FFFFH

BFFFH

7FFFH

3FFFH OCCP0=BFFFH
OCCP1=7FFFH
0000H
timp Ieşirile schimbă valoarea
logică la iniţializarea
/RESET
numărătorului.
OUT0 CMOD1/0=00B
OUT1

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.

112
Selecţie tact PWM1 Selecţie ieşire PWM1P0
PWM1M0

Registru de Registru de
comparare PWM1 selecţie PWM1

PWM2 Selecţie ieşire PWM2P0


PWM2M0

Registru de Registru de
comparare PWM2 selecţie PWM2

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.

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

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.

113
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.

LIMIT STOP Port de


Interfaţa cu comandã a
Flaguri urgenţe
microprocesorul motorului
AD0/DB0 MC0
........ ............
INIT Flaguri de stare
AD5/DB5
DB6 PROF
MC7
DB7
/ALE
/CS Generator de profil
/OE
Port PWM PULSE
R//W
RESET SIGN

REGISTRE
INTERNE Comutator PHA
Reacţie PHB
CHA CHB PHC
INDEX PHD
/SYNC Timer
EXTCLK

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ă.

114
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).

FOTO 1

SENS FOTO 2

FOTO 1

SENS FOTO 2

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.

HCTL 1100 +5V


MC0 CD/A
MC1

vo
Io +
Conv. I-U
MC7

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

115
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.

U
+5V

2,5V

00H 40H 80H C0H FFH registrul 08H

-2,5V

-5V

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%.

Factor de umplere
100%

50%

80H 9CH 00H 32H 64H


registrul 09H

SIGN=1 SIGN=0

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.

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

/INDEX

PHA

PHB

PHC

PHD

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.

U4
26
1 PHA 27
SYNC PHB 28
PHC 29
U4 PHD
12 2 18
pb0 13 3 AD0 MC0 19
AT90S1200 pb1 AD1 MC1
14 4 20
pb2 15 5 AD2 MC2 21
pb3 16 6 AD3 MC3 22
pb4 17 7 AD4 MC4 23
pb5 18 8 AD5 MC5 24
pb6 19 9 AD6 MC6 25
pb7 AD7 MC7
2 17
pd0 3 37 SIGN 16
pd1 6 40 R/W PULSE
Y1 pd2 OE
4 7 39 31
2MHz xtal1 pd3 8 38 CS CHA 30
5 pd4 9 36 ALE CHB
xtal2 pd5 11 RESET 33
reset

C3 C4 pd6 INDEX
12
30pF PROF 13
30pF R6 INIT 14
1

34 LIMIT 15
10K VCC EXT CLK STOP
C6
1uF
HCTL1100

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.

117
.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

118
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.
U4
26
1 PHA 27
Vcc SYNC PHB 28
PHC 29
U5 PHD
31 1 2 18
EA/VP P1.0 2 3 AD0 MC0 19
C7 19 P1.1 3 4 AD1 MC1 20
Y2 X1 P1.2 4 5 AD2 MC2 21
22pF P1.3 AD3 MC3
2MHz 5 6 22
P1.4 6 7 AD4 MC4 23
C8 18 P1.5 7 8 AD5 MC5 24
X2 P1.6 8 9 AD6 MC6 25
22pF P1.7 AD7 MC7
9
RESET 21 17
Vcc P2.0 22 37 SIGN 16
C9 12 P2.1 23 40 R/W PULSE
13 INT0 P2.2 24 39 OE 31
14 INT1 P2.3 25 38 CS CHA 30
R7 15 T0 P2.4 26 36 ALE CHB
10uF T1 P2.5 RESET
10K 27 33
39 P2.6 28 INDEX
38 P0.0 P2.7 12
37 P0.1 17 PROF 13
36 P0.2 RD 16 INIT 14
35 P0.3 WR 29 34 LIMIT 15
34 P0.4 PSEN 30 EXT CLK STOP
33 P0.5 ALE/P 11
32 P0.6 TXD 10
P0.7 RXD
HCTL1100
8051

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).

119
;##############################################################
;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
;###############################################################

120
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ă.

MC68705
+5V
OSC1 PWMA1
Motor de c.c.
OSC2
+5V cu perii
Vdd
PC0 Oprit
PC1
PC2
Creştere viteză
Scădere viteza

Vss

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
...........................................................

121
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.

MC68705

OSC1 PWMA1
ULN Înfăşurări
PWMA2 2003 stator
OSC2 PWMA3
+5 Vdd
V PA0 Traductori
PB7 Hall
PB6

Motor
Vss

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.

122
83C51FA
L293
P1.3 (Driver)
u M

P1.4
Traductor Hall
cu ieşire digitală

Generator de tact

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.

P1.3

P1.4

Tensiunea u
la bornele
motorului
a b

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.

123
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

124
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
PWM1 este dată de relaţia:
f OSC
f PWM = ,
2 × ( PWMO + 1) × 255

Aceasta conduce la o frecvenţă cuprinsă între 92Hz şi 23,5kHz, pentru fosc=12MHz.

Registru de comparare
PWM0

Comparator
PWM0

Prescaler Numărător
PWMP PWMC

PWM1
Comparator

Registru de comparare
PWM0

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.

125
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

126
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.

127
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.

Comparator
PWM2M0
Logica de analiză
+
Selecţie tact
Numărător de 8 biţi
- 1/9 AVCC

Rezultat
Validare/
Registru ZPD0 invalidare
alimentare

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.

128
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.

129
Î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).

A1 I
ON

VS
G A2

OFF VS V

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.

Logica de
220V comandă

Sarcina

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.

130
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ă

131
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

132
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:
T π
U ef = 1 T ∫ u 2 dt = (220 2 ) 2 2π .2 ∫π sin 2 a.da
0
4

Efectuând calculele rezultă o valoare efectivă de 209,73V, ceea ce este acceptabil.

π/4
Figura 6.8: Explicativă la amorsarea cu întârziere a triacului

133
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).

Optocuplor +5V MC
R1 CNY17
220V
ADC0
c.a.
R GND
R2

MC
R1
220V
AIN0
c.a.
AIN1
R2

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

134
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.

135
Condensator Intrerupator
de pornire centrifugal
Condensator
permanent

Alimentare
220V c.a. Infasurare Rotor
stator

Infasurare de
pornire

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.

136
Curentul absorbit
(simulare 1,8s de la
pornire)

Turaţia

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.

137
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.

R1 Motor
Alimentare 220V Traductor de
asincron temperatură
c.a. K monofazat
R2

Trad.
curent

MICROCONTROLLER
Condensator şi
FUJITSU T înfăşurare 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ă

138
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.

Circuit de
Traductor putere:
Hall de curent

Triac cu
radiator şi
ventilator
Modulul de
dezvoltare
Concerto
Redresor de
precizie cu AO
şi decuplare
optică

Motorul şi
placa de probă

Figura 6.14: Modulele folosite la experimentare

139
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.

Neglijenţă 25,7% Apa


2,6% Foc 8,2%

Vandalisme 8.,9%

Izolaţie 27,9%
Supratensiuni 26,6%
Furtuni 0,1%

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.

140
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ă;

141
• 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.

Senzor Hall de Comanda triac


curent şi senzor pentru
de tensiune decuplarea
tensiunii

Microcontroller
Sursa de Sistem cu
alimentare Convertor AD microcontroller
pentru
întreruperea
Port I/O tensiunii la
apariţia unei
supratensiuni sau
Transmisia scurtcircuit
Web server sau modem
datelor prin GPRS
Internet

Figura 6.17: Schema bloc a dispozitivului de protecţie la supracurent şi supratensiune

142
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.

Plus15V D2
R1 56K
D4 + C4
4700uF/25V
R2 DIODE
10K

T1 12 D1
1 28
1 1N4001 U1 (RESET)PC6 PC5(ADC5)
1 2x6V L7805 2 27
10 1 3 (RXD)PD0 PC4(ADC4)
220V~ VIN VOUT 3 26
6 (TXD)PD1 PC3(ADC3)
1 D 4 25
7 D3 + N (INT0)PD2 PC2(ADC2)
G
C1 5 24
1N4001 4700uF/25V (INT1)PD3 PC1(ADC1)
2 6 23
(XCK/T0)PD4 PC0(ADC0)
7 22
Minus15V VCC GND
8 21
R8 GND AREF
D5 C5 319K 9 20
12MHz (XTAL)PB6 AVCC
+ 4700uF/25V 10 19
(XTAL2)PB7 PB5(SCK)
11 18
C2 C3 (T1)PD5 PB4(MISO)
30pF 30pF 12 17
(AIN0)PD6 PB3(MOSI/OC2)
13 16
R7 (AIN1)PD7 PB2(SS/OC1B)
R LIM (0,8) P1 14 15
0-10K (ICP)PB0 PB1(OC1A)

R6 ATmega8
SARCINA

R9
21.7K

+15V -15V
S

BLOC DETECTOR
HALL DE VARF

LEM LA 100-P

R4
R5
U4 370
6
Q1 2 1 470 MOC3020 1
BTA41/600B
2

3
4

BLOC DECUPLARE

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.

143
Tensiunea creşte în limita admisă Se micşorează valoarea medie Se blochează
tensiunea

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.

144
Curentul este sub limita admisă Curentul Curentul depăşeşte
atinge limita 1 a 2-a limită

Se testează menţinerea
supracurentului

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.

145
6.3.3.Recuplarea automată şi treptată a consumatorului la tensiune

Tensiunea este oprită (sarcina decuplată) Tensiunea creşte Tensiunea este normală
treptat

Recuplarea
sarcinii

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.

146
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.
TRIAC cu
ventilaţie
Senzor Hall

Microcontroller

Conexiune Web server


Ethernet (Site player)

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ă:

147
• 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

148
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

149
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.

150
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

151
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

152
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.

Filtru Filtru Filtru


Antenă

Filtru RX Demodulator
de X X
intrare TX

Comutator
SINTETIZATOR

Modulator

Circuit de control
Controlul
puterii de
emisie Adrese, comenzi, stări
Date digitale
Interfaţă serială sincronă

DataMsg DataClk SLE SCK SDATA

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.

153
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ă.

154
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.

SLE

SCK

SDATA

A3 A2 A1 A0 R/W D31 D30 D29 ……………………………..D0

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.

MC AVR AT86RF MC AVR AT86RF


TxD DataMsg Px.4 DataMsg
RxD DataClk Int1 DataClk
Int0 Wakeup Int0 Wakeup
Px.1 SDATA Px.1 SDATA
Px.2 SCK Px.2 SCK
Px.3 SLE Px.3 SLE

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

155
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.

Reţeaua GSM ...


Controller PCU ...
de staţie HLR
Staţie GSM
(Base ...
Station)
Modem
GPRS
GPRS
SGSN GGSN Internet

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

156
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.

157
Figura 7.11: Schema electrică de conectare a modulului GM862 la interfaţa RS232

Interfaţa Modulul
USB TELIT

Interfaţa Cuplă de
RS232 alimentare

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

158
• 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

159
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

160
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.

Microcontroller
DMUX
TX1 MAX232 TX
RX1 MUX
MAX232 RX
TX2
RX2
PI/O (selecţie)

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

161
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.

Vcc

LNA

BlueCore4 SPI
UART
USB
PCM
PIO
AMP
FLASH

PVcc

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

162
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.

163
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.

Vcc

MC ARM7 I2C
UART
PCM

FLASH

Transceiver radio PBA313


BALUN ASIC

BALUN

Figura 7.15: Modul Bluetooth Ericsson ROK 101

PVcc
Vcc
MAX3232 UART ROK101
RS232
sau
BTM222

CODEC PCM

Figura 7.16: Schema electrică tipică de utilizare pentru transferul de date şi voce

Comenzile HCI au următorul format, figura 7.17.

164
0 4 8 12 16 20 24 28 31

Codul instrucţiunii Numărul de Parametrii


OCF (10b) OGF (6b) parametri

OCF- OpCode Command Field, 10 biţi OGF-OpCode Group Field, 6 biţi


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].

165
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®.

166
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.

Nucleu ARM7
Regiştri

Controller Bluetooth
USB Controller

64k RAM 2x64k RAM

Interfaţă UART
PCMCIA
32k RAM

Controller de memorie
Voice Codec DAC
2x32k RAM ADC

RAM intern
64k Controller de
întreruperi
Memorie externă
RAM/FLASH 2xTimer

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

167
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.

MSB
ENABLE
DATA
CLOCK

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ă.

168
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

169
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.

RF MAC Modul
Formare pachete securitate

TxFIFO RxFIFO LCR SCR

Interfaţa SPI Reset Întreruperi GPIO

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

170
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.

/CS

SCK

SDI

0 A5 A4 A3 A2 A1 A0 1 D7 D6 D5 D4 D3 D2 D1 D0

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ă.

171
Tip câmp Lungime (octeţi)
Preambul 4
Început cadru 1
Lungime cadru 1
Control cadru 2
Număr secvenţă 1 Intră în calculul
Intră în Adresa destinaţiei 0, 4, 10 lungimii
calculul Adresa sursei 0, 2, 4, 8, 10 cadrului
CRC 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.

Cadre cu acces la orice nod


prin CSMA-CA GTS2 GTS1

Spaţiu rezervat
pentru cadrul de
semnalizare
Cadre de semnalizare

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.

172
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.

173
Emiţător MAC SRAM FLASH
IEEE
RF 802.15.4
Unitate centrală
Receptor XAP2b

Packet Encriptare Controller


întreruperi
Trace
Interface Alimentate
CLK
permanent
Canal
Timer serial 2 MISO
MOSI
UART ADC Watch LOAD
dog

Oscilator
RC intern GPIO 0-16

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;

174
• 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.

Întreruperi

Unitate UART TxD, RxD,


centrală Canal RTS, CTS
DMA
SPI MISO,
MOSI, CLK

I2C SCL, SDA

Figura 7.27: Schema bloc a controllerului serial UART

175
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.

SN250
Întreruperi

Unitate ADC0
centrală Convertor
ADC1
Σ∆ ADC2
ADC3

Generare
Vref
Vdd

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.

176
Validare timer

Valoare contor

INT zero
INT A
INT B
INT maxim

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].

Interfaţă de programare
şi testare

Figura 7.30: SN250, schema electrică de aplicaţie tipică

177
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.

178
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.
Transponder
Cititor Energie Controller
RFID Memorie

Date

Figura 7.32: Structura sistemului RFID

179
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.

Antena 1 Rx RS232
Antena 2 Tx
GND GND CALCULATOR
5V port 2 SAU MC GAZDĂ
port 1

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 Lungime Parametri
Comandă CRC
modulului cadru (1..n)
1 octet 1 octet 1 octet n octeţi 2 octeţi

180
Tabelul 2
Adresa Lungime Parametri Confirmare
Răspuns CRC
modulului cadru (1..n) operaţie
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.

181
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.

Transponder U320M Senzori,


Energie Gestionare elemente de
Emisie / energie execuţie
Recepţie

Redresor MC gazdă
EEPROM Vdd
Date 512 bit

Interfaţă SDA
serială SCL
Detecţie
câmp
Modulator
bifazic
Extragere
tact

FC NGAP MOD
Figura 7.35: Schema bloc a unei etichete cu U320M

182
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.

MOD

Tensiunea
pe antenă

NGAP

FC
Front folosit pentru
wake-up
Alimentare din câmp

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:

START Octet control ACK Octet date ACK Octet date ACK

START 5 biţi adresa EEPROM 2 biţi control R/W ACK

Figura 7.37: Structura secvenţei de transfer prin interfaţa serială

183
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.

START Octet control ACK Bit 1 Bit 2 Bit 3 ... Bit n STOP

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:

184
ZigBee GPRS 802.11 Bluetooth Protocoale
proprietare
Aplicaţii Monitorizare Reţele Internet Conectivitate Conectivitate
şi control internaţionale între între
de date şi voce dispozitive dispozitive
Durata Ani Săptămâni Săptămâni Săptămâni Luni
bateriei
Viteza 250kps 2Mbps 54Mbps 720kbps 115kbps
(300Mbps
la n)
Raza 100m Km 100m 100m 200m
Avantaje Putere şi cost Rază mare de Viteza Comoditate Preţ şi consum
mic acţiune 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

185
[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

186
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.

187
Camera de Sistem înglobat cu microcontroller
ionizare Afişaj LCD grafic Linie telefonică
128x64 analogică/ digitală

Etaj analogic de
amplificare camera
de ionizare

Camera de detecţie Etaj analogic de Unitate centrală cu


cu element amplificare microcontroller Modem de linie
fotosensibil camera de detectie Atmega 16 telefonica (opţional)

Sursa de alimentare Antena


Intrare 12V DC Modem GPRS GPS/GPRS
Ieşiri 250V DC/ 5VDC /3,3V (opţional)

Generare referinţă de timp


GPS
(opţional)

Alimentator extern 12V DC cu


acumulatori cu posibilitatea încărcării
acumulatorilor de la reţea

Figura 8.1: Schema bloc a aparatului de măsurare a Radonului

188
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.

Ion negativ
Incinta închisă cu aer

U R

Ion pozitiv

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:
Q
∆V = − = 0.96.10 −3 V sau aproximativ 0,1mV/MeV
C
Î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.

189
8.2.2.Camera de detecţie
Camera de detecţie este prezentată în figura 8.3.

Fante laterale Anod, 250VDC,


pentru intrarea realizat din plastic
aerului metalizat, opac

Element
fotosensibil
LED pentru
autotest
Catod, 250VDC

Semnal de
ieşire

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]:
dv
m = qE unde m este masa electronului şi q sarcina electrică (8.1)
dt
Efectuând prima integrare se obţine:
v = ηEt + M

ηE.t 2
După a doua integrare se obţine r = + M .t + N unde t este variabila timp, M şi N
2
q
constante de integrare care se determină din condiţiile la limită iar η =
m

190
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ă:

dv x dv y
=0 şi = −η .E
dt dt
După prima integrare se obţine:
v x = v 0 .t. cos θ
v y = −η .E y .t + v0 .t. sin θ

După a doua integrare, cu condiţiile iniţiale la t=0, x=0 şi y=0:


x = v0 .t. cos θ
t2
y == η .E. + v0 .t. sin θ
2
Eliminând timpul din ultimele două relaţii se obţine traiectoria electronului:

x2
y = −η .E + x.tgθ (8.2)
2.v02 . cos 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.

x2 η .E q.E
y = −K. + x.tgθ unde K= = ≅ 2.10 6
cos 2 θ 2.v 2
0 2.m.v02

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.

0 0
6 6
− 2×10 − 3.997×10

10 10
y ( x) 1 .10 y ( x) 1 .10

10 10
− 2×10 − 2⋅ 10
10 10
2 .10 2 .10
0 50 100 0 50 100

1 x 100 1 x 100

Figura 8.4: Traiectoria electronului în câmp electric pentru un unghi de intrare de 0° (stânga)
şi 90°(dreapta)

191
0 0
6 6
− 4×10 − 7.994×10

10
y ( x) 1 .10 y ( x) 1 .10
10

10 10
− 2⋅ 10 − 2⋅ 10
10
2 .10 10
2 .10
0 50 100 0 50 100
1 x 100 1 x 100

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.

RS
If
Cb

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.

192
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

193
Î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)

194
Î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:

CINT
IIN

-
Vo

Figura 8.13: Schema de principiu a integratorului transimpedanţă

195
Tensiunea de ieşire Vo este:
−1
V0 =
C INT ∫I IN (t ).dt

Pentru un curent constant IIN, la sfârşitul intervalului de integrare TINT se obţine:


TINT
V0 = − I IN
C INT

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

196
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.

Microcontroller

PWM

Comparator 1
Amplificator de
LED instrumentaţie
ADC canal 1

Fotoelement
Camera de Prag 1
detecţie
Comparator 2

ADC canal 2
Sursă 250V
DC
Prag 2

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

197
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:

Impuls de
calibrare Zgomot
Impuls de
descărcare

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.

198
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

199
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.

200
280

275

270

265

260

255

250

245

240
1000 2000 3000 4000 5000 6000 7000 8000

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.

385

380

375

370
100 200 300 400 500 600 700 800 900 1000

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

201
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 DESCRIERE


SEMNAL
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.

202
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:

203
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.

204
Se aşteaptă un impuls pe
linia de întrerupere 1

Apare un impuls

Se verifică dacă există da Se ignoră impulsul de


impuls pe linia de pe linia 1 considerat
întrerupere 2 perturbaţie

nu

Se verifică dacă impulsul nu Se ignoră impulsul de


are durata standard pe linia 1 considerat
perturbaţie
da

Se numără impulsul prin


incrementarea unui
registru

Figura 8.22: Procedura de numărare a impulsurilor


2. Procedura de totalizare şi afişare, figura 8.23.

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

Figura 8.23: Procedura de totalizare şi afişare

205
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.

Se introduc valorile N1, N2 şi D

Se fac N1 citiri şi se calculează


media

Se realizează o citire la finalul nu


unei ore. Valoarea citită este mai
mare cu D decât media N1.

da
Se incrementează registrul de
valori care depăşesc cu D media
N1

nu
Se realizează o nouă citire. Se goleşte registrul de
Valoarea citită este mai mare cu valori care depăşesc cu D
D decât media N1. media N1
nu da

S-au citit N2 valori care depăşesc


cu D media N1
da
Se generează o avertizare

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,

206
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.

207
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

208
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ă.

VIN V1 tON tOFF


tOFF tON
L1 Vo
Vo
V1
PWM IL
LM 3524 D1 RL
Co
∆IL+ ∆IL-

Figura 8.26: Convertor DC DC pentru ridicarea tensiunii de alimentare (Step Up)


VL .T V .t
∆I L = , deci ∆I L + ≅ IN ON dacă se neglijează tensiunea de saturaţie a
L L1

tranzistorului Q1
(V0 − VIN ).t OFF
la fel ∆I L − ≅ dacă se neglijează tensiunea pe D1
L1
∆IL+=∆IL- deci V IN .t ON = VO .t OFF − VIN .t OFF

209
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:
⎛ t ⎞
VO = VIN ⎜⎜1 + ON ⎟⎟
⎝ t OFF ⎠
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.
PIN = I IN .V IN şi
⎛ t ⎞
PO = I O .VO = I O .VIN ⎜⎜1 + ON ⎟⎟
⎝ t OFF ⎠
şi PO=PIN
⎛ t ⎞
astfel că I IN = I O ⎜⎜1 + ON ⎟⎟
⎝ t OFF ⎠
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

210
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.

211
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.

Conexiune în exterior Camera de


pentru sursa de detecţie
alimentare

Amplificator
analogic

Unitate centrală cu
microcontroller Sursa de
alimentare

Afişaj LCD

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.

212
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.

213
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:
3,5

3,0

2,5

2,0

1,5

1,0

0,5

0,0
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

214
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.

215
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, office@rcsco.com, 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

216
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.

Rezultat
Model test
Compactor
Gold Unit Comparator

Generator de Circuit sub


Compactor
secvenţe test DUT

Figura 9.1: Testarea prin comparaţie cu un model

217
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ă.

218
Vcc
R În cazul unui defect PP0, dacă ieşirea este
comandată în stare 1 apare un curent mare de
la Vcc prin R, Q1, D, GND.
Q1
În cazul unui defect PP1, dacă ieşirea este
D comandată în stare 0 apare un curent mare de
la Vcc prin Q2, GND.
Ambele defecte se manifestă prin creşterea
Q2 temperaturii capsulei.
PP0

Figura 9.2: Scurtcircuit între un traseu de semnal şi una din bornele de alimentare

Vcc
R R

Q1 Q3 Dacă poarta 1 este comandată în 1 iar


poarta 2 în 0 apare un curent mare de la
D D Vcc prin R, Q1, D, Q4, GND.

Q2 Q4

Poarta 1 Poarta 2

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.

219
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.

Linii de
intrare
Bloc de Memorie Vizualizare
eşantionare

Tact de eşantionare Trigger 1- semnal de


declanşare a memorării
Trigger 2- semnal de oprire
a memorării

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.

A0 Se observă că
A1
impulsul de IOR
apare prea târziu şi
D0 datele nu mai sunt
D1 active şi sistemul nu
IOR

t
Tact de eşantionare

Figura 9.5: Afişarea datelor la un analizor logic

220
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.

Analizor de semnătură
Unitate de
testat Date Bloc de Memorie Comprimare Afişare
Nod tampon
START selecţie
fronturi
STOP

TACT

Figura 9.6: Schema bloc a unui analizor logic

Diagrama de semnal este dată în figura 9.7.

TACT

START

STOP

DATE

MEMORAT t
1 0 0 1 1 1 0 1 1

Fereastra de analiză

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.

221
IS
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SAU
EXCLUSIV Date

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.

222
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.

Intrări combinaţionale Circuite combinaţionale Ieşiri combinaţionale


primare primare
Intrări combinaţionale Ieşiri combinaţionale
secundare secundare

Q D

CLK

Q D

CLK

Q D

CLK
CLK

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).

223
Intrări combinaţionale Circuite combinaţionale Ieşiri combinaţionale
primare primare
Intrări combinaţionale Ieşiri combinaţionale
secundare secundare

Q D I0 SI
I1
CLK S

Q D I0
I1
CLK S

Q D I0
I1
SO CLK S

T/N
CLK S

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.

224
Î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.

DI SO DO DI SI DO
Logica internă
S/L S/L
T/N SI T/N SO

DI SO DO DI SI DO
S/L S/L
T/N SI T/N SO

DI SO DO DI SI DO
S/L S/L
T/N SI T/N SO

SI S/L CLK T/N

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.

225
SI SO SI SO SI SO
0 A 1 1 B C
1 0 0

0 1 1

1 0 0

0 1 0

1 0 0

0 1 1

1 0 0

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.

226
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.

Registre de date de test


Registru BOUNDARY SCAN MUX
TDI TDO
Registru BYPASS

Registru IDENTIFICARE

Registru UTILIZATOR

Decodificator TCK- tact de test,


independent de alte tacte
Registru Instrucţiuni TMS- modul de lucru al
controllerului TAP
TRS- test RESET
TMS
Controller TAP TDI- date seriale de intrare
TCK
TDO date seriale de ieşire
TRS

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ţ;

227
• 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.

Secţiune analogică
Intrări Ieşiri
analogice analogice

ABM DAC ADC

DBM DBM

DBM Secţiune digitală DBM


Intrări Ieşiri
digitale digitale

DBM DBM

TDI TDO
TAP 1149.1
TMS
TCK

Figura 9.14: Structura de testare analogică şi digitală

228
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.

+5V GND VH VL

ABM
SDO Referinţă
K1

Circuit
intern
Magistrală internă
analogică de test
Pin extern
de intrare Analog
TBIC Test Bus Test
Interface Circuit Access
Port

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.

229
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.

230
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.

USB
/RS232 JTAG/
debugWIRE

JTAGICE
Placa cu
MC AVR

Figura 9.16: JTAGICE mkII

231
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:

232
• 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.

Spre celula următoare EXTEST Vcc


Pullup Enable
MUX
Celulă în
calea de
scanare
Output Control
MUX

Pin
Output Data exterior
MUX

Input Data

Semnale De la celula
JTAG anterioară

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:

233
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.

234
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ă

235
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

236

S-ar putea să vă placă și