Documente Academic
Documente Profesional
Documente Cultură
Canal de comunicaţie
Mesaj
Reacţie- mesaj de
Transmiţător Receptor
confirmare pe calea de
retur
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
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
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
Î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
Pentru a se asigura la receptor tactul corect de recepţie există mai multe variante, prezentate în
figura 1.6:
a b
Emiţător Receptor
Date
Generare tact din
GND datele citite
c Tact
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
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
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
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.
Magistrala de
date
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
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
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
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ă.
ALE
/PSEN
/RD
Date
PORT 0
PORT 2
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
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.
ALE
Adrese Adrese
anterioare /RD
Adrese A15-A8
Adrese/ date
AD0-AD7
Date anterioare Adrese Date citite
12
Figura 2.13: Conectarea unui LCD la un MC RISC
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
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ă.
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.
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
Magistrala internă
Adrese Date
Magistrală externă de
Buffer de Acces date, 32 de biţi
date citite
Magistrală externă de
Buffer de adrese adrese 32 de biţi
Generare CS CS0X-CS7X
ASR AMR
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.
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ă
16
CLK Tactul de magistrală
AS Strob de adrese
32 linii de adresă
A31:0
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
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
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
20
VBUS VBUS
D+ D+
D- D-
GND GND
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
8b 8b 0- 16b
SYNC PID C
8b 8b
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
EEPROM serial
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
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.
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.
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.
27
tact
Regulator
tensiune 2MHz
Prescalare tact
24x
Interfaţa USB
D+ DPLL DPRAM
refacere USB
tact
D-
VBUS
VC VC VC
Comandă
VBUS VBUS VBUS alimentare
D+ D+ D+
D- D- D-
a b c
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:
Endpoint 6 Buffer
Program
client
Endpoint 1
Buffer
Endpoint 0
Buffer
Pipe 0
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
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.
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.
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
Î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ă
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
125µs
Figura 3.17: Transferuri izocrone pentru a asigura un flux de date în timp real
Microprocesor,
microcontroller sau PCI
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.
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
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.
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
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.
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
Î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].
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).
47
Magistrala Flex Ray
Conexiune de
diagnostic
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).
0 1 1 0 1 0 0
49
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
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
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.
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ă
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
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.
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
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
56
• Segmentul de propagare compensează întârzierea pe linie şi se poate programa între 1 şi
8T.
Timp de bit
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.
Cadru de eroare
Flag de Delimitator
eroare
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
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.
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
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
62
• La o eroare de Overrun a timerului CAN.
Timpul de bit
FCAN
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).
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
Canal A Canal B
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.
Transmisie Recepţie
65
1 2 3 Numărător de sloturi
Canal B
Cadru 1 Cadru 2
Segment static
m +1 +2 +3 Numărător de sloturi A
Canal B
Cadru m+3
Numărător de sloturi B
m +1 +2 +3
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
MB88121
Port A RAM A Gestionare RAM pentru
Transceivere
mesaje mesaje
FlexRay Port B RAM B
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.
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
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.
Receptor
T5743
Date
868MHz Senzor de presiune
sau
433MHz
Senzor de temperatură
Alimentare
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)
71
Tact
SC
SO
TO3
1 1 0 0
T5743
MC
Control
DEMOD
AMP
FTB PLL
LNA X VCO
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
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
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.
∆φ
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.
Operation
mode
x
Detection
mode
Operation Detection
75
Vout
V cc
Unull
0 1 5 10 15
T(ms)
Zp+3
Semnal eşantionat
Zp+2
Zp+1
Zp
1 cuantă
Zp-1
1 ms
Zp-2
Zp-3 Zp – valoare de nul
Smpl_cntr = 0;
Acc = 0;
NR_SMPL = 10;
Acc += ADC_Data;
Smpl_cntr++;
Smpl_cntr <
nu da
NR_SMPL
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 .
Afişor grafic
64x128
Senzor Sistem
giroscopic de
dezvoltar RS232
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.
Î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.
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.
Î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)
Pendul
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.
82
Timer de bază
Figura 4.50: Schema bloc a generatorului de tact tipic pentru microcontrollerele Fujitsu
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.
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.
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.
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
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)
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].
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
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
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.
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ă.
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
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
Senzor de
poziţie
Senzor poziţie
Intrări digitale:
-temperatura motor
Validare
-tensiune baterie
........................
Software
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
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
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
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%.
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.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
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.
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ă
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
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
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.
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
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).
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
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.
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.
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
TCCSL
tact
Tact
TCDT0/1 Numărător pe 16 biţi Divizare intern
FRCK
TCCSH ECKE
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).
BFFFH BFFFH
7FFFH 7FFFH
3FFFH 3FFFH
0000H 0000H
timp timp
/RESET /RESET
INT INT
Figura a Figura b
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
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
112
Selecţie tact PWM1 Selecţie ieşire PWM1P0
PWM1M0
Registru de Registru de
comparare PWM1 selecţie PWM1
Registru de Registru de
comparare PWM2 selecţie PWM2
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
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.
REGISTRE
INTERNE Comutator PHA
Reacţie PHB
CHA CHB PHC
INDEX PHD
/SYNC Timer
EXTCLK
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
vo
Io +
Conv. I-U
MC7
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
-2,5V
-5V
Factor de umplere
100%
50%
SIGN=1 SIGN=0
Figura 5.34: Programarea HCTL 1100 pentru comanda unui motor de c.c. cu modulaţie PWM
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
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
117
.device AT90S1200
rjmp start
rcall short_delay
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
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
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
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)
121
BRA adr bucla se repetă continuu
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 ).
122
83C51FA
L293
P1.3 (Driver)
u M
P1.4
Traductor Hall
cu ieşire digitală
Generator de tact
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
Registru de comparare
PWM0
Comparator
PWM0
Prescaler Numărător
PWMP PWMC
PWM1
Comparator
Registru de comparare
PWM0
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.
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
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
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
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.
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.
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.
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.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ă.
π/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
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).
135
Condensator Intrerupator
de pornire centrifugal
Condensator
permanent
Alimentare
220V c.a. Infasurare Rotor
stator
Infasurare de
pornire
136
Curentul absorbit
(simulare 1,8s de la
pornire)
Turaţia
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
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ă
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.
Vandalisme 8.,9%
Izolaţie 27,9%
Supratensiuni 26,6%
Furtuni 0,1%
140
Figura 6.16: Schema electrică şi dispozitivul de protecţie DEHNBloc Maxi
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.
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
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
143
Tensiunea creşte în limita admisă Se micşorează valoarea medie Se blochează
tensiunea
144
Curentul este sub limita admisă Curentul Curentul depăşeşte
atinge limita 1 a 2-a limită
Se testează menţinerea
supracurentului
Î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
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
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.
150
Figura 7.2: Receptor cu RFM01
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.
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 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ă
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
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.
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.
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
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)
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
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:
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
BALUN
PVcc
Vcc
MAX3232 UART ROK101
RS232
sau
BTM222
CODEC PCM
Figura 7.16: Schema electrică tipică de utilizare pentru transferul de date şi voce
164
0 4 8 12 16 20 24 28 31
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.
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
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
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
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.
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
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
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
Spaţiu rezervat
pentru cadrul de
semnalizare
Cadre de semnalizare
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
Oscilator
RC intern GPIO 0-16
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
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
176
Validare timer
Valoare contor
INT zero
INT A
INT B
INT maxim
Interfaţă de programare
şi testare
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
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).
Antena 1 Rx RS232
Antena 2 Tx
GND GND CALCULATOR
5V port 2 SAU MC GAZDĂ
port 1
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.
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
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
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
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
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
189
8.2.2.Camera de detecţie
Camera de detecţie este prezentată în figura 8.3.
Element
fotosensibil
LED pentru
autotest
Catod, 250VDC
Semnal de
ieşire
η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 θ
x2
y = −η .E + x.tgθ (8.2)
2.v02 . cos 2 θ
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
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.
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.
CINT
IIN
-
Vo
195
Tensiunea de ieşire Vo este:
−1
V0 =
C INT ∫I IN (t ).dt
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
197
Schema de simulare a măsurării în Simulink este dată în figura 8.15.
Impuls de
calibrare Zgomot
Impuls de
descărcare
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
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.
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:
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
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
204
Se aşteaptă un impuls pe
linia de întrerupere 1
Apare un impuls
nu
da
Se numără impulsurile şi se
incrementează un registru
A trecut o oră
da
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.
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
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.
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.
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.
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.
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.
Amplificator
analogic
Unitate centrală cu
microcontroller Sursa de
alimentare
Afişaj LCD
212
Figura 8.31: Aparatul de măsurare a conţinutului de Radon în aer cu cameră de detecţie
(vedere din faţă)
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
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.
Î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
Rezultat
Model test
Compactor
Gold Unit Comparator
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
Q2 Q4
Poarta 1 Poarta 2
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
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
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
TACT
START
STOP
DATE
MEMORAT t
1 0 0 1 1 1 0 1 1
Fereastra de analiză
221
IS
16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 SAU
EXCLUSIV Date
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.
Q D
CLK
Q D
CLK
Q D
CLK
CLK
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
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
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
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.
Registru IDENTIFICARE
Registru UTILIZATOR
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
DBM DBM
DBM DBM
TDI TDO
TAP 1149.1
TMS
TCK
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
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).
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
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).
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.
Pin
Output Data exterior
MUX
Input Data
Semnale De la celula
JTAG anterioară
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
..... ..... ......
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.
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