Sunteți pe pagina 1din 416

COSTIN TEFNESCU

NICOLAE CUPCEA

ELECTRONIC APLICAT SISTEME INTELIGENTE HARDWARESOFTWARE DE MSURARE I CONTROL

Semnal

Filtrare

Conversie
analogdigital

FTJ

CA/D

Unitatea de calcul

Conversie
digitalanalogic Filtrare
CD/A
Analog

Analog
Numeric

Bucureti 2003

Circuit de
amplificare

FTJ
Semnal

ELECTRONIC APLICAT

CUPRINS
1. Elemente introductive referitoare la conducerea proceselor industriale din
perspectiva sistemelor inteligente hardware-software de msurare i control ..... 1
1.1 Introducere................................................................................................... 1
2. Sisteme de achiziie i prelucrare a datelor ...................................................... 5
2.1 Noiuni generale .......................................................................................... 5
2.2 Sisteme de achiziii de date. Arhitectur. Principalele tipuri de resurse
utilizate n cadrul sistemelor de achiziii de date .............................................. 5
2.2.1 Multiplexoare analogice utilizate n sisteme de achiziii de date ........ 6
2.2.2 Circuite de eantionare-memorare utilizate n sisteme de achiziii de
date ................................................................................................................ 9
2.2.3 Circuite pentru conversia datelor utilizate n sisteme de achiziii de
date: convertoare analog-digitale i digital-analogice ................................ 14
2.2.3.1 Convertoare digital-analogice. Scheme de principiu .................. 19
2.2.3.2 Convertoare analog-digitale. Scheme de principiu..................... 25
2.3 Interfee specializate de comunicaie ........................................................ 35
2.3.1 Comunicaia de tip serial. Protocoale de transmisie serial a datelor 36
2.3.1.1 Interfaa RS-232 .......................................................................... 36
2.3.1.2 Interfaa I2C ................................................................................. 40
2.3.1.2.1 Specificaiile interfeei I2C................................................... 41
2.3.1.2.2 Conceptul de magistral I2C................................................. 42
2.3.1.2.3 Transferurile pe magistrala I2C ............................................ 43
2.3.1.2.3.1 Transferurile de date pe magistral............................... 44
2.3.1.2.4 Arbitrarea prioritilor i generarea ceasului ....................... 45
2.3.1.3 Interfaa USB............................................................................... 46
2.3.2 Comunicaia de tip paralel. Protocoale de transmisie paralel a datelor
..................................................................................................................... 48
2.3.2.1 Interfaa HPIB ............................................................................. 49
2.3.2.1.1 Structura bus-ului HPIB....................................................... 50
2.3.2.2 Interfaa Centronics ..................................................................... 53
2.3.2.2.1 Protocolul de comunicaie Centronics-Handshake .............. 55
3. Tipuri de sisteme de achiziii de date .............................................................. 57
3.1 Sistem de achiziii de date cu multiplexare temporal.............................. 57
3.2 Sistem de achiziie sincron de date.......................................................... 61
3.3 Sistem rapid de achiziii de date................................................................ 67
3.4 Unitatea central de comand ................................................................... 68
3.5 Sisteme de achiziie de date cu microprocesor ......................................... 69
3.5.1 Uniti centrale de prelucrare tradiionale.......................................... 69
3.5.2 Procesoare de semnal: DSP................................................................ 75
3.5.2.1 Arhitectura unui procesor de semnal .......................................... 76
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

3.5.2.2 Portul serial sincron al familiei DSP TMS320C2xx................... 81


3.5.2.3 Portul serial asincron al familiei DSP TMS320C2xx ................. 82
4. Consideraii generale asupra instrumentaiei virtuale..................................... 85
4.1 Instrumente virtuale................................................................................... 85
4.2 Interfaa calculator - proces de msurare sau control ............................... 90
4.3 Software pentru instrumentaie virtual .................................................... 92
4.3.1 Alegerea platformei software: Unix sau Windows? .......................... 94
4.4 Particulariti ale intrumentaiei virtuale................................................... 95
4.5 Noi instrumente DAQ specializate extind noiunea de instrument virtual97
4.5.1 Transferul de date n bus-ul PCI ........................................................ 98
4.5.2 Implementarea DMA pe placa de tip PCI Bus Master. Chip-ul ASIC
MITE. .......................................................................................................... 99
4.5.3 Windows NT 4.0 aduce mbuntiri importante pentru utilizatorii de
instrumentaie virtual............................................................................... 101
4.5.4 Terenul este pregattit pentru noile instrumente DAQ .................... 103
4.5.4.1 Tehnici de eantionare utilizate n osciloscoapele numerice .... 104
4.5.5 DAQScope ....................................................................................... 105
4.5.5.1 De ce este important mrimea memoriei i viteza de transfer
DMA la un osciloscop? ......................................................................... 107
4.5.6 DAQArb ........................................................................................... 108
4.5.7 DAQMeter........................................................................................ 109
4.6 Software specializat pentru achiziia datelor .......................................... 110
4.6.1 Software pentru achiziia de date ..................................................... 111
4.6.2 Detalii privind cerinele impuse unui pachet software pentru msurri
electrice ..................................................................................................... 115
4.6.3 SCPI (Standard Commands for Programmable Instrumentations). 119
5. Prezentarea microcontrollerului 80C552 (PHILIPS).................................... 125
5.1 Arhitectura hardware a microcontroller-ului 80C552............................. 125
5.1.1 Memoria intern a microcontroller-ului 80C552 ............................. 125
5.1.1.1 Memoria de program (Program Memory) ................................ 125
5.1.1.2 Memoria de date (Data Memory).............................................. 126
5.1.1.3 Registrele cu funcii speciale .................................................... 127
5.1.2 Structura i lucrul cu porturile de intrare-ieire ............................... 130
5.1.2.1 Programarea i utilizarea temporizatoarelor ............................. 132
5.1.2.2 Interfaa serial SIO0 ................................................................. 134
5.1.2.3 Ieirile modulate n durat......................................................... 135
5.1.2.4 Seciunea analogic a microcontrollerului................................ 137
5.1.2.5 Msurarea intervalelor de timp prin utilizarea registrelor de captare a evenimentelor .............................................................................. 142
5.2 Prezentarea setului de instruciuni al microcontroller-ului 80C51 ......... 143
5.3 Sistem de dezvoltare cu microcontroller 80C552 ................................... 167
5.3.1 Domeniul de aplicabilitate ............................................................... 172

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

5.3.2 Detalierea resurselor sistemului ....................................................... 172


5.3.2.1 Unitatea Central de Prelucrare ................................................ 172
5.3.2.2 Interfaa cu Procesul Controlat.................................................. 172
5.3.2.3 Interfaa cu Operatorul .............................................................. 180
5.3.2.4 Interfaa cu un Sistem de Calcul ............................................... 183
5.3.3 Resurse software, utilizare ............................................................... 183
5.3.4 Rutine de baz pentru manipularea resurselor sistemului................ 185
6. Sistem universal, modular, de achiziii de date............................................. 197
6.1 Mrimi de intrare n sistemul de achiziii de date................................... 197
6.2 Specificaiile de proiectare ale sistemului de achiziii de date ............... 197
6.3 Interfaa specializat de achiziii de date a sistemului ............................ 200
6.3.1 Interfaa de achiziii de date propriu-zis......................................... 201
6.3.1.1 Blocul de adaptare a semnalelor analogice ............................... 201
6.3.1.2 Blocul filtrelor antirepliere........................................................ 204
6.3.1.3 Blocul circuitelor de eantionare-memorare suplimentare ....... 207
6.3.1.4 Blocul convertoarelor analog-digitale....................................... 209
6.3.1.4.1 Descrierea funcional a blocului de conversie analogdigital din cadrul interfeei specializate de achiziii de date ........... 209
6.3.1.5 Blocul de conversie digital-analogic ....................................... 217
6.4 Unitatea central de prelucrare local cu microcontroller 80C552 ........ 221
6.4.1 Descrierea funcional a UCPL........................................................ 221
6.4.2 Resursele unitii centrale de prelucrare locale a sistemului de
achiziii de date.......................................................................................... 221
6.5 Interfaarea unitii centrale de prelucrare, cu microcontroller 80C552, cu
un sistem hardware extern (interfaa de achiziii de date) ............................ 226
6.5.1 Modaliti de cuplare a unitii centrale de prelucrare cu un dispozitiv
hardware extern ......................................................................................... 226
6.5.2 Descriere funcional a ansamblului unitate central de prelucrare
local - interfaa specializat de achiziii de date...................................... 227
6.6 Estimarea erorilor ce se manifest n cadrul sistemului de achiziii....... 229
6.6.1 Estimarea erorilor software .............................................................. 229
6.6.2 Estimarea erorilor hardware ............................................................. 231
7. Software de analiz a semnalelor electrice ................................................... 235
7.1 Consideraii generale asupra instrumentelor software de analiz a
semnalelor electrice....................................................................................... 235
7.2 Platforma HP VEE pentru Windows. Prezentarea analizorului ESA ..... 236
7.3 Implementarea analizorului ESA ............................................................ 239
7.3.1 Blocul de prelucrare a fiierului de date de intrare .......................... 241
7.3.2 Blocurile pentru controlul dispozitivelor de afiare......................... 243
7.3.3 Dispozitivele de afiare de tip oscilograf......................................... 246
7.3.4 Blocul de afiare sub form digital a valorilor minime/maxime ale
semnalelor de intrare ................................................................................. 247
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

7.4 Interfaarea instrumentului virtual de analiz a semnalelor electrice, ESA,


cu interfaa specializat de achiziii de date.................................................. 248
7.5 Detalii suplimentare privind implementarea instrumentului virtual ESA
....................................................................................................................... 250
7.6 Resurse suplimentare ale analizorului de semnale electrice, ESA ......... 250
7.6.1 Analizorul Fourier ............................................................................ 254
7.7 Testarea instrumentului virtual ESA i rezultate experimentale............. 257
7.8 Listingul programului de achiziie de date.............................................. 258
8. Sistem cu microcontroller pentru msurarea i controlul temperaturii......... 271
8.1 Specificaiile de proiectare ale sistemului pentru msurarea i controlul
temperaturii ................................................................................................... 271
8.2 Descrierea funcional a sistemului de msurare a temperaturii ............ 272
8.2.1 Blocul de msurare a temperaturii ................................................... 272
8.2.1.1 Traductorul de temperatur ....................................................... 273
8.2.1.1.1 Conectarea traductorului de temperatur ........................... 273
8.2.1.1.2 Senzorul de temperatur..................................................... 273
8.2.1.1.3 Modulul surselor de tensiune de referin.......................... 275
8.2.1.1.4 Senzor de temperatur cu ieire unificat n curent ........... 278
8.2.2 Utilizarea resurselor unitii centrale de prelucrare ......................... 279
8.2.3 Etajele de ieire pentru comanda elementelor de execuie .............. 283
8.3 Software de analiz a rezultatelor ........................................................... 286
8.3.1 Implementarea analizorului PROTERM.......................................... 288
8.4 Listingul aplicaiei de msurare i control a temperaturii....................... 289
9. Implementarea hardware-software a unui instrument de vizualizare a
semnalelor (EASY SCOPE).............................................................................. 299
9.1 Descrierea funcional a osciloscopului digital EASY SCOPE ............. 299
9.2 Prezentarea circuitului PIC16C71 (Microchip) ...................................... 303
9.2.1 Descriere general a PIC16C71 ....................................................... 304
9.2.2 Prezentare architectural .................................................................. 306
9.2.2.1 Ceasul de sistem / Ciclul instruciune ....................................... 308
9.2.2.2 Fluxul de execuie al instruciunii / Pipeline-ing ...................... 308
9.2.3 Organizarea memoriei de program (Program Memory) .................. 309
9.2.4 Organizarea memoriei de date (Data Memory) ............................... 310
9.2.4.1 Registrul STATUS .................................................................... 310
9.2.5 Porturi I/O ........................................................................................ 312
9.2.5.1 Registrele PORTA i TRISA .................................................... 312
9.2.5.2 Registrele PORTB i TRISB..................................................... 313
9.2.6 Consideraii de programare I/O........................................................ 315
9.2.6.1 Porturi I/O bidirecionale .......................................................... 315
9.2.6.2 Operaii succesive asupra porturilor I/O ................................... 316
9.2.7 Modulul de conversie analog-digital.............................................. 316
9.2.7.1 Specificaii pentru achiziia A/D............................................... 319

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

9.2.7.2 Particulariti de utilizare a circuitului de conversie analogdigital a microcontroller-ului PIC16C71............................................. 320


9.3 Caracteristici constructive. Testare i calibrare EASY SCOPE ............. 327
9.4 Descrierea meniului aplicaiei EASY SCOPE........................................ 329
9.5 Codul surs n limbaj de asamblare al microcontroller-ului PIC16C71
pentru osciloscopul digital EASY SCOPE ................................................... 331
9.6 Codul surs n limbaj C pentru osciloscopul digital EASY SCOPE ...... 338
10. Traductor inteligent pentru msurarea nivelului......................................... 349
10.1 Prezentarea hardware a traductorului inteligent de nivel...................... 350
10.2 Programul de aplicaii NIV.ASM ......................................................... 354
10.2.1 Descrierea programului de aplicatie NIV.ASM............................. 356
10.2.1.1 Seciunea de iniializare i declarativ .................................... 356
10.2.1.2 Seciunea de programare a parametrilor de funcionare ......... 358
10.2.1.3 Seciunea de msurare propriu-zis ........................................ 361
10.3 Programul de aplicaii NIVOK.ASM.................................................... 366
10.3.1 Seciunea de iniializare i declarativ ........................................... 366
10.3.2 Seciunea de calibrare a generatorului de curent ........................... 366
10.3.3 Seciunea de programare a parametrilor de funcionare ................ 367
10.3.4 Seciunea de msurare propriu-zis ............................................... 369
10.4 Listingul programului de aplicaie NIVOK.ASM................................. 372

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

1. ELEMENTE INTRODUCTIVE REFERITOARE LA


CONDUCEREA PROCESELOR INDUSTRIALE DIN
PERSPECTIVA SISTEMELOR INTELIGENTE
HARDWARE-SOFTWARE DE MSURARE I
CONTROL
1.1 INTRODUCERE
Sugestiv, conducerea proceselor industriale, poate fi reprezentat printr-o
piramid mprit pe mai multe niveluri (fig. 1.1).
Supravegherea se gsete n piramida conducerii proceselor pe nivelul
al treilea, alturi de conducerea procesului, ceea ce arat c, practic, ele nu pot fi
separate.

Gestiune
Supervizare
Optimizare
Supraveghere
i conducere
Controlul Procesului
Achiziii i Acionri

Fig. 1.1 Nivelurile de conducere a proceselor industriale.


Domeniul supravegherii proceselor industriale este destul de vast. Acesta
conine aplicaii ncepnd cu simpla achiziie de date i pn la prelucrri foarte
complexe:
analize statistice;
gestiunea elaborrii alarmelor;
ghid operator;
supravegherea aciunilor de conducere ale operatorilor;
identificri de parametri i simulri;
supravegherea dinamic a rspunsului procesului, etc.
La baza piramidei se situaz operaiunile de achiziie din proces a
mrimilor de intrare i de transmitere ctre procesul supravegheat a comenzilor
de acionare.
Funciile de baz ale unei aplicaii de supraveghere a unui proces sunt:
comunicaia cu procesul;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELEMENTE INTRODUCTIVE DESPRE CONDUCEREA PROCESELOR INDUSTRIALE

semnalizarea;
comunicaia cu programele utilizate pentru prelucrarea datelor;
interfaarea om-main;
gestiunea alarmelor;
gestiunea rapoartelor.
Conceptul de aplicaie n timp real poate fi definit astfel:
Aplicaia n timp real, este acea aplicaie care realizeaz un
sistem informatic al crui comportament este condiionat de
evoluia dinamic a strii procesului la care este conectat.
Acest sistem informaional este menit s urmreasc sau s
conduc procesul, respectnd condiiile de timp stabilite.
Deci, timpul real este o noiune care marcheaz de fapt
conceptul de timp de reacie relativ la dinamica procesului
pe care sistemul informatic l conduce (supraveghez).
Supravegherea n timp timp real a unui proces este o etap necesar
pentru trecerea la pasul urmtor: conducerea procesului.

SISTEM DE CALCUL
N TIMP REAL

Operator

Comenzi

Generare rapoarte,
semnalizri, alarmri

Baz
de date
reea

Calcule conform unor


strategii de conducere

Actualizare baz de
date din reea

Ceas de
timp real

Culegere de date
din reea

REEA

ELECTRIC

Fig. 1.2 Schema unui sistem de achiziie i calcul, n timp real, pentru
supravegherea unei reele electrice.
Un sistem n timp real este sistemul de automatizare complex cu ajutorul
calculatorului a unor probleme de decizie, mai ales cu caracter operativ, n care
timpul de rspuns este suficient de redus pentru a putea influena n mod
2

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

semnificativ i pozitiv evoluia obiectivului condus.


n fig. 1.2 este prezentat schema simplificat a unui sistem de achiziie i
prelucrare a datelor n timp real, destinat supravegherii proceselor dintr-o reea
electric, care realizeaz:
culegerea de date;
actualizarea bazei de date;
calcule conform unor strategii de conducere;
supravegherea i corectarea on-line a regimului.
Un sistem de achiziie de date i control a unui proces industrial, asociat
cu un microsistem de calcul, se comport ca un sistem inteligent (care poate lua
decizii bazate pe informaii anterioare, prelucreaz informaia, efectueaz
calcule, dup care, pe baza rezultatelor obinute, adopt o decizie, din mai multe
soluii posibile).
Sistemele de achiziie de date asociate cu microsistemele de calcul, n
timp real, au ca principale avantaje:

flexibilitatea i adaptabilitatea la o mare varietate de situaii;


creterea gradului de automatizare al unor operaii;
mrirea preciziei msurtorilor;
fiabilitate bun (numr redus de componente, posibilitatea de
autotestare datorit programelor ncorporate);
miniaturizarea echipamentelor;
posibilitatea prelucrrii complexe a datelor din proces;
simplificarea proiectrii electrice i tehnologice datorit existenei
familiilor de componente ce permit interconectri standard.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELEMENTE INTRODUCTIVE DESPRE CONDUCEREA PROCESELOR INDUSTRIALE

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

2. SISTEME DE ACHIZIIE I PRELUCRARE A


DATELOR
2.1 NOIUNI GENERALE
Ca rezultat al rspndirii pe scar larg, n ultimul timp, a calculatoarelor
personale i a perfecionrii lor continue, marile firme productoare de sisteme
de msurare au cutat s realizeze echipamente care s utilizeze calculatorul
personal pentru:
achiziia de date din sistemele industriale;
reglajul i supravegherea unor parametri sau instalaii (procese);
realizarea unor aparate de msurare cu performane ridicate.
n prezent, resursele calculatorului personal sunt utilizate pentru a efectua
sarcini cum ar fi: comanda, gestiunea, prelucrarea i afiarea datelor care altfel
ar fi preluate de un microprocesor, plasat n interiorul instrumentului.
Instrumentul de msurare comunic cu PC-ul prin intermediul unei
interfee care are n mod obligatoriu un convertor analog-digital. Instrumentul de
msurare poate fi redus la o simpl cartel de achiziii de date pentru msurtori.
n momentul de fa, prin intermediul tastaturii calculatorului se poate
comanda instrumentul de msurare, iar pe display pot fi vizualizate rezultatele
msurtorilor, sub form numeric sau sub form grafic.
Aceste rezultate apar ca urmare a prelucrrii datelor brute obinute de la
instrumentul de msurare de ctre calculator, la cererea utilizatorului. De aici,
rezult aparate cu pre de cost mult mai sczut.

2.2 SISTEME DE ACHIZIII DE DATE. ARHITECTUR.


PRINCIPALELE TIPURI DE RESURSE UTILIZATE N
CADRUL SISTEMELOR DE ACHIZIII DE DATE
Un sistem de achiziie de date cu n canale de intrare poate fi realizat n
urmtoarele trei configuraii:
sistem cu multiplexare temporal;
sistem cu achiziie sincron de date;
sistem rapid de achiziie de date.
Un sistem de achiziie de date utilizat pentru achiziia i prelucrarea
datelor ntr-un sistem (fig. 2.1) este compus din urmtoarele module funcionale
principale:
1. convertoare de intrare;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

2. circuite de multiplexare analogic;


3. circuite de eantionare-memorare (E/M);
4. circuite pentru conversia datelor - convertoare analog-digitale (CA/D)
i digital-analogice (CD/A);
5. registre tampon (buffer-e);
6. unitatea central de prelucrare (P);
7. interfaa de interconectare cu calculatorul personal.
MAGISTRALA DE CONTROL
MAGISTRALA

DE DATE
MAGISTRALA
DE ADRESE

Memorii RAM

Sfrit
conversie
Start
conversie

Adres canal
Comand E/M

Circuit
eantionarememorare

Convertor
analog-digital

START

Multiplexor
analogic

EOC

Selecii
Date

Alte canale

Etaj
adaptare

Selecie

Circuit
interfa paralel

Ceas
Semnal
de studiat

Adrese

Date

Comenzi

Selecie

Adrese

Date

Selecie

Adrese

Date

Memorii ROM

Comenzi

Microprocesor P

Comenzi

Adrese

Date

Comenzi

Decodificator

Fig. 2.1 Structura general a unui sistem de achiziii de date.


n continuare vor fi prezentate aspectele eseniale, parametrii caracteristici
i vor fi enumerate recomandri de proiectare ale acestor componente de baz
din cadrul sistemelor de achiziii de date.

2.2.1 MULTIPLEXOARE ANALOGICE UTILIZATE N


SISTEME DE ACHIZIII DE DATE
n multe situaii este necesar s fie transmise mai multe informaii pe
acelai canal; cum acest lucru nu se poate face simultan, se recurge la o partajare
n timp a canalului, denumit multiplexare. Operaia invers se numete
6

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

demultiplexare. Operaia de multiplexare/demultiplexare analogic necesit


dispozitive de comutare care s direcioneze semnalul util pe un canal dorit. n
varianta sa cea mai simpl, un multiplexor analogic poate fi asimilat cu un
comutator rotativ cu k = 2 n poziii sau cu un ansamblu de k = 2 n comutatoare,
dintre care numai unul este nchis, n timp ce toate celelalte sunt deschise,
comandat de un sistem logic care permite cuplarea uneia din intrri la ieire (fig.
2.2). Deoarece comutatoarele sunt bilaterale, rezult c un multiplexor analogic
poate fi utilizat i ca demultiplexor analogic, prin simpla schimbare a sensului.

Aplicaie

1
Intrri
analogice

Ieire

2 -1

Adrese

Registru

Decodificator

Activare

Fig. 2.2 Structura unui multiplexor analogic.

Parametrii multiplexoarelor/demultiplexoarelor analogice sunt:


rezistena n starea deschis (off): R off [M];
rezistena n starea nchis (on): R on [];
curentul de pierderi n starea deschis: I off [nA, A, mA];
timpul de comutare direct (nchidere): t on [ns, s]. Este definit ca
intervalul de timp de la aplicarea comenzii de nchidere pn ce
semnalul de ieire atinge o valoare egal cu cea de la intrare (cu o
precizie impus, de exemplu 1%);
timpul de comutare invers (deschidere): t off [ns, s]. Este definit ca
intervalul de timp de la aplicarea comenzii de deschidere pn la
reducerea curentului la valoarea curentului de pierderi, I off , la valoarea
specificat n catalog;
banda de frecvene: B .
Multiplexorul analogic permite utilizarea unui singur convertor analogdigital pentru mai multe canale analogice de intrare (sisteme de achiziii de date
cu multiplexare temporal). Utilizarea multiplexoarelor reprezint o soluie
economic viabil i n cazul semnalelor de intrare de nivel redus, pentru care
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

multiplexarea se realizeaz cu costuri ridicate.


Elementul principal al multiplexoarelor analogice l constituie elementul
de comutare, care poate fi realizat n mai multe variante constructive:
cu relee obinuite;
cu relee cu mercur;
cu relee reed;
cu elemente semiconductoare (tranzistoare bipolare, diode Schottky,
tranzistoare TEC-J, tranzistoare CMOS).
Primele trei variante constructive, utiliznd elemente electromecanice,
conduc la investiii iniiale reduse, compensate ns de costuri ridicate de
exploatare, fiabilitate i durat de funcionare reduse. De aceea, utilizarea lor
este recomandabil doar n situaiile n care este nevoie s fie mutiplexate
semnale cu nivele mari.
Fiecare tip constructiv de multiplexoare analogice, realizat cu elemente
semiconductoare, sunt caracterizate de unele performane notabile, dar i de
incoveniente mai mult sau mai puin surmontabile. Astfel:
comutatoarele cu diode rapide au timp de comutaie de valori foarte
reduse (1 ns), ns rezistenele reziduale (n stare nchis, respectiv
deschis) R on i R off au valori neperformante, n comparaie cu alte
tipuri;
comutatoarele cu tranzistoare bipolare au timpi de comutaie mici i
rezistene reziduale R on de valori reduse, necesit cureni de comand
importani, dar R off are o valoare relativ mic, ceea ce conduce la o
transparen mare a comutatorului;
comutatoarele cu tranzistoare cu efect de cmp TEC-J au rezistena
R on de ordinul zecilor de ohmi, timpi de comutaie medii, ns necesit
circuite de comand complicate (translatoare de nivel pentru
compatibilizarea comenzilor);
comutatoarele cu tranzistoare complementare CMOS sunt cele mai
avantajoase i cele mai folosite. Ele sunt caracterizate prin timpi de
comutaie satisfctori, rezistena R on de valoare relativ mic i R off
de valoare ridicat. n acelai timp ele pot fi comandate foarte simplu,
iar transparena crete doar la frecvene nalte (10 5 10 8 Hz).
n prezent, datorit evoluiei explozive a tehnologiei dispozitivelor
semiconductoare CMOS, au fost realizate multiplexoare analogice ce pot fi
direct interfaate cu un microprocesor. Acestea dispun de un registru ce poate
memora adresa de canal prin executarea unei instruciuni de scriere la adresa
specific alocat multiplexorului. De asemenea, majoritatea multiplexoarelor
analogice realizate n tehnologie CMOS sunt caracterizate de protecia
dispozitivului la aplicarea unor supratensiuni pe intrri, cu valori de 5-6 ori mai
mari dect semnalele manipulate n funcionare normal. Proteciile sunt active
8

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

pentru canale n stare on sau off n cazul dispozitivelor n stare de funcionare


(alimentate), i chiar pentru circuite nealimentate. Un canal deschis, cruia i se
aplic o supratensiune, este comutat automat n stare off, realiznd protecia
etajelor electronice conectate la ieirea multiplexorului. Un exemplu tipic de
astfel de multiplexor analogic interfaabil i cu protecie la aplicarea de
supratensiuni accidentale pe intrri este circuitul MAX368, produs de firma
Maxim.

2.2.2 CIRCUITE DE EANTIONARE-MEMORARE


UTILIZATE N SISTEME DE ACHIZIII DE DATE
Un circuit de eantionare-memorare realizeaz prelevarea, la un moment
dat, a valorii unui semnal analogic i memorarea analogic a acesteia (fig. 2.3a).
n modul de lucru eantionare (sau urmrire), determinat de nivelul
logic 1 al semnalului de comand E/ M , circuitul de eantionare-memorare
funcioneaz ca repetor. n modul de lucru memorare (sau meninere),
determinat de nivelul logic 0 al semnalului de comand E/ M , circuitul de
eantionare-memorare funcioneaz ca o memorie analogic, memornd la
bornele unei capaciti semnalul de intrare eantionat anterior (fig. 2.3b).
Circuitele de eantionare-memorare se utilizeaz n sistemele de achiziie
i distribuie de date. Astfel, ntr-un sistem de achiziii de date, ieirea circuitului
de eantionare-memorare este conectat la intrarea convertorului analog-digital
(CA/D). n intervalul corespunztor efecturii unei conversii analog-numerice,
circuitul de eantionare-memorare este comandat n stare de memorare pentru a
menine constant tensiunea la intrarea convertorului analog-digital. Se obine
astfel mrirea valorii limitei superioare a domeniului de frecvene ale semnalului
de intrare pentru care CA/D poate fi utilizat la rezoluia maxim (specificat de
numrul de bii ai rezultatului conversiei). Acest deziderat este realizat dac
tensiunea de la intrarea convertorului analog-digital nu se modific, pe durata
efecturii conversiei, cu mai mult de 1/2 LSB. n sistemele de distribuie a
datelor, circuitele de eantionare-memorare sunt utilizate pentru reconstituirea
semnalelor multiplexate n timp.
Circuitele de eantionare-memorare sunt caracterizate de o serie de
parametri (fig. 2.4), grupai n mai multe caracteristici:
caracteristici de urmrire (fig. 2.4a):
eroarea staionar - reprezint abaterea de la amplificarea unitar
sau de la cea specificat prin datele de catalog;

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Ui , Ue

Ue
Ui

Ui

Circuit de
eantionarememorare

Ue

t1 t2 t3
E/M

Eantionare
Memorare

a) structur funcional

b) operaia de eantionare-memorare

Fig. 2.3 Circuit de eantionare-memorare.

eroarea de decalaj - reprezint valoarea ieirii pentru o tensiune de


intrare nul;
Intrare

Eroare staionar

Ieire
Eroare de decalaj
Eroare
de decalaj

Ieire ideal

Intrare
Ieire

Eantionare (E)

Timp de stabilire

Timp de
apertur

Timp de
stabilire

Memorare (M)

a) caracteristici de urmrire

b) caracteristici de tranziie E/M


Timpi de
stabilire
Intrare

Intrare
Ieire ideal

Ieire

Ieire

Timp de
achiziie

Cdere

Ptrundere

Eantionare (E)
Memorare (M)

c) caracteristici de memorare

d) caracteristici de tranziie M/E

Fig. 2.4 Erori ale circuitelor de eantionare-memorare.

timpul de stabilire - reprezint intervalul de timp necesar pentru


10

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

atingerea valorii dorite a ieirii, cu o toleran maxim specificat;


caracteristici de tranziie eantionare-memorare (fig. 2.4b):
timpul de apertur - reprezint intervalul de timp dintre comanda
de memorare i momentul efectiv al comutrii circuitului n regim
de memorare;
incertitudinea timpului de apertur - reprezint variaia timpului de
deschidere a comutatorului regimului de eantionare-memorare,
dup primirea comenzii de memorare;
eroarea de decalaj la memorare - este determinat, n principal, de
comutarea trzie a circuitului de memorare i a regimului
tranzitoriu de ncrcare a condensatorului de memorare;
caracteristici de memorare (fig. 2.4c):
cderea - reprezint tendina de scdere a nivelului de la ieire fa
de cel ideal, datorit descrcrii condensatorului de memorare;
ptrunderea - caracterizeaz influena intrrii asupra ieirii,
datorat imperfeciunilor circuitelor de comutare analogic;
caracteristici de comutare memorare-eantionare (fig. 2.4d):
timpul de achiziie - reprezint intervalul minim necesar de
eantionare, pentru a se obine o tensiune de ieire dorit, egal cu
semnalul aplicat la intrare cu o toleran dat. cest parametru
depinde aproape liniar de valoarea capacitii de memorare;
timpul de stabilire la tranziia memorare-eantionare - reprezint
intervalul de timp dintre comutarea propriu-zis i atingerea unei
valori a ieirii corespunztoare intrrii, cu o toleran maxim
specificat.
Uzual, n cadrul sistemelor de achiziii de date sunt utilizate:
circuite de eantionare-memorare n bucl de reacie;
circuite de eantionare-memorare cu integrare.
n timpul operaiei de eantionare, bucla de reacie negativ din fig. 2.5
permite eliminarea erorii de mod comun i a erorii de offset, ieirea fiind forat
s urmreasc intrarea. Ca efect, tensiunea la bornele capacitii de memorare C,
pe durata ct comutatorul K este nchis, este egal cu:
A
(2.1)
Ue = Ui
A 1
n care A reprezint amplificarea n bucl deschis a amplificatorului operaional
A1(de valoare foarte mare). Se obine astfel egalitatea ntre Ue i Ui.
Precizia ridicat este obinut n detrimentul rapiditii, deoarece pe durata
regimului de memorare amplificatorul A1 este saturat, ntoarcerea la
funcionarea liniar, pentru operaia de eantionare, determin creterea timpului
de achiziie, care poate atinge mai multe zeci de s.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

11

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

_
_
Ui(t)

K
A1

Ue(t)

A2

A(Ue-Ui)
C

E/M

Fig. 2.5 Circuit de eantionare-memorare cu bucl de reacie negativ.

n fig. 2.6 sunt prezentate dou variante de circuit de eantionarememorare cu integrare. n montajul din fig. 2.6a capacitatea de memorare C este
izolat n raport cu masa circuitului, iar comutatorul K funcioneaz n comutaie
de curent, comanda fiind simplificat. Ca i n cazul precedent, primul
amplificator este saturat pe durata regimului de memorare. Evitarea saturrii
ieirii amplificatorului A1 este ilustrat n schema din fig. 2.6b.
R

_
Ui(t)

K
A1

C
A2

E/M

a)

_
Ui(t)

Ue(t)

A1

C
A2

+
+

Ue(t)

E/M

b)

Fig. 2.6 Circuite de eantionare-memorare cu integrare.

n tabelul 2.1 sunt prezentate cteva tipuri de circuite de eantionare i


memorare, produse de firme cum ar fi: Analog Devices, National, Burr-Brown i
Datel-Intersil.
Circuitele de eantionare-memorare disponibile la momentul actual
acoper o palet larg i divers din punct de vedere al performanelor, la cele
dou extreme aflndu-se, pe de o parte, circuitele de eantionare-memorare
rapide, dar cu o exactitate sczut, respectiv cele lente, dar cu exactitate bun n
ceea ce privete deriva, decalajul etc.
Aplicaiile ce necesit utilizarea circuitelor de eantionare-memorare
acoper i ele o palet larg de frecvene i viteze de variaie a semnalelor de
eantionat. n general, semnalele rapid variabile nu necesit o precizie deosebit,
din aceast cauz, n regim tranzitoriu, viteza constituie parametrul principal,
ceea ce nseamn timpi de achiziie i de stabilire mici. O situaie mai dificil
este atunci cnd se cere o vitez ridicat de eantionare i, n acelai timp, o
precizie bun.

12

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Tabelul 2.1 Principalele caracteristici ale unor circuite de eantionare i


memorare
Tipul

Timpul
Timpul Timpul
de
Precizia
de
de
achiziie
apertur stabilire
6 s
25 s
4 s
5 s
4 s
6 s
9 s
10 s

0,10 %
0,01 %
0,10 %
0,01 %
0,10 %
0,01 %
0,10 %
0,01 %

AD346

2 s

SHC85
HTS0025

AD582
AD583
LF398
SHC298

Tehnologie; Particulariti

150 ns

0,5 s

monolitic, uz comun

50 ns

monolitic, rapid

150 ns

0,8 s

monolitic, uz comun

200 ns

1,5 s

monolitic, uz comun

0,01 %

60 ns

0,5 s

4 s

0,01 %

25 ns

0,5 s

20 ns

0,01 %

20 ns

30 ns

hibrid, condensator de memorare


intern
hibrid, condensator de memorare
intern, timp ridicat de reinere a
tensiunii
hibrid, extrem de rapid

Pentru semnale caracterizate printr-o vitez de variaie mai sczut, se


aleg circuite de eantionare-memorare cu performane satisfctoare de vitez,
dar cu performane bune n ceea ce privete dispersia la deschidere, deriva de
zero i rata de descrcare a condensatorului de memorare.
R

C
R

_
K

E
A

Ui(t)

Ue(t)

Circuit de
comand

E
M

Fig. 2.7 Circuit de eantionare memorare cu blocare.

Pentru memorarea valorilor semnalelor, n vederea conversiei analogdigitale, cea mai des utilizat metod de eantionare este eantionarea prin
blocare. n aceeast metod, valoarea semnalului este memorat din primul
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

13

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

moment al eantionrii.
Un exemplu de circuit care utilizeaz aceast metod de eantionare, este
circuitul de eantionare-memorare cu integrare, varianta inversoare, a crui
schem funcional este prezentat n fig. 2.7.

2.2.3 CIRCUITE PENTRU CONVERSIA DATELOR


UTILIZATE N SISTEME DE ACHIZIII DE DATE:
CONVERTOARE ANALOG-DIGITALE I DIGITALANALOGICE
Conversia datelor reprezint principala operaie realizat n cadrul
sistemelor de achiziie i reprezint transformarea semnalelor din form
analogic n form digital sau invers.
Convertorul analog-digital reprezint componenta principal a oricrui
sistem de achiziii de date. Acesta realizeaz transformarea tensiunii analogice
de la intrare ntr-un cod numeric binar (fig. 2.8a).
Acest rezultat reprezint cea mai bun aproximaie numeric a tensiunii
de la intrare. Msura acestei aproximaii este reprezentat de numrul de bii ai
rezultatului conversiei.
ntr-un sens mai larg, procesul de conversie analog-digital poate fi
considerat ca o plasare a mrimii de intrare ntr-un interval de cuantizare,
obinut prin divizarea intervalului de variaie a acesteia ntr-un numr de clase
egale.
Atunci cnd mrimea exprimat numeric la intrare este transformat n
mrime analogic la ieire se realizeaz o conversie digital-analogic (fig. 2.8c).
Cod
7/8 =111

Ui

n
CA/D
Ieire
numeric

Semnal de ieire al CA/D

3/4 =110

Uref

5/8 =101
1/2 =100
3/8 =011
1/4 =010
1/8 =001
0 =000

Niveluri
0
cuantificate (Ui /Uref)

a) structura funcional a CA/D

14

1 1 3 1 5 3
8 4 8 2 8 4
Semnal analogic de intrare

7
8

Ui

b) caracteristica de transfer ideal a CA/D

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
U0

Uref

n
CD/A

U0

Intrare
numeric

Semnal analogic de ieire

7/8U ref
6/8U ref
5/8U ref
4/8U ref
3/8U ref
2/8U ref
1/8U ref
0
0
0
0

c) structura funcional a CD/A

0 0 0 1 1 1
0 1 1 0 0 1
1 0 1 0 1 0
Semnal digital de intrare

1
1
1

Cod

d) caracteristica de transfer ideal a CD/A

Fig. 2.8 Convertoare analog-digitale i digital analogice: reprezentare


funcional i caracteristic ideal de transfer.

Circuitele de conversie a datelor utilizate n cadrul sistemelor de achiziii


de date sunt caracterizate printr-o serie de parametri, cum ar fi:
gama de variaie a intrrii (pentru CA/D) sau a ieirii (pentru
CD/A)(domeniul de lucru), reprezentnd domeniul maxim de variaie a
mrimii analogice (de obicei tensiune) i exprimat n uniti absolute
(V, mV, mA) sau relative (dB);
caracteristica de transfer, reprezentnd dependena mrimii de la
ieirea convertorului fa de mrimea de intrare; pentru un convertor
analog-digital caracteristica de transfer ideal este o funcie scar (fig.
2.8b) iar pentru un convertor digital-analogic este un set de puncte
dispuse pe o dreapt (fig. 2.8d);
rezoluia reprezint numrul total de coduri distincte de ieire ale
convertorului analog-digital, respectiv numrul total de nivele de ieire
pentru un convertor digital-analogic. Uzual, rezoluia se exprim n
bii, n procente din valoarea domeniului de lucru, sau n numr de
nivele de cuantificare (CA/D) sau de ieire (CD/A). Rezoluia teoretic
a unui convertor de N bii este 2 N ; rezoluia real poate fi ns mai
mic, datorit erorilor. Acest parametru important al convertoarelor se
determin ca reprezentnd valoarea variaiei minime a mrimii de
intrare ce provoac modificarea a dou coduri consecutive de ieire
(CA/D), respectiv valoarea variaiei minime a mrimii analogice de la
1
ieire (CD/A). Rezoluia poate fi prezentat ca fiind N din domeniul
2
de lucru.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

15

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Acest parametru nu trebuie considerat ca o performan specific a


convertorului, ci un parametru de proiectare. Plecnd de la o aplicaie
concret, pentru care se impune prelevarea unei mrimi cu o precizie
dat, se poate determina rezoluia minim a convertorului ce va fi
folosit;
timpul de stabilire caracterizeaz viteza de rspuns a circuitului i
reprezint timpul scurs ntre aplicarea unui semnal de intrare de tip
treapt ideal i pn la obinerea ieirii dorite cu o aproximaie
specificat (de regul 1/2 LSB) (fig. 2.9). Timpul de stabilire include
mai multe intervale de timp specifice, cum ar fi: timpul de propagare
t p (pn la nceperea unui efect observabil la ieire), timpul de cretere

16

t c (pn la prima atingere a nivelului de ieire dorit), timpul de


restabilire t r (dup supracreterea ieirii) i timpul de relaxare liniar
t a (amortizarea eventualului rspuns oscilant). Este un parametru
specific convertoarelor digital-analogice i se exprim n uniti de
timp, indicnd i limitele intervalului de aproximaie n jurul ieirii
specificate;
timpul de conversie, t CONV , reprezint intervalul de timp necesar unui
convertor s obin mrimea de ieire pornind de la o mrime de
intrare dat (timpul necesar obinerii codului numeric de ieire
corespunztor mrimii analogice de intrare). Variaia tensiunii de
intrare, pe parcursul procesului de conversie, introduce o eroare n
valoarea semnalului de ieire. n cazul convertoarelor digital-analogice
acest timp poate fi considerat a fi chiar timpul de stabilire;
timpul de revenire (relaxare), t rev , reprezint timpul necesar unui
convertor pentru a putea opera din nou corect;
rata de conversie este o msur a vitezei convertorului i este definit
de inversul sumei timpilor de conversie i de revenire:
1
R CONV =
(2.2)
t CONV + t rev
n majoritatea situaiilor, timpul de revenire este mult mai mic dect
timpul de conversie, astfel nct rata de conversie poate fi aproximat
doar ca invers al timpului de conversie. n cazul convertoarelor rapide
i foarte rapide, timpul de revenire trebuie luat n calcul pentru
estimarea ratei de conversie;
timpul de conversie pe bit este timpul echivalent de generare a unui
bit (parametru caracteristic pentru convertoare analog-digitale
secveniale);
viteza de variaie a ieirii (SR Slew-Rate) a unui convertor D/A
reprezint o caracterizare a intervalului de timp necesar ieirii s

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

execute excursia maxim n cadrul domeniului de variaie.


Ieire

Conversia analog-digital este


caracterizat n sine prin eroarea de
+1/2 LSB
cuantizare. Datorit formei caracteU0
-1/2 LSB
risticii de transfer (n scar), a
codificrii unice a unui ntreg interval
SR
de cuantizare, apare o incertitudine de
1/2 LSB, nul la mijlocul intervalului i maxim la ambele capete.
t Influena erorii de cuantizare poate fi
tp tc
ta
diminuat prin mrirea numrului de
tr
bii ai codului de ieire a converTimp de stabilire
torului.
Fiecare cuant (mrime a
Fig. 2.9 Timpul de stabilire.
intervalului) a unei astfel de divizri
reprezint o valoare a mrimii analogice, pe care se disting nivelurile semnalului
de intrare, prezentate prin dou combinaii de coduri nvecinate. Aceast cuant
poart denumirea de bitul cel mai puin semnificativ (LSB).
Astfel:
U
q = LSB = i max N
(2.3)
2
unde: q este cuanta, iar U i max gama de variaie a semnalului analogic de intrare.
Caracteristicile reale ale circuitelor de conversie a datelor pot diferi de
caracteristicile sale ideale (fig. 2.10). Caracteristica de transfer a convertorului
analog-digital poate fi translatat n raport cu cea ideal (fig 2.10a). Aceast
eroare se numete eroare de decalaj (offset) i se poate pune n eviden
aplicnd la intrare o mrime nul i msurnd ieirea.
Eroarea determinat de modificarea pantei caracteristicii de transfer reale
fa de cea ideal, eroarea iniial fiind nul, se numete eroare de amplificare
(de gam) (fig. 2.10b). Pentru majoritatea CA/D erorile de decalaj i de
amplificare sunt mici i pot fi complet eliminate prin reglaj prealabil.
Mai dificil de eliminat sunt erorile legate de neliniaritatea caracteristicilor
de transfer, care nu pot fi nlturate prin reglare prealabil. Convertoarele
analog-digitale sunt caracterizate de dou tipuri de neliniariti: cea integral,
respectiv cea diferenial:
neliniaritatea integral definete gradul n care caracteristica de
transfer a unui convertor se abate de la forma teoretic (ideal) de
dreapt, considernd erori de decalaj i de amplificare nule (fig. 2.10c);

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

17

Eroarea de
decalaj
0

Ui max

Ui max
Semnal analogic de intrare

Semnal analogic de intrare

a) eroarea de decalaj

b) eroarea de amplificare

Ui max

0
Semnal analogic de intrare

c) neliniaritatea integral

Neliniaritatea
diferenial

Semnal de ieire al CA/D

Neliniaritatea
integral

Semnal de ieire al CA/D

Eroarea de
amplificare

Semnal de ieire al CA/D

Semnal de ieire al CA/D

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Codul
omis (001)

Pasul de
cuantizare neideal
Ui max

0
Semnal analogic de intrare

d) neliniaritatea diferenial

Fig. 2.10 Erorile convertoarelor analog-digitale.

neliniaritatea diferenial caracterizeaz uniformitatea intervalelor de


cuantizare ale unui convertor analog-digital. Dac neliniaritatea
diferenial depete 1 LSB, aceasta conduce la o comportare
nemonoton a caracteristicii de transfer (n semnalul numeric de ieire
poate lipsi una din combinaiile de cod - fig 2.10d). Neliniaritatea
diferenial este afectat de metoda de conversie; ea tinde s fie
maxim atunci cnd convertorul trece prin toate intervalele de
cuantizare secvenial.
Precizia reprezint capacitatea circuitelor de conversie de a respecta cu
strictee caracteristica de transfer ideal, reflectnd capacitatea convertoarelor de
18

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

a nu fi afectate de erori sistematice i aleatoare. Precizia absolut caracterizeaz


funcionarea unui convertor n ansamblu, reflectnd orice anomalie a
caracteristicii de transfer. Precizia relativ este influenat doar de liniaritatea
caracteristicii de transfer.
Precizia total de conversie se realizeaz numai n cazul cnd aceast
eroare nu depete rezoluia convertorului. Astfel, pentru un convertor cu
rezoluia de N bii, caracterizat de timpul de conversie t CONV , este necesar
ndeplinirea urmtoarei condiii:
U i max
dU i
(2.4)

N
dt max 2 t CONV

2.2.3.1 CONVERTOARE DIGITAL-ANALOGICE. SCHEME


DE PRINCIPIU
Conversia datelor presupune ca oricrei mrimi analogice s i se asocieze
o reprezentare numeric corespunztoare; codurile utilizate pot fi ponderate sau
neponderate, prezentnd avantajul unei exprimri naturale i compatibilitate cu
circuitele de calcul numeric. n cazul unui cod ponderat, o cifr din cadrul unui
numr are semnificaia valorii sale propriu-zise, ct i a ponderii datorate
poziiei sale n cadrul numrului. Conversia digital-analogic presupune
transformarea valorii i ponderii cifrelor numrului ntr-o mrime de ieire
analogic corespunztoare (tensiune sau curent).
Considernd un numr ntreg binar de N bii, de forma:
N 1

B N1B N2 ...B1B0 = Bi 2i

(2.5)

i =0

ponderea cifrei Bi1 (ce ocup poziia i ncepnd cu LSB) este 2i1 ; aadar
ponderea sa crete de la dreapta spre stnga de la valoarea 1 (ponderea LSB) la
valoarea 2 N1 (ponderea MSB). Aceleai observaii sunt valabile i pentru un
numr subunitar de N bii , de forma:
N

B1B 2 ...B N1B N = Bi 2 i

(2.6)

i =1

Procesul de conversie digital-analogic poate fi considerat similar cu


procesul de transformare a unui numr din sistemul de numeraie binar n
sistemul de numeraie zecimal: se asociaz fiecrei cifre binare 1 o anumit
valoare a unei mrimi electrice care se nsumeaz ponderat conform rangului pe
care l ocup n cadrul reprezentrii numerice. Deoarece ponderea cifrelor
descrete cu factori de forma 2 i , o soluie simpl pentru realizarea operaiei de
ponderare ar consta n utilizarea unor reele rezistive divizoare, cu mai multe
noduri, avnd ntre noduri consecutive un raport de divizare de 1/2. Majoritatea
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

19

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

convertoarelor digital-analogice moderne folosesc scheme cu sumare de cureni,


care sunt mai stabile, mai rapide i mai uor de realizat. Schema bloc a unui
astfel de convertor este prezentat n fig. 2.11.
Rr

_
U0

+
Interfa
digital
(numeric)
N

Reea de
comutatoare

Reea de
rezistene

Referin
de tensiune

Fig. 2.11 Schema bloc simplificat a unui convertor digital-analogic.

Interfaa digital (numeric) asigur compatibilitatea convertorului cu


semnale TTL/CMOS i produce semnale de comand pentru o reea de
comutatoare analogice. Aceste comutatoare controleaz curenii aplicai unei
reele rezistive de precizie, care realizeaz ponderarea lor, pentru a obine, prin
sumare, valoarea analogic corespunztoare. Valorile curenilor care circul prin
reea sunt determinate de valorile rezistenelor ce compun reeaua i de mrimea
(tensiune sau curent) de referin ce intr n compunearea convertorului. Ieirea
poate fi constituit chiar de suma curenilor din reea sau de o tensiune obinut
prin transformarea curent-tensiune.
Convertorul prezentat anterior funcioneaz n permanen: la fiecare
modificare a intrrii, ieirea reacioneaz corespunztor. Dac se dorete
meninerea valorii analogice de ieire i n absena unei mrimi de intrare valide,
se poate recurge la memorarea acesteia ntr-un registru ncrcat adecvat, doar la
momentele de timp la care se dorete modificarea ieirii.
Pentru implementarea convertoarelor digital-analogice, aa cum a fost
precizat anterior, metoda consacrat const n utilizarea reelelor rezistive.
Convertoarele digital-analogice cu reele ponderate binar (fig. 2.12a)
conin un grup de rezistene de valori R i = 2i R, i = 1, N , conectate mpreun la
una dintre extremiti. Numrul rezistenelor din reea este determinat de
numrul de bii N ai cuvntului de intrare. Fiecare intrare logic, Bi , comand
cte un comutator analogic, K i , ce conecteaz cte o rezisten a reelei la sursa
de tensiune de referin, U ref , genernd un curent Ii . Tensiunea de ieire poate fi
calculat conform relaiei:
N
U
R N B U
R r N1
U 0 = R r Bi i ref = U ref r ii = ref

Bi 2 i
(2.7)
N
2 R
R i=1 2
2
R i =0
i =1

20

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Expresia (2.7) arat c mrimea de ieire este o fraciune din mrimea de


referin U ref i proporional cu numrul aplicat la intrare. Convertorul
prezentat funcioneaz doar unipolar. Pentru o funcionare bipolar, schema se
modific aducnd n nodul de sumare a curenilor un curent egal cu jumtate din
valoarea corespunztoare captului de gam (fig. 2.12a cu linie punctat).
Convertoarele digital-analogice bazate pe acest principiu se numesc i
convertoare digital-analogice cu cureni ponderai, deoarece schema utilizeaz
sumarea unor astfel de cureni.
Simplitatea structurii prezentate n fig. 2.12a trebuie pus n balan cu
inconvenientul major al stabilitii i preciziei. Deoarece legea de variaie a
rezistenelor reelei este exponenial, la un numr mare de bii, valorile lor se
distribuie pe un interval foarte mare. Acest lucru face dificil realizarea lor cu
precizii ridicate i cu caracteristici de temperatur identice.
Un alt tip de reele rezistive utilizate pe scar larg n construcia
convertoarelor digital-analogice, ct i n alte circuite de instrumentaie
(convertoare analog-digitale, amplificatoare i atenuatoare programabile, etc)
sunt reelele rezisitve R-2R. Schema unei astfel de reele care permite o rezoluie
de N bii (fig. 2.12b) prezint caracteristicile unei legri n cascad de divizoare
cu 2, comandate fiecare de cte un bit al cuvntului de la intrare. Reeaua
rezistiv conine rezistene de valoare R conectate n serie i rezistene de
valoare 2R conectate n paralel. Fiecrui bit B i al cuvntului de intrare i este
asociat cte un comutator cu dou poziii, care conecteaz terminalele
rezistenelor 2R la mas ( Bi =0) sau la referin ( Bi =1). Comanda poate fi
fcut n tensiune sau n curent. Rezistena de valoare 2R conectat n
permanen la mas are rolul ca rezistena echivalent a circuitului msurat
ntre bornele de ieire s fie ntotdeauna R.
2R -I

-Uref
B1

K1

B2

K2

Rr

2 R I1 I
2

2 R I2

_
U0

BN
Uref

KN

2 R IN

a) Convertor digital-analogic unipolar/bipolar cu reea ponderat binar.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

21

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

N-1 R

2R

2R
KN

U0
2R

2R
K1

KN-1

BN
BN-1
B1
Uref

b) Structura reelei rezistive R-2R.

K1

B1
B2
BN

Uref

2R

2R

I1

I2

K2

N
2R

2R
KN

IN

Rr

_
U0

c) Convertor digital-analogic cu reea R-2R inversat.

22

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

B1
BN-1
BN
I0

KN

KN-1

K1

2R

2R

Iout

R
N

I0

I0

N-1
2R

1
2R

2R

d) Reea R-2R comandat cu generatoare de curent.


Fig. 2.12 Principii de implementare ale convertoarelor digital-analogice.

n cazul structurii din fig. 2.12b, tensiunea de la ieire este descris prin
relaia:
N 1
N
B U
U 0 = U ref ii = ref

Bi 2 i
(2.8)

N
2
i =0
i =1 2
Reelele rezistive R-2R comandate n tensiune sunt simple i ieftine, dar
au o liniaritate relativ redus datorit comportrii comutatoarelor analogice.
Comutatoarele analogice CMOS au o rezisten R on variabil, dependent de
tensiunea dren-surs a tranzistorului cu efect de cmp. Rezistenele
comutatoarelor se sumeaz cu cele ale reelei, determinnd erori de neliniaritate
prin modificarea factorilor de divizare de la o celul la cealalt.
O variant a conversiei digital-analogice utilizeaz conexiunea invers,
schimbnd rolul ieirii cu cel al intrrii (fig. 2.12c). n aceast situaie,
comutatoarele se gsesc practic la acelai potenial, iar rezistenele reelei sunt
U
, i = 1, N , indiferent de
parcurse de cureni de valori constante, de tip ref i
2 R
poziia acestora. Valorile logice ale biilor cuvntului de intrare comand poziia
comutatoarelor; acestea determin sumarea componentei i de curent n nodul de
intrare al convertorului curent-tensiune sau conectarea acestei componente la
mas. Dezavantajul major al acestei structuri este reprezentat de valorile relativ
mari ale timpului de stabilire, datorate sumrii capacitilor parazite.
Tensiunea de ieire a acestui tip de convertor digital-analogic este
caracterizat de expresia (2.7).
Reelele R-2R pot fi comandate direct n curent, folosind generatoare de
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

23

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

curent comutate (fig. 2.12d). Aceast schem este frecvent utilizat n cadrul
convertoarelor digital-analogice moderne, datorit performanelor sale de vitez.
Din punct de vedere al interfarii convertoarelor digital-analogice n
cadrul sistemelor de achiziii de date, trebuie remarcat c circuitele din prima
generaie foloseau o interfa minimal cu circuitele numerice, cu rolul de
adaptare a nivelelor logice de comand. Circuitele din generaiile recente conin
integrate unul sau mai multe convertoare digital-analogice, registre de memorare
a cuvntului numeric de intrare i o logic de comand. Aceste resurse permit
interfaarea simpl i unitar cu microcontroller-e i microprocesoare a cror
magistral de date difer ca dimensiune de lungimea cuvntului de comand,
respectiv programarea convertoarelor multiple (fig. 2.13).
Ctre CD/A
N
LDAC

Registru
CD/A

CLR

Ctre CD/A
N

LDAC

CS
Registru
de intrare

WR

CLR

Registru
CD/A
N

Ctre CD/A_1 CSL


DIN

12

Registru
de intrare
LOW

WR

Registru
de intrare
HIGH

SCLK

CS
LDAC

Registru de deplasare
(24 bii)

12
Registru
CD/A_1

CSH
8

12
Registru
CD/A_2

12

Ctre CD/A_2

Fig. 2.13 Interfaarea convertoarelor digital-analogice cu magistrala unui


microprocesor.

24

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Logica de comand permite memorarea intrii digitale sub forme diferite


(12 bii - un singur ciclu de programare, 8+4 bii - dou cicluri de programare,
intrare serial), precum i selectarea modului de lucru (ieire unipolar sau
bipolar).
O categorie aparte de convertoare digital-analogice o constituie circuitele
de conversie cu transformare intermediar n timp. Aceste circuite folosesc
transformarea mrimii numerice ntr-o mrime intermediar (durat sau
frecven), ce produce ulterior mrimea de ieire analogic proporional printr-un procedeu oarecare (filtrare, transfer de sarcin i integrare, etc). n aceast
categorie pot fi ncadrate convertoarele digital-analogice cu modulaie n durat
a impulsurilor (coninute n structura majoritii microcontroller-elor moderne i
putnd fi utilizate n aplicaii n care nu sunt necesare performane deosebite) i
convertoarele digital-analogice cu transformare frecven-tensiune.

2.2.3.2 CONVERTOARE ANALOG-DIGITALE. SCHEME DE


PRINCIPIU
Convertorul analog-digital realizeaz transformarea mrimii analogice de
la intrare ntr-o mrime numeric la ieire. Generaliznd, procesul de conversie
analog-digital poate fi considerat ca o plasare a mrimii de intrare ntr-un
interval de cuantizare, obinut prin divizarea intervalului de variaie a acesteia
ntr-un numr de clase egale. Prima operaie definete aspectul temporal al
conversiei, n timp ce a doua operaie definete chiar modul de obinere a
echivalentului numeric al mrimii analogice.
Convertoarele analog-digitale sunt realizate pe baza unor soluii
principiale extrem de diverse, fiecare dintre acestea prezentnd att avantaje, ct
i devavantaje. Pn n acest moment nu s-a gsit un principiu de funcionare
care s asigure simultan obinerea ieftin de rezoluii mari, viteze ridicate, erori
de neliniaritate foarte reduse, etc. De aceea, alegerea unui anumit tip de
convertor analog-digital se face n funcie de cerinele aplicaiei, urmrind
obinerea performanelor dorite cu efort material minim.
Convertoare analog-digitale paralele. Ideea simpl a inversrii
procedeului de conversie digital-analogic cu ponderarea controlat numeric a
unei mrimi de referin, conduce la folosirea comparrii mrimii de intrare cu
un ir de valori de referin (reprezentnd limitele intervalelor de cuantizare),
pentru obinerea conversiei analog-digitale. Tensiunea de referin este aplicat
unei reele rezistive de precizie, astfel nct fraciunea din tensiunea de referin
aplicat intrrii inversoare a fiecrui comparator s fie cu un LSB mai mare
dect cea aplicat comparatorului de pe rangul anterior. Comparatoarele
realizeaz atribuirea mrimii de intrare (de pe intrrile neinversoare) unui
interval de cuantizare; toate comparatoarele ale cror referin este mai mic
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

25

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

dect tensiunea de intrare produc un nivel logic 1 la ieire, celelalte


comparatoare vor furniza la ieire nivele logice 0. Ieirile reelei de 2 N 1
comparatoare sunt aplicate unui codificator logic cu prioriti care are rolul de a
furniza la ieire codul numeric dorit (fig. 2.14).
Acest tip de convertor obine biii cuvntului de ieire simultan i
independent de valoarea sau polaritatea intrrii; de aici, denumirea de convertor
analog-digital paralel sau flash. Numrul mic de operaii, precum i simplitatea
lor, determin viteza foarte ridicat a acestui tip de convertor. Principalul su
dezavantaj const n rezoluia limitat, datorat creterii exponeniale a
numrului de comparatoare odat cu creterea numrului de bii de ieire. Este
utilizat n conversia rapid a semnalelor video (televiziune, radar), ct i ca
subansamblu n implementarea altor tipuri de convertoare rapide.
+Uref
R

+
_
C2N-2

Ui

+
R

B0B1...BN-1

Codificator de prioriti

C2N-1

(2 -1 nivele la N bii de ieire)

C1
R

-Uref

Fig. 2.14 Convertor analog-digital paralel (flash).


Convertoare analog-digitale analog-seriale i digital-paralele. O alt
soluie de obinere a unor convertoare rapide const n cascadarea unor celule
elementare de conversie ce conin amplificatoare i comparatoare (fig. 2.15).
Celula elementar (fig. 2.15a) conine dou amplificatoare difereniale cu
amplificarea egal cu 2, ce produc ieiri cu tendine de variaii contrare; ieirile
amplificatoarelor difereniale sunt selectate cu ajutorul unui multiplexor
analogic comandat de ieirea unui comparator avnd tensiunea de prag egal cu
jumtatea tensiunii de referin. Aceast tensiune de prag este obinut prin
26

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

divizarea cu 2 (cu ajutorul unui divizor rezistiv de precizie) a tensiunii de


referin a convertorului. Caracteristica de tranfer a circuitului elementar este
prezentat n fig. 2.15b.
n aceste condiii, se poate preciza expresia ieirii analogice:
0 U i < U ref 2
2 U i ,
U0 =
(2.9)
2 (U ref U i ), U ref 2 U i < U ref

i cea a ieirii logice:


0, 0 U i < U ref 2
B=
(2.10)
1
,
U
2

U
<
U
ref
i
ref

Lanul de celule, realizat prin nserierea analogic, este prezentat n fig.


2.15c.
_

U0

A=2

Ui

2Umax

U0

Uref =Umax

A=2
+Uref

+
R

Umax

+Uref /2
B

C
R

a) Celula elementar de conversie

Uref

U0

Ui

Umax

Ui

b) Caracteristica de transfer
BN

B
Ui

Umax /2

B2

B1

Ui

Uref

B
U0

Ui

Uref

U0

Uref

c) Cascadarea mai multor celule pentru obinerea cuvntului de ieire


Fig. 2.15 Convertor analog-digital analog-serial i digital-paralel.

La aplicarea semnalului analogic la intrarea lanului, acesta se va propaga


rapid de la un etaj la altul producnd ntr-un timp foarte scurt ieiri stabile att
pe liniile analogice, ct i pe cele digitale. Este necesar, ca pe durata conversiei,
valoarea analogic aplicat la intrarea lanului s fie stabil. Acest deziderat
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

27

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR


B1

B2

B3

B4

poate fi realizat prin utilizarea unui


circuit de eantionare-memorare.
D41
Timpul complet de conversie este
Clk3
determinat de ntrzierea global prin
celulele lanului. Cu toate acestea, fiecare
D31
D32
bit poate fi memorat imediat ce este
Clk2
obinut, astfel nct o nou conversie
poate fi demarat dup obinerea
D21
D22
D23
primului bit. Utiliznd acest principiu,
Clk1
rata de conversie este determinat de
timpul de obinere a unui singur bit.
D11
D11
D11
D11
Acest tip de convertor permite, cu o
schem numeric adecvat (pipeline pe
Ui
fiecare bit - fig. 2.16), obinerea unui
CA1
CA2
CA3
CA4
cuvnt la rata de conversie a unei singure
Uref
celule.
Fig. 2.16 Convertor analog-digital
Structurile descrise anterior i
rapid cu timp de conversie egal cu gsesc aplicaii n domeniul convertoatimpul de obinere a unui bit.
relor video utilizate n achiziii de
imagine. n practic, numrul de celule
ce pot fi cascadate este limitat din considerente tehnologice. Ca urmare, acest tip
de convertor se utilizeaz n scheme mixte, mpreun cu cele paralele
(convertoare analog-digitale analog-seriale i digital-paralele pentru rangurile
superioare i convertoarele analog-digitale paralele pentru rangurile inferioare).
n momentul de fa se constat o revenire spectaculoas a ideii expuse,
odat cu dezvoltarea arhitecturilor sistolice de prelucrare a semnalelor.
Convertoare analog-digitale serie-paralel. O soluie de compromis, care
poate fi exploatat foarte eficient la obinerea unor rezoluii i viteze ridicate,
este utilizarea tehnicii cu corecie de subdomeniu.
Un convertor analog-digital de N bii (numr par), funcionnd pe
principiul amintit, folosete dou convertoare analog-digitale de N 2 bii care
vor furniza mai nti partea mai semnaificativ a rezultatului i apoi partea mai
puin semnificativ.
n fig. 2.17a este prezentat un convertor analog-digital rapid de 8 bii. Un
ciclu de conversie al acestui convertor poate fi rezumat astfel:
se furnizeaz din exterior comanda de start conversie, care
iniializeaz logica intern de sincronizare;
circuitul de eantionare-memorare este comandat n starea de
memorare ( E/ M = 0 );
se activeaz funcionarea primului convertor analog-digital paralel,
activnd semnalul Clk1 ;
Clk4

28

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

E/M
Clk1
Logic de Clk2
control i Clk3
sincronizare Clk4

Start

B8
LSB
B7
B6
B5
B4
B3
B2
B1

Registru
(4 bii)

Registru
(8 bii)

Buffer 2

CA/D paralel
(4 bii)

Ui

CD/A rapid
(4 bii)

Circuit de
eantionarememorare

CA/D paralel
(4 bii)

Buffer 1

MSB

B8
B7
B6
B5
B4
B3
B2
B1
DRDY

a) Convertor analog-digital de 8 bii cu corecie de subdomeniu

Start

Logic de
control i
sincronizare

Clk2

Registru
(10 bii)

Clk1

Logic de corecie numeric

E/M

CA/D paralel
(8 bii)

Circuit de
eantionarememorare

Ui

CD/A rapid
(3 bii)

CA/D paralel
(3 bii)

Buffer 1

B10
B9
B8
B7
B6
B5
B4
B3
B2
B1
DRDY

Clk3
Clk4

b) Convertor analog-digital de 10 bii cu corecie numeric de subdomeniu


Fig. 2.17 Convertoare serie-paralel.

dup ncheierea conversiei, se ncarc registrul intermediar cu cei mai


semnificativi 4 bii ai valorii analogice convertite, activnd semnalul
Clk 2 ;
aceeai valoare numeric se aplic i convertorului digital-analogic de
precizie. Acest convertor va produce la ieire o valoare analogic
foarte apropiat de cea a intrrii, mai puin eroarea de cuantizare. Dup
expirarea timpului de stabilire, se activeaz funcionarea celui de-al
doilea convertor analog-digital paralel, activnd semnalul Clk 3 . Acest
convertor primete ca semnal analogic de intrare rezultatul diferenei
dintre tensiunea de intrare i versiunea sa cuantizat (de la ieirea
CD/A);
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

29

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

la sfrsitul conversiei, se poate ncrca, activnd semnalul Clk 4 ,


registrul de 8 bii de la ieire att cu cei mai puin semnificativi bii
abia obinui, ct i cu biii cei mai semnificativi memorai n registrul
intermediar;
dup ncrcarea registrului de ieire, se poate activa semnalul DRDY ,
semnaliznd faptul c este disponibil un nou rezultat al conversiei.
Convertorul cu corecie de subdomeniu este cunoscut i sub denumirea de
convertor analog-digital serie-paralel i reprezint una dintre soluiile de
compromis ntre cost i performane. Cu toate acestea, liniaritatea diferenial
este sczut, mai ales la tranziia de la bitul N 2 la bitul (N 2 ) + 1 ; aceast
eroare poate depi cu uurin 1 LSB i ca urmare poate provoca omiterea unor
coduri i abateri de la monotonie. Problema poate fi rezolvat cu ajutorul unei
tehnici de conversie analog-digital paralel, numit corecie numeric de
subdomeniu (fig. 2.17b). Convertoarele ce folosesc corecia numeric de
subdomeniu au o arhitectur similar cu cea prezentat anterior, dar semnalul
analogic este cuantizat suplimentar; rezoluia astfel obinut este utilizat n
cadrul unui circuit numeric de corecie a erorilor incrementale, erori inerente
convertoarelor analog-digitale cu corecie de subdomeniu ce folosesc tehnologii
uzuale.
n figura 2.17b este prezentat un convertor analog-digital de 10 bii. Cei
mai semnificativi 3 bii sunt obinui cu un convertor A/D paralel; ei sunt
introdui ntr-un convertor D/A de 3 bii cu precizie de 12 bii, pentru a putea
pstra precizia ieirii corespunztoare rezoluiei de 10 bii. Diferena dintre
valoarea intrrii i valoarea corespunztoare ieirii convertorului D/A este
amplificat i aplicat la intrarea celui de-al doilea convertor A/D paralel de 8
bii, cu ajutorul cruia se obin biii mai puin semnificativi. Dup cum se poate
observa, acest convertor produce un bit suplimentar, folosit pentru corecia
numeric de subdomeniu. Aceast corecie contribuie substanial la
mbuntirea liniaritii.
Convertoarele analog-digitale serie-paralel sunt frecvent utilizate n
sistemele de achiziie a semnalelor video.
Convertoare analog-digitale cu reacie. Dei simple ca principiu,
convertoarele analog-digitale paralele sunt limitate ca rezoluie datorit
complexitilor tehnologice (numrul mare de comparatoare determin creterea
dimensiunilor fizice, puterea disipat i preul de cost). Ideea comparrii mrimii
analogice de intrare cu un set de valori de referin este aplicabil, ntr-o
variant mai economic, secvenial, n cadrul convertoarelor analog-digitale cu
reacie. Cu un singur comparator, un convertor digital-analogic destinat
generrii treptelor de referin i o logic secvenial (numrtor/registru) care
genereaz numeric limitele intervalelor de cuantizare se obine un convertor
analog-digital cu reacie.
Mrimea analogic de intrare este comparat cu mrimea de referin
30

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

generat de ansamblul convertor digital-analogic-logic de control; funcie de


rezultatul comparrii, logica de control decide urmtoarea valoare logic pe care
o va produce n pasul urmtor (fig. 2.18a). Algoritmul de conversie poate fi
implementat n mai multe variante, din care rezult i tipurile convertoarelor
A/D cu reacie:
convertor analog-digital cu numrare (fig. 2.18b);
convertor analog-digital cu urmrire (fig. 2.18c);
convertor analog-digital cu aproximaii succesive (fig. 2.18d).
Clock
Start
EOC

Ui(t) _
Logic de
control

N
Uref

Convertor digitalanalogic (CD/A)

a) Schema bloc a unui convertor analog-digital cu reacie.


Clock
U
Ui
Numrtor
S

Clk

Start

Reset
Qi

Busy

Ui(t) _

UN

+
UN

Ui(t)

Uref

Start
Clk

b) Convertor analog-digital cu numrare


U
Ui
Numrtor

+
_

Convertor digitalanalogic (CD/A)

U/D

reversibil

Clk

Clock

Qi
N
UN

Convertor digitalanalogic (CD/A)

UN

Uref

U/D
c) Convertor analog-digital cu urmrire

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

31

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR


Ui(t)

+
_

Ui /Uref
8/8
Ui
EOC
7/8
6/8
5/8
UN
4/8
N
3/8
U
2/8
ref
Convertor digital1/8
analogic (CD/A)
0
1 1 0 0 ...
d) Convertor analog-digital cu aproximaii succesive
Registru de
SC
aproximaii
DS
succesive EOC
Qi

UN

Start

Fig. 2.18 Convertoare analog-digitale cu reacie.

Convertorul A/D cu numrare folosete cel mai simplu algoritm de


generare a treptelor de referin: parcurgerea lor consecutive (numrare), de la
limita inferioar a gamei de lucru i pn la depirea valorii analogice de la
intrare (fig. 2.18b). Logica de control are la baz un numrtor, iniializat la
nceputul fiecrui ciclu de conversie; numrul de bii ai acestuia este egal cu
rezoluia convertorului D/A i a circuitului de conversie realizat. Semnalul
Start determin reset-area numrtorului i valideaz intrarea de ceas a
numrtorului prin set-area bistabilului de tip RS; n acelai timp, convertorul
D/A produce o tensiune U N la limita inferioar a domeniului de lucru.
Dispunnd de semnal de ceas, numrtorul ncepe s se incrementeze, crescnd
i tensiunea de referin U N trept cu treapt. La atingerea valorii semnalului de
intrare, comparatorul i schimb starea de la ieire, reset-eaz bistabilul i
oprete ceasul de numrare, finaliznd procesul de conversie. Ieirea acestui
bistabil poate fi utilizat drept semnal conversie n curs de desfurare.
Se poate observa uor c durata conversiei nu este constant, ea depinznd
de valoarea mrimii analogice aplicate la intrare. Dei timpul de conversie poate
fi redus prin creterea frecvenei ceasului, limita sa superioar este determinat
de timpul de propagare pentru numrtor i circuitele porii, de timpul de
stabilire al CD/A i al comparatorului.
Dei avantajul major al acestei structuri rezid n simplitatea sa, acest
convertor cu reacie e caracterizat de un timp de conversie ridicat, dependent de
valoarea intrrii, precum i de o rejecie slab a perturbaiilor (determinat de
variaia impedanei de intrare).
nlocuind n schema precedent numrtorul cu incrementare cu unul
reversibil (cu incrementare/decrementare) i comandnd sensul de numrare n
funcie de rezultatul comparrii mrimii de intrare cu treptele de referin, se
obine un convertor analog-digital cu urmrire (funcionare continu) (fig.
2.18c). Ieirea comparatorului reprezint, de fapt, codificarea pe un bit a
tendinei de variaie a semnalului de intrare. Dac semnalul de intrare este
relativ constant, dup egalizarea semnalului U N cu mrimea de la intrare, ieirea
32

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

comparatorului va oscila, odat cu U N , eroarea conversiei fiind 0,5 LSB.


Valoarea numeric corespunztoare intrrii va fi oricare dintre strile
numrtorului reversibil (aproximaie prin lips sau adaos).
Problema fundamental a acestor dou tipuri de convertoare A/D cu
reacie const n posibilitatea apariiei distorsiunilor de neurmrire, cauzate de
viteza constant de incrementare/decrementare a numrtorului (limiteaz viteza
de variaie a semnalelor aplicate la intrare). n practic, banda de frecvene a
semnalului de intrare este limitat la valori de ordinul ctorva kHz.
nlocuind numrtorul din bucla de reacie a convertorului cu un registru
de deplasare special, denumit registru de aproximaii succesive, se determin
eliminarea dezavantajelor menionate anterior. Se obine, astfel, un convertor
analog-digital cu aproximaii succesive.
n fig 2.18d este prezentat schema funcional a convertorului analogdigital cu aproximaii succesive pentru N=3 i se prezint principiul lui de
funcionare.
Conversia ncepe cu iniializarea la valoarea 1 a bitului celui mai
semnificativ (MSB) n cadrul registrului de aproximaii succesive. Aceasta
corespunde primei evaluri a valorii semnalului de intrare cu jumtatea valorii
domeniului de intrare. Se compar semnalul de ieire al CD/A corespunztor
acestei valori cu tensiunea de intrare i se comand de reset-area valorii bitului
celui mai semnificativ dac evaluarea primar depete valoarea semnalului de
intrare; n caz contrar aceeast valoare este validat i este memorat. n tactul
urmtor controlerul fixeaz valoarea 1 pentru urmtorul bit i, din nivelul
semnalului de intrare, comparatorul decide memorarea sau reset-area strii
acestui rang. Conversia continu n mod similar, pn se evalueaz bitul cel mai
puin semnificativ (LSB). n acest moment, cuvntul coninut n registrul de
aproximaii succesive (transferat i n registrul de ieire) reprezint cea mai bun
aproximaie numeric a semnalului analogic de intrare. Dac datele se obin
direct de la ieirea registrului de aproximaii succesive, trebuie menionat c
acestea devin stabile doar dup sfritul conversiei (n rest ele reproduc procesul
de aproximare); n consecin, logica extern trebuie adaptat n mod
corespunztor.
n metoda de conversie bazat pe aproximaii succesive, semnalul de
ieire al CD/A crete neliniar pn la nivelul semnalului de intrare pe perioada a
N tacte (pentru convertorul cu rezoluia de N bii). Ca rezultat, procesul de
conversie dureaz un timp considerabil mai redus i, n plus, timpul de conversie
este constant i nu depinde de nivelul, semnul sau modului de variaie a
semnalului de la intare.
Metoda aproximaiilor succesive este cea mai rspndit metod de
conversie analog-digital pentru convertoarele de uz general, cu rate de
conversie medii i ridicate (timpi de conversie cuprini ntre 1 i 25 s).
Convertoare analog-digitale cu transformare tensiune-timp. Aceste
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

33

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

tipuri de convertoare realizeaz transformarea mrimii analogice de intrare ntr-un interval de timp proporional, care este msurat numeric. Din aceast
categorie fac parte:
convertorul analog-digital cu generator de ramp;
convertorul analog-digital cu integrare n dubl pant;
convertorul analog-digital cu integrare n mai multe rampe.
Convertoarele analog-digitale cu integrare n dubl pant sunt
caracterizate de o precizie i o liniaritate excelente, o bun rejecie a semnalelor
parazite (datorit integrrii), n pofida timpului de conversie de valoare mare.
Majoritatea circuitelor sunt monolitice, realizate n tehnologie CMOS, fiind
extrem de rspndite n echipamente de msurare numerice clasice (aparate
portabile, de tablou sau de laborator).
Trebuie menionat faptul c majoritatea convertoarelor analog-digitale de
generaie recent dispun de o interfa specializat, versatil cu microprocesoare
pe 8 sau 16 bii, ceea ce simplific mult interfaarea acestor circuite n cadrul
sistemelor inteligente de achiziii de date.
Firmele productoare de convertoare analog-digitale ofer dispozitive cu
o palet larg de performane. Metoda de conversie utilizat (cu aproximaii
succesive, cu integrare cu dubl pant, conversie paralel, etc) i tehnologia de
realizare a schemei (monolitic, hibrid sau modul) determin caracteristicile
eseniale ale convertoarelor analog-digitale - rapiditatea, rezoluia, preul.
Paleta de variaie a unor caracteristici ale CA/D, realizate n practic, sunt
prezentate n fig 2.19.
CA/D cu conversie paralel
hibrid/modul

CA/D cu aproximaii succesive


CA/D cu integrare
cu dubl pant
hibrid/modul
Preul relativ

hibrid/modul

monolit
monolit

1s

100ms

10ms

1ms

100s

10s

1s

100ns

10ns

Timpul de conversie
Rapiditatea

Fig. 2.19 Paleta caracteristicilor CA/D produse n serie.


34

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Tabelul 2.2 Principalele caracteristici ale unor convertoare analog-digitale.


Tipul

Rezoluia

ADC0804

AD7574

AD570

TSC7109

12

ADC0808

AD5010

AD579

10

AD574

12

ADC868

12

HS9516

16

ADC71

16

Tensiunea
de
alimentare

Tehnologia de
realizare

100 s

+5V

monolitic

15 s

+5V

monolitic

25 s

+5V, -15V

monolitic

33 ms

+5V

monolitic

100 s

+5V

monolitic

10 ns

5V

monolitic

2,2 s

+5V, 15V

hibrid

25 s

+5V, 15V

hibrid

0,5 s

+5V, 15V

hibrid

100 s

+5V, 15V

hibrid

50 s

+5V, 15V

hibrid

Metoda de Timpul de
conversie conversie
cu aproximaii
succesive
cu aproximaii
succesive
cu aproximaii
succesive
cu integrare
dubl pant
cu aproximaii
succesive
paralel
cu aproximaii
succesive
cu aproximaii
succesive
cu aproximaii
succesive
cu aproximaii
succesive
cu aproximaii
succesive

n tabelul 2.2 sunt prezentate sintetic principalele caracteristici ale unor


CA/D uzuale, realizate de firmele National Intersil, Analog Device, Teledyne,
Texas Instruments i Hybrid System.
Se constat o varietate mai larg a CA/D cu aproximaii succesive,
utilizate n majoritatea cazurilor n cadrul proceselor care necesit conversia
analog-digital. Cele mai ieftine sunt convertoarele analog-digital monolitice.
Aceste CA/D sunt realizate n tehnologie bipolar i CMOS.
Convertorul analog-digital optim pentru msurtori i achiziii de date n
reele electroenergetice este CA/D cu aproximaii succesive, care asigur viteze
bune de conversie, precizie ridicat, rezoluia fiind un compromis ntre vitez i
precizie.

2.3 INTERFEE SPECIALIZATE DE COMUNICAIE


Tehnicile de msurare pot fi implementate la nivel fizic prin blocuri
funcionale cu destinaie precis (aparatele de msurare) sau prin module care
pot realiza funcii multiple (eantionare, conversie, memorare) i a cror selecie
este fcut de o unitate central (eventual PC). n cazul aparatelor de msurare
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

35

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

numerice, dotarea acestora cu interfee de comunicaie (serial sau paralel)


permite interconectarea lor cu uniti de calcul puternice i, deci, lrgirea
considerabil a ariei funciilor ce pot fi efectuate de sistemul astfel realizat.
Aparatele numerice memoreaz datele sub form de caractere reprezentate
adesea pe 8, 16 sau 32 de bii. Biii care formeaz un caracter se pot transmite la
distan ctre un alt sistem numeric fie prin transmiterea simultan a cte 8 bii
(comunicaie paralel), fie prin transmiterea succesiv a biilor care formeaz un
caracter (comunicaie serial). n primul caz, se utilizeaz 8 linii de date i alte
linii (conductoare) pentru semnalul de referin (GND) i cele de control al
comunicaiei. n al doilea caz, informaia prezent de obicei sub form paralel
este apelat de un registru de deplasare paralel-serie, comandat de un semnal de
tact, transmis printr-o singur pereche de conductoare i apoi, la recepie,
reconstituit n format paralel prin intemediul registrului de deplasare serieparalel.

2.3.1 COMUNICAIA DE TIP SERIAL. PROTOCOALE DE


TRANSMISIE SERIAL A DATELOR
Interfaa serial este un sistem de comunicaie numeric introdus ca
urmare a necesitii de a controla un ansamblu tehnic cu elemente dispersate pe
suprafee mari. PC-urile sunt dotate cu mai multe porturi seriale (de obicei,
dou), utilizate, n cea mai mare parte, pentru comanda plotter-elor, a
imprimantelor seriale i a unor mouse-uri. De asemenea, aceast interfa este
folosit pentru comunicaia cu PC-ul i de ctre dispozitive speciale, cum ar fi
programatoarele EPROM i PAL, emulatoarele, controller-ele logice
programabile sau anumite interfee de achiziie de date.
Achiziia datelor se efectueaz prin executarea unui program de achiziie
de ctre calculatorul care asigur comanda mijlocului de msurare, transferul
datelor ntr-un fiier de date i prelucrarea lor imediat sau ulterioar.
Denumirea RS-232 (mai exact, RS-232C) corespunde normei americane a
interfeei seriale, norm propus iniial n 1960 i devenit variant standard n
1969, apoi remodificat n 1987. Denumirea V24 este o prescurtare a normei
franceze (i recomandat CEI). n principiu, ambele norme sunt identice.
n prezent exist i module dedicate comunicaiei seriale performante,
cum este RS-485 (de tip plug-in) pentru care se poate asigura comunicaia pn
la distana de 1,2 km, cu o vitez maxim de transfer de 100 kHz .

2.3.1.1 INTERFAA RS-232


Numeroase aparate utilizeaz conectarea la calculator prin intermediul
36

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

interfeei seriale RS-232. Norma clasific aparatele n dou categorii:


1. DTE (Data Terminal Equipments) categorie din care fac parte PC-ul,
tastatura etc.
i
2. DCE (Data Communication Equipments) modem-urile, aparatele de
msurare etc.
Modul de conectare poate s difere de la un aparat la altul. n principiu, se
poate conecta numai un singur aparat la o interfa serial. Programarea
modului de comunicaie poate fi, de asemenea, foarte diferit. De aceea, nu se
poate vorbi de un standard. n forma minimal, o conexiune serial RS-232 se
compune din numai 3 conductoare:
1. RXD (Receive Data), conductorul pentru semnalul de recepie;
2. TXD (Transmit Data), conductorul pentru semnalul de emisie;
3. GND (Ground), conductorul de mas.
Modul de legare a conductoarelor RXD i TXD la portul calculatorului
depinde de aparatul utilizat.
Sigurana n transmisia datelor poate fi mai mare dac se introduce o
comunicaie de tip handshaking. n acest caz se folosesc (fig. 3.3), pe lng
semnalele RXD i TXD (semnale de date), i semnalele RTS (Request To
Send) i CTS (Clear To Send).
RTS (cerere de emisie) i CTS (autorizare de emisie) sunt semnale care
gireaz funcionarea half-duplex (HDX) - de exemplu, a liniei telefonice.
Calculatorul semnalizeaz modem-ului prin RTS c are un caracter de
transmis; transmisia este posibil numai atunci cnd semnalul CTS este primit
de calculator. O siguran superioar n transmisia datelor se obine prin
utilizarea semnalelor DTR (Data Terminal Ready) i DSR (Data Set Ready).
Prin aceste semnale receptorul este anunat c emitorul este pregtit s trimit
datele. Astfel, DTR poate fi perceput ca un semnal de BUSY pentru receptor.
Sigurana unei transmisii este determinat de lungimea cablurilor de
legatur (maximum 2 x 15=30 m), nivelul de tensiune al semnalelor i viteza de
transmisie.
Nivelele de tensiune pentru interfaa RS-232 sunt:
HIGH: -15 V (-25 V);
LOW: +15 V (+25 V).
Intervalul de la -3 V la +3 V nu este permis (fig. 2.21).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

37

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

TXD
RXD

TXD

TXD

RXD

RXD
RTS
CTS

TXD

TXD

RXD

RXD

RTS

RTS

CTS

CTS
DSR
DTR

GND

GND

GND

a)

GND

GND

20

20

b)

TXD
RXD
RTS
CTS
DSR
DTR
GND

TXD
RXD
RTS
CTS
DSR
DTR
GND

c)

TXD

TXD

RXD

RXD

TXD
RXD

4
5

CTS

DSR

5
6

20

20

GND

GND

d)

DTR
GND

e)

Fig. 2.20 Tipuri de conexiuni utilizate n interfaarea serial: a) varianta


minimal; b) varianta handshake; c) handshake cu confirmare DTR i DSR;
d) transmisie cu punte pe semnalele de handshake; e) conectarea unui plotter.

Viteza de transmisie este dat n


BAUD1. O alt unitate uzual n cazul
transmisiilor este BPS (Bits Per Second). In
cazul comunicaiei seriale ntre dou
echipamente,
exprimarea
vitezei
de
transmisie n BAUD i BPS este identic. n
cazul conectrii lor prin intermediul modemurilor, ns, acest lucru nu mai este valabil.
Valorile uzuale pentru viteza de transmisie
(Baudrate) sunt date mai jos:

U
+25 V
LOW
+3 V
0V
-3 V

nedefinit
HIGH

-25 V

Fig. 2.21 Nivelele de tensiune


pentru portul serial.

BAUD este unitatea de msurare a numrului de schimbri pe secund ale strii unei linii,
denumit dup Jean Maurice Emile Baudot, un fost ofier al Serviciului Francez de
Telegrafie. El a proiectat, la sfritul secolului al XIX-lea, primul cod pe 5 bii pentru
reprezentarea unitar a caracterelor alfabetului.

38

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

50

110

300

600 1200 2400 4800 9600 19200 38400

Formatul de transmisie al datelor este descris prin urmtorii parametri:


Baudrate (viteza de transmisie);
Startbit (bitul2 de start);
Numrul de bii de date;
Paritatea;
Numrul de bii de stop.
Prin intermediul biilor de start i stop se determin nceputul, respectiv
sfritul secvenei de date transmis. Numrul de bii de date este, de obicei, 7
sau 8. Prin intermediul testului de paritate se pot evidenia eventualele erori de
transmisie. n acest sens, exist trei posibiliti de detecie:
No Parity: Nu se face nici un test de paritate;
Even parity (paritate par): Emitorul numr toi biii de date care
au valoarea 1 i seteaz bitul de paritate cu 1, dac suma a fost
impar, i cu 0, dac suma a fost par. Receptorul adun biii de date
cu valoarea bitului de paritate. Suma este totdeauna (n cazul unei
transmisii corecte) par; n caz contrar, a survenit o eroare la
transmisia datelor;
Odd Parity (paritate impar): Metoda corespunde testului de paritate
par, cu deosebirea c suma biilor de date i a celui de paritate este
totdeauna (la emitor) impar.
n fig. 2.22 se descrie procesul de transmitere a caraterului 2 (n
reprezentarea binar corespunztoare codului ASCII) cu protocolul 1 bit de
start, 7 bii de date, 2 bii de stop, paritate impar.

Iniializare
Bit de start

0 1 0 0 1 1 0 0
LSB
MSB
Bit de stop
Bit de paritate

Fig. 2.22 Semnalele corespunztoare transmisiei caracterului 2.


2

Termenul bit a aparut pentru prima data scris cu sensul utilizat astzi n informatic n anul
1949, ales de John Tuckey care s-a decis (n timp ce lua prnzul) pentru o variant mai
comod dect denumirile de bigit sau binit.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

39

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

2.3.1.2 INTERFAA I2C


Pentru a exploata similaritile care exist n proiectele i echipamentele
proiectate de diveri utilizatori, ca i pentru maximizarea eficienei hardwareului i pentru simplificarea proiectrii circuitelor, a fost dezvoltat o magistral
bidirecional pe dou fire, cu scopul eficientizrii controlului interconectrii
circuitelor integrate. Acest magistral se numete INTER IC sau I2C. n
prezent, aceast magistral permite cuplarea a mai mult de 150 de tipuri de
circuite integrate, realizate n tehnologie CMOS sau bipolar, realiznd funcii n
domeniul controlului inteligent, a circuitelor integrate de uz dedicat (driver-e
pentru afiaje cu cristale lichide, porturi de intrare-ieire, memorii RAM i
EEPROM, convertoare) i a circuitelor orientate pe aplicaii (procesare de
semnale pentru sisteme radio i video, generatoare DTFM pentru telefonie, etc.).
Toate circuitele compatibile I2C ncorporeaz o interfa care permite
intercomunicaia rapid prin intermediul acestui tip de magistral.
Dintre caracteristicile generale ale magistralei I2C putem meniona:
magistrala conine doar dou linii: o linie serial de date (SDA) i o
linie de ceas serial (SCL);
fiecare dispozitiv conectat la magistral este adresabil prin software,
avnd o adres unic; pe magistrala I2C se manifest, la orice moment
de timp, o relaie de tip master-slave;
magistrala I2C este o magistral multi-master, incluznd detecia
conflictelor i arbitrarea acesteia, pentru a preveni alterarea informaiei
dac dou sau mai multe dispozitive master iniiaz transferuri
simultane;
transferurile bidirecionale de date, cu lungimi de 8 bii, pot fi
efectuate cu rate de transfer de 100 kbii pe secund, n modul
standard, sau cu maxim 400 kbii pe secund, n modul rapid;
rejectarea impulsurilor scurte, parazite, de pe magistral, este asigurat
de circuitele de filtrare implementate n fiecare dispozitiv cuplat la
magistral. Rejecia acestor impulsuri asigur pstrarea integritii
datelor;
numrul de dispozitive cuplabile pe aceeai magistral I2C este limitat
doar de capacitatea maxim suportat de aceasta i care este de 400 pF.
Circuitele integrate compatibile cu magistrala I2C permit dezvoltarea
rapid a proiectrii de la o schem bloc funcional la prototip, asigurnd
proiectanilor o serie ntreg de avantaje:
structura extrem de simpl a magistralei (2 fire) minimizeaz
interconexiunile cu exteriorul;
protocolul complet integrat al magistralei I2C elimin folosirea
decodificatoarelor de adrese i a unei logici externe, suplimentare;
40

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

capabilitile de multimaster ale magistralei I2C permit testarea rapid


i alinierea utilizatorilor, prin utilizarea unor conexiuni externe, la un
sistem de calcul;
disponibilitatea circuitelor integrate I2C sub amprente de tip SO
(Small Outline), VSO (Very Small Outline) i DIL (Dual In Line)
reduce necesitile de spaiu.

2.3.1.2.1 SPECIFICAIILE INTERFEEI I2C


Pentru aplicaii de control industrial pe 8 bii, care necesit utilizarea unor
microcontroller-e, pot fi stabilite a priori anumite criterii de proiectare:
un astfel de sistem este compus din cel puin un microcontroller i din
alte dispozitive periferice, ca de pild memorii i circuite de intrareieire (fig. 2.23);
criteriul principal de proiectare const n minimizarea costului de
interconectare a diferitelor dispozitive din componena sistemului;
un sistem care asigur o funcie de reglare (control) ntr-un proces nu
necesit rate mari ale transferurilor de date;
eficiena global a sistemului depinde de natura circuitelor utilizate i
de structura magistralei de interconectare a acestora.

Fig. 2.23 Exemplu de sistem organizat n jurul magistralei I2C.

Pentru a satisface aceste criterii, este necesar utilizarea unei magistrale


seriale, care dei nu permite rate de transfer a informaiilor att de mari ca o
magistral de interconectare de tip paralel, asigur minimizarea numrului
firelor i pinilor de interconectare ntre diversele circuite utilizate n proiect.
Dispozitivele care intercomunic prin intermediul unei magistrale seriale
necesit utilizarea unor protocoale care au rolul de a elimina erorile, pierderile
de informaii i conflictele pe magistral i de asemenea, posibilitatea ca unele
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

41

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

dispozitive rapide s poat comunica cu dispozitive lente. Este necesar ca


sistemul s poat funciona independent de numrul de dispozitive nglobate n
structura sa, sau cu alte cuvinte, adugarea de dipozitive n structura sistemului
s nu afecteze funcionarea acestuia.

2.3.1.2.2 CONCEPTUL DE MAGISTRAL I2C


Magistrala I2C permite cuplarea unor circuite compatibile n structura
sistemului, indiferent de tehnologia de fabricaie a acestora: NMOS, CMOS sau
bipolar. Magistrala const n dou linii: o linie serial de date (SDA) i o linie
de ceas serial (SCL), ce manipuleaz informaiile ntre oricare dou dispozitive
cuplate la magistral. Orice dispozitiv este recunoscut prin intermediul unei
adrese unice asociate, indiferent dac este vorba de un microprocesor, display cu
cristale lichide, interfa de tastatur, etc., i poate funciona ca emitor sau
receptor, depinznd de funcia realizat de acesta (fig. 2.24). O clasificare
suplimentar a dispozitivelor cuplate la magistrala I2C const n dispozitive
master, respectiv slave. Un dispozitiv master este acela care poate iniia un
transfer de date pe magistral i care genereaz semnalul de ceas ce coordoneaz
transferul. n tot acest timp, orice alt dispozitiv adresat este privit ca slave.

Fig. 2.24 Interconectarea a dou dispozitive pe magistrala I2C.

Magistrala I2C este o magistral de tip multi-master. Aceasta nseamn c


mai multe dispozitive care pot controla magistrala pot fi cuplate la aceasta.
Posibilitatea de a cupla mai mult de un dispozitiv master la magistral nseamn
c mai mult de un singur dispozitiv poate ncerca s iniieze un transfer pe
magistral, la acelai moment de timp. Pentru a se evita aceast situaie de
incertitudine, a fost elaborat o procedur de arbitrare a prioritilor, bazat pe
42

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

conectarea de tip I-cablat a tuturor dispozitivelor la magistral. Semnalele de


ceas pe durata arbitrrii de prioriti reprezint rezultatul sincronizrii
semnalelor de ceas generate de cele dou dispozitive master prin utilizarea
funciei de tip I-cablat a liniilor SCL. Generarea semnalelor de ceas pe
magistral revine ntotdeauna n sarcina dispozitivelor master; fiecare dispozitiv
master genereaz propriul su semnal de ceas pe durata transferului de date pe
magistrala sistemului. Semnalele de ceas de pe magistral pot fi doar alterate
numai dac un dispozitiv slave lent foreaz linia de ceas la nivel logic LOW sau
de un alt dispozitiv master, pe durata arbitrrii prioritiilor.
Ambele linii, SDA i SCL, sunt bidirecionale i conectate printr-o
rezisten de pull-up la tensiunea de alimentare. Atunci cnd magistrala este
liber, ambele linii sunt n starea HIGH. Etajul de ieire al dispozitivului
conectat la magistal trebuie s fie de tip open-drain sau open-collector pentru a
se realiza funcia I-cablat. Pe magistrala I2C, transferurile de date pot fi
efectuate cu rate de maxim 100 kbii/s n modul standard sau maxim 400 kbii/s
n modul rapid. Numrul de dispozitive cuplabile la magistrala I2C este limitat
doar de ncrcarea capacitiv (maxim 400 pF) a liniilor magistralei.

2.3.1.2.3 TRANSFERURILE PE MAGISTRALA I2C


Datorit diversitii tehnologiilor de implementare a circuitelor cuplabile
la liniile interfeei I2C, nivelele logice nu sunt fixate i depind de valoarea
tensiunii de alimentare VDD. Pentru transferul fiecrui bit este generat cte un
impuls de ceas.
a) Validitatea datelor
Datele vehiculate pe linia SDA trebuie s fie stabile pe durata HIGH a
impulsului de ceas. Modificrile strii liniei SDA trebuie s se produc doar
atunci cnd semnalul de ceas este LOW.
b) Condiiile START i STOP
Printre procedurile implementate pe magistrala I2C, situaii de excepie
sunt considerate condiiile de START i STOP.
O tranziie din starea HIGH n starea LOW a liniei SDA, pe durata creia
linia SCL este HIGH, este interpretat ca o condiie de START.
O tranziie din starea LOW n starea HIGH a liniei SDA, pe durata creia
linia SCL este HIGH, este interpretat ca o condiie de STOP.
Condiiile de START i de STOP sunt generate ntotdeauna de un
dispozitiv master. Dup generarea unei condiii de START se consider c
magistrala este ocupat. Magistrala este considerat din nou ca fiind neutilizat
dup apariia unei condiii de STOP.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

43

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Detectarea condiiilor de START di de STOP de ctre dispozitivele


slave cuplate la magistral este foarte facil dac acestea nglobeaz hardwareul specializat de interfaare. Pentru dispozitivele care nu dispun de acest
hardware specializat, se impune ca linia SDA s fie eantionat de dou ori pe
durata unei perioade de ceas, pentru ca aceast tranziie s poat fi detectat.

2.3.1.2.3.1 TRANSFERURILE DE DATE PE MAGISTRAL


a) Transferurile de date sub form de cuvnt
Orice cuvnt de date transferat pe magistral trebuie s aib lungimea de 8
bii. n schimb, numrul de octei ce pot fi transferai pe linia SDA este practic
nelimitat. Fiecare octet transferat trebuie s fie urmat de un bit de confirmare
(acknowledge). Transferurile de date ncep ntotdeauna cu bitul cel mai
semnificativ al octetului respectiv. Dac un dispozitiv receptor nu poate accepta
un alt octet de date nainte de a realiza o funcie special cum ar fi de pild
tratarea unei ntreruperi interne, acesta poate fora linia de ceas, SCL, la nivel
LOW pentru a face ca emitorul s intre n stare de WAIT. Transferul de date
poate continua atunci cnd receptorul elibereaz linia SCL.
n anumite cazuri, este posibil utilizarea unui alt format pentru transferul
pe magistral. Un mesaj care ncepe cu o astfel de adres poate fi terminat prin
utilizarea unei condiii de STOP, chiar n timpul transmiterii unui octet de
informaie. n aceast situaie nu se genereaz bitul de confirmare.
b) Bitul de confirmare
Transferurile de date cu confirmare sunt obligatorii pentru a se asigura
integritatea datelor pe magistral. Semnalul de ceas asociat bitului de confirmare
este generat de dispozitivul master. Pe durata acestui impuls de ceas, disozitivul
emitent elibereaz linia SDA (nivelul acesteia este HIGH).
Dispozitivul de recepie trebuie s foreze linia SDA la nivel cobort pe
durata impulsului de ceas de confirmare, astfel acest nivel cobort s rmn
stabil pe durata HIGH a impulsului de ceas de confirmare.
n mod obinuit, un dispozitiv ce realizeaz funcia de recepie mesaj
trebuie s emit cte un semnal de confirmare dup fiecare octet recepionat.
Atunci cnd un dispozitiv slave cu funcie de recepie nu confirm adresa
asociat (de exemplu, acest dispozitiv nu este capabil s rspund deoarece
efectueaz un set de operaii n timp real), linia de date trebuie lsat neutilizat
(HIGH) de ctre dispozitivul slave. n aceast situaie, dispozitivul master poate
genera o condiie de STOP pentru a termina transferul. Dac dispozitivul slave
ce realizeaz funcia de recepie confirm adresa asociat dar n procesul de
transfer ulterior nu mai poate recepiona octei, este, de asemenea, necesar ca
dispozitivul master s termine transferul. Acest fapt este indicat prin faptul c
44

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

receptorul nu confirm recepionarea urmtorului octet, las linia SDA pe nivel


HIGH, iar dispozitivul master genereaz condiia de STOP.
Dac n procesul de transfer este implicat un dispozitiv master ce
realizeaz funcia de recepie, acest dispozitiv trebuie s semnalizeze sfritul
transferului prin neconfirmarea ultimului octet recepionat de la slave.
Dispozitivul slave trebuie s elibereze linia SDA pentru ca dispozitivul master
s poat transmite o condiie de STOP.

2.3.1.2.4 ARBITRAREA PRIORITILOR I GENERAREA


CEASULUI
a) Sincronizarea pe magistrala I2C
Toate dispozitivele master genereaz propriul semnal de ceas pe linia
SCL pentru a transmite mesaje pe magistrala I2C. Datele sunt valide doar pe
durata HIGH a impulsurilor de ceas. Prezena unui semnal de ceas pe magistral
este necesar pentru procedura de arbitrare bit cu bit.
Sincronizarea ceasului este asigurat prin utilizarea conexiunii de tip Icablat a interfeelor de magistral la linia SCL. Aceasta nseamn c o tranziie
din HIGH n LOW pe linia SCL va determina dispozitivele cuplate la magistral
s i nceap procesul de contorizare a perioadelor LOW odat ce semnalul de
ceas al unui dispozitiv a devenit LOW i se va menine linia SCL n aceast
stare pn semnalul de ceas devine din nou HIGH. Totui, tranziia din starea
LOW n starea HIGH nu va determina schimbarea strii liniei de ceas dac un
alt semnal de ceas cuplat la linia de ceas a magistralei se afl n stare LOW.
Durata ct timp linia SCL va fi meninut n stare LOW va fi determinat de
dispozitivul care este caracterizat de cea mai mare durat a nivelului cobort al
ceasului. Celelalte dispozitive, caracterizate de o durat mai mic a palierului
strii LOW a semnalului de ceas, trec n stare de WAIT cu semnalul de ceas la
nivel ridicat.
Atunci cnd, toate dispozitivele, implicate n procesul de comunicare pe
magistral, i-au ncheiat contorizarea perioadei LOW a semnalului de ceas,
linia respectiv va fi eliberat i va trece n stare HIGH. n acest mod, nu vor
mai exista diferene ntre semnalele de ceas ale dispozitivelor i starea liniei de
ceas a magistralei, toate dispozitivele ncepndu-i contorizarea duratelor HIGH
ale semnalelor de ceas. Primul dispozitiv care i ncheie perioada HIGH a
semnalului de ceas va fora linia SCL din nou la nivel LOW.
Semnalul de ceas de pe linia SCL este astfel sincronizat, avnd durata de
nivel cobort determinat de dispozitivul caracterizat de cea mai lung perioad
LOW a semnalului de ceas i durata de nivel ridicat determinat de dispozitivul
caracterizat de cea mai scurt perioad HIGH a semnalului de ceas.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

45

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

b) Arbitrarea prioritilor
Un dispozitiv master poate iniia un transfer de date doar dac magistrala
este liber. Dou sau mai multe dispozitive master de magistral pot genera o
condiie de START pe durata timpului de HOLD din condiia de START.
Arbitrarea are loc prin intermediul liniei de date, SDA, pe durata ct linia de
ceas, SCL, este pe nivel HIGH. Astfel, unul dintre dispozitivele master
transmite un nivel HIGH pe magistral, n timp ce cellalt, care transmite un
nivel LOW, i va dezactiva etajul de ieire deoarece nivelul logic de pe
magistral nu corespunde cu nivelul logic transmis de ctre acesta. Arbitrarea
poate continua pentru mai muli bii. Prima etap const n compararea biilor de
adres. Dac dou dispozitive master ncearc s adreseze acelai dispozitiv
slave, arbitrarea continu cu compararea datelor. Deoarece adresele i datele
sunt utilizate pentru arbitrarea magistralei, se constat c nu exist pierderi de
informaie pe liniile magistralei pe durata acestui proces.
Un dispozitiv master care pierde arbitrarea poate genera impulsuri de ceas
pn la ncheierea procesului de transmitere a octetului n cursul cruia a pierdut
arbitrarea.

2.3.1.3 INTERFAA USB


Interfaa USB (Universal Serial Bus) a fost proiectat cu scopul de a
simplifica procedura de conectare a perifericelor la un PC, crescnd viteza de
transmisie prin intermediul unei comunicaii de tip serial pn la valori de 12
Mbit/s. Faptul c necesit o conectare mai facil impune ns utilizarea unui
protocol mai complex, pentru pstrarea eficienei i transparenei fa de
utilizator.
USB este deja recomandat pentru noua generaie de PC-uri compatibile
IBM de ctre PC98 System Design Guide i este, deja inclus ca driver n
sistemul de operare Windows 98.
Suportul hardware const dintr-o conexiune pe patru conductoare, dintre
care dou sunt pentru alimentare (Vbus) respectiv mas (GND) iar celelalte dou
pentru transferul de date (D+ i D-). Prin intermediul USB se pot conecta
simultan la un PC pn la 126 de periferice cu avantajul suplimentar al
reducerii costului i al spaiului alocat plcii de baz a PC-ului (PCB) prin
eliminarea necesitii unui port suplimentar tradiional cum sunt cele ale
tastaturii i/sau porturile seriale clasice. Bineneles c marele avantaj rezid n
costul sczut al USB i n viteza (12 Mbit/s n aa-numitul full-speed mode)
care permite transferul n timp real al semnalelor de voce sau video comprimat.
La sfritul anului 1999 a fost lansat oficial varianta USB2.0 care
permite transferuri de pn la 120, respectiv 240 Mbit/s. n cele ce urmeaz se
prezint protocolul USB 1.1, pe baza unui exemplu de implementare hardware:
Infineon Technologies C541 embedded USB microcontroller.
46

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Arhitectura USB se compune din trei elemente principale (fig. 2.25) gazda (host), conectorii (hubs) i perifericele (devices). Conexiunea utilizeaz
topologia tiered-star i poate fi structurat n nivele, deci poate avea pn la 5
distribuitoare (hub tiers). n mod uzual, controller-ul gazd (host controller) i
hub-ul principal (de root) sunt implementate pe un acelai chip pe placa de baz
a PC-ului. Controller-ul gazd controleaz transmisiile prin sistemul USB.
Exist dou tipuri de host controllers: OHCI (Open-Host Controller Interface)
i UHCI (Universal Controller Host Interface). Din punct de vedere al
aplicaiilor, OHCI poate gestiona multiple tranzacii pentru un anumit periferic
End Point (EP) ntr-un interval de 1 ms. Pe de alt parte, UHCI permite cte o
tranzacie pentru fiecare EP n fiecare cadru de aplicaie (frame). Pachetele
software ale echipamentelor USB trebuie s fie capabile s gestioneze
comunicaia cu fiecare dintre aceste tipuri de controller-e.
Un distribuitor principal acioneaz ca un port care se ataeaz
echipamentului USB (fig. 2.25), permind multiple conexiuni la sistemul USB
i detecteaz momentele cnd echipamentele sunt conectate sau deconectate de
la sistem. De asemenea, el transmite mai departe traficul pe bus ntre portul
trece-sus (upstream) i porturile trece-jos adiacente (downstream).
Fiecare echipament dotat cu USB are alocate numere EP. Numrul EP0
este rezervat pentru configurarea echipamentelor de ctre gazd. El asigur un
punct de comunicaie catre gazd prin intermediul descriptorilor EP. Descriptorii
EP comunic atributele echipamentelor i caracteristicile acestora gazdei. n
conformitate cu aceste informaii, gazda configureaz echipamentul i-i aloc
driver-ul software corespunztor (USB client software).
Celelalte EP pot fi considerate ca o funcie a echipamentelor i pot fi
configurate separat pentru unul dintre tipurile de transfer pentru a comunica cu
gazda. De exemplu, o aplicaie de tastatur, care se clasific n standardul USB
Human Interface Device, HID, folosete EP0 pentru configurarea
echipamentului (tastaturii) i poate folosi EP1 ca un transfer pe ntreruperi
pentru trimiterea datelor (key-scanned data) ctre gazd.
USB suport 4 tipuri de transfer de date:
Control transfer - comenzi de cereri de transfer de la gazd ctre
echipament;
Interrupt transfer - transfer de date de la un interrupt driver device
ctre gazd;
Bulk trasfer - transferul unei cantiti mari de date;
Isochronous transfer - pentru aplicaii care necesit rate de transfer
constante.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

47

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

PC
PCI bus
controller gazd
root port
(upstream port)

distribuitor principal
(root hub)

distribuitor

Primul nivel
de distribuire

downstream port
upstream port

upstream port

Echipament

distribuitor

Al doilea nivel
de distribuire

EP 1

Fig. 2.25 Structura general a unei interfee USB.

2.3.2 COMUNICAIA DE TIP PARALEL. PROTOCOALE DE


TRANSMISIE PARALEL A DATELOR
Pentru sistemele de msurare ce utilizeaz aparate inteligente conduse de
calculator, comunicaia paralel este cea mai indicat, asigurnd viteze mari de
comunicaie, drept pentru care au fost realizate standarde internaionale la care
s-au aliniat majoritatea constructorilor de aparate inteligente dotate cu
microprocesoare.
Comunicaia paralel este utilizat i pentru alte aparate cuplate la
calculator, cum ar fi: imprimante, plotter-e, dispozitive de memorie extern etc.
Pn n anii 60 au existat numai aparate de msurare cu comand
manual i de-abia o dat cu apariia aparatelor numerice, n deceniile
urmtoare, s-au proiectat primele interfee cu rolul, la nceput, de a permite
cuplarea mai multor aparate de msurare ntre ele. n anii 70 s-a pus problema
standardizrii interfeelor, prima soluie constituind-o interfaa RS-232 pentru
interconectarea calculatoarelor ca i a perifericelor la acestea. nc din 1965,
ns, firma Hewlett-Packard lucra la definirea unui concept de interfa HPIB
(Hewlett Packard Interface Bus), din care a decurs apoi norma internaional
IEC 625-1, adoptat n 1976.

48

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

2.3.2.1 INTERFAA HPIB


BUS-ul IEC 625 utilizeaz transmisia asincron ceea ce nseamn c
viteza de comunicaie este determinat de aparatul cel mai lent din sistem.
Acesta este numai aparent un dezavantaj, deoarece timpul de msurare al
aparatelor este de obicei mult mai mare dect timpul necesar comunicaiei.
Se obin astfel viteze de 2000-3000 kBaud ceea ce nu este deloc puin n
comparaie cu comunicaia serial prin RS-232 ce poate asigura maximum 38,4
kBaud.
BUS-ul IEC pentru sistemele de msurare este cunoscut sub mai multe
denumiri i variante, diferenele dintre acestea fiind ns minime. Astfel, ntre
HPIB i GPIB, realizate dup standardul american IEEE-488 i, respectiv,
standardul internaional IEC-625, diferena este la conectarea n cuple i
numrul de pini ai acestora. Prescurtrile au urmtoarele semnificaii:
HPIB: Hewlett Packard Interface Bus
GPIB: General Purpose Interface Bus
Conectorul utilizat de bus-ul HPIB este redat n fig.3.9. Acest conector are
24 de pini care sunt alocai conform standardului pentru intrri-ieiri de date i
comenzi i care vor fi explicitai n continuare.
Pentru realizarea unui sistem automat de msurare prin interfaa HPIB
este necesar un echipament de calcul (PC), care s posede implementat pe
magistrala proprie placa de interfaa pentru acest Bus, iar aparatele utilizate
trebuie s fie prevzute de asemenea cu aceast interfa.
Sistemul poate fi format din maximum 15 aparate ce pot fi conectate la
calculator n dou moduri: n stea (fig. 2.27a) sau n serie (fig. 2.27b).
Legturile ntre aparate trebuie s fie ct mai scurte i s nu depeasc
lungimea de 2 m.
DIO1
DIO2
DIO3
DIO4
EOI
DAV
NRFD
NDAC
IFC
SRQ
ATN
SHIELD

1
2
3
4
5
6
7
8
9
10
11
12

13
14
15
16
17
18
19
20
21
22
23
24

DIO5
DIO6
DIO7
DIO8
REN
GND
GND
GND
GND
GND
GND
GND LOGIC

Fig. 2.26 Conectorul HPIB.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

49

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Legtura n stea asigur o configuraie mai avantajoas asigurnd distane


minime ntre aparate i o vitez de comunicaie mai mare, de aceea este mai
recomandat.
Legtura n serie permite o dispersare mai mare a aparatelor, dar o
conectare imperfect la una dintre cuple poate crea probleme de reflexii pe
cabluri sau chiar ntreruperea comunicaiei ntre aparate. De asemenea, viteza de
comunicaie este mai mic, datorit traseelor mai lungi.

2.3.2.1.1 STRUCTURA BUS-ULUI HPIB


Aparatele compatibile cu protocolul HPIB i dotate, astfel, cu interfaa
corespunztoare, pot avea n sistem trei funcii:
asculttorii (listeners), care primesc datele atunci cnd sunt adresai.
Pot fi activi i mai muli asculttori simultan;
vorbitorii (talkers), care emit date atunci cnd sunt adresai. Un singur
vorbitor poate fi activ la un moment dat pe bus;
controller-ele, (controllers) care adreseaz aparatele legate la bus, fie
c este vorba de asculttori, fie c este vorba de vorbitori, i trimit
instruciuni speciale i semnale de comand.
Pentru a comanda n mod eficient, controller-ul trebuie s poat asculta i
vorbi n mod egal. ntr-un sistem de msurare automatizat se pot distinge trei
tipuri de sarcini:
selecia unui aparat;
transferul informaiilor;
gestiunea transferului de informaii.
Noiunea de gestiune a transferului de informaii este aici foarte
important, deoarece un aparat vorbitor (care poate fi controller-ul, cnd el
emite adrese, sau un aparat selecionat cnd el primete date) nu poate efectua
un nou transfer dect atunci cnd el este sigur c aparatele vizate au primit n
condiii bune informaia precedent.
Sistemul HPIB este constituit din ansamblul elementelor funcionale
electrice i mecanice ale unei interfee conforme cu norma IEEE-488. Cablul
utilizat pentru conectarea aparatelor are 24 de conductoare, din care 16 sunt
repartizate n trei grupe:
transferul informaiilor
8 linii;
gestiunea transferului de informaii
3 linii;
gestiunea general
5 linii.

50

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 2.27 Conectarea aparatelor la calculator prin bus-ul HPIB.


Liniile de transfer de date (DIO1DIO8) sunt rezervate intrrilor i
ieirilor. Ele sunt utilizate pentru msurri, instruciuni de programare cuvinte de
stare, adrese, instruciuni de interfaare. Un octet de date este format din 8 bii
transmii n paralel. Un mesaj poate s cuprind mai muli octei; aceti octei
sunt transmii atunci n serie. Viteza de transfer poate atinge 1 Moctet/secund
pentru o comunicaie bidirecional asincron.
Liniile de gestiune a transferului sunt destinate s gireze transferul
fiecrui octet de la un aparat emitor spre unul sau mai multe aparate receptoare
i asigur protocolul de tip handshake ori de cte ori informaiile sunt
transmise pe cele 8 linii ale bus-ului de date. Aceste linii sunt:
DAV (DAta Valid); aceast linie informeaz c datele prezentate pe
bus de la un emitor sunt valide; ele sunt comandate de emitor;
NRFD (Not Ready For Data); aceast linie este acionat de controler
n modul comand (ATN=1) i de receptor n modul date
(ATN=0);
NDAC (Not Data ACcepted); atunci cnd NDAC=1, datele nu sunt
acceptate de receptor, sau n modul comand, comanda nu este
acceptat de aparatul conectat la bus.
Liniile de gestiune general, fiecare din cele cinci linii ale acestei grupe
avnd o funcie de comand specific ntre controler i alte aparate ale
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

51

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

sistemului:
ATN (ATteNtion); permite controlerului s indice instrumentelor c
instruciuni i adrese sau date sunt prezente pe bus. Atunci cnd
ATN=1 numai emitorul i receptorul adresai sunt vizai. n acest
caz, pe bus-ul de date este trimis codul adresei emitorului. Dac
ATN=0, codul reprezint date. Toate aparatele trebuie s priveasc
n orice moment la aceast linie i atunci cnd pe ea se produce o
schimbare, ele trebuie s rspund ntr-un interval de max. 200 ns.
IFC (InterFace Clear); aceast linie poate fi pus pe 1 (sau
adevrat) numai de ctre controler nainte de a pune interfeele
conectate la bus ntr-o stare inactiv. Toate operaiunile n curs sunt
atunci oprite pentru a permite repornirea de la o situaie neutr i
uniform naintea tuturor operaiilor.
SRQ (Service ReQuest); aceast linie este activat de toate aparatele
care au de cerut un serviciu controller-ului. Aceast cerere poate
ntrerupe o operaiune n curs. Atunci cnd mai multe aparate cer SRQ
n acelai moment, controller-ul trebuie s efectueze o cutare pentru a
depista aparatele respective i natura serviciului cerut. Aceast cutare
se poate efectua fie n serie, fie n paralel.
EOI (End Or Identify); dac ATN=0 (liniile DIO sunt pe modul
date), aceast linie este activat (adic EOI=1 sau adevrat) de un
emitor semnificnd faptul c octetul n curs este ultimul transmis
pentru operaie. Dac ATN=1 (liniile DIO sunt n modul comand
interfa), controller-ul activeaz linia EOI ntr-o cutare paralel.
REN (Remote ENable); aceast linie este activat numai de controler
pentru a comuta un aparat de la poziia comand de pe panoul frontal
(sau comand local) pe poziia comand de la distan. Atunci cnd
REN=0, aparatul revine la modul de comand local.
Se disting, astfel, dou tipuri de mesaje :
comenzi generale, date de controler i destinate interfeelor ncorporate
aparatelor, acestea fiind mesaje de interfa.
datele destinate aparatelor de msurare nainte de a le plasa ntr-o stare
particular sau de primire a rezultatului obinut de la o msurare.
Datele sunt furnizate de un emitor care poate fi controller-ul; acestea
sunt mesaje pentru aparate.
n acest fel se delimiteaz zonele de intervenie ale normei IEEE-488 care
acioneaz prin comenzi asupra interfeei i prin mesaje asupra aparatelor.
Mesajele pentru aparate

Un mesaj pe cele 8 linii DIO este un mesaj de aparat (sau de date) dac
linia ATN =0. Aceste date sunt emise de aparatul adresat ca vorbitor i primite
52

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

de aparatele adresate ca asculttori sub controlul procedeului de tip


handshake.
Ele pot fi:
a) date de intrare:
- date de comand, de exemplu instruciuni ale programului pentru
un aparat particular;
- date pentru afiare sau stocare.
b) date de ieire:
- datele unui rezultat al msurrii;
- informaii de stare a aparatului.
ntre aparatele conectate la sistemul de comunicare, este necesar s existe
convenii asupra codificrii datelor. Se poate remarca faptul c norma definete
numai modul transferului de date, dar nu i coninutul lor; acesta depinde de
aparatul utilizat; la ora actual, convenia cea mai rspndit este codul ASCII.
Mesaje de interfa

Se disting, ca i n cazul mesajelor de aparat, mesaje de interfa


multifilar i unifilar. Mesajele unifilare ATN, IFC i REN care comand
anumite funcii ale aparatelor conectate la bus-ul HPIB au fost deja definite
anterior. Aa cum s-a artat, este vorba de comenzi emise de controler
interfeelor aparatelor. Un mesaj multifilar pe linia DIO este considerat ca o
comand dac linia ATN = 1. El este codificat prin 7 bii trimii pe liniile
DIO1DIO7.

2.3.2.2 INTERFAA CENTRONICS


Interfaa dezvoltat de firma Centronics n scopul, iniial, al transmiterii
comenzilor ctre imprimante, nu este (nc) normat, cu toate c este utilizat de
toate PC-urile. Modul de lucru este caracterizat de un transfer paralel al datelor,
distana maxim dintre echipamentele interconectate prin aceast interfa fiind
de 8 m, datorit limitrilor privind distorsionarea semnalelor cauzat de
capacitatea lineica a conductoarelor. O soluie este dispunerea conductoarelor de
semnal alturi de conductoarele de mas i rsucirea acestora (twisted-pair), dar
muli productori de imprimante recomand o distan maxim ntre PC i
acestea de 3m. Viteza de transfer a datelor prin intermediul acestei interfee este
dependent de hardware. Ea poate, teoretic, s aib valori de peste 1 MByte/s,
dar pentru aceasta se impune o distan maxim ntre echipamentele
interconectate de 1 m. Interfaa utilizeaz nivele de tensiune TTL, ceea ce
faciliteaz utilizarea ei n diferite aplicaii.
n cele ce urmeaz se va face o descriere a semnalelor specifice interfeei
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

53

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

(fig. 2.28):
Strobe (activ LOW): aceast linie este activat de ctre calculator,
atunci cnd se dorete transferul datelor ctre exterior (imprimanta,
eventual);

Fig. 2.28 Dispunerea pinilor portului Centronics:


a) conector cu 36 de pini (Amphenol-seria 57); b) conector cu 25 de pini
(Subminiatur-D)

Data 1 Data 8: linii de date


Acknowledge (activ LOW): atunci cnd echipamentul exterior
(imprimanta) a preluat datele transmise, transmite un semnal de
ntiinare cu durata de 30 s;
Busy: apariia unei erori n timp ce imprimanta preia datele, este n
procesul de imprimare sau n starea off-line, determin activarea
acestui semnal.
Paper Empty: acest semnal este activ pn cnd senzorul va detecta,
din nou, prezena colilor de hrtie.
Select: cu ajutorul acestui semnal imprimanta anun faptul c este
accesat i activ.
Urmtoarele semnale nu aparin, de fapt, standardului (n sensul de
variant iniial a interfeei):
Autofeed (activ LOW): o dat cu activarea acestei linii, imprimanta
insereaz la sfritul fiecrei linii cte un salt la linie nou;
54

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Reset (activ LOW): cu semnalul trimis pe aceast linie, imprimanta se


va seta ntr-o stare predefinit;
Error (activ LOW): acest semnal se activeaz o dat cu apariia unei
erori sau atunci cnd imprimanta este n starea off-line;
Select Input (activ LOW): transmiterea unui semnal pe aceast linie
determin selectarea imprimantei.

2.3.2.2.1 PROTOCOLUL DE COMUNICAIE CENTRONICSHANDSHAKE


n fig. 2.29 este reprezentat diagrama de semnale corespunztoare
transmiterii datelor prin interfaa Centronics. Procedeul handshake este
caracterizat de urmtoarea succesiune a semnalelor: dup cel puin 500 ns de la
transmiterea datelor pe liniile de date (8) ale magistralei, aparatul emitor (aici,
PC-ul) va transmite un semnal de preluare (Strobe) de durat minim de 500 ns.
Dup alte cel mult 500 ns, imprimanta semnalizeaz prin intermediul semnalului
de Busy, faptul c este n procesul de preluare a datelor primite. Acest semnal
poate persista mai mult timp dac, de exemplu, buffer-ul imprimantei este plin i
trebuie ateptat efectuarea imprimrii pentru golirea lui i preluarea unui nou
set de date. Apoi (dup cel mult 10s de la inactivarea semnalului de Busy),
devine activ semnalul de Acknowledge (varianta Centronics). n varianta Epson,
acest semnal apare cu aproximativ 7 s nainte de frontul descresctor al
semnalului Busy.

Fig. 2.29 Diagrama semnalelor pentru protocolul de comunicaie pentru


interfaa Centronics.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

55

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

n cazul n care se utilizeaz imprimanta conectat la portul serial al


calculatorului, sau atunci cnd exist mai multe porturi paralele (extrem de rar)
sau dac pur i simplu nu se conecteaz nici o imprimant, atunci portul paralel
disponibil poate fi utilizat pentru comanda circuitelor de msurare, reglare i
comand. n cazul PC-urilor, interfaa paralel este accesat prin intermediul
urmtoarelor adrese de port:
LPT1: 3BC H 3BE H
LPT2: 378 H 37A H
LPT3: 278 H 27A H

56

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

3. TIPURI DE SISTEME DE ACHIZIII DE DATE


3.1 SISTEM DE ACHIZIII DE DATE CU MULTIPLEXARE
TEMPORAL
Cea mai simpl structur de sistem de achiziii de date (fig. 3.1) presupune
utilizarea multiplexrii temporale. Diferitele semnale analogice de pe cele n
canale sunt multiplexate la intrarea circuitului de eantionare - memorare care
reine, de fiecare dat, valoarea unui eantion, n vederea conversiei.
n acest proces, circuitul de eantionare-memorare realizeaz o dubl
funcie:
menine constant (n limite de cel mult 0,5 LSB - Least Significant Bit
- bitul cel mai puin semnificativ) semnalul achiziionat la intrarea
convertorului analog-digital;
permite o utilizare ct mai eficient a timpului de achiziie, comutarea
urmtorului canal putnd avea loc pe durata ct circuitul de eantionarememorare se gsete n starea de memorare i tensiunea sa de ieire este
supus procesului de conversie analog-digital.
Multiplexorul analogic permite utilizarea unui singur convertor analogdigital, pentru n canale analogice; de regul n este de forma 2k. Multiplexorul este
o component electronic, coninnd n = 2k comutatoare analogice, ale cror ieiri
sunt conectate mpreun, pentru a furniza ieirea unic a multiplexorului; numrul
de comutatoare determin numrul de intrri ale multiplexorului. Comanda de
nchidere i de deschidere a comutatoarelor analogice este efectuat prin
intermediul a log2 n = k intrri de selecie.
Cnd dinamica procesului de colectare a datelor permite acest lucru, se
poate mri numrul de canale analogice de intrare, care se pot conecta, prin
multiplexare, la acelai lan de conversie, folosind structuri de tip arbore de
multiplexoare, deoarece multiplexoarele semiconductoare analogice sunt
disponibile doar n combinaii 2:1, 4:1, 8:1, 16:1.
Din fig. 2.1, se remarc funciunile unitii centrale. Aceasta trebuie s
asigure:
semnalul de comand a circuitului de eantionare-memorare;
semnalul de iniiere a conversiei (START) a convertorului analogdigital; la sfritul fiecrei conversii, convertorul CA/D furnizeaz un
semnal, EOC (End of Conversion - sfritul conversiei), pentru a
semnala n exterior c ieirea numeric este disponibil i stabil;
semnalele de selecie a canalului pentru multiplexor, adresarea canalelor
de intrare putnd fi fcut fie secvenial, fie aleatoriu.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

57

TIPURI DE SISTEME DE ACHIZIII DE DATE

Intrare 1

Bloc de
adaptare
semnal

Ieiri
paralele
Circuit de
eantionarememorare

Semnale
analogice

Intrare n

Comand
eantionarememorare

Bloc de
adaptare
semnal

Multiplexor
analogic
Adres
canal

Registru
tampon

C A/N
EOC

Ieire serial

START
Sfrit de
conversie

Comand
conversie

Unitate central cu microprocesor

Date

Fig. 3.1 Sistem de achiziii de date cu multiplexare temporal.

Timpul de achiziie, pentru un canal i, TiACH poate fi determinat astfel:


i
TACH
= t E / M + t MUX + t C + t MEM ; i = 1 n
(3.1)
n care semnificaia mrimilor ce intervin este urmtoarea:
t E / M - timpul de eantionare-memorare, compus din timpul de comand
i timpul de achiziie;
t MUX - timpul de multiplexare, compus din timpul de comand i din
timpul de stabilire al multiplexorului;
t C - timpul conversie, compus din timpul de comand i din timpul de
conversie analog-digital;
t MEM - timpul memorare a rezultatelor, rezultat ca suma timpilor de
execuie a unei instruciuni de citire a rezultatelor de la convertorul
analog-digital i a unei instruciuni de scriere a rezultatelor n memorie.
Pentru n canale de intrare, timpul de eantionare, Te , se calculeaz astfel:
n

i
Te = TACH
= n (t E / M + t MUX + t C + t MEM )

(3.2)

i =1

Sistemul cu multiplexor analogic, care permite accesul secvenial al


semnalelor, are dezavantajul unei viteze reduse de msurare, soluia fiind, n
schimb, cea mai ieftin.
Frecvena maxim de eantionare, f e , a acestui sistem de achiziii de date
rezult:
1
fe =
(3.3)
Te
de valoare relativ mic, ceea ce conduce la observaia, conform teoremei
eantionrii a lui Shannon:
f e 2 f max
(3.4)

58

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

c aceast arhitectur de sistem de achiziii de date nu poate fi folosit n mod


eficient pentru monitorizarea unor semnale de frecven mare, sau rapid
variabile n timp.
Trebuie, ns, precizat faptul c, de obicei, unitatea central nu este proprie
sistemului de achiziii de date, ci este mult mai corect s vorbim de o interfa de
achiziii de date compatibil cu un sistem de calcul compatibil IBM - PC XT/AT,
acest sistem constituind unitatea central de prelucrare.
Un exemplu reprezentativ de sistem de achiziii de date cu multiplexare
temporal este constituit de sistemul DAS 1600, produs de firma Keithley.
Acest sistem de achiziii de date se compune din:
interfa de achiziii de date;
microsistem de calcul, compatibil IBM PC/AT, organizat n jurul unei
magistrale de tip ISA3.
Schema bloc a interfeei de achiziii de date DAS 1600 este prezentat n
fig. 3.2.
Interfaa DAS 1600 permite achiziia a 16 semnale de intrare analogice
nedifereniale, sau a 8 semnale analogice de intrare complet difereniale, n
gama 5V, frecvena maxim de eantionare pentru un canal fiind de 100 kHz.
Selecia modului de lucru (nediferenial sau diferenial) se face printr-o
configurare hardware. Semnalele de selecie a canalului curent eantionat sunt
asigurate de o logic de comand i incrementare, constituit dintr-un numrtor
i circuite auxiliare. Aceast logic permite att baleierea secvenial, ct i
aleatoare, a canalelor de intrare.
Ieirea multiplexorului analogic este aplicat unui amplificator de
instrumentaie, a crui amplificare este selectabil software, funcie de nivelul
semnalului de intrare. Amplificarea este comandat prin intermediul unui cuvnt
de doi bii, astfel nct la ieirea amplificatorului de instrumentaie, nivelul
semnalului s fie adus n gama 5 V. Nivelul optim al amplificrii este stabilit
prin utilizarea unui registru de stare, registru care conine i informaii despre
canalul de intrare selectat, starea procesului de conversie, etc. De asemenea, un
circuit auxiliar permite selectarea polaritii semnalului de intrare.
Conversia analog-digital este realizat pe 12 bii, rezoluia asigurat
fiind de 2,44 mV.
Interfaa DAS 1600 dispune de dou convertoare digital-analogice cu
multiplicare, pe 12 bii, a cror tensiune de referin i polaritate a ieirii pot fi
selectate hardware. Tensiunea de referin poate fi furnizat fie de o surs de
referin de -10 V sau -5 V, fie de o tensiune extern.
Transferul datelor, sub form numeric n complement fa de doi, ctre
sistemul de calcul se face prin intermediul unei interfee DMA4, al crei nivel de
3
4

ISA
DMA

- Industrial Standard Architecture - arhitectur industrial standard.


- Direct Memory Access - logic de acces direct la memorie.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

59

TIPURI DE SISTEME DE ACHIZIII DE DATE

prioritate poate fi configurat hardware.


Subsistemul numeric al interfeei de achiziii de date DAS 1600 este
divizat n trei pri importante:
logica de control, care include:
- registrul de date al convertorului analog-digital i al multiplexorului
analogic de intrare;
- logica de comand i incrementare a multiplexorului analogic;
- registrul de stare;
- registrul de control (comand);
- logica de selecie a modului de trigger-are a procesului de achiziie;
- logica de ceas cu frecvena de 10 MHz;
- logica de selecie i decodificare;
- logica de gestionare a ntreruperilor;
- logica de comand a canalului DMA,
are rolul de a gestiona desfurarea procesului de achiziie;

interfeele programabile de intrare-ieire, constituite din:


- trei contoare programabile de 16 bii, organizate ntr-un circuit 8254
i folosite pentru selectarea frecvenei de eantionare, efectuarea unui
numr prestabilit de eantioane;
- trei porturi paralele, bidirecionale, dispunnd de 8 bii, organizate
ntr-un circuit 8255 i folosite ca linii digitale de intrare-ieire;
- un registru de intrare de 4 bii, folosit pentru sincronizarea extern a
comenzilor de achiziie;
- un registru de ieire de 4 bii;
logica de interfa cu magistrala sistemului de calcul, ce nglobeaz
circuite de tip tampon pentru liniile de date.
Pentru alimentare, interfaa DAS 1600 necesit o singur tensiune de
+5V. Celelalte tensiuni, 15 V, necesare funcionrii sunt asigurate de un
convertor curent continuu - curent continuu, cu care este echipat interfaa.
Tensiunea de referin, cu valoarea de -5V, este asigurat de sursa intern,
implementat n convertorul analog-digital.

60

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 3.2 Schema bloc a interfeei de achiziii de date DAS-1600.

3.2 SISTEM DE ACHIZIIE SINCRON DE DATE


n arhitectura sistemului de achiziii de date, reprezentat n fig. 3.3, se
remarc amplasarea, pe fiecare canal de intrare, a cte unui circuit de eantionareSISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

61

TIPURI DE SISTEME DE ACHIZIII DE DATE

memorare, E/M, n amonte fa de multiplexor. Comanda pentru trecerea n stare


de memorare este dat simultan, pentru toate circuitele E/M, dup care ieirile
acestora sunt multiplexate la intrarea convertorului CA/D. Multiplexarea
canalelor analogice de intrare se poate face fie secvenial, fie aleator.
Deoarece timpul de ateptare, n vederea conectrii la intrarea convertorului
CA/D, poate fi destul de lung, circuitele de E/M trebuie s prezinte o rat redus
de alterare a tensiunii memorate.
Bloc de
adaptare
semnal

Intrare 1

Circuit de
eantionarememorare

Ieiri
paralele
Registru
tampon

Semnale
analogice

C A/N
Circuit de
eantionarememorare

Bloc de
adaptare
semnal

Intrare n

Comand
eantionarememorare

EOC

Ieire serial

START
Multiplexor
analogic

Adres
canal

Sfrit de
conversie

Comand
conversie

Unitate central cu microprocesor

Date

Fig. 3.3 - Sistem de achiziie sincron de date.

Timpul de eantionare, Te , pentru n canale analogice de intrare rezult:


n

i
Te = TACH
= t E / M + n (t MUX + t C + t MEM )

(3.15)

i =1

Se constat scderea timpului de eantionare n raport cu acela


corespunztor arhitecturii cu multiplexare temporal, ns, cu toate acestea Te,
timpul de eantionare, depinde nc, n mod dramatic, de numrul de canale de
intrare, cu care este prevzut sistemul de achiziii de date.
Ca exemplu, n continuare este prezentat arhitectura interfeei de achiziii
de date EISA-2000, produs de firma National Instruments.
Acest sistem rapid de achiziii de date, produs de firma National
Instruments, este realizat sub forma unei plci echipate cu un conector
compatibil cu magistrala EISA5 a sistemelor de calcul compatibile PC. Interfaa
dispune de patru canale analogice de intrare, fiecare echipat cu propriul circuit
de eantionare-memorare. Viteza maxim de eantionare este:
1 MHz, n cazul eantionrii pe un singur canal;
500 kHz, n cazul eantionrii simultane a dou canale;
5

EISA

62

- Extended Industrial Standard Architecture - arhitectur industrial standard


extins.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

250 kHz, n cazul eantionrii simultane a celor patru canale


analogice de intrare.
Procesul de achiziie a datelor, pentru fiecare canal analogic de intrare,
poate fi declanat cu ajutorul unor circuite de tip trigger6 de tip software,
analogic (nivelul analogic de trigger-are este programabil pe 10 bii, n
intervalul (-5,12+5,12)V, cu posibilitatea de alegere a polaritii) sau digital.
Deoarece ntregul proces de configurare i de calibrare este controlat prin
program, nu este necesar intervenia asupra sistemului de calcul n care a fost
instalat interfaa de achiziii.
Interfaa rapid de achiziii de date EISA-A2000 utilizeaz sistemul de
integrare n timp real RTSI7, elaborat de firma National Instruments, pentru a
sincroniza funcionarea mai multor plci de achiziii de date, de tip EISA sau
AT, instalate ntr-un sistem de calcul. Prin utilizarea unui controller DMA,
interfaa EISA-A2000 poate transfera datele direct n memoria sistemului de
calcul n modul burst (rafal) cu rate de maxim 16,5 Moctei/secund.
Ca domenii generale de aplicaii, interfaa EISA-A2000 poate fi utilizat
n aplicaii de laborator sau industriale. Cele patru intrri analogice rapide, cu
rezoluie de 12 bii, permit utilizarea interfeei pentru analiza, de nalt precizie,
de semnal, pentru analiza regimurilor tranzitorii, etc. Eantionarea sincron
multicanal este deosebit de util n cazul analizei fazei a mai multor semnale.
STRUCTURA HARDWARE A INTERFEEI DE ACHIZIII DE DATE
EISA-A2000

n fig. 3.4 este prezentat schema bloc a interfeei de achiziii de date


EISA-A2000.
Circuitele analogice de intrare: Circuitele de eantionare-memorare i
convertorul analog-digital, cu rezoluie de 12 bii, permit digitizarea unui
eantion o dat la o microsecund. Banda maxim de frecven a semnalelor de
intrare este pentru semnal mic de 4 Mhz, iar de semnal mare de 1,1 MHz. Gama
tensiunilor de intrare acceptate de sistem este de 5V. Selecia tipului de semnal
de intrare (AC8/DC9) se face prin program. n cazul opiunii AC, intrrile
analogice asigur o rejecie a semnalelor continue de 30V. Toate canalele
analogice de intrare sunt echipate cu circuite de protecie la supratensiuni de
intrare de pn la 30V, att n condiii de funcionare a interfeei, ct i dac
interfaa nu este alimentat.
Interfaa de achiziii EISA-A2000 asigur o rezoluie de 12 bii, ceea ce
este echivalent cu o rezoluie analogic de 2,44mV. Este posibil creterea
6

Trigger
RTSI
8
AC
9
DC
7

- circuit de declanare.
- Real-Time System Integration - interfa de integrare sistem, n timp real.
- Alternative Current - semnal variabil n timp dup o lege sinusoidal.
- Direct Current - semnal continuu, invariabil in timp.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

63

TIPURI DE SISTEME DE ACHIZIII DE DATE

rezoluiei efective peste 12 bii, folosind generatorul Gauss Dither, implementat


pe plac, i medierea eantioanelor achiziionate. Rezoluia este automat
crescut la 16 bii, rezultatul fiind reprezentat n complement fa de doi.
Circuitele de autocalibrare: Interfaa EISA-A2000 conine un nucleu
software de autocalibrare a circuitelor de intrare analogice. Sursa de referin
intern asigur o nalt precizie i stabilitate n timp i cu temperatura. Sunt, de
asemenea, disponibile circuite pentru reglajul de offset pentru fiecare canal,
asigurnd scderea erorii de offset la mai puin de 0,25 LSB. Procesul de
calibrare nu necesit conexiuni exterioare. Datele necesare pentru efectuarea
autocalibrrii sunt memorate ntr-un circuit de memorie E2PROM, amplasat pe
plac.
Circuitele analogice i digitale de trigger-are: EISA-A2000 dispune att
de circuite analogice, ct i digitale de trigger-are pentru declanarea procesului
de achiziii de date. Exist trei moduri pentru declanarea convertorului analogdigital, CA/D:
n modul analogic de trigger-are, procesul de achiziie este demarat de
un semnal analogic de intrare, atunci cnd att nivelul semnalului, ct
i polaritatea acestuia, corespund valorilor programate. Un convertor
digital-analog genereaz tensiunea de prag, cu o rezoluie de 10 mV.
Se compar nivelul tensiunii de intrare cu aceast tensiune de prag
programat; conversia este declanat la egalitatea celor dou
tensiuni i este, de asemenea, ndeplinit condiia de polaritate.
Semnalul de trigger analogic poate fi selectat de la oricare dintre cele
patru canale analogice de intrare sau de la o intrare extern;
n modul digital de trigger-are, exist opiunea de a selecta prin
program care dintre fronturile semnalului, cresctor sau cztor, va
declana procesul de achiziie;
n modul software de trigger-are, procesul de achiziii de date este
declanat prin program.
Circuitele de secvenializare i de comand a conversiei prezint trei
moduri de trigger-are pentru procesul de achiziii de date: modul de lucru cu
pretrigger-are, modul de lucru cu ntrziere fa de semnalul de trigger-are i
modul de lucru cu posttrigger-are.
n modul de lucru cu pretrigger-are, procesul de achiziie este declanat
prin software; acesta continu, depunnd rezultatele ntr-un buffer circular, pn
cnd se primete un semnal de trigger analogic sau digital.
n cel de-al doilea mod de lucru, se poate selecta, prin program, un timp
de ntrziere, pe durata cruia procesul de achiziie este inhibat, de la primirea
unui semnal trigger analogic sau digital.
n modul de lucru posttrigger, achiziia ncepe dup ce interfaa EISAA2000 primete un semnal trigger analogic, digital sau software.
Prin combinarea modurilor de lucru, se poate achiziiona un numr pre64

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

programat de eantioane, nainte sau dup ndeplinirea unei condiii de triggerare.


Logica de comand i timing a achiziiei: Aceste circuite genereaz
semnalele de secvenializare (timing) i de comand a procesului de achiziie.
Timing-ul de conversie multipl analog-digital este comandat fie de un circuit
de tip numrtor, implementat pe interfaa EISA-A2000, fie de un ceas extern
de eantionare.
Circuitul de numrare, pe 16 bii, cu care este echipat placa, genereaz
timing-ul necesar pentru conversia analog-digital. Acest circuit dispune de baze
de timp, selectabile software, de 200ns, 1s, 10s, 100s, 1ms i 10ms.
Intervalul minim de eantionare, n cazul operrii monocanal, este de 1s. Dac
este necesar n cadrul aplicaiei, numrtorul intern poate fi nlocuit cu un
semnal de ceas de eantionare extern. Numrul de eantioane prelevate n cadrul
aplicaiei, pe fiecare canal, este monitorizat de un numrtor pe 32 de bii, care
oprete procesul de achiziie la atingerea numrului preprogramat de eantioane.
Interfaa de magistral RTSI: EISA-A2000 este interfaat cu magistrala
RTSI National Instruments printr-un comutator, de fapt o reea bidirecional de
pori de comutare de tip crossbar. Liniile magistralei RTSI includ semnalele
externe de trigger, semnalul de ceas extern de eantionare i semnale de intrareieire de numrare. Folosind aceste linii de semnal, mai multe interfee EISAA2000 pot fi sincronizate s achiziioneze sincron semnalele analogice de
intrare.
Interfaa de magistral EISA: Interfaa de achiziii de date este complet
compatibil cu magistrala EISA, putnd manipula liniile de cerere DMA de pe
acest magistral. Un circuit buffer, cu capacitate de 512 cuvinte, previne
pierderea de informaii n condiiile n care datele nu pot fi transferate imediat n
memorie. Astfel, mai multe interfee EISA-A2000, cuplate n sistemul de calcul,
pot funciona la ntrega capacitate.
Interfaa cu magistrala EISA dispune, de asemenea, de linii de
ntrerupere, logic DMA, registre de comand i de stare. Acest interfa este
astfel proiectat nct permite ca mai multe sisteme EISA-A2000 s poat
partaja magistrala sistemului de calcul, prin transferarea datelor n rafal cu
rate extrem de ridicate, lsnd suficiente posibiliti de servire a celorlalte
resurse ale sistemului.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

65

TIPURI DE SISTEME DE ACHIZIII DE DATE

Fig. 3.4 Schema bloc a interfeei de achiziii de date EISA-2000.

66

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

3.3 SISTEM RAPID DE ACHIZIII DE DATE


n cazul n care semnalele de intrare evolueaz rapid n timp, cele dou
arhitecturi precedente, care se bazeaz pe un singur CA/D pentru conversie, nu
mai sunt utilizabile.
n consecin, pentru mrirea vitezei de msurare, se utilizeaz arhitectura
de sistem prezentat n fig. 3.5, care are cte un convertor CA/D, pentru fiecare
canal, precedat de elemente de eantionare - memorare, E/M.
Structura sistemului, aa cum este prezentat n fig. 3.5, n care cele n
intrri analogice sunt conectate mpreun, permite folosirea tehnicii de
supraeantionare pentru achiziia semnalului de intrare. n aceast configuraie,
viteza de achiziie este practic multiplicat de n ori fa de aceea care se obine
prin eantionarea secvenial.
Informaiile, de la ieirile convertoarelor analog-digitale, sunt aplicate unui
multiplexor numeric, care selecteaz datele primite i le transmite secvenial pe
magistrala sistemului de calcul. Trebuie precizat c marea majoritate a
convertoarelor analog-digitale realizate n momentul actual sunt asfel concepute
nct nglobeaz circuite de interfa cu un microprocesor pe 8/16 bii. Aceste
circuite de interfa constau n implementarea intern a unor registre cu ieiri cu
trei stri, pentru preluarea rezultatelor i a unor semnale de dialog specifice
magistralei unui microprocesor. Echiparea ieirilor circuitului de conversie cu
registre cu trei stri permite eliminarea multiplexorului numeric din structura
prezentat anterior, legarea mai multor ieiri cu trei stri la aceeai linie de date a
magistralei sistemului implementnd, de fapt, un multiplexor cablat.
Timpul de eantionare, Te , pentru n canale analogice de intrare,
caracteristic acestei arhitecturi de sistem de achiziii este:
n

i
Te = TACH
= t E / M + t C + n (t MUX + t MEM )

(3.6)

i =1

Trebuie s menionm c, pentru aceast arhitectur de sistem de achiziii


de date, timpul elementar de multiplexare, tMUX, este corespunztor unui
multiplexor numeric i este considerabil mai redus n comparaie cu situaiile
anterioare, deoarece timpul de stabilire al multiplexorului numeric este cu circa
trei ordine de mrime mai mic dect cel al unui multiplexor analogic.
Avantajele acestei structuri de sistem de achiziii sunt urmtoarele:
pot fi utilizate convertoare CA/D mai lente, i deci mai ieftine, chiar
dac se dorete o vitez mare de achiziie;
prin conversia local sub form numeric, se asigur o bun imunitate la
perturbaii;
posibilitatea separrii galvanice a unei surse de semnal, mpreun cu
convertorul CA/D aferent, fa de restul sistemului.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

67

TIPURI DE SISTEME DE ACHIZIII DE DATE

Intrare 1

Bloc de
adaptare
semnal

Comand
eantionarememorare

Semnale
analogice

Intrare n

Circuit de
eantionarememorare

Bloc de
adaptare
semnal

Comand
eantionarememorare

EOC START

Sfrit de
conversie

Circuit de
eantionarememorare

Comand
conversie

C A/N
EOC START

Sfrit de
conversie
Comenzi de
eantionarememorare
Comenzi
de START
conversie
Semnale
sfrit de
conversie

Registru
tampon

C A/N

Multiplexor
numeric

Registru
tampon

Comand
conversie

Selecii
Adres
canal

Unitate central cu microprocesor

Date

Fig. 3.5 - Sistem rapid de achiziii de date.

3.4 UNITATEA CENTRAL DE COMAND


Unitatea central de prelucrare a unui sistem de achiziie de date trebuie s
realizeze urmtoarele funciuni (fig. 2.1):
selectarea canalului analogic, pe care se dorete s se fac achiziia;
comanda eantionrii;
comanda conversiei analog-digitale;
sesizarea sfritului conversiei i citirea codului binar rezultat;
ncrcarea codului n memorie;
corecia erorilor introduse de diferite blocuri componente;
prelucrarea i afiarea datelor;
testarea blocurilor componente n vederea identificrii celor defecte.
Principial, sunt posibile dou abordri:
logica cablat, bazat pe circuite electronice cu grad redus de integrare,
dar de vitez mare;
logica programat, cu avantajul unei flexibiliti i capaciti de
prelucrare a datelor foarte ridicate, dar cu o vitez mai redus.
Logica cablat conduce la realizarea unei uniti de comand a achiziiei,
fr programe, deci fr parte software, folosind n exclusivitate resurse
hardware, astfel conectate, nct s permit funcionarea achiziiei n mod
automat. Se folosete tehnologia bipolar, MOS (Metal Oxid Semiconductor tehnologie metal-oxid-semiconductor) i CMOS (Complementary Metal Oxid
Semiconductor - tehnologie metal-oxid-semiconductor, de tip complementar) de
68

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

realizare a circuitelor.
Logica programat se bazeaz pe simbioza dintre o parte electronic,
fizic, aa-numitul hardware, care constituie suportul material al operaiilor de
comand i prelucrare i, pe de alt parte, programele, partea informaional,
numit curent software; software-ul impune hardware-ului operaiile ce urmeaz
s le desfoare conform algoritmului proiectat de programator. Elementul central
al hardware-ului este microprocesorul.
n practic, nu se utilizeaz niciodat, n exclusivitate, logica cablat, ci, fie
o metod combinat, fie doar logica programat.

3.5 SISTEME DE ACHIZIIE DE DATE CU


MICROPROCESOR
Un sistem de achiziie de date, asociat cu un microsistem de calcul, se
comport ca un sistem inteligent (care poate lua decizii bazate pe informaii
anterioare, prelucreaz informaia, efectueaz calcule, dup care, pe baza
rezultatelor obinute, adopt o decizie, din mai multe soluii posibile).

3.5.1 UNITI CENTRALE DE PRELUCRARE


TRADIIONALE
Microprocesorul reprezint elementul funcional esenial al microsistemului de calcul, fiind un circuit integrat pe scar larg, LSI (Large Scale
Integration - integrare pe scar larg), care poate realiza cinci funcii de baz:
funcia de intrare (INPUT), care permite legtura dintre lumea
exterioar i sistem;
funcia de ieire (OUTPUT), care permite legtura dintre sistem i
lumea exterioar;
funcia de memorare (MEMORY), care permite pstrarea informaiilor
(date, rezultate) i, uneori, a instruciunilor programului;
funcia de prelucrare (COMPUTE), implementat prin ALU (Arithmetic Logic Unit - unitate aritmetico-logic), care permite efectuarea
operaiilor aritmetice i logice din sistem;
funcia de control (CONTROL), care nglobeaz totalitatea aciunilor
de secvenializare i control ale activitii sistemului.
n interiorul microsistemului de calcul, informaiile sunt vehiculate prin
intermediul magistralei. Magistrala unui sistem de calcul este compus din trei
seciuni:
seciunea de date (magistrala de date), care asigur schimbul
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

69

TIPURI DE SISTEME DE ACHIZIII DE DATE

bidirecional de informaie (date) ntre microprocesor, pe de o parte, i


circuitele de memorie i de interfa, pe de alt parte;
seciunea de adrese (magistrala de adrese), unidirecional, care asigur
vehicularea biilor de adres, de la microprocesor sau de la un alt
dispozitiv master ctre celelalte elemente ale sistemului;
seciunea de control (magistrala de control), unidirecional, care
permite vehicularea semnalelor de sincronizare i control, ntre
microprocesor sau un alt dispozitiv master i celelalte resurse ale
sistemului.
Marea diversitate de componente electronice, cu funciuni, performane i
costuri foarte diferite, impun proiectantului o definire precis a caracteristicilor i
utilitilor sistemului pe care l concepe.
Alegerea microprocesorului i a circuitelor periferice asociate este dictat
de analiza structurii hardware (constituite din componente de microinformatic,
procesor, memorii, componente electronice clasice) i a structurii software
(implementate n memorie), n vederea asigurrii cerinelor de vitez de msur i
de versatilitate ale sistemului.
Gama actual de microprocesoare cuprinde tipuri de 8, 16, 32 i 64 de bii;
pe plan mondial ponderea o dein, n continuare, microprocesoarele pe 8 bii, care
ofer, la pre sczut, performane satisfctoare.
Dintre microprocesoarele pe 8 bii, cele mai utilizate, cu performane bune,
sunt tipurile: INTEL 8080, INTEL 8085, ZILOG Z80, MOTOROLA 6800.
Dintre acestea, o larg utilizare o are, n aplicaiile curente, microprocesorul
ZILOG Z80, care nglobeaz caracteristicile microprocesorului INTEL 8080, cu
pstrarea compatibilitii software, dar cu extinderea performanelor acestuia.
n prezent, au nceput s fie utilizate pe scar larg microcontroller-ele pe
8 i 16 bii, care compenseaz o parte din dezavantajele microprocesoarelor
tradiionale. Arhitectura unui microcontroller a fost astfel proiectat nct s ofere
o versatilitate mult superioar celei a microprocesoarelor tradiionale, prin:
organizarea intern sub forma unui numr de trei, patru sau cinci
porturi bidirecionale, a cror funcionalitate poate fi stabilit de
utilizator;
extinderea spaiului de adresare prin separarea, din punct de vedere al
accesului, a memoriei de date fa de memoria de program;
nglobarea n structura microcontroller-ului a unei memorii de program
de tip PROM (Programmable Read-Only Memory - memorie
programabil, ce prezint doar faciliti de citire), cu capacitate relativ
mic (n cele mai multe cazuri 4Koctei), ce poate fi parial sau integral
accesibil operatorului pentru programul de aplicaii. n cazul
accesibilitii pariale a utilizatorului la aceast resurs, trebuie
menionat faptul c ntr-o zon a memoriei interne de program este
rezident un interpretor BASIC, ceea ce permite programatorului s-i
70

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

scrie aplicaia n limbajul BASIC i nu n limbaj de asamblare;


nglobarea n structura intern a unor circuite de interfaare, cum ar fi
interfee seriale programabile de comunicaie, interfee paralele
programabile bidirecionale, circuite de numrare programabile,
convertoare analog-digitale, convertoare digital-analogice, etc;
un astfel de microcontroller lucreaz la o frecven a ceasului de cteva
ori mai mare dect un microprocesor tradional, ceea ce permite
creterea vitezei de prelucrare aproximativ n aceeai msur;
setul de instruciuni al unui microcontroller este substanial mbogit,
pstrnd compatibilitatea cu cele ale microprocesoarelor tradiionale;
tehnologia de realizare CMOS, folosit pentru implementarea
majoritii microcontroller-elor actuale, permite scderea substanial
a puterii consumate de la sursa de alimentare, creterea fiabilitii i
siguranei n exploatare.
Ca exemplificare la cele menionate anterior, se constat utilizarea
extensiv a dou familii de microcontrollere: familia 8051, conceput i realizat
de firma INTEL i familiile Z87, Z87 Super ale firmei ZILOG. Arhitectura
general a familiei 8051, repectiv a familiei Z8, este prezentat n fig. 3.6,
respectiv 3.7.
Ambele familii de microcontroller-e au elemente arhitecturale comune,
cum ar fi:
pentru minimizarea liniilor de interconexiune cu exteriorul, seciunea de
date i seciunea inferioar de adrese ale magistralei sistemului sunt
multiplexate temporal;
att 8051, ct i Z8 pot funciona fie ca microsisteme specializate de
intrare-ieire, fie ca microsisteme specializate de lucru cu memoria;
n ambele tipuri de aplicaii, spaiul de adresare este partajat n trei
seciuni:
- memoria de program (intern i extern), cu capacitate maxim de
64Koctei;
- memoria de date (extren), cu capacitate variind ntre 60 i 64 Koctei.
Este nevoie s se fac precizarea c dispozitivele de intrare-ieire
externe sunt adresate de microcontroller ca seturi de celule de memorie
de date;
- setul de registre interne, coninnd registre de uz general, registrele
unitii centrale de prelucrare i registrele asociate celor patru porturi de
intrare-ieire ale microcontroller-ului;
ambele familii de microcontroller-e permit operarea la nivel de bit, la
nivel de octet sau octet codificat zecimal, sau la nivel de cuvnt cu
lungime de 2 octei;
operarea n regim de intrare-ieire poate fi coordonat prin ntreruperi
sau n modul polling (interogare periodic). Sunt disponibile cinci/ase
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

71

TIPURI DE SISTEME DE ACHIZIII DE DATE

Registru
adrese RAM

nivele de ntreruperi, care pot fi mascate sau a cror prioritate poate fi


modificat.

RAM
intern
128 x 8

Registru
general B

Registru
acumulator

Linii Port 0

Linii Port 2

Driver-e
Port 0

Driver-e
Port 2

Registru
Port 0

Registru
temporar 2

Registru
Port 2

ROM
4k x 8

Stiv

Registru
temporar 1

Unitate aritmetic
i logic

Registre comand,
interfa serial,
timer-e, ntreruperi

Buffer
date

ntreruperi
porturi seriale,
timer-e

Incrementare
Contor
Program
Contor
Program

Registru de
instruciuni

Unitate de
control

Registru cuvnt
de stare a
programului

Semnale
de comand

Registru
adrese
program

Registru
adresare
memorie
Registru
Port 1

Registru
Port 3

Driver-e
Port 1

Driver-e
Port 3

OSC

Semnale
de ceas

Linii Port 1

Linii Port 3

Fig. 3.6 - Arhitectura de baz a familiei de microcontroller-e INTEL 8051.

n afar de microprocesor, componenta cea mai complex, ale crei


caracteristici determin, n esen, structura i performanele unitii centrale, se
disting (fig. 3.14):
memoriile nevolatile;
memoriile volatile;
circuitele de interfaare;
decodificatoarele.
Memoriile nevolatile - cu coninut permanent: ROM (Read-Only Memory
- memorie, cu coninut permanent, ce poate fi doar citit), PROM, EPROM
(Erasable Programmable Read-Only Memory - memorie cu coninut permanent
ce poate fi doar citit i care dispune de faciliti de tergere a coninutului cu
72

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

radiaii ultraviolete), EEPROM (Electrical Erasable Programmable Read-Only


Memory - memorie cu coninut permanent ce poate fi doar citit i care dispune
de faciliti de tergere electric a coninutului) - sunt destinate s stocheze
programul pe care trebuie s-l efectueze unitatea central de prelucrare.
Intrri-ieiri programabile
la nivel de bit

Semnale de comand
Acces direct
la memorie
Unitate de
comand

Port 4

Unitate aritmetic
i logic

Interfa serial

Indicatori de
condiii
Numrtoare
Pointer-i registre
Registre
272 x 8 bii

Logic de
ntreruperi

Contor program

Port 3

Port 2

Intrri-ieiri sau CONTROL


programabile la nivel de bit

Port 0

Port 1

ADRESE sau intrri-ieiri


programabile la nivel de bit

ADRESE/DATE sau intrri-ieiri


programabile la nivel de bit

Z-BUS utilizat ca magistral


de ADRESE/DATE

Fig. 3.7 Arhitectura de baz a familiei de microcontrollere Zilog Z8 Super.


Memoriile volatile - cu coninut nepermanent: RAM (Random Access
Memory - memorie cu acces aleator), SRAM (Static Random Access Memory memorie cu acces aleator, avnd drept element de memorare un circuit basculant
bistabil), DRAM (Dynamic Random Access Memory - memorie cu acces aleator,
avnd drept element de memorare un condensator) - sunt destinate s stocheze
temporar eantioanele, rezultatele pariale i finale ale prelucrrii, n timpul
procesului secvenial de funcionare a sistemului de calcul.
Circuitele de interfaare sunt destinate s asigure comunicaia microprocesorului cu echipamentele de intrare-ieire. Prin intermediul porturilor de intrare,
se citesc datele rezultate n urma conversiei analog-digitale, sau starea unui
echipament periferic. Porturile de ieire mijlocesc transferul de date de la unitatea
de comand la afiaj sau la alt calculator, respectiv sunt utilizate pentru
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

73

TIPURI DE SISTEME DE ACHIZIII DE DATE

iniializarea i programarea echipamentelor periferice.


Decodificatoarele sunt utilizate pentru decodificarea adreselor i generarea
unor semnale de selecie care se exclud reciproc (un singur semnal de ieire al
decodificatorului poate fi activ la un moment de timp dat). Ieirile
decodificatoarelor sunt active pe nivel cobort, pentru a se realiza cu mai mult
uurin interfaarea cu echipamemtele externe. Decodificatoarele permit
microprocesorului s selecteze resursele unitii centrale, tiind c
microprocesorul nu poate executa dect o singur operaie (citirea din memoria
program, citirea sau scrierea datelor, citirea sau scrierea registrelor de comand
sau de stare ale interfeelor). n sistemele de calcul mai complexe, pentru
generarea semnalelor de selecie, decodificatoarele sunt nlocuite cu circuite PAL
(Programmable Logic Array - reele logice programabile), circuite care
implementeaz decodificatoare cu mai multe ieiri (decodificatoarele integrate se
realizeaz n urmtoarele configuraii: 1:2, 2:4, 3:8 i 4:16) i o logic complex
de condiionare a decodificrii.
Configuraia prezentat este absolut minimal, ntruct n majoritatea
sistemelor exist i alte circuite, ca de exemplu: amplificatoare de magistral
unidirecionale i bidirecionale, circuite de tip registru cu trei stri, divizoare de
frecven, etc.
Dac volumul de date ce trebuie achiziionate i prelucrate este
considerabil, se recomand folosirea memoriei RAM dinamice, care permite o
mare densitate de integrare, cu preul unei viteze ceva mai reduse (timpul de acces
este redus, de ordinul 5070 ns, ns sunt necesare cicluri de remprosptare la
nivel de pagini de memorie, la intervale de maximum 2 ms, pentru ca informaia
memorat s nu fie afectat ca integritate).
Dac este esenial viteza iar volumul de date este mic, se prefer utilizarea
memoriilor RAM statice.
Datorit progreselor tehnologice nregistrate n ultimii ani, numeroase
firme productoare de componente, cum ar fi INTEL, AMD, Micron, Hibrid
Semiconductor, realizeaz memorii SRAM de capacitate mare n tehnologie
CMOS (de la 2Kx8 bii pn la 128Kx8 bii, 256Kx16 bii), cu timp de acces
cuprins ntre 20 i 35 ns i peformane deosebite de fiabilitate i cost. De
asemenea, se realizeaz module de memorie SRAM, cu capaciti cuprinse ntre
128Kx8 bii i 256Kx32 bii. Aceste circuite de memorie SRAM, respectiv
modulele de memorie SRAM, sunt ideale pentru a echipa unitile centrale de
prelucrare, din punct de vedere al vitezei de acces, siguranei n exploatare,
consumului deosebit de redus i gradului mare de integrare.
Funcionarea sistemului de achiziii de date cu microprocesor este
urmtoarea:
microprocesorul iniializeaz toate circuitele din sistem;
prin intermediul unui port de ieire, se ncarc n registrul de selecie al
canalului analogic, numrul canalului a crui achiziie se dorete;
74

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

dac achiziia poate ncepe n orice moment, microprocesorul d


semnalul de eantionare i de iniiere a conversiei pentru primul
eantion. Dac trebuie ateptat trecerea prin zero sau valoarea maxim
a semnalului de intrare, circuitul sesizor de zero, respectiv de vrf, va da
primul impuls de eantionare i conversie, urmnd ca, dup aceea,
microprocesorul s preia controlul;
convertorul va emite semnalului READY la sfritul conversiei, care
poate fi folosit ca semnal de ntrerupere pentru microprocesor, ca s
citeas codul rezultat n urma conversiei. Dac viteza nu e factor
limitativ, microprocesorul poate citi periodic portul de intrare (modul
polling), fiecare citire constituind totodat un nou semnal de eantionare
i de START CONVERSIE;
eantioanele sunt depuse, dup fiecare citire, n memoria RAM; se
urmrete numrul eantioanelor efectuate, cu ajutorul unui numrtor
extern; procesul se oprete, atunci cnd s-a obinut numrul de
eantioane dorit;
la sfrit, eantioanele sunt prelucrate i afiate rezultatele, conform
programului elaborat i stocat n memoria EPROM.
Microprocesoarele i microcontroller-ele constituie resurse de comand i
prelucrare, care sunt deosebit de utile n procesul de gestiune a achiziiei, de
preluare i memorare a eantioanelor rezultate n urma conversiei analog-digitale.
Eficacitatea lor, n ceea privete procesul de prelucrare evoluat a eantioanelor
prelevate din proces, este mult mai redus. Pentru o supraveghere precis a unui
proces, este, de regul, necesar achiziionarea unor eantioane, care convertite n
form numeric, au lungimi de 12 sau 16 bii. Folosirea unor algoritmi de
prelucrare evoluat (filtrare numeric, analiz armonic, etc) comport execuia
unor instruciuni de nmulire, adesea n virgul mobil, a dou cuvinte de 2
octei, rezultatul fiind disponibil pe un cuvnt de lungime dubl. Asemenea
algoritmi pot fi cu greu implementai pe un microcontroller de 8 bii, cu consum
nejustificat de timp i de resurse. De aceea, o soluie modern de a realiza
prelucrri complexe asupra datelor o const utilizarea circuitelor DSP (Digital
Signal Processor - procesor digital de semnal), specializate n execuia unor astfel
de instruciuni.

3.5.2 PROCESOARE DE SEMNAL: DSP


Procesoarele DSP sunt circuite specializate pentru prelucrarea semnalelor,
permind lrgirea considerabil a cmpului de aplicabilitate a tehnicilor numerice
n domeniul achiziiilor de date.
Pe lng facilitile extinse de operare numeric (nmulire i mprire
rapid n virgul mobil), de cele de prelucrare numeric a semnalelor (filtrare,
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

75

TIPURI DE SISTEME DE ACHIZIII DE DATE

modulare, detecie, estimare de parametri, transformri neliniare, transformare


Fourier rapid - FFT), aceste circuite i gsesc deja aplicaii n msurri (analize
de spectru, analize de regimuri tranzitorii), n telecomunicaii (egalizatoare
adaptive, modem-uri de nalt vitez inteligente), n prelucrarea vorbirii
(recunoaterea, transmisia i recepia vorbirii) i a imaginilor (reconstituirea,
compresia, prelucrarea homomorfic a imaginilor). Trebuie remarcat c toate
procesoarele DSP sunt uniti microprogramate, cu faciliti de prelucrare n
timp real a semnalelor, dispunnd de resurse logice destinate dezvoltrii i punerii
la punct a programelor de aplicaii.
Pentru mbuntirea performanelor, se depun eforturi pentru:
mrirea spaiului de adresare (creterea capacitii memoriei interne
RAM i ROM);
utilizarea direct a memoriei externe;
modificarea arhitecturii de baz n vederea crerii unei memorii tampon;
utilizarea optimal a magistralei interne, n vederea accelerrii
transferurilor de date;
creterea lungimii cuvintelor pentru executarea unor instruciuni n
virgul flotant;
creterea frecvenei de operare prin utilizarea tehnologiei CMOS, ce
permite creterea gradului de integrare.

3.5.2.1 ARHITECTURA UNUI PROCESOR DE SEMNAL


Cele mai rspndite procesoare de semnal - DSP - sunt cele din seria TMS
320XX, produse de firma Texas Instruments, datorit performanelor de calcul
(5 milioane de instruciuni pe secund) i versatilitii lor. Viteza de calcul este
obinut cu ajutorul unui uniti aritmetico-logice ce incorporeaz un circuit de
nmulire paralel de 16 x 16 bii, cu rezultatul pe 32 bii, n 200ns. Aceast nalt
performan este destinat calculelor complexe de tipul convoluiei, deconvoluiei
i transformrii Fourier rapide.
Familia de procesoare DSP TMS 320XX dispun de o memorie RAM,
avnd capacitatea de minimum 144 cuvinte de 16 bii, capacitate suficient pentru
a executa un algoritm FFT n 64 de puncte.
Procesoarele din familia TMS 320XX posed 8 porturi de intrare-ieire
multiplexate, ce pot suporta o vitez de transfer de 40 milioane de bii pe secund.
Primul component al acestei familii, procesorul TMS 32010, se
caracterizeaz printr-o arhitectur Harvard modificat n vederea creterii vitezei
de funcionare i a versatilitii. Modificrile aduse permit transferurile ntre
spaiile de memorie de program i de date: coeficienii nscrii n memoria de
program pot fi citii n memoria de date, eliminnd n acest fel necesitatea
existenei unei memorii de program separate pentru coeficieni.
76

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

n arhitectura oricrui procesor DSP se disting dou seciuni:


seciunea operativ, organizat n jurul unei magistrale de date, cu o
lungime de 16 bii; la magistrala de date sunt conectate:
- un sistem multiplicator de 16 x 16 bii, rezultatul nmulirii fiind
disponibil pe 32 de bii. Sistemul de multiplicare dispune de dou
registre: registrul T (registru temporar n care se citete din memoria
RAM de date unul dintre operanzi) i registrul P (registru rezultat) i de
circuitul de nmulire propriu-zis. O nmulire se efectueaz n dou
cicluri, unul necesar citirii n registrul T a unui operand i al doilea
necesar citirii n registrul acumulator a celuilalt operand;
- o unitate aritmetico-logic opernd pe 32 de bii i care are asociat
un registru acumulator (RA), de asemenea cu lungimea de 32 de bii.
Registrul RA este divizat n dou pri: partea mai semnificativ (biii
1631) i partea mai puin semnificativ (biii 015). Coninutul
acumulatorului poate fi salvat n memorie prin dou instruciuni
succesive;
- dou circuite de deplasare (SHIFTER), dintre care unul este destinat
deplasrii aritmetice programabile cu 015 a datelor din memoria RAM
de date, iar al doilea circuit efectueaz o deplasare la stnga cu zero, cu
una sau patru poziii, a prii superioare a acumulatorului;
- o memorie RAM de date (DATA RAM), cu capacitatea de 144 de
cuvinte de 16 bii. Aceast memorie este organizat sub forma a dou
pagini, dintre care prima pagin conine 16, iar cea de-a doua 128
cuvinte. Indicatorii de adrese pot fi autoincrementai sau autodecrementai, incrementul fiind egal cu unitatea;
seciunea de comand, organizat n jurul unei magistrale de program,
coninnd:
- un registru denumit contorul programului (PROGRAM
COUNTER) cu lungimea de 12 bii i o stiv (STACK) folosit pentru
salvarea contextului programului. Registrul contor al programului
conine adresa urmtoarei instruciuni din memoria de program;
- memoria de program (PROM), cu o capacitate de 1536 de cuvinte cu
lungimea de 16 bii. Acest memorie de program poate fi substituit cu
o memorie extern de program, cu o capacitate de 4096 de cuvinte.
Aceast arhitectur a unui DSP permite funcionarea n modul pipeline,
adic pe durata executrii instruciunii curente, contorul programului se ncarc cu
adresa urmtoarei instruciuni, instruciunea urmtoare fiind citit n paralel cu
execuia instruciunii curente. Modul de lucru pipeline contribuie n mod decisiv
la creterea vitezei de lucru a procesorului.
n raport cu procesorul TMS 32010, cele ale urmtoarei generaii - TMS
32020 i TMS 320C25 - sunt caracterizate prin urmtoarele modificri:
eliminarea memoriei interne de program i nlocuirea ei cu o memorie
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

77

TIPURI DE SISTEME DE ACHIZIII DE DATE

intern RAM, ce poate fi ncrcat cu un program de aplicaie de la o


surs extern;
procesorul dispune de 544 de cuvinte de memorie, dintre care 256
cuvinte sunt utilizabile ca memorie de program;
este disponibil o memorie extern adresabil de 64 Kcuvinte de
program;
realizarea operaiei de nmulire cu nlnuire ntr-un singur ciclu (170
ns);
exist cinci indicatori ai memoriei RAM interne; unitatea aritmeticologic pentru calculul adresei asociat acestor indicatori permite o
indexare cu pas variabil;
circuit divizor de frecven, integrat n structura procesorului;
existena unor instruciuni specializate, destinate aritmeticii n virgul
flotant;
faciliti de mascare a trei rezultate, n loc de unul singur.
Realizat n tehnologie CMOS, procesorul TMS 320C25 este caracterizat
de:

durata unui ciclu instruciune de 100 ns;


consum energetic foarte redus;
memorie de program (ROM) intern, cu capacitatea de 4Kcuvinte cu
lungimea de 16 bii;
un numr de 8 registre auxiliare, asociate unei uniti aritmetice;
stiv pentru salvarea contextului programului, organizat pe 8 nivele;
dou circuite de memorie RAM intern. Unul dintre aceste circuite
poate fi configurat fie ca memorie de program, fie ca memorie de date.
Creterea vitezei i eficienei de prelucrare numeric poate fi asigurat prin
utilizarea unor procesoare de semnal cu arhitectur paralel. Procesorul de semnal
SPROC-1400 face parte din seria SPROC-1000, coninnd memoria de program,
memoria de date, logica de secvenializare i logica de interfaare cu alte
procesoare. Aceste resurse sunt necesare pentru proiectarea eficient,
implementarea i testarea sistemului. Procesoarele SPROC-1000 pot fi
configurate s lucreze att n modul MASTER, ct i n modul SLAVE, pentru
interconectarea cu alte procesoare SPROC sau cu un microprocesor tradiional.
Principalele caracteristici ale procesoarelor SPROC-1400 sunt:
integrarea tuturor subsistemelor de procesare de semnale pe un singur
chip;
arhitectur de tip multiprocesor optimizat;
banda maxim de frecven a semnalelor de intrare de maxim 250 kHz;
lungimea cuvintelor procesate de 24 de bii, cu posibilitatea de
memorare pe 56 de bii;
generator intern de ceas, cu frecvena de 50 MHz;
78

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

memorie RAM local, reprogramabil n mod dinamic;


4 porturi seriale, configurabile pentru manipularea a 8, 12, 16 sau 24 de
bii de date;
1 port paralel, dispunnd de 24 de linii, configurabil pentru manipularea
unor cuvinte de date de 8, 12, 16 sau 24 de bii;
tehnologia de realizare CMOS static;
iniializarea poate fi fcut att intern, printr-un fiier de 16 Koctei, ct
i extern, prin folosirea unei memorii ROM;
compatibilitate cu majoritatea microprocesoarelor aparinnd familiilor
INTEL i Motorola.
Seria de procesoare SPROC-1000 utilizeaz o arhitectur cu memorie
central optimizat (fig. 3.8) pentru procesarea concurent a fluxurilor complexe,
relaionale de date.

Memorie de program

Procesoare
GSP

Porturi
seriale
de
intrare

DFM
Intrare

Unitate de Memorie
Central (CMU)

Port paralel
de interfa
cu microprocesor

DFM
Ieire

Porturi
seriale
de
ieire

Port de acces
pentru sisteme
de dezvoltare
SPROCLab

Fig. 3.8 Arhitectura procesorului de semnal SPROC 1000, cu unitate de


memorie cental.

Nucleul central al acestei arhitecturi este reprezentat de memoria de date


partajat, de tip multiport, denumit CMU (Central Memory Unit - unitate de
memorie central).
Un numr de patru procesoare generale de semnal, GSP (General Signal
Processor - procesor general de semnal), implementate pe chip, realizeaz
calculele i asigur procesarea paralel.
Controloarele de fluxuri de date de intrare-ieire, DFM (Data Flow
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

79

TIPURI DE SISTEME DE ACHIZIII DE DATE

Manager - controlor al fluxului de date), coordoneaz fluxurile concurente de


date, semnalele de interfa pentru canalele seriale i activeaz interfaarea cu un
procesor extern.
Arhitectura CMU reprezint o extensie de la abordarea monoprocesor la
procesarea concurent (multiprocesor). n locul multiplexrii temporale, prin
ntreruperi, a unitii de procesare, arhitectura CMU folosete mai multe
procesoare i multiplexarea temporal a accesului acestora la memorie.
Accesarea multipl a memoriei nu mai este gestionat prin ntreruperi:
CMU este un spaiu de memorie de date de tip multiport, ce utilizeaz o secven
compus de perioade de acces la memorie, alocate fiecrui GSP sau ciclu de
intrare-ieire. Secvena de baz reprezint un ciclu main al procesorului
SPROC, respectiv cinci perioade de ceas. Perioadele 14 sunt destinate
procesoarelor generale de semnal, GSP, n vederea accesului la memorie, ntr-un
mod secvenial bine determinat, iar cel de-al cincilea interval de timp este utilizat,
prin subdivizare n 8 subintervale, pentru operaii de intrare-ieire paralele sau alte
operaii de intrare-ieire.
Procesoarele GSP lucreaz pe 24 de bii, n virgul fix i pot fi folosite fie
individual, fie n grup, n funcie de cerinele aplicaiei.
Magistral Adrese/Date
ROM
Control

Semnale de
comunicaie
port paralel

GSP1

GSP2

GSP3

RAM
Program
1k x 24b
Port
paralel

RAM
Date
1k x 24b

GSP4

Port de
acces

Semnale de
comunicaie
port de acces

Port
test

Semnale de
comunicaie
port de test

Semnale de
comunicaie
port 1

Port 1
Intrare
serial

Port 3
Ieire
serial

Semnale de
comunicaie
port 3

Semnale de
comunicaie
port 2

Port 2
Intrare
serial

Port 4
Ieire
serial

Semnale de
comunicaie
port 4

Semnale
selecie

Logic
selecie
ceas

Adrese/Date

Semnale de inializare i comand

Fig. 3.9 Structura detaliat a procesorului de semnal SPROC-1400.

80

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Controloarele de fluxuri de date gestioneaz introducerea/extragerea


datelor n/din unitatea central de memorie, fr s afecteze performanele
procesoarelor GSP. Controloarele DFM comunic cu celelalte resurse interne pe
o magistral de 24 de bii, iar cu resursele externe prin intermediul porturilor
seriale programabile.
Schema bloc a procesorului de semnal SPROC-1400 este prezentat n fig.
3.9.

3.5.2.2 PORTUL SERIAL SINCRON AL FAMILIEI DSP


TMS320C2XX
Familia de procesoare DSP TMS320C2xx dispune de un port serial
sincron full-duplex, cu faciliti de transmisie de cadre de date, suportnd rate de
transfer de pn la 20 Mbps (pentru durata unui ciclu instruciune de 25 ns).
Rata de transfer este jumtate din frecvena ceasului dispozitivului. Acest port
serial sincron bidirecional asigur comunicaia direct cu dispozitive seriale,
cum ar fi: CODEC-uri, convertoare analog-digitale seriale i alte echipamente
seriale. Portul serial poate fi utilizat pentru comunicaia ntre procesoare n cazul
sistemelor multiprocesor. Att seciunea de transmisie, ct i cea de recepie, a
portului serial dispun de un buffer sau memorie FIFO organizate pe 4 nivele de
adncime, permind unitii centrale de prelucrare s accepte ntreruperi de la
oricare din aceste nivele. Aceast facilitate nseamn intervenia mai redus a
unitii centrale de prelucrare, ca i creterea flexibilitii i eficienei
transmisiilor de date.
Portul serial sincron al familiei TMS320C2xx are urmtoarele
caracteristici:
port serial sincron full-duplex, cu faciliti de transmisie de cadre de
date;
buffer cu capacitatea de 4 cuvinte x 16 bii, pentru reducerea overheadului rutinelor de tratare a ntreruperilor;
port serial flexibil, eficient i de nalt performan;
asigur rate de transfer de 20 Mbps, pentru durata unui ciclu
instruciune de 25 ns;
asigur rate de transfer de 14,28 Mbps, pentru durata unui ciclu
instruciune de 35 ns;
asigur rate de transfer de 10 Mbps, pentru durata unui ciclu
instruciune de 50 ns;
rata de transfer este jumtate din frecvena ceasului unitii centrale de
prelucrare.
Toate dispozitivele din familia TMS320C2xx, cu excepia circuitului
TMS329C209, dispun de acest tip de port serial sincron. Fig. 3.10 ilustreaz
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

81

TIPURI DE SISTEME DE ACHIZIII DE DATE

organizarea portului serial sincron al procesoarelor DSP TMS320C2xx.

Fig. 3.10 Portul serial sincron al familiei de procesoare TMS320C2xx.

3.5.2.3 PORTUL SERIAL ASINCRON AL FAMILIEI DSP


TMS320C2XX
Familia de procesoare de semnal TMS320C2xx dispune de un port serial
asincron, full-duplex i dublu buffer-at. Acesta manipuleaz cuvinte de date cu
lungimea de 8 bii i poate fi programat prin intermediul unui registru s accepte
rate de comunicaie de pn la 2,5 Mbps. Portul serial asincron poate fi utilizat
pentru comunicaia cu alte dispozitive, cum ar fi microcontroller-e, prin
conectare de tip RS-232 care suport rate de transfer de date de pn la 115,2
kbps.
Caracteristicile portului serial asincron al familiei de procesoare DSP
TMS320C2xx sunt:
port serial asincron full-duplex;
portul serial dispune de o dubl buffer-are;
portul serial permite transferuri de date de 8 bii;
programarea ratei de transfer prin intermediul unui registru de 16 bii;
portul serial asigur rate de transfer de 2,5 Mbps, pentru durata unui
82

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ciclu instruciune de 25 ns.


Toate dispozitivele din familia TMS320C2xx, cu excepia circuitului
TMS329C209, dispun de acest tip de port serial asincron.
Fig. 3.11 ilustreaz organizarea portului serial asincron al procesoarelor
DSP TMS320C2xx.

Fig. 3.11 Portul serial asincron al familiei de procesoare TMS320C2xx.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

83

TIPURI DE SISTEME DE ACHIZIII DE DATE

84

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

4. CONSIDERAII GENERALE ASUPRA


INSTRUMENTAIEI VIRTUALE
4.1 INSTRUMENTE VIRTUALE
Se manifest, n ultima perioad, o tendin de cretere a flexibilitii
instrumentaiei, concretizat n obinerea unor arhitecturi deschise care permit
dezvoltrile necesare unui domeniu larg de aplicaii. Acest lucru se manifest
att la nivelul hardware-ului, ct i la nivelul software-ului, fiind susinute i de
avantaje economice (cost, rapiditate, uurin n utilizare).
Instrumentele de msurare inteligente reprezint entiti independente,
funcionnd separat de un sistem de calcul, capabile s comunice un set redus de
parametri i s execute o serie de comenzi. Toate echipamentele de msurare
dezvoltate n ultimii ani conin interfee prin intermediul crora se transmit
datele achiziionate, precum i comenzi unor relee cu care sunt echipate.
Indiferent de tipul de mrime msurat, instrumentele inteligente sunt
echipate cu relee care comand direct echipamente externe, n funcie de valorile
parametrului msurat. Dup gradul de complexitate, pot fi nsoite de un pachet
software aferent, executabil pe un sistem de calcul compatibil IBM-PC, pentru a
putea executa citirile i comenzile la distan. Foarte multe asemenea sisteme
dispun de mijloace de memorare extern, care stocheaz variaia n timp a
parametrului msurat sau valorile instantanee, la anumite intervale de timp.
Astfel, conceptul de aparat de msur autonom este treptat nlocuit de un
ansamblu modular, evolutiv, uor adaptabil. Se asist, n cadrul instrumentaiei,
la o trecere de la funcionalitatea definit de constructor (constnd ntr-o
multitudine de aparate ce pot fi asamblate ntr-un sistem de msur) la
funcionalitatea definit de utilizator (constnd din sisteme programabile, asiuri
coninnd module ce permit dezvoltarea i implementarea a unui numr cu
adevrat impresionant de aplicaii).
Trebuie menionat n acest cadru rolul determinant al calculatoarelor, care
prin puterea de calcul i mijloacele eficiente de afiare, au accelerat evoluia
instrumentaiei. Dac analizm structura unui lan de msurare, se poate observa
faptul c un sistem de calcul poate spori funcionalitatea instrumentelor prin
interaciunea sa asupra celor trei componente de baz:
achiziia datelor;
analiza datelor;
prezentarea rezultatelor.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

85

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

ACHIZIIE
I CONTROL

SEMNALE

ANALIZA
DATELOR

PREZENTAREA
REZULTATELOR

Fig. 4.1 Componentele procesului de msurare.

n cadrul software-ului utilizat sunt nglobate biblioteci care servesc la


programarea achiziiei (module instrument), la prelucrarea datelor (module de
analiz armonic de semnal, module de funcii statistice), la afiarea rezultatelor,
conducnd astfel la crearea de instrumente virtuale.
Reea
Calculator
3

Calculator
2

Calculator
1

Software

VXI/VME

GPIB

Plci de
achiziie

Interfee
seriale

Condiionare
de semnale

Stimuli
Control
Tensiune
Curent

Unitate de testat/Proces de msurat

Temperatur
Presiune
Debit
Tensiune
Curent

Fig. 4.2 Configuraia instrumentaiei virtuale.

Un instrument virtual cuprinde, n principiu, urmtoarele elemente:


unul sau mai multe sisteme de calcul;
interfee de reea;
software;
dispozitive de intrare-ieire (GPIB, VXI, plci de achiziie);
instrumente de msur clasice, interfaabile;
procesul controlat sau unitatea de testat,
fiind o combinaie a instrumentelor programabile cu calculatoarele.
Calculatorul, prin versatilitatea pe care o prezint, poate spori
posibilitile limitate (fixe) ale instrumentelor tradiionale.
Prin interconectarea n diverse combinaii i programarea sistemelor de
achiziie de date, a instrumentelor de msur de care se dispune, folosind
86

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

aplicaii software specifice, exist posibilitatea de a creea propriile sisteme de


instrumentaie, denumite sisteme de instrumentaie virtual.
Datorit abilitii de a construi sisteme de instrumentaie chiar de ctre
utilizator se ctig timp, se economisesc bani i se poate interveni rapid n
cadrul sistemului de msurare sau de control.
Principalele caracteristici ale instrumentaiei virtuale - modularitatea i
ierarhia - att la nivel hardware, ct i software, i confer acesteia caracterul de
flexibilitate i deschidere ctre noi domenii de aplicaie.
Din punct de vedere al domeniului de utilizare, sistemele de
instrumentaie virtual pot fi clasificate n:
sisteme pentru testare i msurri;
sisteme de control automat al proceselor;
sisteme pentru efectuarea de cercetri tiinifice.
Trebuie s remarcm aici faptul c instrumentaia virtual are
aplicabilitate n aproape toate compartimentele funcionale din cadrul unei
organizaii, i anume: cercetare-dezvoltare, proiectare, producie, calibrare,
controlul i asigurarea calitii, testare in situ, service.
Din punct de vedere al modului n care poate funciona un instrument
virtual putem meniona:
modul de lucru live, n care se configureaz fizic echipamentul de
msurare, cuplat la sistemul de calcul i care achiziioneaz date din
procesul studiat, urmat de procesul de analiz, interpretare i afiare a
rezultatelor;
modul de lucru not live (simulare), n care se poate doar simula
funcionarea echipamentului de msurare asupra eantioanelor unor
semnale generate prin mijloace software.
n cele ce urmeaz vom prezenta pe scurt componentele unui instrument
virtual, mai exact interfaa calculator-proces de msur sau control, precum i
software-ul ce permite crearea instrumentelor virtuale.
n fig. 4.3 se prezint un model schematic al unei prelucrri digitale
generice de semnal. Se observ c semnalul de intrare este sub form analogic,
convertit apoi n valori numerice prin intermediul unui convertor analog-digital.
Unitatea central (calculatorul) prelucreaz aceste reprezentri numerice,
urmnd ca rezultatul s fie reconvertit n semnal analogic (prin intermediul unui
convertor digital-analogic). Ct timp informaia se gsete, nc, sub form
numeric, pot avea loc mai multe tipuri de operaii asupra acesteia: analiz,
memorare, afiare, transmisie etc.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

87

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Semnal

Filtrare

Conversie
analogdigital

FTJ

CA/D

Unitatea de calcul

Conversie
digitalanalogic Filtrare
CD/A

Circuit de
amplificare

FTJ

Analog

Analog

Semnal

Numeric

Fig. 4.3 Exemplu de sistem de prelucrare numeric a semnalelor.


Circuitele de intrare

Elementul de intrare al oricrei aplicaii de procesare de semnal


(analogic sau digital) l reprezint traductorul (senzorul) specific mrimii de
intrare, cu rolul de a converti mrimea de intrare ntr-un semnal de natur
electric. Pentru aplicaiile practice, senzorii de intrare pot fi de tipuri foarte
diverse: microfon, n cazul semnalelor audio, traductoare de vibraii n
seismologie, antene n aplicaii radar, senzori cu infrarou n teledetecie,
transfomatoare de msurare n staiile electrice, etc.
Circuitele de condiionare a semnalului

Scopul utilizrii acestor module este acela de a converti valorile mrimii


de ieire a senzorului n valori compatibile cu domeniul de variaie acceptat de
convertorul analog-digital (de obicei 0-5V, sau 0-10V pentru convertoare setate
pe mod unipolar). Circuitele de condiionare protejeaz, de asemenea, etajele
superioare de prelucrare, uneori i prin separare galvanic, mpotriva
supratensiunilor accidentale. Modul de realizare al condiionerelor de semnal
este bazat pe utilizarea circuitelor cu amplificatoare operaionale i/sau de
instrumentaie.
Filtrele anti-aliasing

Filtrele anti-alias (aliasing: replierea spectrelor) sunt filtre trece-jos care,


n principiu, limiteaz superior viteza de variaie n timp a semnalului analogic
aplicat la intrarea sistemului. Funcia acestor filtre este critic, ea determinnd
direct modul n care restul sistemului este capabil s urmreasc variaiile de
interes ale semnalului.
Convertoarele analog-digitale

Dup cum sugereaz i numele, convertoarele analog-digitale (analog-todigital converter, ADC) furnizeaz o reprezentare numeric (binar) a
88

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

semnalului analogic aplicat la intrarea lor. Dou dintre cele mai importante
caracteristici ale unui ADC sunt rata de conversie i rezoluia. Rata de conversie
(uneori definit i prin inversul su, timpul de conversie) exprim ct de repede
se efectueaz operaia de conversie. Rezoluia exprim gradul de apropiere ntre
valoarea numeric obinut la ieirea convertorului i valoarea real
corespunztoare semnalului analogic aplicat la intrare.
Procesorul

Procesorul efectueaz operaiile matematice necesare procesrii


semnalului o dat convertit n form numeric. De exemplu, n cazul n care
aplicaia este un amplificator, atunci procesarea digital const n nmulirea
valorii corespunztoare intrrii cu constanta de amplificare.
n primele aplicaii de procesare numeric, procesorul numeric era
constituit adesea dintr-un calculator de uz general dar, pe msur ce domeniul sa dezvoltat, au fost proiectate i utilizate o gam larg de procesoare dedicate, de
mare vitez, capabile s prelucreze un numr imens de date. Astzi sunt
utilizate, n principal, procesoarele de semnal care reprezint, de fapt, o
combinaie de hardware de vitez mare, arhitectur specializat i un set de
instruciuni dedicate procesrii de semnale permind implementarea eficient a
algoritmilor specifici.
Memorarea i transmiterea datelor

n memoria program se stocheaz instruciunile prin care se


implementeaz algoritmii DSP. Dac ntr-un calculator cu arhitectur von
Neumann, datele i instruciunile sunt memorate ntr-un acelai bloc, n cele mai
multe sisteme dedicate DSP, instruciunile sunt memorate separat de date,
asigurndu-se astfel o procesare mult mai rapid a instruciunilor. Datele pot fi
transferate pe magistrala proprie simultan cu executarea instruciunilor din
program. De multe ori cele dou magistrale - de date i de instruciuni - au
dimensiuni (numr de linii de acces) diferite. Aceast arhitectur a fost
dezvoltat pe baza cercetrilor efectuate iniial la Universitatea Harvard i, de
aceea, este denumit ca fiind arhitectur Harvard.
Datele prelucrate de un sistem DSP sunt adesea destinate unor prelucrri
ulterioare, n cadrul aceluiai sau al altui sistem. Ele pot fi memorate pe band
magnetic, discuri optice (CD) sau alt suport.
Interfaa cu utilizatorul

Nu toate sistemele DSP necesit dispozitive de afiare sau introducere a


datelor de ctre utilizator, cu ajutorul unui keypad (tastatur) specializat, a unor
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

89

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

comutatoare discrete sau chiar a unei tastaturi clasice. Cu toate acestea, adeseori
este foarte comod reprezentarea grafic a semnalelor prelucrate.
Convertoarele digital-analogice

Multe dintre sistemele DSP impun o etap de re-conversie a semnalului n


form analogic, aceast funcie fiind ndeplinit de convertoarele digitalanalogice (digital-to-analog converter). Una dintre caracteristicile eseniale ale
convertorului digital-analog este viteza (slew rate) cu care se obine tensiunea la
ieirea acestuia, dup setarea valorii numerice dorite la intrarea convertorului.
Acest parametru trebuie s corespund ratei de conversie analog-digital a
ntregului sistem DSP.
Filtre de netezire i amplificatoare de ieire

Scopul filtrelor de netezire este acela de a micora discontinuitile n


forma (de tipul scar) semnalului de la ieirea convertorului digital-analogic.
Uzual, un astfel de filtru are o caracteristic trece-jos implementat cu un circuit
RC simplu.
Amplificatorul de ieire este, n general, de tip clasic, prevzut n scopul
de a adapta impedana mare a convertorului digital-analog la impedana de
intrare mic a traductorului de ieire (difuzor, anten, motor electric etc.)
precum i pentru a regla puterea la nivelul cerut.
n funcie de specificul aplicaiei, unele module din sistemul prezentat
mai sus pot lipsi. De exemplu, ntr-o aplicaie de telegestiune a consumului
energetic, convertorul D/A nu se mai regsete. Important este, ns, faptul c
modelul prezentat anterior este valabil pentru orice tip de aplicaie din gama
procesrilor numerice de semnal.

4.2 INTERFAA CALCULATOR - PROCES DE MSURARE


SAU CONTROL
Dup cum se sugereaz i n cadrul fig. 4.2, exist urmtoarele tipuri de
magistrale de proces pentru interconectarea instrumentelor programabile cu un
sistem de calcul:
GPIB (General Purpose Interface Bus - magistral de interfaare de
scop general) este specializat pentru comunicaie cu instrumente
programabile. Este disponibil pentru platforme diverse (PC, IBM,
MacIntosh, etc.) i ofer o rat de transfer de 1 Mbyte/secund.
Protocolul de comunicaie este specificat de standardul industrial
90

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

IEEE-488 (protocol pe 8 bii, comenzi tip ASCII, maximum 14


instrumente aflate la cel mult 20m). O dezvoltare ulterioar, HS-488, a
crescut rata de transfer la 8 Mbytes/secund;
RS-232, RS-422, RS-485 sunt utilizate n special la sisteme personale
de calcul. Sunt destinate comunicaiilor seriale sincrone / asincrone
ntre instrumente, oferind o imunitate ridicat la zgomotul din mediul
industrial. Dezavantajul major este rata de transfer redus (sute de
kbits/secund). Protocolul de comunicare poate fi ASCII sau un
protocol special al instrumentelor ce se interconecteaz. Ceea ce le
difereniaz este distana de interconexiune (de la 15m la RS-232, la
1200m la RS-485), care este mrit prin amplificri suplimentare pe
intrri/ieiri. Interfaa RS-485 permite legturi multi-punct (daisychain), deci economii importante de cablu;
SCXI (Signal Conditioning eXtensions for Instruments): aceste
module, montate sub form de rack (dulap cu sertare de conexiuni
modulare), sunt utilizate la condiionarea semnalului. La intrare, se
admit semnale provenite de la traductoare, cum ar fi: termocupluri,
termistoare, mrci tensometrice etc, iar la ieire se obin semnale
analogice (cureni sau tensiuni) sau semnale numerice. Se utilizeaz
module de filtrare, liniarizare, izolare galvanic, ieiri de putere, etc.;
VXI (VME eXtension for Instrumentation, unde VME reprezint
VESA Module Eurocard) reprezint un standard de instrumentaie ale
crui baze au fost puse nc din 1987 i are ca obiectiv creterea
interoperabilitii diverselor instrumente. Structura sa modular
permite o integrare att din punct de vedere electronic, ct i mecanic,
conferindu-i denumirea de standard pentru instrument pe cartel.
Specificaiile VXI grupeaz norma IEEE-488 i norma VME, prima
remarcndu-se prin compatibilitatea ntre constructori diferii, iar cea
de-a doua prin rapiditate.
Sistemele de instrumentaie VXI s-au impus n ultima perioad, deoarece:
prezint mare suplee, mai multe nivele de inteligen i permit o
sincronizare i o asociere optimal i performant;
au dimensiuni mici, sunt rapide, putnd fi realizate i n variante
portabile;
sunt caracterizate de o arhitectur deschis la nivel hardware
(magistral VME de 32 bii i software unificat VXI Plug & Play recunoaterea tipului de cartel se face automat de ctre mediul
software, la fel iniializarea i parametrizarea circuitelor de pe cartel),
permind utilizarea de module provenite de la diveri productori,
fr a exista probleme la nivel electric sau mecanic. Compatibilitatea
electromagnetic ntre module, compatibilitatea mecanic i termic
permit interoperabilitatea ntre diferite produse hardware;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

91

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

permit att transmisia serial a datelor (transmisie lent, dar cu un


nivel de prelucrare i de inteligen ridicat), ct i transmisia lor
paralel (vitez mare de transmisie);
utilizeaz un controller extern sau intern. n primul caz, calculatorul
comunic cu o interfa de tip GPIB-VXI sau cu o magistral de mare
vitez VXI-MXI (Multisystem EXtension Interface Bus). n cel de-al
doilea caz, exist un controller integrat n strucutura VXI care
coordoneaz direct resursele acesteia, permind aplicaii multiple i
rapide, cum ar fi controlul n timp real al unor procese;
permite controlul interactiv, pe timpul programrii, utiliznd, de
exemplu, programul VIC (VXI Interactiv Control).
Putem concluziona c sistemele VXI prin modularitatea, flexibilitatea,
interoperabilitatea i interconectarea facil la un sistem de calcul pe care le
prezint, acoper un domeniu larg de aplicaii, mergnd de la teste i msurri
pn la achiziia de date de nalt performan i automatizri industriale.

4.3 SOFTWARE PENTRU INSTRUMENTAIE VIRTUAL


Instrumentaia virtual este centrat pe software. Dintre aplicaiile
software special proiectate n vederea muncii de programare a utilizatorului
trebuie remarcat LabVIEW (Laboratory Virtual Instrument Engineering
Workbench). Abordarea se face printr-un concept revoluionar denumit
programare vizual. LabVIEW este un mediu de programare bazat pe limbajul
grafic G i utilizat pentru achiziia i controlul datelor, analiza acestora i
prezentarea rezultatelor. n cadrul abordrilor software tradiionale, dup
specificarea schemei unei aplicaii urmeaz convertirea ei n codul propriu
limbajului de programare. n mediul de programare LabVIEW se construiesc
instrumente virtuale (se asambleaz i se interconecteaz diferitele simboluri
grafice, denumite icons pentru realizarea proiectului) n loc de a se scrie
programe, deoarece schema bloc a instrumenului creat conine chiar codul surs
al aplicaiei.
Acest mediu de programare, dezvoltat ncepnd cu 1980 i perfecionat n
mod continuu, are ca principal obiectiv crearea posibilitii oamenilor de tiin
i inginerilor de a-i dezvolta rapid propriile sisteme de instrumentaie virtual,
corespunztor necesitilor specifice, fr a fi necesar cunoaterea sintaxei
limbajului grafic de programare.
Un instrument virtual creat n mediul de programare LabVIEW este
compus din:
panoul frontal, reprezentnd interfaa grafic cu utilizatorul;
diagrama bloc, reprezentnd codul surs al instrumentului virtual sau
al aplicaiei;
92

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

simbolul grafic / conectorul, reprezentnd interfaa de apel.


Panoul frontal este o interfa interactiv pentru a controla intrrile i a
observa ieirile. Fiind mijlocul prin care utilizatorul descrie secvena de
msurare de interes, el mai este denumit i interfaa grafic cu utilizatorul. Este
afiat pe ecranul calculatorului i are acelai rol cu panoul frontal al unui
instrument fizic, coninnd att elemente de comand (butoane, comutatoare,
poteniometre), ct i elemente indicatoare i de vizualizare (afiaje, ecrane).
Primele elemente simuleaz dispozitivele de intrare ale instrumentului, iar cele
din urm dispozitivele de ieire, ce afieaz datele achiziionate sau generate de
ctre diagrama bloc a instrumentului virtual.
Crearea panoului frontal poate fi fcut naintea realizrii diagramei bloc.
Elaborarea i editarea lui se face n cadrul modului de lucru Edit (cellalt mod
de lucru, Run, fiind utilizat pentru funcionarea instrumentului virtual), prin
selectarea i poziionarea obiectelor necesare alese dintre simbolurile grafice ale
instrumentelor disponibile (tools palette, controls palette).
Cnd instrumentul virtual este complet implementat i devine funcional,
panoul frontal este utilizat pentru controlul sistemului de msurare prin
acionarea unor comutatoare, micarea unui cursor, selectarea unei opiuni, etc.
Elementele indicatoare de pe panoul frontal al instrumentului virtual
rspund imediat la aceste modificri, datorit rspunsului n timp real al
sistemului.
Diagrama bloc reprezint codul surs al instrumentului virtual i conine:
funcii de calcul aritmetice i logice;
funcii de analiz complex (achiziii complexe i instrumente de
analiz);
funcii de intrare-ieire care permit comunicaia cu sistemele de
achiziii GPIB, VXI, instrumente reale externe.
Construirea diagramei bloc se face prin selectarea blocurilor funcionale
din meniul (lista de comenzi) Functions, poziionarea lor i interconectarea
terminalelor acestora prin linii ce dirijeaz fluxul informaional de la un bloc la
altul.
Toate elementele de comand i elementele indicatoare ce au fost
poziionate pe panoul frontal al intrumentului apar i n diagrama bloc, de
aceast dat cu propriile simboluri grafice i terminale pentru a fi interconectate.
Tipul de date care este vehiculat determin tipul conexiunii ntre dou
blocuri. De exemplu, grosimea liniilor indic dac este vorba de o mrime de tip
scalar (o singur dat) sau vectorial (reea de date), iar culoarea poate indica
dac este vorba de valori numerice, booleene, de tip text, grafice, etc.
Odat realizate panoul frontal i diagrama bloc, instrumentul virtual
devine operaional (modul de lucru Run).
Instrumentul virtual nou creat poate fi salvat i i se poate atribui un simbol
grafic i o reea de interconectare pentru a putea fi utilizat n cadrul unei aplicaii
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

93

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

sau n cadrul diagramei bloc a unui instrument virtual mai complex.


Structura modular constituie unul dintre marile avantaje ale
instrumentaiei virtuale, deoarece d posibilitatea ierarhizrii pe grade de
complexitate. Prin ierarhizare modular se pot proiecta, modifica, interschimba
i combina instrumente pentru a rspunde specificaiilor a ct mai multe
aplicaii.
De asemenea, pot fi efectuate att simulri, ct i teste sau achiziii reale
de date, avnd posibilitatea efecturii facile de modificri la orice nivel.
Construcia modular, ierarhic i dinamic, att la nivel hardware ct i
la nivel software, confer instrumentaiei virtuale flexibilitate, orientare ctre
necesitile utilizatorului, care o poate adapta conform propriilor aplicaii i
putnd s o dezvolte ntr-un mod simplu, eficient i rapid.

4.3.1 ALEGEREA PLATFORMEI SOFTWARE: UNIX SAU


WINDOWS?
Una din problemele cu care se confrunt utilizatorii de sisteme de
achiziie de date i control al proceselor o constituie sistemul de operare sub care
va funciona ansamblul dispozitivelor automate. Utilizatorul este pus, de cele de
multe ori, s aleag ntre sistemele realizate sub Unix i cele realizate sub
Windows NT. Unix este un sistem stabil i economic, care a ctigat ncrederea
utilizatorilor, astfel c n prezent este greu de rspuns la ntrebarea dac sau cnd
Windows NT va fi preferat sistemului Unix. Muli proiectani (Industrietechnik
AG, ABB) ofer produse similare capabile s funcioneze sub ambele sisteme de
operare, chiar i atunci cnd platforma sistem este pe un loc secundar ca
relevan. Cu toate acestea, muli utilizatori rmn foarte ataai de lumea stabil
(i verificat n ultimii ani) a sistemului Unix, cu toate c sunt convini de
funcionalitatea aplicaiilor sub Windows i de faptul c platformele NT sunt
mai ieftine (instalate pe att de rspnditul PC) dect cele Unix (care lucreaz
aproape n exclusivitate pe Workstations).
Domeniile n care aplicaiile dezvoltate sub Windows NT sunt neafectate
de eventualele puncte critice ale sistemului de operare rmn cele aferente
managementului informaiilor.
n ceea ce privete cel mai critic punct al aplicaiilor industriale, cel al
operrii n timp real, cartelele PC cu procesoare specializate garanteaz
capacitatea de prelucrare n timp real, dar numai att timp ct s-au introdus
module speciale de comunicaie ntre controller (sau PC) i sistemul
supravegheat. Aceste module garanteaz pn i aa-numita funcionare dificil
n timp real, soluia adoptat de ABB, spre exemplu, fiind aceea de a aplica
fiecrei informaii primite de controller o aa-numit tampil temporal
(Zeitstempel ) care va fi memorat i transmis componentelor utilizator.
94

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Prelucrarea propriu-zis a datelor nu se va face n condiiile dificile de timp real


ci ulterior, sincronizarea i evaluarea evenimentelor facndu-se prin apelarea
momentelor de timp marcate.
La ora actual (2001) se depun eforturi pentru realizarea de sisteme de
conducere a proceselor industriale cu sisteme de operare mixte (NT i Unix). De
fapt, se ofer soluiile disponibile n prezent numai sub Unix i utilizatorilor de
NT dup o prealabil asigurare mpotriva riscurilor (n principal, bug-uri proprii
sistemului Windows) de ordin tehnic. De asemenea, se pot integra soluii NT n
lumea tehnic Unix. Scopul proiectrii noilor oferte din acest domeniu (prin
folosirea tehnicilor object-oriented de manipulare a datelor) este, ns, acela al
independenei totale a aplicaiilor fa de platforma sistem a utilizatorului.

4.4 PAR
TICULARITI ALE INTRUMENTAIEI VIRTUALE
RT
Implementarea unui instrument software de analiz a semnalelor electrice
presupune utilizarea unui calculator - drept nucleu hardware de comand - i a
unui sistem de achiziii de date, putnd fi realizat n mai multe moduri, funcie
de sistemul de operare utilizat n cadrul sistemului de calcul.
Suportul hardware este format dintr-un lan complex de msurare,
compus din: senzor, dispozitivul de condiionare a semnalului, placa de achiziii
de date i sistemul de calcul aferent.
Ceea ce difereniaz aceste instrumente este prezena software-ului, un
mediu de programare mobil, capabil s proiecteze pe monitorul unui calculator
orice parametru msurat, orice grafic preluat, orice reglaj, buton, etc.,
transformnd practic calculatorul gazd al aplicaiei, ntr-un instrument de
msurare.
Utilizarea sistemului de operare tradiional MS DOS - MicroSoft Disk
Operating System - permite folosirea unor limbaje de programare de nivel nalt,
ca de exemplu Borland Pascal, Microsoft C i C++. Un astfel de limbaj de
programare permite:
gestionarea procesului de achiziii de date prin intermediul unor rutine
de comand a resurselor hardware ale sistemului de achiziii. Aceste
rutine, denumite n mod uzual driver-e, sunt specifice unei anumite
configuraii de sistem de achiziii de date i nglobeaz adesea linii
surs de cod scris n limbaj de asamblare. Driver-ele sistemului de
achiziii de date sunt, de cele mai multe ori scrise de ctre productorul
sistemului hardware de achiziii de date, dar pot fi de asemenea scrise i
optimizate de ctre utilizator, dac acesta dispune de informaii
referitoare la adresele fizice de porturi de intrare-ieire utilizate de ctre
componentele programabile din sistem, la cuvintele de stare i de
comand asociate acestora, la secvenele de programare necesare pentru
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

95

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

manipularea resurselor;
calculul parametrilor caracteristici ai semnalelor electrice. Aceast
activitate presupune utilizarea unor funcii sau proceduri de analiz
spectral - transformat Fourier -, utilizarea unor rutine pentru aplicarea
unor ferestre de eantionare adecvate (dreptunghiular, Hanning,
Hamming, Bartlet, Blackman, etc.) asupra semnalelor originale pentru
evidenierea particularitilor acestora, utilizarea unor funcii i
proceduri de filtrare i interpolare numeric, etc. Toate aceste rutine pot
fi realizate n orice limbaj de programare de nivel nalt, cu eforturi de
programare comparabile din punct de vedere al complexitii;
reprezentarea, ntr-o form ct mai intuitiv i ct mai reprezentativ
(sub form grafic i/sau tabelar), a parametrilor de stare ai
semnalelor electrice analizate. Realizarea acestor activiti impune
utilizarea primitivelor grafice ale limbajelor de programare de nivel
nalt, astfel nct marea majoritate a programatorilor folosesc limbajele
C i C++, datorit utilizrii mai facile a primitivelor grafice ale
acestora.
Utilizarea sistemului de operare WINDOWS (cu variantele Windows
3.1, Windows 3.11 for Workgroups, Windows 95/98 sau Windows NT)
deschide noi posibiliti referitoare la implementarea unor astfel de instrumente
software de analiz a semnalelor electroenergetice. Aceste faciliti se refer la
urmtoarele aspecte:
modul de lucru n sistemul de operare Windows este de tip
multitasking (se pot executa simultan mai multe aplicaii, prin
partajarea activitii sistemului de calcul), spre deosebire de modul de
lucru n sistemul de operare DOS;
faciliti de lucru n background (ntr-o fereastr ascuns din fundal,
operarea fiind trasparent fa de utilizator), respectiv foreground (n
fereastra principal);
interfaa grafic a sistemului de operare Windows este mult mai
evoluat dect cea din sistemul de operare DOS, fiind, de asemenea,
mult mai prietenoas;
folosirea unor limbaje de programare de nivel nalt evoluate, orientate
pe obiecte, care uureaz foarte mult activitile de programare. Ca
exemple de astfel de limbaje de programare putem meniona: Microsoft
Visual Basic, Visual C++, Borland Delphi Client-Server sau Delphi
32, Borland Visual dBase, Microsoft Visual FOX Pro. Ultimele dou
aplicaii sunt orientate spre baze de date, fiind necesare n cazul n care
se dorete o analiz statistic a rezultatelor prelucrrilor;
mediul de operare Windows asigur faciliti de corelare i de transfer
de informaii ntre diverse aplicaii de tip Windows, lucru mult mai
dificil de realizat ntre aplicaii DOS.
96

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Numeroase firme productoare de sisteme de achiziii de date, cum ar fi:


Axon Instruments, Burr Brown, Philips, National Instruments, Tektronix, au
realizat astfel de instrumente software, denumite instrumente virtuale, care
modeleaz pe ecranul calculatorului panoul frontal al diferitelor echipamente de
msurare realizate i care, prin intermediul unor comenzi furnizate prin
intermediul tastaturii sau a mouse-ului, configureaz echipamentul fizic cuplat la
sistemul de calcul prin intermediul canalelor seriale de tip RS-232 sau RS-485,
prin intermediul magistralei sistemului (n cazul sistemelor de achiziii de date
de tip plug-in) sau prin intermediul unor magistrale dedicate, cum ar fi IEC625, GPIB, IEEE-488, VXIbus/ MXIbus, etc. Sunt disponibile instrumente
virtuale sub ambele sisteme de operare menionate anterior, DOS i Windows.
O problem incomplet soluionat, din motive economice i de copyright
(drepturi de distribuie), este aceea de compatibilitate, avnd un impact negativ
major n special n situaia n care suportul hardware dispune de o interfa
nestandard cu sistemul de calcul. Un mediu de programare pentru instrumentaia
virtual conine nglobate driver-ele destinate unui set bogat, dar nu exhaustiv,
de echipamente de msurare. Cu alte cuvinte, utilizatorul nu are acces nemijlocit
la driver-ele sistemului de msurare i, deci, la resursele sistemului de achiziii
de date. Aceast problem poate fi soluionat foarte simplu, n mediul de
operare Windows, prin rularea n background a driver-elor echipamentului de
msurare, cu condiia ca acestea s fie direct disponibile. Compatibilizarea poate
fi pe deplin realizat prin partajarea de ctre instrumentul virtual i de ctre
sistemul de achiziii de date a unor fiiere de comunicaie (de date), cu formate
standardizate. Aceste fiiere pot fi modificate (actualizate) doar de ctre
echipamentul de msurare i pot fi citite doar de ctre instrumentul virtual.

4.5 NOI INSTRUMENTE DAQ SPECIALIZATE EXTIND


N
OIUNEA DE INSTRUMENT VIRTUAL
NO
Utilizatorii de instrumentaie de azi au nevoie de instrumente ce sunt
performante i flexibile. Performana reflect funcionalitatea primar a
instrumentului, adic osciloscoapele i generatoarele de semnal lucreaz la
viteze din ce n ce mai mari, multimetrele digitale sunt i mai precise, etc.
Flexibilitatea instrumentului este dat de posibilitatea de a include n procesul de
msurare alte operaii cum ar fi analiza, automatizarea operaiilor, accesul la
bazele de date, transmisia datelor prin internet, etc. Instrumentul tradiional este
foarte bun n performan dar are probleme n a oferi flexibilitate deoarece nu se
poate compara cu un computer PC. Instrumentele virtuale construite n
interiorul computerelor PC ofer flexibilitate dar sunt mrginite n
funcionalitate de limitrile computerului n care sunt construite, adic limitrile
n tehnologia la zi a computerului, printre care se amintete viteza de transfer al
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

97

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

datelor din exterior n memoria RAM.


Ultimele mbuntiri din domeniul arhitecturii calculatoarelor PC sunt
bus-ul PCI, procesorul Pentium, sistemul de operare Windows NT i interfaa
ASIC MITE, elaborat de National Instruments pentru implementarea de
transferuri ultrarapide ntre placa de tip plug-in i memoria RAM. Aceasta a
permis implementarea de instrumente virtuale a cror performan egaleaz
performana instrumentelor tradiionale i care n plus ofer flexibilitatea pe care
acestea nu o pot oferi.
n oferta sa, National Instruments anun instrumentele specializate din
clasa DAQ Instruments, DACScope, DAQArb i DAQMeter, ce sunt compuse
din hardware plug-in (PCI, AT-bus sau PCMCIA) i aplicaie software cu
interfa grqfic gata facut. Aceste instrumente virtuale arat i funcioneaz
exact ca i instrumentul tradiional, au performana instrumentului tradiional i
are flexibilitatea unui calculator PC.
n continuare sunt prezentate evoluiile recente din domeniul arhitecturii
computerului PC ce influeneaz instrumentaia virtual de azi i trei noi
instrumente din clasa DAQ Instruments.

4.5.1 TRANSFERUL DE DATE N BUS-UL PCI


Plcile de tip plug-in realizate pentru bus de tip PCI sunt de dou tipuri:
1. initiator - bus master board
2. target - slave board
Plcile ce acioneaz ca bus-master transfer date ntre memoria FIFO
intern i memoria RAM mai rapid i mai eficient n comparaie cu plcile de tip
slave-boards.
Placa de tip slave efectueaz transferuri de date secveniale ntre FIFO i
RAM, adic placa slave ntrerupe unitatea CPU n mod repetat pentru a transfera
date ntre memoria de pe plac i memoria din computer. Cnd unitatea CPU
este liber, aceasta va efectua transferul de date i va executa celelalte operaii
cerute, cum ar fi analiza numeric, display, stocare, etc. Placa de tip bus-master
are capabilitatea de a face transferuri de date ntre FIFO i RAM fr intervenia
procesorului CPU, adic n timp ce datele sunt transferate, procesorul CPU
efectueaz alte operaii, cum ar fi analiza numeric, display, control, etc.
Folosirea plcii plug-in PCI de tip bus-master imbuntete eficiena utilizrii
procesorului CPU cu un factor de 10:1 fa de situaia n care placa PCI este de
tip slave.

98

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
Funcionare Slave (secvenial)
Afiare
Transfer
CPU
n RAM

Citire
CPU
din RAM

Stocare
Control

Funcionare Master (paralel)


Transfer
CPU
n RAM

Afiare
Citire
CPU
din RAM

Stocare
Control

Fig. 4.4 Plci de tip bus-master i de tip slave.

4.5.2 IMPLEMENTAREA DMA PE PLACA DE TIP PCI BUS


MASTER. CHIP-UL ASIC MITE.
Spre deosebire de bus-ul de tip ISA sau EISA, a crui arhitectur standard
include procesorul DMA controller 8237A, arhitectura standard a bus-ului de tip
PCI las implementarea de bus master DMA la latitudinea (capabilitatea)
vendorului de plci plug-in.
Majoritatea vendorilor de plci plug-in pentru platforma PCI vor
introduce plci (ieftine) de tip slave-board ce execut transferuri pe baz de
ntreruperi repetate ale co-procesorului. Exist la ora actual foarte.puine plci
plug-in pentru platforma PCI cu faciliti de bus-master, adic ce implementeaz
transferuri de tip DMA ntre memoria FIFO a plcii i memoria RAM. National
Instruments a devenit unul dintre productorii de custom ASIC pentru
implementarea DMA, prin introducerea chip-ului ASIC MITE ce
implementeaz transferuri DMA de tip scatter-gather. Acest chip a fost inventat
i realizat special pentru ca plcile plug-in n platforma PCI s poat beneficia
de viteza teoretic maxim a busului PCI ce este de 132Mbytes/sec. Chip-ul
MITE este un motor ce transfer date ntre memoria FIFO a plcii de achiziie i
memoria RAM, fr intervenia co-procesorului. Chip-ul MITE implementeaz
3 canale de DMA i buffer-e FIFO pentru minimizarea timpului necesar scrierii
i rescrierii de date ce are loc n timpul transferului. Chipul MITE
implementeaz transferuri de date de tip scatter-gather ce constitue o
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

99

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

imbuntire fa de tehnologia de transfer a chip-ului 8237A prin eliminarea


necesitii de reprogramare a procesorului DMA la fiecare sfrit de pagin.
RAM
D/A

Bloc de
memorie
virtual
contiguu

A/D

PCI Bus
Master

CPU
Timp de transfer

Idle

Idle

Idle

Idle

Fig. 4.5 Transfer scatter-gather (link-chaining).

Sistemele de operare cum este DOS-ul (Real-Time Operating Systems) au


capabilitatea de a aloca aplicaiei un bloc compact de memorie fizic. Aceasta
mrete viteza de transfer DMA prin faptul c paginile de memorie n care
datele sunt transferate sunt de lungime maxim (64k), deci numrul de
reprogramri ale procesorului DMA 8237A, n timpul transferului este minimal.
Dezavantajul pe care-l introduc aceste sisteme de operare este acela c memoria
ce poate fi alocat este limitat (640Kbytes n DOS). Sistemele de operare
evoluate, cum sunt Windows NT i Windows 95 folosesc memorie virtual, care
arat din punctul de vedere al aplicaiei ca memorie compact, dar este n
realitate o colecie de segmente mici de memorie fizic ce sunt rspndite peste
tot, adic au adrese de start i lungimi diferite. n timpul tranferului DMA,
procesorul 8237A trebuie reprogramat la nceputul fiecrui segment nou ce
primete date. Acest fapt ncetinete viteza de transfer. Chip-ul MITE
implementeaz modul de transfer scatter-gather sau link-chaining, ce aduce
urmtoarea mbuntire la tehnica de transfer: nainte de transfer, chip-ul MITE
este programat de ctre coprocesor cu adresele de nceput i mrimile mai
multor segmente de memorie fizic rezervate aplicaiei i care vor primi date.
Prin aceasta se elimin necesitatea de reprogramare repetat a procesorului
DMA n timpul transferului, ceea ce conduce la creterea vitezei de transfer.
100

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

4.5.3 WINDOWS NT 4.0 ADUCE MBUNTIRI


IMPORTANTE PENTRU UTILIZATORII DE
INSTRUMENTAIE VIRTUAL
Windows 95 i Windows NT 4.0 sunt similare prin faptul c introduc
urmtoarele mbuntiri fa de Windows 3.1:
capabilitatea de a rula aplicaii de 16 bii i 32 bii;
interfa grafic intuitiv;
preemptive multitasking (capabilitatea de a executa aplicaii diferite n
acelai timp si capabilitatea de a aloca fiecrei aplicaii ce ruleaz
segmente de memorie proprii, cderea unei aplicaii s nu infuleneze
pe celelalte ce ruleaz n acelai timp);
arhitectur open network;
Win32 API, OLE;
ISA Plug and Play.
Windows NT aduce, n plus fa de Windows 95, capabilitate
multiprocessor, protecie complet, stabilitate, robustee.
Windows 95
Aplicaii
WIN 32

Aplicaii
WIN 32

Aplicaii
WIN 16

Aplicaii
WIN 16
Windows 3.x

Aplicaii
WIN 16

Aplicaii
WIN 32

Aplicaii
WIN 16

Aplicaii
WIN 16

Resurse sistem
KERNEL, USER, GDI

Spaiu de memorie partajat


Aplicaii
WIN 16

Spaiu de memorie separat


Windows NT

Fig. 4.6 Resursele sistem n cadrul Windows.

Stabilitatea unui sistem de operare depinde de structura de memorie pe


care o folosete. Structurile de memorie din Windows sunt: User Memory i
Kernel Memory. Aplicaiile sunt plasate n User Memory, pe cnd driver-ele i
prile critice ale sistemului de operare sunt plasate n Kernel Memory.
Windows 3.x are o singur zon de adresare pentru toate aplicaiile de 16
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

101

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

bii care urmeaz a fi rulate. Dac mai multe aplicaii ruleaz n acelai timp i
una dintre ele cade, atunci ntregul sistem de operare cade (se blocheaz) i este
necesar reboot-area sistemului.
Windows 95 mbuntete considerabil aceast structur prin faptul c
fiecare aplicaie de 32 bii se execut n segmente de memorie separate. Asta
nseamn c aplicaiile de 32 bii ce ruleaz n acelai timp nu se influeneaz
reciproc, adic o aplicaie ce cade nu poate corupe spaiul de memorie al alteia
ce ruleaz n acelai timp. Windows 95 pstreaz structura de memorie comun
pentru aplicaiile de 16 bii.
Windows NT introduce cel mai robust sistem pentru c aplicaiile de 32
bii i cele de 16 bii opereaz n segmente separate de memorie i nu se pot
influena reciproc.

Dac se folosete Windows NT se face urmtorul compromis: se sacrific


viteza de execuie n operaiile de achiziie de tip single-point contra stabilitii
i securitii sistemului de operare. nc din perioada lui Windows 3.x s-a pus
problema mbuntirii stabilitii sistemului de operare. Muli utilizatori de
instrumentaie virtual implementeaz aplicaii critice ce nu pot cdea,
aplicaii industriale de control continuu al unui proces unde nu viteza este
important, ci sigurana i stabilitatea n execuie. Modelul de memorie
implementat de Windows NT protejeaz mpotriva accesului de memorie
interzis de ctre aplicaia utilizator, care este sursa principal de cdere a
sistemului de operare. Aplicaia utilizatorului este plasat n zona de memorie
User Mode (primii 0 - 2GB de memorie). Codul utilizatorului este validat de
ctre sistemul de operare, dup care este transmis zonei de memorie Kernel
Mode (2GB - 4GB) ce conine driver-ele ce acioneaz direct asupra hardwareului (cum este placa plug-in cu Ni-daq). Deci, aplicaia utilizator n Windows
NT, nu adreseaz direct hardware-ul i nu adreseaz direct kernel-ul. Aceasta
ntrzie execuia dar sporete securitatea.
Orice ncercare a unei aplicaii utilizator de a accesa direct Kernel-ul duce
la terminarea aplicaiei de ctre sistemul de operare, deci aplicaia utilizator n
Windows NT nu poate cauza cderea sistemului (visul utilizatorului din mediul
industrial).
Stabilitatea sistemului de operare era argumentul forte al utilizatorilor ce
vor s foloseasc sisteme de operare cum este DOS sau sisteme de operare
proprii n care nu exist suport la nivel de driver pentru aplicaie.

102

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

4.5.4 TERENUL ESTE PREGATTIT PENTRU NOILE


INSTRUMENTE DAQ
Dispunnd de un coprocesor rapid, bus-ul PCI cu transfer DMA rapid i
eficient, sistem de operare Windows 95 sau Windows NT ce ofer stabilitate,
drumul este deschis inovaiei de instrumente virtuale specializate. Care este
impedimentul de a construi un instrument virtual n aceast platform,
instrument ce arat exact ca i cel tradiional, are aceeai funcionalitate
(inclusiv viteza) i n plus beneficiaz de toate facilitile oferite de computerul
ce-l gzduiete?
National Instruments a elaborat primele instrumente DAQ specializate i
care vor face competiie direct instrumentelor tradiionale ale altor
productori. De aceast dat este vorba de competiie direct la nivel de acelai
instrument, funcie cu funcie, panou cu butoane, utilizare, etc.
Osciloscopul este unul dintre aparatele cele mai utilizate pentru
vizualizarea formei de variaie n timp a unor semnale sau a dependenei unui
semnal n funcie de alt semnal.
Semnalele ntlnite n practic acoper banda de frecven de la 0 Hz la
50 GHz; existnd, ns, att semnale periodice ct i semnale tranzitorii, acestea
din urm putnd s fie caracteristice unor fenomene cu viteze de variaie n timp
foarte diferite, se utilizeaz o mare varietate de osciloscoape generat de marea
diversitate a aplicaiilor practice.
Osciloscoapele se clasific n dou categorii mari, principial diferite:
analogice i numerice.
Osciloscoapele analogice sunt primele aprute. Ele pot fi clasificate, la
rndul lor, n osciloscoape de uz general, osciloscoape cu eantionare i
osciloscoape cu memorare pe tubul catodic.
Osciloscoapele analogice de uz general sunt destinate aplicaiilor cu
caracter general, i anume vizualizrii semnalelor periodice cu frecvena de
repetiie de maxim 500MHz.
Osciloscoapele analogice cu eantionare sunt adecvate vizualizrii
semnalelor periodice cu frecvena de repetiie de pn la 50 GHz.
Osciloscoapele analogice cu memorare pe tubul catodic sunt destinate
vizualizrii semnalelor tranzitorii (de la foarte lente pn la foarte rapide).
Osciloscoapele numerice se deosebesc de cele analogice prin aceea c
semnalele de vizualizat sunt mai nti eantionate, apoi convertite n form
numeric, memorate ntr-o memorie numeric, reconvertite n form analogic
i apoi redate pe ecranul tubului catodic.
Apariia i dezvoltarea acestui tip de osciloscoape au fost posibile datorit
progresului nregistrat n domeniile convertoarelor analog-digitale (CA/D) i al
tehnicii numerice.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

103

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Osciloscoapele numerice au banda de frecven comparabil cu cea a unui


osciloscop analogic de uz general dar ofer o serie de avantaje: precizie
superioar, posibiliti extinse de msurare i sincronizare, posibilitatea
prelucrrii numerice a eantioanelor memorate. Un astfel de osciloscop poate
ndeplini funciile mai multor aparate: voltmetru, numrtor/frecvenmetru,
analizor de spectru etc.
Baza de timp poate fi comandat de circuitul de sincronizare sau de
dispozitivul de comand. Acesta din urm este, de regul, realizat cu un
microprocesor care furnizeaz toate semnalele de comand necesare funcionrii
ntregii scheme. n plus, acesta faciliteaz msurarea diferiilor parametri ai
semnalului i permite prelucrarea numeric a eantioanelor sale.
O variant perfecionat utilizeaz ca baz de timp un convertor digitalanalogic (CD/A) comandat de microprocesor. La ieirea acestui CD/A se obine
o tensiune variabil n trepte egale.

4.5.4.1 TEHNICI DE EANTIONARE UTILIZATE N


OSCILOSCOAPELE NUMERICE
Osciloscoapele numerice sunt, toate, osciloscoape cu eantionare. Ca
urmare, la aceste osciloscoape nu mai exist, ca la osciloscoapele analogice de
uz general, o coresponden biunivoc ntre punctele imaginii de pe ecran i
curba semnalului din care acestea provin. Se poate utiliza una dintre urmtoarele
tehnici de eantionare: eantionarea secvenial, eantionarea aleatoare i
eantionarea n timp real.
Eantionarea secvenial poate fi utilizat numai n cazul semnalelor
periodice i const n prelevarea, n fiecare perioad a semnalului de vizualizat,
a unui singur eantion, ntrziat fa de un moment de referin t R de pe curba
semnalului, cu o ntrziere care crete de la o perioad la alta cu t . ntrzierea
t este numit pas de eantionare. Dei perioada de eantionare este T + t ,
perioada aparent de eantionare este t . Deoarece intervalul t poate fi fcut
foarte mic, rezult posibilitatea utilizrii osciloscopului pn la frecvene mult
superioare frecvenei de eantionare. Spre exemplu, dac se ia t = 0,01 T ,
frecvena de eantionare este de 100 ori mai mare dect frecvena semnalului.
Eantionarea secvenial reprezint o eantionare n timp echivalent
deoarece redarea semnalului se face la o alt scar a timpului dect achiziia.
Din aceeai categorie face parte i eantionarea aleatoare. Deosebirea fa de
eantionarea secvenial const n aceea c ntrzierea (fa de momentul de
referin t R ) cu care este prelevat eantionul se modific aleator de la o perioad
la alta, astfel nct punctele memorate apar ntr-o succesiune aleatoare pe curba
vizualizat a semnalului.
O alt tehnic utilizat n osciloscoapele numerice este eantionarea n
104

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

timp real, adecvat n cazul fenomenelor singulare i al semnalelor de frecven


relativ joas, situaii n care eantionarea n timp echivalent fie c nu este
aplicabil, fie c reclam un timp relativ mare pentru achiziia numrului
necesar de eantioane.
Comparnd cele trei tehnici de eantionare prezentate, se poate
concluziona faptul c eantionarea secvenial permite obinerea unei rezoluii
temporale foarte bune datorit faptului c pasul de eantionare poate fi fcut
extrem de mic. Ea nu este ns adecvat pentru vizualizarea fronturilor
cresctoare ale impulsurilor cu factor de umplere mic (informaia de pe front se
pierde). Eantionarea aleatoare este ideal pentru vizualizarea fronturilor
cresctoare ale impulsurilor datorit faptului c eantionarea apare aleator n
raport cu tactul osciloscopului. Eantionarea n timp real permite achiziia i
recontituirea i a fenomenelor singulare, cu condiia prelevrii unui numr
suficient de eantioane.

4.5.5 DAQSCOPE
Instrumentul National Instruments DAQScope este un osciloscop pentru
bus PCI, ISA i PCMCIA, cu viteza maxim de digitizare de 20 MHz, trigger
analogic i transfer DMA al datelor n timp real.
Acest instrument intr n competiie direct cu osciloscoapele tradiionale
realizate de ali vendori, dup cum urmeaz:

Canale
de
intrare
Frecvent
maxim de
eantionare
Frecven
maxim de
repetiie
Lungimea
nregistrrii
Rezoluia
(bii)
Banda
de
frecvene
Trigger

DAQScope
5102

CompuScope
CS220

THM565
TekMeter

Fluke
PM3335

HP 54603B

20MS/s

20MS/s

25MS/s

20MS/s

20MS/s

1GS/s

10GS/s

662kB

32kB

256kB

8kB

4kB

15MHz

20MHz

5MHz

60MHz

60MHz

analog i
digital

analog

analog

analog

analog

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

105

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Instrumentul DAQScope este realizat n trei variante, n funcie de bus-ul


calculatorului PC folosit: PCI-5102, AT-5102 i DAQCard-5102.
Instrumentul DAQCard-5102 este singurul osciloscop cu 2 canale pe
platform PCMCIA ce poate fi cumprat astzi. Cea mai mare diferen dintre
DAQScope i osciloscoapele tradiionale este memoria: 662Kbytes la
DAQScope comparat cu 2Kbytes la majoritatea instrumentelor tradiionale.
Osciloscoapele tradiionale pot pierde puncte n procese de achiziii rapide, de
tip continuu, la fiecare grup de 2048 de puncte culese. Nu este exculs ca
vendorii de osciloscoape s migreze spre oferta de instrumente plug-in din cauza
limitrii de memorie de care nu pot trece dac vor s fie competitivi la pre cu
instrumentul DAQScope.
Instrumentul DAQScope poate fi utilizat n mod standalone (de sine
stttor) folosind panel-ul din executabilul ce-l nsotete, sau poate fi programat
din LabVIEW, BridgeVIEW, LabWindows/CVI, VirtualBench sau Windows
3.x, 95 sau Windows NT.
Sunt prezentate n continuare specificaiile hardware complete ale
instrumentului DAQScope PCI-5102/AT-5102/DAQCard-5102.
Input Characteristics
Number of input channels
ADC resolution
Maximum sample rate
Maximum input range
Input signal ranges

Overvoltage protection
Onboard FIFO memory depth
Data transfers
Transfer Characteristics
Relative accuracy
Differential nonlinearity
No missing codes
Offset error after calibration
Gain error after calibration
Amplifier Characteristics
Input impedance
Dynamic Characteristics
Bandwidth
Small signal (-3 dB)
106

2 single-ended, simultaneously sampled


8 bits, 1 in 256
20 MS/s each channel in realtime mode,
1 GS/s with Random Interleaved Sampling mode
50 V with a 10 x probe (gain of 1)
5V with a 1 x probe (gain of 1)
5 V at gain of 1
1 V at gain of 5
0.25 V at gain of 20
50 mV at gain of 100
Input counting AC or DC, software selectable
42 V powered on or off (without external attenuation)
ACHO, ACH 1, ATRIG are protected
663,552 samples
Programmed I/O, interrupts and DMA
(supported on the AT-5102 and PCI-5102 devices only)
1 LSB typ. 1.8 LSB max
0.3 LSB typ, 0.5 LSB max
8 bits guaranteed
1.5 LSB max
1% max
1 M 1%, 30 pF 10 pF

15 MHz typ.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Large signal (1% THD)


AC coupling LF cutoff
Settling for FS step to +1 %FSR
System noise
Crosstalk
S/H characteristics
Interchannel skew
Aperture jitter
Stability
Recommended warm-up time
Triggers
Ana1og Trigger
Source
Level
Slope
Resolution
Hysteresis
Bandwidth
Digital Triggers
Compatibility
Response
Pulse width
RTSI
Trigger lines
Clock lines
Power Consumption
5V DC (5%)

10 MHz typ.
11 Hz (1.1 Hz with 10x probe)
50 ns typ
0.5 LSB rms typ
6.0 dB
1 ns
1 s
15 minutes

ACH(0, 1), ATRIG


FS (ACH(0,1)), 5 V (ATRIG), software selectable
positive or negative, software selectable
8 bits, 1 in 256
software programmable, up to full scale
15 MHz
TTL/CMOS
rising or falling edge, software selectable
10 ns min.
7 I/O
1
250 mA typ.

4.5.5.1 DE CE ESTE IMPORTANT MRIMEA MEMORIEI I


VITEZA DE TRANSFER DMA LA UN OSCILOSCOP?
Exist dou arhitecturi pentru digitizarea (codificarea numeric) unui
semnal: Real Time Sampling i Equivalent Time Sampling.
Metoda de digitizare Real Time const n codificarea punctelor discrete de
semnal la viteza ceasului ce controleaz achiziia, adic fiecare puls de ceas
declaneaz o conversie A/D ce se termin naintea venirii urmtorului puls.
Folosind aceast metod, instrumentul DAQScope poate merge pn la 20 MHz
pe fiecare canal.
Metoda Equivalent Time Sampling (ETS) se aplic semnalelor repetitive
i este de dou tipuri: Sequential ETS i Random Interleaved Sampling (RID).
Convertorul de tip Sequential ETS culege un punct de semnal la fiecare
trigger. Dac semnalul are variaie foarte rapid (transient signal) aceast
metod scap puncte importante de semnal (ca de altfel i metoda Real Time).
Un alt inconvenient al metodei este acela c sunt necesare 1000 de
perioade ale semnalului. pentru a putea culege 1 000 de puncte din semnal.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

107

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Fig. 4.7 Instrumentul virtual DAQScope.

Convertorul de tip RIS culege un set de puncte la fiecare trigger. Asta


avantajeaz (singura metoda sigur) achiziionarea semnalelor cu variaie rapid
de tip transient signal. Seturile de puncte de semnal, obinute n timpul scanrii
la viteza de 1 GB/s sunt combinate pentru a da o reprezentare corect a
semnalului achiziionat. Convertorul A/D nu tie cnd va veni semnalul de
trigger, de aceea ceasul care controleaz achiziia i punctul de trigger sunt
nesincronizate, perioada de timp dintre momentul de trigger i culegerea
urmtorului set de puncte variind de la set la set.
RIS msoar timpul dintre momentul de trigger i conversia primului
punct al setului, pentru fiecare set nou cules. Aceasta permite combinarea
corect a seturilor de puncte ntr-o imagine foarte curat a semnalului. Culegerea
de semnale tranzitorii repetitiv la o vitez de 1GS/s, necesit memorie pentru a
putea stoca seturile culese. Dac nu exist memorie suficient fie c nu se poate
implementa metoda RIS, fie implementarea folosete seturi mici de date.
Memoria mare i transfer DMA rapid sunt deci absolut necesare pentru a putea
implementa aceast metod de digitizare.

4.5.6 DAQARB
Instrumentul virtual DAQArb este un generator de semnal cu viteza
108

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

maxim de generare de pn la 40MHz, rezoluie de 12 bii (asigur o rezoluie


de 10 mHz la o vitez de generare de 16 MHz), capabilitate DDS (Direct Digital
Synthesis) ce permite schimbarea vitezei de generare on-the-fly, memorie de 4
MB pn la 16 MB, filtre, atenuare i implementare de secvene. Acest
instrument poate fi folosit ca generator de semnal definit sau arbitrar, fiind unul
dintre cele mai avansate la ora actual. Dintre posibilele aplicaii, se pot
meniona: controlul de micare, teste de modem, testare de materiale, testarea
circuitelor integrate digitale, modulare PSK (Phase Shift Keying), simulri
biomedicale, telemetrie, msurare de rspuns de frecvene, comunicare cu
satelii, radar, generare de impulsuri, testare de putere, testare video, testare
aparatur electronic, aparat de msur n industria automobilelor,
telecomunicaii, etc. DAQArb intr n competiie direct cu generatoare de
semnal tradiionale oferite de ali vendori, astfel:
DAQArb 5411 HP E1445A
Tip
PCI/AT
VXI
Frecven de
40 MHz
40 MHz
generare
Memorie
4MB
256 kB
Canale
1
1
Referin de
da
da
clock extern
Amplitudine
10V
10V
Rezoluie
12 bii
12 bii
Trigger-e multiple, RTSI multiple, VXI
Format digi-tal
16 bii
16 bii
de ieire
Marker-e
da
da
Impedan de
50 , 75
50 , 75
ieire

HP E1340A

HP 33120A

VXI

tradiional

Standford
DS340
tradiional

40 MHz

42 MHz

40 MHz

16 kB
1

16 kB
1

16 kB
1

nu

Da

nu

20V
12 bii
multiple

10V
12 bii
Multiple

10V
12 bii
unic

nu

Nu

nu

50

50

50

Instrumentul DAQArb este disponibil pentru dou platforme: placa AT5411 pentru bus-ul ISA (panel i aplicaie VirtualBench-Arb pentru Windows
NT/95/3.x, putnd fi utilizat i ca plac de achiziie normal din Ni-DAQ,
LabView, BridgeView, LabWindows/CVI, C/C++, Visual Basic) i placa PCI5411 pentru bus-ul PCI.

4.5.7 DAQMETER
Instrumentul virtual DAQMeter este un multimetru digital de 5 cifre,
intrare AC/DC i precizie de 0,02%, putnd fi utilizat la msurarea precis a
tensiunilor, curenilor i rezistenelor. Msurarea tensiunilor continue se face n
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

109

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

intervalele de msurare de: 20mV, 200mV, 2,0V, 25V i 250V. Msurarea


tensiunilor alternative se face n intervalele de msurare (valori efective) de:
20mV, 200mV, 2,0V, 25V i 250V. Msurarea rezistenelor se face n
intervalele de msurare de: 200, 2k, 20k, 200k, 2M i 20M. Viteza
de msurare este de maxim 60 de citiri pe secund.
Instrumentul DAQMeter este disponibil sub forma plcii PCMCIA
DAQCard-4050, fiind utilizat n computere laptop. Poate fi utilizat cu aplicaia
VirtualBench-DMM sau din LabView, BridgeView, LabWindows/CVI, NiDAQ 5.x. De fapt, placa DAQCard-4050 are la baz un convertor analog-digital
de 24 de bii, deci teoretic s-ar putea implementa un multimetru digital cu 7
digii. Rezoluia real este de 5 cifre din cauza unor factori externi, cum este
zgomotul.
Instrumentul DAQMeter dispune de trei frecvene de msurare, i anume
10Hz, 50Hz i 60Hz.

Precizie tensiuni
continue
Game de intrare
tensiuni continue
Precizie tensiuni
alternative
Game tensiuni
alternative
Precizie ohmmetru
Game rezistene
Precizie cureni
continui
Precizie cureni
alternativi
Game cureni

DAQMeter 4050

THM 565 TekMeter

Fluke PM 2525

0,02%

0,5%

0,02%

20mV...250V

400mV...850V

200mV...2000V

max. 2%

2%

0,2%

20mV...250V

400mV...600V

200mV...2000V

0,05%
200...20M

0,5%
400...40M

0,1%
200...200M

0,1%

0,1%

max. 2%

max. 3%

1A...10A

1A...10A

4.6 SOFTWARE SPECIALIZAT PENTRU ACHIZIIA


DATELOR
Avantajul decisiv al sistemelor de msurare conduse de calculator, fa de
cele clasice const n multitudinea de configurri posibile ale componentelor
sistemului. Dac n cazul elementelor de msurare clasice, soluiile i rezultatele
intermediare trebuiau reluate pentru fiecare domeniu de utilizare, sistemul de
msurare numeric condus de calculator poate realiza o aceeai funcie,
schimbndu-se numai interfaa cu utilizatorul pentru particularizarea acesteia n
cazul aplicaiei date (deci necesitnd numai o intervenie la nivel de software).
n cazul n care sistemul de msurare graviteaz n jurul unui PC, prin
110

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

utilizarea unui software standardizat (S-Soft) asociat echipamentelor de msurare


corespunztoare, se pot realiza sisteme complexe, mobile sau nu, de achiziie de
date, supraveghere sau comand, particularizate n funcie de necesitatea
utilizatorului. n acest mod, posibilitile de analiz a datelor brute achiziionate
i comentariul pertinent al rezultatelor sunt mult extinse fa de aria de utilizare
a msurrilor convenionale.
Soluionarea problemelor din gama achiziiei de date, a monitorizrii
proceselor, a comenzii i reglrii acestora, precum i a analizei
rezultatelor prin software standardizat se poate face structurnd, mai nti,
concepte construite flexibil i care permit schimbul informaional ntre diversele
planuri ale unei prelucrri numerice de date. Se vor detalia cteva dintre
problemele ce nsoesc realizarea sistemelor moderne de msurare, orientate, n
ultimii ani, pe configuraii ce au ca element central calculatorul personal. Dup
ce a fost stabilit configuraia hardware a sistemului de msurare, optarea pentru
una din variantele de software (proiectarea unei aplicaii dedicate, configurarea
minimal a unuia dintre programele existente pe piaa internaional n domeniul
msurrilor sau lsarea la latitudinea utilizatorului final a acestei alegeri) ce
trebuie s asigure prelucrarea, memorarea i evaluarea rezultatelor msurtorilor
este un pas esenial, devenit din ce n ce mai dificil de fcut n ultimii ani.

4.6.1 SOFTWARE PENTRU ACHIZIIA DE DATE


Dei se consider c, n general, nu este necesar ca sistemul de calcul
pentru achiziia de date s fie extrem de puternic, n condiiile n care aplicaia
implic o combinare a achiziiei propriu-zise cu analiza i reprezentarea grafic
a datelor, exigenele transferate de la alte sisteme de software existente pe pia
vor impune investiia ntr-o platform hard puternic. Cele mai uzuale sisteme
pentru controlul achiziiei de date sunt PC-urile (generaie 486 sau mai nou) cu
magistrala ISA (care permite transferuri pe 16 bii cu viteze de pn la 500
kbyte/s; utiliznd memorie FIFO, o logic specializat i interfee IEEE-488 se
pot realiza viteze de transfer de pn la 1,4 Mbyte/s), EISA (transfer pe 32 bii i
semnale suplimentare de control), PCI i platforme ce utilizeaz magistrala
Apple Macintosh II NuBus. Problema portabilitii sistemelor de achiziie i
prelucrare numeric a datelor msurate este, de cele mai multe ori, rezolvat de
utilizarea Notebook-urilor a cror putere de prelucrare, stocare i posibiliti de
comunicaie pot acoperi pn la 90% din necesitile unei achiziii de date
portabile.
Paradigma msurri conduse de PC a impus definiii pentru cerinele
dar i pentru reprezentarea capacitii de a grei a sistemelor de msurare. n
cele mai multe cazuri, astzi decisiv nu este realizarea hardware, ci mediul
software pus la dispoziie utilizatorului de sistemele de msurare conduse de PC.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

111

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Una dintre cerinele eseniale ale acestor sisteme de msurare este aceea c, pe
lng facilitarea comunicaiei cu aparate numerice inteligente, acestea s ofere o
reprezentare n timp real a diverselor mrimi caracteristice procesului
supravegheat. Din acest motiv, cerinele de mai sus pot fi clasificate n dou
categorii (fig. 4.8):
cele relative la achiziia datelor;
cele relative la prelucrarea numeric a informaiei achiziionate.
n ambele cazuri, ns, este necesar prezena facilitii de evaluare
interactiv a irului de date.

Fig. 4.8 Funciile unui pachet sofware dedicat sistemelor de msurare.

Noiunea de standard n domeniul software-ului nu este nc riguros


fundamentat. De multe ori, prin acest termen se subnelege una din variantele
urmtoare:
software care, datorit unei largi rspndiri, a devenit standard;
software care permite rezolvarea unor anumite probleme standard,
cum ar fi achiziia de date, trasarea curbelor de variaie a unei anumite
mrimi, interpolarea etc;
software realizat pentru un anumit tip de calculator, devenit standard
(de exemplu, pentru PC).
Ct timp nu au aprut norme privind achiziia, prelucrarea i reprezentarea
datelor msurate, nu se poate vorbi de un standard, ci doar de criterii care pot
uura alegerea pachetelor de programe destinate domeniului msurrilor. Aceste
criterii vor fi detaliate n cele ce urmeaz:
capacitatea de dezvoltare ulterioar permis;
gradul de user friendly al programelor utilizate;
posibilitatea de a primi asisten tehnic din partea firmei

112

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

productoare;
independena fa de aparatele utilizate (portabilitate relativ la
sistemul de msurare folosit);
adaptibilitatea.
O problem aparte o constituie sistemul de operare sub care aceste
programe pot rula, distingndu-se programe care sunt create pentru:
ISA (Industry Standard Architecture); n general, acestea nu sunt
utilizabile pe OS/2-PC sau staii Unix;
maini Unix i calculatoare VMS (DEC); majoritatea au fost sau sunt
n proces de "traducere" pentru PC; de exemplu, pachetul LabVIEW a
fost conceput, iniial, pentru calculatoare Apple-Macintosh i numai
ulterior a fost disponibil pe PC, inclusiv varianta pentru Windows, iar
acum i varianta pentru staii SUN.
Deoarece n ultimii ani au aprut att de multe sisteme de msurare
automate cu programele corespunztoare, alegerea i, mai ales, valorificarea
integral a unui astfel de software a devenit extrem de dificil. Criteriile care pot
fi utlizate pentru o eventual clasificare a pachetelor de programe disponibile
sunt: adaptibilitatea, viteza de lucru, uurina n implementare.
Creterea continu a complexittii hardware-ului i a preteniilor emise
software-ului de prelucrare a datelor msurate accentueaz importana i
valoarea unor driver-e soft (nivelul la care se programeaz direct regitrii hardului de achiziie, i administreaz funcionarea i i asigur integrarea cu
resursele calculatorului) ct mai bune. Pentru aceasta, un driver trebuie s
asigure achiziionarea datelor n background cu o rat impus de utilizator i
procesarea lor n foreground, controlul momentelor n care are loc transferul
datelor ctre memorie i integrarea complet cu platforma hard folosit. El
trebuie s utilizeze ct mai eficient facilitile oferite de sistemul de operare
folosit dar s fie compatibil i cu versiunile ulterioare ale acestuia. n aceste
condiii se impune verificarea atent a limitrilor n exploatarea resurselor
sistemului hard (mai ales atunci cnd driver-ul este conceput de o firm diferit
dect cea care a proiectat suportul hard al aplicaiei). O astfel de verificare
devine imperios necesar n cazul pachetelor integrate care acoper toate
aspectele unei achiziii de date i care, dei sunt utilizabile imediat, au o
adaptabilitate limitat.
n elaborarea pachetelor software destinate aplicaiilor n tehnica
msurtorilor i prelucrrii digitale a informaiei sunt implicate toate marile
firme care realizeaz platformele hard specifice astfel c, n ultimul timp,
supremaia net a firmei National Instruments, prin proiectul concretizat n
LabView este pus sub semnul incertitudinii ct timp au aprut pe piaa dedicat
programe proiectate de firmele ce realizeaz sisteme complexe de msurare Hewlett-Packard, Siemens, Hydra, Keithley - programe care exploateaz, i ele,
ideea programrii vizuale i a bncii de instrumente virtuale configurabile
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

113

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

pentru aplicaia concret. n aceast adevrat inflaie de programe dedicate


msurrilor cu ajutorul fie al PC-ului (LabView, LabWin, DaisyLab,
PowerPoint, HP VEE etc.) fie al staiilor de lucru (DaisyLab), alegerea devine
extrem de grea ct timp platforma hard disponibil va trebui s integreze sisteme
de msurare proiectate individual cu aparate provenite de la firme diferite, totul
pentru a realiza un sistem integrat n jurul unui PC pentru care, la rndul lui,
soft-ul disponibil este ntr-o schimbare continu. De aceea, n multe cazuri, se
pot obine avantaje mari prin lsarea pe seama soft-ului de firm realizarea
fluxului algoritmilor i testarea acestuia iar programele dedicate aplicaiei s
extind, doar, funciile de prelucrare i analiz a datelor. n vorbirea curent,
prin standard se nelege o direcie, o norm, un stil, care, n general, se obine
urmnd cerinele obinuite de calitate i eficien. nelesul cuvntului variaz,
de fapt, ntre limitele rigide ale etalonului (metrologiei, chiar) i cele
caracteristice unei orientri n genul tematicii standard abordate de un anumit
artist (pictor, de exemplu). n domeniul programelor de calcul, noiunea de
standard poate astzi s releve mai multe aspecte: pe de o parte, faptul c ntr-un
anumit domeniu de utilizare, cu toat diversitatea de produse existente pe pia,
fabricani diferii nglobeaz n produsul lor un anumit modul software (de
exemplu, cel de comunicaie serial pentru diverse instrumente numerice-PC).
Aici intervine compatibilitatea dintre diversele produse software care au ca
obiectiv ndeplinirea unei aceleai funcii i, ca avantaj, este de reinut cel al
costului redus al consultanei necesare n fiecare caz.
Un alt aspect este cel al furnizorului de pachete software. Din acest punct
de vedere se poate defini programul standard tocmai prin ceea ce el nu este, i
anume, o colecie de module software standard.
Cea mai important definiie ar trebui, ns, s fac apel la sistemul de
operare sub care programul n discuie ruleaz. Facilitile, etaloanele i chiar
standardele acestui mediu vor determina i programele adiacente. n fig. 4.9
este reprezentat un astfel de sistem de operare (sau mediu de programare, n
cazul nostru) mpreun cu elementele sale standard. O definiie neambigu a
software-ului standard reiese din observaia c acesta trebuie s pun la
dispoziie funcii standard unor probleme standard, n vederea construirii unor
soluii (mai mult sau mai puin) standard. n afar de necesitatea ca pachetul de
programe s corespund n limite predefinite unor cerine caracteristice
domeniului de utilizare, programele trebuie s ndeplineasc i anumite condiii
specifice domeniului informatic, precum i, n plus, s fie compatibil cu acele
soluii hardware impuse de utilizator. De exemplu, pentru software-ul din
domeniul msurrilor electrice, este esenial centrarea acestuia pe soluii
hardware anumite (PC, staii Unix, reea intra- sau internet) i protocoale de
comunicaie adecvate interfeelor specializate (RS-232C, IEEE-488, etc).

114

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 4.9 Elementele standardizate ntr-un sistem de msurare informatizat.

4.6.2 DETALII PRIVIND CERINELE IMPUSE UNUI


PACHET SOFTWARE PENTRU MSURRI ELECTRICE
Pentru utilizatorii de software standardizat, dar i pentru aceia care vor s
integreze produse soft ale unei alte firme n produsul propriu, decizia pentru sau
mpotriva unui anumit pachet este adesea greu de luat, chiar n condiiile n care
preul produselor subiect al deciziei este simitor diferit.
Hotrtor este ntotdeauna rspunsul la ntrebarea dac o anumit soluie
este economic sau nu. Criteriile pe baza crora se stabilete dac prelucrarea
numeric a datelor cu ajutorul PC-ului este economic, sunt detaliate n cele ce
urmeaz:
condiiile impuse de ctre utilizator:
- limba n care se dorete proiectarea i interfaarea cu utilizatorul a
software-ului;
- modul de introducere/preluare a datelor;
- intervalul de timp de utilizare minim;
- intervalul de timp de utilizare repetitiv;
- gradul de explicitare al modulelor componente;
- viteza de lucru;
- gradul de dependen fa de datele necunoscute;
- capacitatea de ghidare/help oferit utilizatorului;
- gradul de standardizare;
- asistena tehnic n caz de anomalii.
flexibilitate:
- modularitate;
- capacitatea de integrare;
- independena fa de sistem (portabilitatea);
- posibilitatea de a pre-seta un anumit tip de msurri.
performana:
- fiabilitatea (protecia la greelile utilizatorului, rat de eroare mic);
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

115

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

resursele hard/soft cerute;


gradul de generalitate;
numrul i tipul funciilor implementate;
posibilitatea implementrii unor funcii speciale de ctre utilizator.

n final, se compar calitatea produsului cu costul software-ului. S-a


observat c practica de pn acum i anume accea de a proiecta propriul pachet
de programe n loc de a apela la un software standardizat, aproape c a
disparut, din motive economice.
naintea alegerii pachetului software, este necesar ns s se verifice care
dintre funciile sistemului trebuie implementate, pentru c nu ntotdeauna se
impune realizarea tuturor acestora.
A. Comanda aparatelor de msurare i/sau a procesului:

este software-ul compatibil cu aparatele de msurare necesare (i care,


n general, nu sunt cunoscute a priori) sau, cel puin, are drivere pentru
interfeele acestora (RS, HPIB etc.)?
care este gradul de deschidere al sistemului: ce interfee software sunt
disponibile pentru a suplimenta lipsa unor elemente de comand?
cerinele de vitez sunt satisfcute, de exemplu, pentru transferul
datelor?
care este dimensiunea complexitii sistemului supravegheat?
este o aplicatie n timp real sau nu?
B. Achiziia datelor:

datele trebuie achiziionate on-line i n timp real?


ce se nelege, pentru aplicaia dat, prin timp real?
unde este localizat gtuirea (punctul slab) al canalului de
achiziie/prelucrare a datelor?
n cazul card-urilor de tip plug-in pentru PC:
- exist drivere i pentru alte module hard, n afar de cele furnizate
de firma productoare a software-ului utilizat?
- se pot implementa drivere pentru hard propriu?
- exist o concepie unitar relativ la driverele soft?
- este necear o programare la nivel de regitri?
- viteza de rulare este compatibil cu rata de transfer pe suportul fizic
(hard) i este posibil o scriere continu pe acest suport, urmnd ca
prelucrarea s se fac ulterior?
interfee seriale:
116

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

- exist un modul cu interfaa suficient de detaliat pentru


comunicaia cu interfaa serial?
- exist drivere specifice noilor interfee seriale (multiple)?
interfee CEI-625
- sunt livrate deja drivere pentru aparate standard interfaate CEI?
- se poate realiza un astfel de driver?
- este deja disponibil o interfa de nivel nalt pentru cele mai
importante funcii CEI625?
formate nestandard
- este necesar s se schimbe date sau fiiere cu alte sisteme? Ce
formate de scriere/citire sunt permise de rutinele software-ului?
(ASCII, binar etc.) Exist rutine de conversie (filtre)?
C. prelucrarea preliminar:

ce funcii sunt necesare? (de ex.: calibrri, liniarizri de caracteristici,


scalare, filtrare, compresie de date).
D. prelucrarea datelor:

ct de puternice sunt bibliotecile de funcii?


ce clase de funcii sunt cuprinse?
- aritmetica semnalelor (conectarea semnalelor)
- analiza n timp (determinarea valorilor caracteristice)
- analiza n frecven (FFT, spectre, convoluie, corelaie)
- regresie
- statistic
- interpolare
- aproximri
ce tipuri de date sunt admise? (intregi, reale n virgula fix/mobil)
este necesar o prelucrare on-line? pn la ce frecven maxim a
semnalelor?
este necesar implementarea pe DSP-board?
E. Reprezentarea grafic:

posibiliti de reprezentare grafic generale;


tehnica ferestrelor multiple
mai multe curbe, axe, pe o aceeai fereastr;
- zoom;
- msurri cu cursorul;
- axe logaritmice;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

117

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

- reprezentri 3D;
- posibilitatea reprezentrilor personalizate a altor tipuri de grafice;
- configurarea detaliilor (culori, for/background).
este posibil o reprezentare grafic on-line? pn la ce frecven?
ce drivere de imprimant sunt suportate sau exist doar facilitatea
hardcopy? care este rezoluia maxim de printare? (i analog pentru
plotter)
se pot salva datele aferente unui grafic ntr-un fiier cu format standard
(PCX, TIFF, EPS)?
F. Stocarea datelor:

este formatul n care se salveaz datele specificat complet?


este asigurat o protecie a datelor mpotriva eventualelor greeli de
scriere (mai ales pentru formatele ASCII) ?
exist interfee de conversie pentru suportul datelor n alte limbaje
standard (dBASE, Lotus etc.)?
este prevzut comprimarea datelor?
G. Documentarea/prezentarea rezultatelor:

exist forme pre-definite pentru protocoale de msurare?


- nscrisuri;
- antetul firmei;
- inserie de desene;
- legend.
sunt compatibile astfel de protocoale cu programele standard de
procesare text?
Chiar dac obiectul unei msurri conduse de calculator poate mbrca
diverse forme, exist un mare numr de caracteristici comune acestor msurri,
astfel c se poate spune c, n general, orice sistem de automatizare
(achiziie/prelucrare numeric/arhivarea rezultatelor) este guvernat de un
software standard n sinergie cu un software specializat.
Este extrem de importrant pentru utilizatori s existe posibilitatea ca
cerinele unei activiti concrete s fie ndeplinite prin implementarea unor
funcii specifice n cadrul software-ului. Aceast cerin a condus la formularea
conceptului de interfa deschis, prin care programatorul i insereaz
creativitatea i soluiile proprii. Un alt avantaj este acela c utilizatorul rmne
independent fa de casa de software productoare a pachetului standard.

118

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

4.6.3 SCPI (STANDARD COMMANDS FOR


PROGRAMMABLE INSTRUMENTATIONS)
Scopul standardului SCPI este acela de a facilita reducerea timpului de
dezvoltare pentru programele implementate n sistemele de msurare i control
precum i de a permite schimbarea aparatelor (eventual produse de firme
diferite) n cadrul unui aceluiai sistem de msurare condus de calculator. Acest
lucru se realizeaz prin introducerea unor comenzi standardizate ctre aparate i
a unor tipuri posibile de rspuns al acestora. Spre exemplu, comanda:
MEASURE:FREQ?
are aceeai sintax pentru toate aparatele de un anumit tip (de exemplu,
multimetre) fabricate de diveri productori - consisten vertical - dar i pentru
aparate cu funcii diferite (de exemplu, osciloscoape, numrtoare) - consisten
orizontal.
SCPI nu este un limbaj de programare (cum sunt, de exemplu, Pascal sau
C), ci un limbaj de comenzi care definete comenzile ctre aparate, parametrii i
formatul acestora. SCPI furnizeaz un ir de caractere ASCII care vor fi
transmise prin rutine specifice aparatelor unde vor fi, apoi, prelucrate prin
intermediul limbajului TMSL (Hewlett-Packards Test and Measurement
System Language).
SCPI s-a dezvoltat, n principal, pstrnd o compatibilitate cu norma
IEEE-488 i utiliznd formatul de date al acestei norme. Cu toate acestea,
utilizarea SCPI nu este limitat la interfaa IEEE-488, comenzile acestuia putnd
fi transmise i prin interfeele VXI sau RS-232 i, n plus, fiind continuu supus
completrilor necesitate de dezvoltarea hardware-ului specific, n urma
recomandrilor fcute de un consoriu de firme, alctuit din reprezentani ai
leader-ilor pe piaa instrumentelor de msurare: Hewlett-Packard, Tektronix,
Fluke (Philips), Keithley, Rohde&Schwarz etc.
Cu toate c SCPI definete comenzile specifice aparatelor de msurare
inteligente, nu sunt indicate nici un fel de date tehnice privind exactitatea,
rezoluia, domeniul de msurare ale acestora; astfel nu poate fi n totalitate
garantat compatibilitatea aparatelor n cadrul unui sistem comandat prin
intermediul SCPI.
Blocurile funcionale ale aparatelor
SCPI mparte fiecare aparat n blocuri funcionale (fig. 4.10), crora le
subordoneaz un aa-numit arbore de comenzi (subtree) exemplificat n fig.
4.11.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

119

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Fig. 4.10 Modelul SCPI al unui aparat programabil.

Fig. 4.11 Detalierea unei funcii SCPI:


a) funcia de msurare; b) funcia de generare a semnalului.

n cele ce urmeaz sunt detaliate semnificaiile termenilor utilizai n fig.


4.10 i 4.11:
ROUTing
MEASurement
INPut
SENSe

CALCulate

120

Comanda cii de semnal ntre bornele


aparatului i funcia de msurare intern;
Conversia semnalului fizic n valoare
msurat (format de date intern), inclusiv
operaia de condiionare a semnalului;
Condiionarea
semnalelor
de
intrare
(amplificare, atenuare, filtrare etc)
Conversia semnalului fizic aplicat la bornele
de intrare n valoare msurat i stabilirea
intervalului de msurare;
Conversia valorii msurate (de ex., n alte
uniti sau determinarea timpului de cretere
al semnalului);

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Signal
Generation
OUTPut
SOURce
TRIG
MEMory
FORMat

Conversia valorilor numerice n semnal fizic,


inclusiv condiionarea acestuia;
Condiionarea semnalelor de ieire;
Conversia valorilor numerice n semnale
fizice;
Sincronizarea, triggerarea operaiilor de
msurare sau generare a semnalelor;
Funcia de memorare intern a datelor;
Conversia formatelor de date pentru transfer
extern (de ex. n format ASCII);

n fig. 4.12 este reprezentat structura arborescent a blocului funcional


de msurare de sensibilitate SENSe i a crei sintax este:
:SENS:CURR:AC:RANG:AUTO:DIR:EITH

Fig. 4.12 Structura arborescent a comenzii SENSe.


Nivelele structurale ale comenzilor
Comanda aparatelor de msurare prin intermediul SCPI se face utiliznd
mai multe niveluri ale acestora:

Secvena de comenzi 1 (Low Level):


*RST
:FUNC:VOLT:AC
:INP:IMP 50
:INIT:IMM
FETCh:VOLT:AC?

Resetarea aparatului
Selecia funciei de msurare a tensiunii alternative
Selectarea impedanei de intrare de 50
Triggerarea operaiei de msurare
nscrierea valorii msurate n bufferul de ieire

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

121

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

Secvena de comenzi 2 (High Level):


*RST
:MEAS:VOLT:AC?

Resetarea aparatului
Configurarea aparatului, msurarea i nscrierea valorii
msurate n buffer-ul de ieire

Observaie: Comenzile de nivel 2 (High Level) necesit mai puine


cunotine relative la partea hardware a echipamentului de msurare
dar necesit un grad de compatibilitate ridicat ntre aparatele ce
eventual vor ndeplini aceeai funcie. De cte ori, ns, utilizm
configurri diferite de cele uzuale, se recomand inserarea comenzilor
de nivel 1 (low level).
Sintaxa
Program Header grupeaz cuvintele cheie cu ajutorul crora se
recunoate o anumit comand. Aparatele trebuie s accepte comenzi scrise att
cu litere mari ct i cu litere mici, grupate n :
Common Command Headers
Instrument Control Headers
Fiecare Instrument Control Header are i o form de scriere prescurtat.
Un aparat comandat prin SCPI trebuie s accepte instruciuni exprimate n
forma complet (lung) sau cea scurt, abaterile de la una dintre acestea fiind
semnalizate ca eroare de sintax. Forma lung a comenzii este constituit dintrun singur cuvnt (maxim 12 caractere, primul din ele fiind liter mare), iar
forma scurt este constituit din primele patru caractere ale celei anterioare, cu
excepia cazului cnd ultimul este o vocal i nu mai este scris.
Comenzile SCPI se structureaz ierarhizat, nivelele fiind separate n
interiorul unei comenzi prin separator.
Dac un aparat are mai multe canale de msurare identice, atunci la
sfritul fiecrui mnemonic se adaug numrul canalului, implicit fiind
considerat canalul numrul 1.
Majoritatea comenzilor exist i n varianta n care irului de comand i se
adaug sufixul ?, caz n care aparatului i se cere rspunsul ctre calculator
(valoarea msurat), fr a mai fi nevoie de explicitarea unui header pentru
aceasta.
Starea de baz dup resetarea unui aparat

Dup primirea comenzii de resetare (*RST), toate aparatele de msurare


accesate prin SCPI se vor gsi ntr-o stare de baz, definit anterior printr-un alt
set de comenzi SCPI. Ca regul general:
122

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

toate aparatele trebuie s treac n modul Trigger Idle State, ieirile


trebuind deconectate;
configurarea semnalelor de intrare trebuie fcut fie pe domeniul
implicit (Autorange) fie pe cel corespunztor rezoluiei minime;
aparatele trebuie s rmn n modul de funcionare (funcia) de baz.
Interpretarea strii (Status Report)

n SCPI este inclus realizarea complet a modului de interpretare a strii


corespunztor normei IEEE-488.2, inclusiv cel al regitrilor de stare (Device
Status Reporting). n plus, SCPI posed comenzi corespunztoare regitrilor de
operare (OPERation Status -Register) i de interogare (QUEStionable
Daten/Signal Status-Register). n OPERation Status -Register se reflect strile
actuale ale aparatului:

Valoare
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

Stare
CALibrating
SETTling
RANGing
SWEping
MEASuring
waiting for TRIG
waiting for ARM
CORRecting
available to Designer
available to Designer
available to Designer
available to Designer
available to Designer
INSTrument Summary Bit
PROGram running
=0

n QUEStionable Data/Signal Status-Register se menin date referitoare


la semnalul msurat (de exemplu tensiunea, frecvena, timpul etc.) astfel c
fiecare bit al acestui registru reprezint suma a 16 bii din regitrii prevzui n
amonte.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

123

CONSIDERAII GENERALE ASUPRA INSTRUMENTAIEI VIRTUALE

124

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

5. PREZENTAREA MICROCONTROLLERULUI
80C552 (PHILIPS)
5.1 ARHITECTURA HARDWARE A
MICROCONTROLLERULUI 80C552
5.1.1 MEMORIA INTERN A MICROCONTROLLERULUI
80C552
5.1.1.1 MEMORIA DE PROGRAM (PROGRAM MEMORY)
FFFF h

FFFF h

EXTERNAL

OVERLAPPED
MEMORY SPACE

2000 h
1FFF h
INTERNAL

EXTERNAL FF h
SFR

(EA = 1)

(EA = 0)

7F h
00 h

0000 h
PROGRAM MEMORY

INTERNAL
DATA RAM

0000 h

INTERNAL DATA MEMORY EXTERNAL DATA MEMORY

Fig. 5.1 Memoria microcontroller-ului 80C552.

Familia 8XC552 conine 8 koctei de memorie de program implementat


intern, memorie ce poate fi extins la 64 koctei prin utilizarea unei memorii
EPROM extern (fig. 5.1). Atunci cnd pinul EA este forat la nivel ridicat,
microcontroller-ul citete instruciunile (ciclu de fetch) din memoria intern de
program dac adresa acestora este inferioar valorii 1FFFH. Locaiile cu adrese
cuprinse ntre 2000H i FFFFH corespund memoriei externe de program. Atunci
cnd pinul EA este forat la nivel cobort, toate ciclurile de fetch (ciclurile de
citire a instruciunii) sunt executate din memoria extern de program. Locaiile
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

125

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

de memorie de program cu adresele 0003H i 0007H sunt utilizate de rutinele de


tratare a ntreruperilor.

5.1.1.2 MEMORIA DE DATE (DATA MEMORY)


Microprocesorul conine o memorie intern cu citire/scriere cu adrese
cuprinse ntre 00H i FFH. Aceasta este organizat pe trei seciuni:
zona inferioar a memoriei de date, cu capacitatea de 128 octei, avnd
adrese cuprinse ntre 00H i 7FH. Adresarea acestei zone de memorie
se poate face direct sau indirect;
zona superioar a memoriei de date, cu capacitatea de 128 octei.
Aceast zon de memorie poate fi adresat numai indirect;
zona registrelor destinate funciilor speciale, cu capacitatea de 128
octei.
Cei 128 octei ai zonei inferioare a memoriei de date sunt organizai
astfel:
primii 32 de octei (cu adrese cuprinse ntre 00H i 1FH) sunt mprii
n 4 bancuri de cte 8 octei numite i registre generale i care pot fi
apelate n instruciuni ca R0-R7. Selectarea unuia dintre bancuri la un
moment dat se realizeaz cu ajutorul a doi bii din cuvntul de stare al
progamului (PSW). Aceste registre pot fi accesate i la nivel de bit;
16 octei cu adrese cuprinse ntre 20H i 2FH, care pot fi adresai i ca
un spaiu de 128 de bii cu adrese cuprinse ntre 00H i 7FH.
Zona superioar de memorie i zona registrelor destinate funciilor
speciale mpart acelai spaiu al adreselor de memorie cuprinse ntre 80H i
FFH, dei ele sunt entiti fizice distincte. Nu toi cei 128 octei ai zonei
registrelor cu funcii speciale sunt implementai fizic. Registrele destinate
funciilor speciale ale cror adrese se termin n 0H sau 8H pot fi adresate i la
nivel de bit.
Pe lng cei 256 de octei de date ai memoriei interne, microprocesorul
poate adresa i pn la 64 Koctei de memorie extern de date. Adresele
memoriei de date extern pornesc tot de la 0000H. Adresa pentru memoria
extern poate fi pe un octet sau pe doi octei. Liniile portului de intrare-ieire P0
se folosesc multiplexat pentru a obine octetul inferior al adresei de memorie,
respectiv octetul de date citit/scris n memorie. n cazul n care adresa de
memorie este de un octet (octet coninut ntr-unul din registrele generale ale
bancului de registre activ), acesta se poate folosi n conjuncie cu un numr de
linii ale portului de intrare-ieire P2 care pagineaz memoria. Dac adresa este
pe doi octei, aceasta este coninut n registrul destinat funciilor speciale
DPTR, iar adresarea memoriei se relizeaz folosind cele 16 linii ale porturilor de
intrare-ieire P0 i P2.
126

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

5.1.1.3 REGISTRELE CU FUNCII SPECIALE


Cele mai multe dintre cele 56 de registre speciale se folosesc pentru
controlul hardware-ului de periferice aflat pe cip. Altele sunt registre aritmetice
(ACC, B, PSW), indicator al stivei (SP), indicatoare de date (DPH, DPL). 16
dintre aceste registre pot fi adresate la nivel de bit. n continuare vor fi
prezentate registrele cu funcii speciale cele mai des folosite.
Acumulatorul - este registrul implicit pentru multe instruciuni. n
cadrul unei instruciuni este apelat cu numele A. Adresa sa direct este
E0H. Poate fi adresat i la nivel de bit. Coninutul su devine 00H la
resetarea microprocesorului.
Registrul B - este utilizat obligatoriu n instruciunile de nmulire
i mprire. Poate fi folosit i n alte instruciuni. Adresa direct este F0H.
Poate fi adresat i la nivel de bit. Coninutul su devine 00H la resetarea
microprocesorului.
Cuvntul de stare al programului (PSW) - conine informaia de
stare. Denumirile i semnificaiile celor 8 bii ai PSW sunt date mai jos:
(MSB)
CY

AC

F0

RS1

RS0

OV

(LSB)
P

CY (PSW.7) - indicatorul de transport din bitul cel mai


semnificativ al acumulatorului, n cazul instruciunilor aritmetice;
AC (PSW.6) - indicatorul de transport auxiliar. Se folosete pentru
operaii n BCD;
F0 (PSW.5) - indicatorul 0 folosit de utilizator;
RS1 (PSW.4) i RS2 (PSW.3) - folosii pentru selecia bancului
activ al registrelor generale. Sunt setai sau resetai prin program
pentru a selecta bancul dorit;
OV (PSW.2) - indicatorul de depire;
P (PSW.0) - indicatorul de paritate. Este setat sau resetat prin
hardware la fiecare ciclu de instruciune pentru a indica numrul de
1 (par sau impar) din acumulator.
Adresa direct a PSW este D0H.
Indicatorul de stiv (SP) - este un registru de 8 bii. Este
incrementat nainte de execuia unei instruciuni PUSH sau CALL. Este
decrementat dup execuia unei instruciuni POP sau RET. La resetarea
microprocesorului este iniializat la valoarea 07H, deci stiva ncepe de la
adresa 08H. Poate fi ncrcat prin program, deci stiva poate ncepe de la
orice adres. Adresa direct este 81H.
Indicatorul pentru date (DPTR) - este format din doi octei, cel de
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

127

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

adres mai mare fiind apelat ca DPH, iar cel de adres mai mic fiind
apelat ca DPL. El pstreaz o adres de 16 bii pentru apelarea memoriei
RAM externe (dac aceasta exist). Poate fi manevrat ca un singur
registru de 16 bii sau ca dou registre de 8 bii. Adresa direct este 82H.
Registrele porturi P0P5 - sunt registrele latch pentru porturile de
intrare-ieire P0P5. Cnd se scrie o informaie ntr-un bit al unui registru,
aceasta apare la pinul de intrare-ieire corespunztor. Cnd se citete
informaia de la un port de intrare-ieire, aceasta este memorat n
registrul port corespunztor. La resetarea microprocesorului registele P0 la
P4 sunt iniializate cu valoarea 00H. Adresele directe ale acestor registre
sunt: P0 - 80H, P1 - 90H, P2 - A0H, P3 - B0H, P4 - C0H, P5 - C4H.
Registrele P0P3 sunt adresabile i la nivel de bit.
Buffer serial de date (S0BUF) - este compus de fapt din dou
registre separate de 8 bii avnd aceeai adres direct, unul pentru
transmisie i altul pentru recepie, folosite pentru interfaa serial SIO0.
Cnd un octet de date este scris n S0BUF, acesta este introdus n bufferul pentru transmisie i delaneaz nceputul transmisiei seriale a acestuia.
Cnd se realizeaz o citire din S0BUF, se citete coninutul buffer-ului de
recepie. Adresa direct este 99H.
Registrele de control - exit mai multe astfel de registre care conin
bii de control i de stare pentru ntreruperi, temporizatoare/numrtoare i
porturi seriale. Ele vor fi descrise la funciunile corespunztoare.
Registrele de temporizare - exist trei perechi de registre de cte 8
bii T0 (TH0, TL0), T1 (TH1, TL1), T2 (TMH2, TML2) numrtoare pe 16
bii, i un registru numrtor pe 8 bii T3. T3 este folosit ca watchdog
pentru reiniializarea sistemului dup un anumit interval de timp
convenabil ales, n cazul cnd acesta s-a blocat i nu a putut fi rencrcat
temporizatorul T3.
Tabelul 4.1 Registrele microcontroller-ului 80C552.
Simbol

Descriere

Adresa
directa
E0 H
C6 H
C5 H
F0 H
EB H

Valoare
RESET
E7
E6
E5
E4
E3
E2
E1
E0 00 H
A/D.9 A/D.8 A/D.7 A/D.6 A/D.5 A/D.4 A/D.3 A/D.2 xxxxxxxx B
A/D.1 A/D.0 ADEX ADCI ADCS ADR2 ADR1 ADR0 xx000000 B
F7
F6
F5
F4
F3
F2
F1
F0 00 H
CTN3 CTP3 CTN2 CTP2 CNT1 CNP1 CNT0 CNP0 00 H
Adresa bit, simbol sau functie alternativa port

ACC
ADCH
ADCON
B
CTCON

Accumulator
A/D converter High
A/D control
B register
Capture control

CTH3
CTH2
CTH1
CTH0
CMH2
CMH1
CMH0

Capture 3 High
Capture 2 High
Capture 1 High
Capture 0 High
Compare 2 High
Compare 1 High
Compare 0 High

CF H
CE H
CD H
CC H
CB H
CA H
C9 H

xxxxxxxx B
xxxxxxxx B
xxxxxxxx B
xxxxxxxx B
00 H
00 H
00 H

CTL3
CTL2
CTL1

Capture 3 Low
Capture 2 Low
Capture 1 Low

AF H
AE H
AD H

xxxxxxxx B
xxxxxxxx B
xxxxxxxx B

128

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
CTL0
CML2

Capture 0 Low
Compare 2 Low

AC H
AB H

xxxxxxxx B
00 H

CML1
CML0

Compare 1 Low
Compare 0 Low

AA H
A9 H

00 H
00 H

DPTR:
DPH
DPL

Data pointer
Data pointer High
Data pointer Low

83 H
82 H

00 H
00 H

IEN0

Interrupt enable 0

A8 H

IEN1

Interrupt enable 1

E8 H

IP0

Interrupt priority 0

B8 H

IP1

Interrupt priority 1

F8 H

P5

Port 5

C4 H

P4

Port 4

C0 H

P3

Port 3

B0 H

P2

Port 2

A0 H

P1

Port 1

90 H

P0

Port 0

80 H

PCON

Power control

87 H

PSW

Program status word

D0 H

PWMP
PWM1
PWM0
RTE

PWM prescaler
PWM 1 register
PWM 0 register
Reset/toggle enable

FE H
FD H
FC H
EF H

SP
S0BUF

Stack pointer
Serial 0 data buffer

81 H
99 H

S0CON

Serial 0 control

98 H

S1ADR
SIDAT
S1STA

Serial 1 address
Serial 1 data
Serial 1 status

DB H
DA H
D9 H

SICON

Serial 1 control

D8 H

STE
TH1
TH0
TL1

Set enable
Timer 1 High
Timer 0 High
Timer 1 Low

EE H
8D H
8C H
8B H

TL0
TMH2
TML2
TMOD

Timer 0 Low
Timer 2 High
Timer 2 Low
Timer mode

8A H
ED H
EC H
89 H

TCON

Timer control

88 H

TM2CON

Timer 2 control

EA H

TM2IR

T2 interrupt flag
register

C8 H

T3

Timer 3

FF H

AF
EA

AE
EAD

AD
ES1

AC
ES0

AB
ET1

AA
EX1

A9
ET0

A8
ET1

00 H

EF
ET2
BF
--

EE
ED
EC
EB
EA
EMC2 EMC1 EMC0 ECT3 ECT2
BE
BD
BC
BB
BA
PAD
PS1
PS0
PT1
PX1

E9
E8
00 H
ECT1 ECT0
B9
B8
x0000000 B
PT0
PX0

FF
PT2

FE
FD
FC
FB
FA
PCM2 PCM1 PCM0 PCT3 PCT2

F9
F8
00 H
PCT1 PCT0

ADC7 ADC6 ADC5 ADC4 ADC3 ADC2 ADC1 ADC0 xxxxxxxx B


C7
C6
C5
C4
C3
C2
C1
C0
FF H
CMT1 CMT0 MSR5 MSR4 MSR3 MSR2 MSR1 MSR0
B7
RD

B6
WR

B5
T1

B4
T0

B3
INT1

B2
INT0

B1
TXD

B0
FF H
RXD

A7
A15
97
SDA
87
AD7

A6
A14
96
SCL
86
AD6

A5
A13
95
RT2
85
AD5

A4
A12
94
T2
84
AD4

A3
A11
93
CT3I
83
AD3

A2
A10
92
CT2I
82
AD2

A1
A9
91
CT1I
81
AD1

A0
FF H
A8
90
FF H
CT0I
80
FF H
AD0

SMOD
D7
CY

-D6
AC

-D5
F0

WLE
D4
RS1

GF1
D3
RS0

GF0
D2
OV

PD
D1
F1

TP47

TP46

RP45

RP44

RP43

RP42

RP41

IDL
D0
P

00xx0000 B
00 H

00 H
00 H
00 H
RP40 00 H
07 H

9F
SM0

9E
SM1

9D
SM2

9C
REN

9B
TB8

9A
RB8

99
TI

SLAVE ADDRESS

98
RI
GC

00 H
00 H
00 H
F8 H

SC4
DF
CR2

SC3
DE
ENS1

SC3
DD
STA

SC1
DC
STO

SC0
DB
SI

0
DA
AA

0
D9
CR1

0
D8
00 H
CR0

TG47

TG46

SP45

SP44

SP43

SP42

SP41

SP40 C0 H
00 H
00 H
00 H

GATE
8F
TF1

C/T
8E
TR1

M0
8C
TR0

GATE
8B
IE1

C/T
8A
IT1

T2IS1 T2IS0 T2ER

T2B0

T2P1

T2P0

T2MS T2MS
00 H
1
0

CF
T20V

CC
CMI0

CB
CTI3

CA
CTI2

C9
CTI1

CE
CMI2

M1
8D
TF0

CD
CMI0

M1
89
IE0

M0
88
IT0

00 H
00 H
00 H
00 H
00 H

C8
00 H
CTI0
00 H

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

129

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

5.1.2 STRUCTURA I LUCRUL CU PORTURILE DE


INTRARE-IEIRE
n fig. 5.2 este prezentat structura microcontroller-ului 80C552.
Semnificaiile detaliate ale porturilor sunt prezentate n cele ce urmeaz.
Portul P0 - este un port bidirecional cu drena n gol de 8 bii. Dac se
scrie 1 n el tranzistorul de ieire este blocat i ieirea este n starea de impedan
ridicat. n cazul folosirii unei memorii externe (de program - ROM sau de date
- RAM), pinii portului P0 sunt multiplexai ntre octetul inferior de adres
(A0A7) i octetul de date citit sau scris din sau n memorie. Poate fi accesat i la
nivel de pin ca P0.0P0.7.
Portul P1- este un port bidirecional de 8 bii. Pinii P1.0P1.5 sunt prevzui
cu rezisten intern de pull-up, iar biii P1.6 i P1.7 sunt cu drena n gol. Pinii
acestui port pot ndeplini i urmtoarele funcii alternative:
P1.0P1.3 pot fi i CT0ICT3I, adic semnale de intrare pentru
temporizatorul T2 n modul captur (vezi funcionarea timer-ului T2);
P1.4 poate fi i intrare extern de numrare a temporizatorului T2,
numit chiar T2;
P1.5 poate fi i intrare de reset a temporizatorului T2, adic RT2;
P1.6 poate fi SCL, adic semnal de ceas pentru interfaa serial SIO1;
P1.7 poate fi SDA, adic linia de date a interfeei seriale SIO1.
Portul P2 - este un port de 8 bii, bidirecional, cu rezistene interne de
pull-up. n cazul adresrii unei memorii externe, conine octetul superior al
adresei A8A15.
Portul P3 - este un port bidirecional de 8 bii, cu rezistene interne de
pull-up. Alternativ pinii si pot ndeplini urmtoarele funcii:
P3.0 poate fi RxD, adic intrare de date pentru interfaa serial, full
duplex, SIO0;
P3.1 poate fi TxD, adic ieire de date pentru SIO0;
P3.2 poate fi INT0 , adic prima ntrerupere extern;
P3.3 poate fi INT1 , adic a doua ntrerupere extern;
P3.4 poate fi T0, adic intrarea de numrare extern pentru
temporizatorul T0;
P3.5 poate fi T1, adic intrarea de numrare extern pentru
temporizatorul T1;
P3.6 poate fi WR , adic semnalul de comand a scrierii n memoria de
date (RAM) extern;
P3.7 poate fi RD , adic semnalul de comand a citirii din memoria
extern de date (RAM).

130

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

RxD

P4

CT0I .. CT3I

Four
16 bit
Capture
Latches

Program
Memory
(8kytes)

T2

RT2

Timer
T2

Data
Memory
(256 bytes)

ALTERNATIVE FUNCTIONS OF PORT P4

TxD

8 bit
Port

8 bit Internal BUS

8051 Core
without ROM/RAM

ALTERNATIVE FUNCTIONS OF PORT P3

P1 P2 P3

INT1

Serial
UART
Port

UCP

INT0

ALTERNATIVE FUNCTIONS OF PORT P1

P0

Parallel I/O
Ports
&
External Bus

Timer 0
Timer 1
(16 bit)

T1

ALTERNATIVE FUNCTIONS OF PORT P0

A8..A15

AD0..AD7

RD

WR

PSEN

ALE

EA

XTAL2

XTAL1

T0

Comparator
Outputs
Selection

MUX
&
ADC

SCL

RST

EW

Watchdog
Timer
T3

I 2C
BUS

SDA

ALTERNATIVE FUNCTIONS OF PORT P5

ALTERNATIVE FUNCTIONS OF PORT P2

CMSR0 .. CMSR5
CMT0, CMT1

16 bit
Comparators
with
Registers

Dual
PWM

Reference

PWM0 PWM1

ADC0
..
STADC ADC7

ELECTRONIC APLICAT

Fig. 5.2 Structura microcontroller-ului 80C552.

Portul P4 - este un port bidirecional de 8 bii, cu rezistene interne de


pull-up.
Portul P5 - este un port de 8 bii numai de intrare. Pinii acestui port pot fi

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

131

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

i ADC0ADC7, adic 8 canale analogice de intrare ale convertorului analogicnumeric incorporat.


Operaiunea de citire-modificare-scriere la un port. Unele instruciuni
care citesc un port, citesc registrul pentru funcii speciale corespunztor, iar
altele citesc direct starea la momentul respectiv a pinului. Insruciunile care
citesc registrul sunt acelea care citesc o valoare pe care eventual o modific i
apoi o scriu din nou n registru. Acestea se numesc instruciuni citetemodific-scrie. Urmtoarele instruciuni acioneaz asupra registrului pentru
funcii speciale corespunztor, atunci cnd n ele apare numele unui port de
intrare-ieire: ANL, ORL, XRL, JBC, CPL, INC, DEC, DJNZ, MOV PX.Y,C
(scrie n bitul Y al portului X transportul (CARRY), CLR PX.Y (scrie 0 n bitul
Y al portului X), SET PX.Y (scrie 1 n bitul Y al portului X). Nu este foarte
evident c ultimele 3 instruciuni de mai sus sunt de tipul citete-modificscrie, dar ele sunt deoarece execuia lor const n citirea tuturor celor 8 bii ai
registrului, modificarea corespunztoare a bitului dorit i rescrierea rezultatului
n registru. Acest lucru se realizeaz astfel, pentru c, dac s-ar citi valoarea
semnalului la pin (care de fapt reprezint valoarea bitului corespunztor al
registrului pentru funcii speciale asociat portului), din cauza circuitelor
comandate nivelul de tensiune ar putea s nu fie cel corespunztor (de exemplu
dac pinul comand n baz un tranzitor care are emitorul la mas, iar bitul
corespunztor din registru ar fi 1, tensiunea pe pin ar fi egal cu tensiunea
unei jonciuni pn polarizat direct, adic 0,6-0,7 voli, care evident nu este un
nivel corespunztor lui 1.

5.1.2.1 PROGRAMAREA I UTILIZAREA


TEMPORIZATOARELOR
Aa cum s-a spus n paragraful relativ la registrele pentru funcii speciale,
microprocesorul 80552 are 4 registre temporizatoare / numrtoare. Ele sunt
descrise n continuare.
Temporizatorul 0 i temporizatorul 1 Ambele pot fi configurate s
funcioneze ca temporizatoare sau ca numrtoare de evenimente. Configurarea
este realizat cu ajutorul registrului de control a modului TMOD (el are adresa
direct 89H), aa cum este indicat mai jos:
(MSB)
gate

unde:

132

C/T
M1
Temporizator 0

M0

gate

C/T
M1
Temporizator 1

(LSB)
M0

gate - temporizatorul/numrtorul x este activat numai dac bitul


TRx din registrul de control TCON are valoarea 1 i acest bit are
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

valoarea 0 sau semnalul de pe pinul INTx/ are valoarea 1 (vezi


portul de intrare-ieire P3);
C/T - cnd acest bit are valoarea 0 registrul funcioneaz ca
temporizator, iar semnalul de numrare este dat de oscilatorul
microprocesorului divizat cu 12, care astfel incrementeaz registrul
corespunztor la fiecare ciclu main. Dac acest bit are valoarea 1
registrul funcioneaz ca numrtor, fiind incrementat la fiecare
tranziie din 0 n 1 a semnalului de pe pinul T0 sau T1 (vezi portul
de intrare ieire P3). Semnalul de pe acest pin este testat o dat pentru
fiecare ciclu main n starea S5 faza P2 a ciclului, dar numrtorul este
efectiv incrementat abia n starea S3 faza P1 a ciclului urmtor celului
care a detectat tranziia 1-0 a semnalului T1. De aceea frecvena
maxim de numrare este 1/24 din frecvena oscilatorului
microprocesorului. Pentru a putea fi detectat tranziia, semnalul
trebuie s stea n 0 o durat cel puin egal cu a ciclului main
(adic 12 perioade ale oscilatorului);
M1, M0 - selecteaz unul unul din cele patru moduri posibile de
operare descrise n continuare.
Modul 0. Este atunci cnd M1=0 i M0=0. El este identic pentru
ambele temporizatoare. n acest mod cele dou numrtoare pe 8 bii
THx i TLx sunt conectate n cascad, dar TLx funcioneaz ca un
numrtor pe cinci bii (deci un divizor cu 32), folosindu-se numai
primii 5 bii ai acestuia. Cnd numrtorul trece din starea n care toi
biii sunt pe 1 n starea cnd toi biii sunt pe zero, se seteaz
indicatorul de ntrerupere TFx din registrul de control TCON (TCON.7
pentru TF1 i TCON.5 pentru TF0);
Modul 1. Este atunci cnd M1=0 i M0=1. Este identic cu modul
0, doar c TLx se folosete ca numrtor pe 8 bii (se obine deci un
numrtor pe 16 bii). El este identic pentru temporizatoarele 0 i 1;
Modul 2. Este atunci cnd M1=1 i M0=0. Este identic pentru
ambele temporizatoare. n acest mod se folosete numai registrul TLx
ca un numrtor pe 8 bii cu rencrcare automat. Coninutul acestuia
trece din FFH n 00H, se seteaz TFx i se ncarc n TLx coninutul
lui THx, fr a fi afectat coninutul lui THx. THx poate fi ncarcat prin
program;
Modul 3. Este atunci cnd M1=1 i M0=1. n acest mod
temporizatorul 1 i oprete numrarea, conservndu-i coninutul. Este
ca i cnd TR1 ar fi egal cu 0. Temporizatorul 0 fucioneaz ca dou
numrtoare de 8 bii independente. TH0 este incrementat de semnalul
oscilatorului microproceso-rului divizat cu 12, dac TR1=1. La
trecerea coninutului lui de la valoare FFH la 00H este setat TF1. TL0
poate fi incrementat fie de semnalul de la oscilator dac C/T=0, fie de
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

133

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

semnalul aplicat la pinul T1 dac C/T=1. Incrementarea are loc dac


TR1=1 i gate=0 sau INT0/=1. La schimbarea coninutului de la
valoarea FFH la 00H este setat TF0.
Funcionarea celor dou temporizatoare este controlat de registrul
TCON. Configuraia acestuia este dat n continuare:
(MSB)
TF1

TR1

TF0

TR0

IE1

IT1

IE0

(LSB)
IT0

TF1 i TF0 sunt setate aa cum s-a artat mai sus, i sunt resetate prin
hardware atunci procesorul intr n rutina de ntrerupere;
TR1 i TR0 inhib (cnd sunt egale cu 0) sau permit numrarea (cnd
sunt egale cu 1) a temporizatorului corespunztor. Sunt setate sau
resetate prin program.

5.1.2.2 INTERFAA SERIAL SIO0


Aceasta este o interfa full-duplex, adic poate transmite i recepiona
date simultan. Are buffer la recepie, deci poate ncepe recepionarea unui nou
octet de date naite ca cel deja recepionat s fie preluat. Aa cum s-a menionat
n paragraful referitor la registrele cu funcii speciale (vezi registrul SBUF), o
scriere n SBUF ncarc registrul pentru transmisia datelor, iar citirea din SBUF
se face din registrul de recepie a datelor, separat fizic de cel de transmisie.
Interfaa serial SIO0 poate lucra n 4 moduri posibile. Acestea sunt urmtoarele:
Modul 0. Este atunci cnd SM0=0 i SM1=0 (biii 7 respectiv 6 din
registrul de control al interfeei SCON - unul din registrele pentru funcii
speciale). n acest mod interfaa serial funcioneaz semiduplex. Se
transmit cte 8 bii. Pe linia RxD (P3.0) se emit i se recepioneaz date.
Semnalul de ceas al transmisiei/recepiei se transmite/recepioneaz pe
linia TxD (P3.1). Transmisia este iniiat prin scrierea unui octet de date n
registrul SBUF. Ceasul pentru transmisie are o frecven egal cu 1/12 din
frecvena oscilatorului. La sfritul transmisiei celor 8 bii de date se
seteaz bitul de ntrerupere TI (bitul 1 din SCON), care apoi trebuie ters
prin program. Recepia este validat atunci cnd bitul REN (bitul 4 din
SCON) este 1 (el este setat i resetat prin program) i bitul de ntrerupere
pentru recepie RI (bitul 0 din SCON) este 0 (el este trecut n 1 la sfritul
recepionrii celor 8 bii de date i trebuie trecut n zero prin program).
Datele sunt emise ncepnd cu bitul cel mai puin semnificativ.
Modul 1. Este atunci cnd SM0=0 i SM1=1. n acest mod
transmisia este asincron pe 10 bii: un bit de start avnd valoarea 0, 8 bii
de date (primul este cel mai puin semnificativ) i un bit de stop avnd
134

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

valoarea 1. Datele sunt emise pe linia TxD i recepionate pe linia RxD.


Recepia este iniiat la detectarea unei tranziii din 1 n 0 a liniei RxD,
dac bitul REN=1. Octetul de date este ncrcat n SBUF, iar bitul de stop
este introdus n RB8 (adic bitul 2 din SCON) i poziioneaz n 1 bitul de
ntrerupere pentru recepie RI (discutat la modul zero) dac acesta era 0, i
dac SM2=0 (bitul 5 din SCON, setat sau resetat prin program) sau bitul
de stop recepionat este 1. Rata transmisiei este dat de semnalul de
depire (TF1) al temporizatorului 1. Transmisia este iniiat prin scrierea
unui octet de date n SBUF. n momentul transmisiei bitului de stop se
poziioneaz n 1 bitul de ntrerupere la transmisie SI. Recepia este
iniiat n urma deteciei unei tranziii 1-0 pe linia RxD.
Modul 2. Este atunci cnd SM0=1 i SM1=0. n acest mod
tramsmisia este full duplex, asincron, cu 11 bii transmii (pe linia TxD)
i recepionai pe linia RxD), astfel: un bit de start egal cu 0, 8 bii de date
(primul este cel mai puin semnificativ), un al noulea bit de date
programabil i un bit de stop egal cu 1. Cel de al noulea bit de date n
cazul transmisiei reprezint coninutul lui TB8 (bitul 3 din SCON), iar n
cazul recepiei este introdus n RB8. Transmisia este iniiat prin scrierea
unui octet de date n SBUF. n timpul transmisiei bitului de stop este setat
TI. Recepia este identic cu cea din modul 1, numai c n RB8 se
introduce al noulea bit de date. ncrcarea datelor recepionate n SBUF
i RB8 i setarea lui RI este validat numai dac RI=0 i, SM2=0 sau al
noulea bit de date este 1. Altfel octetul de date recepionat se pierde.
Rata de transmisie poate 1/32 din frecvena oscilatorului dac SMOD=1
(bitul 7 din registrul pentru funcii speciale PCON) sau 1/64 din frecvena
acestuia dac SMOD=0.
Modul 3. Este atunci cnd SM0=1 i SM0=1. El este identic cu
modul 2, cu singura deosebire c rata transmisiei de semnalul de depire
TF1 al timerului T1.
OBSERVAIE: n cazul modurilor 1 i 3 cnd este folosit
temporizatorul 1 pentru fixarea ratei de transmisie, ntreruperea acestuia trebuie
dezactivat. El poate fi folosit ca temporizator sau numrtor n oricare din
cele 3 moduri posibile de funcionare. De obicei este folosit ca temporizator n
modul 2 cu autoncrcare. n acest caz rata de transmisie se calculeaz cu
formula:
f OSC
2 SMOD

(5.1)
32
12 [256 (TH1)]

5.1.2.3 IEIRILE MODULATE N DURAT


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

135

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Microcontroller-ul 80C552 posed dou canale de ieire modulate n


durat. Aceste ieiri genereaz impulsuri ale cror durate i factori de umplere
pot fi programate. Frecvena de repetiie a impulsurilor este controlabil prin
intermediul registrului PWMP, avnd lungimea de 8 bii. Expresia frecvenei
impulsurilor de ieire este dat de urmtoarea ecuaie:
f OSC
f PWM =
(5.2)
2 (1 + PWMP ) 255
Registrul PWMP asigur semnalul de ceas pentru un numrtor, att
registrul PWMP, ct i numrtorul fiind comune pentru ambele canale de
ieire. Numrtorul funcioneaz modulo 255. Valoarea de 8 bii a
numrtorului este comparat cu dou registre, PWM0 i PWM1, asociate
fiecare cte unui canal de ieire. Dac coninutul acestor registre este mai mare
dect valoarea curent a numrtorului, atunci semnalele de ieire sunt forate la
nivel cobort. n schimb, dac coninutul acestor registre este mai mic, sau cel
puin egal, cu valoarea curent a numrtorului, atunci semnalele de ieire sunt
forate la nivel ridicat - HIGH. Ca urmare, duratele impulsurilor de ieire sunt
determinate de coninutul registrelor PWM0 i PWM1, denumite i registre de
prescalare.
Prin integrarea semnalelor de la ieirile modulate n durat se poate obine
un convertor digital-analog dual.
n fig. 5.3 este prezentat diagrama funcional a celor dou canale de
ieire modulate n durat.
PWM0

Internal BUS

8-Bit Comparator

fOSC

PWMP

8-Bit Counter

1:2

8-Bit Comparator

Output Buffer

Output Buffer

PWM0

PWM1

PWM1

Fig. 5.3 Structura ieirilor modulate n durat.

ncrcarea registrelor de prescalare cu valorile 00H sau FFH determin ca


ieirile canalelor s rmn constante la nivel ridicat sau cobort.
Reprogramarea registrelor de prescalare determin modificarea imediat a
136

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ieirilor modulate, nefiind nevoie s se atepte pn la terminarea perioadei


curente.
Factorul de umplere al impulsurilor de la ieire rezult ca fiind:
PWM
=
(5.3)
255 PWM

5.1.2.4 SECIUNEA ANALOGIC A


MICROCONTROLLERULUI
Seciunea analogic este reprezentat de un multiplexor analogic i de un
convertor analog-digital cu aproximaii succesive, cu rezoluia de 10 bii, ce
furnizeaz rezultatul n cod binar direct (fig. 5.4).
Tensiunea de referin a convertorului analog-digital se aplic structurii
prin intermediul unui pin dedicat acestei manipulri.
Un ciclu de conversie dureaz 50 de cicli main, ceea ce nseamn
aproximativ 50 s pentru frecvena ceasului de 11,0592 MHz. Codul binar de
ieire nu prezint discontinuiti n funcia de transfer a convertorului analogdigital.
Att intrrile multiplexorului analogic, ct i intrarea convertorului
analog-digital accept tensiuni de intrare n gama (0 +5)V.
Conversia analog-digital este efectuat prin metoda aproximaiilor
succesive; n fig. 5.5 sunt reprezentate elementele componente ale convertorului
analog-digital cu aproximaii succesive. Structura conine un convertor digitalanalogic (DAC) care convertete coninutul registrului de aproximaii succesive
ntr-o tensiune VDAC. Aceast tensiune este comparat cu tensiunea de intrare,
Vin; ieirea comparatorului este furnizat circuitului de comand a registrului de
aproximaii succesive, care controleaz funcionarea acestuia.
O conversie este iniiat prin setarea bitului ADCS (ADC Start) din
registrul ADCON (A/D Control). Acest bit poate fi modificat att prin software,
ct i prin hardware sau combinat.
Declanarea unei conversii analog-digitale exclusiv prin mijloace
software se poate face doar atunci cnd bitul ADCON.5 (ADEX) este setat la
0; nceperea unui ciclu de conversie se efectueaz prin setarea bitului de
control ADCS. La iniierea prin software a unei conversii, aceasta este demarat
la nceputul ciclului main care urmeaz celui n care a fost setat bitul ADCS.
Declanarea unei conversii analog-digitale prin mijloace combinate
software-hardware se poate face doar atunci cnd bitul ADCON.5 = 1;
iniierea unui ciclu de conversie poate fi efectuat fie la fel ca n cazul
precedent, prin setarea bitului de start (ADCS), fie prin aplicarea unui front
cresctor pinului extern STADC. n aceast ultim situaie, frontul aplicat
trebuie precedat de un nivel logic cobort, care s dureze minimum un ciclu
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

137

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

main, respectiv urmat de un nivel logic ridicat, cu durata de minimum un ciclu


main. Tranziia aplicat pinului STADC este recunoscut la sfritul ciclului
main curent, iar conversia este iniiat la nceputul urmtorului ciclu main.
Urmtoarele dou cicluri main sunt folosite pentru iniializarea
convertorului analog-digital. La sfritul primului ciclu, se citete indicatorul de
stare ADCS; dac indicatorul este citit pe durata efecturii unei conversii,
rezultatul citirii acestui indicator const n poziionarea acestuia n 1. La
sfritul celui de-al doilea ciclu main ncepe eantionarea semnalelor de
intrare.
STADC

AVSS

ADCS
ADCI
ADEX
D0
D1

D2
D3
D4
D5
D6
D7
D8
D9

ADR2

ADR1

ADCON

AVDD

10-Bit A/D Converter

MUX

ADR0

ADC0
ADC1
ADC2
ADC3
ADC4
ADC5
ADC6
ADC7

AVREF- AVREF+

ADCH

Internal Bus

Fig. 5.4 Seciunea analogic a microcontroller-ului 80C552.

Pe durata urmtoarelor 8 cicluri main este eantionat tensiunea de


intrare aplicat pinului, anterior selectat, al portului P5. Aceast tensiune trebuie
s rmn stabil pe aceast durat pentru a se obine un rezultat corect. Se
admite o vitez de variaie a tensiunii eantionate de cel mult 10V/ms.
n continuare, se efectueaz conversia analog-digital propriu-zis.
Aceasta se desfoar prin setarea bitului cel mai semnificativ la 1, de ctre
circuitul de control al registrului de aproximaii succesive; ieirea registrului
SAR este convertit ntr-o tensiune proporional i comparat cu tensiunea de
intrare. Dac aceasta este mai mare, bitul MSB rmne setat la 1; n caz
contrar, acest bit este resetat. Procesul continu n ordine invers a importanei
biilor, pn cnd toi cei zece bii au fost testai. n acest moment, rezultatul
conversiei este coninut n registru de aproximaii succesive.
Sfritul conversiei analog-digitale pe 10 bii este semnalizat prin setarea
138

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

bitului ADCI (ADCON.4) n cadrul registrului de comenzi i stare. Cei mai


semnificativi 8 bii ai rezultatului sunt memorai n registrul ADCH. Cei mai
puin semnificativi doi bii sunt memorai n biii ADCON.7 i ADCON.6 ai
registrului de comenzi i stare. Utilizatorul poate ignora cei mai puin
semnificativi doi bii ai rezultatului i poate utiliza doar cei mai semnificativi 8
bii, memorai n registrul ADCH.
Fig. 5.6 ilustreaz desfurarea procesului de conversie analog-digital cu
aproximaii succesive.
n orice situaie, durata unei conversii este de 50 cicli main. Bitul de
sfrit de conversie, ADCI, este setat, iar bitul de start conversie, ADCS, este
resetat dup 50 de cicli main de la poziionarea pe nivel ridicat al acestuia din
urm.
Biii de control ADCON.0, ADCON.1 i ADCON.2 sunt utilizai pentru
comanda intrrilor de selecie ale multiplexorului analogic, de tip 8:1.
O rutin de conversie aflat n desfurare nu este afectat de o comand
de start, indiferent de natura sa (hardware sau software).
Rezultatul obinut la ncheierea unui proces de conversie rmne
neafectat, cu bitul ADCI poziionat pe 1, chiar dac se comand intrarea n
modul inactiv (idle).
La intrarea n modul de lucru idle sau power-down al
microcontroller-ului, o conversie analog-digital aflat n plin proces de
desfurare este ntrerupt. Rezultatele pariale obinute pn acum sunt
iremediabil pierdute, nefiind transferate n registrele rezultat i/sau n registrul
de comenzi i stare.
Convertorul analog-digital dispune de pini proprii de alimentare (AVDD i
AVSS) i de doi pini pentru tensiunea de referin extern (Vref+ i Vref-).
Rezultatul conversiei poate fi calculat prin utilizarea urmtoarei caracteristici de
transfer:
V VREF
V VREF
N = 210 IN
= 1024 IN
(5.4)
VREF+ VREF
VREF+ VREF
Prin utilizarea numai a celor mai semnificativi 8 bii ai rezultatului,
coninui n registrul ADCH, caracteristica de transfer devine:
V VREF
V VREF
N = 28 IN
(5.5)
= 256 IN
VREF+ VREF
VREF+ VREF
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

139

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

V IN

+
Comp
_

V DAC

DAC

Succesive
Approximation
Register

Succesive
Approximation
Control Logic

START

STOP

V DAC

1
VIN

15
16

7
8

3
4

59
64

29
32

1
2

t/

Fig. 5.5 Convertorul analog-digital.

140

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Start of Conversion

SOC

Reset SAR

[Bit Pointer] = MSB

[Bit]n = 1

Conversion Time

Test
Complete

[Bit]n = 0

[Bit Pointer] +1

END

Test Bit
Pointer

END

End of Conversion

EOC

Fig. 5.6 Organigrama de desfurare a unei conversii.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

141

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

5.1.2.5 MSURAREA INTERVALELOR DE TIMP PRIN


UTILIZAREA REGISTRELOR DE CAPTARE A
EVENIMENTELOR
Atunci cnd un eveniment extern recursiv este reprezentat sub forma unui
front cresctor sau descresctor care este aplicat unuia dintre cei patru pini de
captare a evenimentelor, intervalul de timp dintre dou evenimente poate fi
msurat folosind temporizatorul T2 i unul dintre cele patru registre de captare a
evenimentelor, CT0, CT1, CT2 sau CT3. La apariia unui eveniment, coninutul
timer-ului T2 este transferat n registrul de captare a evenimentelor selectat i
este generat un semnal de ntrerupere specific acestui registru, CT0I, CT1I,
CT2I sau CT3I. Indicatorii de stare anterior menionai reprezint patru dintre
cei 8 bii ai registrului de funcii speciale, denumit TM2IR.
CT0I

INT

CT1I

INT

CT1I

CT0I

CT0

CT2I

INT

CT3I

CT2I

CT1

CT2

Prescaler

Timer T2

INT

CT3I

CT3

off
fOSC

8-bit overflow interrupt


1:12

16-bit overflow interrupt

T2
RT2
T2ER
External reset enable
Comparator

CM0 (Set)

INT

Comparator

CM1 (Reset)

INT

Comparator

INT

CM2 (Toggle)

Fig. 5.7 Seciunea de captare a evenimentelor i comparare a


microcontrollerului 80C552.

Aceast rutin de ntrerupere poate fi folosit pentru calcularea


intervalului de timp corespunztor, dac se cunoate valoarea anterioar a timerului T2. Pentru o frecven a ceasului de 12 MHz programarea timer-ului poate
fi fcut astfel nct acesta s furnizeze indicaii de depire la fiecare 524 ms.
142

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Dac intervalul de timp dintre dou evenimente succesive este mai scurt de 524
ms, atunci calculul intervalului de timp este foarte simpu, rutina de ntrerupere
fiind mult mai scurt. Pentru intervale de timp mai mari de 524ms, trebuie
utilizat o extensie a timer-ului T2.
Timer-ul T2 este conectat la patru registre de 16 bii, menionate anterior
i, de asemenea la trei registre de comparare, cu lungimea de 16 bii (fig. 2.7).
Registrele de comparare pot fi folosite pentru a seta, reseta sau comuta pinii de
ieire ai portului P4 la anumite intervale preprogramate de timp.

5.2 PREZENTAREA SETULUI DE INSTRUCIUNI AL


MICROCONTROLLER-ULUI 80C51
1
ACALL
Funcia:
Descriere:

Exemplu:

Octei:
Ciclii main:
Codare:
Operaii:

addr11
Absolute Call
Apeleaz necondiionat o subrutin localizat la adresa
indicat. Instruciunea incrementeaz contorul programului
de dou ori, pentru a obine adresa urmtoarei instruciuni,
apoi ncarc n stiv rezultatul pe 16 bii (primul octet este cel
mai puin semnificativ) i incrementeaz pointerul stivei de
dou ori. Adresa destinaie e obinut prin concatenarea
succesiv a celor 5 bii mai semnificativi ai contorului
programului, dup incrementare, biii 75 ai codului operaiei
i octetul al doilea al instruciunii. Subrutina apelat trebuie
s nceap n acelai bloc (de dimensiune 2 koctei) al
memoriei de program ca i primul octet al instruciunii care
urmeaz instruciunii ACALL. Nu se afecteaz indicatorii de
condiie.
Iniial registrul pointer de stiv, SP, coninea valoarea 07H.
Eticheta SUBRTN e localizat n memorie la adresa 0345H.
Dup execuia instruciunii:
ACALL
SUBRTN
la locaia 0123H, SP va conine valoarea 09H, locaiile
interne RAM 08H i 09H vor conine 25H i, respectiv 01H,
iar PC va contine 0345H.
2
2
a10 a9 a8 1
0001
a7 a6 a5 a4
a3 a2 a1 a0
ACALL
(PC) (PC)+2
(SP) (SP)+1
(SP) (PC70)

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

143

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

(SP) (SP)+1
(SP) (PC158)
(PC100) adresa blocului
2
ADD
Funcia:
Descriere:

Exemplu:

3
ADDC
Funcia:
Descriere:

144

A, <scr-byte>
Adunare
Instruciunea ADD adun acumulatorul cu octetul indicat,
lsnd rezultatul n acumulator. Indicatorii de transport i de
transport auxiliar sunt setai, respectiv dac exist un
transport de la bitul 7 sau de la bitul 3, i sunt resetai dac nu
exist transport. Cnd se adun ntregi fr semn, indicatorul
de transport indic depire. Indicatorul de depire, OV, este
setat dac este un transport la bitul 6, dar nu mai departe de
bitul 7, sau un transport de la bitul 7, dar nu provenit de la
bitul 6. n celelalte situaii, OV este resetat. Cnd se adun
ntregi cu semn, indicatorul OV semnalizeaz un numr
negativ ca sum a doi operanzi pozitivi, sau o sum pozitiv
ca rezultat a adunrii a doi operanzi negativi. Sunt permise 4
moduri de adresare a operandului surs: adresare prin
registru, adresare direct, adresare indirect prin registru sau
adresare imediat.
Acumulatorul conine valoarea 0C3H (11000011B) iar
registrul 0 conine 0AAH (10101010B). Instruciunea:
ADD A, R0
va determina ca valoarea coninut de acumulator s fie 6DH
(01101101B), cu indicatorul AC resetat i att indicatorul de
transport, ct i OV, setate la 1.
A, <scr-byte>
Adunare cu indicatorul de transport
Instruciunea ADDC adun acumulatorul cu octetul indicat i
cu indicatorul de transport, lsnd rezultatul n acumulator.
Indicatorii de transport i de transport auxiliar sunt setai,
respectiv dac exist un transport de la bitul 7 sau de la bitul
3, i sunt resetai dac nu exist transport. Cnd se adun
ntregi fr semn, indicatorul de transport indic depire.
indicatorul de depire, OV, este setat dac este un transport
la bitul 6, dar nu mai departe de bitul 7, sau un transport de la
bitul 7, dar nu provenit de la bitul 6. n celelalte situaii, OV
este resetat. Cnd se adun ntregi cu semn, indicatorul OV
semnalizeaz un numr negativ ca sum a doi operanzi
pozitivi, sau o sum pozitiv ca rezultat a adunrii a doi

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

4
AJMP
Funcia:
Descrierea:

Exemplu:

5
ANL
Funcia:
Descriere:

Exemplu:

operanzi negativi. Sunt permise 4 moduri de adresare a


operandului surs: adresare prin registru, adresare direct,
adresare indirect prin registru sau adresare imediat.
Acumulatorul conine 0C3H (11000011B) i registrul 0
conine 0AAH (10101010B) cu setarea indicatorului de
transport. Instruciunea:
ADDC A, R0
va determina ca acumulatorul s conin valoarea 6EH
(01101110B), cu indicatorul AC resetat, iar indicatorul de
transport i OV setate la 1.
addr11
Absolute Jump
AJMP transfer execuia programului la adresa indicat, care
este format la momentul rulrii prin concatenarea celor 5 bii
mai semnificativi ai contorului programului, PC, (dup
incrementarea de dou ori a acestuia), biii 75 de cod ai
operaiei i al doilea octet al instruciunii. Destinaia trebuie
s fie n acelai bloc de 2 koctei din memoria de program ca
primul octet al instruciunii urmtoare instruciunii AJMP.
Eticheta JMPADR e situat la locaia de memorie 0123H.
Instruciunea
AJMP
JMPADR
este situat la locaia 0345H i va ncarca contorul
programului, PC, cu 0123H.
<dest-byte>, <scr-byte>
I LOGIC ntre variabile de tip octet
ANL efectueaz operaia de I LOGIC ntre variabilele de tip
octet indicate i ncarc rezultatul n variabila destinaie. Nu
afecteaz nici un indicator de condiie. Cei doi operanzi
permit 6 combinri de moduri de adresare. Cnd destinaia
este acumulatorul, sursa poate fi adresat prin registru, direct,
indirect prin registru sau imediat; cnd destinaia este o
adres direct, sursa poate fi acumulatorul sau o dat
imediat.
Not: Cnd aceast instruciune este utilizat pentru a
modifica un port de ieire, valoarea utilizat ca dat iniial
va fi citit de la ieire, nu de la pinii de intrare.
Dac acumulatorul conine valoarea 0C3H (11000011B) i
registrul 0 conine valoarea 55H (01010101B) atunci
instruciunea

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

145

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

ANL A, R0
va determina ca acumulatorul s conin valoarea 41H. Cnd
destinaia este un octet direct adresabil, aceast instruciune
va reseta combinaiile de bii din orice locaie RAM sau
registru hardware. Octetul mascat care determin resetarea
biilor va fi o constant coninut n instruciune sau o
valoare creat n acumulator la rulare. Instruciunea
ANL P1, #0111001B
va reseta biii 7, 3 i 2 ai portului de ieire 1.
6
ANL
Funcia:
Descriere:

Exemplu:

7
CJNE
Funcia:
Descriere:

146

C, <scr-bit>
I LOGIC ntre variabile de tip bit
Dac valoarea boolean a bitului surs este un 0 logic, atunci
reseteaz indicatorul de transport; altfel acest indicator
rmne n starea curent. Simbolul ('/') precedind operandul,
n limbaj de asamblare, indic faptul c complementul logic
al bitului adresat e utilizat ca valoare surs, fr ns ca bitul
surs s fie afectat. Pentru operandul surs este permis
numai adresarea direct.
Seteaz indicatorul de transport dac i numai dac P1.0=1,
ACC.7=1 i OV=0:
MOV C, P1.0
; incarc carry cu bitul 0 al portului
1
ANL C, ACC.7 ; SI cu bitul 7 al acumulatorului
ANL C, /OV
; SI cu negatul indicatorului
depire.
<dest-byte>, <scr-byte>,rel
Comparaie i salt dac nu este egalitate
Instruciunea CJNE compar cei doi operanzi i determin un
salt n execuia programului dac valorile lor nu sunt egale.
Destinatia saltului este compus prin adunarea deplasarii
relative cu semn, n ultimul octet al instruciunii, cu
coninutul contorului programului, PC, dup incrementarea
acestuia la adresa de start a urmtoarei instruciuni.
Indicatorul de transport e setat dac valoarea ntregului fr
semn a octetului destinaie e mai mic dect valoarea
ntregului fr semn a <scr-byte>; altfel, indicatorul de
transport e resetat. instruciunea nu afecteaz nici un operand.
Cei doi operanzi permit 4 combinaii de moduri de adresare:
acumulatorul poate fi comparat cu orice octet direct sau
imediat adresabil, cu orice locaie indirect de RAM sau

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

8
CLR
Funcia:
Descriere:
Exemplu:

9
CLR
Funcia:
Descriere:

Exemplu:

10
CPL
Funcia:

registrii de lucru pot fi comparai cu o constant imediat.


Acumulatorul conine valoarea 34H. Registrul 7 conine
valoarea 56H. Prima instruciune din secvena:
CJNE R7, #60H, NOT_EQ
R7=60H
NOT_EQ: JC REQ_LOW
seteaz indicatorul de transport i sare la instruciunea cu
eticheta NOT_EQ. Prin testarea indicatorului de transport,
aceast instruciune determin dac coninutul registrului R7
e mai mare sau mai mic dect 60H.
Dac data care a fost prezent la portul 1 este 34 H, atunci
instruciunea
WAIT:
CJNE A, P1, WAIT
reseteaz indicatorul de transport i continu cu urmtoarea
instruciune din secven, pn cnd acumulatorul se egaleaz
cu data citit din portul P1. Dac n portul P1 au fost
introduse alte valori, programul va bucla n acest punct pn
cnd data din portul P1 va deveni 34H.
A
Reseteaz (iniializeaz) acumulatorul
Acumulatorul este resetat (toti biii sunt 0). Nu este afectat
nici un indicator de condiie.
Acumulatorul conine valoarea 5CH (01011100B).
Instruciunea:
CLR A
va determina coninutul acumulatorului s fie 00H
(00000000B).
bit
Reseteaz bitul
Bitul specificat este resetat (poziionat la 0). Nici un alt
indicator de condiie nu este afectat. Instruciunea CLR bit
poate opera asupra indicatorului de transport sau asupra
oricrui bit direct adresabil.
Portul 1 a fost nscris cu valoarea 5DH (01011101B).
Instruciunea
CLR P1,2
va lsa portul P1 setat la valoarea 59H (01011001B).
A
Complementarea acumulatorului

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

147

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Descriere:

Exemplu:
Instruciunea:

Fiecare bit al acumulatorului este complementat logic


(complement fa de 1). Biii care anterior erau 1 devin 0, i
invers. Nici un indicator de condiii nu este afectat.
Acumulatorul conine valoarea 5CH (01011100B).
CPL A
va determina ca acumulatorul s conin valoarea 0A3H
(10100011B).

11
CPL
Funcia:
Descriere:

Exemplu:

12
DA
Functia:
Descriere:

148

bit
Complementeaz o variabil de tip bit
Instruciunea efectueaz complementul variabilei de tip bit
specificate. Un bit care era 1 devine 0, i invers. Nu sunt
afectai indicatorii de con-diii.CLR poate opera asupra
bitului de transport sau asupra oricrui alt bit direct adresabil.
Not: Cnd instruciunea este utilizat pentru a modifica un
bit de ieire, valoarea utilizat ca dat original va fi citit ca
dat de ieire i nu de la intrare.
Portul 1 a fost nscris anterior cu valoarea 5DH
(01011101B).Secvena de instruciuni:
CPL P1,1
CPL P1,2
va determina ca portul s fie setat la valoarea 5BH
(01011011B).
A
Ajustarea zecimal a acumulatorului
Instruciunea DA A ajusteaz valoarea pe 8 bii din
acumulator, ca rezultat al ultimei instruciuni de adunare a
dou variabile (reprezentate n format BCD-mpachetat),
producnd dou cifre de cte 4 bii. Pentru a se efectua
instruciunea de adunare au fost folosite instruciunile ADD
sau ADDC. Dac biii 30 ai acumulatorului reprezint un
numr mai mare dect 9 (xxx1010xxx1111), sau dac
indicatorul AC este setat, se adun valoarea 6 la acumulator,
producnd astfel un digit optimal n format BCD. Aceast
adunare intern va seta indicatorul de transport daca s-a
propagat o depire de la cei mai puin semnificativi 4 bii
spre biii mai semnificativi, dar altfel nu va reseta indicatorul
de transport. Dac indicatorul de transport e setat n urma
acestei operaii, sau dac cei 4 bii mai semnificativi
reprezint un numr mai mare dect 9 (1010xxx1111xxxx),

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

13
DEC
Funcia:
Descriere:

aceti bii sunt incrementai cu 6, producnd digitul optimal


n format BCD. Indicatorul de transport va indica dac suma
celor dou variabile BCD originale este mai mare dect 100,
permind sumarea zecimal n precizie multipl. Indicatorul
OV este afectat. Execuia acestei instruciuni dureaz un
singur ciclu. Elemetul de noutate este acela c aceast
instruciune permite conversia zecimal adugnd 00H, 06H,
60H sau 66H la coninutul acumulatorului.
Not: Instruciunea DA A nu poate converti, pur i simplu,
un numr hexazecimal, coninut n acumulator, n format
BCD.
Acumulatorul are valoarea 56H (01010110B) reprezentnd
digiii n format BCD mpachetat ai numrului zecimal 56.
Registrul R3 conine valoarea 67H (01100111B), reprezentnd digiii n format BCD mpachetat ai numarului 67.
Indicatorul de transport este setat. Secventa de instruciuni:
ADDC
A,R3
DA A
va face o adunare n complement binar fa de doi, avnd ca
rezultat valoarea 24H (00100100B) indicnd n format BCD
mpachetat numrul zecimal 24, cele mai mici dou cifre ale
sumei zecimale ntre 56, 67 i transportul intern. Indicatorul
de transport va fi setat, indicnd c a aprut o depaire
zecimal. Suma real ntre 56, 67 i 1 este 124. Variabilele
BCD pot fi incrementate sau decrementate prin adugarea lui
01H sau 99H. Dac iniial acumulatorul conine valoarea
30H, secvena:
ADD A, #99H
DA A
va determina ca acumulatorul s conin valoarea 99H
(30+99=129). Octetul mai puin semnificativ al sumei poate
fi interpretat ca fiind: 30-1=29.
byte
Decrementare variabil de tip octet
Variabila de tip octet indicat este decrementat cu 1. O
valoare initial de 00H va determina ca rezultatul s fie
0FFH. Nu afecteaz nici un indicator. Sunt permise 4 moduri
de adresare: acumulator, adresare prin registru, adresare
direct, adresare indirect prin registru.
Not: Cnd instruciunea este utilizat ca s modifice un port
de ieire, valoarea utilizat ca dat original va fi citit de la

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

149

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

14
DIV
Funcia:
Descrierea:

Exemplu:

15
DJNZ
Funcia:
Descriere:

150

ieire, i nu de la intrare.
Registrul R0 conine valoarea 7FH (01111111B). Locaiile
interne RAM 7EH i 7FH conin valorile 00H i 40H.
Instruciunile:
DEC @R0
DEC R0
DEC @R0
vor lsa registrul R0 setat la valoarea 7EH i locaiile interne
RAM 7EH i 7FH coninnd 0FFH i 3FH.
AB
mprire
Instruciunea DIV AB mparte ntregiul fr semn, pe 8 bii,
din acumulator la ntregul, pe 8 bii, fr semn din registrul
B. Dup execuia instruciunii, acumulatorul va conine ctul
mpririi, iar registrul B restul. Indicatorul de transport i OV
vor fi resetate.
Excepie: Dac registrul B coninea iniial valoarea 00H,
valoarea returnat n acumulator i registrul B vor fi
subdefinite i va fi setat indicatorul de depire. Indicatorul
de transport va fi resetat n orice caz.
Acumulatorul conine valoarea zecimal 251 (0FBH sau
11111011B) i registrul B conine valoarea 18 (12H sau
00010010B). Instructiunea:
DIV AB
va determina ca acumulatorul s conin valoarea 13 (0DH
sau 00001101B) i valoarea 17 (11H sau 00010001B) in B.
Att indicatorul de transport, ct i indicatorul OV vor fi
ambii resetai.
<byte>, <rel-addr>
Decrementare i salt dac rezultatul nu este zero
Instruciunea DJNZ decrementeaz octetul indicat i
determin un salt la adresa indicat de al doilea operand dac
valoarea rezultat nu e zero. O valoare iniial 00H va deveni
0FFH. Nu afecteaz indicatorii de condiii. Destinaia saltului
va fi obinut prin adugarea valorii deplasrii relative cu
semn, n ultimul octet al instruciunii, la coninutul PC, dup
incrementarea acestuia la adresa primul octet al instruciunii
urmtoare. Operandul decrementat poate fi un registru sau
direct octetul adresat.
Not: Atunci cnd aceast instruciune este utilizat ca s

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

16
INC
Funcia:
Descriere:

Exemplu:

modifice un port de ieire, valoarea utilizat ca dat iniial


va fi citit de la ieire, nu de la pinii de intrare.
Locaiile interne RAM 40H, 50H, 60H conin respectiv
valorile 01H, 70H, 15H. Secvena de instruciuni:
DJNZ 40H, LABEL_1
DJNZ 50H, LABEL_2
DJNZ 60H, LABEL_3
va cauza un salt la instruciunea cu eticheta LABEL_2 cu
valorile 00H, 6FH i 15H n cele 3 locaii RAM. Primul salt
n-a fost fcut, pentru c rezultatul era 0.
Aceast instruciune asigur o metod simpl de a executa o
bucl de program de un numr de ori, sau adugarea printr-o
singur instruciune a unei ntrzieiri (ntre 2 i 512 cicli
main). Instructiunea:
MOV R2, #8
TOGGLE: CPL P1.7
DJNZ R2, TOGGLE
va schimba bitul P1.7 de 8 ori, determinnd apariia a 4
impulsuri de ieire la bitul 7 al portului de iesire P1. Fiecare
puls inseamn trei cicluri main, doi pentru execuia
instruciunii DJNZ i unul pentru modificarea bitului.
<byte>
Incrementare octet
Instruciunea INC incrementeaz cu 1 variabila octet
indicat.O valoare iniial de 0FFH va deveni n urma
incrementrii 00H.Nu se afecteaz nici un indicatorde
condiii. Sunt permise trei moduri de adresare: adresare prin
registru, adresare direct, adresare indirect prin registru.
Not: Atunci cnd aceast instruciune este utilizat ca s
modifice un port de ieire, valoarea utilizat ca dat iniial
va fi citit de la ieire i nu de la intrare.
Registrul R0 conine valoarea 7EH (01111110B). Locaiile
interne RAM cu adresele 7EH i 7FH conin valorile 0FFH i
respectiv 40H. Secvena de instruciuni:
INC @R0
INC R0
INC @R0
va lsa registrul R0 setat la 7FH i locaiile interne RAM cu
adresele 7EH i 7FH coninnd valorile 00H i 41H.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

151

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

17
INC
Funcia:
Descriere:

Exemplu:

18
JB
Funcia:
Descriere:

Exemplu:

19
JBC
Funcia:
Descriere:

152

DPTR
Incrementarea pointer-ului de date
Instruciunea incrementeaz cu 1 pointerul de date (16 bii).
Este utilizat o incrementare pe 16 bii. O depire la octetul
mai puin semnificativ al pointerului (DPL), de la valoarea
0FFH la 00H, va incrementa octetul mai semnificativ (DPH).
Nu sunt afectai indicatorii de condiii. Singurul registru care
poate fi manipulat de aceast instruciune este pointerul de
date, DPTR.
Registrele DPH i DPL conin valorile 12H i respectiv
0FEH. Setul de instruciuni:
INC DPTR
INC DPTR
INC DPTR
va schimba coninutul registrelor DPH i DPL la valorile 13H
i respectiv 01H.
bit, rel
Salt dac bitul e setat la 1
Dac bitul indicat e un 1 se efectueaz un salt n program la
adresa indicat, altfel se trece la executarea instruciunii
urmtoare. Destinaia saltului este obinut prin adunarea
deplasrii relative cu semn, n al treilea octet al instruciunii,
la coninutul contorului de progam, PC, dup incrementarea
PC la valoarea primului octet al instruciunii urmtoare. Bitul
de test nu este modificat i nu se afecteaz nici un indicator.
Data de la portul de intrare P1 e 11001010B. Acumulatorul
conine valoarea 56. Secvena de instruciuni:
JB P1.2, LABEL1
JB ACC.2, LABEL2
va cauza un salt al execuiei programului la eticheta
LABEL2.
bit, rel
Salt dac bitul e setat la 1 i terge bitul
Dac bitul indicat este 1, se efectueaz un salt la adresa
indicat. Altfel, se trece la executarea instruciunii urmtoare.
Bitul nu va fi resetat dac este deja 0. Destinaia saltului este
obinut prin adunarea deplasrii relative cu semn, n al
treilea octet al instruciunii, la coninutul contorului de
progam, PC, dup incrementarea PC la valoarea primului
octet al instruciunii urmtoare. Nici un indicator de condiii

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

20
JC
Funcia:
Descriere:

Exemplu:

21
JMP
Funcia:
Descriere:

Exemplu:

nu este afectat.
Not: Cnd instruciunea este utilizat ca sa testeze un pin de
ieire, valoarea utilizat ca dat iniial va fi citit de la ieire,
i nu de la intrare.
Acumulatorul conine valoarea 56H (01010110B). Setul de
instruciuni:
JBC ACC.3, LABEL 1
JBC ACC.2, LABEL 2
va face ca execuia programului s continue de la
instruciunea identificat prin eticheta LABEL2, cu
acumulatorul modificat la valoarea 52H (01010010B).
rel
Salt dac este setat indicatorul de transport
Dac indicatorul de transport e setat, se efectueaz un salt n
program, la adresa indicat. Altfel, se trece la executarea
instruciunii urmtoare. Destinaia saltului este obinut prin
adunarea deplasrii relative cu semn, n al doilea octet al
instruciunii, la coninutul contorului de progam, PC, dup
incrementarea PC de dou ori. Nu sunt afectai indicatorii de
condiie.
Indicatorul de transport este resetat .Secvena de instruciuni:
JC LABEL1
CPL C
JC LABEL2
va seta indicatorul de transport i va face ca execuia
programului s continue cu instruciunea de la eticheta
LABEL2.
@A+DPTR
Salt indirect
Instruciunea adun coninutul pe 8 bii, fr semn, al
acumulatorului cu pointerul de date pe 16 bii i ncarc suma
rezultat in contorul programului, PC. Coninutul acestuia va
reprezenta adresa instruciunii urmtoare. Adunarea pe 16 bii
se face astfel: transportul de la cei 8 bii mai puin
semnificativi se propag spre biii mai semnificativi. Nu se
afecteaz indicatorii i nu se schimb coninutul
acumulatorului i nici al pointerului de date.
n acumulator se afl un numr oarecare, de la 0 la
6.Urmtoarea secven de instruciuni va efectua un salt la
una din cele 4 instruciuni AJMP ncepnd de la JMP_TBL.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

153

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

MOV DPTR, #JMP_TBL


JMP @A+DPTR
AJMP
LABEL0
JMP_TBL: AJMP
LABEL1
AJMP
LABEL2
AJMP
LABEL3
Dac acumulatorul conine 04H cnd ncepe aceast
secven, execuia va sri la eticheta LABEL2. Amintim c
AJMP e o instruciune pe doi octei, deci instruciunea de salt
va incepe la orice alt adres.
22
JNB
Funcia:
Descriere:

Exemplu:

23
JNC
Funcia:
Descriere:

Exemplu:

154

bit, rel
Salt dac bitul nu e setat la 1
Dac bitul indicat este 0, se efectueaz un salt la adresa
indicat. Altfel, se trece la executarea instruciunii urmtoare.
Destinaia saltului este obinut prin adunarea deplasrii
relative cu semn, n al treilea octet al instruciunii, la
coninutul contorului de progam, PC, dup incremen-tarea PC
la valoarea primului octet al instruciunii urmtoare. Bitul
testat nu este modificat. Nu este afectat nici un indicator de
condiii.
Data prezent la portul P1 de intrare este 11001010B.
Acumulatorul conine valoarea 56H (01010110B). Secvena
de instruciuni:
JNB P1.3, LABEL1
JNB ACC.3, LABEL2
va face ca execuia programului s continue de la
instruciunea cu eticheta LABEL2.
rel
Salt dac indicatorul de transport nu este setat
Dac indicatorul de transport este 0, se sare instruciunea de
la adresa indicat. Altfel, se trece la executatea instruciunii
urmtoare. Destinaia saltului este obinut prin adunarea
deplasrii relative cu semn, n al doilea octet al instruciunii,
la coninutul contorului de progam, PC, dup incrementarea
PC de dou ori, pentru a se ajunge la adresa primului octet al
instruciunii urmtoare. Indicatorul de transport nu e
modificat.
Indicatorul de transport este setat. Secvena de instruciuni:
JNC LABEL1
CPL C

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

JNC LABEL2
va reseta indicatorul de transport i va face ca execuia
programului s continue de la instruciunea specificat de
eticheta LABEL2.
24
JNZ
Funcia:
Descriere:

Exemplu:

25
JZ
Funcia:
Descriere:

Exemplu:

26
LCALL
Funcia:

rel
Salt dac coninutul acumulatorului nu este 0
Dac unul dintre biii acumulatorului este 1, se efectueaz un
salt la adresa indicat. Altfel, se continu cu executarea
instruciunii urm-toare. Destinaia saltului este obinut prin
adunarea deplasrii relative cu semn, n al doilea octet al
instruciunii, la coninutul contorului de progam, PC, dup
incrementarea PC de dou ori .Acumulatorul nu se modific
i nici un indicator de condiii nu este afectat.
Acumulatorul are valoarea 00H. Instruciunile:
JNZ LABEL1
INC A
JNZ LABEL2
vor seta acumulatorul la valoarea 01H i vor determina
continuarea programului de la instruciunea cu eticheta
LABEL2.
rel
Salt dac coninutul acumulatorului este zero
Dac toi biii din acumulator sunt zero, se execut un salt la
adresa indicat. Altfel, se continu cu execuia instruciunii
urmtoare. Destinaia saltului este obinut prin adunarea
deplasrii relative cu semn, n al doilea octet al instruciunii,
la coninutul contorului de progam, PC, dup incrementarea
PC de dou ori. Acumulatorul nu se modific i nici un
indicator de condiii nu este afectat.
Acumulatorul conine iniial valoarea 01H. Secvena de
instruciuni:
JZ
LABEL1
DEC A
JZ
LABEL2
va determina ca acumulatorul s conin valoarea 00H i va
face ca execuia programului s continue cu instruciunea de
la LABEL2.
addr16
Long Call

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

155

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Descriere:

Exemplu:

27
LJMP
Funcia:
Descriere:

Exemplu:

28
MOV
Funcia:
Descriere:

Exemplu:

156

Instruciunea LCALL va apela o subrutin aflat la adresa


indicat. Instruciunea incrementeaz cu trei contorul
programului pentru a genera adresa urmtoarei instruciuni,
i salveaz rezultatul (pe 16 biti) n stiv (mai nti octetul
mai puin semnificativ). Se incrementeaz pointerul stivei cu
2. Octeii, mai puin semnificativ i mai semnificativ, ai
contorului programului, PC, sunt ncrcai cu al doilea i al
treilea octet al instruciunii LCALL. Execuia programului va
continua cu instruciunea de la aceast adres. Subrutina
poate ncepe oriunde n cei 64 koctei ai spatiului de memorie
de program. Nu sunt afectai indicatorii de condiie.
Iniial, pointerul stivei are valoarea 07H. Eticheta SUBRTN
este asociat locaiei de memorie de program cu adresa
1234H. Dup execuia instruciunii:
LCALL
SUBRTN
la locaia de memorie cu adresa 0123H, pointerul stivei va
conine 09H, locaiile interne RAM cu adresele 08H i 09H
vor conine 26H i 01H, iar PC va conine 1235H.
addr16
Long Jump
Instruciunea LJMP produce un salt necondiionat la adresa
indicat, prin ncrcarea octeilor mai puin semnificativ i
mai semnificativ ai contorului programului, PC, cu al doilea
i al treilea octet al instruciunii. Destinaia poate fi oriunde n
spaiul de adresare al memoriei program de 64 koctei. Nu se
afecteaz indicatorii de condiii.
Eticheta JMPADR e asociat instruciunii localizate la adresa
1234H n memoria de program. Instruciunea:
LJMP JMPADR
va ncrca contorul programului cu valoarea 1234H.
<dest-byte>, <scr-byte>
Mut variabila surs, de tip octet, n variabila destinaie, de
tip octet
Variabila octet indicat prin al doilea operand este copiat n
locaia specificat de primul operand. Octetul surs nu este
afectat. Nu se afecteaz nici un registru sau indicator de
condiii. Este de departe cea mai flexibil operaiune. Permite
14 combinaii de moduri de adresare ale sursei i destinaiei.
Locaia intern RAM cu adresa 30H conine valoarea 40H.
Locaia intern RAM cu adresa 40H conine valoarea 10H.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Data de la portul de intrare P1 este 11001010B (0CAH).


Instruciunile:
MOV R0, #30H
MOV A, @R0
MOV R1, A
MOV B, @R1
MOV @R1, P1
MOV P2, P1
las valoarea 30H n registrul R0, 40H n acumulator i
registrul P1, 10H n registrul B i 0CAH (11001010B) n
locaia RAM cu adresa 40H i n portul de ieire P2.
29
MOV
Funcia:
Descriere:

Exemplu:

30
MOV
Funcia:
Descriere:

Exemplu:

<dest-bit>, <scr-bit>
Mut data de tip bit de la surs la destinaie
Variabila boolean indicat prin al doilea operand este
copiat la locaia specificat de primul operand. Unul dintre
operanzi trebuie s fie indicatorul de transport, cellalt poate
fi orice bit adresabil direct. Nici un alt registru sau indicator
nu este afectat.
Indicatorul de transport este iniial setat. Data prezent la
portul de intrare P3 este 11000101B. Data nscris anterior n
portul de ieire P1 este 35H (00110101B). Instruciunile:
MOV P1.3, C
MOV C, P3.3
MOV P1.2, C
vor lsa indicatorul de transport resetat i portul P1 la
valoarea 39H (00111001B).
DPTR,#data16
ncarc pointerul de date cu o constant pe 16 bii
Pointerul de date este ncrcat cu constanta pe 16 bii
indicat. Aceasta se ncarc n al doilea i al treilea octet al
instruciunii. Al doilea octet (DPH) este octetul mai
semnificativ, iar al treilea octet (DPL) conine octetul mai
puin semnificativ al constantei specificate. Nu se afecteaz
indicatorii. Este singura instruciune de tranfer pe 16 bii.
Instruciunea:
MOV DPTR, #1234H
va ncrca valoarea 1234H n pointerul de date. DPH va
conine 12H i DPL va conine 34H.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

157

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

31
MOVC
Funcia:
Descriere:

Exemplu:

32
MOVX
Funcia:
Descriere:

158

A,@A+<base-reg>
Mut octetul de cod
Instruciunea MOVC ncarc acumulatorul cu un octet de cod
sau o constant din memoria-program. Adresa octetului
reprezint suma coninutului, pe 8 bii, fr semn, al
acumulatorului i coninutul, pe 16 bii al registrului de baz,
care poate fi pointerul de date sau contorul programului. In
ultimul caz, PC este incrementat la adresa urmatoarei
instruciuni dinaintea sumrii cu acumulatorul. Altfel,
registrul baz nu e modificat. Adunarea pe 16 biti se face
astfel nct un transport de la cei 8 bii mai puin
semnificativi s poat fi propagat la ceilali. Nu sunt afectai
indicatorii de condiii.
In acumulator se gsete o valoare cuprins ntre 0 i 3.
Urmtoarele instruciuni vor translata valoarea din
acumulator nspre una din cele 4 valori definite la directiva
DB (define byte):
REL_PC: INC
A
MOVC
A, @A+PC
RET
DB
66H
DB
77H
DB
88H
DB
99H
Dac subrutina este apelat cu acumulatorul avnd valoarea
01H, va returna 77 n acumulator. Instruciunea INC A
plasat naintea instruciunii MOVC a permis ocolirea
instruciunii RET din secven. Dac civa octei de cod
separ nceputul de instruciunea MOVC din secven,
numrul corespunzator va fi adugat la acumulator.
<dest-byte>,<scr-byte>
Mutare extern
Instruciunea MOVX transfer date ntre acumulator i un
octet al memoriei externe. Sunt dou tipuri de instruciuni
diferite, dup cum se furnizeaz o adresare indirect la RAMul extern, pe 8 sau pe 16 bii. In primul caz, coninutul
registrelor R0 i R1 furnizeaz o adres pe 8 bii multiplexat
cu data din portul P0. 8 bii sunt suficieni pentru decodarea
extensiei I/O externe pe o arie de RAM mic. Pentru o arie
mai mare, pinii porturilor pot fi utilizati pentru ieirea biilor
mai semnificativi de adres. Aceti bii vor fi controlai de o

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

33
MUL
Funcia:
Descriere:

Exemplu:

instruciune de ieire care va urma instruciunii MOVX. In al


doilea caz, pointerul de date genereaz o adres pe 16 bii.
Portul P2 va marca ieirea celor 8 bii superiori de adres
(coninutul DPH) iar portul P0 va multiplexa cei 8 bii
inferiori (DPL) cu cei de date. Registrul funciilor speciale P2
va reine coninutul anterior, iar bufferul de ieire P2 va emite
coninutul lui DPH. Aceast formul e mai rapid i mai
eficient cnd se acceseaz zone de date foarte mari (mai
mari de 64 koctei), deoarece nu este nevoie de instruciuni
suplimentare pentru a seta porturile de ieire. Este posibil i
combinaia celor dou tipuri de instruciuni MOVX. O zon
extins de memorie RAM i liniile sale de adres de ordin
superior, administrate de portul P2, pot fi adresate prin
pointerul de date, iar codul de ieire al biilor superiori de
adres ai portului P2 va fi urmat de o instruciune MOVX
utiliznd registrele R0 sau R1.
O zon de memorie RAM extern, cu lungimea de 256
octei, utiliznd multiplexarea liniilor de adrese i de date este
conectat la portul P0 al microcontrollerului 8051. Portul P3
asigur liniile de control pentru memoria RAM extern.
Porturile P1 i P2 sunt utilizate pentru intrrile i ieirile
normale. Registrele R0 i R1 conin valorile 12H i respectiv
34H. Locaia cu adresa 34H a RAM extern conine valoarea
56H. Instruciunile:
MOVX
A,@R1
MOVX
@R0,A
copiaz valoarea 56H att n acumultor, ct i in locaia RAM
extern cu adresa 12H.
AB
nmulire
Instruciunea MUL AB nmulete ntregii pe 8 bii din
acumulator i din registrul B. Octetul mai puin semnificativ
al produsului pe 16 bii este lsat n acumulator, iar octetul
mai semnificativ n registrul B. Dac produsul e mai mare
dec 255 (0FFH) indicatorul de depire este setat; altfel, este
zero. Indicatorul de transport este ntotdeauna resetat.
Iniial, acumulatorul conine valoarea 80 (50H), iar registrul
B, valoa-rea 160 (0A0H). Instruciunea
MUL AB
va furniza produsul, 12.800 (3200H), registrul B devine 32H
(00110010B) iar acumulatorul 00H. Indicatorul de depire

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

159

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

este setat, iar cel de transport este zero.


34
NOP
Funcia:
Descriere:

Exemplu:

35
ORL
Funcia:
Descriere:

Exemplu:

160

Nici o operaie
Execuia continu cu instruciunea urmtoare. In afara
contorului de program, PC, care este incrementat, nici un
registru sau indicator nu este afectat.
Este nevoie de producerea unui puls de depire scurt pe
bitul 7 al portului P2, durnd exact 5 cicluri. O secven
SETB/CLR va genera un puls cu durata de un ciclu, la care
trebuie adunati ali patru, ca n secvena:
CLR P2.7
NOP
NOP
NOP
NOP
SETB P2.7
<dest-byte>, <scr-byte>
SAU LOGIC pentru variabile de tip octet
Instruciunea ORL realizeaz funcia SAU LOGIC ntre
variabilele de tip octet indicate, ncrcnd rezultatul n octetul
destinaie. Nu se afecteaz nici un indicator de condiii. Cei
doi operanzi permit 6 combinaii ale modurilor de adresare.
Cnd destinaia este acumulatorul, sursa poate fi adresat ca
registru, direct, registru-indirect sau imediat; cnd destinaia
este o adres direct, sursa poate fi acumulatorul sau o data
imediat.
Not: Atunci cnd aceast instruciune este utilizat ca s
modifice un port de ieire, valoarea utilizat ca dat iniial
va fi citit de la ieire i nu de la intrare.
Dac acumulatorul conine valaorea 0C3H (11000011B) i
registrul R0 valoarea 55H (01010101B), instruciunea
ORL A,R0
va lsa n acumulator valoarea 0D7H(11010111B).
Cnd destinaia este un octet adresat direct, instruciunea
poate seta combinaii de bii n orice locaie RAM sau
registru hardware. ablonul biilor care trebuie setai este
determinat de un octet-masc, care poate fi o constant n
instruciune sau o variabil creat n acumulator la rulare.
Instruciunea:
ORL P1, #00110010B

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

va seta biii 5, 4 i 1 ai portului de ieire P1.


36
ORL
Funcia:
Descriere:

Exemplu:

37
POP
Funcia:
Descriere:

Exemplu:

38
PUSH
Funcia:
Descriere:

Exemplu:

C, <scr-bit>
SAU LOGIC pentru variabile de tip bit
Instruciunea ORL C, bit seteaz indicatorul de transport dac
valoarea boolean e un 1 logic. Instruciunea nu modific
starea indicatorului de transport. Simbolul (/) precednd
operandul, n limbaj de asamblare, indic faptul c se
utilizeaz compementul logic al bitului adresat ca valoare
surs, fr ca bitul surs s fie afectat. Nici un alt indicator nu
e afectat.
Secvena prezentat seteaz indicatorul de transport dac i
numai dac P1.0=1, ACC.7=1, OV=0:
ORL C, P1.0
ORL C, ACC.7
ORL C, /OV
direct
Extragere din stiv
Instruciunea citete coninutul locatiei interne RAM adresat
prin pointerul stivei, iar pointerul stivei este decrementat cu
1. Valoarea citit este apoi transferat n octetul direct
adresabil indicat. Nu se afecteaz nici un indicator de
condiii.
Pointerul stivei conine iniial valoarea 32H i locaiile
interne RAM cu adresele 30H pn la 32H conin valorile
20H, 23H, 01H. Instruciunile:
POP DPH
POP DPL
las pointerul stivei setat la valoarea 30H i pointerul de data
la 0123H. In acest punct, instruciunea:
POP SP
va seta pointerul stivei la valoarea 20H. In acest caz special,
pointerul stivei a fost decrementat la valoarea 2FH nainte de
ncrcarea cu valoarea extras (20H).
direct
Salvare n stiv
Pointerul stivei, SP, este incrementat cu 1. Coninutul
variabilei indicate e copiat n locaia intern RAM adresat de
pointerul stivei. Nici un alt indicator nu este afectat.
Intrnd ntr-o rutin de ntrerupere, pointerul stivei, SP,

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

161

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

conine valoarea 09H. Pointerul de date conine valoarea


0123H. Instruciunile:
PUSH
DPL
PUSH
DPH
vor seta pointerul stivei la valoarea 0BH i vor ncrca 23H i
01H n locaiile interne RAM cu adresele 0AH i 0BH.
39
RET
Funcia:
Descriere:

Exemplu:

40
RETI
Funcia:
Descriere:

Exemplu:

162

Revenire din subrutin


Instruciunea RET extrage succesiv octeii mai semnificativ
i mai puin semnificativ ai adresei din stiv, decrementind
pointerul stivei cu 2. Execuia programului continu de la
adresa rezultat, n general instruciunea ce sccede
instruciunile ACALL sau LCALL. Nici un indicator nu este
afectat.
Pointerul stivei conine iniial valoarea 0BH. Locaiile interne
RAM cu adresele 0AH i 0BH conin valorile 23H i,
respectiv 01H. Instruciunea RET va seta pointerul stivei la
valoarea 09H, iar execuia programului va continua de la
locaia cu adresa 0123H.

Revenire din rutina de tratare a unei ntreruperi


Instruciunea RETI extrage succesiv octeii mai semnificativ
i mai puin semnificativ ai contorului programului, PC, din
stiv i reactiveaz logica de ntreruperi s accepte ntreruperi
suplimentare, cu acelai nivel de prioritate ca cea tocmai
procesat. Pointerul stivei e decrementat prin 2. Nici un alt
registru nu este afectat. Cuvntul de stare a programului,
PSW, nu este rencrcat automat cu starea sa anterioar
tratrii ntreruperii. Execuia programului continu de la
adresa rezultat, care e n general, instruciunea imediat
urmtoare celei dup care a fost detectat apelarea
ntreruperii. Dac o ntrerupere cu nivel de prioritate mai mic
sau egal a aprut n timp ce se executa RETI, acea
instruciune va fi executat naintea revenirii din ntrerupere.
Pointerul stivei conine valoarea initial 0BH. O ntrerupere a
fost detectat n timpul instruciunii care se termin la locaia
cu adresa 0122H. Locaiile interne RAM cu adresele 0AH i
0BH conin valorile 23H i respectiv 01H. Instruciunea:
RETI
va lsa pointerul stivei setat la valoarea 09H i va continua

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

execuia programului de la adresa 0123H.


41
RL
Funcia:
Descriere:

Exemplu:

42
RLC
Funcia:
Descriere:

Exemplu:

43
RR
Funcie:
Descriere:

Exemplu:

44
RRC
Funcia:
Descriere:

A
Rotete acumulatorul la stnga
Cei 8 bii ai acumulatorului sunt roti cu un bit la stnga.
Bitul 7 ajunge n poziia bitului 0. Nici un indicator nu e
afectat.
Acumulatorul conine valoarea iniial 0C5H (11000101B).
Instruc-iunea:
RL A
va determina ca acumulatorul s conin valoarea 8BH
(10001011B), fr a afecta indicatorul de transport.
A
Rotirea acumulatorului la stnga prin indicatorul de transport
Cei 8 bii ai acumulatorului i indicatorul de transport sunt
amndoi rotii cu un bit la stnga. Bitul 7 ajunge n
indicatorul de transport, iar acesta pe poziia bitului 0. Nu
afecteaza nici un alt indicator.
Acumulatorul conine valoarea iniial 0C5H (11000101B), i
indicatorul de transport este 0. Instruciunea:
RLC A
va lsa n acumulator valoarea 8BH (10001010B), cu setarea
indicatorului de transport.
A
Rotirea acumulatorului la dreapta
Cei 8 bii ai acumulatorului sunt rotii cu un bit la dreapta.
Bitul 0 ajunge n poziia bitului 7. Nici un indicator nu e
afectat.
Acumulatorul conine valoarea 0C5H (11000101B).
Instruciunea:
RR A
va seta acumulatorul la valoarea 0E2H (11100010B), cu
indicatorul de transport neafectat.
A
Rotirea acumulatorului la dreapta prin indicatorul de
transport.
Cei 8 bii ai acumulatorului i indicatorul de transport sunt
rotii mpreun cu un bit la dreapta. Bitul 0 ajunge n
indicatorul de transport, iar acesta n poziia bitului 7. Nici un

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

163

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

45
SETB
Funcia:
Descriere:

Exemplu:

46
SJMP
Funcia:
Descriere:

Exemplu:

47
SUBB
Funcia:
Descriere:

164

alt indicator nu este afectat.


Acumulatorul conine valoarea 0C5H, iar transportul este 0.
Instruciunea:
RRC A
va determina ca acumulatorul s conin valoarea 62H
(01100010B), cu indicatorul de transport setat la 1.
<bit>
Seteaz bitul specificat
Instruciunea SETB seteaz bitul indicat la 1. SETB poate
opera asupra indicatorului de transport sau oricrui alt bit
direct adresabil. Nu afecteaz ali indicatori.
Indicatorul de transport este resetat. Portul de ieire P1 a fost
nscris cu valoarea 34H (00110100B). Instruciunile:
SETB C
SETB P1.0
vor seta indicatorul de transport la 1 i data de ieire la portul
P1 va fi 35H (00110101B).
rel
Short Jump
Instruciunea SJMP determin un salt necondiionat n
program, la adresa indicat. Destinaia saltului este compus
prin sumarea deplasrii cu semn, n al doilea octet al
instruciunii, cu coninutul contorului programului, PC, dup
incrementarea PC de dou ori. Saltul permis are o valoare de
la -128 de octei (precedeni instruciunii SJMP) la +127
octei (urmtori instruciunii SJMP).
Eticheta RELADR e asociat instruciunii de la locaia cu
adresa 0123H. Instruciunea:
SJMP RELADR
va duce la locaia cu adresa 0100H. Dup ce instruciunea
este executat, PC va conine valoarea 0123H.
A, <src-byte>
Scdere cu mprumut.
Instruciunea SUBB va scdea att variabila octet indicat,
ct i indicatorul de transport din acumulator, lsnd
rezultatul n acumulator. SUBB seteaz indicatorul de
transport (de mprumut) dac este nevoie de un mprumut
pentru bitul 7 i sterge indicatorul C altfel (dac C a fost setat
naintea execuiei instruciunii SUBB, aceasta indic c a fost

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

48
SWAP
Funcie:
Descriere:

Exemplu:

49
XCH
Funcie:
Descriere:

necesar un mprumut la pasul anterior, ntr-o scdere cu


precizie multipl, astfel nct transportul este sczut din
acumulator odat cu operandul surs). Indicatorul AC e setat
dac a fost necesar un mprumut pentru bitul 3 i resetat n
caz contrar. Indicatorul OV e setat dac e necesar un
mprumut la bitul 6, dar nu la bitul 7, sau la bitul 7, dar nu la
bitul6. La scderea ntregilor cu semn, OV indic un numr
negativ cnd o valoare negativ e scazut dintr-o valoare
pozitiv, sau un rezultat pozitiv cnd un numr pozitiv e
sczut dintr-un numr negativ. Operandul surs permite 4
moduri de adresare: prin registru, direct, indirect prin
registru, imediat.
Acumulatorul conine valoarea 0C9H (11001001B), registrul
R2 conine valoarea 54H (01010100B) i indicatorul de
transport e setat. Instruciunea:
SUBB
A, R2
va determina valoarea 74H (01110100B) n Acumulator, cu
indicatorul de transport i AC resetai, dar indicatorul OV
setat. Se observ c:
0C9H-54H =75H
Diferena ntre acest rezultat i cel de mai sus este datorat
faptului c indicatorul de transport (mprumut) a fost setat
naintea operaiei. Dac starea indicatorului de transport nu e
cunoscut nainte de nceperea unei scderi n precizie simpl
sau multipl, va fi n mod explicit resetat de o instruciune:
CLR C.
A
Interschimb intern n acumulator
Instruciunea SWAP A interschimb cmpurile de cte 4 bii,
mai semnificativ i mai puin semnificativ, ale
acumulatorului (biii 74 i biii 30). Operaia poate, de
asemenea, s fie gndit ca o instruciune de rotaie pe 4 bii.
Nici un indicator nu este afectat.
Acumulatorul conine valoarea 0C5H (11000101B).
Instruciunea:
SWAP
A
determin n acumulator valoarea 5CH (01011100B).
A, <byte>
Schimb coninutul acumulatorului cu o variabil de tip octet
Instruciunea XCH ncarc acumulatorul cu coninutul

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

165

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

50
XCHD
Funcia:
Descriere:

Exemplu:

51
XRL
Funcie:
Descriere:

Exemplu:
166

variabilei indicate, scriind n acelai timp coninutul original


al acumulatorului n variabila de tip octet indicat. Operatorii
surs i destinaie pot folosi adresarea prin registru, adresarea
direct sau indirect prin registru.
Registrul R0 conine adresa 20H. Acumulatorul conine
valoarea 3FH (00111111B). Locaia intern RAM cu adresa
20H conine valoarea 75H (01110101B). Instruciunea:
XCH A,@R0
va determina ca locaia RAM cu adresa 20H s conin
valoarea 3FH (00111111B) i 75H (01110101B) n
acumulator.
A,@Ri
Schimb digit
Instruciunea XCHD schimb cmpul de 4 bii mai puin
semnificativ al acumulatorului (biii 30), reprezentnd n
general un digit hexazecimal sau BCD, cu acela al locaiei
interne RAM adresat indirect prin registrul specificat.
Cmpul de 4 bii mai semnificativ (biii 74) ai registrelor nu
sunt afectai. Nici un indicator de condiii nu este afectat.
Registrul R0 conine adresa 20H. Acumulatorul conine
valoarea 36H (00110110B). Locaia intern RAM cu adresa
20H conine valoarea 75H (01110101B). Instruciunea:
XCHD
A, @R0
va determina ca locaia RAM cu adresa 20H s conin
valoarea 76H (01110110B) i acumulatorul 35H
(00110101B).
<dest-byte>, <src-byte>
SAU EXCLUSIV ntre variabile de tip octet
Instruciunea XRL realizeaz funcia SAU EXCLUSIV la
nivel de bit ntre variabilele octet indicate, incrcnd
rezultatul n octetul destinaie. Nu afecteaz indicatorii de
condiii. Cei doi operanzi permit 6 combinaii de moduri de
adresare. Cnd destinaia este acumulatorul, sursa poate fi
adresat ca registru, direct, registru-indirect sau imediat; cnd
destinaia este o adres direct, sursa poate fi acumulatorul
sau o dat imediat.
Not: Atunci cnd aceast instruciune e utilizat ca s
modifice un port de ieire, valoarea utilizat ca dat iniial
va fi citit de la ieire, nu de la intrare.
Acumulatorul conine valoarea 0C3H (11000011B) i

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

registrul R0 conine valoarea 0AAH (10101010B).


Instructiunea:
XRL A, R0
va determina ca acumulatorul s conin valoarea 69H
(01101001B).
Cnd destinaia e un octet direct adresabil, aceast
instruciune poate ncrca complementele logice
ale
combinaiilor de bii n orice locaie RAM sau registru
hardware. ablonul biilor care vor fi complementai e
determinat de un octet masc, ce poate fi att o constant
coninut n instruciune, ct i o variabil obinut n
acumulator n timpul rulrii programului. Instruciunea:
XRL P1, #00110001B
va complementa biii 5, 4 i 0 ai portului de ieire P1.

5.3 SISTEM DE DEZVOLTARE CU MICROCONTROLLER


80C552
Sistemul de dezvoltare iniial, IMC500, a fost astfel conceput nct
permite dezvoltarea rapid a aplicaiilor n domenii diverse - automatizri
industriale, aparate de msur, industrie uoar, medicin, industria
automobilelor, domeniul casnic, etc.
Utilizarea tehnologiei CMOS l recomand pentru aplicaiile care necesit
un consum redus de energie i care necesit imunitate ridicat la perturbaii.
Preul sczut de cost l recomand att pentru produsele de serie, ct i
pentru prototipuri i unicate.
n fig. 5.8 este prezentat structura general a sistemului de dezvoltare
IMC500.
n fig. 5.9 este prezentat detaliat structura de interconexiune cu exteriorul
a sistemului de dezvoltare cu microcontroller 80C552.
Sistemul de dezvoltare este destinat n principal dezvoltrii de programe.
Hardware-ul suplimentar utilizat - de exemplu tastatura, afiaj cu cristale
lichide, etc. - permite unificarea din punct de vedere constructiv a diferitelor
produse. Acest proces de unificare hardware direcioneaz efortul de proiectare
spre programe de aplicaie.
Acest sistem de dezvoltare, bazat pe microcontroller-ul 80C552, acoper
din punct de vedere hardware i software aplicaiile dezvoltate cu
microprocesoarele 80C31, 80C32 i alte procesoare din familia 8051, putnd fi
folosit la dezvoltarea de aplicaii cu aceste procesoare.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

167

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


Q
11,0592 MHz

LCD
OUT 0..7
OUT 8..15
IN 0..7
CONNECTOR CONNECTOR CONNECTOR CONNECTOR
XD1

X15

X14

LATCH
74HCT374

I 2 C Bus
XTAL1

OE

XTAL2

X16

LATCH
74HCT374
LE

S0

BUFFER
74HCT244

OE

LE

S1

OE

S2

S3

AD0 .. AD7

SDA

EEPROM
ST24C04

SCL

MICROCONTROLLER
RESET

RD
WR

AD0 .. AD7

AD0 .. AD7

RAM
DATA

To PC

74HCT373

TxD

RS-232
MAX232

LATCH

AD0 .. AD7

RxD

OE

WR
A15
RD
CS
KM62256

LE

A0 ..A14
ADR

A15

A15
RD
CS
27C256

74HCT08

IN ADC 0..7

P5.0 .. P5.7

IN/OUT 0..7

P4.0 .. P4.7

PSEN

FFFF H

A8 .. A15

A0 .. A15

A0 .. A15

A8 .. A15

DATA
MEMORY
- RAM (EXTERNAL)
32 Kbytes
PROGRAM
MEMORY
- EPROM (EXTERNAL)
32 Kbytes

DATA

ADR

A0.. A7

ALE

PWM 0..1

EPROM

A0 ..A14

A5
.
.
A7

C 80C552
74HCT08

8000 H
7FFF H

DCD
0
1
2
3
4
5
6
7

A..C

A8
A15

G1
G2A
G2B

S4
S5
S6
S7

74HCT138

0000 H

a) Structura de baz a sistemului de dezvoltare IMC500.


U6
XD1

X5

U13

U10
U1

KM
62256

27C256

GND
VCC
X7

CD4

Q1

X12

PCB80C552

X11

U11

C2

C3

CD1

X13

U12

74LS373

D5

74LS374

74LS08

X6

U6

74LS04

CD3

74LS244

74LS374

X2

U5

R9
R10
U7

74LS138

X16

X15

X14

X1
CD6
CD5
CX3 +

+
+
CX1

CX5
MAX 232

CX4

C4
R6

X4

C5

+
CX2 PB1

+
R1 C1

U2

XA1

X10
CD2
JP1
R7
R8

ST24C04

R2

R4

R3

R5

X3

b) Amplasarea componentelor sistemului de dezvoltare IMC500.


Fig. 5.8 Sistemul de dezvoltare IMC500.

168

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

CONECTOR X1 (SERIAL_LINK)
1
NC
2
TXD
3
RXD
4
NC
5
GND
6
NC
7
NC
8
NC
9
NC
CONECTOR X2 (DECODE)
1
VCC
2
S0/
3
VCC
4
S1/
5
VCC
6
S2/
7
NC
8
S3/
9
NC
10
S4/
11
GND
12
S5/
13
GND
14
S6/
15
GND
16
S7/
CONECTOR X3 (I2C_LINK)
1
SDA
2
SCL
CONECTOR X4 (INTERNAL_MEM)
1
VCC
2
EA/
3
GND
4
EA/

CONECTOR X6(ROM_EN)
1
VCC_P
2
VCC
3
GND
4
NC
CONECTOR X7 (MAIN_SUPPLY)
1
GND
2
VCC
GND

CMSR4
CMSR1
EW/
PW M1
VCC
ADC1
ADC3
ADC5
ADC7

CONECT OR X11 (C)


1
CMSR4
2
3
CMT2
4
5
RST
6
7
CT1I
8
9
CT3I
10
11
RT2
12
13
PSDA
14
15
PTXD
16
17
T0
18

CMSR3
CMSR5
CMT1
CT0I
CT2I
T2
PSCL
PRXD
INT0

CONECTOR X13 (C)


1
AVSS
2
3
AVREF4
5
AD1
6
7
AD3
8
9
AD5
10
11
AD7
12
13
ALE
14
15
A15
16
17
A13
18

ADC7
AVREF+
AD0
AD2
AD4
AD6
EA/
PSEN/
A14

CONECTOR X15 (OUT_LOW)


1
AX0
2
VCC
3
AX1
4
VCC
5
AX2
6
NC
7
AX3
8
NC
9
AX4
10
NC
11
AX5
12
NC
13
AX6
14
GND
15
AX7
16
GND

CONECTOR X9 (SW1_RESET)
1
R6_VCC
2
R1_GND
CONECT OR X10 (C)
1
CMSR2
2
3
CMSR0
4
5
PWM1
6
7
STAD
8
9
ADC0
10
11
ADC2
12
13
ADC4
14
15
ADC6
16
17
AVDD
18

INT1
T1
RD/
NC
XT1
GND
A8
A10
A12

CONECTOR X14 (OUT_HIGH)


1
AX8
2
VCC
3
AX9
4
VCC
5
AX10
6
NC
7
AX11
8
NC
9
AX12
10
NC
11
AX13
12
NC
13
AX14
14
GND
15
AX15
16
GND

CONECTOR X5 (ROM_SEL)
1
PSEN/
2
CE_P
3
RD/
4
CE_P

CONECTOR X8 (JP1)
1
EW /
2

CONECTOR X12 (C)


1
T0
2
3
WR/
4
5
NC
6
7
XT2
8
9
GND
10
11
NC
12
13
A9
14
15
A11
16
17
A14
18

CONECTOR X16 (INPUT)


1
IX0
2
3
IX1
4
5
IX2
6
7
IX3
8
9
IX4
10
11
IX5
12
13
IX6
14
15
IX7
16

VCC
VCC
NC
NC
NC
NC
GND
GND

CONECT OR XA1 (SUPPLY)


1
VCC
2
GND
CONECTOR XD1 (LCD)
1
VSS
2
3
V0
4
5
R/W
6
7
D0
8
9
D2
10
11
D4
12
13
D6
14

VDD
RS
EN
D1
D3
D5
D7

5
( V e d e r e d in s p r e
t e r m in a le )

Cupla CANNON (mama) 9 pini


catre sistemul de dezvoltare cu
microcontroller 80C552

TxD (2)

(2) TxD

RxD (3)

(3) RxD

GND (5)

(7) GND
(4) RTS
(5) CTS

( V e d e r e d in s p r e
t e r m in a le ) 1 3

(6) DSR
(8) DCD
(20) DTR

14

25

Cupla CANNON (mama) 25 pini


catre sistemul de calcul (PC)

Fig. 5.9 Structura interconexiunilor sistemului de dezvoltare IMC500.


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

169

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Sistemul de dezvoltare realizat dispune de urmtoarele resurse hardware


i caracteristici tehnice:
microcontroller PCB80C552 (fr memorie intern de program),
lucrnd la o frecven maxim a ceasului de 16 MHz;
frecvena ceasului sistemului de dezvoltare 11,059200 MHz;
memoria de date extern (DATA MEMORY), static, implementat
cu un circuit de tip KM62256AL, realizat n tehnologie CMOS, cu
capacitatea de 32 koctei i caracterizat de un timp de acces de 35ns.
Spaiul de adresare ocupat de memoria de date, n cadrul sistemului de
dezvoltare, este cuprins ntre adresele 8000H i FFFFH. Selectarea
memoriei RAM, activ pe nivel cobort, se efectueaz cu semnalul
A15 , iar semnalele de control sunt WR pentru scriere i PSEN RD
pentru citire (pentru a se putea rula din memoria RAM aplicaiile
transferate pe interfaa serial de la PC);
memoria de program extern (PROGRAM MEMORY),
implementat cu un circuit EPROM de tip 27C256, realizat n
tehnologie CMOS, cu capacitatea de 32 koctei i caracterizat de un
timp de acces de 70ns. Spaiul de adrese ocupat de memoria de
program extern n cadrul sistemului de dezvoltare, este cuprins ntre
0000H i 7FFFH. Selectarea memoriei RAM, activ pe nivel cobort,
se efectueaz cu semnalul A15 , iar semnalul de control este PSEN
pentru citire. Memoria extern de program conine programul de
aplicaie sau n faza de dezvoltare a acestuia conine un program
monitor;
interfa serial compatibil RS-232 de mare vitez, full duplex, fr
semnale de dialog, funcionnd doar cu protocol software;
bus serial I2C (bus multimaster cu arbitrare de prioriti i vitez mare
de transmisie - 100 kbytes pe secund n modul standard i 400 kbytes
pe secund n modul rapid -, frecvena maxim a ceasului serial este
100 kHz. Destinaia principal este comunicaia cu circuite integrate
sau controller-e, prevzute cu interfaa I2C, aflate n aceeai carcas;
memorie EEPROM serial, implemetat cu un circuit de tip
ST24C04, realizat n tehnologie CMOS, cu capacitatea de 512 octei
i conectat la interfaa I2C;
2 porturi paralele de ieire de 8 bii;
1 port paralel de intrare de 8 bii;
8 intrri multiplexate la un convertor analog-digital cu rezoluia de 10
bii, implementat n structura microcontroller-ului 80C552 i
caracterizat de un timp de conversie de 50 cicluri main (aproximativ
50 s);
8 ieiri decodificate de selecie porturi, specificate n cadrul tabelului
170

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

5.1;
Dintre cele 8 semnale de decodificare porturi ocup un spaiu de
adrese cu dimensiunea de FFH, aa dup cum reiese din tabelul
prezentat anterior. Dintre cele 8 semnale de selecie sintetizate, n
structura sistemului de dezvoltare sunt utilizate doar 4, i anume:
S0 - semnal de selecie pentru afiajul cu cristale lichide LCD;
S1 - semnal de selecie pentru portul de ieire mai puin
semnificativ;
S2 - semnal de selecie pentru portul de ieire mai semnificativ;
S4 - semnal de selecie pentru portul de intrare;
S4 S7 - neutilizate (disponibile pentru extensii hardware);
Tabelul 5.1 Spaiul de adrese pentru seleciile de porturi.

Liniile de adrese A0 A15


A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0

Ieire
DCD

Adresa
(H)

S0

100H..11FH

S1

120H..13FH

S2

140H..15FH

S3

160H..17FH

S4

180H..19FH

S5

1A0H..1BFH

S6

1C0H..1DFH

S7

1E0H..1FFH

MOV P2,#1

MOV R0,#(A7A6A5A4A3A2A1A0)B
MOV @R0,A

Extinderea numrului de porturi de intrare-ieire poate fi fcut fie


prin utilizarea semnalelor de selecie disponibile, ceea ce conduce la
ncrcarea magistralei interne a sistemului de dezvoltare, fie prin
subdecodificarea liniilor inferioare de adrese neutilizate A4 A0 i
multiplexarea, respectiv demultiplexarea, intrrilor, respectiv a
ieirilor, portului de intrare, respectiv a portului de ieire mai puin
semnificativ. Procesul de multiplexare se realizeaz bazat pe circuite
cu ieiri de tip three-state, minimiznd deci numrul de resurse
hardware suplimentare necesare;
2 ieiri analogice de 8 bii modulate n durat. Prin integrarea lor se pot
obine dou convertoare digital-analogice de 8 bii;
3 numrtoare de tip timer / counter;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

171

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

1 watchdog programabil (mijloc de auto-deblocare n cazul execuiei


eronate a programelor, datorit perturbaiilor sau interferenelor;
15 linii de ntreruperi, dintre care 6 linii externe;
reset la punerea sub tensiune;
conectarea direct a unui afiaj cu cristale lichide.

5.3.1 DOMENIUL DE APLICABILITATE


Echipamentul prezentat, poate fi uor extins la un sistem de msur i
control construit n jurul unui microcontroller tip 80C552, destinat unei largi
clase de aplicaii n:
mediul industrial: msurarea / reglarea unor parametri: temperatura,
nivelul, turaia etc.;
procesul de nvmnt: pentru dotarea laboratoarelor de automatizri
industriale;
dezvoltarea unor programe de aplicaii.
Echipamentul poate funciona independent sau conectat la un sistem de
calcul ierarhic superior.

5.3.2 DETALIEREA RESURSELOR SISTEMULUI


5.3.2.1 UNITATEA CENTRAL DE PRELUCRARE

Microcontroller de tip 80C552, cu frecvena ceasului de 11,0592 MHz;


Memorie RAM extern, 32 Koctei;
Memorie EPROM extern, 32 Koctei;
Memorie EEPROM extern, 512 octei, conectat pe magistrala I2C.

5.3.2.2 INTERFAA CU PROCESUL CONTROLAT


2 intrri analogice pentru semnal unificat n curent. Sistemul dispune
de dou intrri analogice: IN_ANA_1 i IN_ANA_2, pentru msurarea
semnalelor de intrare n curent n domeniul (4...20)mA, furnizate de un
traductor.
Semnalele de intrare n curent sunt convertite intern n tensiune n
domeniul (0,4...2)V.
Acestea corespund canalelor de intrare ADC0 i ADC1 ale portului
172

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

P5 al microcontroller-ului 80C552.
Manipularea conversiei A/D se face prin registrele ADCON i
ADCH.
Caracteristici:
1. Semnal de intrare: (420)mA
2. Caracteristica de transfer a convertorului analog-digital:
V VREF
N = 210 IN
, cu rezultatul reprezentat pe 10 biti
VREF+ VREF_
V VREF
N = 28 IN
, cu rezultatul reprezentat pe 8 biti
VREF+ VREF_

(5.6)

n care VREF_ = 0,4V; VREF+ = 2V i VIN = (0,4...2)V;


3. Furnizeaz tensiunea de alimentare a traductorului: 24V / max.
100mA
Demararea conversiei A/D implic programarea registrului
ADCON.
1. Selectarea canalului de intrare ( biii ADR2ADR0);
2. Declanarea software a conversiei: ADCS=1;
3. Testarea sfritului conversiei: ADCI=1.
Rezultatul conversiei este depus n registrele ADCH (AD9...AD2)
i ADCON (AD1, AD0).
Registrul ADCON. Adresa: C5H. Valoare la reset: xx000000H
Bit 7 (MSB)
A/D1
A/D0
ADEX
ADCI
ADCS

Bit 0 (LSB)
ADR2
ADR1
ADR0
0 0 0 - canal de intrare ADC0;
0 0 1 - canal de intrare ADC1;

1 1 1 - canal de intrare ADC7.


Setarea la 1 - declanarea conversiei A/D;
0 - conversie n curs de desfurare;
1 - sfrit de conversie.
0 -conversie declanat software;
1 - conversie declanat fie hardware prin intermediul semnalului STADC, fie
software ca n cazul precedent
Bitul 0 (LSB) al rezultatului
Bitul 1 al rezultatului
Registrul ADCH. Adresa: C6H. Valoare la reset: xxxxxxxxH
Bit 7 (MSB)
A/D9
A/D8
A/D7
A/D6
A/D5
A/D4
Biii mai semnificativi ai rezultatului conversiei

A/D3

Bit 0 (LSB)
A/D2

Secven de cod, n limbaj de asamblare, pentru conversia analogdigital:


MOV
MOV

A,#0
ADCON,A

; CONVERSIE A/D CANAL 0

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

173

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

WAIT1:

ORL
MOV
MOV
JNB
MOV

A,#08H
ADCON,A
A,ADCON
ACC.4,WAIT1
A,ADCH

MOV
MOV
ORL
MOV
MOV
JNB
MOV

A,#1
; CONVERSIE A/D CANAL 1
ADCON,A
A,#08H
ADCON,A
A,ADCON
ACC.4,WAIT1
A,ADCH

sau

WAIT1:

2 intrri logice, compatibile TTL, cu rezistene interne de pull-up,


active pe nivel, pentru captarea unor condiii externe. Sistemul dispune
de dou intrri logice: IN_LOG_1 i IN_LOG_2, pentru captarea unor
condiii externe.
Caracteristici:
1. semnale de intrare compatibile TTL;
2. intrrile sunt prevzute cu rezistene interne de pull-up;
3. intrrile sunt active pe nivel.
Determinarea strii intrrilor implic citirea Port Intrri Logice.
Port intrri logice. Adresa: 160H
Bit 7 (MSB)
X
X
X
X
Neutilizai

Bit 0 (LSB)
In _Log_ 2 In _Log_ 1
Intrri logice

Secven de cod n limbaj de asamblare pentru citirea intrrilor


logice:
MOV
MOV
MOVX

P2,#1
R0,#60H
A,@R0

1 intrare digital, activ pe front, pentru msurarea duratei ntre dou


evenimente externe succesive. Aceast intrare este dedicat conectrii
unui senzor cu ultrasunete. Semnalul de intrare este de tip impuls
pozitiv cu amplitudinea cuprins ntre (2...12)V;
1 intrare digital, activ pe front, pentru msurarea frecvenei unui
semnal periodic. Semnalul de intrare este de tip impuls pozitiv cu
amplitudinea cuprins ntre (2...12)V sau de tip alternativ, cu
amplitudinea cuprins n intervalul (4...24)Vvv. Alternativ, aceast
intrare poate fi reconfigurat hardware cu caracteristicile de la punctul
anterior;
Sistemul dispune de dou canale de intrare pentru determinarea
duratei ntre dou evenimente externe succesive i implicit a frecvenei
unui semnal de intrare.
174

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Primul canal este asociat cu registrele de captare CT0 i CT1.


Al doilea canal este asociat cu registrele de captare CT2 i CT3.
Registrele de captare CT0, CT1, CT2 i CT3 sunt cuplate cu timerul T2 i capteaz starea acestuia la apariia semnalului de captare
asociat CT0I, CT1I, CT2I i CT3I.
Semnalele de captare poziioneaz indicatorii de stare asociai
(CTI0, CTI1, CTI2 i CTI3 ) din registrul TM2IR.
Durata ntre evenimente rezult din diferena coninutului
registrelor de captare.
Fiecare canal are asociate dou semnale:
cte un semnal de ieire pentru comanda captrii, SEND_1,
respectiv SEND_2. Aceste semnale iniializeaz att circuitele
interne de captare ( semnalele de captare CT0I respectiv CT2I ) ct
i dac este cazul, circuitele proprii senzorului conectat.
cte o intrare pentru semnalul captat: ECHO_1 respectiv ECHO_2.
Primul front cresctor al semnalului de intrare activeaz semnalele
de captare CT0I respectiv CT2I (are ca efect captarea n registrul
CT0 respectiv CT2 a coninutului timer-ului T2 la acest moment de
timp) i iniializeaz semnalele de captare CT1I respectiv CT3I. Al
doilea front cresctor al semnalului de intrare activeaz semnalele
de captare CT1I respectiv CT3I (are ca efect captarea n registrul
CT1 respectiv CT3 a coninutului timer-ului T2 la acest moment de
timp).
Prima intrare (SEND_1, ECHO_1) este activ pe front cresctor i
este rezervat pentru msurarea duratei ntre dou evenimente externe
succesive.
Aceast intrare permite conectarea unui senzor de nivel cu
ultrasunete din seria -wms- al firmei Microsonic.
A doua intrare (SEND_2, ECHO_2) este de asemenea activ pe
front cresctor i este rezervat msurrii frecvenei unui semnal
periodic. Aceast intrare permite conectarea unei sonde pentru
msurarea frecvenei de tip optic sau inductiv sau a unui generator de
semnal.
Caracteristici:
1. SEND_1 i SEND_2: ieiri open-colector;
2. ECHO_1: intrare de semnal, impuls pozitiv, cu amplitudinea
(2...12)V;
3. ECHO_2: intrare de semnal, impuls pozitiv, cu amplitudinea
(2...12)V sau semnal periodic alternativ cu amplitudinea
(4...24)Vvv.
Iniializarea seciunii de captare implic:
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

175

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

1. dezactivarea ntreruperilor provenite de la:


depirea superioar pe 8/16 bii a coninutului timer-ului T2.
registrele de captare a evenimentelor.
circuitele de comparare a coninutului timer T2 cu registrele de
comparare.
2. iniializarea (ncrcare cu 0) a timer-ului TML2/TMH2.
3. programarea registrului CTCON astfel nct registrele de captare
CT0, CT1, CT2 i CT3 s fie activate pe fronturile cresctoare ale
semnalului de intrare.
4. programarea timer-ului T2 prin activarea acestuia, cu dezactivarea
depirii pe 8/16 bii, ceasul de numrare fiind constituit de un
oscilator intern cu frecvena de 1/12 din frecvena oscilatorului
microcontroller-ului urmat de un registru de divizare cu 2.
Not: Registrele de comparare CM0...CM2 i logica aferent, controlate prin intermediul registrelor RTE i STE, pot fi utilizate pentru
supravegherea hardware a ncadrrii unor parametrii ntre limite
programabile.
Registrul TM2CON. Adresa EAH. Valoare la reset 00H
Bit 7 (MSB)
T2IS1
T2IS0
T2ER
T2B0
T2P1

T2P0

Registrul IEN1. Adresa E8H. Valoare la reset 00H


Bit 7 (MSB)
ET2
ECM2
ECM1
ECM1

ECT2

Bit 0 (LSB)
T2MS1
T2MS0
0 0 - Timer T2 oprit;
0 1 - ceas = fOSC:12;
1 0 - mod test;
1 1 - ceas extern (T2).
0 0 - ceas : 1 (intern sau extern);
0 1 - ceas : 2 (intern sau extern);
1 0 - ceas : 4 (intern sau extern);
1 1 - ceas : 8 (intern sau extern).
Indicator ntrerupere depire pe 8 bii Timer T2
Activare reset extern Timer T2; dac este 1, T2 poate fi resetat cu un front
cresctor pe pinul RT2 (P1.5).
Selectare ntrerupere de depire pe 8 bii Timer T2
Selectare ntrerupere de depire pe 16 bii Timer T2

Bit 0 (LSB)
ECT0
Activare
ntrerupere
registru
captare 0
Activare ntrerupere
registru captare 1
Activare ntrerupere registru captare 2
Activare ntrerupere registru captare 3
Activare ntrerupere comparator 0 timer T2
Activare ntrerupere comparator 1 timer T2
Activare ntrerupere comparator 2 timer T2
Activare ntrerupere depire timer T2

176

ECT3

ECT1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
Registrul CTCON. Adresa EBH. Valoare la reset 00H
Bit 7 (MSB)
CTN3
CTP3
CTN2
CTP2
CTN1

CTP1

Registrul RTE. Adresa EFH. Valoare la reset 00H


Bit 7 (MSB)
TP4.7
TP4.6
RP4.5
RP4.4

RP4.3

RP4.2

Registrul STE. Adresa EEH. Valoare la reset 00H


Bit 7 (MSB)
TG4.7
TG4.6
SP4.5
SP4.4

SP4.3

Bit 0 (LSB)
CTP0
Captare pe
front al
CT0I
Captare pe front al
CT0I
Captare pe front al CT1I
Captare pe front al CT1I
Captare pe front al CT2I
Captare pe front al CT2I
Captare pe front al CT3I
Captare pe front al CT3I
CTN0

Bit 0 (LSB)
RP4.0
Dac e 1,
P4.0 e resetat
la
egalita-tea
CM1 i
T2
Dac e 1, P4.1 e resetat
la egalitatea CM1 i T2
Dac e 1, P4.2 e resetat la egalitatea
CM1 i T2
Dac e 1, P4.3 e resetat la egalitatea CM1 i T2
Dac e 1, P4.4 e resetat la egalitatea CM1 i T2
Dac e 1, P4.5 e resetat la egalitatea CM1 i T2
Dac e 1, P4.6 basculeaz la egalitatea CM2 i T2
Dac e 1, P4.7 basculeaz la egalitatea CM2 i T2
RP4.1

Bit 0 (LSB)
SP4.0
Dac e 1,
P4.0 e setat
la egalitatea
CM0 i T2
Dac e 1, P4.1 e setat la
egalitatea CM0 i T2
Dac e 1, P4.2 e setat la egalitatea
CM0 i T2
Dac e 1, P4.3 e setat la egalitatea CM0 i T2
Dac e 1, P4.4 e setat la egalitatea CM0 i T2
Dac e 1, P4.5 e setat la egalitatea CM0 i T2
Basculare bistabil
Basculare bistabil
SP4.2

SP4.1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

177

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


Registrul TM2IR. Adresa C8H. Valoare la reset 00H
Bit 7 (MSB)
T2OV
CM2
CM1
CMO

CTI3

CTI2

CTI1

Indicator
CTI1
Indicator ntrerupere CTI2
Indicator ntrerupere CTI3
Indicator ntrerupere CM0
Indicator ntrerupere CM1
Indicator ntrerupere CM2
Indicator depire pe 16 bii a timer-ului T2

Bit 0 (LSB)
CTI0
Indicator
ntrerupere
CTI0
ntrerupere

Demararea captrii implic activarea semnalelor de comand


Send_1 respectiv Send_2 prin bascularea 0-1-0 a bitului 0 respectiv 1
al portului de ieiri logice.
Port ieiri logice. Adresa: 140H
Bit 7 (MSB)
Linie 4
Linie 3
Linie 2

Linie 1

Out _Log_ 2 Out_ Log_ 1

Bit 0 (LSB)
Send _2
Send _1
Comend Captare

Secven de program n limbaj de asamblare pentru comanda


captrii:
MOV
MOV
MOV
MOVX

A,#xxxxxx00B
P2,#1
R0,#40H
@R0,A

1 ieire analogic n semnal unificat (4...20)mA;


1 ieire analogic tip PWM n impulsuri de curent (0...16)mA.
Alternativ, fiecare ieire analogic se poate reconfigura hardware.
Sistemul dispune de dou ieiri analogice: OUT_ANA_1 i
OUT_ANA_2 pentru generarea semnalelor de semnal unificat n
curent.
Aceste semnale se obin prin integrarea celor dou ieiri modulate
n durat din cadrul structurii microcontroller-ului 80C552 astfel:
OUT_ANA_1 corespunde cu PWM0, iar OUT_ANA_2 cu PWM1.
Ieirea n curent este proporional cu valoarea factorului de
umplere al semnalului generat pe calea PWM0 respectiv PWM1.
Caracteristici:
1. Frecvena semnalelor de la cele dou ieiri ( se recomand alegerea
unei frecvene de lucru de aproximativ 1KHz ) este aceeai i este
programat prin intermediul registrului PWMP (adresa FEH),
conform ecuaiei:

178

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

f OSC
(5.7)
2 (1 + PWMP ) 255
2. Durata impulsurilor este determinat de registrele PWM0 i PWM1
(adresele FCH, respectiv FDH), fiind direct proporional cu
valoarea negat a acestora;
3. Factorul de umplere al semnalelor de ieire este determinat de
ecuaia:
PWM i
i =
(5.8)
255 PWM i
4. semnalul de ieire este izolat optic;
5. sarcina maxim admis:
500;
6. semnal analogic de ieire:
(420)mA;
7. semnal de ieire n impulsuri: (016)mA.
Nota: 1. n varianta de echipare standard la ieirea OUT_ANA_1
este generat un semnal unificat n curent, 4mA20mA, iar la ieirea
OUT_ANA_2 este generat un semnal de tip PWM n impulsuri de
curent 0mA16mA.
2. Alternativ, fiecare ieire poate fi reconfigurat hardware
cu caracteristicile de la punctele 6 respectiv 7.
2 ieiri logice pentru comenzi externe, izolate galvanic (releu, 2x N.I./
N.D., 6A / 380V).
Sistemul dispune de dou ieiri logice pentru comenzi externe:
OUT_LOG_1 i OUT_LOG_2.
f PWM =

Caracteristici:
1. Ieirile sunt izolate galvanic.
2. Comanda extern se face prin intermediul unei perechi de contacte
N.I / N.D ale unui releu i admite o sarcin de max. 6A / 380V.
Generarea comenzilor externe implic activarea semnalelor de
comand Out_Log_1 i respectiv Out_Log_2 prin poziionarea n 1
a bitului 2 respectiv 3 al portului de ieiri logice.
Port ieiri logice. Adresa: 140H
Bit 7 (MSB)
Linie 4
Linie 3
Linie 2

Linie 1

Out _Log_ 2 Out _Log_ 1


Comand Ieiri logice

Send_2

Bit 0 (LSB)
Send_1

Manipularea portului de ieiri logice (scriere) se face cu urmtoarea


secven de program n limbaj de asamblare:
MOV
MOV
MOV
MOVX

A,#xxxx00xxB
P2,#1
R0,#40H
@R0,A

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

179

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

5.3.2.3 INTERFAA CU OPERATORUL


tastatur matriceal local cu 16 taste, cu urmtoarea configuraie:
Col. 1 Col. 2 Col.3 Col. 4
Lin. 1

F1

Lin. 2

F2

Lin. 3

F3

Lin. 4

F4

Citirea tastaturii implic:


1. poziionarea succesiv n 0 a biilor corespunztori liniilor prin
programarea corespunztoare a portului de ieiri logice (coloanele sunt
inute n 1 prin rezistene de pull-up);
2. citirea portului de intrare tastatur;
3. interpretarea rezultatului.
Port ieiri logice. Adresa: 140H
Bit 7 (MSB)
Linie 4
Linie 3
Linie 2
Linii tastatur matricial

Linie 1

Out _Log_ 1 Out_ Log_ 0

Send_ 1

Bit 0 (LSB)
Send _0

Manipularea portului de ieiri digitale (scriere) se face cu


urmtoarea secven de program n limbaj de asamblare:
MOV
MOV
MOV
MOVX

A,#1110xxxxB
P2,#1
R0,#40H
@R0,A

Port intrare tastatur. Adresa: 120H


Bit 7 (MSB)
Linie 4
Linie 3
Linie 2
Linii tastatur matricial

Linie 1

Col 4

Bit 0 (LSB)
Col 3
Col 2
Col 1
Coloane tastatur matricial

Manipularea portului de intrare tastatur (citire) se face cu


urmtoarea secven de program n limbaj de asamblare:
MOV
180

P2,#1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV R0,#20H
MOVX A,@R0

display alfanumeric tip LCD, cu 2 linii x 16 caractere. Sistemul dispune


de un display alfanumeric cu cristale lichide cu urmtoarele
caracteristici:
1. memorie intern de date pentru 80 de caractere, (Display Data
RAM);
2. generator de caractere, 160 caractere, 5x7 puncte (Character
Generator ROM);
3. generator de caractere programabil, 8 caractere, 5x7 puncte
(Character Generator ROM);
4. Display Data RAM i Character generator ROM adresabile de
microcontroller;
5. comenzi: Clear Display, Cursor Home, Display ON/OFF, Cursor
ON/OFF, Blink Character, Cursor Shift, Display Shift;
6. circuitul este resetat la punerea sub tensiune;
7. oscilator incorporat.
Unitatea de afiare recepioneaz codul caracterului transmis de
microcontroller, memoreaz codul n memoria intern de date (Display
data RAM), convertete codul caracterului ntr-un pattern asociat ( o
matrice 5x7 puncte) i afieaz caracterul.
Unitatea de afiare dispune de asemenea de un generator de
caractere programabil (Character Generator ROM) care permite
definirea de ctre utilizator a 8 caractere speciale.
Pentru afiarea unui caracter microcontroller-ul transmite pe
magistrala de date comenzile de poziionare care sunt nscrise n
Registrul de Instruciuni. Codul caracterului (ASCII) este transmis
apoi tot pe magistrala de date i nscris n Registrul de Date. Starea
unitii de afiare este citit din Registrul de Stare. Ca urmare, este
afiat caracterul corespondent codului transmis n poziia specificat.
Unitatea de afiare incrementeaz / decrementeaz automat poziia
caracterului afiat dup fiecare intrare astfel nct este necesar numai
transmiterea succesiv a codului pentru afiarea unui ir de caractere.
Instruciunile de control a deplasrii cursorului permit introducerea
caracterelor de la stnga la dreapta sau de la dreapta la stnga.
Unitatea de afiare este coordonat de microcontroller prin
intermediul Registrului de Instruciuni, Registrului de Stare i a
Registrului de Date.
Registrul de Instruciuni. Adresa: 100H. Display Clear
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
0
0
0

DB2
0

DB1
0

DB0(LSB)
1

Clear enter display area, Restore display from shift, Load address counter with
DD RAM address 00H. Execution Time: max. 1,64 ms.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

181

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


Registrul de Instruciuni. Adresa: 100H. Display /Cursor Home
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
0
0
0

DB2
0

DB1
1

DB0(LSB)
X

Restore display from shift, Load address counter with DD RAM address 00H.
Execution Time: max. 1,64ms.
Registrul de Instruciuni. Adresa: 100H. Entry Mode Set
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
0
0
0

DB2
1

DB1
I/D

DB0(LSB)
S

Specify cursor advance direction and display shift mode. This operation take
place after each data entry. I/D=1, Increment / I/D=0, Decrement / S=1, Display
Shift On. Execution Time: max. 40s.
Registrul de Instruciuni. Adresa: 100H. Display ON / OFF
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
0
0
1

DB2
D

DB1
C

DB0(LSB)
B

Specify and activation of display ( D ), cursor ( C ), and blinking of character at


cursor position. Execution Time: max. 40s.
Registrul de Instruciuni. Adresa: 100H. Display / Cursor Shift
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
0
1
S/C

DB2
R/L

DB1
X

DB0(LSB)
X

Shift display or move cursor. S/C=1, Shift Display /S/C=0, Move Cursor.
Execution Time: max. 40s.
Registrul de Instruciuni. Adresa: 100H. Function Set
DB7 (MSB)
DB6
DB5
DB4
DB3
0
0
1
DL
N

DB2
0

DB1
X

DB0(LSB)
X

Set interface data lendht (DL) and numbers of display lines (N). DL=1, 8 bits /
N=1, Dual Lines. Execution Time: max. 40s.
Registrul de Instruciuni. Adresa: 100H. CG RAM Address Set
DB7 (MSB)
DB6
DB5
DB4
DB3
DB2
DB1
0
1
Acg: Caracter Generator RAM Address

DB0(LSB)

Load the Address Counter with CG RAM Address. Subsequent data is CG RAM
data. Execution Time: max. 40s.
Registrul de Instruciuni. Adresa: 100H. DD RAM Address Set
DB7 (MSB)
DB6
DB5
DB4
DB3
DB2
1
Add: Display Data RAM Address

DB1

DB0(LSB)

Load the Address Counter with DD RAM Address. Subsequent data is DD


RAM data. Execution Time: max. 40s.
Registrul de Stare. Adresa: 102H. Busy Flag / Address Counter Read
DB7 (MSB)
DB6
DB5
DB4
DB3
DB2
BF
AC: Address Counter

DB1

DB0(LSB)

Read busy flag (BF) and contentsof address counter. Execution Time: max. 0s.
Registrul de Date ( Write). Adresa: 101H. CG RAM / DD RAM Data Write
DB7 (MSB)
DB6
DB5
DB4
DB3
DB2
Write Data

182

DB1

DB0(LSB)

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Write data to CG RAM or DD RAM. Execution Time: max. 40s.


Registrul de Date (Read). Adresa: 103H. CG RAM / DD RAM Data Read
DB7 (MSB)
DB6
DB5
DB4
DB3
DB2
Read Data

DB1

DB0(LSB)

Read data from CG RAM or DD RAM. Execution Time: max. 40s.

5.3.2.4 INTERFAA CU UN SISTEM DE CALCUL


Comunicaie serial, standard RS232, full-duplex cu rata de transfer
programabil.

5.3.3 RESURSE SOFTWARE. UTILIZARE


Resursele software disponibile:
sub sistemul de operare MS-DOS:
asamblor, A51.EXE i variante (documentaie);
compilator C, C51.EXE;
link-er, L51.EXE;
program conversie, OHS51.EXE;
progam monitor, MT.EXE;
sub sistemul de operare WINDOWS:
Franklin Compiler 1997 (include toate facilitile anterioare,
exclusiv program monitor).
Faza de dezvoltare a unui program de aplicaie pentru o platform
hardware coordonat de o unitate central de prelucrare cu microcontroller
80C552 const din:
Scrierea programului cu ajutorul unui editor ASCII de texte, ca de
exemplu EDIT.COM din sistemul de operare MS-DOS,
NCEDIT.EXE din programul NORTON COMMANDER sau
NOTEPAD.EXE din sistemul de operare WINDOWS (se impune
utilizarea unui editor ASCII pentru a nu se introduce caractere speciale
de control n sursa programului).
n sursa programului de aplicaie sunt declarate explicit resursele
suplimentare ale microcontroller-ului 80C552 n raport cu 8051, ntr-o
seciune declarativ la nceput.
Programul surs de aplicaie poate fi scris n limbajul de asamblare
al familiei de microcontroller-e 8051, caz n care numele su va fi
PROGRAM.ASM sau ntr-o variant specializat a limbajului C
pentru familia de microcontroller-e 8051, caz n care numele su va fi
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

183

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

PROGRAM.C.
Asamblarea sursei programului de aplicaie, scris n limbaj de
asamblare, cu ajutorul asamblorului A51.EXE, specializat pentru
familia de microcontroller-e 8051, folosind sintaxa: A51.EXE
PROGRAM.ASM
n urma executrii asamblrii programului surs de aplicaii,
asamblorul A51.EXE genereaz dou fiiere:
PROGRAM.LST, un fiier list ce este destinat localizrii
eventualelor erori rezultate n urma procesului de asamblare i
PROGRAM.OBJ, un fiier de tip obiect, care va fi folosit n
continuare pentru obinerea formatului executabil;
sau, Compilarea sursei programului de aplicaie, scris n limbaj C, cu
ajutorul asamblorului C51.EXE, specializat pentru familia de
microcontroller-e 8051, folosind sintaxa: C51.EXE PROGRAM.C
Obinerea formatului executabil, de tip INTEL HEX, pe baza
fiierului de tip OBJ, folosind programul OHS51.EXE cu sintaxa:
OHS51.EXE PROGRAM.OBJ

sau
OHS51.EXE PROGRAM

Este generat fiierul executabil PROGRAM.HEX ce constituie


programul propriu-zis de aplicaie.
Ca orice fiier n format HEX, acesta ncepe cu un header ce
conine numrul de octei ai programului, adresa la care este organizat
programul (specificat prin directiva ORG n prima linie), urmat de
corpul programului i se ncheie cu o sum de control.
Rularea programului PROGRAM.HEX presupune rularea pe un
calculator gazd, de tip PC, a programului monitor al unitii centrale
cu microcontroller 80C552, denumit MT.EXE, care are n primul rnd
rolul de a stabili comunicaia serial ntre sistemul cu microcontroller
i calculatorul de tip PC.
Sintaxa este: MT.EXE X
n care X=1, 2, 3, 4 specific indicativul portului serial utilizat pentru
comunicaie (1 specific portul serial COM1, 2 specific portul serial
COM2, 3 specific portul serial COM3, 4 specific portul serial
COM4). Dac parametrul X lipsete, este utilizat n mod implicit
portul serial COM1.
Stabilirea comunicaiei seriale ntre cele dou sisteme (pe viteza de
9600 bauds, folosind cuvinte de date cu lungimea de 8 bii, fr
paritate, cu un bit de STOP i protocol XON-XOFF) este indicat prin
apariia pe display-ul sistemului de calcul a unui mesaj, urmat de
prompter-ul de monitor (caracterul #).
184

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Transferarea programului de aplicaie. n acest stadiu poate fi


transferat ctre sistemul cu microcontroller programul de aplicaie,
PROGRAM.HEX, folosind comanda de up-load F2 i indicnd
numele programului de aplicaie.
Urmeaz procesul de up-load, indicat prin apariia pe display-ul
calculatorului a unei succesiuni de linii, de lungime constant cu
excepia ultimei, ce ncep cu #:_, i sunt alctuite din cte 16 octei
n format hexa (date) plus un octet sum de control.
La terminarea transferului de date pe legtura serial, pe display-ul
calculatorului apare prompter-ul de monitor (caracterul #).
Lansarea n execuie a programului se execut cu comanda de
monitor GO ADR, n care ADR reprezint adresa la care este
organizat programul n memoria de date a microcontroller-ului,
specificat n prima linie a acestuia prin directiva ORG.
Sintaxa este urmtoarea: G 8000

5.3.4 RUTIIN
NE DE BAZ PENTRU MANIPULA
REA
IPULAR
RESURSELO
R SISTEMULUI DE DEZVOLTARE
OR
;*****************************************************************
;* PROGRAM CONVERSIE A / D 80C552 CU MONITOR 80X51 PE UN CANAL
;*
DE INTRARE SELECTABIL SI AFISARE IN HEXA, PE TREI CIFRE,
;*
A VALORII TENSIUNII DE INTRARE CONVERTITA PE PRIMII 8 BITI
;*****************************************************************
; Programul citeste de la tastatura locala una dintre tastele
; apasate. Corespunzator codului tastei se selecteaza unul dintre
; cele 8 canale analogice de intrare (daca codul tastei este 0..7),
; se converteste ; tensiunea aplicata intrarii selectate
; (ADC0 ... ADC8) si se afiseaza rezultatele conversiilor, sub forma
; hexa, pe trei cifre.
; Registrul ADCON contine fanioanele de control a conversiei, precum
; si cei mai putin semnificativi doi biti ai conversiei, astfel:
;
ADCON.7 = bitul 1 al conversiei
;
ADCON.6 = bitul 0 al conversiei
;
ADCON.5 = 0 (start conversie numai soft)
;
ADCON.4 = 0
;
ADCON.3 = 1 (start conversie)
;
ADCON.2, ADCON.1, ADCON.0 - specifica canalul analogic de
; intrare
;
ADCH - registru cu primii 8 biti semnificativi ai conversiei,
; dupa ce bitul ADCON.4=1.
; Conform documentatiei microcontrollerului 80C552, pentru
; registrele ADCON si ADCH s-a atribuit spatiul din memoria RAM
; interna de la adresele 0C5H, respectiv 0C6H.
; Spatiul utilizator incepe de la adresa 8000H, deci acest program
; va fi stocat incepand de la aceasta adresa.
ORG
8000H

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

185

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


; declararea adreselor RAM ale resurselor suplimentare
ADCON
equ
0C5H
ADCH
equ
0C6H
;
; progam principal
LJMP INIT
; long jump la rutina de initializare
; afisaj cu cristale lichide LCD
INIT: ACALL INILCD
; apel rutina de initializare afisaj
ACALL CLRLCD
; apel rutina stergere LCD
ACALL KEYBRD
; citire tastatura
ACH: CLR
A
; initializeaza acumulatorul cu 0
MOV
ADCON,A
; initializeaza registrul de comanda A/D
MOV
A,R1
; se pune in acumulator codul canalului
; de intrare selectat de la tastatura
ORL
A,#08H
; bitii de control
MOV
ADCON,A
; start conversie prin software
WAIT: MOV
A,ADCON
; A:=registrul de stare al A/D
JNB
ACC.4,WAIT
; asteapta terminarea conversiei
MOV
A,ADCH
; citeste rezultatul conversiei
MOV
A,ADCH
; se restaureaza rezultatul conversiei
MOV
B,#33H
; impartire cu 51=255/5
DIV
AB
; obtine cifra unitatilor
PUSH ACC
; salveaza cifra unitatilor in stiva
MOV
A,B
; reface restul 1
MOV
B,#10
; B:=10
MUL
AB
; inmultire cu 10
MOV
R7,A
; stocheaza octet inferior rezultat
MOV
A,B
; restaureaza octet superior rezultat
ANL
A,#01H
; test depasire
JNB
ACC.0,LABEL1 ; salt continuare daca nu e depasire
ADD
A,#4
; calculul partii semnificative a catului
LABEL1:
CLR
C
; anuleaza CARRY
MOV
R4,A
; stocheaza partea semnificativa a catului
MOV
B,#33H
; impartire cu 51=255/5
MOV
A,R7
; restaureaza octet inferior rezultat
DIV
AB
; calculeaza cat 1 partial
ADD
A,R4
; calculeaza prima zecimala
PUSH ACC
; salveaza prima zecimala in stiva
MOV
A,B
; reface restul 2
MOV
B,#10
; B:=10
MUL
AB
; inmultire cu 10
MOV
R7,A
; stocheaza octet inferior rezultat
MOV
A,B
; restaureaza octet superior rezultat
ANL
A,#01H
; test depasire
JNB
ACC.0,LABEL2 ; salt continuare daca nu e depasire
ADD
A,#4
; calculul partii semnificative a catului
LABEL2:
CLR
C
; anuleaza CARRY
MOV
R4,A
; stocheaza partea semnificativa a catului
MOV
B,#33H
; impartire cu 51=255/5
MOV
A,R7
; restaureaza octet inferior rezultat
DIV
AB
; calculul cat 2 partial
ADD
A,R4
; calcul a doua zecimala
PUSH ACC
; salveaza a doua zecimala in stiva
MOV
A,R1
; numarul canalului selectat
ACALL HEXASC
; converteste in ASCII
186

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
MOV
ACALL
MOV
MOV
ACALL
POP
ACALL
MOV
MOV
ACALL
MOV
MOV
ACALL
POP
ACALL
MOV
MOV
ACALL
MOV
MOV
ACALL
POP
ACALL
MOV
MOV
ACALL
MOV
MOV
ACALL
AJMP
HEXASC:
ANL

R4,A
R2,#0C7H
WRCMD
A,R4
R2,A
TRX
ACC
HEXASC
R4,A
R2,#0CDH
WRCMD
A,R4
R2,A
TRX
ACC
HEXASC
R4,A
R2,#0CCH
WRCMD
A,R4
R2,A
TRX
ACC
HEXASC
R4,A
R2,#0CAH
WRCMD
A,R4
R2,A
TRX
ACH

JNB
JB
JNB
ADJ: ADD
NOADJ: ADD
RET
END

ACC.3,NOADJ
ACC.2,ADJ
ACC.1,NOADJ
A,#07H
A,#30H

A,#0FH

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

stocheaza cod numar canal


adresa pentru numar canal
pozitionare cursor
restaureaza cod numar canal
R2 contine codul de afisat
scrie la LCD numar canal
a doua zecimala
convertire cod ASCII
stocheaza cod ASCII a doua zecimala
adresa pentru a doua zecimala
pozitionare cursor
restaureaza cod a doua zecimala
R2 contine codul de afisat
scrie la LCD a doua zecimala
reface prima zecimala
converteste in cod ASCII
stocheaza codul primei zecimale
adresa primei zecimale
pozitionare cursor
restaureaza codul primei zecimale
R2 contine codul primei zecimale
scrie la LCD prima zecimala
reface cifra unitati
converteste in cod ASCII
stocheaza codul unitatilor
adresa scriere unitati
pozitionare cursor
restaureaza codul unitatilor
R2 contine codul unitatilor
scriere la LCD unitati
proces ciclic de conversie
rutina de conversie hexa-ascii
se mascheaza cei patru biti mai
semnificativi ai acumulatorului
daca bitul 3 = 0 salt la NOADJ
daca bitul 2 = 1 salt la ADJ
daca bitul 1 = 0 salt la NOADJ
aduna acumulatorul cu #07H
aduna acumulatorul cu #30H
revenire din rutina HEXASC
sfarsitul programului

;*******************************************************************
;*
PROGRAM DE TESTARE A IESIRILOR MODULATE IN DURATA
;*******************************************************************
; Se genereaza la canalul 0 (pinul 4 al 80C552), respectiv la
; canalul 1 (pinul 5 al 80C552)semnale cu ; frecventa specificata de
; continutul registrului PWMP si cu factorul de umplere specificat
; de registrul ADCH, ceea ce inseamna ca, prin integrarea iesirii
; canalelor, se poate implementa un convertor D/A dual.
; Definim registrele ce memoreaza parametri semnalelor generate ca
; fiind locatii din memoria RAM interna a 80C552, avand adresele
; specificate in catalog.
; Factorul de umplere nu este acelasi pentru ambele calale de
; iesire; factorul de umplere poate varia intre 0 si 100%, prin
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

187

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


;
;
;
;
;
;
;
;
;

modificarea continutului registrelor PWM0, PWM1.


Frecventa semnalului de iesire, acceasi pentru ambele canale, este
precizata prin intermediul continutului registrului PWMP, fiind
data de formula: f=fosc/(2*(1+PWMP)*255), in care fosc reprezinta
frecventa ceasului microcontrollerului (fosc=11,059MHz).
Semnalul este generat continuu la iesirile 4 si 5, deoarece
parametrii au fost memorati in registrele PWMP si PWM0, PWM1.
Spatiul utilizator incepe de la adresa 8000H, deci acest program
va fi stocat incepand de la aceasta adresa.
ORG
8000H
; declararea adreselor RAM ale resurselor suplimentare
PWMP equ
0FEH
PWM0 equ
0FCH
PWM1 equ
0FDH
MOV
A,#20 ; se incarca acumulatorul cu #20 pentru
; frecventa semnalului de iesire sa
; fie 1kHz=11,059MHz/(2*(1+20)*255)
MOV
PWMP,A ; se programeaza registrul PWMP
MOV
A,#55 ; incarca in acumulator valoarea imediata 55H
CPL
A
; se complementeaza acumulatorul
; doarece iesirea PWM0 este negata
MOV
PWM0,A ; reconstituire semnal analogic
MOV
A,#0AA ; incarca in acumulator valoarea imediata AAH
CPL
A
; se complementeaza acumulatorul
; doarece iesirea PWM1 este negata
MOV
PWM1,A ; reconstituire semnal analogic
END
; sfarsitul programului
;*******************************************************************
;*
PROGRAM DEMONSTRATIV DE TESTARE SI PROGRAMARE
;*
A UNUI AFISAJ CU CRISTALE LICHIDE CU DOUA LINII DE CATE
;*
16 CARACTERE FIECARE, CUPLAT LA UN SISTEM DE DEZVOL;*
TARE CU MICROCONTROLLER 80C552, CU MONITOR 80C51.
;*******************************************************************
; Dialogul cu afisajul LCD se efectueaza prin intermediul unor
; subrutine:
;
WRCMD - scrierea comenzii din registrul R2 la LCD
;
WRDAT - scrierea datelor din registrul R2 la LCD
;
WLCD - asteapta terminarea operatiunilor interne ale LCD
;
INLCD - initializarea LCD pentru transfer pe 8 biti.
; Comenzile folosite sunt:
;
CLEAR - 1
;
CURSOR HOME - 2, 3
;
MODE - 1/INC/SHIFT
;
CONTROL - 1/DysplayON/CursorON/FlashON
;
SHIFT - 1/SHIFT/RIGHT/*/*
; Spatiul utilizator incepe de la adresa 8000H, deci acest program
; va fi stocat incepand de la aceasta adresa.
ORG
8000H
; progam principal
;
LJMP INIT
; long jump la rutina de initializare
; afisaj cu cristale lichide LCD
INIT: ACALL INILCD
; initializare afisaj
ACALL CLRLCD
; apel rutina stergere LCD
188

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
ACALL SEC1
MOV
DPTR,#TEXT1

; rutina de intarziere cu o secunda


; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT1
ACALL MESAJ
; apel rutina de afisare mesaj
ACALL CLEAR
; apel rutina stergere temporizata
SJMP INIT
; program care se executa ciclic
INILCD:
; rutina de initializare LCD.
; Aceasta rutina trimite la LCD comanda #38H = 0011 1000B. Conform
; datelor de catalog, acesta comanda seteaza urmatorii parametri ai
; afisajului:
;
- bitul 5 - defineste aceasta comanda (function set);
;
- bitul 4(DL-Data Length)=1 seteaza dialogul pe 8 biti
;
intre procesor si LCD;
;
- bitul 3(N-Number of display lines)=1 seteaza numarul
;
liniilor afisajului ca fiind 2^N=2;
;
- bitul 2(F-Character Font)=0 seteaza forma caracterului
;
ca fiind 5*7 puncte
MOV
R2,#38H
; incarca R2 cu cuvantul de comanda
; pregatind dialogul pe 8 biti cu
; driverele de afisaj
ACALL WRCMD
; transmite comanda anterioara la
; port, efectuand programarea LCD
MOV
R4,#50
; o intarziere
DEL4MS:
; intarziere cu 4 ms, necesara functio; narii display-ului LCD
ACALL DELAY
; absolute call rutina DELAY
DJNZ R4,DEL4MS
; se decrementeaza registrul R4 si
; salt la eticheta DEL4MS daca conti; nutul acestuia este nenul
MOV
R4,#4
; se incarca R4 cu valoarea imediata 4
LINI:
; LINI seteaza modul de lucru al
; afisajului
; cu cristale lichide LCD
ACALL WRCMD
; se scrie comanda la driverele LCD
ACALL DELAY
; apel rutina DELAY
DJNZ R4,LINI
; se decrementeaza registrul R4 si salt
; la eticheta LINI daca este nenul con; tinutul acestui registru
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#6
; seteaza modul de lucru "entry"
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#0EH
; seteaza modul "display on"
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#1
; stergere LCD
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
RET
; revenire din subrutina INILCD
WRCMD:
; rutina WRCMD scrie o comanda la
; driverele de afisaj, in urma verificarii starii acestora. Se
; selecteaza afisajul LCD si comanda continuta de registrul R2 este
; transferata driverelor din LCD
ACALL WLCD
; se verifica starea driverelor (BF=0)
MOV
A,R2
; comanda continuta in registrul R2 e
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

189

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


; transferata in acumulator
; se selecteaza portul LCD (S0=1)
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0000 B,
; corespunzatoare scrierii unei comenzi
; la driverele afisajului LCD
MOVX @R0,A
; se scrie in driverele afisajului LCD
; (la adresa stabilita anterior) comanda
RET
; revenire din rutina WRCMD
WLCD:
; rutina ce testeaza daca este sau
; nu posibila transmiterea unui nou caracter catre LCD, pe baza in
; formatiilor furnizate de rutina RDCMD. Se testeaza bitul 7 (BF
; Busy Flag) al registrului de stare al LCD.
; Daca BF=1, inseamna ca LCD efectueaza o operatie interna si nu
; poate accepta un nou caracter.
ACALL RDCMD
; apel rutina RDCMD
JB
ACC.7,WLCD
; se verifica daca BF=1 si asteapta
; trecerea lui in 0 (terminarea ope; ratiunilor interne)
RET
; revenire din subrutina WRCL
RDCMD:
; subrutina RDCMD selecteaza afisajul
; si citeste din registru de stare starea curenta a driverelor
; acestuia, informatie care este depusa in acumulator
MOV
P2,#1
; selectie port (S0=1)
MOV
R0,#2
; se realizeaza pe magistrala de adrese
; selectia cu A0 si A1 (0000 0010 B),
; pentru a se citi starea driverelor de
; afisaj LCD
MOVX A,@R0
; se transfera in acumulator valoarea
; gasita la adresa specificata anterior
RET
; revenire din rutina RDCMD
DELAY:
; subrutina DELAY realizeaza o intarziere
; cu 80 microsecunde
MOV
R3,#17
; registrul R3 este incarcat cu valoarea
; imediata 17
; 80E-6secunde = 17 * 2instructiuni NOP *
; * 12 perioade de ceas/instructiune NOP*
; 1/11.059MHz (perioada ceas procesor)
LL1: NOP
; no operation
NOP
; no operation
DJNZ R3,LL1
; se decrementeaza registrul R3, se compa; ra continutul sau cu 0. Daca rezultatul
; compararii este 1, salt la eticheta LL1
RET
; revenire din subrutina DELAY
CLRLCD:
; subrutina de stergere a afisajului
; cu cristale lichide si setare a modului de afisare
MOV
R2,#1
; stergere afisaj LCD
ACALL WRCMD
; transmite comanda la LCD
MOV
R2,#1100B
; 1, display on, cursor off, flash off
ACALL WRCMD
; transmite comanda la LCD
RET
; revenire din rutina de CLRLCD
TRX1:
; subrutina de scriere sir de caractere
; la afisajul cu cristale lichide LCD
CLR
A
; initializeaza acumulatorul cu 0
MOVC A,@A+DPTR
; muta in acumulator adresa gasita
MOV
MOV

190

P2,#1
R0,#0

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
; la adresa @A+DPTR
A,#24H,TRCAR1; compara continutul acumulatorului
; cu #24H (codul hexa al caracterului
; $ - sfarsit de mesaj) si daca este
; diferit se efectueaza salt la eticheta
; TRCAR1
RET
; iesire din subrutina TRX1
TRCAR1:
MOV
R2,A ; muta continutul acumulatorului in
; registrul R2
ACALL WRDAT
; apel subrutina de scriere date in
; registrele afisajului LCD
INC
DPTR
; adresa urmatorului caracter de scris
SJMP TRX1
; small jump la eticheta TRX1, pentru
; a scrie urmatorul caracter
TRX:
; subrutina de afisare caracter la LCD
CLR
A
; initializeaza acumulatorul cu 0
MOV
A,R2
; muta in acumulator continutul regis; trului R2
LJMP TRCAR
; long jump la eticheta TRCAR
LL7: RET
; revenire din subrutina TRX
TRCAR: MOV
R2,A
; muta in registrul R2 continutul Acc.
ACALL WRDAT
; scrie in driverele de date ale LCD
; codul caracterului de afisat
SJMP LL7
; small jump la LL7: RET
WRDAT:
; subrutina WRDAT este identica cu
; WRCMD dar este utilizata pentru scrierea la driverele LCD codul
; caracterelor ce urmeaza a fi afisate
ACALL WLCD
; testarea starii driverelor LCD
MOV
P2,#1
; se selecteaza portul LCD (S0=1)
MOV
R0,#1
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0001 B,
; corespunzatoare scrierii unui caracter
; la driverele afisajului LCD
MOV
A,R2
; se transfera caracterul in acumulator
MOVX @R0,A
; se transmite caracterul driverelor LCD
RET
; revenire din rutina WRDAT
MESAJ:
; subrutina de afisare mesaj, continand
; doua linii de cate 16 caractere la afisaj cu cristale lichide
ACALL TRX1
; apel rutina de transmisie mesaj
MOV
R2,#0C0H
; pozitionare pe a doua linie
ACALL WRCMD
; scriere comanda pozitionare la LCD
INC
DPTR
; incrementare DPTR (linia a doua)
ACALL TRX1
; apel rutina de transmisie mesaj
RET
; revenire din subrutina MESAJ
CLEAR:
; subrutina de stergere si setare a
; modului de lucru a afisajului cu cristale lichide LCD
ACALL SEC1
; mentine starea afisajului 1 secunda
MOV
R2,#1
; comanda stergere display
ACALL WRCMD
; scriere comanda la LCD
MOV
R2,#2
; cursor home pe prima linie
ACALL WRCMD
; scrie comanda la LCD
RET
; revenire din subrutina CLEAR
SEC1:
; rutina de intarziere cu 0,5 secunde
; 0,5sec = (8instr.NOP x 12perioade ceas/NOP x 256 x 256)/11,059MHz
MOV
R6,#255
; se incarca registrul R6 cu #255
CJNE

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

191

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


LOOP1: MOV
LOOP: NOP
NOP
NOP
NOP
NOP
NOP
NOP
DJNZ

R7,#255

; se incarca registrul R7 cu #255


; 16 instructiuni NOP

R7,LOOP

; se decrementeaza registrul R7 si
; daca este nenul, salt la LOOP
DJNZ R6,LOOP1
; se decrementeaza registrul R6 si
; daca este nenul, salt la LOOP1
RET
; revenire din subrutina SEC3
TEXT1: DB 'TESTARE DISPLAY$'
; text prezentare 1, linia 1
DB 'LCD 2lin.*16car$'
; text prezentare 1, linia 2
END
; sfarsitul programului
;*******************************************************************
;*
PROGRAM DE CITIRE A UNEI TASTATURI, CU TREI LINII SI
;*
PATRU COLOANE ( 12 TASTE FUNCTIONALE ), REALIZATA
;*
PRIN INTERMEDIUL UNUI PORT DE IESIRE SI A PORTULUI DE
;*
INTRARE AL MICROCONTROLLERULUI 80C552, CU MONITOR
;*
PENTRU FAMILIA INTEL 80C51
;*******************************************************************
; program citire in bucla a unei tastaturi de 3 linii * 4 coloane,
; pana la apasarea unei taste.
; Rezultatul citirii este convertit in hexa si memorat in registrul
; R1, urmand a fi afisat pe LCD.
; Spatiul utilizator incepe de la adresa 8000H, deci acest program
; va fi stocat incepand de la aceasta adresa.
ORG
8000H
; progam principal de citire in bucla a tastaturii
; citirea tastaturii, prin baleierea celor trei linii, citirea celor
; patru coloane si verificare daca s-a tastat ceva.
; prima linie
NEXT: MOV
A,#0E0H
; initializeaza acumulatorul cu #0E0H
; (se selecteaza prima linie de taste)
MOV
P2,#1
; selecteaza decodificatorul (A8=1)
MOV
R0,#20H
; incarca R0 cu 0010 0000 B:
; selectie port de iesire 1 (S1=0)
MOVX @R0,A
; muta continutul acumulatorului
; la portul de iesire 1 (AX0=0)
MOV
P2,#1
; selecteaza decodificatorul (A8=1)
MOV
R0,#60H
; incarca R0 cu 0110 0000B:
; selecteaza portul de intrare
MOVX A,@R0
; citeste in acumulator valorea gasita
; la adresa specificata anterior
CPL
A
; complementeaza acumulatorul
MOV
R3,A
; salveaza valoarea in registrul R3
ANL
A,#0FH
; mascheaza bitii mai semnificativi
; ai acumulatorului (codul liniei)
JZ
NEXT1
; daca A=0 (valoarea citita este 0FH; nu s-a tastat nimic),salt la eticheta
; NEXT1 (linia 1 de taste)
JNZ
COL
; daca continutul acumulatorului nu
192

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

; a doua linie
NEXT1: MOV
A,#0D0H
MOV
MOV

P2,#1
R0,#20H

MOVX

@R0,A

MOV
MOV

P2,#1
R0,#60H

MOVX

A,@R0

CPL
MOV
ANL

A
R3,A
A,#0FH

JZ

NEXT2

JNZ

COL

; a treia linie
NEXT2: MOV
A,#0B0H

COL:

MOV
MOV

P2,#1
R0,#20H

MOVX

@R0,A

MOV
MOV

P2,#1
R0,#60H

MOVX

A,@R0

CPL
MOV
ANL

A
R3,A
A,#0FH

JZ

NEXT

JNZ

COL

JB

ACC.0,COL0

;
;
;
;

este zero, salt la determinarea


codului HEXA al tastei, in functie
de linia activa si coloana pe care
este situata tasta apasata

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

se initializeaza acumulatorul cu #0D0H


se selecteaza a doua linie de taste)
selecteaza decodificatorul (A8=1)
incarca R0 cu 0010 0000 B:
selectie port de iesire 1 (S1=0)
muta continutul acumulatorului
la portul de iesire 1 (AX0=0)
selecteaza decodificatorul (A8=1)
incarca R0 cu 0110 0000B:
selecteaza portul de intrare
citeste in acumulator valorea gasita
la adresa specificata anterior
complementeaza acumulatorul
salveaza valoarea in registrul R3
mascheaza bitii mai semnificativi
ai acumulatorului (codul liniei)
daca A=0 (valoarea citita este 0FH)
salt la eticheta NEXT
daca continutul acumulatorului nu
este zero, salt la determinarea
codului HEXA al tastei, in functie
de linia activa si coloana pe care
este situata tasta apasata

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

se initializeaza acumulatorul cu #0D0H


se selecteaza a treia linie de taste)
selecteaza decodificatorul (A8=1)
incarca R0 cu 0010 0000 B:
selectie port de iesire 1 (S1=0)
muta continutul acumulatorului
la portul de iesire 1 (AX0=0)
selecteaza decodificatorul (A8=1)
incarca R0 cu 0110 0000B:
selecteaza portul de intrare
citeste in acumulator valorea gasita
la adresa specificata anterior
complementeaza acumulatorul
salveaza valoarea in registrul R3
mascheaza bitii mai semnificativi
ai acumulatorului (codul liniei)
daca A=0 (valoarea citita este 0FH)
salt la eticheta NEXT (prima linie)
daca continutul acumulatorului nu
este zero, salt la determinarea
codului HEXA al tastei, in functie
de linia activa si coloana pe care
este situata tasta apasata
salt la COL0, daca bitul 0 al acumulatorului este 1 (s-a apasat o
tasta de pe coloana 0)

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

193

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)


JB

JB

JB

COL0: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL1: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL2: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL3: MOV
MOV
SWAP

ANL
JB
JB
SJMP
LINIE1:
ADD
MOV
SJMP
LINIE2:
ADD
MOV
194

ACC.1,COL1

;
;
;
ACC.2,COL2
;
;
;
ACC.3,COL3
;
;
;
R1,#00H
;
A,R3
;
A
;
;
;
A,#00001111B ;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#01H
;
A,R3
;
A
;
;
;
A,#00001111B ;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#02H
;
A,R3
;
A
;
;
;
A,#00001111B ;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#03H
;
A,R3
;
A
;
;
;
A,#00001111B ;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
MOV
A,#04H ;
A,R1
;
R1,A
;
PLAY
;
MOV
A,#08H ;
A,R1
;
R1,A
;

salt la COL1, daca bitul 1 al acumulatorului este 1 (s-a apasat o


tasta de pe coloana 1)
salt la COL2, daca bitul 2 al acumulatorului este 1 (s-a apasat o
tasta de pe coloana 2)
salt la COL3, daca bitul 3 al acumulatorului este 1 (s-a apasat o
tasta de pe coloana 3)
s-a apasat tasta de pe coloana 0
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 3
salt la rutina de afisare, tasta 0
s-a apasat tasta de pe coloana 0
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 1
s-a apasat o tasta de pe coloana 2
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 2
s-a apasat o tasta de pe coloana 3
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 3
tasta apasata era pe linia 1
se aduna codul coloanei cu codul liniei
codul hexa al tastei apasate este in R1
salt la rutina de afisare, tastele 4..7
tasta apasata era pe linia 2
se aduna codul coloanei cu codul liniei
codul hexa al tastei apasate este in R1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
SJMP
PLAY: AJMP
END.

PLAY
NEXT

; salt la rutina de afisare, tastele 8..B


; proces ciclic de citire a tastaturii

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

195

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

196

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

6. SISTEM UNIVERSAL, MODULAR, DE ACHIZIII


DE DATE
6.1 MRIMI DE INTRARE N SISTEMUL DE ACHIZIII DE
DATE
Pentru proiectarea oricrui sistem de achiziii de date dedicat este
esenial studierea mrimilor de intrare prelevate din procesul studiat. Pentru un
sistem de achiziii de date universal, ce poate fi utilizat n multe domenii de
aplicaii, cum este cel proiectat i care va fi descris, din punct de vedere
funcional, n continuare, trebuie avute n vedere o gam larg de consideraii de
proiectare, pentru a se putea ndeplini cerinele de msurare pentru diversitatea
mare de domenii de utilizare. Se va arta c nregistrarea variaiei n timp a trei
tensiuni i a trei cureni permite determinarea tuturor indicatorilor i
parametrilor sistemelor electrice.

6.2 SPECIFICAIILE DE PROIECTARE ALE SISTEMULUI


DE ACHIZIII DE DATE
Analiza semnalelor electrice va fi realizat utiliznd un sistem specializat
de achiziii de date i de analiz, de concepie original, dispunnd de
urmtoarele caracteristici:
echipament de msurare lucrnd n domeniu temporal, dispunnd de
ase canale analogice de intrare, dispunnd de urmtoarele variante de
configurare:
ase canale analogice de tensiune, sau
trei de canale analogice de tensiune i trei canale analogice de curent,
sau
ase canale analogice de curent;
att intrrile de tensiune, ct i cele de curent, sunt complet
difereniale, pentru a se putea conecta cu uurin att n scheme de
msurare de tip stea (Y), ct i triunghi ();
intrrile analogice de tensiune i de curent asigur izolarea galvanic a
semnalelor de intrare n raport cu sistemul de achiziii de date;
intrrile analogice de tensiune i de curent permit achiziia unor
semnale de intrare cu dubl polaritate, iar sensibilitatea intrrilor
(gama mrimilor analogice de intrare) poate fi selectat prin software;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

197

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

circuitele de intrare de tensiune i de curent i conserv caracteristicile


de exactitate pentru o depire de 1,2 ori a mrimilor nominale de
intrare. De asemenea, consumul circuitelor de intrare, att de tensiune,
ct i de curent, nu depete 3 VA;
echipamentul de msurare permite att achiziia sincron a celor ase
semnale analogice de intrare, ct i faciliti de supraeantionare
pentru semnalele de acelai tip (tensiune sau curent);
echipamentul de msurare asigur o conversie analog-numeric pe
8/12 bii i cel puin 32 de eantioane pe o period a semnalelor de
intrare de frecven fundamental (maximum 10 kHz). Aceast ultim
afirmaie este echivalent cu aceea c frecvena minim de eantionare,
pentru ase canale analogice de intrare, s fie de cel puin 32 kHz, ceea
ce satisface teorema eantionrii a lui Shannon;
sistemul posed un grad nalt de inteligen, asigurat sub o form
distribuit de ctre o unitate central de prelucrare local a sistemului
i de ctre un calculator gazd performat, avnd rolul:
de a degreva un sistem de calcul gazd, de gestionarea procesului de
achiziionare a semnalelor de intrare;
de a realiza identificarea perturbaiilor care se manifest n sistemul
(procesul) studiat i de a adapta analiza n conformitate cu acestea,
pentru a conferi un maximum de exactitate;
de a realiza comunicaia, n forme compatibile, cu alte sisteme de
calcul, n vederea transmiterii informaiilor de stare i, eventual, de
alarmare, ctre un nivel ierarhic superior;
ntreg sistemul de achiziie memoreaz eantioanele prelevate din
proces, iar dup ncheierea procesului de achiziie transfer rezultatele,
pe un canal serial de mare vitez, unui sistem de calcul de tip IBM PC pentru prelucrare numeric ulterioar i afiare.
Sistemul de achiziii de date universal, multifuncional, proiectat integral
n acest scop i care va fi prezentat n capitolele urmtoare, este un sistem
portabil, 100% compatibil cu orice calculator de tip IBM - PC sau compatibil.
Sistemul posed dou moduri de lucru:
modul supraveghere, caracterizat de o eficien mai redus - modul de
identificare a perturbaiilor, care poate fi selectat att local, ct i prin
intermediul calculatorului gazd i care se execut doar local;
modul analiz, caracterizat de o eficien crescut - identificare i
analiz a perturbaiilor, care se execut distribuit n cadrul sistemului i
a calculatorului gazd.
Sistemul de achiziii de date este alctuit din trei blocuri funcionale
importante, i anume:
interfaa de achiziii de date propriu-zis;
unitatea central de prelucrare local;
198

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

instrumente software distribuite, incluznd:


programe de gestionare flexibil i adaptiv a procesului de
achiziie de date, dezvoltate pe calculatorul gazd i transferate prin
intermediul interfeei seriale sistemului de achiziii de date. Acest
subnucleu software este scris n limbajul de asamblare al familiei
de microcontroller-e 8051, pentru accesarea facil a resurselor
sistemului i, de asemenea, pentru a se minimiza i optimiza
lungimea codului executabil. O a doua posibilitate este aceea ca
acest subnucleu software s fie nscris n memoria de program a
unitii centrale de prelucrare;
programe de comunicaie ntre sistemul de achiziii de date i
analiz i calculatorul gazd de tip IBM - PC (host computer).
Comunicaia pe interfaa serial full duplex, este implementat n
software-ul rezident n memoria de progam a unitii centrale de
prelucrare local, ns este completat cu un program, scris n
limbajul de nivel nalt C, pentru salvarea eantioanelor prelevate
din proces sub forma unui fiier de date cu structur compatibil cu
pachetul de programe de analiz. Exist posibilitatea de a utiliza
facilitile de comunicaie ale platformei HP VEE pentru
memorarea eantioanelor prelevate din proces sub forma unui fiier
de date;
pachet de programe de analiz a semnalelor electrice, denumit
sugestiv ESA - Electrical Signal Analyser - i implementat sub
forma unui instrument virtual, folosind platforma HP VEE sub
sistemul de operare Windows.
Schema bloc a sistemului de achiziii de date i analiz este prezentat n
fig. 6.1 (varianta simplificat), iar n fig. 6.2 este prezentat structura hardware
detaliat (varianta simplificat) a sistemului de achiziii de date.
n urmtoarele capitole vor fi prezentate detaliat elementele funcionale
ale subsistemelor componente, elementele de proiectare de baz i soluiile
originale implementate n cadrul sistemului de achiziii de date i analiz.
ntreaga arhitectur a sistemului de achiziii de date a fost elaborat ca s
ndeplineasc criterii de versabilitate i adaptabilitate la cerinele n continu
modificare ale standardelor privind analiza semnalelor electrice.
Dup cum va reiei din analiza detaliat a arhitecturii sistemului de
achiziii de date, prezentat n subcapitolele urmtoare, acest instrument
combinat, hardware i software, dispune de diferite opiuni de echipare
hardware, astfel nct s asigure o exactitate ct mai ridicat de msurare i
analiz.
Concepia acestui echipament este original, avnd la baz criteriile de
proiectare specificate n standardele internaionale aplicabile la aceast dat.
Soluiile de cretere a exactitii de msurare i a vitezei de achiziie sunt rodul
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

199

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

unui efort iterativ de proiectare, n vederea utilizrii unui numr ct mai redus de
componente electronice de nalt performan i fiabilitate, care s permit o
compatibilitate deplin a interconectrii.
Rezultatul acestui efort de proiectare const ntr-un echipament simplu,
versatil, cu faciliti crecute de adaptabilitate, fiabil, cu consum redus de energie
electric, ce respect normele de compatibilitate electromagnetic prevzute n
standardele internaionale.
Power Line
Neutral
Host Computer Platform
Voltage
LEM
Converter

Current
LEM
Converter

Hardware Platform
(Host Computer)

Serial link
Signal
Conditioner

Signal
Conditioner

Low-pass
Filter

Low-pass
Filter

Sample/Hold
Amplifier

Sample/Hold
Amplifier

Local CPU

Data
Acquisition
Conversion

Hardware Software
Interactivities
Software Platform
(Windows)
Acquisition &
Communication
Software

Data
Acquisition
Conversion

Fig. 6.1 Schema bloc a sistemului de achiziii de date i de analiz (varianta


simplificat).

6.3 INTERFAA SPECIALIZAT DE ACHIZIII DE DATE A


SISTEMULUI DE ACHIZIII DE DATE
Interfaa de achiziii de date a sistemului proiectat este o interfa sincron/asincron, destinat achiziionrii mrimilor rapid variabile, de uz general,
folosit pentru prelevarea semnalelor de curent i de tensiune.
Criteriile principale de proiectare, utilizate pentru implementarea acestei
interfee specializate de achiziii de date, au la baz obinerea unei viteze
crescute de achiziie i asigurarea unei exactiti de msurare ct mai ridicate.

200

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

6.3.1 INTERFAA DE ACHIZIII DE DATE PROPRIU-ZIS


Interfaa de achiziii de date propriu-zis permite achiziia simultan pe 6
canale a mrimilor electrice prelevate din proces. Interfaa de achiziii de date
propriu-zis se compune din urmtoarele blocuri funcionale:

blocul de adaptare a semnalelor analogice, cu rolul de compatibilizare


a nivelelor de tensiune i de curent cu nivelele de tensiune acceptate de
intrrile circuitelor filtrelor antialiasing, circuitelor de eantionarememorare, respectiv de convertoarele analog-digitale;
blocul filtrelor antialiasing (antirepliere);
blocul circuitelor de eantionare-memorare;
blocul circuitelor de conversie analog-digital;
blocul de interfa cu unitatea central de prelucrare local.

6.3.1.1 BLOCUL DE ADAPTARE A SEMNALELOR


ANALOGICE
Blocul de adaptare a semnalelor analogice se compune din:
trei, sau ase, convertoare curent-tensiune cu izolare galvanic cu
intrri difereniale;
trei, sau ase, amplificatoare de instrumentaie cu izolare optic;
Msurarea curenilor, folosind convertoarele curent-tensiune cu izolare
galvanic, presupune luarea de msuri speciale pentru a se asigura o exactitate
ridicat i, de asemenea, o protecie eficient a sistemului de achiziii de date
(fig. 6.3).
Msurarea curenilor se efectueaz foarte simplu, cu ajutorul unui unt
nseriat cu circuitul analizat, intrrile de msurare fiind complet difereniale.
Conectarea untului la intrarea blocului de msur se efectueaz cu cablu
torsadat, pentru a asigura o imunitate ct mai ridicat la zgomot. Alimentarea
circuitului de intrare este izolat de alimentarea restului schemei, fiind asigurat
de o baterie, sau de o surs stabilizat de tensiune continu independent, cu
valoarea de 9V.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

201

Differential
Current
Inputs

Differential
Voltage
Inputs

LE

D0..D6

OE

Latch
74HCT374

SampleHold
Amplifier
SampleHold
Amplifier

Low-pass
Active
Filter

Low-pass
Active
Filter

D0..D6

Programmable
Gain
Amplifier
Programmable
Gain
Amplifier

202
WR
RD
CS

IN

BD0..DB11

A/D Converter
MAX 181

WR
RD
CS

MODE
HBEN
BIP
DIFF

BD0..DB11

A/D Converter
MAX 181

IN

MODE
HBEN
BIP
DIFF

Sample/Hold Command
GAIN0..GAIN2

Cut-off Frequency Selection

WR

FIFO

WR

FIFO

WR
RD

LE
OE

74HCT374
Latch

WR
RD

RD

RD

WR

FIFO2-L
Read

FIFO2-H
Read

A/D Converter
Selection

PSEN

FIFO1-L
Read

FIFO1-H
Read

Command Register
Selection

Bus

Bus
Command

Data

Serial
Interface

Address Bus

OUT0
OUT1
OUT2
OUT3
OUT4
OUT5
OUT6
OUT7

Decode
Logic

IN
G1
G2

Program
Memory
CS 32 Kbytes

RD
D0..D7

Data
Memory
CS 32 Kbytes

RD
WR
D0..D7

80C552

Microcontroller

Command Bus

Data Bus

Clock
Circuitry

To Host Computer
A8
A15

A5..A7

A15

A0..A14

A0..A14

Bus

Address

RS-232/
RS-485

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

Fig. 6.2 Arhitectura detaliat a sistemului de achiziii de date i analiz


(varianta simplificat).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

Signal Conditioner /
Optical Isolation /
Overvoltage Protection

ELECTRONIC APLICAT

La baza schemei de msurare st un amplificator cu izolaie galvanic, cu


factor de rejecie a modului comun de valoare mare (>140dB) de tip
HCPL7800. Acest circuit a fost special conceput pentru a asigura performane
ridicate de precizie, stabilitate i liniaritate, n condiii de medii zgomotoase,
pentru aplicaii ce necesit izolarea galvanic a semnnalelor analogice.
Circuitul HCPL7800 utilizeaz tehnologia sigma-delta (-) a
convertoarelor analog-digitale, amplificatoare cu chopper i o topologie complet
diferenial.
Convertorul sigma-delta transform semnalul analogic de intrare ntr-un
cuvnt serial de bii, a crui durat este proporional cu semnalul de intrare.
Acest cuvnt serial este codat i transmis optic ctre circuitul detector.
Semnalul detectat este decodat i este convertit n nivele analogice, precise, de
tensiune. Prin filtrarea acestor nivele de tensiune se obine tensiunea de ieire,
proporional cu semnalul analogic de intrare.
Meninerea preciziei n timp i cu temperatura este asigurat de
stabilitatea amplificatoarelor interne cu chopper-e.
Intrarea circuitului este conectat la untul utilizat pentru monitorizarea
curentului.
Ieirea diferenial a amplificatorului cu izolaie galvanic este convertit
ntr-un semnal raportat la mas cu ajutorul unui amplificator diferenial simplu.
Astfel relaia dintre tensiunea de ieire i curentul de intrare este:
R
VOUT = 2 R S I IN = 40 R S I IN
(6.1)
R1
Dei simpl, aceast structur necesit cteva precizri:
cderea de tensiune maxim acceptat la bornele untului este de 200
mV. Dac forma de und la ieire este limitat sau distorsionat, atunci
cderea de tensiune la bornele untului este prea mare;

Fig. 6.3 Schema de principiu a convertorului I-U cu izolare galvanic.


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

203

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

amplificatorul operaional cu care este implementat amplificatorul


diferenial, cuplat la ieirea circuitului HCPL7800, trebuie s fie
suficient de precis pentru a nu afecta performanele de offset i de
deriv reduse ale circuitului. n plus, acest amplificator operaional
trebuie s fie caracterizat de o band larg de frecven i de slew-rate
mare, pentru a nu fi afectate performanele globale de vitez;
untul utilizat trebuie s aib o valoare mic, pentru a se minimiza
puterea disipat. De asemenea, inductana proprie a untului trebuie s
fie ct mai redus, pentru a se asigura o precizie corespunztoare pentru
semnale de curent rapid variabile sau de frecven mare. Banda de
frecven a semnalelor de intrare determinat de circuitul HCPL7800 i
de amplificatorul operaional ce l succede este de 65 kHz, permind
monitorizarea semnalelor de curent rapid variabile.
Monitorizarea tensiunilor este efectuat prin intermediul a trei amplificatoare de instrumentaie cu izolare galvanic cu optocuploare. Aceast
metod asigur protecia eficient a sistemului de achiziii de date mpotriva
supratensiunilor accidentale, adaptarea precis a nivelelor de tensiune de ieire
i de intrare, impedan de intrare foarte mare, factor de rejecie a tensiunilor i a
zgomotelor de mod comun foarte ridicat. Din pcate, dezavantajul prezentat de
aceste amplificatoare de instrumentaie cu izolare optic este reprezentat de
liniaritatea relativ necorespunztoare a rspunsului (circa 10% procent de
neliniaritate).

6.3.1.2 BLOCUL FILTRELOR ANTIREPLIERE


Semnalele reale de tensiune sau de curent pot conine componente
spectrale de frecven superioar frecvenei Nyquist (corespunztoare jumtii
frecvenei de eantionare). n aceste situaii, se manifest un efect de repliere al
spectrului semnalelor, cunoscut n literatura de specialitate sub denumirea de
alias, care falsific msurrile. Cea mai simpl i eficient soluie pentru
evitarea acestui fenomen const n filtrarea semnalelor originale, utiliznd un
filtru de tip trece-jos, caracterizat de o frecven de tiere egal cu frecvena
Nyquist, adic egal cu jumtate din frecvena de eantionare. Acest filtru se
numete filtru antialiasing (antirepliere).
Se impune ca atenuarea filtrului antialiasing n afara benzii de trecere s
fie mai mare de 50 dB.
Problema care se ridic n implementarea unui asemenea tip de filtru este
aceea c interfaa specializat de achiziii de date a sistemului permite selectarea
frecvenei de eantionare prin software, ntr-un interval larg de valori. Cu alte
cuvinte, frecvena de eantionare nefiind constant, frecvena Nyquist este
variabil i deci frecvena de tiere a filtrului antirepliere trebuie s se modifice
204

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

pentru realizarea corect a funciei de eliminare a frecvenelor superioare.


Avnd n vedere aceste considerente, implementarea filtrelor antialiasing
a fost realizat utiliznd un filtru activ de tip trece-jos, de ordinul al doilea,
avnd frecvena de tiere programabil digital (prin software). S-au folosit
circuite de tip MAX 271, care conin dou astfel de filtre, programabile fie n
mod independent, fie simultan, n aceeai capsul.
Structura filtrelor antialiasing este prezentat n fig. 6.4.
DATA 0 .. DATA 6

Ieire filtru A
Intrare

Intrare
filtru A
EN
Logic de
comand

EN

Ieire
circuit de
eantionarememorare

Intrare
filtru B
EN
T/H A/B

MAX 271

Ieire filtru B

Ieire
filtru

+Vcc
Comand eantionarememorare (T/R)

Fig. 6.4 Schema de conectare a filtrelor active, de tip trece-jos, programabile


(antialiasing).

Aceste circuite au implementat o interfa cu un microprocesor pe 8 bii,


permind programarea frecvenei de tiere a filtrului trece-jos n 128 de pai,
prin intermediul a 7 linii de comand. Frecvena de tiere a filtrelor poate fi
programat ntre limitele 1Hz i 25 kHz.
Ecuaiile care permit calcularea frecvenei de tiere a filtrului sunt:
87,5
fT =
1kHz; CODE = (0 63);f T = (1 3,75)kHz
87,5 CODE
(6.2)
262,5
fT =
1kHz; CODE = (64 127);f T = (3,75 25)kHz
137,5 - CODE
n care CODE reprezint combinaia de date aplicat terminalelor de comand,
DATA0 DATA6 (DATA6 este bitul cel mai semnificativ). Intrrile de date ale
circuitului MAX 271 sunt compatibile att TTL, ct i CMOS.
Frecvena de tiere a filtrului nregistreaz erori dependente de datele de
programare folosite. Astfel, eroarea frecvenei de tiere este minim pentru
CODE=0, situaie pentru care filtrele sunt ajustate special din fabricaie, iar
eroarea maxim (circa 9,5%) se nregistreaz pentru CODE=127. n aceast
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

205

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

situaie, frecvena de tiere a filtrului se ncadreaz n intervalul 22,6327,38


kHz.
Atenuarea n afara benzii de trecere pentru filtrele active implementate n
acest circuit este de 40 dB/decad. Pentru respectarea cerinelor de atenuare
recomandate de normativele n vigoare, s-a folosit legarea n cascad a celor
dou filtre din aceeai capsul, obinndu-se o atenuare de 80 dB/decad.
n vederea reducerii efortului de programare a filtrelor active antialiasing,
circuitele MAX 271 sunt configurate n modul pin-programming. Acest mod
de programare este realizat prin conectarea pinului MODE la tensiunea pozitiv
de alimentare. n aceast configuraie, ambele filtre de tip trece jos sunt
caracterizate de aceeai frecven de tiere, specificat de combinaia de date
aplicat terminalelor de comand, DATA0 DATA6. Astfel programarea
ambelor filtre este realizat ntr-o singur etap (ciclu de programare).
n acest mod de funcionare, semnalele de interfaare cu magistrala
sistemului nu au nici o semnificaie, ns utilizatorul are acces la comenzile de
activare a circuitului de eantionare-memorare intern, de selecie a semnalului
(ieirea filtrului A, respectiv ieirea filtrului B) ce urmeaz a constitui sursa de
intrare a circuitului de eantionare-memorare i la comanda de eantionarememorare propriu-zis. Legarea n cascad a celor dou filtre permite
simplificarea comenzilor disponibile utilizatorului, astfel (conform fig. 6.4):
este activat n permanen funcionarea circuitului de eantionarememorare (T/H_EN=1);
intrarea circuitului de eantionare-memorare este ntotdeauna
constituit de ieirea filtrului B (T/H_A/B=0);
comanda de eantionare-memorare este disponibil n exterior i este
asigurat de ctre unitatea central de prelucrare local.
Circuitul de eantionare-memorare, implentat n circuitul MAX 271, este
caracterizat de urmtorii parametri:
timp de stabilire (pentru o eroare de 0,1%): 500ns;
timp de achiziie (pentru o eroare de 0,1%); 1,5s;
rata de cdere a tensiunii de ieire (n starea de memorare): 30V/s;
tensiune de decalaj (incluznd i tensiunea de offset a filtrelor): 4mV.
Impedana de intrare a filtrelor nu este constant, ci este dependent de
frecven, fiind cuprins ntre 5M n curent continuu i 100k la 25kHz, fiind
ns suficient de mare pentru a nu introduce erori de msurare.
Bateria de filtre, obinut prin legarea n cascad a celor dou filtre
implementate n circuitul MAX 271) este caracterizat prin distorsiuni armonice
totale mai mici de -70dB i de atenuare n band de practic 0dB.

206

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

6.3.1.3 BLOCUL CIRCUITELOR DE EANTIONAREMEMORARE SUPLIMENTARE (EXTERNE)


Deoarece semnalele de intrare, n sisteme electrice, pot fi rapid variabile
i se caracterizeaz prin prezena armonicilor superioare, avnd frecvene
multipli ntregi ai frecvenei de 50 Hz, ct i frecvene care nu sunt multipli
ntregi ai frecvenei fundamentale, semnale care poart denumirea de
interarmonici, (n tehnic s-a constatat c numai armonicile pn la ordinul 40
dau efecte nedorite n instalaiile electrice) sistemul de achiziii de date
utilizeaz 6 circuite de eantionare-memorare. Acestea pot fi constituite fie de
circuitele de eantionare-memorare implementate n cadrul circuitelor MAX
271, fie de circuite suplimentare externe, de tip LF198, pentru a menine la
intrarea convertoarelor analog-digitale semnalul de msurat constant
(0,25LSB) pe toat durata conversiei. De asemenea, caracterizarea unor
anumite procese impune eantionarea sincron a semnalelor de intrare. Astfel,
comanda de eantionare-memorare poate fi comun tuturor celor 6 circuite,
realizndu-se astfel o achiziie sincron, sau poate fi individualizat la nivel de
cte un circuit, realizndu-se un proces de achiziie asincron sau poate fi
implementat o schem cu faciliti de supraeantionare la nivel de grupuri de
cte trei circuite.
Circuitele externe folosite, de tip LF198, sunt circuite de eantionarememorare, realizate monolitic, ce utilizeaz tehnologia BI-FET pentru a obine
o precizie superioar att n curent continuu, ct i pentru achiziia semnalelor
rapid variabile.
Funcionnd ca circuite repetoare, acestea sunt caracterizate printr-o
precizie de 0,002% a amplificrii i de un timp de achiziie de 5 s, pentru o
precizie de 0,01%. Folosirea tehnologiei bipolare n realizarea etajului de intrare
asigur tensiuni de offset mici i o band larg de frecven (1MHz), fr
probleme de stabilitate. Impedana de intrare, de 1010, permite achiziionarea
semnalelor de excitaie ce provin de la surse de semnal cu impedan intern
ridicat, fr a fi afectat exactitatea.
Amplificatorul de ieire combin dispozitive bipolare i tranzistoare JFET
cu canal P, pentru a putea asigura rate de cdere de 5mV/min, utiliznd o
capacitate de memorare de 1F.
Se constat c aceste circuite de eantionare-memorare externe sunt mult
mai performante dect cele implementate n structura filtrelor antialiasing,
sistemul de achiziii de date putnd fi echipat opional cu acestea din urm.
Intrrile n circuitele de eantionare-memorare externe sunt constituite de ieirile
filtrelor B din cadrul fiecrui bloc de tip filtru antialiasing.
Trebuie ns remarcat faptul c, la cele dou tipuri de circuite, comenzile
de eantionare-memorare sunt inversate (comanda pentru starea de eantionare
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

207

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

n cazul circuitelor implementate intern n structura filtrelor antirepliere este


activ pe nivel cobort, n cazul circuitelor suplimentare externe fiind activ pe
nivel ridicat; n mod similar pentru trecerea n starea de memorare). Acest
impediment este rezolvat simplu, prin software, existnd variante de programe,
uor diferite, pentru diferitele variante de implementare hardware.
Circuitul este caracterizat de un factor de rejecie a surselor de alimentare
ridicat (110dB), att n modul eantionare, ct i n modul memorare.
Intrrile logice ale circuitului LF198 sunt difereniale i au cureni de
intrare mici, fiind interfaabile direct cu familiile logice TTL, CMOS.
Compensarea offset-ului static (n curent continuu) se realizeaz prin
conectarea pinului de compensare la cursorul unui semireglabil de 1k, avnd
unul din terminale legat la tensiunea pozitiv de alimentare, iar cellalt terminal
nseriat cu o rezisten (ce trebuie s asigure un curent de aproximativ 0,6 mA
prin ponteniometru) la mas.
Compensarea offset-ului dinamic (anularea pasului de memorare) se
realizeaz prin folosirea suplimentar a unui inversor cu poteniometrul de
ajustare conectat ntre intrare i ieire. Un condesator de 10pF, conectat ntre
cursor i capacitatea de memorare, va asigura ajustarea cu 4mV a pasului de
memorare, utiliznd o capacitate de memorare de 0,01F i tensiunea de
alimentare logic de +5V.
Static offset compensation

+
R

P1

Out

AO2

AO1

In

S/H
Command

Comparator

LF198

P2
CS

CH

Dynamic offset compensation

Fig. 6.5 Schema de utilizare a circuitelor de eantionare-memorare LF 198.

n fig. 6.5 este ilustrat structura circuitelor de eantionare-memorare,


208

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

conform schemei de utilizare n sistemul de achiziii de date (incluznd opiunile


de compensare a tensiunii de decalaj - offset-ul static - i de compensare a
pasului de memorare - offset-ul dinamic -).
Pentru o funcionare corect, semnalele logice aplicate circuitului de
eantionare-memorare LF198 trebuie s fie caracterizate de o vitez de variaie
mai mare dect 1V/s. Semnalele de comand mai lente pot determina valori
sensibil crescute ale pasului de memorare. n situaia concret a sistemului
proiectat, fronturile semnalelor de comand fiind asigurate de circuite din
familia TTL nu determin erori n funcionarea circuitului de eantionarememorare.

6.3.1.4 BLOCUL CONVERTOARELOR ANALOG-DIGITALE


n sistemul de achiziii de date, mai precis n cadrul interfeei specializate
de achiziii, achiziia semnalelor de intrare se efectueaz pe 12 bii, ceea ce
permite o precizie de msurare de 0,04875%. Gama tensiunilor de intrare n
sistemul de achiziii de date este selectabil software i/sau hardware n
intervalele:
(-0,3125 +0,3125)V;
(-0,625 +0,625)V;
(-1,25 +1,25)V;
(-2,5 +2,5)V;
(-5 +5)V;
(-10 +10)V.
Conversia analog-digital se efectueaz cu ajutorul a ase convertoare
analog-digitale, cu rezoluie de 12 bii, cu aproximaii succesive, de tipul MAX
181, realizate n tehnologie CMOS.

6.3.1.4.1 DESCRIEREA FUNCIONAL A BLOCULUI DE


CONVERSIE ANALOG-DIGITAL DIN CADRUL
INTERFEEI SPECIALIZATE DE ACHIZIII DE DATE
Interfaa specializat de achiziii de date utilizeaz ase circuite de tip
MAX181 pentru conversia analog-digital a eantioanelor de tensiune i de
curent prelevate din proces.
Circuitul MAX 181 este un sistem de achiziii complet pe 12 bii, care
include un multiplexor analogic de intrare cu ase canale, un circuit de
eantionare-memorare de band larg, o surs de tensiune de referin, realizat
cu o diod Zener cu deriv mic (25 ppm/oC) i o interfa flexibil cu
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

209

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

microprocesoare de 8/16 bii, caracterizat prin vitez ridicat de transfer.


Circuitul este caracterizat printr-o rat ridicat de conversie (maxim 100
kHz pentru un canal), pentru care raportul semnal-zgomot al convertorului are o
valoare de minim 74dB iar distorsiunile armonice totale au o valoare de minim 89dB, o excelent|liniaritate (0,05LSB) i un consum redus de energie (110
mW). MAX 181 poate fi configurat software pentru conversia semnalelor
unipolare (05)V sau bipolare (-2,5+2,5)V, difereniale sau nedifereniale, n
mod independent pe fiecare canal.
Arhitectura unui astfel de circuit este prezentat n fig. 6.6.
Capacitatea de intrare se comport ca o capacitate de memorare, fiind
ncrcat de semnalul de intrare, la fiecare conversie analog-digital. Aceast
capacitate este ncrcat prin intermediul unei rezistene interne, cu valoare de
1k, conectat n serie cu semnalul de la intrare.
n modul de lucru nediferenial, ntre dou cicluri de conversie (atunci
cnd semnalul BUSY este pe nivel logic ridicat), intrarea analogic selectat
este conectat la bornele capacitii de memorare. Cnd se iniiaz o conversie,
se comand deconectarea capacitii de memorare de la intrarea sistemului, n
acest mod realizndu-se memorarea tensiunii de intrare. Atunci cnd
comutatorul se nchide, la sfritul conversiei, capacitatea de memorare este
reconectat la semnalul de intrare, urmnd un nou ciclu de ncrcare. Efectul de
sarcin al intrrilor multiplexorului analogic asupra semnalelor de intrare este
foarte redus, astfel nct, de obicei, nu este necesar folosirea unui repetor de
vitez mare, deoarece convertorul analog-digital este deconectat de la terminalul
de intrare, pe durata conversiei curente.
Durata necesar circuitului de eantionare-memorare pentru achiziionarea
semnalului de intrare depinde de constanta de timp a procesului de ncrcare a
capacitii de memorare. Dac impedana sursei de semnal este mare, timpul de
achiziie se lungete i determin scderea ratei de conversie. Timpul de
achiziie al semnalului poate fi calculat astfel (fig. 6.7):
t S = 10 (R S + R IN ) 20pf > 1,875s
(6.3)
n care:
tS reprezint timpul de eantionare;
RS este impedana sursei de semnal;
RIN =1k
Circuitul de eantionare prevzut la intrarea convertorului analog-digital
este realizat pentru a optimiza urmrirea semnalelor cu amplitudini mari i
band larg de frecven. Banda de frecven tipic a circuitului de eantionarememorare este de 6MHz, permind msurarea semnalelor periodice cu
frecvene superioare vitezei maxime de eantionare de 100kHz pentru care este
garantat rezoluia de 12 bii, folosind tehnica supraeantionrii.
Din structura fiecrui convertor este utilizat doar un singur canal de
intrare al multiplexorului analogic implementat intern, acest canal monitoriznd
210

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

cte o mrime de intrare asociat fiecrei faze a reelei trifazate. Fiecare


convertor are prevzute reglaje de offset (ajustare a zeroului) i un reglaj comun
de ajustare a ctigului (prin ajustarea tensiunii de referin). Toate cele trei
convertoare sunt selectate prin intermediul unui semnal de selecie unic, astfel
nct, la un moment de timp, poate fi declanat un proces de trei conversii
analog-digitale, n paralel. Motivaia aceastei soluii de implementare rezid n
alegerea drept criteriu principal de proiectare creterea vitezei de achiziie a
interfeei specializate de achiziii de date. Convertoarele MAX181 funcioneaz
n modul de lucru port de intrre-ieire, pe 16 bii, lucru realizat prin conectarea
semnalelor de configurare HBEN=0 i MODE=1. Convertoarele folosesc
sursa de tensiune de referin intern a unui singur convertor. Aceast facilitate
asigur o precizie sporit a procesului de conversie analog-digital.
MUXOUT

ADCIN

REFADJ

MAX 181

AIN0
AIN1
AIN2
AIN3
AIN4
AIN5

S/H
MUX
COMP

REFIN

DAC

REFOUT
REFADJ

REF
SAR

CONTROL

LATCH
3-STATE

CONTROL

BUSY

DB0..DB11

Fig. 6.6 Structura sistemului de achiziii de date MAX 181.


TRACK-AND-HOLD AND COMPARATOR
R

IN

ADCIN

AIN_ (DIFF=1)
AGND (DIFF=0)

C
5pF

H O L D

TRACK

COMPARATOR

IN

HOLD
C
20pF
S W

5k

IT C H

TRACK

HOLD

Fig. 6.7 Circuitul de eantionare-memorare al convertorului MAX 181.


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

211

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

Parametrii conversiei curente (modul de funcionare al convertorului prin intermediul semnalelor HBEN i MODE -, gama tensiunii de intrare,
configuraia intrrilor - unipolare sau bipolare, difereniale sau nedifereniale -,
prin intermediul semnalelor BIP, respectiv DIFF), selecia canalului de intrare)
pot fi programate software de ctre unitatea central de prelucrare local, prin
intermediul unui registru de comand i configurare. Aceast programare a
parametrilor de conversie trebuie efectuat la fiecare proces de achiziie; de fapt
aceast operaie declaneaz i procesul de achiziie. Declanarea conversiei se
efectueaz n dou etape:
printr-o instruciune de scriere, se configureaz registrul de comand;
printr-o a doua instruciune de scriere, se transfer coninutul registrului
de comand i configurare ctre convertoarele MAX181 i se ncepe un
ciclu sincron de conversie analog-digital.
Din cele prezentate anterior, se constat c liniile de configurare ale
registrelor de stare, implementate n structura circuitelor, nu sunt comune cu
liniile inferioare ale ieirilor de date.
Un ciclu de conversie dureaz 15 perioade de ceas, dintre care 3 sunt
necesare pentru achiziionarea semnalului de intrare de ctre circuitul de
eantionare-memorare intern, iar celelalte 12 sunt efectiv necesare pentru
efectuarea conversiei analog-digitale prin metoda aproximaiilor succesive.
Frecvena maxim a ceasului este de 1,66MHz, ceea ce conduce la o durat a
ciclului de 8,33s.
Pentru a se realiza software selectarea gamelor semnalelor analogice de
intrare, a fost adoptat soluia implementrii unui amplificator cu ctig reglabil,
conectat ntre ieirea circuitului de eantionare-memorare extern i intrarea
propriu-zis n convertorul analog-digital.
74HCT574

+5V
MUXOUT

ADCIN
AIN0

1k

MAX 400
VIN

16k
AIN1
8k
AIN2

A2
A1
A0
BIP
DIFF
HBEN
MODE

4k
AIN3
2k

GAIN2
GAIN1
GAIN0
BIP=1
DIFF=0
HBEN=0
MODE=1
T/H|T/H

Q7
Q6
Q5
Q4
Q3
Q2
Q1
Q0

D7
D6
D5
D4
D3
D2
D1
D0
LE
OE

D7
D6
D5
D4
D3
D2
D1
D0
LE=CSR x WR
OE

AIN4
1k
AIN5
1k

DB0..DB11

DB0..DB11

MAX 181

Comand de eantionare-memorare

Fig. 6.8 Amplificatorul cu ctig reglabil i comanda convertorului MAX181.

Componentele utilizate pentru realizarea acestui bloc funcional al


212

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

sistemului de achiziii de date trebuie s ndeplineasc criterii foarte stricte de


exactitate i stabilitate.
Astfel, amplificatorul operaional utilizat a fost ales de tip MAX 400,
fiind caracterizat de amplificarea n bucl deschis foarte mare (tipic 110 dB),
de o tesiune de offset extrem de mic (< 1V) i de o stabilitate n timp i cu
temperatura foarte bune.
Prin utilizarea unor rezistene de precizie (cu toleran de 0,01%),
caracterizate i de o bun stabilitate n timp i cu temperatura, i care au o
valoare sensibil mai mare dect rezistena n stare de conducie a canalului
selectat al multiplexorului analogic implementat intern n structura convertorului
analog-digital - pentru a se putea neglija efectul acesteia n calculul amplificrii
circuitului -, de exemplu minim 1k, s-a realizat un circuit cu ctig reglabil
(programabil software prin selectarea canalului de intrare al convertorului
analog-digital MAX181) de nalt precizie i performan.
n cazul prezentat n fig. 6.8, nivelurile de amplificare rezult 1, 2, 4, 8,
16, 32. Recalcularea valorilor rezistenelor, conform relaiei (caracteristica de
transfer a unui amplificator neinversor cu amplificator operaional):
i

Ai = 1 +

Rk
k =1
6

Rk

(6.4)

k =i +1

conduce la obinerea unor niveluri de amplificare diferite, conform dorinelor.


O variant opional de a realiza software selectarea gamelor semnalelor
analogice de intrare, const n intercalarea ntre ieirea circuitului de
eantionare-memorare, implementat intern n structura convertorului MAX 181,
i intrarea n circuitul propriu-zis de conversie analog-numeric, din structura
aceluiai circuit, a unui amplificator cu ctig reglabil (fig. 6.9).
Multiplexorul care comand rezistena de pe bucla de reacie a
amplificatorului operaional, folosit n configuraie de amplificator neinversor,
este un multiplexor adresabil, realizat n tehnologie CMOS, fiind caracterizat de
o rezisten a canalului n starea ON (n conducie) foarte mic (circa 5). De
asemenea, mperecherea canalelor este foarte precis, abaterile rezistenelor
canalelor n starea ON fiind sub valoarea de 0,25%. Multiplexorul folosit, de tip
MAX 368, este caracterizat i de protecia intrrilor contra supratensiunilor
accidentale: un canal, indiferent dac este n stare de conducie sau de blocare,
suport o tensiune de intrare de maximum 45 V, chiar dac circuitul nu este
alimentat. Un canal selectat (n stare de conducie) va trece n stare OFF la
aplicarea pe intrarea corespunztoare a unei supratensiuni.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

213

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE


1k
+5V

ADCIN

+15V

MUXOUT

MAX 400
V+
64k
32k
16k
8k
4k
2k
1k
1k

IN0
IN1

OUT

IN2
IN3
IN4

ANALOG
MUX
MAX 368

SEL2

IN5

SEL1

IN6

SEL0

IN7

WR

GAIN2
GAIN1
GAIN0

EN
AGND

V-

-15V

Fig. 6.9 Schema electric a amplificatorului cu ctig reglabil (variant


opional).

n cazul prezentat n fig. 6.9, nivelurile de amplificare rezult de tipul 2i ,


n care i = 07. Recalcularea valorilor rezistenelor permite obinerea unor
niveluri de amplificare diferite, conform necesitilor.
Deoarece este realizat n tehnologie CMOS i funcioneaz n modul
dispozitiv de intrare-ieire, ale crui diagrame temporale sunt prezentate n fig.
6.10, ieirile de date ale convertorului de tip MAX 181 sunt sensibile la
activitatea pe magistrala de date a sistemului pe durata efecturii unei conversii.
Tranziiile de pe magistrala de date a sistemului pe durata efecturii unei
conversii cauzeaz erori n funcionarea comparatorului ce comand registrul de
aproximaii succesive i, deci, produce erori n rezultatul conversiei. Pentru
rezolvarea acestei probleme s-a adoptat soluia ca ieirile de date ale
convertoarelor s fie prevzute cu cte o memorie FIFO (First In First Out) cu
lungimea cuvntului de 16 bii, de tip Am7204A, n defavoarea celeilalte soluii
posibile: introducerea procesorului din unitatea central de prelucrare local n
stare de ateptare pe durata efecturii conversiei, deoarece prima soluie duce la
creterea vitezei de achiziie (fig. 6.10). De asemenea, utilizarea acestor memorii
permite achiziionarea datelor cu o frecven ridicat i citirea acestora, de ctre
unitatea central de prelucrare, cu o rat mai redus
Adncimea memoriilor FIFO, adic numrul de locaii ale acestora, este
ales n funcie de numrul maxim de eantioane care vor fi prelevate din reeaua
electric trifazat (n fig. 6.11 este utilizat o memorie FIFO cu 4096 locaii).
Extinderea capabilitilor de memorare poate fi realizat foarte uor, prin
214

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

utilizarea unor memorii de tip Am7205A (cu 8192 locaii), deoarece circuitele
sunt compatibile pin la pin.
Blocul memoriilor FIFO dispune de o intrare de iniializare care este
comandat de ctre circuitul de iniializare al unitii centrale de prelucrare
local.
Citirea rezultatelor obinute n urma efecturii conversiei se face printr-o
singur instruciune de citire, ceea ce determin nscrierea datelor de ieire ale
fiecrui convertor (pe doi octei) n cte o pereche de memorii FIFO. O funcie
logic de tip SAU ntre semnalul de citire furnizat simultan celor ase
convertoare i semnalul comun de selecie al acestora determin nscrierea
simultan a datelor de ieire n memoriile FIFO. n urma acestei operaii, se
poate comanda o nou conversie.
CS
WR
RD
BUSY
DATAIN

VALID
DATA

VALID
DATA
NEW
DATA
DB0..DB11

DATAOUT
HOLD
SAMPLE
3 CLK

Fig. 6.10 Diagramele de funcionare ale convertorului analog-digital.

Scrierea n memoria FIFO determin incrementarea att a pointer-ului de


scriere, ct i a pointer-lui de citire. Procesul de memorare continu pn la
memorarea temporar a numrului prestabilit iniial de eantioane sau pn la
umplerea memoriei. n oricare dintre aceste dou situaii, la ncheierea
operaiilor de memorare, se activeaz facilitatea de RETRANSMIT, prin
activarea semnalului RT, fie de ctre semnalul FF (FIFO Full), fie de ctre un
semnal dedicat iniializrii ciclului de citire.
Memoriile FIFO au ieiri de tip three-state, preluarea coninutului
fcndu-se cu ajutorul unor semnale de selecie distincte. Aceste semnale sunt
obinute prin condiionarea ieirilor unui decodificator de porturi (adrese) cu
semnalul de citire al procesorului. Prin manipularea sevenial a seturilor de
ieiri three-state ale memoriilor FIFO se realizeaz, de fapt, multiplexarea
numeric a datelor de ieire, obinute n urma procesului de conversie analogdigital.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

215

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

Pentru a facilita preluarea i interpretarea rezultatelor, semnalul de


selecie MSBYTE, corespunztor fiecrui convertor, permite preluarea, pe cei
patru bii mai puin semnificativi, a informaiilor de pe liniile de ieire
DB11DB8 ale circuitelor, iar semnalul de selecie LSBYTE determin preluarea
informaiile de pe liniile de ieire DB7DB0.
Comand scriere

WR

Comand citire

RD
Semnal selecie convertor

CS
Scriere
FIFO

MAX181
DB0..DB11

DB0..DB7

Am7204A
DIN
DOUT

Semnal
selecie
LSByte

Citire
FIFO_L

D0..D7

74HCT32

XI

Magistral

de date

D0..D7

DB0..DB11

DB8..DB11

Am7204A
DIN
DOUT
XI

RS RT FF

D0..D7
Semnal
selecie
MSByte

Citire
FIFO_H
74HCT32

RESET
74HCT32

Fig. 6.11 Buffer-area ieirilor de date ale convertorului A/D cu memorii FIFO.

Biii mai semnificativi, neutilizai, ai memoriei FIFO selectat cu


semnalul MSBYTE vor conine informaiile referitoare la nivelul de amplificare
programat, astfel:
cei trei bii mai semnificativi preiau informaia de selecie a amplificrii
din registrul de comand;
cel de-al patrulea bit preia informaia de depire de la un comparator
cu fereastr; tensiunile de referin ale acestuia sunt obinute de la sursa
de referina intern a sistemului de achiziiii MAX181.
Prin alocarea diferit a biilor de date de la convertorul analog-digital
MAX 181 la liniile de intare ale memoriilor FIFO, se poate realiza foarte uor
comutarea software ntre rezoluia de interpretare a rezultatelor conversiilor pe
12/8 bii.
Trebuie remarcat simplitatea modului de interfaare a blocului de
conversie analog-digital cu unitatea central de prelucrare: prin intermediul
unor porturi de intrare-ieire.
Aceast structur simpl, dar, n acelai timp, eficient, a fost adoptat
pentru a pstra o compatibilitate deplin cu modul de organizare al
216

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

microcontroller-ului 80C552 (sub form de porturi cu funcii dedicate), ce st la


baza unitii centrale.
Pentru evitarea problemelor de sincronizare ce pot apare n funcionare
(semnalele de selecie, citire i scriere asociate convertorului trebuie s fie
corelate cu ceasul acestuia), ceasul, folosit de convertor pentru efectuarea
conversiilor, este obinut prin divizare din ceasul unitii centrale de prelucrare.
Timpul minim de achiziie, compus din:
timpul de eantionare (maxim 5s),
timpul de stabilire a ieirii circuitelor eantionare-memorare (maxim
0,5s),
timpul de conversie analog-digital (maxim 9,5s),
la care se adaug durata instruciunilor de selecie a parametrilor
conversiei i de comand a unei conversii analog-digitale, de comand
a circuitului de eantionare-memorare (4s)
rezult de maximum 19s, ceea ce permite o frecven de achiziie de 51,2 kHz
pe un canal, extrem de util n aplicaiile de acest tip necesitnd analiz spectral
a semnalului eantionat.

6.3.1.5 BLOCUL DE CONVERSIE DIGITAL-ANALOGIC


Seciunea ieirilor analogice este implementat utiliznd un circuit de tip
MAX526, ce conine patru convertoare digital-analogice pe 12 bii cu ieire n
tensiune. Circuitul include amplificatoare operaionale de precizie de tip buffer
pentru a asigura ieirile n tensiune. Pentru funcionare circuitul MAX526
necesit o tensiune de alimentare pozitiv, n gama (+12 +15)V, precum i o
tensiune de alimentare negativ, cu valoarea de -5V, n raport cu tensiunea de
referin a schemei (masa electric 0V). Tensiunile de offset, amplificrile i
liniaritatea sunt ajustate tehnologic, astfel nct eroarea total s nu depeasc
VREF
V
).
1LSB (1LSB = REF
=
4096
212
Acest circuit dispune de o interfa digital dublu buffer-at, prin
intermediul unui registru de intrare de 12 bii i a unui registru al convertoarelor
D/A de 12 bii. Cuvntul nscris n acest din urm registru este folosit pentru
obinerea tensiunii de ieire a convertorului. MAX526 poate fi interfaat cu un
microcontroller sau cu un microprocesor prin intermediul unei magistrale
externe de date, cu lungimea de un octet. Cuvntul de programare este nscris n
registrul de intrare prin intermediul a dou instruciuni de scriere (activarea
semnalului de scriere pentru cei 8 bii mai puin semnificativi, respectiv pentru
cei mai semnificativi 4 bii). Este disponibil i un semnal asincron de ncrcare a
registrului convertorului A/D, denumit LDAC i care este activ pe nivel logic
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

217

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

cobort. Toate intrrile logice sunt compatibile att TTL, ct i CMOS.


MAX526 conine patru convertoare A/D cu ieire n tensiune. Convertoarele A/D sunt de tip reea rezistiv R-2R inversat, care convertete
cuvntul digital de intrare, pe 12 bii, ntr-o tensiune de ieire proporional cu
acesta i dependent de tensiunea de referin extern aplicat convertorului.
Circuitul dispune de dou intrri de tensiune de referin: o prim intrare este
partajat de convertoarele D/A A i B ( VREFA / B ); cea de-a doua tensiune de
referin este utilizat de ctre celelalte dou convertoare, respectiv C i D
( VREFC / D ). Aceste intrri pentru tensiunile de referin, aplicate din exterior,
permit obinerea unor game de tensiuni de ieire diferite pentru cele dou
perechi de convertoare digital-analogice, A i B pe de o parte, respectiv C i D
pe de alt parte.
Circuitul MAX526 poate fi utilizat n aplicaii ce necesit multiplicarea
analogic a semnalelor de intrare. Tensiunile de referin pot fi att tensiuni
continue ct i tensiuni alternative. Tensiunea extern aplicat fiecrei intrri
VREF determin captul de scal al tensiunilor de ieire pentru fiecare pereche de
convertoare D/A. Impedana de intrare prezentat de aceste intrri este
dependent de codul binar aplicat intrrilor digitale ale circuitului. Valoarea
minim a impedanei de intrare, cu valoarea tipic de 6k, apare pentru codul
binar de intrare cu valoarea 0101 0101 0101. Valoarea maxim a impedanei de
intrare, cu valoarea tipic de 60k, se manifest pentru codul binar de intrare cu
valoarea 0000 0000 0000. Valoarea impedanei intrrilor pentru tensiunile de
referin, dependent de valoarea codului de intrare binar aplicat circuitului,
necesit stabilizarea tensiunilor de referin externe. Este, de asemenea, necesar
ca sursele de tensiune extern de referin s fie caracterizate de o impedan de
ieire ct mai mic, n special la frecvene mari.
Impedana minim de intrare garantat este de 5k. Atunci cnd ambele
intrri sunt comandate de aceeai surs extern de tensiune de referin,
impedana minim garantat este de 2,5k. O prim modalitate de asigurare a
unei exactiti ct mai ridicate const n utilizarea unor surse externe de referin
ct mai stabile (de exemplu, tensiunea de ieire a sursei de tensiune de referin
MAX674 ( VREF = 10V ) variaz cu maximum 0,33LSB dac comand dou
intrri n loc de una singur. Performane mai bune pot fi obinute prin utilizarea
unor circuite cu caracteristici de stabilitate superioare, cum ar fi de pild
MAX670/MAX671.
O a doua metod de obinere a unei exactiti ct mai ridicate const n
buffer-area cu un amplificator operaional de precizie a sursei de tensiune de
referin. Impedana de ieire a amplificatorului funcionnd n bucl de reacie
negativ trebuie s fie mai mic dect 0,05 . Aceast valoare a impedanei de
ieire asigur o eroare maxim de 0,08 LSB n cazul n care sunt comandate
ambele intrri. Se recomand utilizarea unui amplificator operaional de precizie
218

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ridicat, de tip MAX400 sau OP07.


Capacitatea intrrilor de tensiune de referin este, de asemenea
dependent de codul binar aplicat intrrilor digitale ale circuitului i variaz
ntre 125pF 300pF.
Ieirile A/D pot fi reprezentate ca nite surse de tensiune controlate
N
numeric: VOUTi = B VREF ;i = A D , n care N B reprezint valoarea
4096
zecimal a codului binar aplicat la intrrile numerice ale circuitului
N B = 0 4095 .
Amplificatoarele interne de tip buffer cu care sunt prevzute ieirile celor
patru convertoare D/A din cadrul circuitului MAX526 sunt n configuraie de
repetoare de tensiune i sunt caracterizate printr-un slew-rate tipic de 5V/s.
Aceasta determin ca timpul de stabilire a ieirii, n limite de 0,5LSB, pentru o
excursie de 10V la ieire, s fie tipic 3s. Condiiile n care a fost determinat
acest timp sunt caracterizate printr-o sarcin de 5k || 100pF
Intrrile digitale ale circuitului MAX526 sunt compatibile TTL i CMOS.
Circuitul dispune de o interfa digital cu un microprocesor, pe 8 bii. Structura
de intrare este dublu buffer-at i este constituit dintr-un registru de intrare de
12 bii (8+4) i un registru corespunztor fiecrui convertor A/D. Tensiunea de
ieire a fiecrui convertor reflect cuvntul memorat n registrul DAC
corespunztor. Liniile de adres A0 i A1 sunt utilizate pentru a selecta care dintre
convertoare primete date de la magistral, aa dup cum reiese din urmtorul
tabel:
A1

A0

REGISTRUL DE INTRARE
SELECTAT

L
L
H
H

L
H
L
H

registru de intrare DAC A


registru de intrare DAC B
registru de intrare DAC C
registru de intrare DAC D

Intrrile CSLSB , CSMSB , WR permit ncrcarea datelor de pe


magistral n registrele de intrare selectate prin intermediul liniilor de adrese A0
i A1. Prin activarea semnalelor CSLSB i WR se ncarc cei mai puin
semnificativi 8 bii n registrul de intrare. Prin activarea semnalelor CSMSB i
WR se ncarc cei mai semnificativi 4 bii n registrul de intrare. Ordinea de
ncrcare a datelor (cei mai puin semnificativi 8 bii sau cei mai semnificativi 4
bii) nu este important. Este de asemenea posibil ncrcarea concurent a
tuturor celor 12 bii prin activarea simultan a semnalelor CSLSB , CSMSB i
WR . Trebuie, ns, menionat faptul c biii 118 vor fi identici cu biii 30.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

219

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

CSLSB

CSMSB

WR

LDAC

FUNCIA
ncarc octetul mai puin semnificativ n registrul de
intrare selectat
memoreaz octetul mai puin semnificativ n registrul de
intrare selectat
memoreaz octetul mai puin semnificativ n registrul de
intrare selectat
ncarc octetul mai semnificativ n registrul de intrare
selectat
Memoreaz octetul mai semnificativ n registrul de
intrare selectat
Memoreaz octetul mai semnificativ n registrul de
intrare selectat
Transfer datele din registrele de intrare n registrele
DAC
Memoreaz registrele DAC
ncarc octetul mai semnificativ n registrul de intrare
selectat i ncarc registrele de intrare n registrele DAC
nu se efectueaz nici o operaie; dispozitivul nu este
selectat
ncrcare concurent 12 bii n registrele de intrare,
transfer datele din registrele de intrare n registrele
DAC
ncrcare concurent 12 bii n registrele de intrare
ncarc octetul mai puin semnificativ n registrul de
intrare selectat i ncarc registrele de intrare n
registrele DAC
Transfer datele din registrele de intrare n registrele
DAC
nu se efectueaz nici o operaie.

Datele sunt memorate n registrul de intrare selectat pe frontul cresctor al


semnalului WR .
Datele sunt transferate din registrele de intrare n registrele DAC prin
forarea semnalului LDAC la nivel logic cobort. Se reactualizeaz simultan
toate cele patru convertoare D/A.
Circuitul MAX526 poate funciona att n mod unipolar, ct i bipolar,
pentru etajele de ieire.
ntreaga arhitectur a interfeei de achiziii de date a fost conceput astfel
nct s ofere sistemului o flexibilitate ct mai mare, soluii ct mai facile de
testare i calibrare i o exactitate ct mai ridicat de msurare.

220

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

6.4 UNITATEA CENTRAL DE PRELUCRARE LOCAL CU


MICROCONTROLLER 80C552
Unitatea central de prelucrare local, organizat n jurul unui
microcontroller 80C552, de fapt a unui sistem de dezvoltare reproiectat, cu
microcontroller 80C552, confer sistemului avantajul de a putea fi amplasat n
imediata vecintate a procesului controlat, calculatorul central, compatibil IBMPC, putnd fi localizat la distan.

6.4.1 DESCRIEREA FUNCIONAL A UCPL


Unitatea Central de Prelucrare Local (UCPL) a sistemului de achiziii
de date are la baz un sistem de dezvoltare reproiectat, organizat n jurul unui
microcontroller 80C552, realizat n tehnologie CMOS de firma PHILIPS,
compatibil software cu familia de procesoare 80C51.
Bazat pe aceast structur versatil i extensibil, s-a proiectat unitatea
central de prelucrare a sistemului de achiziii de date. S-a modificat i
restructurat sistemul de dezvoltare n sensul creterii numrului de resurse
hardware: filtre antialiasing programabile, amplificatoare cu ctig reglabil
programabile, convertoare analog-digitale interfaabile i programabile, buffer-e
de date constituite de memorii FIFO, interfa serial de tip RS-485, registre de
comand i configurare, detectoare ale trecerii prin zero ale semnalelor analizate
n scopul determinrii frecvenei acestora; s-a extins, de asemenea, numrul de
semnale de selecie n conformitate cu resursele hardware suplimentare; s-a
utilizat un microcontroller de tip 80C552 capabil s funcioneze la o frecven a
ceasului de 30 MHz. S-au pstrat integral, din punct de vedere hardware i al
configuraiei n spaiul de adresare, toate resursele sistemului de dezvoltare
iniial, ele gsindu-i utilitatea n cadrul sistemului de achiziii de date proiectat.
n fig. 6.12 este prezentat schema bloc detaliat a unitii centrale de
prelucrare locale, UCPL, a sistemului de achiziii de date i de analiz a
semnalelor electrice.

6.4.2 RESURSELE UNITII CENTRALE DE PRELUCRARE


LOCALE A SISTEMULUI DE ACHIZIII DE DATE
Unitatea central de prelucrare local a sistemului de achiziii de date i
de analiz a semnalelor electrice, dispune de urmtoarele resurse hardware i
caracteristici tehnice:
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

221

222

IN/OUT 0..7

PWM 0..1
INADC 0..7

RS-485

RS-232

RESET

EEPROM

RxD

TxD

SCL

SDA

A8 .. A15

ALE

PSEN

WR
RD

C 80C552

AD0 .. AD7

Q
30,0 MHz

A8 .. A15

ADR

WR
RD CS

RAM

DATA

OUT 0..7

1
5

0
4
#

2
6

CS

ADR

RD

FIFO

WR

RD

DATA
EPROM

IN 0..7

3
7

LOCAL KEYBOARD

ADDRESS BUS (A0 .. A15)

A0 .. A7

LATCH
LE OE

LOCAL LCD DISPLAY

RD

FIFO

WR
...
RD

RD

FIFO

WR

OUT

OUT

DECODE
LOGIC

EN

IN

EN

IN

DECODE
LOGIC

FIFO

WR

DATA (6/8 x 2 x 8 bits)

ANALOG SECTION CIRCUITRY

SELECTION BUS

BIDIRECTIONAL (R&W)

SELECTION BUS

UNIDIRECTIONAL (R/W)

DATA BUS

LATCH
OE LE

LE

OE

LATCH

WR
RD CONVERSION CUT-OFF
CS PARAMETERS FREQUENCY

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

Fig. 6.12 Structura unitii centrale de prelucrare locale UCPL.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

microcontroller PCB80C552 (fr memorie intern de program),


lucrnd la o frecven maxim a ceasului de 30 MHz;
frecvena ceasului unitii centrale de prelucrare este de 30 MHz;
memoria de date extern (DATA MEMORY), de tip static,
implementat cu un circuit KM62256AL, realizat n tehnologie
CMOS, cu capacitatea de 32 koctei i caracterizat de un timp de acces
de 35ns. Spaiul de adresare ocupat de memoria de date este cuprins
ntre 8000H i FFFFH (fig. 6.13);
memoria de program extern (PROGRAM MEMORY),
implementat cu un circuit EPROM de tip 27C256, realizat n
tehnologie CMOS, cu capacitatea de 32 koctei i caracterizat de un
timp de acces de 70ns. Spaiul de adrese ocupat de memoria de
program extern este cuprins ntre 0000H i 7FFFH (fig. 6.13);
64 K

FFFF H
DATA
MEMORY
- RAM (EXTERNAL)
32 Kbytes
8000 H
7FFF H

32 K
PROGRAM
MEMORY
- EPROM (EXTERNAL)
32 Kbytes
0K

0000 H

Fig. 6.13 Harta memoriei unitii centale de prelucrare.

interfa serial compatibil RS-232 / RS-485 de mare vitez, full


duplex. Interfaa serial de tip RS-232 folosete protocol software de
comunicaie, fr semnale de dialog, permind viteze de comunicaie
cuprinse ntre 110 bauds i 19200 bauds, iar interfaa RS-485 posed i
semnale de dialog, permind viteze de comunicaie cuprinse ntre
1200 bauds i 115000 bauds;
bus serial I2C (bus multimaster cu arbitrare de prioriti i vitez mare
de transmisie - 100 kbytes pe secund n modul standard i 400 kbytes
pe secund n modul rapid -, frecvena maxim a ceasului serial este
100kHz. Destinaia principal este comunicaia cu circuite integrate
sau controller-e, prevzute cu interfaa I2C, aflate n aceeai incint;
memorie EEPROM serial, implemetat cu un circuit de tip
ST24C04, realizat n tehnologie CMOS, cu capacitatea de 512 octei
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

223

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

224

i conectat la interfaa I2C. Aceast memorie nevolatil conine


valorile limit ale parametrilor supravegheai;
4 porturi paralele de ieire de 8 bii (constituite de: registrul de
comand i configurare a parametrilor conversiei, registrul de
programare a filtrelor antialiasing, registrul de ieire OUT 0..7,
registrul de ieire OUT 8..15);
17 porturi paralele de intrare de 8 bii (constituite de portul de intrare
IN 0..7 i cele 6/8 perechi de buffer-e de date, constituite de memorii
FIFO, de tip Am7204A);
2 porturi paralele, bidirecionale, de 8 bii (constituite de ansamblul
celor 6/8 convertoare analog-digitale, de tip MAX181 i de afiajul cu
cristale lichide cu dou linii de cte 16 caractere, de tip
PVC160205AYL);
8 intrri multiplexate la un convertor analog-digital cu rezoluia de 10
bii, implementat n structura microcontroller-ului 80C552 i
caracterizat de un timp de conversie de 50 cicluri main;
32 ieiri decodificate de selecie porturi (tabelul 6.1).
Porturile OUT 0..7 i IN 0..7 sunt utilizate pentru implementarea
tastaturii locale, de tip matriceal, cu trei linii i patru coloane. Liniile
sunt baleiate secvenial (sunt active pe 0) prin programarea liniilor
0..2 ale portului OUT 0..7, prin intermediul portului de intrare IN 0..7
se citesc pe liniile mai semnificative codul liniei, iar pe liniile mai
puin semnificative codul coloanei, de pe care s-a acionat o tast.
Registrul de comand i configurare a achiziiei analog-digitale
reprezint un port de ieire pentru comanda sistemului de achiziii de
date specializat, extern, caracterizat de o rezoluie mai mare i o vitez
de achiziie mai ridicat dect a celui implementat n cadrul
microcontroller-ului. Selectarea acestui port de ieire se face cu
semnalul CMDREG (CoMmanD REGister), ocupnd un spaiu de
adrese ntre 108H i 10FH. n cazul n care portul suplimentar este
utilizat pentru comnada unui sistem de achiziii de date specializat,
biii portului au urmtoarea semnificaie:
bitul 0 (cel mai puin semnificativ) - comand de eantio-narememorare, configurabil prin program pentru circuitele de
eantionare-memorare implementate n cadrul filtrelor antialiasing
MAX 271 sau pentru circuitele de eantionare-memorare externe,
de tip LF198;
bitul 1 - comanda modului de funcionare al convertoarelor analogdigitale MAX181 (MODE=1);
bitul 2 - comanda modului de preluare a rezultatului unei conversii
analog-digitale (HBEN=0 - preluare rezultat pe 12 bii);
bitul 3 - comanda modului de configurare a intrrilor convertoarelor

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

analog-digitale (DIFF=0 - intrri nedife-reniale);


bitul 4 - comanda modului de configurare a intrrilor convertoarelor
analog-digitale (BIP=1- intrrile accept semnale bipolare);
bitul 5 - comanda amplificatorului cu ctig reglabil, GAIN0 - bitul
cel mai puin semnificativ;
bitul 6 - comanda amplificatorului cu ctig reglabil, GAIN1 - bitul
intermediar;
bitul 7 (cel mai semnificativ) - comanda amplificatorului cu ctig
reglabil, GAIN2 - bitul cel mai semnificativ.
Tabelul 6.1 Spaiul de adrese pentru seleciile de porturi.

Liniile de adrese A0 A15


A15 A14 A13 A12 A11 A10 A9

A8

A7

A6

A5

A4

A3

A2

A1

A0

Ieire
DCD

Adresa
(H)

LCD

100H..07H

ADCSEL

108H..10FH

CMDREG

110H..117H

CUTOFF

118H..11FH

OUT 0..7

120H..127H

FIFO1L

128H..12FH

FIFO1H

130H..137H

FIFO2L

138H..13FH

OUT 8..15

140H..147H

FIFO2H

148H..14FH

FIFO3L

150H..157H

FIFO3H

158H..15FH

IN 0..7

160H..167H

FIFO4L

168H..16FH

FIFO4H

170H..177H

FIFO5L

178H..17FH

FIFO5H

180H..187H

FIFO6L

188H..18FH

FIFO6H

190H..197H

FIFO7L

198H..19FH

FIFO7H

1A0H..1A7H

FIFO8L

1A8H..1AFH

FIFO8H

1B0H..1B7H

NC

1B8H..1BFH

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

225

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

2 ieiri analogice de 8 bii modulate n durat. Prin integrarea lor se pot


obine dou convertoare digital-analogice de 8 bii;
3 numrtoare de tip timer / counter;
1 watchdog programabil (mijloc de autodeblocare n cazul execuiei
eronate a programelor datorit perturbaiilor sau interferenelor;
15 linii de ntreruperi dintre care 6 linii externe;
reset / autoreset (la punerea sub tensiune);
conectarea direct a unui afiaj cu cristale lichide, cu dou linii de cte
16 caractere.
Seciunea de captare a evenimentelor, din cadrul microcontroller-ului
80C552 este utilizat pentru msurarea frecvenei semnalelor preluate din cadrul
reelei trifazate analizate.
Utiliznd un comparator de tip neinversor, cu tensiune de referin egal
cu zero, pot fi detectate trecerile prin zero ale semnalelor de intrare. La trecerea
prin zero i nceputul semialternanei pozitive a semnalului de intrare (tensiune
sau curent), ieirea comparatorului basculeaz n 1 logic. Acest front este
utilizat generarea unui semnal (cu perioad dubl raportat la cea a semnalului
de intrare), destinat iniializrii timer-ului T2 i reprezint, de asemenea, frontul
ce determin captarea coninutului su n registrul CT0. Astfel la cea de-a doua
captare, registrul CT0 va conine un numr proporional cu perioada semnalului
de intrare. Rezoluia de 16 bii permite o precizie foarte ridicat de determinare a
periodei semnalelor.

6.5 INTERFAAREA UNITII CENTRALE DE


PRELUCRARE, CU MICROCONTROLLER 80C552, CU UN
SISTEM HARDWARE EXTERN (INTERFAA DE ACHIZIII
DE DATE)
6.5.1 MODALITI DE CUPLARE A UNITII CENTRALE
D
E PRELUCRARE CU UN DISPOZITIV HARDWARE
DE
EXTERN
Unitatea central de prelucrare local prezentat, organizat n jurul unui
microcontroller de tip PCB 80C552, poate fi interfaat cu un hardware extern,
dedicat extinderii facilitilor unitii centrale de prelucrare.
n ceea ce urmeaz, se va prezenta modalitatea de cuplare a unui sistem de
achiziii de date performant la unitatea central de prelucrare local cu
microcontroller 80C552. Cuplarea oricrui sistem hardware extern, indiferent
de funcia realizat de acesta, poate fi fcut n dou moduri:
226

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

direct, prin intermediul seciunilor de date, adrese i comenzi ale


magistralei sistemului de dezvoltare, de fapt ale magistralei (porturilor
dedicate acestor scopuri) ale microcontroller-ului 80C552;
prin intermediul porturilor de intrare/ieire ale sistemului de
dezvoltare, care sunt disponibile n exterior prin elemente dedicate de
interconectare.
Prima variant prezentat, dei confer avantajul unei versatiliti crescute
- soluiile de implementare fiind practic limitate doar de spaiul de adresare al
microcontroler-ului -, prezint dezavantajul major al ncrcrii magistralei
sistemului de dezvoltare. Trebuie precizat faptul c, aa dup cum reiese dintr-o
analiz atent a structurii sistemului, liniile magistralei de date, care este
multiplexat temporal cu seciunea inferioar a magistralei de adrese prin
intermediul pinilor portului P0 al microcontroller-ului 80C552, nu permite o
soluie simpl de buffer-are a acesteia. Aceast situaie se datoreaz faptului c
nu se dispune de un semnal care s indice sensul de manipulare (transfer) al
datelor pe aceast seciune a magistralei. De aceea, este recomandat ca seciunea
de date a magistralei s nu fie ncrcat suplimentar. De asemenea, este foarte
important faptul c, datorit amplasrii pe plci diferite a sistemului de
dezvoltare i a echipamentului extern de achiziii de date, interconectarea celor
dou sisteme necesit practic un numr mare de interconexiuni, cu lungimi mari,
realizate cu cabluri panglic, care reprezint liniile magistralei sistemului:
seciunea de date pentru transferul informaiei n ambele sensuri, seciunea de
adrese pentru decodificarea de porturi i seciunea de control pentru specificarea
tipului de aciune realizat.
Cea de-a doua variant enunat prezint avantajul minimizrii
interconexiunilor ntre cele dou sisteme, cel al folosirii unor semnale care sunt
buffer-ate fa de semnalele de pe magistrala intern a sistemului de dezvoltare
i cel al utilizrii unor conectori externi de interconexiune, care asigur o
grupare optimal a semnalelor pe grupuri funcionale.

6.5.2 DESCRIERE FUNCIONAL A ANSAMBLULUI


U
NITATE CENTRAL DE PRELUCRARE LOCAL UN
INTERFAA SPECIALIZAT DE ACHIZIII DE DATE
n urma unei analize atente a sistemelor de achiziii de date existente pe
plan mondial, concluzia care s-a tras a fost aceea c o plac de achiziii
introdus n calculatorul central (de tip plug-in) nu reprezint o soluie optim,
deoarece impune prezena sistemului de calcul n imediata vecintate a punctului
de msurare i un sistem de calcul dedicat acestei activiti.
Amplasarea sistemului gazd n vecintatea procesului studiat ridic
probleme legate de compatibilitatea electromagnetic. Cmpurile electroSISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

227

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

magnetice intense din punctul de msurare determin erori tranzitorii n


funcionarea sistemului de calcul. Este cunoscut efectul acestor perturbaii de
foarte scurt durat asupra funcionrii procesoarelor evoluate, nglobnd
coprocesoare matematice, cum ar fi de pild generaia INTEL 486
DX/DX2/DX4 sau Pentium, sau asupra procesoarelor de semnal DSP: erori n
efectuarea calculelor, care conduc de cele mai multe ori la imposibilitatea
recuperrii datelor procesate.
Soluia propus elimin aceste dezavantaje, permind i o cuplare n reea
a mai multor astfel de sisteme de achiziii de date la acelai calculator central
(maximum 4 sisteme de achiziii de date specializate, de acest tip, pot fi cuplate
la un calculator gazd).
Comunicaia sistem de achiziii-calculator se face pe o legtur serial
full-duplex, compatibil RS-232, viteza de comunicaie fiind programabil
software i cuprins ntre 110 bauds i 19200 bauds.
n cazul n care cmpurile electromagnetice produc perturbaii ce
afecteaz calitatea transmisiei pe canalul serial, se poate efectua transmisia n
curent ntre sistemul de achiziii de date i calculatorul compatibil IBM-PC.
Transmisia n curent, dei se tie c este mai lent, prezint o imunitate foarte
ridicat la cmpuri perturbatoare.
Pe linia de comunicaie serial calculatorul central transmite sistemului de
achiziii rata de conversie, numrul de eantioane care trebuie prelevate din
proces i rata serial de transfer a rezultatelor. La iniializarea procesului de
achiziie, att sistemul de achiziii de date, ct i calculatorul gazd, demareaz
comunicaia pe viteza de 9600 bauds. Comunicaia este iniiat de calculatorul
central, sub controlul direct al operatorului uman. Acesta precizeaz, selectnd
dintr-o fereastr de meniuri, parametrii achiziiei precizai anterior. Rata de
transfer a rezultatelor achiziiei poate fi crescut pn la 19200 bauds, pentru
creterea operativitii sistemului, sub aciunea operatorului uman.
Am optat pentru acest tip de unitate central de prelucrare local
deoarece:
este caracterizat printr-o fiabilitate foarte ridicat i prin consum
energetic foarte redus, fiind realizat n tehnologie CMOS;
spaiul de adresare este dublat, deoarece cele dou tipuri de memorie
extern (memoria de program - 64 koctei, memoria de date i porturi
de intrare-ieire - 64 koctei) sunt selectate cu semnale de control
diferite;
setul de instruciuni este mai bogat (instruciuni de nmulire i
mprire) i asemntor cu cel al microprocesoarelor tradiionale pe 8
bii;
viteza de lucru este ridicat, durata tipic a unui ciclu main fiind de
aproximativ 0,4s;
dispune de o interfa I2C, de tip multimaster, permind dezvoltri
228

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ulterioare de sisteme multiprocesor. De asemenea, pe acest magistral


serial, caracterizat de o rat ridicat de transfer, poate fi conectat o
memorie suplimentar de tip EEPROM serial, n care pot fi memorai
parametri prestabilii ai sistemului sau care poate fi folosit pentru
identificarea tipurilor de perturbaii din reeaua electric analizat,
nainte de efectuarea prelucrrilor numerice asupra eantioanelor
prelevate din proces;
unul dintre cele patru porturi ale microcontroller-ului cuprinde
semnalele de control specifice funcionrii ca microprocesor i
semnale de comunicaie serial (RxD, TxD). n acest mod, pentru
comunicaia cu un alt sistem de calcul, este necesar doar un minim de
hardware, respectiv circuitele de interfa pentru compatibilizare cu
standardul RS-232. Aceasta este realizat cu ajutorul unui circuit
specializat de tip MAX232, circuit care conine o pereche de
emitoare-receptoare, translatoare de nivel TTLRS-232 i RS232TTL i dou circuite surs n comutaie, asigurnd tensiunile de
10V necesare funcionrii translatoarelor de nivel. Pentru funcionare,
acest circuit necesit doar patru condensatoare externe. Rata serial de
transfer poate fi programat ntre 110 bauds i 19200 bauds, prin
utilizarea unuia dintre cele dou circuite timer / counter de 16 bii,
implementate intern.

6.6 ESTIMAREA ERORILOR CE SE MANIFEST N


CADRUL SISTEMULUI DE ACHIZIII DE DATE
6.6.1 ESTIMAREA ERORILOR SOFTWARE
Aplicarea transformatei FFT presupune eantionarea i digitizarea
semnalului analogic de intrare. n funcie de raportul existent ntre frecvena de
eantionare i frecvena semnalului analizat, se pot distinge:
eantionare coerent, cnd frecvena de eantionare este un multiplu
al frecvenei semnalulul (fig. 6.14a);
eantionare necoerent, cand frecvena de eantionare nu este un
multiplu ntreg a frecvenei semnalului (fig. 6.14b).
n cazul eantionrii coerente, singurele erori care afecteaz amplitudinea
i faza fundamentalei (A, ) provin din zgomotul aleator suprapus peste semnalul util, a crui valoare efectiv a fost considerat Vef=25 LSB pentru A=5 V.
Se deduc expresiile dispersiei erorilor A i n condiiile unui zgomot de
cuantizare care afecteaz eantioanele {sk}. Generaliznd aceste expresii pentru
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

229

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

un zgomot alb oarecare, cu distribuie normal i medie nul, aa cum poate fi


considerat zgomotul de band larg care afecteaz lanul de achiziie, rezult:
2N
2
A =
NS
(6.5)
2
2

2 = N2
A
2
unde N reprezint dispersia zgomotului.
A

A
f0

n -3 n -2 n -1
0

n0
=
T0

n0 0,5
T0

f0 =

n +1 n +2 n +3
0

a) Eantionarea coerent

n -3 n -2 n -1
0

n +1 n +2 n +3
0

b) Eantionarea necoerent

Fig. 6.14 Eantionarea coerent i necoerent.

nlocuind N = 25LSB, N S = 160, A = 5V rezult:


A = 2,79LSB
= 0,006rad
Erorile relative medii (raportate la capul de scal) rezult a fi:
A = 0,006%
= 0,1%

(6.6)

(6.7)

Aceste valori sunt neglijabile, dar dificultile aplicrii eantionrii


coerente n condiiile fluctuaiei frecvenei reelei, fac metoda inaplicabil pentru
aplicaia propus.
Eantionarea necoerent plaseaz linia spectral a fundamentalei n
locaia cea mai apropiat de poziia adevrat, i prin aceasta conduce la o
eroare de estimare a frecvenei de maximum:
1
f = Te
(6.8)
2
Considernd N S = 160, f e = 1,97kHz (ceea ce corespunde la 40
230

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

puncte/perioad) rezults f=0,7Hz, respectiv o eroare relativ de:


f = 1,4%
(6.9)
n plus, nregistrarea unui numr nentreg de perioade ale semnalului de
intrare, conduce la scurgerea liniei spectrale a fundamentalei n toate locaiiIe
DFT, astfel nct amplitudinea aparent a fundamentalei va scdea. n cazul cel
mai nefavorabil, cnd frecvena semnalului este la jumtate ntre dou locaii
f
f
succesive, k e i (k + 1) e , eroarea de amplitudine este:
NS
NS

A
A = 20 log 4dB
(6.10)
A
amplitudinea aparent a fundamentalei.
n care am notat cu A
n general, eroarea comis la determinarea amplitudinii este aproximativ
egal procentual cu abaterea frecvenei de eantionare de la cel mai apropiat
multiplu al frecvenei semnalului. Fixnd f e = 5000Hz (pentru a putea analiza
armonicile pn la ordinul 50), dac frecvena semnalului nregistreaz o abatere
de 1% fa de valoarea de 50Hz, vom avea o abatere asupra amplitudinii
componentelor spectrale de 1%.
Aceast eroare poate fi redus pn la o limit acceptabil folosind o
tehnic clasic de fereastr, ceea ce conduce ns la pierderea informaiei despre
faz.
Aceast metod de estimare este recomandat atunci cnd coeficientul de
distorsiune ce afecteaz semnalele este mare (>5%), iar fenomenele de
nesimetrie sunt neglijabile sau foarte reduse.

6.6.2 ESTIMAREA ERORILOR HARDWARE


n cele ce urmeaz, se va estima eroarea introdus de ctre partea
hardware a sistemului specializat de achiziii de date, pentru a ne asigura c
exactitatea de msurare a acestui sistem este suficient de ridicat ca s permit
determinarea unor coeficieni de distorsiune cu valori de cel puin un ordin de
mrime mai mici dect 1%.
Pentru sistematizarea problemei, se consider c modulele componente
care afecteaz exactitatea de msurare a sistemului de achiziii de date sunt:
circuitele de adaptare a nivelelor analogice de intrare;
circuitele de tip filtru antialiasing;
circuitele de eantionare-memorare opionale;
circuitele de conversie analog-digital.
Circuitele de adaptare a nivelelor analogice de intrare sunt constituite de
elemente pasive (reele de divizare rezistive). Aceste circuite nglobeaz, din
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

231

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

punct de vedere al erorilor, i amplificatoarele cu ctig reglabil programabile.


Asigurarea unor tolerane ct mai ridicate (0,001%) i a unor coeficieni de
variaie cu temperatura de valori ct mai reduse (maxim 10ppm/oC) pentru
componentele rezistive, conduce la o eroare maxim:
CANA = 0,0025%
(6.11)
o
pentru o variaie a intervalului de temperaturi de funcionare de 50 C.
Pentru circuitele de tip filtru antialiasing, din documentaia circuitelor
MAX 271, se poate preciza c eroarea de amplificare maxim (pentru codul de
programare cu valoarea 127) este:
FTJ = 0,015%
(6.12)
Pentru circuitele de eantionare-memorare interne, implementate n
cadrul circuitelor MAX 271, pot fi determinate urmtoarele erori:
eroarea de ctig, datorat amplificrii finite n bucl deschis a
amplificatorului operaional coninut n structura circuitului:
AO(1) = 0,0075%
(6.13)
eroarea de descrcare a condensatorului de memorare pe durata
efecturii conversiei analog-digitale:
T
10s
DESC (1) = VCH C 100[%] = 30V
100[%] = 0,006%
(6.14)
VFS
5V
n care VCH reprezint valoarea scderii tensiunii la bornele
V
condensatorului de memorare, exprimat n
, TC reprezint durata
s
conversiei analog-digitale, iar VFS reprezint tensiunea de intrare de
capt de scal;
eroarea prin offset-ul de sarcin asupra tensiunii la care este ncrcat
condensatorul de memorare, CH:
QOH (1) = 0,02%
(6.15)
eroarea de ncrcare a condensatorului de memorare:
CH (1) = 0,02%

(6.16)

Eroarea total maxim a circuitului de eantionare-memorare va fi:


E / M (1) = AO(1) + DESC (1) + QOS(1) + CH (1) =
(6.17)
= (0,0075 + 0,006 + 0,02 + 0,02 )% = 0,0535%
Pentru circuitele de eantionare-memorare opionale externe, de tip LF
198, din datele de catalog ale productorului, pot fi extrase urmtoarele
informaii:
eroarea de ctig, datorat amplificrii finite n bucl deschis a
amplificatoarelor operaionale coninute n structura circuitului:

232

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

AO(2 ) = 0,005%

(6.18)

eroarea de descrcare a condensatorului de memorare pe durata


efecturii conversiei analog-digitale:
I T
100pA 10s
DESC (2 ) = P C 100[%] =
100[%] = 10 5 %
(6.19)
C H VFS
1nF 10V
n care IP reprezint valoarea curentului de pierderi prin condensatorul
de memorare, CH reprezint valoarea capacitii de memorare, TC
reprezint durata conversiei analog-digitale iar VFS reprezint tensiunea
de intrare de capt de scal;
eroarea prin offset-ul de sarcin asupra tensiunii la care este ncrcat
condensatorul de memorare, CH:
C DG
VCDA
VH
CH
QOH (2 ) =
100[% ] =
100[% ] = 0,01%
(6.20)
VFS
VFS
n care CDG reprezint valoarea capacitii dren-poart de intrare a
circuitului buffer din aval de condensatorul de memorare, CH
reprezint valoarea capacitii de memorare, VCDA reprezint excursia
maxim a tensiunii logice de comand a circuitului de eantionarememorare iar VFS reprezint tensiunea de intrare de capt de scal;
eroarea de ncrcare a condensatorului de memorare:
CH (2 ) = 0,01%
(6.21)
Eroarea total maxim a circuitului de eantionare-memorare va fi:
E / M ( 2 ) = AO (2 ) + DESC (2 ) + QOS (2 ) + CH (2 ) =
(6.22)
= (0,005 + 10 5 + 0,01 + 0,01) % = 0,025 %
n ceea ce privete circuitele de conversie analog-digital, n tabelul 6.2
sunt prezentate performanele sintetice ale circuitului MAX 181.
Tabelul 6.2 Performanele sintetice ale convertorului analog-digital MAX 181.
Parametrul
Considerat
Rezoluie
Tensiune de intrare
Curent de intrare
Curent de referin
Eroare de offset
Eroare de amplificare

Eroare de conversie

Valoare
Tipic
12
-

1
2

1
0,012% LSB
2

Maxim
12
-2,5 .. +2,5
1
-2
4
10

Unitate
de msur
Bit
V
A
MA
LSB
LSB

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

233

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

n cadrul aplicaiei, tensiunea de intrare variaz ntre -2,5V..+2,5V,


rezultnd excursia la capt de scal a tensiunii VFS = 5V , iar 1LSB = 1,22mV . n
aceste condiii, circuitul de conversie analog-digital prezint o eroare
maxim de conversie (care nglobeaz eroarea de amplificare, de neliniaritate i
de cuantificare), avnd valoarea:
1LSB
1,22mV
CAD = 0,012 +
100[%] = 0,012 +
100[%] = 0,0244% (6.23)
2 VFS
10V
Eroarea total maxim anticipat pentru partea hardware a sistemului
de achiziii de date, pentru o variaie a intervalului de temperaturi de funcionare
de 50oC, presupunnd c erorile de offset i de amplificare ale lanului analogic
au fost compensate, va fi:
SAD (1 ) = CANA + FTJ + E / M (1 ) + CAD =

= 0,0025 % + 0,015 % + 0,0535 % + 0,0244 % 0,095 %


SAD (2 ) = CANA + FTJ + E / M (2 ) + CAD =

(6.24)

= 0,0025 % + 0,015 % + 0,025 % + 0,0244 % 0,067 %


Un alt mod de exprimare a erorii maxime totale este determinarea sa n
LSB. Se vede imediat c valoarea obinut n ecuaia 4.40 corespunde unei erori
absolute:
3LSB; pentru varianta (1)
U =
(6.25)
(
)
4
LSB;
pentru
var
ianta
2

Avnd n vedere faptul c sursele de erori sunt numeroase i


independente, un mod mai realist de a exprima eroarea relativ este ca medie
ptratic a erorilor individuale:
2
2
2
2
SAD = CANA
+ ( 2AO + QOS
+ CH
+ 2DESC ) + CAD

(6.26)

nlocuind cu valorile calculate pn acum, eroarea relativ rezult:


SAD (1) = 0,0414591%
(6.27)
SAD (2 ) = 0,0324285%

234

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

7. SOFTWARE DE ANALIZ A SEMNALELOR


ELECTRICE
7.1 CONSIDERAII GENERALE ASUPRA
INSTRUMENTELOR SOFTWARE DE ANALIZ A
SEMNALELOR ELECTRICE
Instrumentele de msurare inteligente reprezint entiti independente,
separate de un sistem de calcul, capabile s comunice un set redus de parametri
i s execute o serie de comenzi. Toate echipamentele de msurare dezvoltate n
ultimii ani conin interfee prin care transmit datele i comenzi unor relee cu care
sunt echipate.
Indiferent de tipul de mrime msurat: energie, putere, curent, tensiune,
factor de putere, etc., instrumentele inteligente sunt echipate cu relee care
comand direct echipamente externe, n funcie de valorile parametrului
msurat. Dup gradul de complexitate, pot fi nsoite de un pachet software
aferent, executabil pe un sistem de calcul compatibil IBM-PC, pentru a putea
executa citirile i comenzile la distan. Foarte multe asemenea sisteme dispun
de memorare extern, care stocheaz variaia n timp a parametrului msurat sau
valorile instantanee, la anumite intervale de timp.
Implementarea unui instrument software de analiz a semnalelor electrice,
provenite din sistemul electroenergetic, presupune utilizarea unui calculator,
utilizat ca nucleu hardware de comand, i a unui sistem de achiziii de date,
putnd fi realizat n mai multe moduri, funcie de sistemul de operare utilizat n
cadrul sistemului de calcul.
Suportul hardware este format dintr-un lan de msurare compus din:
senzor, dispozitivul de condiionare a semnalului, placa de achiziii de date i
sistemul de calcul aferent. Ceea ce difereniaz aceste instrumente este prezena
software-ului, un mediu de programare mobil, capabil s proiecteze pe
monitorul unui calculator orice parametru msurat, orice grafic preluat, orice
reglaj, buton, etc., transformnd practic calculatorul gazd al aplicaiei, ntr-un
instrument de msurare.
Utilizatorul vede aceast interfa software ca o imagine grafic, cu
indicatoare, butoane, ideograme (imagini reprezentnd aciuni sau prelucrri
specifice), iar cu un ajutorul mouse-ului obine funcia simbolizat de ele:
vizualizarea datelor, analize matematice complexe, generare de semnale, citirea
datelor de intrare. Software-ul de instrumentaie dispune de biblioteci bogate,
care scutesc utilizatorul de rutin, dar i de dificulti de programare, cum ar fi
comunicarea cu hardware-ul, deloc simpl. Ele sunt axate pe urmtoarele
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

235

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

domenii:
achiziia datelor i transferul acestora (prin driver-e software programe specializate pentru comanda unor dispozitive sau automate
programabile, regulatoare numerice, dispozitive pentru nregistrare);
controlul dispozitivelor, prin interfari de tip GPIB, VXI, RS-232,
etc;
analiza i reprezentarea datelor.

7.2 PLATFORMA HP VEE PENTRU WINDOWS.


PREZENTAREA GENERAL A ANALIZORULUI ESA
Software-ul de analiz a semnalelor electrice prelevate dintr-un proces
este realizat sub forma unui instrument virtual, implementat cu ajutorul
programului HP VEE - for Windows - versiunea 3.12 (July 07 1995) @
Copyright Hewlett-Packard Corporation 1991-1995.
Acest program lucreaz cu obiecte predefinite sau create de ctre
utilizator, care sunt plasate n spaiul de lucru i care sunt interconectate pentru a
realiza o diagram-bloc executabil. Fiecare obiect permite vizualizarea sa n
dou moduri:
modul de vizualizare restrns (ca icon n Windows);
modul de vizualizare detaliat (detail view).
Observaie: Orice obiect al programului HP VEE, atunci
cnd este apelat, este reprezentat n modul de vizualizare
detaliat, cmpurile de parametri (atribute) ale obiectului
fiind direct accesibile.

De asemenea, fiecare obiect este caracterizat de un meniu propriu, care


permite modificarea dimensiunii, poziiei, titlului, precum i altor atribute ale
acestuia.
A fost creat un instrument virtual de analiz semnalelor electrice,
intitulat ELECTRICAL SIGNAL ANALYSER, prescurtat ESA. Acest
intrument este, de fapt, un obiect creat de utilizator, ce permite:
demararea procesului de analiz, prin acionarea butonul Run,
prezent pe panoul global al oricrei aplicaii HP VEE. La demararea
procesului de analiz, este deschis o fereastr din care poate fi selectat
fiierul de date folosit ca punct de plecare n cadrul reprezentrii grafice
a mrimilor electrice. Fiierele de date sunt de tip standard de date, cu
extensia .dat, coninnd pe cte doi octei eantioanele de pe un numr

236

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

de maxim ase canale;


selectarea mrimilor de intrare prin intermediul unor liste circulare ce
dispun de urmtoarele opiuni:
vizualizarea formei unui semnal de tensiune din cele maxim trei
posibile, respectiv de curent;
selectarea valorii iniiale a eantioanelor ce urmeaz a fi afiate, prin
intermediul unui comutator rotativ, denumit knob, n gama 020000 i
cu o rezoluie de 256 puncte. Acest knob poart denumirea sugestiv de
From sample;
selectarea valorii finale a eantioanelor ce urmeaz a fi afiate, de
asemenea prin intermediul unui knob, gradat ntre 0 i 20000, cu o
rezoluie de 256 puncte. Acest knob poart de numirea sugestiv de
to sample;
vizualizarea simultan a doi parametri: form de semnal de tensiune,
form de semnal de curent, corespunznd mrimilor de intrare, cu
ajutorul a dou instrumente de tip osciloscop, care indic:
prin intermediul titlului, imaginile grafice ce se vizualizeaz la un
moment dat;
indicaii ale mrimilor corespunztoare fiecrei axe, cum ar fi:
numele mrimii (de exemplu: timp pentru axa Ox, respectiv
amplitudine, pentru axa Oy), unitatea de msur a acesteia,
intervalul de vizualizare i gradarea axelor (uniti pe diviziune);
prin intermediul unui marker, se pot obine informaii, legate de
valoarea instantanee a semnalelor, n funcie de timp;
instrumentul de vizualizare prezint faciliti de auto-scalare, fie
independent pe fiecare ax prin intermediul unor butoane dedicate
fiecrui instrument, fie simultan pe ambele axe prin intermediul unui
buton cu care este echipat instrumentul de vizualizare de tip
osciloscop;
afiarea, sub form numeric, a valorilor minime i maxime a
semnalelor, att pentru tensiune, ct i pentru curent, prin intermediul a
patru indicatoare alfanumerice.
Trebuie menionat c toate butoanele i knob-urile, prin intermediul
crora este controlat procesul de achiziie i analiz, prezint faciliti de
autoexecute, ceeea ce nseamn c acionarea oricruia dintre ele determin
declanarea unui nou proces de analiz.
n fig. 7.1, 7.2 i 7.3 este reprezentat panoul frontal al analizorului n trei
situaii diferite: vizualizarea formei de semnal de tensiune i de curent pentru
semnalele 1 i 2 (fig. 7.1), vizualizarea formei de und de semnal de tensiune i
de curent pentru semnalele 3 i 2 (fig. 7.2), respectiv vizualizarea formei de
und de semnal de tensiune i de curent pentru semnalele 3 i 4 (fig. 7.3).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

237

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

Fig. 7.1 Vizualizarea formei de semnal de tensiune i de curent pentru


semnalele 1 i 2.

Fig. 7.2 Vizualizarea formei de semnal de tensiune i de curent pentru


semnalele 3 i 2.

238

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 7.3 Vizualizarea formei de semnal de tensiune i de curent pentru


semnalele 3 i 4.

7.3 IMPLEMENTAREA ANALIZORULUI ESA


Fig. 7.4 conine reprezentarea detaliat a blocurilor care compun
analizorul intitulat ESA i bazat pe platforma Windows HP VEE 3.12.
Aceste blocuri funcionale sunt:
modulul de prelucrare primar a fiierului de date de intrare, primind
ca intrare un fiier cu extensia .dat. Acest bloc furnizeaz ca ieiri un
numr de maxim ase vectori coninnd eantioanele sub form
numeric a mrimilor de intrare;
circuitele de control ale dispozitivelor de afiare;
dispozitivele de afiare, de tip oscilograf;
blocul de afiare sub form digital a valorilor minime/maxime ale
semnalelor de intrare.
Toate aceste blocuri funcionale sunt nglobate ntr-un obiect utilizator
nou creat, avnd dou posibiliti de reprezentare:
reprezentarea detaliat - detail - (fig. 7.4), n care sunt puse n eviden
blocurile i interconexiunile funcionale;
reprezentarea de tip panou - panel -, care ilustreaz panoul propriu-zis
al analizorului, adic dispozitivul de afiare, reprezentat n fig. 7.5.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

239

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

Fig. 7.4 Reprezentarea detaliat a analizorului ESA.

Fig. 7.5 Reprezentarea panoului propriu-zis al analizorului ESA.

240

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

7.3.1 BLOCUL DE PRELUCRARE A FIIERULUI DE DATE


DE INTRARE
Reprezentarea detaliat a blocului de prelucrare a fiierului de date de
intrare este ilustrat n fig. 7.6.
n urma declanrii unui proces de analizare a semnalelor achiziionate
din proces, prin acionarea butonului Run de pe panoul analizorului ESA, este
deschis o fereastr care permite selectarea fiierului de date de intrare. n
aceast fereastr sunt listate doar fiierele de date (cele care au extensia dat).
Prin selectarea cu ajutorul mouse-ului a fiierului de date dorit, se demareaz
procesul de analiz. Fiierul de date conine alternativ eantioanele pe doi octei
a mai multor semnale de intrare. n vederea reprezentrii grafice a unei mrimi,
acest fiier trebuie prelucrat.
Eantioanele, pe cte doi octei, reprezint rezultatul conversiei analogdigitale pe 12 bii a unor semnale analogice de tensiune i/sau curent, convertite
n gama de tensiune (010) V. n prima faz, trebuie reconstituite valorile
analogice ale eantioanelor. Aceasta este realizat prin mprirea celor doi
octei, ce reprezint un eantion, la valoarea 4096=212, i nmulirea cu 10,
reprezentnd captul de scal. n programul implementat se realizeaz
4096 212
mprirea la 409,6 =
=
. Pentru alte capete de scal, poate fi gsit n
10
10
mod similar un coeficient de scalare corespunztor.
n cea de-a doua faz, trebuie identificai indicii cuvintelor de date din
cadrul seriei de valori, obinute n cadrul pasului anterior, corespunztori fiecrei
mrimi din cadrul fiierului de date. Dac n cadrul fiierului de date sunt
memorate eantioanele a patru mrimi analogice de intrare, atunci eantioanele
cu indici de tip 4k corespund primei mrimi, eantioanele cu indici de tip 4k+1
corespund celei de-a doua mrimi, eantioanele cu indici de tip 4k+2 corespund
celei de-a treia mrimi, iar eantioanele cu indici de tip 4k+3 corespund ultimei
(celei de-a patra) mrimi. n mod similar poate fi gsit o strategie pentru
identificarea eantioanelor corespunztoare n cazul n care fiierul de date
conine mai mult de patru mrimi analogice. Extragerea cuvintelor de date din
cadrul fiierului prelucrat, corespunztoare fiecrei mrimi este realizat
utiliznd un obiect de tip For Range, care are ca parametri valoarea iniial
precizat prin intermediul knob-ului From sample adunat cu 0, 1, 2,
respectiv 3, valoarea final precizat prin intermediul knob-ului to sample
i incrementul (step) 4, care calculeaz indicii eantioanelor mrimii 0, 1, 2, 3
din cadrul fiierului de date. Se determin apoi elementele sau valorile
corespunztoare indicilor determinai anterior, folosind o funcie utilizator de tip
A[i].
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

241

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

Fig. 7.6 Reprezentarea detaliat a blocului de prelucrare a fiierului de date de


intrare.

Fig. 7.7 Reprezentarea detaliat a obiectelor utilizate n cadrul modulului de


prelucrare a fiierului de date de intrare.

n final se obine cte un vector, cu un numr de elemente egal cu


diferena to sample - From sample i divizat cu patru, coninnd
eantioanele fiecrei mrimi, folosind un obiect predefinit, denumit Sliding
242

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Collector.
n fig. 7.7 este ilustrat reprezentarea detaliat a principalelor obiecte
utilizate n implementarea blocului de prelucrare primar a fiierului de date de
intrare.

7.3.2 BLOCURILE PENTRU CONTROLUL DISPOZITIVELOR


DE AFIARE
Blocurile pentru controlul dispozitivelor de afiare de tip osciloscop sunt
constituite de dou obiecte de tip utilizator nou create. Sunt n numr de dou,
fiind foarte asemntoare din punct de vedere al implementrii. n continuare va
fi prezentat n detaliu blocul de control al dispozitivului de afiare pentru
tensiuni (fig. 7.8), urmnd a se preciza ulterior diferenele comparative pentru
blocul de control al dispozitivului de afiare pentru cureni.
Acest modul utilizator este constituit din trei multiplexoare de tip 2:1.
Toate cele trei multiplexoare au intrarrile de selecie comandate prin
intermediul unei unice liste circulare dispunnd de dou opiuni: Signal 1 i,
respectiv Signal 3 (n cazul blocului de control al dospozitivului de afiare
pentru cureni exist o alt list circular, cu opiunile: : Signal 2 i, respectiv
Signal 4).
Primul multiplexor primete ca intrri dou constante de tip text,
denumite Title 1a pe intrarea A, respectiv Title 1b pe intrarea B. Ieirea
acestui multiplexor comand intrarea de comand, denumit Titles a
dispozitivului de afiare de tip osciloscop (n cadrul blocului de control al
dispozitivului de afiare pentru cureni, primul multiplexor primete ca intrri
dou constante de tip text, denumite Title 2a pe intrarea A, respectiv Title
2b pe intrarea B). n fig. 7.9 este ilustrat reprezentarea detaliat a obiectului de
tip multiplexor 2:1 i constantele de tip text.
Cel de-al doilea multiplexor primete ca intrri dou constante de tip
nregistrare, denumite Trace 1a pe intrarea A, respectiv Trace 1b pe
intrarea B. Ieirea acestui multiplexor comand intrarea de comand, denumit
Traces a dispozitivului de afiare de tip osciloscop (n cadrul blocului de
control al dispozitivului de afiare pentru cureni, cel de-al doilea multiplexor
primete ca intrri dou constante de tip nregistrare, denumite Trace 2a pe
intrarea A, respectiv Trace 2b pe intrarea B).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

243

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

Fig. 7.8 Blocul de control al dispozitivului de afiare pentru tensiuni.

Fig. 7.9 Reprezentarea detaliat a obiectului multiplexor i a constantelor de tip


text.

n fig. 7.10 sunt reprezentate constantele de tip nregistrare care constituie


intrile celui de-al doilea multiplexor.

244

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 7.10 Reprezentarea detaliat a constantelor de tip nregistrare pentru


selecia liniei de reprezentare.

Aceste nregistrri de tip nregistrare comand tipul i culoarea liniei de


reprezentare asociat mrimii selectate, precum tipul punctului de reprezentare,
dispunnd de cinci cmpuri (numrul spotului, implicit 1 pentru c nu se face
reprezentarea simultan a dou semnale pe ecran; numele semnalului
reprezentat, semnal 1 sau semnal 3, pentru tensiune i semnal 2 sau semnal 4,
pentru curent; culoarea spotului ce poate fi aleas dintr-o list de tip popdown; tipul liniei de reprezentare, ce poate fi aleas dintr-o list de tip popdown; tipul punctului de reprezentare ce poate fi ales dintr-o list de tip popdown). Din analiza figurii 5.10, se constat c pentru fiecare mrime, semnal 1
respectiv semnal 3, sunt asociate culori ale liniilor de reprezentare diferite pentru
o identificare rapid i o difereniere facil.
Cel de-al treilea multiplexor primete pe intrrile de date dou constante
de tip nregistrare dubl cu cte cinci cmpuri, denumite Scale 1a pe intrarea
A, respectiv Scale 1b pe intrarea B (fig. 7.11). Ieirea acestui multiplexor
comand intrarea de comand, denumit Scales a dispozitivului de afiare de
tip osciloscop (n cadrul blocului de control al dispozitivului de afiare pentru
cureni, cel de-al doilea multiplexor primete ca intrri dou constante de tip
nregistrare duble, denumite Scale 2a pe intrarea A, respectiv Scale 2b pe
intrarea B).
Cele cinci cmpuri ale fiecrei nregistrri sunt:
numele axei de coordonate (X sau Y);
numele asociat fiecrei axe de coordonate (Time [ms] sau Voltage [V]);
valoarea minim de la care ncepe reprezentarea pe fiecare ax (implicit
valoare iniial nul pentru timp; implicit valoare iniial nul pentru
semnale monopolare de tensiune sau curent);
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

245

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

valoarea maxim a scalei pe care se face reprezentarea (valoare final


1000 ms pentru timp; respectiv valoare maxim de 10 V sau 5A pentru
tensiune sau curent);
tipul de scal de reprezentare utilizat (liniar sau logaritmic).

Fig. 7.11 Reprezentarea detaliat a constantelor de tip nregistrare dubl pentru


selecia scalei de reprezentare.

Cele dou nregistrri duble corespunztoare fiecrui set de cte dou


mrimi de acelai tip sunt de fapt identice, dar sunt folosite ca atare din dou
motive: n primul rnd este necesar ca toate intrrile obiectelor folosite s fie
conectate pentru ca programul implementat s funcioneze corect, iar n al doilea
rnd, pentru ca cele trei module bazate pe multiplexare s aib structuri similare.

7.3.3 DISPOZITIVELE DE AFIARE DE TIP OSCILOGRAF


Dispozitivele de afiare de tip osciloscop, reprezentate n fig. 7.12, provin
din obiectele, predefinite n cadrul platformei HP VEE, cu denumirea XY
Trace, la care au fost adugate cinci intrri suplimentare:
intrarea Scale, destinat predefinirii unor capete de scal pentru cele
dou axe de coordonate, necesit pentru comand o constant de tip
nregistrare dubl cu cinci cmpuri, detaliat n capitolul anterior (fig.
7.11);
intrarea Trace, destinat predefinirii numelui, culorii, tipului
punctului i liniei de reprezentare, necesit pentru comand o constant
de tip nregistrare cu cinci cmpuri (fig. 7.10);
intrarea Title, destinat predefinirii numelui mrimii de intrare care
246

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

este reprezentat, necesit pentru comand o constant de tip text;


intrarea Autoscale X, destinat autoscalrii reprezentrii grafice
axa X, necesit pentru comand un buton, denumit Autoscale X,
faciliti de autoexecute;
intrarea Autoscale Y, destinat autoscalrii reprezentrii grafice
axa Y, necesit pentru comand un buton, denumit Autoscale Y,
faciliti de autoexecute.

pe
cu
pe
cu

Fig. 7.12 Reprezentarea instrumentului de reprezentare, de tip osciloscop.

7.3.4 BLOCUL DE AFIARE SUB FORM DIGITAL A


VALORILOR MINIME/MAXIME ALE SEMNALELOR DE
INTRARE
n cadrul instrumentului virtual creat, n partea superioar a panoului
analizorului, sunt afiate valorile minime, respectiv maxime, ale celor dou
mrimi de intrare reprezentate la un moment dat pe ecran.
Blocul de afiare sub form digital a valorilor minime/maxime ale
semnalelor de intrare, reprezentat n fig. 7.13, const din:
obiectului utilizator ce determin valorile minime/maxime ale
mrimilor de intrare, reprezentat n fig. 7.13, compus din:
modulul de calcul statistic ce determin valoarea minim din vectorul
de eantioane al semnalului de intrare;
modulul de calcul statistic ce determin valoarea maxim din vectorul
de eantioane al semnalului de intrare;
modulul utilizator U, respectiv I, ce realizeaz sumarea dintre
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

247

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

valoarea numeric minim/maxim determinat din vectorul de


eantioane al semnalului de intrare i o constant de tip text, care
reprezint unitatea de msur a mrimii reprezentate (V sau A). Acest
lucru este realizat pentru ca citirea indicaiilor s fie facil i intuitiv.
n urma procesului de sumare se obine o constant de tip text, n care
reprezentarea numrului este efectuat pe 99 de zecimale. Pentru o
reprezentare intuitiv, este limitat numrul de caractere de reprezentat
la valoarea 6, care include i punctul zecimal.
Valorile astfel obinute sunt afiate pe panoul frontal utiliznd obiectele
predefinite, denumite AlphaNumeric Display.

Fig. 7.13 Reprezentarea detaliat a obiectului utilizator ce determin valorile


minime/maxime ale mrimilor de intrare.

7.4 INTERFAAREA INSTRUMENTULUI VIRTUAL DE


ANALIZ A SEMNALELOR ELECTRICE, ESA, CU
INTERFAA SPECIALIZAT DE ACHIZIII DE DATE
n implementarea propus, comunicaia ntre instrumentul virtual de
analiz a semnalelor electrice, ESA i interfaa specializat de achiziii de date
se realizeaz prin intermediul a dou elemente:
demararea procesului de achiziie a tensiunii de faz i a curentului de

248

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

linie se realizeaz software, prin lansarea n execuie a ferestrei de


comand Run PC Program (Dos) de sub platforma HP VEE for
Windows. n cmpurile predefinite ale acestei ferestre, se introduc
numele i calea (drive, director, subdirector, etc.) programului de
achiziie scris n limbaj de asamblare. La sfrsitul cestei operaii, se
acioneaz prin intermediul mouse-ului butonul OK. Pe durata
transferrii programului, prin intermediul interfeei seriale, ctre
sistemul de dezvoltare controlul este preluat de programul monitor.
Dup ce programul de achiziie a fost lansat n execuie, controlul este
din nou preluat de ctre instrumentul virtual ESA. La terminarea
ciclului de achiziie i conversie, sistemul de dezvoltare transmite ctre
calculatorul gazd, pe care este rezident instrumentul ESA,
eantioanele semnalelor achiziionate. Acestea vor fi salvate, la sfritul
transmisiei, sub forma unui fiier de date, compatibil HP VEE. Fiierul
de date este accesat de analizorul ESA de cte ori se comand procesul
de analiz a semnalelor electrice;
analiza se efectueaz folosind datele din fiierul de comunicaie. Exist
mai multe variante posibile de lucru cu acest fiier:
fiierul de date poate fi reactualizat la fiecare proces de achiziie i
conversie;
fiierul de date poate fi completat cu noi serii de rezultate obinute n
urma unui proces ciclic de achiziie i conversie, folosind opiunea
de append to file;
poate fi creat o serie de fiiere, avnd acelai nume de baz, dar
indicative numerice diferite - de exemplu filexxx; fiecare fiier de
date din cadrul seriei conine informaiile obinute n urma
procesului de achiziie i conversie cu indicativul generic xxx
(xxx=0999).
De asemenea, exist posibilitatea de a utiliza mai multe formate
pentru fiierul de date. Aceast structur, sau o form echivalent, n
care datele sunt reprezentate sub form hexa, sunt ns cele mai
recomandabile.
Structura fiierului conine un antet care indic: semnificaia datelor
(waveform - form de semnal), numrul de dimensiuni pentru
reprezentarea formei de semnal sub form matriceal
(numDims=1 - o singur dimensiune, deci reprezentare vectorial), lungimea structurii de date (size=2048) i sunt listate, n
ordine, elementele fiecrei coloane din matricea de reprezentare,
precedate de numrul coloanei (dim 1) i de extensia fiecrui
element. Elementele sunt separate ntre ele prin spaii (space).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

249

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

7.5 DETALII SUPLIMENTARE PRIVIND IMPLEMENTAREA


INSTRUMENTULUI VIRTUAL ESA
Fiierele de date pe care este fcut reprezentarea grafic a mrimilor de
intrare (temp.dat, temp1.dat, temp2.dat, temp3.dat) au fost achiziionate cu
ajutorul unui sistem de achiziii de date PLM-16, produs de firma National
Instruments, folosind programul de aplicaii NIDAQ al aceleiai firme.
Achiziia de date este cu multiplexare temporal pe patru canale i este
caracterizat de o frecven de eantionare de 4000 Hz pe toate cele patru
canale. Acest lucru ne conduce la concluzia c ntr-o secund s-au efectuat 1000
de eantioane pentru fiecare mrime de intrare, adic informaia pentru axa X
este exact timpul, exprimat n milisecunde. Dac frecvena de eantionare este
diferit, trebuie efectuat o scalare a valorilor de pe axa X, pentru exprimarea
timpului n milisecunde. Mrimile achiziionate reprezint forele tangeniale,
respectiv normale, msurate cu ajutorul unor senzori inductivi de proximitate,
ntr-un sistem pentru determinarea coeficienilor de frecare. Din pcate, aceste
mrimi nu sunt periodice i nu se poate efectua o analiz armonic a acestor
semnale (analiza Fourier, ca mijloc de analiz a semnalelor, se aplic pentru
semnale periodice).
Codul surs al aplicaiei este generat automat prin amplasarea n spaiul
de lucru a obiectelor predefinite i a celor create de utilizator i interconectarea
acestora. Singurele modificari manuale n acest cod sunt legate de modificarea
unor proprieti ale modulelor utilizate. Crearea panoului frontal al analizorului,
care conine doar instrumentele de afiare i butoanele de control, a fost
efectuat prin utilizarea facilitii Add to Panel pentru aceste obiecte,
reprezentate n spaiul de lucru n modul detail.
Deoarece este vorba de un analizor care nu este destinat unei aplicaii
concrete, specifice, au fost create o serie suplimentar de obiecte utilizator, ce
vor fi descrise n capitolul urmtor, care pot fi apelate n spaiul de lucru i
interconectate cu obiectele preexistente, ceea ce conduce la modificarea
analizorului pentru focalizarea pe o situaie concret.

7.6 RESURSE SUPLIMENTARE ALE ANALIZORULUI DE


SEMNALE ELECTRICE, ESA
Analizorul ESA pentru semnale electrice a fost completat cu o serie de
obiecte utilizator nou create, pentru extinderea facilitilor acestuia.
n primul rnd, a fost creat un nou obiect utilizator, denumit Auto_XY,
care reprezint un instrument de afiare de tip osciloscop care efectueaz
automat autoscalarea pe ambele axe de coordonate. Pornind de la acest obiect, a
250

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

fost creat un obiect utilizator, denumit 2Auto_XY, capabil s afieze grafic,


prin multiplexare, dou mrimi de intrare de acelai tip.
n fig. 7.14 este ilustrat schem bloc a analizorului ESA ce utilizeaz
acest instrument de afiare. Schema bloc funcional a analizorului pentru
semnale electrice este, n acest caz, mult mai simpl, avnd n vedere nglobarea
tuturor obiectelor necesare n vederea reprezentrii grafice n modulul obiect
nou creat.
n fig. 7.15 este reprezentat panoul frontal al analizorului ESA ce
utilizeaz acest nou instrument de afiare. Se constat c panoul frontal, n
situaia folosirii unor instrumente de afiare cu faciliti de autoscalare
ncorporate, este asemntor cu cel prezentat anterior.

Fig. 7.14 Reprezentarea detaliat a analizorului ESA.

Modulul obiect denumit 2Auto_XY, a crui reprezentare de tip panel


este prezentat n fig. 7.16, permite vizualizarea prin multiplexare a dou mrimi
de intrare de acelai tip (tensiuni sau cureni), selecia efectundu-se prin
intermediul unei liste circulare cu dou opiuni, de tipul celor prezentate
anterior.
n fig. 7.17 este figurat reprezentat reprezentarea detaliat a modulului
obiect denumit 2Auto_XY, acesta compunndu-se din dou blocuri:
obiectul utilizator denumit Display Control, care nglobeaz toate
elementele legate de autoscalare, titlu, tipul, culoarea punctului i liniei
de reprezentare;
un modul obiect predefinit, descris anterior, de tip XY Display,
la care au fost adugate intrrile de comand Scales, Traces
i Title.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

251

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

Fig. 7.15 Reprezentarea panoului analizorului ESA.

Fig. 7.16 Reprezentarea noului instrument de afiare cu autoscalare.

252

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 7.17 Reprezentarea detaliat a noului instrument de afiare cu autoscalare.

Fig. 7.18 Reprezentarea detaliat a modulului Display Control.

n fig. 7.18 este figurat reprezentarea detaliat a obiectului utilizator nou


creat, denumit Display Control, care aduce elementele de noutate (autoscalare
pe ambele axe de coordonate prin mijloace proprii, fr a folosi butoane de
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

253

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

autoscalare sau facilitile mijlocului de reprezentare grafic.

Fig. 7.19 Reprezentarea blocurilor componente ale modulului Display


Control.

n fig. 7.19 sunt prezentate blocurile componente ale obiectului Display


Control, i anume:
circuitul de calcul al valorii minime pentru axele de coordonate,
denumit Min X,Y;
circuitul de calcul al valorii maxime pentru axele de coordonate,
denumit Max X,Y;
constantele de tip text pentru scal i nume (Scales, Name);
constanta de tip nregistrare cu cinci cmpuri pentru reprezentarea
grafic pe ecran.

7.6..1
1 ANALIZORUL FOURIER
Reprezentarea detaliat a analizorului Fourier dublu este ilustrat n fig.
7.20.
Semnalelor de intrare, de tensiune i de curent, li se aplic ferestre de
eantionare de tip dreptunghiular, Hanning, Blackman sau Bartlet. Aceste
ferestre de eantionare, sub forma lor temporal, sunt descrise de ecuaiile (7.1),
(7.2), (7.3) i (7.4) i sunt caracterizate printr-o durat de 8 perioade ale
semnalelor de intrare de frecven fundamental:

254

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 7.20 Structura analizorului Fourier dublu (reprezentare detaliat).

fereastr de eantionare Dirichlet, descris de urmtoarea ecuaie:


1, n = 0,1,...,N 1
w (n ) =
(7.1)

0
,
n
N

fereastr de eantionare Hanning, descris de urmtoarea ecuaie:

2n
w(n) = 0,51 + cos
(7.2)
;n = 0,1,..., N 1
N

fereastr de eantionare Blackman, descris de urmtoarea ecuaie;


2
2
w(n) = 0,42 - 0,5 cos n + 0,08 cos 2n ;n = 0,1,..., N - 1
(7.3)

N
N
fereastr de eantionare Bartlett, descris de urmtoarea ecuaie:
N

k n
<
0
;
daca
n
(-1)
2
2 ;n = 0,1,...N - 1;k =
(7.4)
w(n) = 2

N
N -1
1;daca n >

2
Toate aceste ferestre de eantionare au fost implementate ca funcii
utilizator (user function), conform ecuaiilor de definiie prezentate anterior.
Obiectele ferestre de eantionare au fost implememtate ca funcii
utilizator (user function), la fel ca i obiectul algoritm FFT (fig. 7.21).
Rezultatele nmulirii, n domeniul timp, ale semnalelor de intrare cu
ferestrele de eantionare sunt multiplexate utiliznd un multiplexor de tip 4:1.
Acest multiplexor este un obiect utilizator nou creat, folosind multiplexorul de
tip 2:1 implementat n cadrul platformei HP VEE. Intrrile de selecie ale
multiplexorului sunt comandate de ctre un obiect denumit List to Bin, nou
creat. Acest obiect convertete coninutul unei liste de intrare, de tip text, ntr-un
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

255

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

cuvnt binar de doi bii, reprezentnd poziia n list a ferestrei de eantionare


selectat.

Fig. 7.21 Funciile utilizator utilizate n implementarea analizorului Fourier


dublu.

Acest proces de conversie text-cuvnt binar este realizat, conform figurii


7.22, prin compararea titlului reprezentnd numele ferestrei de eantionare din
list cu patru nregistrri de tip text, predefinite i realizarea unei funcii cablate
(JCT) ntre ieirile celor patru comparatoare. Rezultatul funciei cablate JCT
indic, n format zecimal, poziia textului selectat n lista de intrare. n
continuare, se realizeaz convertirea numrului zecimal obinut n form binar,
prin utilizarea funciei bit(x,n) ce furnizeaz ca rezultat bitul de pe poziia n a
variabilei de intrare x.

Fig. 7.22 Reprezentarea detaliat a obiectului utilizator List to Bin.


256

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Prin selectarea unui anumit tip de fereastr de eantionare, semnalelor de


intrare multiplicate cu fereastra aleas li se aplic un algoritm de transformare
Fourier redus, cu decimare n frecven.
Conform figurii 7.21, obiectul FFT este o funcie utilizator. Rezultatul
transformrii FFT este un vector de numere complexe, fiecare element al
vectorului coninnd informaii referitoare la amplitudinea i faza iniial a
armonicii corespunztoare. Utiliznd funcia UnBuild PComplex, se
determin mrimile anterior menionate. Trebuie menionat c trebuie efectuat
o corecie a fazei armonicilor pentru a fi reprezentat pe intervalul [0, +],
deoarece n urma calculelor, faza se ncadreaz n intervalul [-, +]. De
asemenea, calculul amplitudinilor fiecrei armonici necesit mprirea
modulului numrului complex corespunztor din vectorul transformrii FFT la
lungimea acestuia.
n concluzie, soluia de implementare utiliznd fiiere de comunicaii
pentru date, respectiv pentru comenzi, crete productivitatea utilizrii
instrumentului virtual de analiz a regimului deformant n reele electrice
poluate armonic prin creterea independenei de platforma hardware de achiziii
de date. Compromisul care trebuie acceptat const n scderea, ntr-o oarecare
msur, a timpului de rspuns a instrumentului virtual, datorit execuiei de tip
secvenial a aplicaiilor.
Instrumentele virtuale reprezint o modalitate facil, intuitiv i
productiv de integrare a unor echipamente de msurare microprogramate ntr-o
aplicaie industrial.

7.7 TESTAREA INSTRUMENTULUI VIRTUAL ESA I


REZULTATE EXPERIMENTALE
Testarea instrumentului virtual de msurare i analiz a semnalelor
electrice, ESA, a fost fcut, n prim faz, prin aplicarea la intrrile analizorului
a unor fiiere de date reprezentnd eantioanele unor semnale de intrare
(tensiune i curent), de form dreptunghiular, simulate software cu ajutorul
obiectului predefinit function generator.
n a doua faz, testarea a fost efectuat prin aplicarea la intrrile
analizorului a unor fiiere de date reprezentnd eantioanele unor semnale de
intrare (tensiune i curent), de form dreptunghiular, achiziionate de la un
generator de semnal dreptunghiular.
Se constat, analiznd rezultatele obinute, c prin aplicarea unor semnale
de tensiune i de curent de form dreptunghiular (simulate software sau reale),
cu frecven de 50 Hz i cu amplitudini de 100 V, respectiv 5 A, prin analiz
armonic se obin doar armonici impare, a cror valoare este invers
proporional cu ordinul acesteia n raport cu fundamentala. Erorile rezultate
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

257

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

sunt inferioare valorii de 0,377% i pot fi justificate prin urmtoarele


considerente:
semnalele de intrare, reale sau simulate, nu sunt perfect
dreptunghiulare (duratele fronturilor sunt foarte scurte, dar nenule),
acest aspect contribuind n mod decisiv la eroarea analizei. Acest lucru
poate fi justificat, analiznd rezultatele experimentale, prin faptul c
erorile relative nu depind de valoarea amplitudinii semnalului de
intrare (semnalul de tensiune are amplitudine de 100 V, iar cel de
curent are amplitudine de 5 A). n cadrul rezultatelor experimentale, a
fost limitat ordinul maxim al armonicilor la 50, care reprezint ordinul
maxim al armonicilor de tensiune, respectiv de curent, care dau efecte
nedorite n instalaiile electroenergetice, dei instrumentul ESA poate
pune n eviden armonici cu ranguri mai mari (n analizele efectuate
n vederea testrii acestui instrument virtual s-au pus n eviden
armonici cu ranguri de pn la 100);
precizia de calcul, cu pondere net inferioar, instrumentul virtual
lucrnd n precizie dubl (maxim 10-6%);
erorile de trunchiere, rezultatele fiind limitate din punct de vedere al
reprezentrii la maxim 4 zecimale, avnd o pondere mic (maximum
10-2%).
Se constat c erorile de determinare ale valorilor efective ale semnalelor
de tensiune i de curent, nu depesc 0,01%, ceea ce confer o exactitate ridicat
de analiz pentru acest instrument virtual.

7.8 LISTINGUL PROGRAMULUI DE ACHIZIIE DE DATE


;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

Programul citeste de la tastatura locala una dintre


tastele apasate. Aceasta este de tip matriceal, cu 3
linii si 4 coloane. Corespunzator codului tastei, se
selecteaza unul dintre cele 6 canale analogice de
intrare (daca codul tastei este 0..5), sau o pereche
de canale de intrare tensiune-curent (daca codul tastei
este 6..8), sau toate canalele de intrare (daca codul
tastei apasate este 9) - achizitie sincrona -, se
converteste tensiunea aplicata intrarii selectate si se
memoreaza rezultatele in memoria RAM de date, urmand a
fi transmise pe interfata seriala la PC.
Dialogul cu afisajul LCD se efectueaza prin intermediul unor
subrutine:
WRCMD - scrierea comenzii din registrul R2 la LCD
WRDAT - scrierea datelor din registrul R2 la LCD
WLCD - asteapta terminarea operatiunilor interne ale LCD
INLCD - initializarea LCD pentru transfer pe 8 biti.
Comenzile folosite sunt:
CLEAR - 1

258

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
;
CURSOR HOME - 2, 3
;
MODE - 1/INC/SHIFT
;
CONTROL - 1/DysplayON/CursorON/FlashON
;
SHIFT - 1/SHIFT/RIGHT/*/*
;
; Spatiul utilizator incepe de la adresa 8000H, deci acest
; program va fi stocat incepand de la aceasta adresa.
;
ORG
8000H
;
; progam principal
;
LJMP INIT
; long jump la rutina de initializare
; afisaj cu cristale lichide LCD
INIT: ACALL INILCD
; apel rutina de initializare afisaj
ACALL CLRLCD
; apel rutina stergere LCD
; prezentarea programului de achizitie pe LCD - dispaly 1
MOV
DPTR,#TEXT1 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT1
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 2
MOV
DPTR,#TEXT2 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT2
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 3
MOV
DPTR,#TEXT3 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT3
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 4
MOV
DPTR,#TEXT4 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT4
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 5
MOV
DPTR,#TEXT5 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT5
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 6
MOV
DPTR,#TEXT6 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT6
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
ACALL CLEAR
; apel rutina de stergere temporizata
; prezentarea programului de achizitie pe LCD - dispaly 7
MOV
DPTR,#TEXT7 ; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT7
ACALL MESAJ
; apel rutina de afisare mesaj la LCD
MOV
R2,#0CBH
; adresa scriere cod tasta
ACALL WRCMD
; pozitionare cursor
MOV
R2,#1101B
; display on, cursor off, flash on
ACALL WRCMD
; scrie comanda la LCD
; citirea tastaturii, prin baleierea celor trei linii, citirea celor
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

259

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE


; patru coloane si verificare daca s-a tastat ceva.
; prima linie
NEXT: MOV
A,#0E0H
; initializeaza acumulatorul cu #0E0H
; (se selecteaza prima linie de taste)
ACALL WRPRDP
; se apeleaza rutina de scriere/citire
; port
MOV
R3,A
; salveaza valoarea in registrul R3
ANL
A,#0FH
; mascheaza bitii mai semnificativi
; ai acumulatorului (codul liniei)
JZ
NEXT1
; daca A=0 (valoarea citita este 0FH; nu s-a tastat nimic),salt la eticheta
; NEXT1 (linia 1 de taste)
JNZ
COL
; daca continutul acumulatorului nu
; este zero, salt la determinarea
; codului HEXA al tastei, in functie
; de linia activa si coloana pe care
; este situata tasta apasata
; a doua linie
NEXT1: MOV
A,#0D0H
; se initializeaza acumulatorul cu #0D0H
; se selecteaza a doua linie de taste)
ACALL WRPRDP
; se apeleaza rutina de scriere/citire
; port
MOV
R3,A
; salveaza valoarea in registrul R3
ANL
A,#0FH
; mascheaza bitii mai semnificativi
; ai acumulatorului (codul liniei)
JZ
NEXT2
; daca A=0 (valoarea citita este 0FH)
; salt la eticheta NEXT
JNZ
COL
; daca continutul acumulatorului nu
; este zero, salt la determinarea
; codului HEXA al tastei, in functie
; de linia activa si coloana pe care
; este situata tasta apasata
; a treia linie
NEXT2: MOV
A,#0B0H
; se initializeaza acumulatorul cu #0D0H
; se selecteaza a treia linie de taste)
ACALL WRPRDP
; se apeleaza rutina de scriere/citire
; port
MOV
R3,A
; salveaza valoarea in registrul R3
ANL
A,#0FH
; mascheaza bitii mai semnificativi
; ai acumulatorului (codul liniei)
JZ
NEXT
; daca A=0 (valoarea citita este 0FH)
; salt la eticheta NEXT (prima linie)
JNZ
COL
; daca continutul acumulatorului nu
; este zero, salt la determinarea
; codului HEXA al tastei, in functie
; de linia activa si coloana pe care
; este situata tasta apasata
COL: JB
ACC.0,COL0
; salt la COL0, daca bitul 0 al acu; mulatorului este 1 (s-a apasat o
; tasta de pe coloana 0)
JB
ACC.1,COL1
; salt la COL1, daca bitul 1 al acu; mulatorului este 1 (s-a apasat o
; tasta de pe coloana 1)
JB
ACC.2,COL2
; salt la COL2, daca bitul 2 al acu; mulatorului este 1 (s-a apasat o
260

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

JB

COL0: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL1: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL2: MOV
MOV
SWAP

ANL
JB
JB
SJMP
COL3: MOV
MOV
SWAP

ANL
JB
JB
SJMP
LINIE1:
ADD
MOV
SJMP
LINIE2:
ADD
MOV
SJMP
PLAY: MOV
CALL
MOV

;
;
;
;
R1,#00H
;
A,R3
;
A
;
;
;
A,#0FH
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#01H
;
A,R3
;
A
;
;
;
A,#0FH
;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#02H
;
A,R3
;
A
;
;
;
A,#0FH
;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
R1,#03H
;
A,R3
;
A
;
;
;
A,#0FH
;
;
ACC.1,LINIE1 ;
ACC.2,LINIE2 ;
PLAY
;
MOV
A,#04H ;
A,R1
;
R1,A
;
PLAY
;
MOV
A,#08H ;
A,R1
;
R1,A
;
PLAY
;
A,R1
;
HEXASC
;
;
R2,A
;
ACC.3,COL3

tasta de pe coloana 2)
salt la COL3, daca bitul 3 al acumulatorului este 1 (s-a apasat o
tasta de pe coloana 3)
s-a apasat tasta de pe coloana 0
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 0
s-a apasat tasta de pe coloana 0
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 1
s-a apasat o tasta de pe coloana 2
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 2
s-a apasat o tasta de pe coloana 3
se reconstituie acumulatorul
se interschimba bitii mai semnificativi
cu cei mai putini semnificativi ai
acumulatorului
se mascheaza bitii mai semnificativi
pentru identificarea codului liniei
salt daca tasta apasata era pe linia 1
salt daca tasta apasata era pe linia 2
salt la rutina de afisare, tasta 3
tasta apasata era pe linia 1
se aduna codul coloanei cu codul liniei
codul hexa al tastei apasate este in R1
salt la rutina de afisare, tastele 4..7
tasta apasata era pe linia 2
se aduna codul coloanei cu codul liniei
codul hexa al tastei apasate este in R1
salt la rutina de afisare, tastele 8..B
codul hexa al tastei in acumulator
conversie in ASCII a codului tastei,
pentru afisare pe LCD
codul HEXA al tastei apasate in R2

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

261

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE


ACALL TRX
MOV
R2,#0CBH
ACALL WRCMD
MOV
R2,#1100B
ACALL WRCMD
ACALL CLEAR
; prezentarea programului
MOV
DPTR,#TEXT8
ACALL MESAJ
MOV
A,R1
JZ
SCH

SCH:

DCH:

262

DEC
JZ

A
SCH

DEC
JZ

A
SCH

DEC
JZ

A
SCH

DEC
JZ

A
SCH

DEC
JZ

A
SCH

DEC
JZ

A
DCH

DEC
JZ

A
DCH

DEC
JZ

A
DCH

DEC
JZ

A
ALL

MOV
ACALL
ACALL
LJMP
MOV
CLR
SUBB
MOV
ACALL
ACALL
MOV
INC
INC
INC

A,R1
SH
SINGLE
NEXT
A,R1
C
A,#6
R7,A
SH
SINGLE
A,R7
A
A
A

; scrie la LCD codul tastei


; adresa scriere cod tasta
; pozitionare cursor
; display on, cursor off, flash off
; scrie comanda la LCD
; apel rutina stergere temporizata a LCD
de achizitie pe LCD - dispaly 8
; se memoreaza in DPTR adresa de in; ceput a sirului de caractere TEXT8
; apel rutina afisare mesaj la LCD
; codul tastei apasate in acumulator
; daca este 0, canalul selectat este
; canalul 0 si salt la eticheta SCH
; decrementeaza acumulatorul
; daca este 0, canalul selectat este
; canalul 1 si salt la eticheta SCH
; decrementeaza acumulatorul
; daca este 0, canalul selectat este
; canalul 2 si salt la eticheta SCH
; decrementeaza acumulatorul
; daca este 0, canalul selectat este
; canalul 3 si salt la eticheta SCH
; decrementeaza acumulatorul
; daca este 0, canalul selectat este
; canalul 4 si salt la eticheta SCH
; decrementeaza acumulatorul
; daca este 0, canalul selectat este
; canalul 5 si salt la eticheta SCH
; decrementeaza acumulatorul
; tasta apasata era 6 si se selecteaza
; perechea de canale 0 si 3 (esantionare
; sincrona)
; decrementeaza acumulatorul
; tasta apasata era 7 si se esantioneaza
; sincron perechea de canale 1 si 3
; decrementeaza acumulatorul
; tasta apasata era 8 si se esantioneaza
; sincron perechea de canale 2 si 5
; decrementeaza acumulatorul
; tasta apasata era 9 si se esantioneaza
; sincron canalele 0 .. 5

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ALL:

;
SH:

ACALL
LJMP
MOV
CLR
SUBB
MOV
ACALL
ACALL
MOV
INC
MOV
ACALL
MOV
INC
MOV
ACALL
MOV
INC
MOV
ACALL
MOV
INC
MOV
ACALL
MOV
INC
MOV
ACALL
LJMP

SINGLE
NEXT
A,R1
C
A,#9
R7,A
SH
SINGLE
A,R7
A
R7,A
SINGLE
A,R7
A
R7,A
SINGLE
A,R7
A
R7,A
SINGLE
A,R7
A
R7,A
SINGLE
A,R7
A
R7,A
SINGLE
NEXT

ORL
A,#11000000B
PUSH ACC
ACALL WRCDA
;
;
ACALL WAIT5
;
;
POP
ACC
ANL
A,#00111111B
PUSH ACC
ACALL WRCDA
;
;
POP
ACC
RET

;
SINGLE:
ACALL WRCONV
ACALL WAIT10
ACALL RDCONV

ACALL RDLSBYTE

ACALL WRMEM
ACALL RDMSBYTE

;
;
;
;
;
;
;
;
;
;

comanda de esantionare, selectie


canal si amplificare
asteapta 5us pentru achizitia
semnalului de intrare

comanda de memorare pentru canalul


de intrare selectat

start conversie
se asteapta sfarsitul conversiei
se transfera rezultatul conversiei
pe 12 biti, in registrele LSBYTE si
MSBYTE
se citeste octetul mai putin semnificativ al conversiei, din registrul
LSBYTE
se salveaza octetul in memorie
se citeste octetul mai semnificativ

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

263

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

ACALL WRMEM
RET

; al conversiei, din registrul MSBYTE


; se salveaza octetul in memorie

;
WRCDA:
; rutina de selectie a parametrilor
; conversiei: numarul canalului selectat, comanda de esantionare,
; amplificarea amplificatorului cu cqstig reglabil
MOV
P2,#1
; se selecteaza porturile de iesire
MOV
R0,#28H
; se selecteaza portul COMAND
MOVX @R0,A
; muta continutul acumulatorului
; la portul de iesire COMAND
RET
;
WRCONV:
MOV
P2,#1
MOV
R0,#20H
MOVX @R0,A
RET
;
RDCONV:
MOV
P2,#1
MOV
R0,#20H
MOV
A,@R0
RET
;
RDLSBYTE:
MOV
P2,#1
MOV
R0,#68H
MOV
A,@R0
RET
;
RDMSBYTE:
MOV
P2,#1
MOV
R0,#70H
MOV
A,@R0
RET
;
WAIT5: MOV
R3,#5
LOOP2: NOP
DJNZ R3,LOOP2
RET
;
WAIT10:
MOV
R3,#10
LOOP3: NOP
DJNZ R3,LOOP3
RET
;
WRMEM: NOP
RET
;
INILCD:
; rutina de initializare LCD.
; Aceasta rutina trimite la LCD comanda #38H = 0011 1000B.
; Conform datelor de catalog, acesta comanda seteaza urmatorii
; parametri ai afisajului:
;
- bitul 5 - defineste aceasta comanda (function set);
;
- bitul 4(DL-Data Length)=1 seteaza dialogul pe 8 biti
;
intre procesor si LCD;
264

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
;
;
;
;

- bitul 3(N-Number of display lines)=1 seteaza numarul


liniilor afisajului ca fiind 2^N=2;
- bitul 2(F-Character Font)=0 seteaza forma caracterului
ca fiind 5*7 puncte
MOV
R2,#38H
; incarca R2 cu cuvantul de comanda
; pregatind dialogul pe 8 biti cu
; driverele de afisaj
ACALL WRCMD
; transmite comanda anterioara la
; port, efectuand programarea LCD
MOV
R4,#50
DEL4MS:
; rutina de intarziere cu 4 ms,
; necesara functionarii display-ului LCD
ACALL DELAY
; absolute call rutina DELAY
DJNZ R4,DEL4MS
; se decrementeaza registrul R4 si
; salt la eticheta DEL4MS daca conti; nutul acestuia este nenul
MOV
R4,#4
; se incarca R4 cu valoarea imediata 4
LINI:
; LINI seteaza modul de lucru al LCD
ACALL WRCMD
; se scrie comanda la driverele LCD
ACALL DELAY
; apel rutina DELAY
DJNZ R4,LINI
; se decrementeaza registrul R4 si salt
; la eticheta LINI daca este nenul con; tinutul acestui registru
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#6
; seteaza modul de lucru "entry"
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#0EH
; seteaza modul "display on"
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
MOV
R2,#1
; stergere LCD
ACALL WRCMD
; transmite comanda la LCD
ACALL WLCD
; testarea starii driverelor LCD
RET
; revenire din subrutina INILCD
;
WRCMD:
; rutina WRCMD scrie o comanda la
; driverele de afisaj, in urma verificarii starii acestora. Se se; lecteaza afisajul LCD si comanda continuta de registrul R2 este
; transferata driverelor din LCD.
ACALL WLCD
; se verifica starea driverelor (BF=0)
MOV
A,R2
; comanda continuta in registrul R2 e
; transferata in acumulator
MOV
P2,#1
; se selecteaza portul LCD (S0=1)
MOV
R0,#0
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0000 B,
; corespunzatoare scrierii unei comenzi
; la driverele afisajului LCD
MOVX @R0,A
; se scrie in driverele afisajului LCD
; (la adresa stabilita anterior) comanda
RET
; revenire din rutina WRCMD
;
WLCD:
; rutina ce testeaza daca este sau
; nu posibila transmiterea unui nou caracter catre LCD, pe baza in; formatiilor furnizate de rutina RDCMD. Se testeaza bitul 7 (BF ; Busy Flag) al registrului de stare al LCD. Daca BF=1, inseamna ca
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

265

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE


; LCD efectueaza o operatie interna si, deci, nu poate accepta un
nou
; caracter.
ACALL RDCMD
; apel rutina RDCMD
JB
ACC.7,WLCD
; se verifica daca BF=1 si asteapta
; trecerea lui in 0 (terminarea ope; ratiunilor interne)
RET
; revenire din subrutina WRCL
;
RDCMD:
; subrutina RDCMD selecteaza afisajul
; si citeste din registru de stare starea curenta a driverelor
acestuia,
; informatie care este depusa in acumulator
MOV
P2,#1
; selectie port (S0=1)
MOV
R0,#2
; se realizeaza pe magistrala de adrese
; selectia cu A0 si A1 (0000 0010 B),
; pentru a se citi starea driverelor de
; afisaj LCD
MOVX A,@R0
; se transfera in acumulator valoarea
; gasita la adresa specificata anterior
RET
; revenire din rutina RDCMD
;
DELAY:
; subrutina DELAY realizeaza o intarziere
; cu 80 microsecunde
MOV
R3,#17
; registrul R3 este incarcat cu valoarea
; imediata 17
; 80E-6secunde = 17 * 2instructiuni NOP *
; * 12 perioade de ceas/instructiune NOP*
; 1/11.059MHz (perioada ceas procesor)
LL1: NOP
; no operation
NOP
; no operation
DJNZ R3,LL1
; se decrementeaza registrul R3, se compa; ra continutul sau cu 0. Daca rezultatul
; compararii este 1, salt la eticheta LL1
RET
; revenire din subrutina DELAY
;
CLRLCD:
; subrutina de stergere a afisajului
; cu cristale lichide si setare a modului de afisare
MOV
R2,#1
; stergere afisaj LCD
ACALL WRCMD
; transmite comanda la LCD
MOV
R2,#1100B
; 1, display on, cursor off, flash off
ACALL WRCMD
; transmite comanda la LCD
RET
; revenire din rutina de CLRLCD
;
TRX1:
; subrutina de scriere sir de caractere
; la afisajul cu cristale lichide LCD
CLR
A
; initializeaza acumulatorul cu 0
MOVC A,@A+DPTR
; muta in acumulator adresa gasita
; la adresa @A+DPTR
CJNE A,#24H,TRCAR1; compara continutul acumulatorului
; cu #24H (codul hexa al caracterului
; $ - sfarsit de mesaj) si daca este
; diferit se efectueaza salt la eticheta
; TRCAR1
RET
; iesire din subrutina TRX1
266

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
TRCAR1:

MOV

ACALL WRDAT
INC
SJMP

DPTR
TRX1

;
TRX:
; caracter ASCII
CLR
A
MOV
A,R2

R2,A

;
;
;
;
;
;
;

muta continutul acumulatorului in


registrul R2
apel subrutina de scriere date in
registrele afisajului LCD
adresa urmatorului caracter de scris
small jump la eticheta TRX1, pentru
a scrie urmatorul caracter

; subrutina de afisare la LCD a unui


;
;
;
;
;
;
;
;

se initializeaza acumulatorul cu 0
se transfera continutul registrului
R2 in acumulator
long jump la eticheta TRCAR
iesire din rutina TRX
se restaureaza in R2 continutul Acc.
se scriu datele in driverele LCD
short jump la eticheta LL7

LJMP TRCAR
LL7: RET
TRCAR: MOV
R2,A
ACALL WRDAT
SJMP LL7
;
WRDAT:
; subrutina WRDAT este identica cu WRCMD
; dar este utilizata pentru scrierea la driverele LCD codul
; caracterelor ce urmeaza a fi afisate
ACALL WLCD
; testarea starii driverelor LCD
MOV
P2,#1
; se selecteaza portul LCD (S0=1)
MOV
R0,#1
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0001 B,
; corespunzatoare scrierii unui caracter
; la driverele afisajului LCD
MOV
A,R2
; se transfera caracterul in acumulator
MOVX @R0,A
; se transmite caracterul driverelor LCD
RET
; revenire din rutina WRDAT
;
MESAJ:
; subrutina de afisare la LCD a doua linii
; de cate 16 caractere
ACALL TRX1
; apel rutina de transmisie mesaj
MOV
R2,#0C0H
; pozitionare pe a doua linie
ACALL WRCMD
; scriere comanda pozitionare la LCD
INC
DPTR
; incrementare DPTR (linia a doua)
ACALL TRX1
; apel rutina de transmisie mesaj
RET
; revenire din rutina MESAJ
;
CLEAR:
; subrutina mentine starea afisajului
; timp de 3 secunde, sterge afisajul si pozitioneaza cursorul pe
; prima pozitie, de pe prima linie
ACALL SEC3
; mentine starea afisajului 3 sec.
MOV
R2,#1
; comanda stergere display
ACALL WRCMD
; scriere comanda la LCD
MOV
R2,#2
; cursor home, prima linie
ACALL WRCMD
; scriere comanda la LCD
RET
; revenire din subrutina MESAJ
;
WRPRDP:
; rutina de scriere/citire port
MOV
P2,#1
; selecteaza decodificatorul (A8=1)
MOV
R0,#20H
; incarca R0 cu 0010 0000 B:
; selectie port de iesire 1 (S1=0)
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

267

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE


MOVX

@R0,A

MOV
MOV

P2,#1
R0,#60H

MOVX

A,@R0

CPL
RET

;
;
;
;
;
;
;
;
;

muta continutul acumulatorului


la portul de iesire 1 (AX0=0)
selecteaza decodificatorul (A8=1)
incarca R0 cu 0110 0000B:
selecteaza portul de intrare
citeste in acumulator valorea gasita
la adresa specificata anterior
complementeaza acumulatorul
iesire din rutina WRPRDP

;
SEC3:
; rutina de intarziere cu
; 3sec = (43instr. NOP x 12 perioade ceas/NOP x 256
MOV
R6,#255
; se incarca registrul R6
LOOP1: MOV
R7,#255
; se incarca registrul R7
LOOP: NOP
; 43 instructiuni NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
268

3 secunde
x 256)/11,059MHz
cu #255
cu #255

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
NOP
NOP
DJNZ

R7,LOOP

DJNZ

R6,LOOP1

;
;
;
;
;

se decrementeaza registrul R7 si
daca este nenul, salt la LOOP
se decrementeaza registrul R6 si
daca este nenul, salt la LOOP1
revenire din subrutina SEC3

RET
;
TEXT1: DB ' ACHIZITIE A/D: $'
DB 'PE 6 CANALE: 12b$'
TEXT2: DB 'AFISARE: 2 LINII$'
DB 'DE 16 CARACTERE $'
TEXT3: DB 'STOCARE: 2 BYTES$'
DB ' IN MEMORIA RAM $'
TEXT4: DB 'TRANSFER SERIAL$'
DB 'LA PC:9600 BAUDS$'
TEXT5: DB 'CONVERSIE D/A:8b$'
DB 'REFACERE SEMNAL$'
TEXT6: DB 'APASATI O TASTA:$'
DB ' (NUMAR: 0..11) $'
TEXT7: DB 'TASTA ACTIONATA:$'
DB ' TASTA "
" $'
TEXT8: DB ' SEMNAL INTRARE $'
DB ' CANAL : .
V$'
;
HEXASC:
; rutina de conversie hexa-ascii
ANL
A,#0FH
; se mascheaza cei patru biti mai
; semnificativi ai acumulatorului
JNB
ACC.3,NOADJ ; daca bitul 3 = 0 salt la NOADJ
JB
ACC.2,ADJ
; daca bitul 2 = 1 salt la ADJ
JNB
ACC.1,NOADJ ; daca bitul 1 = 0 salt la NOADJ
ADJ: ADD
A,#07H
; aduna acumulatorul cu #07H
NOADJ: ADD
A,#30H
; aduna acumulatorul cu #30H
RET
; revenire din rutina HEXASC
;
END
; sfarsitul programului

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

269

SOFTWARE DE ANALIZ A SEMNALELOR ELECTRICE

270

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

8. SISTEM CU MICROCONTROLLER PENTRU


MSURAREA I CONTROLUL TEMPERATURII
8.1 SPECIFICAIILE DE PROIECTARE ALE SISTEMULUI
PENTRU MSURAREA I CONTROLUL TEMPERATURII
n condiiile actuale, tot mai multe echipamente de msurare i reglare, n
domeniile industrial, industriei auto i casnic, au la baz sisteme organizate n
jurul unui microprocesor sau a unui microcontroller. Acest tip de abordare a
proiectrii prezint o serie de avantaje substaniale, dintre care putem remarca:
simplitatea i caracterul de compatibilitate a proiectrii, grad ridicat de integrare,
gabarit redus, consum redus de energie electric, faciliti de adaptabilitate la
determinarea i controlul unor noi parametri (sau n situaia modificrii relaiilor
de calcul ale acestora), imunitate ridicat la perturbaii i zgomote electrice i,
bineneles, nu n ultimul rnd, fiabilitate ridicat.
n cele ce urmeaz, va fi prezentat structura i elementele de proiectare
ale unui sistem destinat msurrii i controlului temperaturii n mediu industrial.
Acest sistem va fi organizat n jurul unui microcontroller de tip 80C552, fiind
caracterizat de urmtorii parametri:
msurarea temperaturii n 8 puncte al procesului, folosind senzori de
temperatur de tip LM135, cu rezoluie de 0,5oC, sau senzori de
temperatur cu ieire n curent (semnal unificat 4 .. 20 mA);
intervalul de temperatur controlat este cuprins ntre 0oC i +100oC;
conversie analog-digital pe 8 bii, n format binar direct, a
informaiilor de temperatur preluate din proces;
memorarea temporar a codurilor binare de temperatur ntr-o
memorie de date, de tip RAM static;
programarea, prin intermediul unui dispozitiv local de introducere a
datelor (tastatur local) a temperaturii de echilibru n cadrul
sistemului controlat;
afiarea local, pe un display cu cristale lichide, att a temperaturii de
lucru preprogramate, ct i a temperaturii medii determinate;
controlul continuu al elementului de execuie (elementul de nclzire)
pentru meninerea temperaturii preprogramate;
extinderea posibilitilor de control la dou elemente de execuie;
transmiterea informaiilor de temperatur prelevate din proces, pe o
legtur serial full-duplex, de mare vitrz, compatibil RS-232, ctre
un calculator gazd, n vederea analizei statistice i interpretrii la un
nivel nalt a rezultatelor.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

271

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

Va fi elaborat i un program de aplicaie, scris n limbaj de asamblare,


care permite msurarea i controlul temperaturii n cadrul procesului. Limbajul
de asamblare, dei mai greu de utilizat i de interpretat, prezint avantajul
minimizrii codului aplicaiei.
n cele ce urmeaz, se va concentra efortul de proiectare pentru
minimizarea hardware-ului utilizat, ns cu asigurarea performanelor de
exactitate specificate.
n subcapitolele urmtoare vor fi descrise, ntr-o ordine ce ine seama de
complexitatea structurilor utilizate, elementele hardware i software care
compun acest sistem microprocesat destinat msurrii i controlului
temperaturii.

8.2 DESCRIEREA FUNCIONAL A SISTEMULUI DE


MSURARE I CONTROLUL TEMPERATURII
Sistemul de msurare i controlul temperaturii se compune din mai
multe uniti funcionale, dup cum urmeaz:
blocul de msurare a temperaturii, care conine:
senzorul de temperatur, de tip A135;
sursele de tensiune de referin i de prag;
sistemul de dezvoltare cu microcontroller 80C552, folosit pentru:
prescrierea temperaturii programate;
conversia analog-digital a informaiei de temperatur;
memorarea rezultatelor obinute n urma supravegherii procesului;
controlul continuu al temperaturii n cadrul procesului
supravegheat;
transmisia serial a rezultatelor prelevate n cadrul procesului
supravegheat ctre un sistem de calcul mai puternic, de tip IBM-PC
sau compatibil, n vederea analizei detaliate, reprezentrii grafice a
regimului tranzitoriu de control al temperaturii n cadrul procesului
controlat i a analizei statistice a rezultatelor obinute;
blocul de comand al elementului de execuie.

8.2.1 BLOCUL DE MSURARE A TEMPERATURII


Blocul de msurare a temperaturii se compune din urmtoarele module
funcionale:
senzorul de temperatur, de tip A135;
sursele de tensiune de referin i de prag.
272

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

8.2.1.1 TRADUCTORUL DE TEMPERATUR


8.2.1.1.1 CONECTAREA TRADUCTORULUI DE
TEMPERATUR
Senzorul de temperatur este conectat, prin intermediul unor etaje de
adaptare, la portul P5 al microcontroller-ului, prin care sunt vehiculate alternativ
i semnalele de control ale seciunii analogice. Informaia de temperatur
furnizat de senzorul specializat este vehiculat de semnalul ADC0 ADC7.

8.2.1.1.2 SENZORUL DE TEMPERATUR


Senzorul de temperatur, de tip A135, permite msurarea temperaturilor
n domeniul -55oC +150oC, gam ce acoper intervalul de temperatur
0oC+100oC, impus prin tema de proiectare. Acest senzor de temperatur este
constituit de fapt de o diod Zener a crei tensiune, n polarizare invers, variaz
liniar cu +10mV/grad, funcie de temperatur pe ntreg domeniul de temperaturi
de lucru specificat.

Senzorul de temperatur A135 este caracterizat de o rezisten dinamic


foarte redus (tipic 1), ceea ce uureaz mult preluarea informaiei de
temperatur de la acest circuit. Circuitul funcioneaz normal pentru o gam
larg de cureni de polarizare, respectiv ntre 400 A i 5 mA.
Senzorul de temperatur folosit este caracterizat de o eroare de maximum
1 C. Aceast eroare iniial poate fi compensat prin conectarea unui
poteniometru cu valoarea de 10k ntre anodul i catodul diodei, cursorul
poteniometrului fiind conectat la terminalul de compensare al senzorului de
temperatur.
o

Senzorul de temperatur A135 furnizeaz la ieire o tensiune


proporional cu temperatura absolut, n Kelvin.
Schema electric de utilizare a acestui senzor de temperatur este
prezentat n fig. 8.1, n care P1 este poteniometrul de compensare (P1=10k).

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

273

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

+AVDD
R1

A135

P1

AVSS

Fig. 8.1 Senzorul de temperatur.

Pentru acest circuit se poate scrie:


VCC U Z1 (T ) U Z1 (T )
I Z1 =

R1
P1

(8.1)

Curentul prin dioda D1 (A135) trebuie s se ncadreze n intervalul


400A5mA, n vederea unei funcionri corecte, pe intreg intervalul de
temperatur specificat (0oC+100oC).
Se poate deduce:
U Z1 (273K ) = U Z1 (0o C ) = 2,73V
(8.2)
U Z1 (373K ) = U Z1 (+ 100o C ) = 3,73V
n concluzie:
VCC U Z1 (100o C ) U Z1 (100o C )

I Z1, min =
R1
P1
(8.3)
VCC U Z1 (0o C ) U Z1 (0o C )

I Z1, max =
R1
P1
Rezult prin utilizarea ecuaiilor anterioare limitele intervalului de
apartenen pentru rezistena de polarizare R1:
VCC U Z1 (100o C )
R 1,max =
= 1,2359k
U Z1 (100o C )
I Z1, min +
P1
(8.4)
VCC U Z1 (0o C )
R 1,min =
= 0,435k
U Z1 (0o C )
I Z1, max +
P1
Trebuie satisfacut relaia:
274

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

R 1,min R 1 R 1,max

(8.5)

Se alege R1=0,68k, valoare standard care satisface condiiile de


funcionare specificate anterior.

8.2.1.1.3 MODULUL SURSELOR DE TENSIUNE DE


REFERIN
Rolul acestui modul funcional este acela de a obine folosind sursa de
tensiune analogic (AVDD n raport cu AVSS) care alimenteaz convertorul
analog-digital implementat intern n cadrul structurii microcontroller-ului
80C552 a dou tensiuni de referin, VREF- i VREF+.
Alegerea acestor dou tensiuni de referin se bazeaz pe faptul c
sistemul de achiziii de date din cadrul microcontroller-ului 80C552 convertete
pe 10 bii tensiunea de intrare delimitat de intervalul [VREF-, VREF+], conform
ecuaiei:
V VREF
V VREF
N = 210 IN
= 1024 IN
(8.6)
VREF+ VREF
VREF+ VREF
Prin utilizarea numai a celor mai semnificativi 8 bii ai rezultatului,
coninui n registrul ADCH, caracteristica de transfer devine:
V VREF
V VREF
N = 28 IN
= 256 IN
(8.7)
VREF+ VREF
VREF+ VREF
Astfel, se asociaz codul binar N=0 pentru VIN =VREF- i N=1024 (sau
256, dac sunt utilizai doar cei mai semnificativi opt bii ai rezultatului) pentru
VIN=VREF+.
Pentru a se realiza o asociere uor de interpretat a rezultatului conversiei,
obinut sub form binar, ct i o minimizare a erorii la interpretarea acestuia
(pentru simplitate se vor prelua doar cei mai semnificativi opt bii ai rezultatului
conversiei analog-digitale, coninui n registrul ADCH), tensiunile de referin
care se aplic convertorului analog-digital vor corespunde unui interval extins de
temperatur, i anume 0oC+128oC:
VREF = U Z1 (0o C ) = 2,73V
(8.8)
VREF+ = U Z1 (128o C ) = 4,01V
n acest mod, codul binar corespunztor lui N=0 se obine pentru
tensiunea de intrare corespunztoare temperaturii t0=0oC iar codul binar
corespunztor lui N=256 se obine pentru o tensiune de intrare corespunztoare
temperaturii t1=128oC. Rezoluia conversiei sub form numeric a temperaturii
este de 1bit/0,5oC, putndu-se astfel interpreta temperaturi variind n pai de
jumtate de grad. Pentru temperaturi msurate i controlate cu variaii de un
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

275

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

grad (rezoluie impus prin tema de proiectare) se obine ntotdeauna un cod


binar de ieire direct reprezentnd un numr ntreg. Astfel este realizat
minimizarea eroarea de msurare i de interpretare a rezultatului.
Prin alegerea unor valori corespunztoare ale tensiunilor de referin
aplicate convertorului analog-digital, se obine un rezultat reprezentat n cod
binar direct proporional cu temperatura exprimat n grade Celsius, fr a fi
necesar utilizarea unui amplificator diferenial pentru realizarea conversiei
Kelvin / grad Celsius.
Schema electric a acestui modul funcional este prezentat n fig. 8.2.
+AVDD
R1

R2
VREF+
R3

VREF-

AVSS

Fig. 8.2 Modulul surselor de referin.

Conform circuitului reprezentat n fig. 8.2, se poate scrie:


R
VREF = U Z1 (0o C ) = 2,73V = 3 3 AVDD
Ri
VREF+ = U Z1 (128 C ) = 4,01V =
o

i =1

R2 + R3
3

Ri

(8.9)
AVDD

i =1

n care AVDD=+5V.
Se alege un curent prin divizorul R1, R2, R3, notat I, egal cu 1mA. n
aceste condiii, rezult:
AVDD

I= 3
= 1mA
3

(8.10)
R 1 = 5k
Ri
=
i
1
i =1

AVDD = 5V
276

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Trebuie menionat c valoarea acestui curent a fost aleas suficient de


mare astfel nct s poat fi neglijai curenii absorbii de intrrile tensiunilor de
referin ale convertorului analog-digital.
Ca urmare, folosind ecuaia rezult:
3
R
V
VREF = 3 3 AVDD R 3 = R i REF = 2,73k
AVDD
i =1
Ri
i =1
(8.11)
3
R2 + R3
VREF+
VREF+ = 3
AVDD R 2 + R 3 = R i
= 4,01k
AVDD
i =1
Ri
i =1

Se alege R3=2,73k valoare standard, rezultnd valoarea lui R2:


3

R 2 = R i R 3 = 4,01k 2,73k = 1,28k

(8.12)

i= 2

Valoarea rezistenei R1 rezult conform ecuaiei:


3

i =1

j= 2

R 1 = R i R j = 5k 4,01k = 0,99k

(8.13)

Pentru a se obine valoarea calculat a rezistenei R1, aceasta va fi


compus din dou rezistene standard cu valorile 1k i respectiv 100k, legate
n paralel.
1k 100k
R1 =
= 0,990099k
(8.14)
1k + 100k
Pentru a se obine valoarea calculat a rezistenei R2, aceasta va fi
compus din trei rezistene standard cu valorile 1,5k, 10k i respectiv 68k,
legate n paralel.
1,5k 10k
68k
1,5k + 10k
R2 =
= 1,279999k
(8.15)
1,5k 10k
+ 68k
1,5k + 10k
Toate rezistenele care implementeaz blocul surselor de referin sunt
alese cu precizie ct mai ridicat (0,25% n cazul de fa) i cu un coeficient de
variaie cu temperatura de valoare ct mai sczut, pentru a se putea garanta
exactitatea de msurare impus. De asemenea, valorile acestor rezistene sunt
relativ mici (ordin k), pentru a se putea neglija curenii de intrare ai
convertorului analog-digital din punctele VREF- i VREF+.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

277

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

8.2.1.1.4 SENZOR DE TEMPERATUR CU IEIRE


UNIFICAT N CURENT
Pentru realizarea compatibilitii cu echipamentele standard de
automatizri industriale a fost realizat i o sond de temperatur cu ieire
unificat n curent 420 mA pentru un interval de temperatur 0100 oC. Acest
traductor de temperatur este prezentat n fig. 8.3.
Curentul de ieire I S (t ) este dat de urmtoarele componente:
curentul prin rezistena R2, dependent de temperatur i asigurat
integral de colectorul tranzistorului Q1:
U(t ) + xP1 (I + I REF )
I R 2 = I (t ) =
(8.16)
R2
curentul de alimentare al senzorului de temperatur, I , forat de un
generator de curent realizat cu tranzistorul Q1:
U
0,6V
I = I + = EB =
= 0,1276595744681mA
(8.17)
R1
4,7k
curentul prin poteniometrul P1, determinat de sursa de tensiune de
referin:
V xP1 I
I REF = REF
(8.18)
R 3 + P1
curentul prin terminalul de ajustare al sursei de referin:
I ADJ = (50 100 )A = neglijabil
(8.19)
Sumnd aceste componente, se constat c valoarea minim a curentului
I S (t ) este de 4mA, obinut pentru t=0oC, adic U(t)=0V. Aceast valoare poate
fi ajustat prin intermediul poteniometrului P1. Valoarea maxim a curentului
IS(t) este de 20mA, obinut pentru t=100oC, adic U(t)=1,00V (de fapt la
valoarea minim ajustat la valoarea de 4mA se adaug valoarea
U (100 0 C )
1V
=
= 16mA ). Se constat, de asemenea, c aceast schem nu
R2
62,5
necesit reglajul ambelor capete de scal, n condiiile n care rezistena R2 este
aleas ntr-o clas de precizie bun (0,25%, de exemplu).
n aceast schem este utilizat un senzor de temperatur centigrad, de tip
LM35, a crui ieire variaz cu 10mV pe grad Celsius. Stabilizatorul de tensiune
ajustabil, de tip LM317, este utilizat n aceast schem doar pentru referina sa
intern, cu valoare de 1,25V, pentru a creea zero-ul viu al senzorului de
temperatur cu ieire unificat n curent.

278

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

D1
1N4001

R1
4,7k
Q1
BC177

IN
OUT
OUT

IOUT=0
R2
62,5

+Vcc

U(t C)
0

I(t C)

+
U1
LM35
I-=I+

IREF
R3
402

U2
LM317
ADJ

VREF
(1,25V)

IADJ<100A

P1
50

IS(t)=4..20mA
0
t=0..100 C

Fig. 8.3 Senzor de temperatur cu ieire unificat n curent.

8.2.2 UTILIZAREA RESURSELOR UNITII CENTRALE DE


PRELUCRARE
Din cadrul sistemului de dezvoltare, organizat n jurul unui
microcontroller 80C552, i care constituie unitatea central de prelucrare local
a sistemului de msurare i controlul temperaturii, descris detaliat n cadrul
capitolului al treilea al acestei lucrri, sunt utilizate, n cadrul acestei aplicaii,
urmtoarele resurse:
microcontroller-ul 80C552, utilizat n configuraie de microprocesor
pentru gestionarea achiziiei analog-digitale pe 8 canale a temperaturii
controlate din proces, pentru memorarea temporar a datelor prelevate
n memoria de date a sistemului i pentru manipularea acestora prin
intermediul interfeei seriale bidirecionale ctre calculatorul gazd,
pentru gestionarea a dou ieiri modulate n durat, utilizate pentru
controlul continuu al temperaturii n cadrul procesului, pentru
gestionarea porturilor de intrare-ieire locale ale sistemului de
dezvoltare;
memoria de program, coninnd programul monitor al sistemului de
dezvoltare, utilizat pentru: ncrcarea programului de aplicaie (prin
folosirea facilitilor de down-load), transferul serial al datelor ctre
calculatorul gazd (prin folosirea facilitilor de up-load) i bineneles,
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

279

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

fapt transparent pentru utilizator, iniializarea i programarea resurselor


sistemului de dezvoltare (rutine de transmisie/recepie pe legtura
serial, rutine de ntreruperi interne i externe, etc.);
memoria de date, utilizat pentru memorarea programului de aplicaie
i a eantioanelor de temperatur prelevate din procesul controlat;
tastatura local de tip matriceal, cu 12 taste, este utilizat pentru
programarea temperaturii de referin a sistemului controlat. Tastatura
local utilizeaz dou porturi locale: un port de intrare, pe care este
citit octetul care va furniza prin prelucrare software codul tastei
acionate (cei mai semnificativi patru bii ai acestui octet conin codul
liniei baleiate, iar cei mai puin semnificativi patru bii conin codul
coloanei pe care este situat tasta acionat) i un port de ieire, de la
care sunt utilizai doar cei patru bii mai puin semnificativi, prin
intermediul crora sunt baleiate n bucl liniile tastaturii;
afiajul cu cristale lichide, cu dou linii de cte 16 caractere, este
utilizat pentru afiarea continu i comparativ a temperaturii de
referin preprogramate i a temperaturii medii msurate. Acest
dispozitiv este utilizat pentru afiarea la nceputul execuiei
programului de aplicaie a ctorva mesaje de prezentare succint a
acesteia.
Programul de aplicaie, scris n limbaj de asamblare 8051, asamblat i
convertit n format INTEL HEX standard (acest format este executabil, conine
un header format din adresa de nceput a programului din memoria RAM
(specificat n cadrul programului surs prin directiva ORG adres), numrul
de octei ai programului (lungimea acestuia exprimat n numr de octei) i
informaii de control (sum de control) i este strucurat sub forma unor linii de
cte 16 octei, reprezentai sub forma a dou cifre hexa, reprezentnd codurile
instruciunilor utilizate n cadrul programului i o sum de control, de asemenea
sub forma unui octet, calculat ca reprezentnd valoarea, exprimat sub forma a
dou cifre hexa, care adunat cu toi cei 16 octei de informaie conduce la
valoarea FFH), conine rutine pentru:
iniializarea resurselor utilizate n cadrul sistemului pentru msurarea
i controlul temperaturii: iniializarea afiajului cu cristale lichide (prin
itermediul rutinei INITLCD care iniializeaz dialogul pe 8 bii cu
driver-ele de afiaj, testeaz starea driver-elor de afiaj, realizeaz
tergerea afiajului i seteaz modul de lucru (display on, entry-mode);
citirea tastaturii locale de tip matriceal, ntr-o secven de program
care utilizeaz o apelare de dou ori a rutinei KEY pentru programarea
temperaturii de referin.
Rutina de citire a tastaturii, denumit KEY, foreaz ciclic pe fiecare
linie a tastaturii valoarea binar "0", n timp ce toate celelalte linii sunt
poziionate pe "1" logic. Se citete, prin intermediul portului de intrare,
280

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

configuraia de linii i coloane, verificndu-se dac unul din biii


reprezentnd coloanele tastaturii este "0" logic. Dac da, atunci a fost
acionat tasta situat la intersecia liniei forate la "0" (codul ei este
preluat pe cei mai semnificativi 4 bii ai portului de intrare) i coloana
pe care a fost detectat nivelul logic "0". Dac nu, nseamn c nu a fost
acionat nici o tast de pe linia baleiat i se trece la linia urmtoare.
Rutina se execut n bucl pn se acioneaz o tast. n urma
acionrii unei taste (numerice), se trece la obinerea codului acesteia,
prin intermediul unei secvene de program care furnizeaz drept
rezultat un octet ce conine pe cei patru bii mai puin semnificativi
codul BCD al tastei acionate. Prin convertirea acestui octet n format
ASCII, utiliznd rutina BINASC, codul obinut poate fi transmis ctre
driver-ele de afiare ale display-ului LCD.
n cadrul secvenei de program pentru citirea tastaturii din cadrul
acestei aplicaii, se apeleaz de dou ori rutina de citire a tastaturii i
de afiare a codului ASCII al tastei acionate (pe poziii diferite i
adiacente ale uneia dintre liniile de afiare ale display-ului LCD) i, de
asemenea, se obine un octet unic, reprezentnd valoarea temperaturii
de echilibru programate, de tip mpachetat BCD. Acest octet va fi
memorat ntr-unul dintre registrele disponibile ale microcontroller-ului
i va fi utilizat pentru controlul temperaturii;
gestionarea afirii pe display-ul cu cristale lichide const n
utilizarea, n mod organizat, a rutinelor RDCMD (citire a informaiilor
de stare de la driver-ele de afiare), WRCMD (scriere a comenzilor de
setare a modului de lucru, de poziionare a cursorului, de setare a
tipului de interfaare sau a mrimii caracterelor sau a tipului de cursor,
la driver-ele de afiare), WLCD (testarea driver-elor de afiare n
vederea transmiterii unui nou caracter), WRDAT (scrierea unui
caracter ASCII la driver-ele de afiare), TRX1 (scrierea unui ir de
caractere al display-ul cu cristale lichide, pentru afiarea unor mesaje
sau a unor caractere la display-ul local
gestionarea achiziiei analog-digitale: specificarea canalului de intrare
pe care se efectueaz conversia, iniializarea prin software a conversiei
analog-digitale, preluarea rezultatului i prelucrarea acestuia n vederea
interpretrii ulterioare.
Deoarece n cadrul acestei aplicaii se folosesc 8 traductoare de
temperatur, de tip LM135, acestea vor fi conectate pe intrrile 07 ale
multiplexorului din microcontroller. Astfel, adresa canalului iniial
selectat va fi 000, respectiv biii 0, 1, 2 din cadrul registrului ADCON
vor fi poziionai la 0 prin cuvntul de programare. Este declanat
procesul de achiziie analog-digital, prin software (este necesar ca
bitul 6 al registrului de control ADCON, denumit ADEX, s fie
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

281

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

poziionat la "0") de pe canalul de intrare selectat prin poziionarea


bitului 3 (ADCS) al registrului de control ADCON. Sfritul
conversiei este detectat tot software prin citirea periodic (polling) a
bitului 5 (ADCI) din registrul de control ADCON. cnd acest bit
devine 1, procesul de conversiei s-a ncheiat. Rezultatul, pe 10 bii,
al conversiei analog-digitale este disponibil n registrele ADCH (cei 8
bii mai semnificativi) i ADCON (cei doi bii cei mai puin
semnificativi, fiind biii 7 i 8 din cadrul acestui registru). Rezultatul,
considerat pe 8 bii, se afl n registrul ADCH i va fi transferat n
acumulator pentru prelucrri. n continuare, este incrementat adresa
canalului de intrare selectat i se declaneaz un nou proces de
conversie, pn cnd sunt baleiate toate cele 8 traductoare de
temperatur. Toate rezultatele intermediare sunt memorate n memoria
extern de date, iar cnd s-au efectuat toate cele 8 conversii analogdigitale rezultatele intermediare sunt mediate aritmetic, pentru a
determina temperatura medie din incinta supravegheata.
n urma analizei efectuate anterior, s-a constatat c rezultatul binar
al conversiei are o rezoluie de 2bii/grad. Astfel, prin mprire la 2 a
acestuia, se obine o valoare binar reprezentnd exact temperatura
msurat, exprimat n grade Celsius. Urmeaz obinerea celor dou
cifre ale temperaturii msurate, ce urmeaz a fi afiate: aceasta se
realizeaz prin mprirea la 10 a codului binar reprezentnd
temperatura (se obin doar dou cifre, deoarece s-a impus ncadrarea
temperaturii msuate ntre 0 i 100oC). Cei doi octei, reprezentnd
formatul BCD ale celor dou cifre, sunt convertii n format ASCII n
vederea afirii. De asemenea, prin interschimbarea celor patru bii
mai semnificativi cu cei patru bii mai puin semnificativi ai octetului
reprezentnd cifra zecilor i prin efectuarea unei instruciuni SAULOGIC la nivel de octet se formeaz un octet mpachetat BCD care
conine informaia referitoare la temperatura medie n cadrul
procesului supravegheat. Acest octet, mpreun cu acela care conine
informaia referitoare la temperatura preprogramat, vor fi utilizai n
continuare pentru controlul temperaturii;
gestionarea ieirilor modulate n durat pentru controlul continuu al
temperaturii n sistem este realizat n cadrul programului de aplicaie
prin programarea registrului PWMP pentru ca frecvena impulsurilor
de ieire s fie de 1kHz, conform relaiei:
f OSC
(8.20)
f PWM =
2 (1 + PWMP ) 255
Factorul de umplere al impulsurilor de ieire este controlat, prin
intermediul registrului de comand PWM1, de ctre diferena
registrelor ce conin octeii reprezentnd temperatura programat i
282

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

temperatura curent din cadrul sistemului controlat, conform relaiei:


= PWM1
255 - PWM1
(8.21)
PWM1 = R 4 - R 5
PWM2 = R 5 - R 4
n care registrul R4 conine octetul ce reprezint temperatura
programat la nceputul procesului de control, iar registrul R5 conine
octetul ce reprezint temperatura medie msurat. Componenta
continu a tensiunii de ieire variaz ntre 0V (la echilibru, cnd
temperaturile programat i msurat sunt egale) i 3V (atunci cnd
diferena dintre temperatura programat i cea msurat, exprimate sub
forma a doi octei mpachetai BCD, este maxim, adic atunci cnd
temperatura programat coincide cu captul superior al intervalului de
temperatur (+99oC) iar temperatura msurat coincide cu captul
inferior al intervalului (0oC), conform ecuaiei:
(PWM1 )min = 0;
(PWM1 )min = 99BCD = 153Z ;
(Vout )max =

(8.22)

153
5V = 3V
255

8.2.3 ETAJELE DE IEIRE PENTRU COMANDA


ELEMENTELOR DE EXECUIE
Fiecare etaj de ieire de comand folosete ca informaie primar impulsurile de la ieirea corespunztoare modulat n durat a microcontroller-ului
80C552 pe care o prelucreaz (integrare cu un circuit simplu de tip RC i
eantionare-memorare n vederea obinerii componentei continue a acestora,
inversarea polaritii tensiunii i amplificare cu doi, sumare cu o tensiune de
referin cu valoare ajustabil n limite de 10% n jurul tensiunii de 8V), pentru
a o utiliza drept tensiune de comand a unui circuit de comand pe faz a
tiristoarelor. Tiristorul comandat are drept sarcin elementul de nclzire sau
elementul de ventilaie, pentru controlul temperaturii.
Circuitul de integrare, de tip RC, este astfel proiectat nct s se ncheie
procesele tranzitorii de la ieirea sa n situaia n care factorul de umplere al
impulsurilor de la ieire este maxim (valoarea sa maxim este de 60%).
Conform ecuaiei:
1
t 1 = RC ln 10 = 2,3 = 60%
= 0,6ms
(8.23)
1kHz
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

283

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

se alege C=62nF i R=10k.


Circuitul de eantionare-memorare folosit, de tip LF198, este un circuit
realizat monolitic, ce utilizeaz tehnologia BI-FET pentru a obine o exactitate
superioar att n curent continuu, ct i pentru achiziia semnalelor rapid
variabile. Funcionnd ca circuit repetor, acesta este caracterizat printr-o
exactitate de 0,002% a amplificrii i de un timp de achiziie de 5 s, pentru o
exactitate de 0,01%. Folosirea tehnologiei bipolare n realizarea etajului de
intrare asigur tensiuni de offset mici i o band larg de frecven (1 MHz),
fr probleme de stabilitate. Impedanta de intrare, de 1010 , permite
achiziionarea semnalelor de excitaie ce provin de la surse de semnal cu
impedan intern ridicat, fr a fi afectat exactitatea. Amplificatorul de ieire
combin dispozitive bipolare i tranzistoare JFET cu canal P, pentru a putea
asigura rate de cdere de 5mV/min, uiliznd o capacitate de memorare de 1F.
Frontul cztor al fiecrui impuls de la ieirea modulat n durat va
determina circuitul de eantionare-memorare s intre n starea de memorare,
reinnd de fapt valoarea maxim de tensiune de la ieirea circuitului de
integrare.
Ieirea circuitului de eantionare-memorare este aplicat pe una dintre
cele dou intrri ale unui sumator inversor cu amplificare -2. Pe cea de-a doua
intrare se aplic o tensiune de referin cu valoarea de -4V. La ieirea
sumatorului se obine o tensiune pozitiv variind ntre 8V (la echilibru termic) i
respectiv 2V (cnd diferena dintre temperaturile programat i msurat este
maxim). Aceast tensiune constituie semnalul de control al circuitului de
comand a tiristorului ce acioneaz elementul de nclzire/ventilaie. Diagrama
de funcionare a acestui circuit este reprezentat n fig. 8.4.
Descrierea funcionrii circuitului AA145 poate fi rezumat astfel:
funcionarea circuitului este sincronizat cu frecvena reelei electrice
de alimentare (prin intermediul unui divizor rezistiv de tensiune cruia
i se aplic tensiunea reelei). Acest divizor este constituit din dou
rezistene R1=22k i R2=8,2k. Puterea disipat de ctre rezistena
R1 este de circa 2,2W i, de aceea, se alege R1=22k/3W;
generatorul de ramp din structura circuitului genereaz o tensiune
liniar variabil sincronizat cu frecvena reelei, aa dup cum reiese
din fig. 8.4. Aceast tensiune, denumit vR, are o amplitudine de 8V,
amplitudine determinat de blocul intern de alimentare a circuitului;
pe intrarea de comand a fazei se aplic o tensiune de control,
denumit vS, provenit de la ieirea circuitului de eantionarememorare;
ori de cte ori se manifest coincidena ntre tensiunea de comand i
rampa cresctoare a tensiunii liniar variabile, se genereaz un impuls
de comand pe poarta tiristorului (triacului), a crui durat este
determinat de elementele de temporizare ale unui circuit basculant
284

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

monostabil din structura circuitului AA145. Elementele de


temporizare, P2=250k, R6=5,6k, C3=47nF, permit reglarea duratei
impulsurilor de comand ntre 0,1ms i 4ms. Comanda triacului se face
n cadranele I i III prin implementarea unei funcii de tip I-cablat
ntre ieirile de comand ale circuitului. Aceste ieiri sunt de tip
colector n gol i au prevzute rezistene de pull-ul, cu valoarea de
820. Deoarece curentul de poart al triacului este de maxim 300mA,
este necesar buffer-area n curent a acestora cu ajutorul unui
tranzistor de medie putere, de tip BD135/137/139.
vsinc

vR

vS

iGT

iL

Fig. 8.4 Diagrama temporal de functionare a elementelor de comand.

Schema de principiu a etajului de comand pe faz a triacului este


prezentat n fig. 8.5.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

285

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

220V~

+15V
Rp

Rs
T
Vs

AA145

D1
D2

Rp
+15V
Fig. 8.5 Schema de principiu a etajului de comand pe faz.

8.3 SOFTWARE DE ANALIZ A REZULTATELOR


Software-ul de analiz i monitorizare a temperaturilor prelevate dintr-un
proces este realizat sub forma unui instrument virtual, implementat cu ajutorul
programului HP VEE - for Windows -versiunea 3.12 (July 07 1995) @
Copyright Hewlett-Packard Corporation 1991-1995.
Acest program lucreaz cu obiecte predefinite sau create de ctre
utilizator, care sunt plasate n spaiul de lucru i care sunt interconectate pentru a
realiza o diagram-bloc executabil. Fiecare obiect permite vizualizarea sa n
dou moduri:
modul de vizualizare restrns (ca icon n Windows);
modul de vizualizare detaliat (detail view).
De asemenea, fiecare obiect este caracterizat de un meniu propriu, care
permite modificarea dimensiunii, poziiei, titlului, precum i altor atribute ale
acestuia.
Am fost creat un instrument virtual de monitorizare a temperaturii,
intitulat PROTERM. Acest intrument este, de fapt, un obiect creat de utilizator,
ce permite:
demararea procesului de analiz, prin acionarea butonul Run,
prezent pe panoul global al oricrei aplicaii HP VEE. La demararea
procesului de analiz, este deschis o fereastr din care poate fi selectat

286

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

fiierul de date folosit ca punct de plecare n cadrul reprezentrii grafice


a temperaturilor. Fiierele de date sunt de tip standard de date, cu
extensia .dat, coninnd pe cte doi octei eantioanele de pe un numr
de maxim opt canale;
selectarea mrimilor de intrare prin intermediul unor liste circulare ce
dispun de urmtoarele opiuni:
vizualizarea formei de variaie a dou temperaturi din cele maxim
opt posibile;
selectarea valorii iniiale a eantioanelor ce urmeaz a fi afiate, prin
intermediul unui comutator rotativ, denumit knob, n gama 020000
i cu o rezoluie de 256 puncte. Acest knob poart denumirea
sugestiv de From sample;
selectarea valorii finale a eantioanelor ce urmeaz a fi afiate, de
asemenea prin intermediul unui knob, gradat ntre 0 i 20000, cu o
rezoluie de 256 puncte. Acest knob poart de numirea sugestiv de
To sample;
vizualizarea simultan a doi parametri: form de semnal de
comand, form de semnal de rspuns al sistemului, cu ajutorul a
dou instrumente de tip osciloscop, care indic:

Fig. 8.6 Panoul frontal al instrumentului virtual PROTERM.

prin intermediul titlului, imaginile grafice ce se vizualizeaz la un


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

287

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

moment dat;
indicaii ale mrimilor corespunztoare fiecrei axe, cum ar fi:
numele mrimii (de exemplu: timp pentru axa Ox, respectiv
temperatur, pentru axa Oy), unitatea de msur a acesteia,
intervalul de vizualizare i gradarea axelor (uniti pe diviziune);
prin intermediul unui marker, se pot obine informaii, legate de
valoarea instantanee a semnalelor, n funcie de timp;
instrumentul de vizualizare prezint faciliti de autoscalare, fie
independent pe fiecare ax prin intermediul unor butoane dedicate
fiecrui instrument, fie simultan pe ambele axe prin intermediul
unui buton cu care este echipat instrumentul de vizualizare de tip
osciloscop;
afiarea, sub form numeric, a valorilor minime i maxime a
parametrilor, att pentru comand, ct i pentru rspuns, prin
intermediul a patru indicatoare alfanumerice.
Trebuie menionat c toate butoanele i knob-urile, prin intermediul
crora este controlat procesul de achiziie i analiz, prezint faciliti de
autoexecute, ceeea ce nseamn c acionarea oricruia dintre ele determin
declanarea unui nou proces de analiz.
n fig. 8.6 este reprezentat panoul frontal al instrumentului virtual
PROTERM.

8.3.1 IMPLEMENTAREA ANALIZORULUI PROTERM


Fig. 8.7 conine reprezentarea detaliat a blocurilor care compun
instrumentul virtual intitulat PROTERM i bazat pe platforma Windows HP
VEE 3.12.
Aceste blocuri funcionale sunt:
modulul de prelucrare primar a fiierului de date de intrare, primind
ca intrare un fiier cu extensia .dat. Acest bloc furnizeaz ca ieiri un
numr de maxim opt vectori coninnd eantioanele sub form
numeric a mrimilor de intrare;
circuitele de control ale dispozitivelor de afiare;
dispozitivele de afiare, de tip oscilograf;
blocul de afiare sub form digital a valorilor minime/maxime ale
semnalelor de intrare.
Toate aceste blocuri funcionale sunt nglobate ntr-un obiect utilizator
nou creat, avnd dou posibiliti de reprezentare:
reprezentarea detaliat - detail - (fig. 8.7), n care sunt puse n eviden
blocurile i interconexiunile funcionale;
reprezentarea de tip panou - panel -, care ilustreaz panoul propriu-zis
288

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

al analizorului, adic dispozitivul de afiare, reprezentat n fig. 8.6.

Fig. 8.7 Reprezentarea detaliat a analizorului PROTERM.

8.4 LISTINGUL APLICAIEI DE MSURARE I CONTROL


A TEMPERATURII
; ******************************************************************
; PROGRAM PENTRU ECHIPAMENTE DE MASURARE SI CONTROL A TEMPERATURII
; CU UNITATE CENTRALA DE PRELUCRARE LOCALA CU MICROCONTROLLER 80C552
;
IN LIMBAJ DE ASAMBLARE AL FAMILIEI 80X51
; ******************************************************************
ORG
8000H
; adresa de inceput a programului
; secventa de declarare a resurselor suplimentare ale
; microcontroller 80C552 utilizate in cadrul aplicatiei
ADCON equ
0C5H ; adresa registrului ADCON
ADCH equ
0C6H ; adresa registrului ADCH
PWMP equ
0FEH ; adresa registrului PWMP
PWM0 equ
0FCH ; adresa registrului PWM0
PWM1 equ
0FDH ; adresa registrului PWM1
; secventa de initializare echipamentului si de programare a
; parametrilor de functionare (introducerea valorii temperaturii
; programate).
LJMP INIT
; salt la eticheta INIT
INIT: ACALL INILCD
; apel rutina initializare LCD
ACALL CLRLCD
; apel rutina stergere LCD

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

289

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

290

MOV

DPTR,#TEXT

ACALL
MOV
ACALL
INC
ACALL
ACALL
ACALL
MOV

TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
SEC
CLRLCD
DPTR,#TEXT1

ACALL
MOV
ACALL
MOV
ACALL
MOV
ACALL
MOV
ACALL
INC
ACALL
MOV
ACALL
MOV
ACALL
MOV
ACALL
MOV

TRX1
R2,#1100B
WRCMD
R2,#8DH
WRCMD
R2,#0DFH
TRX
R2,#0C0H
WRCMD
DPTR
TRX1
R2,#1100B
WRCMD
R2,#0CDH
WRCMD
R2,#0DFH
TRX
A,#20

MOV
ACALL
MOV
ACALL
MOV
ACALL
MOV
MOV
CALL

PWMP,A
KEY
R2,#1110B
WRCMD
R2,#08BH
WRCMD
A,R1
R4,A
HEXASC

MOV
ACALL
ACALL
ACALL
MOV
MOV
CALL

R2,A
TRX
SEC
KEY
A,R1
R5,A
HEXASC

MOV
ACALL
MOV
SWAP
ORL
MOV

R2,A
TRX
A,R4
A
A,R5
R4,A

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

se memoreaza in DPTR adresa de inceput a sirului de caractere TEXT


apel rutina de transmisie mesaj
pozitionare pe a doua linie
scriere comanda pozitionare la LCD
incrementare DPTR (linia a doua)
apel rutina de transmisie mesaj
mentine starea afisajului 3 sec.
apel rutina stergere LCD
se memoreaza in DPTR adresa de inceput a sirului de caractere TEXT1
apel rutina de transmisie mesaj
display on, cursor off, flash off
scrie comanda la LCD
scrie in R2 pozitia cursorului
pozitionare cursor
codul caracterului grade
scrie codul caracterului la LCD
pozitionare pe a doua linie
scriere comanda pozitionare la LCD
incrementare DPTR (linia a doua)
apel rutina de transmisie mesaj
1,display on,cursor off, flash off
scrie comanda la LCD
scrie in R2 pozitia cursorului
pozitionare cursor
codul caracterului grade
scrie codul caracterului la LCD
incarca acumulatorul cu #20 pentru
frecventa semnalului de iesire sa
fie 1kHz=11,059MHz/(2*(1+20)*255)
se programeaza registrul PWMP
citire tastatura
display on, cursor off, flash off
scrie comanda la LCD
adresa scriere cod tasta
pozitionare cursor
codul hexa al tastei in acumulator
transfera acumulatorul in R4
conversie ASCII a codului tastei,
pentru afisare pe LCD
codul hexa al tastei in acumulator
scrie la LCD codul tastei
rutina intarziere
citire tastatura
codul hexa al tastei in acumulator
transfera acumulatorul in R5
conversie ASCII a codului tastei,
pentru afisare pe LCD
codul HEXA al tastei apasate in R2
scrie la LCD codul tastei
transfera in acc. registrul R4
interschimb biti acumulator
sau logic intre acumulator si R5
transfer acc. in R4 - va contine

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
; forma BCD a temperaturii prescrise
; secventa de masurare in bucla a celor 8 valori ale temperaturii,
; de la cele 8 traductoare de temperatura, calculul temperaturii din
; valorile binare citite de la convertorul A/D si stocarea in
; memorie a fiecarui rezultat incepand de la adresa B000H
ACH: MOV
DPTR,#0B000H; adresa de inceput a bufferului
CLR
A
; initializeaza acumulatorul cu 0
MOV
R1,#00H
; R1 initializat va memora canalul
; de intrare selectat
MOV
R5,#08H
; numarul maxim de canale de intrare
ACH11: MOV
A,R1
; selectarea canalului de intrare
ORL
A,#08H
; bitii de control
MOV
ADCON,A
; start conversie prin software
WAIT: MOV
A,ADCON
; A:=registrul de stare al A/D
JNB
ACC.4,WAIT
; asteapta terminarea conversiei
MOV
A,ADCH
; citeste rezultatul conversiei
MOV
B,#2
; B pentru impartire la 2
DIV
AB
; obtine cod binar temperatura
MOVX @DPTR,A
; salveaza in memorie temperatura
; citita de la traductorul "i"
INC
DPTR
; incrementeaza pointerul adresei
; din bufferul de memorie
INC
R1
; adresa canalului urmator
DJNZ R5,ACH11
; se decrementeaza registrul R5 si
; salt la conversia A/D pe canalul
; urmator daca R5 nu este nul
; secventa de calcul a mediei aritmetice a celor 8 valori ale tem; peraturii, in raport cu care se efectueaza reglarea temperaturii.
; calculul sumei celor 8 valori ale temperaturilor masurate
MOV
R5,#08H
; numarul maxim de valori de sumat
MOV
DPTR,#0B000H ; adresa de inceput a bufferului de
; memorie
MOV
R1,#00H
; initializarea octet inferior suma
MOV
R2,#00H
; initializarea octet superior suma
SUM: MOVX A,@DPTR
; citire in acc. valoare din buffer
ADD
A,R1
; adunare cu valoare anterioara
MOV
R1,A
; salvare suma partiala (octet inf.)
MOV
A,R2
; citire octet sup. suma partiala
ADDC A,#0
; eventual propagarea transportului
MOV
R2,A
; salvare octet superior rezultat
INC
DPTR
; incrementare adresa buffer memorie
DJNZ R5,SUM
; decrementare contor R5 si salt la
; calculul unei alte sume partiale
; daca contor nenul
; calculul valorii medii a temperaturii, prin impartirea sumei celor
; 8 valori ale temperaturilor la valoarea 8, ceea ce este echivalent
; cu shiftarea la dreapta cu 3 pozitii a rezultatului sumei obtinute
; anterior pe 2 octeti.
; rezultatul (valoarea medie a temperaturii) este continut in R1
MOV
R3,#03H
; R3 initializat cu nr de shifturi
SHIFTR:
MOV
A,R2
; citeste octet superior in A
CLR
C
; stergere CARRY
RRC
A
; rotire la dreapta prin CARRY
MOV
R2,A
; salvare octet superior
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

291

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII


MOV
RRC
MOV
DJNZ

; citire octet inferior


; rotire la dreapta prin CARRY
; salvare octet inferior
; decrementare contor si efectuarea
; unei noi rotatii pe 2 octeti daca
; continutul contorului este nenul
; secventa de transmisie seriala a valorii temperaturii medii
; masurate folosind interfata seriala de comunicatie a sistemului de
; masurare si control a temperaturii (1 bit de START, 8 biti de
; date, 1 bit STOP, fara semnale hardware de protocol, cu protocol
; software XON-XOFF)
MOV
A,R1
; citesc in acumulator valoarea
; temperaturii medii
MOV
SBUF,A
; pun aceasta valoare in reg. de
; transmisie pe seriala
CLR
TI
; reset bit TI (Transmit Interrupt)
WAIT1:JNB
TI,WAIT1
; se asteapta in bucla pozitionarea
; pe 1 a acestui bit (octet preluat)
CLR
TI
; initializare bit TI
; secventa de afisare locala pe LCD a valorii medii a temperaturii
; masurate (calcul cifrelor acesteia printr-un algoritm iterativ de
; impartire la 10, calcul valoare ASCII a cifrelor obtinute si
; afisare propriu-zisa) si codificarea sub forma a unui octet
; impachetat BCD a acestei valori medii, memorat in registru R5.
MOV
R2,#1100B
; 1,display on, cursor on, flash off
ACALL WRCMD
; scriere comanda
MOV
R2,#0CBH
; adresa pentru prima cifra
ACALL WRCMD
; pozitionare cursor
MOV
A,R1
; valoare binara temperatura medie
MOV
B,#10
; B pentru impartire la 10
DIV
AB
; in A cifra semnificativa a temp.
ANL
A,#00FH
; mascheaza bitii mai semnificativi
MOV
R6,A
; salveaza acumulatorul in R6
ACALL HEXASC
; convertire in cod ASCII
MOV
R2,A
; in R2 codul caracterului
ACALL TRX
; transmite caracter la LCD
MOV
A,B
; in A cifra mai putin semnificativa
; a temperaturii
ANL
A,#00FH
; mascheaza bitii mai semnificativi
MOV
R7,A
; salveaza acumulatorul in R7
ACALL HEXASC
; conversie in cod ASCII
MOV
R2,A
; R2 contine codul de afisat
ACALL TRX
; scrie la LCD a doua cifra
MOV
A,R6
; transfera acumulatorul cu R6
SWAP A
; interschimb biti acumulator
ORL
A,R7
; sau logic intre acumulator si R7
MOV
R5,A
; salveaza acc in R5-va contine
; forma BCD a temp. medii masurate
; secventa de reglare a temperaturii prin programarea celor doua
; iesiri modulate in durata (programarea factorilor de umplere cu o
; valoare proportionala cu diferenta intre valoarea programata si
; valoarea medie).
; doar una dintre iesiri va fi activa la un moment dat pentru
; controlul elementului de incalzire sau de racire.
MOV
A,R4
; citire in A a temp. programate
292

A,R1
A
A,R1
R3,SHIFTR

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
SUBB
JC

A,R5
LABEL1

; scadere cu temperatura medie


; daca rezultatul este negativ
; salt la eticheta LABEL1
CPL
A
; daca rezultatul este pozitiv, este
; complementat, pt. ca iesirea modu; lata in durata este complementata
MOV
PWM1,A
; programare iesire modulata
CLR
A
; initializare acumulator
CPL
A
; complementare acumulator
MOV
PWM0,A
; dezactivare iesire modulata
; pentru comanda element de racire
; pentru comanda elementului de incalzire
SJMP LABEL2
; salt neconditionat la LABEL2
LABEL1:
CLR
A
; initializare acumulator
CPL
A
; complementare acumulator
MOV
PWM1,A
; dezactivare iesire modulata
; pentru comanda element incalzire
MOV
A,R5
; citire in A a temperaturii medii
SUBB A,R5
; scadere cu temperatura programata
CPL
A
; rezultatul este complementat,
; pentru ca iesirea modulata
; este complementata
MOV
PWM0,A
; programare iesire modulata
; pentru comanda element de racire
LABEL2:
ACALL SEC
; rutina de intarziere
AJMP ACH
; reluare proces de achizitie
;
; secventa de subrutine scrise si utilizate in cadrul programului
; principal
;
; Rutina de citire a unei cifre zecimale de la o tastatura
; matriciala cu trei linii si patru coloane. Rezultatul citirii sub
; forma HEXA se afla in registrul R1.
;
KEY: MOV
A,#0E0H
; adresa primei linii de taste
ACALL PORT
; subrutina de scriere/citire port
JZ
NEXT
; daca acumulatorul este 0 (nu s-a
; tastat nimic) salt la eticheta NEXT
JNZ
COL
; daca acumulatorul este nenul, salt la
; eticheta COL
NEXT: MOV
A,#0D0H
; adresa liniei a doua de taste
ACALL PORT
; apel subrutina de scriere/citire port
JZ
NEXT1
; daca acumulatorul este zero, salt la
; eticheta NEXT1
JNZ
COL
; daca acumulatorul este nenul, salt la
; eticheta COL
NEXT1:
MOV
A,#0B0H
; adresa liniei a treia de taste
ACALL PORT
; apel subrutina de sriere/citire port
JZ
KEY
; daca acumulatorul este nul, proces
; ciclic de citire taste
JNZ
COL
; daca acumulatorul este nenul, salt la
; eticheta COL, pentru determinarea coSISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

293

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII

COL:

loanei pe care se afla tasta apasata


daca bitul 0 al acumulatorului este 1,
tasta se afla pe coloana 0 si salt la
eticheta COL0
daca bitul 1 al acumulatorului este 1,
tasta se afla pe coloana 1 si salt la
eticheta COL1
daca bitul 2 al acumulatorului este 1,
tasta se afla pe coloana 2 si salt la
eticheta COL2
daca bitul 3 al acumulatorului este 1,
tasta se afla pe coloana 3 si salt la
eticheta COL3
registrul R1 se incarca cu 0
se transfera in acumulator registrul R3
interschimb biti acumulator
mascare biti mai semnificativi
daca bitul 1 al acumulatorului este 1,
salt la eticheta LINIE1
daca bitul 2 al acumulatorului este 1,
salt la eticheta LINIE2
salt la eticheta PLAY
registrul R1 se incarca cu 1
se transfera in acumulator registrul R3
interschimb biti acumulator
mascare biti mai semnificativi
daca bitul 1 al acumulatorului este 1,
salt la eticheta LINIE1
daca bitul 2 al acumulatorului este 1,
salt la eticheta LINIE2
salt la eticheta PLAY
registrul R1 se incarca cu 2
se transfera in acumulator registrul R3
interschim biti acumulator
mascare biti mai semnificativi
daca bitul 1 al acumulatorului este 1,
salt la eticheta LINIE1
daca bitul 2 al acumulatorului este 1,
salt la eticheta LINIE2
salt la eticheta PLAY
registrul R1 se incarca cu 3
se transfera in acumulator registrul R3
interschimb biti acumulator
mascare biti mai semnificativi
daca bitul 1 al acumulatorului este 1,
salt la eticheta LINIE1
daca bitul 2 al acumulatorului este 1,
salt la eticheta LINIE2
salt la eticheta PLAY

A,#04H
A,R1
R1,A
PLAY

;
;
;
;

acumulatorul se incarca cu 4
aduna acumulatorul cu R1
se transfera acumulatorul in R1
salt la eticheta PLAY

ACC.0,COL0

JB

ACC.1,COL1

JB

ACC.2,COL2

JB

ACC.3,COL3

COL0: MOV
MOV
SWAP
ANL
JB
JB
SJMP
COL1: MOV
MOV
SWAP
ANL
JB
JB
SJMP
COL2: MOV
MOV
SWAP
ANL
JB
JB
SJMP
COL3: MOV
MOV
SWAP
ANL
JB
JB
SJMP
LINIE1:
MOV
ADD
MOV
SJMP
LINIE2:
294

PLAY

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

JB

R1,#00H
A,R3
A
A,#00001111B
ACC.1,LINIE1
ACC.2,LINIE2
PLAY
R1,#01H
A,R3
A
A,#00001111B
ACC.1,LINIE
ACC.2,LINIE2
PLAY
R1,#02H
A,R3
A
A,#00001111B
ACC.1,LINIE1
ACC.2,LINIE2
PLAY
R1,#03H
A,R3
A
A,#00001111B
ACC.1,LINIE1
ACC.2,LINIE2

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
A,#08H
; acumulatorul se incarca cu 8
ADD
A,R1
; aduna acumulatorul cu R1
MOV
R1,A
; se transfera acumulatorul in R1
SJMP PLAY
; salt la eticheta PLAY
PLAY: RET
; revenire din subrutina
;
; Rutina de scriere la un port de iesire si de citire de la un port
; de intrare. Informatiile sunt vehiculate prin intermediul
; acumulatorului.
;
PORT: MOV
P2,#1
; selecteaza decodificatorul (A8=1)
MOV
R0,#20H
; incarca R0 cu 0010 0000 B:
; selectie port de iesire 1 (S1=0)
MOVX @R0,A
; muta continutul acumulatorului
; la portul de iesire 1 (AX0=0)
MOV
P2,#1
; selecteaza decodificatorul (A8=1)
MOV
R0,#60H
; incarca R0 cu 0110 0000B:
; selecteaza portul de intrare
MOVX A,@R0
; citeste in acumulator valorea gasita
; la adresa specificata anterior
CPL
A
; complementeaza acumulatorul
MOV
R3,A
; salveaza valoarea in registrul R3
ANL
A,#0FH
; mascheaza bitii mai semnificativi
; ai acumulatorului (codul liniei)
RET
; revenire din subrutina
;
; Rutina de scriere sir de caractere la afisajul cu cristale lichide
; LCD.
;
TRX1: CLR
A
; initializeaza acumulatorul cu 0
MOVC A,@A+DPTR
; muta in acumulator adresa gasita
; la adresa @A+DPTR
CJNE A,#24H,TRCAR1; compara continutul acumulatorului
; cu #24H (codul hexa al caracterului
; $ - sfarsit de mesaj) si daca este
; diferit se efectueaza salt la eticheta
; TRCAR1
RET
; revenire din subrutina
TRCAR1:
MOV
R2,A
; muta continutul acumulatorului in
; registrul R2
ACALL WRDAT
; apel subrutina de scriere date in
; registrele afisajului LCD
INC
DPTR
; adresa urmatorului caracter de scris
SJMP TRX1
; small jump la eticheta TRX1, pentru
; a scrie urmatorul caracter
;
; Rutina de intarziere cu 0.5 secunde:
; 0.5sec = (7instr.NOP x 12perioade ceas/NOP x 256 x 256)/11,059MHz.
;
SEC: MOV
R6,#255
; se incarca registrul R6 cu #255
LOOP1: MOV
R7,#255
; se incarca registrul R7 cu #255
LOOP: NOP
; 7 instructiuni NOP
NOP
NOP
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

295

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII


NOP
NOP
NOP
NOP
DJNZ

R7,LOOP

DJNZ

R6,LOOP1

RET

;
;
;
;
;

se decrementeaza registrul R7 si
daca este nenul, salt la LOOP
se decrementeaza registrul R6 si
daca este nenul, salt la LOOP1
revenire din subrutina

;
TEXT: DB 'PROGRAMARE TEMP:$'
; text prezentare 1, linia 1
DB '(TEMP.: 0 .. 99)$'
; text prezentare 1, linia 2
TEXT1: DB 'TEMP. REF: 00 C $'
; text prezentare 2, linia 1
DB 'TEMP. MAS: 00 C $'
; text prezentare 2, linia 2
;
; Rutina de conversie hexa-ascii. Sursa si destinatia sunt
; constituite de acumulator.
;
HEXASC:
ANL
A,#0FH
; se mascheaza cei patru biti mai
; semnificativi ai acumulatorului
JNB
ACC.3,NOADJ ; daca bitul 3 = 0 salt la NOADJ
JB
ACC.2,ADJ
; daca bitul 2 = 1 salt la ADJ
JNB
ACC.1,NOADJ ; daca bitul 1 = 0 salt la NOADJ
ADJ: ADD
A,#07H
; aduna acumulatorul cu #07H
NOADJ: ADD
A,#30H
; aduna acumulatorul cu #30H
RET
; revenire din subrutina
;
; Rutina de transmisie la LCD a unui caracter ASCII continut in
; registrul R2.
;
TRX: CLR
A
; se initializeaza acumulatorul cu 0
MOV
A,R2
; se transfera continutul registrului
; R2 in acumulator
LJMP TRCAR
; long jump la eticheta TRCAR
LL7: RET
; revenire din subrutina
TRCAR: MOV
R2,A
; se restaureaza in R2 continutul Acc.
ACALL WRDAT
; se scriu datele in driverele LCD
SJMP LL7
; short jump la eticheta LL7
;
; Rutina de initializare LCD. Aceasta rutina trimite la LCD comanda
; #38H = 0011 1000B. Conform datelor de catalog, acesta comanda
; seteaza urmatorii parametri ai afisajului:
;
- bitul 5 - defineste aceasta comanda (function set);
;
- bitul 4(DL-Data Length)=1 seteaza dialogul pe 8 biti
;
intre procesor si LCD;
;
- bitul 3(N-Number of display lines)=1 seteaza numarul
;
liniilor afisajului ca fiind 2^N=2;
;
- bitul 2(F-Character Font)=0 seteaza forma caracterului
;
ca fiind 5*7 puncte.
;
INILCD:
MOV
R2,#38H
; incarca R2 cu cuvantul de comanda
; pregatind dialogul pe 8 biti cu
; driverele de afisaj
296

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
ACALL

WRCMD

MOV

R4,#50

DEL4MS:
ACALL
DJNZ

DELAY
R4,DEL4MS

MOV
LINI: ACALL
ACALL
DJNZ

R4,#4
WRCMD
DELAY
R4,LINI

ACALL
MOV
ACALL
ACALL
MOV
ACALL
ACALL
MOV
ACALL
ACALL
RET

WLCD
R2,#6
WRCMD
WLCD
R2,#0EH
WRCMD
WLCD
R2,#1
WRCMD
WLCD

;
;
;
;

transmite comanda anterioara la


port, efectuand programarea LCD
se incarca registrul R4 cu valoarea
imediata 50

;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;
;

apel subrutina DELAY


se decrementeaza registrul R4 si
salt la eticheta DEL4MS daca continutul acestuia este nenul
se incarca R4 cu valoarea imediata 4
se scrie comanda la driverele LCD
apel subrutina DELAY
se decrementeaza registrul R4 si salt
la eticheta LINI daca este nenul continutul acestui registru
testarea starii driverelor LCD
seteaza modul de lucru "entry"
transmite comanda la LCD
testarea starii driverelor LCD
seteaza modul "display on"
transmite comanda la LCD
testarea starii driverelor LCD
seteaza modul "clear LCD"
transmite comanda la LCD
testarea starii driverelor LCD
revenire din subrutina

;
; Subrutina de stergere a afisajului cu cristale lichide si setare a
; modului de lucru.
;
CLRLCD:
MOV
R2,#1
; stergere afisaj LCD
ACALL WRCMD
; transmite comanda la LCD
MOV
R2,#1100B
; display on, cursor off, flash off
ACALL WRCMD
; transmite comanda la LCD
RET
; revenire din rutina de CLRLCD
;
; Rutina ce testeaza daca este sau nu posibila transmiterea unui nou
; caracter catre LCD, pe baza informatiilor furnizate de rutina
; RDCMD. Se testeaza bitul 7 (BF - Busy Flag) al registrului de
; stare al LCD. Daca BF=1, inseamna ca LCD efectueaza o operatie
; interna si, deci, nu poate accepta un nou caracter.
;
WLCD: ACALL RDCMD
; apel rutina RDCMD
JB
ACC.7,WLCD
; se verifica daca BF=1 si asteapta
; trecerea lui in 0 (terminarea ope; ratiunilor interne)
RET
; revenire din subrutina
;
; Subrutina RDCMD selecteaza afisajul si citeste din registru de
; stare starea curenta a driverelor acestuia, informatie care este
; depusa in acumulator.
;
RDCMD:
MOV
P2,#1
; selectie port (S0=1)
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

297

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII


MOV

R0,#2

MOVX

A,@R0

;
;
;
;
;
;
;

se realizeaza pe magistrala de adrese


selectia cu A0 si A1 (0000 0010 B),
pentru a se citi starea driverelor de
afisaj
se transfera in acumulator valoarea
gasita la adresa specificata anterior
revenire din subrutina

RET
;
; Rutina WRCMD scrie o comanda la driverele de afisaj, in urma
; verificarii starii acestora. Se selecteaza afisajul LCD si comanda
; continuta de registrul R2 este transferata driverelor din LCD.
;
WRCMD:
ACALL WLCD
; se verifica starea driverelor (BF=0)
MOV
A,R2
; comanda continuta in registrul R2 e
; transferata in acumulator
MOV
P2,#1
; se selecteaza portul LCD (S0=1)
MOV
R0,#0
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0000 B,
; corespunzatoare scrierii unei comenzi
; la driverele afisajului LCD
MOVX @R0,A
; se scrie in driverele afisajului LCD
; (la adresa stabilita anterior) comanda
RET
; revenire din subrutina
;
; Subrutina WRDAT este identica cu WRCMD dar este utilizata pentru
; scrierea la driverele LCD codul caracterelor ce urmeaza a fi
; afisate.
;
WRDAT:
ACALL WLCD
; testarea starii driverelor LCD
MOV
P2,#1
; se selecteaza portul LCD (S0=1)
MOV
R0,#1
; se selecteaza pe magistrala de adrese
; cu A0 si A1 combinatia 0000 0001 B,
; corespunzatoare scrierii unui caracter
; la driverele afisajului LCD
MOV
A,R2
; se transfera caracterul in acumulator
MOVX @R0,A
; se transmite caracterul driverelor LCD
RET
; revenire din subrutina
;
; Subrutina DELAY realizeaza o intarziere cu 80 microsecunde.
;
DELAY:
MOV
R3,#17
; registrul R3 este incarcat cu valoarea
; imediata 17
; 80E-6secunde = 17 * 2instructiuni NOP *
; * 12 perioade de ceas/instructiune NOP*
; 1/11.059MHz (perioada ceas procesor)
LL1: NOP
; no operation
NOP
; no operation
DJNZ R3,LL1
; decrementare registrul R3, se compa; ra continutul sau cu 0. Daca rezultatul
; compararii este 1, salt la eticheta LL1
RET
; revenire din subrutina
END

298

; sfarsitul programului

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

9. IMPLEMENTAREA HARDWARE-SOFTWARE A
UNUI INSTRUMENT DE VIZUALIZARE A
SEMNALELOR (EASY SCOPE)
n cadrul acestui capitol se va prezenta structura hardware i software a
unui osciloscop digital cu dou canale de intrare, a crui arhitectur este
organizat n jurul unui microcontroller PIC16C71 funcionnd cu o frecven a
ceasului de 20MHz. n esen, este utilizat seciunea de conversie analogdigital implementat n cadrul familiei de circuite PIC16Cxx, completat cu o
schem original, simpl dar eficient de prelucrare analogic a semnalelor,
pentru a se realiza compatibilizarea cu circuitele de intrare uzuale ale
osciloscoapelor analogice i digitale (impedan de intrare cu valoarea de 1M,
trepte de atenuare de 1:1, 1:2, 1:5, 1:10).

9.1 DESCRIEREA FUNCIONAL A OSCILOSCOPULUI


DIGITAL EASY SCOPE
Orice pasionat al electronicii, tehnician sau inginer, i-ar dori s aib
propriul osciloscop. ns n cele mai multe situaii este dificil justificarea
costului ridicat al unui asemenea echipament de msurare. Este mult mai
probabil ca fiecare dintre aceti specialiti s posede un calculator compatibil
PC. Osciloscopul digital Easy Scope transform calculatorul ntr-un osciloscop
digital cu memorie, cu dou canale. Ca i un osciloscop analogic, un osciloscop
digital cu memorie permite vizualizarea semnalelor electric pe ecran. ns, spre
deosebire de un osciloscop analogic, acesta convertete semnalele de intrare n
form digital prin eantionarea intrrilor utiliznd un convertor analog-digital.
Acest procedeu confer osciloscopului digital cu memorare avantaje comparativ
cu unul analogic, ca de exemplu:
capacitatea de a vizualiza un singur eantion al semnalului analogic de
intrare;
capacitatea de a afia forma de semnal att dinaintea ct i dup un
semnal de trigger;
capacitatea de a salva datele pentru vizualizarea lor ulterioar sau
pentru prelucarerea acestora;
Bineneles c cei care prefer utilizarea osciloscoapelor analogice vor
sublinia faptul c variantele digitale nu permit vizualizarea variaiilor semnalelor
de intrare ntre dou operaii succesive de eantionare ale acestora. Acest aspect
poate constitui un dezavantaj n anumite situaii deosebite.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

299

300

GND

100k

RA7

100k

100k
RA6

GND

7
8
9
10

1
2
3
4
5

11

SWITCH

7
8
9
10

1
2
3
4

SW1

11GND

U1B
TL084

U1C
TL084

1k5

R7

1k5

R13

Vin

+9Vcc

1k

R6A

1k

11

620

R6B

U1A
TL084
-9Vcc

620

R12B

U1D
TL084

GND

C4
22uF

R12A

13

12

200k
RA5

100k
RA4

200k
RA3

200k
RA2

10

R1B
1k1

GND
R1A
1k1

DN G

RA1

GND

R2A
1k1

-5V

14

1k

R8

1k

R14

C1
22uF

+9Vcc
Vin

U3
LM7805CT
+5V

GND

GND

D1
DZ5V1

GND

D2
DZ5V1

100k

RB7

100k

R2B
1k1

R3
1K

C5
100nF

100k
RB6

200k
RB5

100k
RB4

C6
22uF

-9Vcc

4
3
2
1

200k
RB3

200k
RB2

RB1

U4
LM7905CT

DN G

Sg.A

GND

Sg.B

JP1
4 HEADER

3
C2
100nF

1
2
3
4
5
6
7
8
9

16C71

RA2
RA3
RA4
MCLR
Vss
RB0
RB1
RB2
RB3

U2

GND

C10
15pF

C3
22uF

LED

LED1

20MHz

XTAL

470

17 C61

RA1
RA0
OSC1
OSC2
Vdd
RB7
RB6
RB5
RB4

GND

18
17
16
15
14
13
12
11
10

C11
15pF
GND

RLED

GND

1
14
2
15
3
16
4
17
5
18
6
19
7
20
8
21
9
22
10
23
11
24
12
25
13

LPT

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Fig. 9.1 Schema electric a osciloscopului Easy Scope.

Osciloscopul Easy Scope este un osciloscop digital cu memorie (Digital

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Storage Oscilloscope - DSO), interfaabil cu calculatoare personale compatibile


IBM PC, de pre redus i caracterizat de urmtoarele caracteristici principale:
cuplarea (interfaarea) pe portul paralel al calculatorului are avantajul
de a nu solicita un conector (slot) de magistral;
este portabil, de dimensiuni reduse, funcioneaz alimentat de la baterii
i are un consum redus. n combinaie cu un laptop, acest instrument
devine un adevrat echipament de test;
rata de eantionare maxim este de aproximativ 50KHz, depinznd de
frecvena de lucru a calculatorului;
dispune de caracteristici DVM (Digital VoltMeter) pentru efectuarea
de msurtori statice de tensiuni;
dispune de 3 game de sensibilitate pentru intrri: 2,4V, 6,0V i
12V, utiliznd o sond de osciloscop 1;
poate fi utilizat o sond de osciloscop 10 pentru a se obine trei
game suplimentare de intrare (24V, 60V i 120V);
software pentru PC uor de utilizat;
faciliti de adaptare a circuitului pentru aplicaii atipice.
Cum se poate s se nglobeze att de multe faciliti ntr-o construcie att
de compact?
Circuitul conine dou seciuni analogice i o seciune digital. ntrega
schem se bazeaz pe un microcontroller PIC16C71. Acesta prezint avantaje
substaniale n comparaie cu controller-ele din seria PIC16C5x, utilizate
frecvent n multe aplicaii. n plus fa de circuitele PIC uzuale, 16C71
nglobeaz un convertor analog-digital (A/D).
Convertorul A/D implementat n cadrul microcontroller-ului PIC16C71
funcioneaz n gama 0 ... +5V. Pentru a utiliza convertorul analog-digital pentru
mai multe game de tensiuni de intrare, inclusiv pentru tensiuni de intrare
negative, este necesar utilizarea unei seciuni de condiionare a semnalelor
nainte de aplicarea acestora la intrrile convertorului analog-digital.
Osciloscopul digital Easy Scope dispune de dou canale ce necesit
condiionarea semnalelor de intrare nainte de aplicarea la intrrile circuitului de
conversie. Circuitul de condiionare a semnalului pentru canalul A este
implementat cu un circuit TL084 (amplificator operaional cuadruplu), un
comutor rotativ cu dou seciuni de cte 4 contacte i o serie de rezistene. n
primul rnd, semnalul este aplicat unui divizor rezistiv compus dintr-o grupare
serie de rezistene, cu rezistena total de 1M. Semnalul este preluat dintr-unul
dintre cele trei puncte ale divizorului rezistiv (corespunznd atenurilor de 1:2,
1:5 sau 1:10 fa de semnalul de intare) prin intermediul comutatorului SW1.
Semnalul atenuat este aplicat pe intrarea neinversoare a unui amplificator
sumator-substractor realizat cu U1. Amplificarea acestuia este egal cu
(R6/R7)+1. O tensiune de offset de 2,5V este suprapus peste semnalul util.
Aceast tensiune de offset este obinut prin intermediul unui divizor rezistiv
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

301

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

ajustabil (R1, R2 i semireglabilul multitur R3), cruia ie se aplic tensiunea


stabilizat de 5V furnizat de un stabilizator integrat de tensiune de tip
LM7905. Tensiunea de referin obinut pe cursorul semireglabilului trebuie s
fie egal cu 2,3V i poate fi ajustat fin prin reglarea lui R3. Aceast tensiune
de referin este buffer-at, utiliznd un al doilea amplificator operaional n
configuraie de repetor de tensiune, i este aplicat intrrii inversoare a
amplificatorului sumator-substractor. Aplicnd o tensiune de 0V la intrarea
canalului A, ieirea amplificatorului sumator-substractor trebuie s fie de 2,5V.
Dac la intarea canalului A se aplic o tensiune negativ, ieirea circuitului este
mai mic dect 2,5V iar aplicarea unui semnal de polaritate pozitiv la intrarea
canalului A determin ca tensiunea de la ieirea circuitului s fie superioar
valorii de 2,5V. Ieirea amplificatorului sumator-substractor este aplicat intrrii
analogice RA0 a microcontroller-ului PIC16C71 prin intermediul unei
rezistene, R8. Dioda Zener D1 asigur protecia la supratensiune a intrrii
convertorului A/D, limitnd excursia de semnal la intervalul 0,6V...+5,1V.
Cea de-a doua seciune a comutatorului SW1 acioneaz asupra biilor
portului B (RB4 i RB5) astfel:
RB4
1
0
1

RB5
1
1
0

Atenuare
1:2 (gama 2,4V)
1:5 (gama 6,0V)
1:10 (gama 12V)

Aa cum se poate observa din analiza schemei electrice a osciloscopului


Easy Scope, circuitul de condiionare a semnalului pentru canalul B este identic
cu cel implementat pentru canalul A, cu excepia faptului c pentru acest canal
s-a ales gama fix de tensiuni de intrare 12V. n variantele ulterioare se pot
prevedea faciliti de selecia a gamelor de tensiuni de intrare la fel ca pentru
canalul A, utiliznd un comutator SW1 cu 3 seciuni.
Convertorul A/D din cadrul microcontroller-ului PIC16C71 este setat s
efectueze conversii ale semnalelor analogice aplicate intrrilor RA0 i RA1,
furniznd rezultatele sub form binar (0...255). Intreruperea de la timer-ul
intern din structura circuitului PIC16C71 este utilizat pentru generarea unei
baze de timp stabile n vederea eantionrii. La apariia nteruperii generate de
timer se citete coninutul registrului ADRES, valoarea citit este memorat i se
declaneaz o nou conversie A/D. Dac rata de eantionare este setat la
10KHz, atunci trebuie efectuat o conversie A/D la fiecare 100 s. Intreruperea
de timer trebuie setat n acest situaie la fiecare 100 s. ntre dou ntreruperi
succesive datele sunt transferate la PC prin intermediul portului paralel.
Transferul se efectueaz paralel pe 4 bii i utilizeaz protocolul handshake
REQ*/ACK*.
Interfaa cu portul paralel al calculatorului (PC) include n total 10
semnale; 5 dintre ele sunt furnizate de ctre PC (intrri n microcontroller-ul
302

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

16C71) iar 5 sunt furnizate de PIC16C71 (intrrile n PC). Semnalele de


interfa sunt prezentate, de asemenea, n cadrul schemei electrice a
osciloscopului digital Easy Scope. Unul dintre semnalele furnizate de ctre PC
controleaz intrarea de reset a controller-ului PIC (MCLR*); aceasta permite
calculatorului s iniializeze funcionarea microcontroller-ului la orice moment
de timp. Trei dintre semnalele de la PC sunt dedicate pentru controlul modului
(MODE control). La aplicarea unui semnal de reset, controller-ul PIC citete
semnalele MODE pentru a determina modul de funcionare. Modurile de lucru
include: funcionarea ca osciloscop, funcionarea ca voltmetru pe canalul 0,
funcionarea ca voltmetru pe canalul 1 i stare/ncrcare constante de timp i
bascularea ieirilor (modul debug). Patru dintre pinii controller-ului PIC sunt
configurai ca pini de date. Celelalte dou semnale rmase reprezint semnalele
de protocol de tip handshake (request i acknowledge) utilizate pentru
transferurile de date. Transferul celor dou grupe de cte 4 bii demareaz prin
activarea semnalului REQ* de ctre PC. Simbolul * indic faptul c semnalul
este activ pe 0 logic. Aceasta nseamn c semnalul REQ* devine 0 logic.
Atunci cnd controller-ul PIC transfer datele pe pinii corespunztori, el
activeaz semnalul ACK*. Activarea semnalului ACK* indic calculatorului c
datele sunt disponibile. Dup ce PC-ul citete datele, dezactiveaz semnalul
REQ* (nivel logic 1), pentru a indica faptul c datele au fost citite. n urma
identificrii acestei situaii, controller-ul PIC dezactiveaz semnalul ACK*.
Urmtorul cadru de 4 bii este transferat n mod similar, cu excepia faptului c
semnalul MODE A este setat la 0 pe durata transferului.

9.2 PREZENTAREA CIRCUITULUI PIC16C71 (MICROCHIP)


Caracteristicile principale ale familiei de microcontroller-e PIC16C71X
sunt:
arhitectur CPU de tip RISC de nalt performan;
set simplu i eficient de instruciuni (35 instruciuni pe un cuvnt);
toate intruciunile dureaz un singur ciclu, cu excepia celor de salt n
program care dureaz dou cicluri;
frecvena maxim a cesului de sistem 20 MHz, durata unui ciclu
instruciune minim 200 ns;
memorie de program - Program memory - de maxim 2k x 14 cuvinte,
maxim 128 x 8 octei de memorie de date - Data Memory (RAM);
faciliti de ntreruperi;
stiv hardware organizat pe maximum 8 nivele;
capabiliti de adresare direct, indirect i relativ;
Power-on Reset (POR);
Power-up Timer (PWRT) i Oscillator Start-up Timer (OST);
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

303

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Watchdog Timer (WDT) cu oscilator RC propriu implementat pe chip


pentru funcionare sigur;
protecie software a codului;
implementarea modului de economie de energie (power saving) SLEEP mode;
opiuni de selectare a oscilatorului;
memorie EPROM n tehnologie HighSpeed-CMOS cu putere
consumat redus;
implementare complet static;
gam larg a tensiunilor de alimentare: de la 2,5V la 6,0V;
capabilitate mare a curenilor debitai de pini: 25 mA
gam de temperaturi de funcionare: comercial, industrial i extins;
circuit de verificare a paritii memoriei de program cu Parity Error
Reset (PER) (doar la PIC16C715);
putere total consumat redus:
< 2 mA @ 5V, 4 MHz;
15 mA tipic @ 3V, 32 kHz;
< 1 mA tipic curent de alimentare n stand-by;
organizare sub forma a 13 pini de intrare/ieire controlai individual.

9.2.1 DESCRIERE GENERAL A PIC16C71


Familia de microcontroller-e PIC16C71X este caracterizat de costuri
sczute, nalt performan, implementare n tehnologie CMOS static,
reprezentnd o familie de microcontroller-e de 8 bii ce integreaz n cadrul
structurii un convertor analog-digital (A/D) i situat n cadrul familiei
PIC16CXX. Toate microcontroller-ele PIC16/17 utilizeaz o arhitectur
avansat de tip RISC. Familia de microcontroller-e PIC16CXX prezint
caracteristici performante ale nucleului de baz, stiv cu adncime de 8 nivele i
mai multe surse de ntreruperi interne i externe.
Separarea seciunilor de intruciuni i de date ale arhitecturii Harvard
permite lungimea de 14 bii a formatului instruciunilor i separat cuvinte de
date cu lungimea de 8 bii. Execuia de tip pipeline (pe dou nivele) a
instruciunilor asigur executarea acestora ntr-un singur ciclu, cu excepia
acelora de ramificare a programului, acestea din urm necesitnd pentru
execuie dou cicluri. Utilizatorului i este disponibil un set redus, dar eficient,
coninnd 35 de nstruciuni. n plus, setul complex de registre interne permite
obinerea unor performane deosebite prin utilizarea inovaiilor arhitecturale.
Microcontroller-ele PIC16CXX asigur n medie o compresie a codului
de 2 ori i o cretere a vitezei de 4 ori n comparaie cu alte microcontroller-e de
304

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

8 bii din aceeai clas.


Dispozitivele PIC16C710/71 dispun de 36 octei de memorie RAM (Data
Memory), PIC16C711 dispune de 68 octei de memorie RAM iar PIC16C715
are 128 octei de memorie RAM. Fiecare reprezentant al familiei dispune de 13
pini de intrare/ieire (I/O). n plus este disponibil un circuit timer/counter. De
asemenea, n cadrul structurii este implementat un convertor analog-digital
rapid, cu rezoluie de 8 bii i dispunnd de 4 canale analogice de intrare
multiplexate. Rezoluia de 8 bii este ideal pentru aplicaii necesitnd
interfaare analogic de cost redus, cum ar fi comanda termostatelor, msurarea
presiunii, etc.
Familia de microcontroller-e PIC16C71X prezint caracteristici speciale
menite s reduc la maxim numrul de componente externe, reducnd astfel
costurile, determinnd creterea fiabilitii i reducerea puterii consumate.
Sunt disponibile patru opiuni de oscilator, dintre care oscilatorul RC
asigur a soluie foarte economic din punct de vedere cost, oscilatorul LP
minimizeaz puterea consumat, oscilatorul XT reprezint un cristal standard de
cuar, iar oscilatorul HS este destinat pentru cristale High Speed. Caracteristica
SLEEP (power-down) asigur modul de economisire a puterii consumate.
Utilizatorul poate scoate circuitul din modul SLEEP n mai multe moduri,
utiliznd ntreruperi externe i interne, precum i semnale de reset.
Un circuit fiabil i cu funcionare sigur de tip Watchdog Timer pilotat de
propriul su oscilator RC implementat pe chip asigur protecia eficient
mpotriv blocrilor software.
Capsulele CERDIP cu fereastr de cuar pentru tergere cu ultaviolete
(UV) a memoriei de program (UVEPROM) sunt recomandate pentru
dezvoltarea de aplicaii, pe cnd variantele OTP (One-Time-Programmable),
sensibil mai ieftine sunt eficiente pentru producia la orice nivel.
Familia PIC16C71X este eficient din punct de vedere hardware-software
pentru aplicaii diverse, de la aplicaii gen sisteme de securitate i senzori
inteligeni comandai de la distan, pn la sisteme de control n locuine i n
industria auto. Utilizarea tehnologiei EPROM pentru memoria de program
permite adaptarea facil i rapid a programelor de aplicaii (coduri de
transmisie, controlul turaiei motoarelor, receptoare de frecven, etc.).
Varietatea amprentelor componentelor permite utilizarea acestor microcontroller-e n cadrul aplicaiilor ce impun limitri din punct de vedere a spaiului
ocupat. Preul redus, puterea consumat redus, performanele ridicate, uurina
utilizrii i flexibilitatea mare a liniilor de intrare/ieire (I/O) determin ca
familia PIC16C71X s fie deosebit de atractiv i versatil chiar n domenii n
care nu s-a avut n vedere pn acum utilizarea microcontroller-elor (cum ar fi
implementarea unor funcii de timer, comunicaia serial, captarea i
compararea, funcii PWM (Power Width Modulation) i aplicaii de tip
coprocesor matematic).
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

305

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

9.2.2 PREZENTARE ARCHITECTURAL


Performanele deosebite din punct de vedere a eficienei calculelor i a
versatilitii ale familiei de microcontroller-e PIC16CXX se datoreaz n
principal unui numr de caracterisitici arhitecturale tipice pentru
microprocesoarele de tip RISC. n primul rnd, familia de circuite PIC16CXX
utilizeaz o arhitectur Harvard, n cadrul creia instruciunile i datele sunt
accesate din memorii dedicate distincte utiliznd magistrale distincte. Aceasta
mbuntete lrgimea de band comparativ cu arhitectura tradiional von
Neumann, n cadrul creia instruciunile i datele sunt manipulate pe aceeai
magistral din cadrul unei memorii comune. Separarea magistralelor de
instruciuni (program) i de date permit dimensiuni (lungimi) diferite ale
instruciunilor i datelor. Codul operaiei are o lungime de 14 bii permind ca
toate instruciunile s fie codificate ntr-un singur cuvnt. Ciclul de fetch (citire
a instruciunii) aduce codul instruciunii (cu lungimea de 14 bii) pe magistrala
dedicat din memoria de program ntr-un singur ciclu. O structur pipeline pe
dou nivele suprapune fazele de citire i execuie a instruciunilor. Ca urmare,
toate instruciunile (35) sunt executate ntr-un singur ciclu (200 ns @ 20 MHz),
cu excepia instruciunilor de ramificare n program.
n tabelul urmtor se prezint memoria de program (EPROM) i memoria
de date (RAM) pentru fiecare reprezentant al familiei de microcontroller-e
PIC16C71X.
Reprezentant

PIC16C710
PIC16C71
PIC16C711
PIC16C715

Capacitate memorie Capacitate memorie


de program
de date
512 x 14
36x8
1K x 14
36x8
1K x 14
68x8
2K x 14
128x8

Circuitele din familia PIC16CXX pot adresa direct sau indirect registrele
interne sau memoria de date. Toate registrele de funcii speciale, inclusiv
contorul programului (Program Counter) sunt mapate n memoria de date.
Familia PIC16CXX dispune de un set de instruciuni ortogonal (simetric), ceea
ce face posibil execuia oricrei instruciuni cu oricare registru, utiliznd
oricare dintre modurile de adresare. Aceast caracteristic de simetrie i lipsa
situaiilor speciale de optimizare fac ca programarea pentru PIC16CXX s fie
simpl, dar cu toate acestea eficient. n plus, curba de nvare se reduce
semnificativ.
Circuitele din familia PIC16CXX conin o unitate aritmetico-logic
(ALU) i un registru de lucru de 8 bii. ALU este o unitate aritmetic de uz
general. Execut funcii aritmetice i logice ntre datele coninute n registrul de
306

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

lucru i oricare alt registru. ALU lucreaz cu operanzi pe 8 bii i permite


adunarea, scderea, shift-area i operaii logice. Cu excepia unor meniuni
speciale, operaiile aritmetice se execut n complement fa de 2. n cadrul
instruciunilor cu 2 operanzi, tipic unul dintre operanzi este registrul de lucru
(registrul W). Cellalt operand este un alt registru de date sau o valoare
imediat. n cadrul instruciunilor cu un singur operand, acesta este constituit fie
de registrul de lucru (W) sau de un registru de date.
Registrul W este un registru de lucru de 8 bii utilizat pentru operaiile n
cadrul ALU. Nu este un registru adresabil.
n funcie de instruciunea executat, unitatea aritmetico-logic poate
afecta valorile indicatorilor Carry (C), Digit Carry (DC) i Zero (Z) din cadrul
registrului STATUS. Indicatorii C i DC au semnificia unor bii de borrow i
digit borrow, respectiv n cadrul operaiilor de scdere.

Fig. 9.2 Arhitecura microcontroller-ului PIC16C71.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

307

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

9.2.2.1 CEASUL DE SISTEM / CICLUL INSTRUCIUNE


Intrarea de ceas (OSC1) este intern divizat cu patru pentru a genera patru
semnale de ceas n cuadratur i fr suprapunere, Q1, Q2, Q3 i Q4. Intern,
contorul programului (PC) este incrementat la fiecare perioad Q1, codul
instruciunii este citit din memoria de program i este memorat n registrul de
instruciuni n Q4. Instruciunea este decodificat i executat n urmtoarele
perioade Q1 pn la Q4. Diagramele temporale ale semnalelor de ceas i fluxul
de execuie al instruciunii sunt ilustrate n fig. 9.3.

Fig. 9.3 Ceasul de sistem, ciclul instruciune

9.2.2.2 FLUXUL DE EXECUIE AL INSTRUCIUNII /


PIPELINE-ING
Un ciclu instruciune conine patru cicli de ceas Q (Q1, Q2, Q3 i Q4).
Citirea din cadrul memoriei de program i execuia codului instruciuniifolosesc
tehnica pipeline, astfel nct ciclul de fetch dureaz un ciclu instruciune iar
decodificarea i executarea dureaz un alt ciclu instruciune. Cu toate acestea,
datorit tehnicii pipeline, fiecare instruciune este executat efectiv n cadrul
unui singur ciclu. Dac instruciunea curent determin modificarea coninutului
contorului programului (de exemplu GOTO) atunci sunt necesare dou cicluri
pentru executarea sa.
308

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Un ciclu de fetch ncepe prin incrementarea contorului de program (PC)


pe durata Q1.
n cadrul ciclului de execuie, instruciunea citit din memoria de program
este memorat n cadrul registrului de instruciuni Instruction Register (IR) pe
durata Q1. Aceast instruciune este apoi decodificat i executat n ciclurile de
ceas Q2, Q3 i Q4. Memoria de date (Data memory) este citit pe durata Q2
(citirea operandului) i scris n ciclul Q4 (scrierea rezultatului).

9.2.3 ORGANIZAREA MEMORIEI DE PROGRAM


(PROGRAM MEMORY)
Familia de microcontroller-e PIC16C71X dispune de un contor de
program (PC) cu lungimea de 13 bii, capabil s adreseze un spaiu de memorie
de program de 8k x 14 cuvinte.

Fig. 9.4 Organizarea memoriei de program la familia de microcontroller-e


PIC16C71X.

Capacitatea memoriei de program disponibil pentru fiecare reprezentant


al familiei este prezentat n tabelul urmtor:
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

309

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Reprezentant

PIC16C710
PIC16C71
PIC16C711
PIC16C715

Capacitatea memoriei
de program
512 x 14
1k x 14
1k x 14
2K x 14

Spaiul de adrese

0000h-01FFh
0000h-03FFh
0000h-03FFh
0000h-07FFh

Pentru acei reprezentani dispunnd de o capacitate a memoriei de


program mai mic de 8K, accesarea unei locaii de memorie n afara spaiului
fizic implementat va determina o blocare a funcionrii.
Vectorul de reset se afl la adresa 0000h, iar vectorul de ntrerupere la
adresa 0004h.

9.2.4 ORGANIZAREA MEMORIEI DE DATE (DATA


MEMORY)
Memoria de date este partiionat n dou bancuri care conin registrele de
uz general (General Purpose Registers) i registrele de funcii speciale (Special
Function Registers). Bitul RP0 determin selectarea bancului de registre (bank
select bit).
RP0 (STATUS<5>) = 1 Bank 1
RP0 (STATUS<5>) = 0 Bank 0
Fiecare banc se extinde pn la 7Fh (dispune de 128 octei). Locaiile
inferioare din cadrul fiecrui banc sunt rezervate pentru registrele de funcii
speciale. La adresele imediat superioare se gsesc registrele de uz general,
implementate ca memorie RAM static. Att Bank 0 ct i Bank 1 conin
registre de funcii speciale. Unele registre de funcii speciale frecvent utilizate
din Bank 0 sunt oglindite n Bank 1 din motive de minimizare a codului i
facilitare a accesului.

9.2.4.1 REGISTRUL STATUS


Registrul de stare (STATUS register) conine starea unitii aritmeticologice (ALU), starea de RESET i biii de selectare a bancului de registre pentru
memoria de date. Registrul STATUS poate constitui destinaie a oricrei
instruciuni, ca i oricare alt registru. Dac registrul STATUS reprezint
destinaia unei instruciuni care afecteaz indicatorii de condiie (Z, DC sau C),
atunci scrierea acestor bii este dezactivat. Aceti bii sunt setai sau resetai
corespunztor logicii dispozitivului. n plus, biii TO i PD nu pot fi scrii. De
aceea rezultatul unei instruciuni n care se utilizeaz registrul STATUS ca
310

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

destinaie poate fi diferit fa de rezultatul preconizat.


De exemplu, n urma execuiei instruciunii CLRF STATUS se vor reseta
cei mai semnificativi 3 bii i va fi setat indicatorul Z. Coninutul registrului
STATUS n urma acestei operaii va fi 000NN1NN (N = nemodificat). Ca
urmare, se recomand ca doar instruciunile BCF, BSF, SWAPF i MOVWF s
fie utilizate n corelaie cu modificarea registrului STATUS, deoarece aceste
instruciuni nu afecteaz indicatorii de condiii (Z, C i DC) din cadrul
registrului STATUS.

Fig. 9.5 Organizarea bancurilor de registre.


Nota 1: Pentru dispozitivele care nu utilizeaz biii IRP i RP1
(STATUS<7:6>), se recomand meninerea acestor bii resetai pentru
a se asigura compatibilitatea cu produse din generaiile urmtoare.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

311

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Nota 2: Biii C i DC funcioneaz ca semnale borrow i digit


borrow n cadrul operaiilor de scdere (a se vedea instruciunile
SUBLW i SUBWF).

9.2.5 PORTURI I/O


Unii dintre pinii acestor porturi de intrare/ieire (I/O) sunt multiplexai cu
funcii alternative pentru implementarea caracteristicilor periferice speciale ale
dispozitivelor. n general, atunci cnd este activat o astfel de funcie, pinul
corespunztor nu poate fi utilizat ca un pin general de intrare/ieire.

9.2.5.1 REGISTRELE PORTA I TRISA


PORTA este implementat ca un latch de 5 bii. Pinul RA4/T0CKI
funcioneaz ca o intrare de tip Trigger Schmitt input i ca ieire de tip dren n
gol. Toi ceilali pini ai portului RA sunt caracterizai de nivele logice de intrare
de tip TTL i de driver-e de ieire de tip CMOS. Toi pinii sunt controlai de bii
de direcie (registrul TRIS) care pot configura aceti pini fie ca intrri, fie ca
ieiri. Setarea unui bit din cadrul registrului TRISA determin comandarea
driver-ului de ieire al pinului corespunztor n starea de mare impedan (hi-Z
mode). Resetarea unui bit din cadrul registrului TRISA determin transferarea
coninutului latch-ului de ieire la pinul corespunztor.
Citirea registrului PORTA determin citirea strii pinilor asociai, iar
scrierea registrului PORTA nseamn scrierea la registrul latch al portului. Toate
operaiile de scriere sunt de tip citire-modificare-scriere. Deci, o scriere la un
port implic citirea strii pinilor portului, modificarea valorii citite i apoi
scrierea datelor n registrul latch al portului.
Pinul RA4 este multiplexat cu semnalul de intrare de ceas al modulului
Timer0, devenind astfel pinul RA4/T0CKI.
Ceilali pini ai portului PORTA sunt multiplexai cu intrrile analogice i
intrarea de tensiune de referin VREF. Funcionarea corespunztoare a fiecrui
pin este comandat prin resetarea/setarea biilor de control din cadrul registrului
ADCON1 (A/D Control Register1).
Registrul TRISA controleaz (comand) sensul transferului pe pinii RA,
chiar n situaia n care sunt utilizai ca intrri analogice. Utilizatorul trebuie s
se asigure c biii registrului TRISA sunt meninui setai atunci cnd utilizeaz
pinii portului PORTA ca intrri analogice.
Not: La Power-on Reset, aceti pini sunt configurai ca intrri
analogice i citii ca 0.
312

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Fig. 9.6 Configuraia intern a biilor portului PORTA .

9.2.5.2 REGISTRELE PORTB I TRISB


PORTB este un port bidirecional dispunnd de 8 bii. Registrul
corespunztor sensului transferului individual la nivel de pin este TRISB.
Setarea unui bit din cadrul registrului TRISB determin comandarea driver-ului
de ieire al pinului corespunztor n starea de mare impedan (hi-Z mode).
Resetarea unui bit din cadrul registrului TRISA determin transferarea
coninutului latch-ului de ieire la pinul corespunztor.
Fiecare dintre pinii portului PORTB dispune de un pull-up intern de
valoare mare. Un singur bit de control poate activa toate aceste dispozitive de
pull-up. Aceasta poate fi realizat prin resetarea bitului RBPU (OPTION<7>).
Dispozitivele de pull-up sunt automat dezactivate atunci cnd pinii portului sunt
configurai ca ieiri. Dispozitivele de pull-up sunt dezactivate la apariia Poweron Reset.
Patru dintre pinii portului PORTB, RB7:RB4, dispun de faciliti de
ntrerupere la modificarea caracteristicilor acestora. Doar pinii configurai ca
intrri pot produce apariia unei ntreruperi (adic oricare dintre pinii RB7:RB4
configurai ca ieire sunt exclui din facilitatea de generare a unei ntreruperi n
procesul de comparare a modificrii strii). Pinii configurai ca intrri (dintre
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

313

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

RB7:RB4) sunt comparai cu valorile anterioare memorate la ultima citire n


cadrul registrului portului PORTB. Ieirile necoincidenelor pinilor RB7:RB4
sunt aplicate unei funcii SAU pentru a genera ntreruperea corespunztoare
modificrii portului RB (RB Port Change Interrupt), caracterizat de flag-ul
RBIF (INTCON<0>). Aceast ntrerupere poate determina ca dispozitivul s
prseasc modul SLEEP. Utilizatorul, n cadrul rutinei de tratare a ntreruperii,
poate terge ntreruperea n unul dintre urmtoarele moduri:
a) prin orice citire sau scriere la portul PORTB, ceea ce va ncheia
condiia de necoinciden;
b) resetarea indicatorului RBIF. O condiie de necoinciden va continua
s seteze indicatorul RBIF. Citirea portului PORTB va ncheia condiia
de necoinciden i va permite resetarea flag-ului RBIF. Generarea
unei ntreruperi n condiia de necoinciden, mpreun cu circuitele de
pull-up configurabile software pentru aceti patru pini, permit o
interfaare simpl cu o tastatur i fac posibil activarea sistemului la
apsarea unei taste.
Se recomand ca ntreruperea generat n caz de necoinciden
(schimbarea valorii logice aplicat pe pinii de intrare ai portului PORTB) s fie
utilizat pentru activarea sistemului la acionarea unei taste i n cazul n care
PORTB este utilizat doar pentru generarea unei astfel de ntreruperi. Efectuarea
polling-ului pe PORTB nu este recomandat dac se utilizeaz ntreruperile
determinate de modificarea strii intrrilor portului PORTB.

Fig. 9.7 Configuraia intern a pinilor portului PORTB.

314

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplul 9.1: Iniializarea PORTB


BCF
CLRF

STATUS, RP0
PORTB

BSF

STATUS, RP0
MOVLW 0xCF
MOVWF TRISB

;
;
;
;
;
;
;
;
;
;

iniializeaz PORTB prin


resetarea ieirilor
de date ale latch-ului
selecteaz Bank 1
valoare utilizat pentru
iniializarea direciei
seteaz RB<3:0> ca intrri
RB<5:4> ca ieiri
RB<7:6> ca intrri

Not: Pentru PIC16C71, dac apare o modificare a strii pinilor I/O n


cursul executrii unui ciclu de citire (nceputul perioadei Q2) exist
posibilitatea ca indicatorul RBIF s nu fie setat.

9.2.6 CONSIDERAII DE PROGRAMARE I/O


9.2.6.1 PORTURI I/O BIDIRECIONALE
Orice instruciune de scriere funcioneaz intern ca o operaie de citire
urmat de o operaie de scriere. Instruciunile BCF i BSF, de exemplu, citesc
coninutul registrului n CPU, execut operaia la nivel de bit i scriu rezultatul
obinut n registru. n situaia n care aceste instruciuni sunt aplicate pentru un
port n care unii dintre bii sunt configurai ca intrri iar alii ca ieiri trebuie
luate msuri de precauie speciale. De exemplu, o instruciune BSF asupra
bitului 5 al portului PORTB va determina citirea tuturor celor opt bii ai portului.
Apoi are loc executarea instruciunii BSF asupra bitului 5 i PORTB este scris n
latch-ul de ieire. Dac un alt bit al portului PORTB este utilizat ca pin
bidirecional (de exemplu bitul 0) i este definit ca intrare la acest moment de
timp, semnalul de intrare prezent pe acest pin va fi citit de ctre CPU i rescris
n latch-ul de date asociat acestui pin, suprascriind coninutul anterior. Att timp
ct pinul funcioneaz n mod intrare nu apare nici o problem n funcionare.
Cu toate acestea, dac bitul 0 este comandat n modul ieire, coninutul
registrului de date poate deveni neprecizat n aceast situaie.
Citirea registrului portului reprezint citirea valorilor logice aplicate
pinilor portului. Scrierea n registrul portului nseamn scrierea valorii
corespunztoare n latch-ul de date al portului. Cnd se utilizeaz instruciuni de
citire-modificare-scriere (de exemplu BCF, BSF, etc.) asupra unui port, se citesc
valorile logice ale pinilor portului, se efectueaz operaia dorit cu aceste valori
iar rezultatul este scris n cadrul latch-ului portului.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

315

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

n exemplul 9.2 se ilustreaz efectul a dou instruciuni consecutive de


citire-modificare-scriere asupra unui port de intrare/ieire (I/O).
Exemplul 9.2: Instruciuni consecutive de citire-modificare-scriere asupra
unui port I/O
; Setri iniiale: PORTB<7:4> intrri
; PORTB<3:0> ieiri
; PORTB<7:6> pull-up activat, fr a fi conectate n exterior
;
PORT latch
PORT pins
;
-----------------BCF PORTB, 7
; 01pp pppp
11pp pppp
BCF PORTB, 6
; 10pp pppp
11pp pppp
BSF STATUS, RP0
;
BCF TRISB, 7
; 10pp pppp
11pp pppp
BCF TRISB, 6
; 10pp pppp
10pp pppp
; Utilizatorul se putea atepta ca valorile pinilpr s fie
; 00pp pppp. Cea de-a doua instruciune BCF a determinat
; ca RB7 s fie memorat ca valoarea pinului (high).

Un pin configurat ca ieire activ Low sau High nu trebuie comandat


n acelai timp de dispozitive externe pentru a schimba nivelul logic asociat
ieirii (SAU-cablat, I-cablat). Curenii de ieire de valori mari pot
determina defectri iremediabile ale circuitului.

9.2.6.2 OPERAII SUCCESIVE ASUPRA PORTURILOR I/O


Scrierea curent la un port de intrare/ieire (I/O) are loc la sfritul
ciclului instruciune, n timp ce pentru citire datele trebuie s fie valide de la
nceputul ciclului instruciune. De aceea este necesar atenie dac se execut o
operaie de scriere urmat de o operaie de citire la/de la acelai port de
intrare/ieire. Secvena de instruciuni trebuie s permit stabilizarea tensiunii la
nivel de pini (n cazul dependenei de sarcin) nainte de execuia urmtoarei
instruciuni, ce determin ca datele s fie citite ce ctre CPU. n caz contrar, este
posibil i mai probabil citirea strii anterioare dect a celei curente. Atunci
cnd exist ndoieli, este util separarea acestor instruciuni printr-o instruciune
NOP sau oricare alt instruciune care nu acceseaz portul I/O respectiv.

9.2.7 MODULUL DE CONVERSIE ANALOG-DIGITAL


Modulul de conversie analog-digital conine patru intrri analogice.
Convertorul A/D asigur o rezoluie de 8 bii a conversiei semnalelor analogice
de intrare. Ieirea circuitului de eantionare-memorare este conectat la intrarea
316

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

convertorului A/D, ce funcioneaz dup metoda aproximaiilor succesive.


Tensiunea de referin poate fi selectat prin software fie ca fiind tensiunea de
alimentare (VDD), fie ca fiind tensiunea aplicat pinului RA3/AN3/VREF.

Fig. 9.8 Configuraia modulului de conversie A/D.

Convertorul A/D se distinge prin aceea c este capabil s funcioneze


chiar dac microcontroller-ul se gsete n modul de operare SLEEP. Pentru
aceasta, ceasul de conversie A/D tebuie obinut din oscilatorul RC intern.
Modulul A/D dispune de trei registre. Aceste registre sunt:
A/D Result Register (ADRES);
A/D Control Register 0 (ADCON0);
A/D Control Register 1 (ADCON1).
Registrul de control ADCON0 comand i coordoneaz funcionarea
modulului A/D.
Registrul de control ADCON1 permite configurarea funciilor pinilor
portului. Pinii pot fi configurai ca intrri analogice (RA3 poate, de asemenea, fi
configurat a surs de tensiune de referin) sau ca intrri/ieiri digitale.
Registrul ADRES conine rezultatul conversiei A/D. Atunci cnd s-a
ncheiat procesul de conversie A/D, rezultatul este transferat n registrul
ADRES, bitul GO/DONE (ADCON0<2>) este resetat iar indicatorul de
ntrerupere A/D, bitul ADIF, este setat.
n urma configurrii dup necesiti a modulului A/D, trebuie selectat
canalul de intrare nainte de declanarea unui proces de conversie. Canalele de
intrare analogice trebuie s aib biii corespunztori TRIS selectai ca intrri.
Dup expirarea timpului de eantionare poate fi demarat un proces de
conversie A/D. Pentru efectuarea unei conversii analog-digitale trebuie
ndeplinii urmtorii pai:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

317

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Fig. 9.9 Organigrama de efectuare a conversiei A/D.

1. configurarea modulului A/D:


configurarea pinilor intrri analogice / referina de tensiune / intrriieiri digitale (ADCON1);
selectarea canalului analogic de intrare (ADCON0);
selectarea ceasului de conversie A/D (ADCON0);
activarea modulului A/D (ADCON0);
2. configurarea nteruperilor A/D (opional):
resetarea bitului ADIF;
setarea bitului ADIE;
setarea bitului GIE;
3. respectarea timpului de eantionare;
4. Start conversie:
setarea bitului GO/DONE (ADCON0);
5. ateptarea sfritului conversiei A/D, fie:
polling pentru ca bitul GO/DONE s fie resetat, sau
318

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ateptarea unei ntreruperi;


6. citirea rezultatului conversiei n registru rezultat (ADRES), resetarea
bitului ADIF (dac este necesar);
7. pentru urmtoarea conversie, napoi la pasul 1 sau 2, dup cum este
necesar. Timpul de conversie pe bit este definit ca TAD. Pentru
nceperea unui nou proces de conversie este necesar un interval de
timp de ntrziere de minim 2TAD.

9.2.7.1 SPECIFICAII PENTRU ACHIZIIA A/D


Pentru ca o conversie analog-digital s fie caracterizat de precizia
specificat, este necesar ca s i se permit condensatorului de memorare (CHOLD)
ncrcarea complet pn la valoarea tensiunii aplicate canalului analogic de
intrare. Modelul analogic al intrrii este prezentat n fig. 9.10. Impedana sursei
de semnal (RS) i rezistena intern a comutatorului din circuitul de eantionarememorare (RSS) afecteaz n mod nemijlocit timpul de ncrcare al
condensatorului de memorare, CHOLD. Rezistena intern a comutatorului, RSS,
variaz n funcie de tensiunea de alimentare VDD. Impedana sursei de semnal
afecteaz decalajul de tensiune a intrrii analogice (datorit curentului de
pierderi).
Impedana maxim recomandat a sursei analogice de semnal este de
10 k. Dup selectarea canalului analogic de intrare, trebuie s expire timpul de
eantionare calculat pe baza elementelor mai sus menionate i, abia dup
aceasta, poate fi declanat un proces de conversie A/D.
Nota 1: Valoarea tensiunii de referin (VREF) nu are efect asupra
timpului de eantionare.
Nota 2: Condensatorul de memorare (CHOLD) nu se descarc complet
dup efectuarea unei conversii.
Nota 3: Impedana maxim recomandat a sursei analogice de semnal
este de 10 k, fiind impus de respectarea recomandrilor privind
curentul de pierderi.
Nota 4: Dup ncheierea unei conversii A/D, este necesar o ntrziere
de minimum 2,0 TAD nainte de renceperea unui ciclu de achiziie. Pe
durata acestui timp, condensatorul de memorare nu este conectat la
canalul de intrare selectat.

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

319

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Fig. 9.10 Configuraia canalelor analogice de intrare.

9.2.7.2 PARTICULARITI DE UTILIZARE A CIRCUITULUI


DE CONVERSIE ANALOG-DIGITAL A
MICROCONTROLLER-ULUI PIC16C71
Seciunea de conversie analog digital a PIC16C71 este uor de setat i
de utilizat. n continuare se prezint cteva consideraii i recomandri generale
asupra acestui subiect.
1. Se alege drept referin de tensiune fie tensiunea de alimentare VDD fie
o surs de referin extern, VREF.
Atunci cnd se utilizeaz o surs de tensiune de referin extern,
trebuie avut n vedere ca valorile analogice ale tensiunilor de intrare nu
trebuie s depeasc VREF. O cale economic i puin costisitoare de a
genera o tensiune de referin VREF const n utilizarea unei diode
Zener (fig. 9.11a). Majoritatea diodelor Zener uzuale asigur o precizie
de 5%. Curenii de polarizare invers pot fi de valori foarte reduse
(10A). Cu toate acestea, se recomand utilizarea unor cureni de
polarizare invers de valori mai mari (1 mA ... 20 mA) din
considerente de stabilitate, precum i pentru a se asigura o impedan
de ieire mai mic a sursei de tensiune de referin VREF.
n cazul aplicaiilor sensibile la variaia tensiunii de alimentare,
utilizatorul poate comanda sursa de tensiune de referin VREF utiliznd
un alt pin de intrare/ieire (fig. 9.11b): comandnd la nivel logic '1'
pinul RB1, de exemplu, atunci cnd se utilizeaz seciunea de
320

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

conversie A/D sau comandnd la nivel logic '0' pinul RB1 atunci cnd
nu este utilizat convertorul A/D. Trebuie menionat faptul c n aceast
situaie pinul RB1 nu funcioneaz n regim three-state. Chiar dac
VREF va nregistra valori intermediare, aceasta nu va determina ca
buffer-ul de intrare al pinului RB1 s absoarb curent. Ca variant, pot
fii utilizai unul dintre pinii RA0, RA1 sau RA2 pentru a asigura curent
n loc de pinul RB1. Pinul RA utilizat trebuie configurat ca pin
analogic (aceasta va dezactiva buffer-ul su digital de intrare).

a) Tensiune de referin obinut cu


diod Zener.

b) Tensiune de referin comandat prin


intermediul pinului RB1.

c) Tensiune de referin comandat prin


intermediul unui pin RA.

d) Scderea impedanei de ieire a


sursei de tensiune de referin.

Fig. 9.11 Sursa de referin extern.


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

321

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

n momentul actual exist numeroase surse de tensiune de referin


integrate, caracterizate de o precizie sensibil mai ridicat dect cea a
diodelor Zener (tabelul 9.1).
Tabelul 9.1 Diode Zener i surse de tensiune de referin
Tipul diodei Zener
1N746
1N747
1N748
1N749
1N750
1N751
1N752
Referine de tensiune
AD580 (Maxim)
LM385
LM1004
LT1009 (LIN. Tech.)
LT1019 (LIN. Tech.)
LT1021 (LIN. Tech.)
LT1029 (LIN. Tech.)

Tensiunea VZ
3,3V
3,6V
3,9V
4,3V
4,7V
5,1V
5,6V
Tensiunea VREF
2,5V
2,5V
2,5V
2,5V
5,0V
5,0V
5,0V

Tolerana
5%
5%
5%
5%
5%
5%
5%
Tolerana
3% 0,4%
1,5%
1,2%
0,2%
0,2%
0,05% 1%
0,2% 1%

Ideal, sursa de tensiune de referin VREF trebuie s fie caracterizat


de o impedan de ieire ct mai redus posibil. Conform fig. 9.11a,
impedana sursei de tensiune de referin VREF este aproximativ egal
cu R. Dac se micoreaz valoarea lui R (pentru micorarea
impedanei sursei de tensiune de referin) se constat o creterea
consumului. Deoarece sursa de tensiune de referin VREF este utilizat
pentru ncrcarea reelei de condensatoare care st la baza funcionrii
convertorului A/D i a condensatorului de memorare (CHOLD51 pF),
trebuie s se asigure urmtoarele condiii:
TAD = 6(1k + R)51,2 pF+ 1,677 s
n care TAD reprezint perioada ceasului de conversie A/D. Pentru
TAD=2s; CHOLD = 50 pF, rezult VREF 50.
Dac impedana sursei de tensiune de referin VREF este mai mare
dect valoarea calculat anterior, atunci perioada ceasului de conversie
A/D (TAD) trebuie mrit n mod corespunztor.
n tabelul 9.2 sunt prezentate cteva exemple referitor la rata
maxim de conversie pe bit corelat cu impedana sursei de tensiune
de referin.

322

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Tabelul 9.2 Rata maxim de conversie pe bit


Impedana sursei de referin
1k
5k
10k
50k
100k

TAD (max)
2,29 s
3,52 s
5,056 s
16,66 s
32,70 s

Pentru a obine o impedan mai sczut a sursei de tensiune de


referin dect prin utilizarea unei diode Zener, se recomand utilizarea
unui repetor de tensiune (fig. 9.11d).
Doi dintre biii registrului ADCON1, anume PCFG1 i PCFG0,
controleaz modul de configurare a pinilor RA3:RA0.
Ori de cte ori unul dintre aceti pini este configurat ca analogic:
buffer-ul digital de intrare al pinului este dezactivat pentru
reducerea curentului de intrare. Operaia de citire a portului va
interpreta ca '0' valoarea pinului corespunztor;
bitul TRIS va continua s comande buffer-ul de ieire al acestui
pin. Astfel, n mod normal, bitul TRIS va fi setat (intrare);
dac bitul TRIS va fi resetat, atunci pinul corespunztor va furniza
la ieire coninutul latch-ului de date.
Ori de cte ori unul dintre aceti pini vor fi comandai ca fiind
digitali:
intrarea analogic este conectat direct la convertorul A/D i, n
concluzie, pinul poate fi utilizat ca intrare analogic;
buffer-ul digital de intrare nu este dezactivat.
Astfel, utilizatorul dispune de fexibilitate n configurarea acestor
pini.
Se selecteaz frecvena ceasului de conversie A/D (TAD): 2TOSC,
8TOSC, TOSC or TRC (ceas RC intern). Pentru primele trei opiuni este
recomandat ca durata conversiei TAD 2,0 s. Dac este necesar un
timp de conversie riguros determinat, se recomand selectarea TOSC ca
baz de timp. Dac este necesar efectuarea unor conversii A/D pe
durata SLEEP, se recomand selectarea TRC ca baz de timp.
2. Selectarea canalului: dac se dorete efectuarea unor achiziii A/D
monocanal, registrul ADCON1 trebuie programat cu valoarea 03h.
Aceast operaie configureaz pinii A/D ca pini de I/O digital. Dac
se dorete efectuarea unor achiziii A/D multicanal, nainte de
declanarea fiecrei conversii este necesar selectarea canalului
corespunztor.
3. Eantionarea i conversia: dup selectarea unui nou canal analogic,
este necesar un timp minim de eantionare nainte de poziionarea
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

323

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

bitului GO/DONE din ADCON0 pentru declanarea unei conversii


A/D. Odat demarat un proces de conversie, se poate selecta urmtorul
canal, ns eantionarea nu se efectueaz dect dup ncheierea
conversiei curente. De aceea, este ntotdeauna necesar asigurarea
timpului minim de eantionare:
i) dup sfritul unei conversii;
ii) dup selectarea unui nou canal analogic;
iii) dup activarea facilitilor de conversie A/D (bitul ADON=1);
4. Citirea rezultatului: ncheierea procesului de conversie A/D poate fi
identificat fie prin polling pe bitul GO/DONE (resetat), fie prin
polling pe indicatorul ADIF (setat), fie ateptnd o cerere de
ntrerupere ADIF.
n plus:
a) Nu se recomand setarea biilor GO/DONE i ADON n cadrul
aceleiai instruciuni. n primul rnd, se seteaz (activeaz)
funcionarea convertorului A/D prin setarea bitului ADON. Ulterior
trebuie s se asigure un timp de eantionare de minim 5 s nainte de
declanarea procesului de conversie (setarea bitului GO/DONE).
b) ntreruperea unui ciclu de conversie aflat n desfurare: O conversie
A/D poate fi ntrerupt prin resetarea bitului GO/DONE. Convertorul
A/D i va nceta funcionarea i va reveni n starea de eantionare.

Fig. 9.12 Diagrama temporal pentru configurarea i achiziia A/D.

c) Se recomand utilizarea registrului ADRES ca registru dedicat:


convertorul A/D scrie n registrul ADRES doar la sfritul procesului
de conversie. Cu toate acestea este posibil utilizarea registrului
ADRES ca un registru de transfer ntre dou conversii succesive sau
atunci cnd convertorul A/D este dezactivat.
324

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

n urmtoarele patru exemple se prezint secvene de cod pentru


manipularea modulului de conversie A/D din cadrul PIC16C71.
Achiziie monocanal
; InitializeAD, initializeaza si seteaza nucleul hardware A/D.
; Se utilizeaza doar canalul ch2, cu oscilator RC.
InitializeAD
bsf
STATUS, 5
; selecteaza Bank1
movlw
b'00000000'
; selecteaza RA3-RA0
movwf
ADCON1
; ca intrari analogice
bcf
STATUS, 5
; selecteaza Bank0
movlw
b'11010001'
; selecteaza RC osc, ch2...
movwf
ADCON0
; activeaza A/D
Convert call
sample-delay
; timp de esantionare
;
bsf
ADCON0, 2
; start conversie A/D
loop
btfsc
ADCON0, 2
; conversie A/D gata?
goto
loop
; nu, atunci polling
movf
adres, w
; da, citeste valoarea A/D

Achiziie multicanal, n mod ciclic


; InitializeAD, initializeaza si seteaza nucleu hardware A/D.
; Selecteaza ch0 pana la ch3 circular, oscilator RC intern.
; Incarca rezultate la 4 adrese consecutive incepand cu
; ADTABLE (10h)
;
InitializeAD
bsf
STATUS, RP0
; selecteaza Bank1
movlw
b'00000000'
; selecteaza RA3-RA0
movwf
ADCON1
; ca intrari analogice
bcf
STATUS, RP0
; selecteaza Bank0
movlw
b'11000001'
; selecteaza: RC osc, ch0...
movwf
ADCON0
; activeaza A/D
movlw
ADTABLE
; fsr pozitionat la ...
movwf
FSR
; inceputul tabelei
;
new_ad
call
sample_delay
; timp esantionare
bsf
ADCON0, GO
; start conversie A/D
loop
btfsc
ADCON0, GO
; conversie A/D gata?
goto
loop
; nu, polling
;
movf
adres, w
; da, citeste valoare A/D
movwf
0
; incarcare indirecta
movlw
4
; selecteaza canal urmator
addwf
ADCON0
; /
bcf
ADCON0, ADIF
; reset indicator intrerupere
; incrementeaza pointer corectie offset tabela.
clrf
temp
; sterge registru temporar
btfsc
ADCON0, CH50
; test lsb canal selectat
bsf
temp, 0
; set daca ch1 selectat
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

325

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


btfsc
bsf
movlw
addwf
movwf
goto

ADCON0, CH51
temp, 1
ADTABLE
temp, w
FSR
new_ad

;
;
;
;
;

test msb canal selectat


/
adresa tabelei
aduna cu temp
muta indirect la ...

Manipularea ntreruperilor A/D


org
goto
org
goto
;
;
start

0x00
start
0x04
service_ad

; vector intrerupere

org 0x10
movlw
movwf
tris

b'00000000'
PORT_B
PORT_B

call

InitializeAD

bcf
call
bcf
bsf
bsf

flag, adover
SetupDelay
ADCON0, adif
ADCON0, go
INTCON, gie

; initializare porturi I/O

;
update
;
;
;
;
;

reset software flag A/D


delay >= 10uS.
reset A/D flag intrerupere
start conversie A/D
activare globala intreruperi

loop
btfsc
flag, adover
; conversie A/D gata?
goto
update
; da, start noua conversie
goto loop
; nu, verifica
; InitializeAD, initializeaza si seteaza nucleul hardware A/D.
; Selecteaza ch0 - ch3, oscilator RC, intreruperi A/D.
InitializeAD
bsf
STATUS, RP0
; selecteaza Bank1
movlw
b'00000000'
; selecteaza RA0-RA3...
movwf
ADCON1
; ca intrari analogice
bcf
STATUS, RP0
; selecteaza Bank0
clrf
INTCON
; sterge toate intreruperile
bsf
INTCON, ADIE
; activeaza intrerupere A/D
movlw
b'11010001'
; selecteaza: RC, ch2...
movwf
ADCON0
; activeaza convertor A/D
return
;
service_ad
btfss
ADCON0, ADIF
; intrerupere A/D?
retfie
; nu, atunci ignora
movf ADRES, W
; citeste valoare A/D
return
; nu activez intreruperi

Efectuarea conversiei A/D n modul sleep


; InitializeAD, initializeaza si seteaza nucleul hardware A/D.
; Selecteaza ch0 - ch3, oscilator RC intern.
326

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
; In cursul unei conversii initiaza modul sleep.
; Aceasta va minimiza interferentele si zomotele digitale.
; Oscilatorul RC al A/D trebuie folosit obligatoriu
; in aceasta situatie.
;
InitializeAD
bsf
STATUS, RP0
; selecteaza Bank1
movlw
b'00000000'
; selecteaza RA0-RA3...
movwf
ADCON1
; ca intrari analogice
bcf
STATUS, RP0
; selecteaza Bank0
movlw
b'11000001'
; selecteaza osc RC, ch0...
movwf
ADCON0
; activeaza A/D si ADIE
movlw
ADTABLE
; fsr pointeaza la inceputul...
movwf
FSR
; tabelei
;
new_ad
bsf ADCON0, GO
; start conversie A/D
sleep
; mod sleep
; la terminarea conversiei programul continua din acest punct
;
movf
ADRES, w
; citeste valoarea A/D

9.3 CARACTERISTICI CONSTRUCTIVE. TESTARE I


CALIBRARE EASY SCOPE
Osciloscopul digital Easy Scope este construit pe circuit imprimat dublu
placat. Toate componentele prezentate n cadrul schemei electrice sunt
amplasate pe cablaj, pe o singur fa (faa cu componente sau plantat).
Rezistenele utilizate pentru implementarea divizoarelor de intrare, precum i
cele care intr n componena amplificatoarelor sumator-substractor sunt cu
tolerane reduse (0,1%), asigurnd precizia impus acestui echipament. Sunt
prevzute condensatoare de filtrare a surselor de tensiune de alimentare. Intrrile
sunt prevzute cu mufe BNC cu plantare pe circuitul imprimat pentru a se
realiza compatibilizarea deplin cu sondele de osciloscop existente.
n ceea ce privete punerea n funciune a osciloscopului, s-au urmrit
urmtoarele etape:
circuitul imprimat a fost echipat cu toate componentele pasive, mufele
BNC de intrare, mufele de alimentare, mufa pentru interconectare cu
portul paralel al calculatorului;
au fost montate cele dou stabilizatoare de tensiune integrate LM7805
(+5V) i LM7905 (-5V) i a fost alimentat montajul. Au fost msurate
cu un voltmetru digital tensiunile de la ieirile stabilizatoarelor de
tensiune integrate (5V) i tensiunile de alimentare ale capsulei TL084
(9V);
s-a msurat cu un voltmetru digital tensiunea de pe cursorul
poteniometrului multitur R3 i acest tensiune a fost ajustat la
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

327

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

328

valoarea de 2,3V;
n urma verificrii corectitudinii tensiunilor din cadrul schemei, s-a
ntrerupt alimentarea i s-a montat pe soclul corespunztor circuitul
TL084 (amplificator operaional cuadruplu). S-a alimentat montajul.
Intrrile canalelor A i B au fost conectate la mas i s-au verificat
tensiunile de la ieirile circuitelor de condiionare a semnalelor
(+2,5V). A fost reajustat tensiunea de referin (tipic 2,3V) pentru a
se obine la intrarea convertorului A/D din microcontroller tensiunea
de 2,5V n cazul aplicrii unor tensiuni de intrare nule (cod de ieire
A/D 7FH);
s-a decuplat alimentarea i a fost montat pe soclu i circuitul
PIC16C71 programat n mod corespunztor (codul surs n limbaj de
asamblare este prezentat n capitolul 6);
se cupleaz osciloscopul Easy Scope la portul paralel al calculatorului
utiliznd un cablu paralel, cu lungime maxim de 1,8m, cu mufe
DB25M la ambele capete;
se alimenteaz osciloscopul Easy Scope i se ruleaz programul
EasyScope.exe de pe PC;
n urma apelrii programului EasyScope.exe pentru prima dat exist
posibilitatea apariiei unui mesaj indicnd absena unui fiier de
configurare. Este un mesaj normal la rularea pentru prima dat a
aplicaiei. Pentru continuare se apas orice tast i apare un meniu de
opiuni. Selectarea opiunilor se face prin utilizarea tastelor funcionale
F1...F10. Se selecteaz opiunea F8: CONFIGURE. Se selecteaz
portul paralel la care este conectat osciloscopul (LPT1 sau LPT2), prin
utilizarea tastelor 1 sau 2 urmate de ENTER. Urmeaz selectarea
culorii liniilor de reprezentare pentru canalele A i B, precum i
culoarea grid-ului. Se introduc culorile dorite sub form numeric.
Aceste atribute ale reprezentrii grafice pot fi modificate ulterior
oricnd. Selectarea acestor opiuni va determina generarea unui fiier
de configurare. Ulterior, s-a selectat opiunea F1 - DVM mode. Acest
program va afia un heading, citirea A/D pentru canalul B i apoi gama
tensiunilor (2,4, 6 or 12), citirea A/D n hex i tensiunea msurat
pentru canalul A. Se scurtcircuiteaz intrarea canalului A la mas
pentru a obine tensiunea de 0,0V la intrare. Se selecteaz gama de
2,4V prin intermediul comutatorului SW1. Se ajusteaz
poteniometrul R3 (dac mai este necesar) pn cnd valoarea citit pe
canalul A este stabil i are valoarea 7FH i tensiunea citit este 0,0V.
Dac se scurtcircuiteaz intrarea canalului B la mas, citirea
convertorului A/D pentru acest canal va fi tot 7FH. Se testeaz
funcionarea convertorului A/D pentru fiecare canal prin conectarea
intrrilor la o baterie. Valoarea citit trebuie s se modifice conform

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

tensiunii de la bornele bateriei. n acest moment testarea i calibrarea


osciloscopului Easy Scope a fost efectuat cu succes.

9.4 DESCRIEREA MEN


NIIULUI APLICAIEI EASYSCOPE
Pe durata calibrrii osciloscopului digital Easy Scope a fost utilizat modul
de lucru DVM (opiunea F1), aa ca n cele ce urmeaz nu mai sunt necesare
explicaii suplimentare referitoare la acest mod de lucru.

EASYSCOPE
F1 - DVM mode
F2 - SCOPE mode : SINGLE Channels 1
F3 - TRIGGER level : 0.00
F4 - TRIGGER slope : +
F5 - TRIGGER position : 4/8
F6 - ACQUISITION period : 100 uS Frequency 10.00 KHz
F7 - ACQUIRE
F8 - CONFIGURE
F9 - DISPLAY DATA BUFFER
F10 - Exit
Fig. 9.13 Panoul aplicaiei EASYSCOPE.

Opiunea F2 selecteaz modul de funcionare al Easy Scope:


CONTINUOUS, SINGLE sau NORMAL. Se selecteaz, de asemenea, numrul
canalelor de intrare active (1= A, 2 = A&B). n modul CONTINUOUS,
osciloscopul va eantiona n mod continuu semnalele de intrare i va actualiza
afiarea, fr a utiliza opiunea trigger. n modul SINGLE, osciloscopul va
achiziiona i afia un singur eantion al semnalelor de intrare utiliznd triggerul.
n modul NORMAL, osciloscopul va achiziiona i va afia datele utiliznd
trigger-ul, ca un osciloscop analogic.
Opiunea F3 permite setarea nivelului tensiunii de trigger.
Opiunea F4 permite setarea polaritii trigger-ului ca + sau -.
Opiunea F5 permite selectarea poziiei trigger-ului n cadrul datelor
achiziionate n incremente de 1/8. Valoarea of 0/8 semnific faptul c toate
datele afiate sunt ulterioare semnalului de trigger, ca n cazul unui osciloscop
analogic. Valoarea 3/8 semnific faptul c 3/8 dintre datele afiate sunt
achiziionate nainte de semnalul de trigger iar restul de 5/8 sunt achiziionate
dup acest semnal.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

329

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

Opiunea F6 permite setarea perioadei de achiziie n s.


Opiunea F7 starteaz modul osciloscop, datele fiind afiate grafic n
cadrul ecranului. Pentru ieirea dim modul de lucru DVM sau ACQUIRE se
utilizeaz tasta ESC.

Fig. 9.14 Vizuzlizarea buffer-ului de date.

Easy Scope reprezint un instrument ieftin i flexibil, oferind


utilizatorului ansa s lucreze cu un Digital Storage Oscilloscope pentru o
fraciune nesemnificativ din preul unui osciloscop uzual.

330

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

9.5 CODUL SURS N LIMBAJ DE ASAMBLARE AL


MICROCONTROLLER-ULUI PIC16C71 PENTRU
OSCILOSCOPUL DIGITAL EASY SCOPE
;
;
;

EASY SCOPE rev 1.0 RGB 19/04/2000


Fisirer sursa PIC16C71 pentru EASY SCOPE

list P=16C71
#include
"P16CXX.INC"
__FUSES
_XT_OSC&_WDT_OFF&_CP_OFF
timecnt
equ 10h
temp_w
equ 11h
temp_status
equ 12h
head
equ 13h
poweron
equ 14h
temp_fsr
equ 15h
tmp
equ 16h
mode
equ 17h
org
goto
org

0
start
4

movwf
swapf
movwf
movf
movwf
btfsc
goto
bsf
movf
movwf
incf
andlw
movwf
xorwf
btfsc
goto
movf
movwf
movf
movwf
bcf
bcf
movf
movwf
swapf
movwf
swapf
swapf
retfie

temp_w
STATUS,W
temp_status
FSR,w
temp_fsr
mode,0
int2
ADCON0,GO
timecnt,w
TMR0
head,w
2fh
head
FSR,w
STATUS,Z
overflow
head,w
FSR
ADRES,w
INDF
INTCON,INTF
INTCON,T0IF
temp_fsr,w
FSR
temp_status,w
STATUS
temp_w,f
temp_w,w

int:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

331

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


int2:
btfsc
goto
bcf
bsf
goto

mode,1
int3
ADCON0,CHS0
mode,1
int4

bsf
bcf
nop
nop

ADCON0,CHS0
mode,1

int3:

int4:
nop
nop
nop
nop
nop
nop
movf
movwf
incf
andlw
movwf
xorwf
btfsc
goto
movf
movwf
movf
movwf
bsf
bcf
bcf
movf
movwf
swapf
movwf
swapf
swapf
retfie
overflow:
movf
movwf
swapf
movwf
swapf
swapf
return
start:
bcf
movlw
movwf
movlw
movwf
bsf
332

timecnt,w
TMR0
head,w
2fh
head
FSR,w
STATUS,Z
overflow
head,w
FSR
ADRES,w
INDF
ADCON0,GO
INTCON,INTF
INTCON,T0IF
temp_fsr,w
FSR
temp_status,w
STATUS
temp_w,f
temp_w,w

temp_fsr,w
FSR
temp_status,w
STATUS
temp_w,f
temp_w,w

STATUS,RP0
1fh
PORTA
00fh
PORTB
STATUS,RP0

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
movlw
movwf
movlw
movwf
movlw
movwf
movlw
movwf
bcf
movlw
xorwf
btfsc
goto
movlw
movwf
movlw
movwf
start1:
btfsc
goto
btfsc
goto
diag:
bsf
bsf
bsf
bsf
bsf
nop
nop
bcf
bcf
bcf
bcf
bcf
goto
adcona:
btfsc
goto
movlw
movwf
goto
adconb:
movlw
movwf
adconc:
btfsc
goto
bsf
adconc1:
btfsc
goto
movf
movwf
movwf

02h
ADCON1
01h
OPTION_REG
1bh
TRISA
0f0h
TRISB
STATUS,RP0
5ah
poweron,w
STATUS,Z
start1
0a7h
timecnt
5ah
poweron
PORTB,7
scope0
PORTA,4
adcona
PORTA,2
PORTB,0
PORTB,1
PORTB,2
PORTB,3

PORTA,2
PORTB,0
PORTB,1
PORTB,2
PORTB,3
diag
PORTB,6
adconb
81h
ADCON0
adconc
89h
ADCON0
PORTA,3
adconc
ADCON0,GO
ADCON0,GO
adconc1
ADRES,w
PORTB
tmp

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

333

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


bcf
nop
nop
adconc2:
btfss
goto
bsf
swapf
movwf
adcon2a:
btfsc
goto
bcf
nop
nop
adcon3:
btfss
goto
bsf
goto
scope0:
btfsc
goto
tbit:
bcf
bsf
btfsc
goto
bcf
goto
tbitab:
bsf
tbitac:
btfsc
goto
bcf
goto
tbitae:
bsf
tbitaf:
clrf
tbit0:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit0a:
btfss
goto
bsf
tbit1:
btfsc
334

PORTA,2

PORTA,3
adconc2
PORTA,2
tmp,w
PORTB
PORTA,3
adcon2a
PORTA,2

PORTA,3
adcon3
PORTA,2
adconc
PORTB,6
scope1
PORTB,3
PORTB,2
PORTB,4
tbitab
PORTB,0
tbitac
PORTB,0
PORTB,5
tbitae
PORTB,1
tbitaf
PORTB,1
tmp
PORTA,3
tbit0
PORTB,7
tmp,0
PORTA,2

PORTA,3
tbit0a
PORTA,2
PORTA,3

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
goto
btfsc
bsf
bcf
nop
nop
tbit1a:
btfss
goto
bsf
tbit2:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit2a:
btfss
goto
bsf
tbit3:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit3a:
btfss
goto
bsf
tbit4:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit4a:
btfss
goto
bsf
tbit5:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit5a:

tbit1
PORTB,7
tmp,1
PORTA,2

PORTA,3
tbit1a
PORTA,2
PORTA,3
tbit2
PORTB,7
tmp,2
PORTA,2

PORTA,3
tbit2a
PORTA,2
PORTA,3
tbit3
PORTB,7
tmp,3
PORTA,2

PORTA,3
tbit3a
PORTA,2
PORTA,3
tbit4
PORTB,7
tmp,4
PORTA,2

PORTA,3
tbit4a
PORTA,2
PORTA,3
tbit5
PORTB,7
tmp,5
PORTA,2

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

335

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


btfss
goto
bsf
tbit6:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit6a:
btfss
goto
bsf
tbit7:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbit7a:
btfss
goto
bsf
movf
movwf
bcf
tbitm:
btfsc
goto
btfsc
bsf
bcf
nop
nop
tbitma:
btfss
goto
bsf
goto
scope1:
movlw
movwf
movlw
movwf
movwf
bcf
clrf
bsf
bsf
bsf
movf
336

PORTA,3
tbit5a
PORTA,2
PORTA,3
tbit6
PORTB,7
tmp,6
PORTA,2

PORTA,3
tbit6a
PORTA,2
PORTA,3
tbit7
PORTB,7
tmp,7
PORTA,2

PORTA,3
tbit7a
PORTA,2
tmp,w
timecnt
mode,0
PORTA,3
tbitm
PORTB,7
mode,0
PORTA,2

PORTA,3
tbitma
PORTA,2
tbit
81h
ADCON0
20h
head
FSR
mode,1
TMR0
INTCON,T0IE
INTCON,GIE
ADCON0,GO
timecnt,w

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
movwf

TMR0

loop:
movf
loopa:
xorwf
btfsc
goto
movf
movwf
loop1:
btfsc
goto
bcf
swapf
loop3:
btfss
goto
bsf
movwf
loop4:
btfsc
goto
bcf
incf
andlw
loop5:
btfss
goto
bsf
movwf
goto
end

FSR,w
head,w
STATUS,Z
loop
INDF,w
PORTB
PORTA,3
loop1
PORTA,2
INDF,w
PORTA,3
loop3
PORTA,2
PORTB
PORTA,3
loop4
PORTA,2
FSR,w
2fh
PORTA,3
loop5
PORTA,2
FSR
loopa

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

337

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR

9.6 CODUL SURS N LIMBAJ C PENTRU OSCILOSCOPUL


DIGITAL EASY SCOPE
#include <stdio.h>
#include <dos.h>
#include <conio.h>
#include <graphics.h>
#define F1 0x3b00
#define F2 0x3c00
#define F3 0x3d00
#define F4 0x3e00
#define F5 0x3f00
#define F6 0x4000
#define F7 0x4100
#define F8 0x4200
#define F9 0x4300
#define F10 0x4400
#define MINPERIOD 20
#define MAXPERIOD 267
#define RESETPIN 0x20
#define MODEAPIN 0x08
#define MODEBPIN 0x10
#define MODECPIN 0x40
#define REQPIN 0x80
#define ACKPIN 0x08
unsigned char data[1024],buf[1024];
unsigned char lookup[256];
int dataport=0x278,statusport=0x279,portval;
int first=0,last=1023,ch1color=14,ch2color=13,gridcolor=7;
int smode=0,channels=0,trigslope=1,trigpos=4,period=100,acqrange=0,easyrev=0;
float voltrange=2.4,triglevel=0.0,acqrate=10000.0,
main()
{
int c,i;
for(i=0;i<1024;i++)buf[i]=(((i%256)<128)?i:256-i);
makelookup(lookup);
rdconfig();
for(;;){
clrscr();
printf("\n\t\tEASYSCOPE Rev 1.0\n\n");
printf("\t\t(C) COPYRIGHT 2000 A&C\n");
printf("\t\tAll Rights Reserved\n");
easyrev=(getconfig()>>6)&0x03;
printf("\t\tEASYSCOPE REV %x\n\n",easyrev);
printf("\t\tF1 - DVM mode\n");
printf("\t\tF2 - SCOPE mode : %s Channels %d\n",
smode?(smode==1?"SINGLE":"NORM"):"CONTINOUS",channels+1);
printf("\t\tF3 - TRIGGER level : %5.2f\n",triglevel);
printf("\t\tF4 - TRIGGER slope : %s\n",trigslope?"+":"-");
printf("\t\tF5 - TRIGGER position : %d/8\n",trigpos);

338

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
printf("\t\tF6 - ACQUISITION period : %3d uS Frequency %5.2f KHz\n"
,period,acqrate*0.001);
printf("\t\tF7 - ACQUIRE\n");
printf("\t\tF8 - CONFIGURE\n");
printf("\t\tF9 - DISPLAY DATA BUFFER\n");
printf("\t\tF10 - exit\n");
c=bioskey(0);
switch(c){
case F1:
dvm();
break;
case F2:
channels++;
channels &=0x01;
if(!channels)smode++;
if(smode>2)smode=0;
break;
case F3:
printf("Enter trigger level in volts :");
scanf("%f",&triglevel);
break;
case F4:
trigslope++;
trigslope &=0x01;
break;
case F5:
trigpos++;
trigpos &=0x07;
break;
case F6:
if(easyrev==2){
do{
printf("select acquisition range Standard/Low (S/L)\n");
c=getch()&0xdf;
}while((c!='S')&&(c!='L'));
}
if(c=='L'){
printf("enter acqusition period in uS (1600 - 17088) :");
scanf("%d",&period);
i=period/64;
if((i<MINPERIOD)||(i>MAXPERIOD))
i=100;
period=i*64;
acqrange=1;
}
else {
printf("enter acqusition period in uS (25 - 267) :");
scanf("%d",&period);
if((period<MINPERIOD)||(period>MAXPERIOD))
period=100;
acqrange=0;
i=period;
}
acqrate=1000000.0/(double)period;
c=configeasy(267-i);
voltrange=(c==0x30?12.0:(c==0x10?6.0:2.4));
break;
case F7:
scope();
break;
case F8:
configure();
break;
case F9:
display();
break;
case F10:
exit(0);
}
}

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

339

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


}
makelookup()
{
int i,data,tmp;
for(i=0;i<256;i++){
switch(i&0xc0){
case 0x00:
case 0x40:
case 0x80:
case 0xc0:
}
data=i&0x3f;
data |=tmp;
switch(i&0x0c){
case 0x00:
case 0x04:
case 0x08:
case 0x0c:

tmp=0x40;
break;
tmp=0xc0;
break;
tmp=0x00;
break;
tmp=0x80;
break;

tmp=0x04;
break;
tmp=0x0c;
break;
tmp=0x00;
break;
tmp=0x08;
break;

}
data &=0xf3;
data |=tmp;
lookup[i]=data;
}
}
datain(unsigned char buf[],int pre,int post,int trig,int slope)
{
int data,data1,i=0,timeout=0,lasttrig=0,triggered=0;
int t;
if(trig== -1)triggered=1;
while(post){
outportb(dataport,0x7f);
for(timeout=0;timeout<32766;timeout++)
if(0==((data=inportb(statusport))&ACKPIN))break;
data >>=4;
if(timeout==32766)return(-1);
outportb(dataport,0xff);
for(timeout=0;timeout<32766;timeout++)
if((inportb(statusport)&ACKPIN))break;
while(!(inportb(statusport)&ACKPIN));
outportb(dataport,0x77);
if(timeout==32766)return(-1);
for(timeout=0;timeout<32766;timeout++)
if(!((data1=inportb(statusport))&ACKPIN))break;
while((data1=inportb(statusport))&ACKPIN);
outportb(dataport,0xff);
if(timeout==32766)return(-1);
data |=(data1&0xf0);
data=lookup[data];

340

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
buf[i++]=data;
i &=0x3ff;
if(pre)pre--;
else{
if(triggered)post--;
else {
if(slope){
if(data>trig){
if(lasttrig)triggered=1;
}
else lasttrig=1;
}
else {
if(data<trig){
if(lasttrig)triggered=1;
}
else lasttrig=1;
}
}
}
while(!(inportb(statusport)&ACKPIN));
for(timeout=0;timeout<32766;timeout++)
if((inportb(statusport)&ACKPIN))break;
if(timeout==32766)return(-1);
}
return(i);
}
datain2(unsigned char buf[],int pre,int post,int trig,int slope)
{
int data,data1,i=0,timeout=0,lasttrig=0,triggered=0;
int t;
if(trig== -1)triggered=1;
while(post){
outportb(dataport,0x7f);
for(timeout=0;timeout<32766;timeout++)
if(0==((data=inportb(statusport))&ACKPIN))break;
data >>=4;
if(timeout==32766)return(-1);
outportb(dataport,0xff);
for(timeout=0;timeout<32766;timeout++)
if((inportb(statusport)&ACKPIN))break;
while(!(inportb(statusport)&ACKPIN));
outportb(dataport,0x77);
if(timeout==32766)return(-1);
for(timeout=0;timeout<32766;timeout++)
if(!((data1=inportb(statusport))&ACKPIN))break;
while((data1=inportb(statusport))&ACKPIN);
outportb(dataport,0xff);
if(timeout==32766)return(-1);
data |=(data1&0xf0);
data=lookup[data];
buf[i++]=data;
i &=0x3ff;
if(pre)pre--;
else{
if(triggered)post--;
else if(i&0x01){
if(slope){

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

341

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


if(data>trig){
if(lasttrig)triggered=1;
}
else lasttrig=1;
}
else {
if(data<trig){
if(lasttrig)triggered=1;
}
else lasttrig=1;
}
}
}
while(!(inportb(statusport)&ACKPIN));
for(timeout=0;timeout<32766;timeout++)
if((inportb(statusport)&ACKPIN))break;
if(timeout==32766)return(-1);
}
return(i);
}
int configeasy(int count)
{
int mask,ret,endmask=0x200;
outportb(dataport,0xd0);
delay(100);
outportb(dataport,0xf0);
delay(5);
ret=lookup[inportb(statusport)];
printf("configeasy ret %02x\n",ret);
getch();
count &=0xff;
if((channels)&&(ret&0xc0))count |=0x100;
else channels=0;
if(ret&0x80){
if(acqrange)count |=0x200;
endmask=0x400;
}
for(mask=0x01;mask<endmask;mask <<=1){
if(count&mask){
outportb(dataport,0xf0);
outportb(dataport,0x70);
}
else {
outportb(dataport,0xe0);
outportb(dataport,0x60);
}
while(inportb(statusport)&ACKPIN);
outportb(dataport,0xf0);
while(!(inportb(statusport)&ACKPIN));
}
outportb(dataport,0xf0);
return(ret);
}
int getconfig()
{
outportb(dataport,0xd0);
delay(100);

342

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
outportb(dataport,0xf0);
delay(5);
return(lookup[inportb(statusport)]);
}
dvm()
{
int ad,con,ad1;
float val;
clrscr();
printf("EASY SCOPE\n");
printf("Digital Voltmeter Mode\n\n");
for(;;){
con=getconfig();
ad=getad0();
ad1=getad1();
con &=0x30;
if(con==0x30)val=(ad-127)*0.09375;
if(con==0x10)val=(ad-127)*0.046875;
if(con==0x20)val=(ad-127)*0.01875;
printf("Ch 2 %02x Ch 1 Range %5.2f A/D reading %02x Voltage %6.2f\r",
ad1,con==0x30?12.0:(con==0x10?6.0:2.4),ad,val);
if(kbhit()){if(getch()==27)break;}
}
}
int getad0()
{
int val;
outportb(dataport,portval=MODECPIN|REQPIN);
delay(100);
outportb(dataport,portval |=RESETPIN);
delay(1);
outportb(dataport,portval & ~REQPIN);
while(inportb(statusport)&ACKPIN);
val=inportb(statusport)>>4;
outportb(dataport,portval);
while(!(inportb(statusport)&ACKPIN));
outportb(dataport,portval & ~REQPIN);
while(inportb(statusport)&ACKPIN);
val |=inportb(statusport)&0xf0;
outportb(dataport,portval);
val=lookup[val];
return(val);
}
int getad1()
{
int val;
outportb(dataport,portval=MODECPIN|MODEAPIN|REQPIN);
delay(100);
outportb(dataport,portval |=RESETPIN);
delay(1);
outportb(dataport,portval & ~REQPIN);
while(inportb(statusport)&ACKPIN);
val=inportb(statusport)>>4;

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

343

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


outportb(dataport,portval);
while(!(inportb(statusport)&ACKPIN));
outportb(dataport,portval & ~REQPIN);
while(inportb(statusport)&ACKPIN);
val |=inportb(statusport)&0xf0;
outportb(dataport,portval);
val=lookup[val];
return(val);
}
scope()
{
int gdriver=VGA,gmode=VGAHI,errorcode;
int j,w,i,position,pre,post,c,cold,trigad,pass=0;
char linebuf[128];
configeasy(267-period);
c=cold=getconfig()&0x30;
voltrange=(c==0x30?12.0:(c==0x10?6.0:2.4));
if(smode)trigad=triglevel/voltrange*127.0+127;
else trigad= -1;
if((trigad>253)||(trigad<2))trigad= -1;
pre=(640*trigpos)/8+1;
post=640-pre+1;
errorcode=registerbgidriver(EGAVGA_driver);
if(errorcode<0){
printf("graphics error: %s\n",grapherrormsg(errorcode));
printf("press any key\n");
getch();
return(0);
}
initgraph(&gdriver,&gmode,"");
errorcode=graphresult();
if(errorcode != grOk){
printf("graphics error: %s\n",grapherrormsg(errorcode));
printf("press any key\n");
getch();
return(0);
}
setcolor(15);
setwritemode(COPY_PUT);
cleardevice();
setfillstyle(EMPTY_FILL,0);
sprintf(linebuf," EASY SCOPE");
w=textwidth(linebuf);
bar(319-w/2,5,319+w/2,textheight(linebuf)+5);
outtextxy(319-w/2,5,linebuf);
sprintf(linebuf,"MODE %s X: %6.3f ms/div Y: %5.2f V/div",
smode?((smode==1)?"sing":"norm"):"cont",(float)period*40.0/1000.0,
voltrange/4.0);
w=textwidth(linebuf);
outtextxy(319-w/2,18,linebuf);
setcolor(gridcolor);
for(position=0;position<640;position +=40)
line(position,479,position,30);
for(i=479;i>30;i -=32)line(0,i,639,i);
line(639,479,639,30);
do {
outportb(dataport,~RESETPIN);
delay(100);
outportb(dataport,0xff);
while((inportb(statusport)&0x10)==0);

344

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
if(channels)j=datain2(data,pre,post,trigad,trigslope);
else j=datain(data,pre,post,trigad,trigslope);
if(j== -1){
closegraph();
printf("Data Underrun Error reduce acquistion rate - press any key\n");
getch();
return(-1);
}
for(i=639;i>=0;i--){
buf[i]=(data[j]);
j--;
if(j<0)j=1023;
}
if(pass){
c=getconfig()&0x30;
if(c!=cold){
cold=c;
voltrange=(c==0x30?12.0:(c==0x10?6.0:2.4));
sprintf(linebuf,"MODE %s X: %6.3f ms/div Y: %5.2f V/div",
smode?((smode==1)?"SING":"NORM"):"CONT",(float)period*40.0/1000.0,
voltrange/4.0);
w=textwidth(linebuf);
setcolor(15);
bar(319-w/2,18,319+w/2,textheight(linebuf)+18);
outtextxy(319-w/2,18,linebuf);
}
bar(0,29,639,479);
setcolor(gridcolor);
for(position=0;position<640;position +=40)
line(position,479,position,30);
for(i=479;i>30;i -=32)line(0,i,639,i);
line(639,479,639,30);
for(position=0;position<640;position +=40){
for(i=195;i>66;i -=16)putpixel(position,i,1);
}
}
for(i=0;i<640;i++){
if(channels&&(i&0x01))putpixel(i,478-buf[i],ch2color);
else putpixel(i,286-buf[i],ch1color);
}
pass=1;
if(kbhit())break;
}while(smode!=1);
getch();
closegraph();
return(0);
}
display()
{
int gdriver=VGA,gmode=VGAHI,errorcode;
int j,w,i,position,pre,post,c,cold,trigad,pass=0;
char linebuf[128];
smode=1;
errorcode=registerbgidriver(EGAVGA_driver);
if(errorcode<0){
printf("graphics error: %s\n",grapherrormsg(errorcode));
printf("press any key\n");
getch();
return(0);

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

345

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


}
initgraph(&gdriver,&gmode,"");
errorcode=graphresult();
if(errorcode != grOk){
printf("graphics error: %s\n",grapherrormsg(errorcode));
printf("press any key\n");
getch();
return(0);
}
setcolor(15);
setwritemode(COPY_PUT);
cleardevice();
setfillstyle(EMPTY_FILL,0);
sprintf(linebuf,"EASY SCOPE");
w=textwidth(linebuf);
bar(319-w/2,5,319+w/2,textheight(linebuf)+5);
outtextxy(319-w/2,5,linebuf);
sprintf(linebuf,"MODE %s X: %6.3f ms/div Y: %5.2f V/div",
smode?((smode==1)?"sing":"norm"):"cont",(float)period*40.0/1000.0,
voltrange/4.0);
w=textwidth(linebuf);
outtextxy(319-w/2,18,linebuf);
setcolor(gridcolor);
for(position=0;position<640;position +=40)
line(position,479,position,30);
for(i=479;i>30;i -=32)line(0,i,639,i);
line(639,479,639,30);
for(i=0;i<640;i++){
if(channels&&(i&0x01))putpixel(i,478-buf[i],ch2color);
else putpixel(i,286-buf[i],ch1color);
}
getch();
closegraph();
return(0);
}
rdconfig()
{
FILE *fp;
char line[128];
int i;
if((fp=fopen("EASYSCII.CFG","rt"))==NULL){
clrscr();
printf("Can NOT open config file - Using DEFAULTS - Press any key\n");
dataport=0x278;
statusport=dataport+1;
getch();
return(0);
}
fgets(line,128,fp);
sscanf(line,"%x",&dataport);
statusport=dataport+1;
fgets(line,128,fp);
sscanf(line,"%d",&ch1color);
fgets(line,128,fp);
sscanf(line,"%d",&ch2color);
fgets(line,128,fp);
sscanf(line,"%d",&gridcolor);
fclose(fp);
}
info()

346

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
{
clrscr();
printf("\n\n\n\t\t\tEASY SCOPE\n");
printf("\n\t\t\tA&C 2000\n");
getch();
}
int configure()
{
int cal,c;
FILE *fp;
printf("Select port LPT1 (378) or LPT2 (278) or LPT3 (3BC) (1/2/3) :");
do{
c=getch();
}while((c!='1') && (c!='2') && (c!=3));
if(c=='1')dataport=0x378;
else if(c=='2')dataport=0x278;
else dataport=0x3bc;
printf("\nSelect channel 1 color (1-15) :");
scanf("%d",&ch1color);
printf("Select channel 2 color (1-15) :");
scanf("%d",&ch2color);
printf("Select grid color (1-15) :");
scanf("%d",&gridcolor);
if((fp=fopen("EASYSCII.CFG","wt"))==NULL){
clrscr();
printf("CAN NOT OPEN CONFIG FILE - PRESS ANY KEY\n");
getch();
return(0);
}
fprintf(fp,"%x\n",dataport);
fprintf(fp,"%d\n",ch1color);
fprintf(fp,"%d\n",ch2color);
fprintf(fp,"%d\n",gridcolor);
fclose(fp);
statusport=dataport+1;
easyrev=(getconfig()>>6)&0x03;
printf("complete - press any key\n");
getch();
}
file()
{
int c,i;
FILE *fp;
char file[128],dummy[496];
clrscr();
for(i=0;i<496;i++)dummy[i]=0;
printf("\n\t\t\tRGB LOGIC ANALYZER FILE MENU\n");
printf("\n\t\t\tF1 - SAVE DATA FILE\n");
printf("\t\t\tF2 - LOAD DATA FILE\n\n");
printf("\t\t\tF10 - CANCEL\n\n");
c=bioskey(0);
switch(c){
case F1: printf("\t\t\tenter file name : ");
scanf("%s",file);
if((fp=fopen(file,"wb"))==NULL){
printf("CAN NOT OPEN FILE - PRESS ANY KEY");
getch();
return(0);
}
fwrite(&masterclock,sizeof(masterclock),1,fp);

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

347

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR


fwrite(&clockrate,sizeof(clockrate),1,fp);
fwrite(&trigger,sizeof(trigger),1,fp);
fwrite(&dontcare,sizeof(dontcare),1,fp);
fwrite(&triglength,sizeof(triglength),1,fp);
fwrite(&first,sizeof(first),1,fp);
fwrite(&last,sizeof(last),1,fp);
fwrite(dummy,sizeof(dummy[0]),496,fp);
fwrite(dbuf,sizeof(dbuf[0]),8192,fp);
fclose(fp);
break;
case F2: printf("\t\t\tenter file name : ");
scanf("%s",file);
if((fp=fopen(file,"rb"))==NULL){
printf("CAN NOT OPEN FILE - PRESS ANY KEY");
getch();
return(0);
}
fread(&masterclock,sizeof(masterclock),1,fp);
fread(&clockrate,sizeof(clockrate),1,fp);
fread(&trigger,sizeof(trigger),1,fp);
fread(&dontcare,sizeof(dontcare),1,fp);
fread(&triglength,sizeof(triglength),1,fp);
fread(&first,sizeof(first),1,fp);
fread(&last,sizeof(last),1,fp);
fread(dummy,sizeof(dummy[0]),496,fp);
fread(dbuf,sizeof(dbuf[0]),8192,fp);
fclose(fp);
break;
case F10: return(0);
}
}

348

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

10. TRADUCTOR INTELIGENT PENTRU


MSURAREA NIVELULUI
Tematica propus n cadrul acestui capitol const n cercetarea i
proiectarea unui echipament pentru determinarea nivelului lichidelor depozitate
n vase staionare la presiune joas, denumit NIVELMETRU CU
ULTRASUNETE.
Determinarea nivelului lichidului n vas se bazeaz pe msurarea
intervalului de timp ntre momentul emisiei unei unde ultrasonice dirijate
perpendicular pe suprafaa lichidului de ctre un senzor specializat amplasat la
partea superioar a vasului, ntr-o poziie determinat, i momentul recepiei de
ctre acesta a undei reflectate. Dat fiind c temperatura mediului n care se
propag unda sonor afecteaz timpul de propagare, se impune corecia acestuia.
n acest scop se amplaseaz n vecinattea senzorului ultrasonic un senzor de
temperatur.
Scopul echipamentului const n determinarea nivelului lichidului n vas
i a temperaturii n punctul de amplasare a senzorului ultrasonic, putnd fi
utilizat n aplicaii industriale care necesit determinarea nivelului lichidului, n
limitele condiiilor de lucru impuse de traductorul ultrasonic utilizat.
Caracteristicile echipamentului de msurare a nivelului includ:
msurarea i afiarea nivelului lichidului din vas i a temperaturii n
punctul de amplasare a senzorului;
semnalizarea (alarmare) la atingerea unor mrimi programate: nivel
maxim i nivel minim;
posibilitatea de conectare a echipamentului la un calculator ierarhic
superior, printr-o legtur serial RS-232, n vederea unor prelucrri
ulterioare a informaiilor prelevate din proces;
furnizarea unui semnal unificat de curent proporional cu nivelul
lichidului n vas.
Parametrii tehnici ai echipamentului de msurare sunt:
domeniul de msurare a nivelului: (800...6000)mm;
precizia de msurare a nivelului: 4 mm;
rezolutia de msurare a nivelului: 1 mm;
precizia de msurare a temperaturii: 10C;
temperatura mediului de lucru: (-20...+100)0C;
temperatura de operare: (-20...+70)0C.
Noile aplicaii n domeniul automatizrilor industriale sunt definite de un
grad nalt de inteligen, ceea ce permite adoptarea de noi algoritmi de
funcionare, att n prelucrarea i transmiterea informaiilor, ct i n conducerea
proceselor.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

349

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

Tema propus se ncadreaz n eforturile de introducere n producia de


serie de noi tipuri de traductoare inteligente, cu referire la msurarea nivelului.
Performanele impuse prin tem, ct i soluiile tehnice adoptate justific
ncadrarea nivelmetrului cu ultrasunete n clasa traductoarelor inteligente.
Gradul de inteligen este determinat de funciile traductorului i anume:
1. Programarea regimurilor de funcionare:
domeniul de msurare a nivelului;
limitele de alarmare, superioar i inferioar, a valorii nivelului;
valorea zonei de insensibilitate la semnalizarea ieirii din limite;
2. Protecie la accesul neautorizat pentru programarea regimurilor de
funcionare prin utilizarea unei parole de acces;
3. Utilizarea unei tastaturi funcionale pentru programarea regimurilor de
funcionare i pentru introducerea parolei de acces;
4. Afiarea pe un display alfanumeric cu cristale lichide a valorilor
programate i a parametrilor msurai;
5. Asigurarea funcionrii n clasa de exactitate impus, n condiiile
modificrii valorii temperaturii mediului ambiant;
6. Transmiterea a dou comenzi de alarmare, la atingerea unor valori
critice ale nivelului lichidului n vas;
7. Transmiterea unui semnal unificat de curent proporional cu nivelul
lichidului;
8. Transmiterea pe o linie serial a datelor prelevate din proces ctre un
calculator ierarhic superior, ceea ce este necesar n sistemele de
conducere sau monitorizare a proceselor tehnologice, n monitorizarea
unor sisteme n ecologie i n cercetri pe statii pilot.

10.1 PREZENTAREA HARDWARE A TRADUCTORULUI


INTELIGENT DE NIVEL
Schema funcional a traductorului inteligent de nivel cuprinde
urmtoarele module.
Unitatea Central de Prelucrare. Unitatea Central de Prelucrare
permite programarea prin intermediul unei tastaturi, memorarea ntr-o
memorie nevolatil i vizualizarea pe un afiaj cu cristale lichide a
regimurilor de funcionare alese de ctre operatorul uman dup
confirmarea unei parole, efectuarea calculelor necesare ndeplinirii
funciilor principale ale aparatului i pentru asigurarea comunicaiei cu
un calculator ierarhic superior;
Celula de msurare a nivelului. Celula de msurare a nivelului, referit
n continuare ca senzor de ultrasunete, are rolul de a emite un fascicol
de ultrasunete i de a recepiona unda reflectat. Comanda emisiei se
350

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

face de ctre unitatea central de prelucrare, care primete de la celula


de msurare i semnalul determinat de ctre unda reflectat;
Senzorul de temperatur. Senzorul de temperatur servete pentru
obinerea unui semnal privind valoarea temperaturii mediului ambiant,
valoare care este utilizat n calcule pentru corecia cu temperatura a
informaiei de nivel;
Interfaa serial de comunicaii. Interfaa serial de comunicaie
permite transmiterea informaiilor rezultate din procesul de msurare a
nivelului i temperaturii, la un calculator superior ierarhic, utilizat
pentru conducerea sau monitorizarea unui proces tehnologic;
Modulul de alarmare / semnalizare. Modulul de alarmare / semnalizare
transmite n exterior dou comenzi asociate cu atingerea unor valori
critice, programabile, a nivelului lichidului n vas: Limita Superioar i
Limita Inferioar;
Modulul pentru semnal unificat. Modulul pentru semnal unificat
transmite n exterior un semnal unificat de curent, proporional cu
nivelul lichidului n vas;
Modul pentru tensiuni de alimentare.
Traductorul de nivel este compatibil cu aparatura din sistemele unificate
de automatizare, prin furnizarea unui semnal unificat standardizat i prin
utilizarea standardului de comunicatie pe linii seriale RS-232.
Modulul surselor de alimentare conine:
SURSA DE ALIMENTARE +5V:
Utilizare:
alimentarea unitii centrale de prelucrare;
alimentarea unitatii de afiare alfanumeric;
alimentarea tastaturii;
alimentarea circuitului de intrare a optocuplorului;
SURSA DE ALIMENTARE +24V:
Utilizare:
alimentarea senzorului de nivel cu ultrasunete;
alimentarea traductorului de nivel (daca se utilizeaz);
alimentarea traductorului de temperatur;
Alimentarea circuitelor de alarmare.
SURSELE DE ALIMENTARE +15V i -15V
Utilizare:
alimentarea generatorului de curent (4...20)mA;

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

351

352
ADC1

ADC0

To PC

TEMPERATURE SENSOR

ULTRASONIC
SENSOR

CT1I

I/U Converter
0,5..4 V

f/I Converter
4..20 mA

CT0I

P4.0 .. P4.7

ADC 0..1

PWM0

MAX232

RS-232

RESET

XTAL2

PSEN

C 80C552

A8 .. A15

P5.0 .. P5.7

ALE

AD0 .. AD7

PWM 0..1

RxD

TxD

RD
WR

MICROCONTROLLER

P4.0 .. P4.7

XTAL1

S0

74HCT08

A8 .. A15

OE

LE

LATCH

74HCT373

A0.. A7

AD0 .. AD7

CS

BUFFER
74HCT244

S3

OE

A15

A15

A0 ..A14

AD0 .. AD7

A0 .. A15

KM62256

WR
RD

ADR

RAM

S2

LE

ADR

A15

A8

A5
.
.
A7

DCD
0
1
2
3
4
5
6
7
74HCT138

G1
G2A
G2B

A..C

A0 ..A14
A15

A0 .. A15

CS
RD
27C256

DATA

EPROM

PROGRAMARE
UP
DOWN
VALIDARE
IN 0..7
CONNECTOR

LOCAL KEYBOARD
+5V

NIA
UNIT

RELAY
UNIT

DATA

LATCH
74HCT374 OE

OUT 8..15
CONNECTOR

AD0 .. AD7

74HCT08

Q
LCD
11,0592 MHz CONNECTOR

NSA
UNIT

DIGITAL
FILTER
UNIT

LOCAL LCD DISPLAY

RELAY
UNIT

COMMAND
UNIT

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

Fig. 10.1 Schema bloc a nivelmetrului cu ultrasunete.

Circuitule de control ale senzorului de nivel cu ultrasunete


(varianta cu ieire logic).
Circuitul de comand a emisiei fascicolului ultrasonic este organizat n
jurul unui tranzistor n montaj open-colector, comandat n baz de semnalul
AX8 (extensie port ieire output high). Semnalul de comand a tranzistorului

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

este i comanda de start pentru contorul de evenimente CT1 prin semnalul CT0I.
Circuitul de recepie a semnalului reflectat este organizat n jurul unui
tranzistor n montaj EC. Semnalul CT1I, cules n colectorul tranzistorului, este
semnalul de stop pentru contorul de evenimente.
Generatorul pentru semnal unificat n curent
n vederea prelucrrii exterioare a informaiei de nivel, este prevazut i o
ieire pentru semnal unificat n curent (4...20)mA.
n acest scop se utilizeaz un generator de curent comandat de unul din
canalele cu ieire modulat n durat, prin semnalul PWM0.
Din considerente de protecie aceast seciune este separat galvanic de
restul circuitelor, prin utilizarea unei surse de alimentare dedicate i izolat optic
pe calea circuitului de comand.
Generaratorul pentru semnal unificat n curent este un convertor tensiune
(0...5)V / curent (4...20)mA.
Tensiunea de comand se obine, dup filtrare, din semnalul PWM0 (un
tren de impulsuri modulate n durat, cu frecvena de 10KHz), aplicate la
intrarea convertorului prin intermediul unui optocuplor comandat la intrare prin
intermediul unui tranzistor.
Circuitele de conversie curent / tensiune
Exist dou astfel de circuite. Acestea convertesc un semnal de curent
unificat n domeniul (4...20)mA ntr-un semnal de tensiune n domeniul (1...5)V,
n vederea prelucrrii ulterioare n seciunea anlogic a unitii de control la care
se conecteaz prin semnalele ADC0 i respectiv ADC1.
Constructiv, aceste circuite de conversie simuleaz o rezisten
echivalent de 250 cu o precizie de 0,1%.
Primul circuit este rezervat conectrii unui traductor de nivel cu ieire n
curent, ca soluie alternativ la utilizarea senzorului cu ieire logic, iar cel de al
doilea conectrii unui traductor de temperatur. Ambele traductoare sunt
alimentate de la sursa +24V.
Alimentarea convertorului analog / digital
Terminalele de alimentare sunt AVDD conectat la sursa +5V i AVSS
conectat la masa sistemului.
Pentru obinerea tensiunilor de referin s-a utilizat un circuit specializat
LM 336-5V, avnd o bun precizie i stabilitate termic.
Tensiunea de referinta REF+ (+5V) se obine direct la bornele referinei,
iar REF- (+1V) se obine pe cursorul unui semireglabil.
Circuite de alarmare
Sunt prevzute dou circuite de alarmare, activate la atingerea unor nivele
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

353

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

critice programabile.
Circuitele sunt controlate la intrare de semnalele AX9 i respectiv AX10
(portul de ieire output high), care prin intermediul unor tranzistoare comand
dou releele.
Ieirea circuitului Alarmare Superioar este constituit de perechea de
contacte N.I./N.D. a releului K1.
Ieirea circuitului Alarmare Inferioar este constituit de perechea de
contacte N.I./N.D. a releului K2.
Simulator pentru senzorul de ultrasunete
n lipsa senzorului ultrasonic, a fost utilizat un circuit de simulare a
acestuia. Circuitul introduce o ntrziere reglabil n domeniul (0...45)ms, pe
calea de la circuitul de comand a senzorului (semnal AX8) la circuitul de
recepie (semnal CT1I), simulnd timpul parcurs de fascicolul ultrasonic de la
emitor la suprafaa tint i napoi.
Circuitul de ntrziere se conecteaz n locul senzorului ultrasonic.
Primul etaj al circuitului, introduce o ntrziere reglabil cu ajutorul unui
poteniometru, n domeniul (0...45)ms. Acesta este un monostabil comandat de
tranziia 10 a impulsului de comand (semnalul AX8 inversat).
Al doilea etaj este, de asemenea, un monostabil, comandat de ieirea Q
a primului monostabil la tranziia 10 a acesteia. Rezistena variabil R6
permite ajustarea duratei impulsului cules la ieirea negat a monostabilului,
care comand tranzistorul (n colectorul cruia se culege semnalul CT1I)
corespunztor undei reflectate.

10.2 PROGRAMUL DE APLICAII NIV.ASM


Faza de dezvoltare a programului de aplicaie destinat determinrii
nlimii coloanei de lichid dintr-un vas, folosind un senzor cu ultrasunete
conectat la o unitate central de prelucrare cu microcontroller 80C552, a constat
din:
scrierea programului, n limbajul de asamblare al familiei de
microcontroller-e 8051, cu ajutorul unui editor ASCII de texte, ca de
exemplu EDIT.COM din sistemul de operare MS-DOS,
NCEDIT.EXE
din
NORTON
COMMANDER
sau
NOTEPAD.EXE din sistemul de operare WINDOWS (se impune
utilizarea unui editor ASCII pentru a nu se introduce caractere speciale
de control n sursa programului). n sursa programului de aplicaie sunt
declarate n mod explicit resursele suplimentare ale microcontrollerului 80C552 n raport cu 8051, ntr-o seciune declarativ la nceput
(aceasta seciune conine linii de cod n limbaj de asamblare de tip
354

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

ADCON equ 0C5H). Programul surs de aplicaie are numele


NIV.ASM;
asamblarea sursei programului de aplicaie, cu ajutorul asamblorului
A51.EXE, specializat pentru familia de microcontroller-e 8051,
folosind sintaxa:
A51.EXE NIV.ASM

n urma executrii asamblrii programului surs de aplicaii,


asamblorul A51.EXE genereaz dou fiiere: NIV.LST, un fiier list
ce este destinat localizrii eventualelor erori rezultate n urma
procesului de asamblare i NIV.OBJ, un fiier de tip obiect, care va fi
folosit n continuare pentru obinerea formatului executabil;
obinerea formatului executabil, de tip INTEL HEX, pe baza fiierului
de tip OBJ, folosid programul OHS51.EXE cu sintaxa:
OHS51.EXE NIV.OBJ

Este generat fiierul executabil NIV.HEX ce constituie programul


propriu-zis de aplicaie. Ca orice fiier format HEX, acesta ncepe cu
un header ce conine numrul de octei ai programului, adresa la care
este organizat programul (specificat prin directiva ORG n prima
linie), urmat de corpul programului i se ncheie cu o sum de control.
rularea programului NIV.HEX presupune rularea pe un calculator
gazd, de tip PC, a programului monitor al unitii centrale cu
microcontroller 80C552, denumit MT.EXE, care are n primul rnd
rolul de a stabili comunicaia serial ntre sistemul cu microcontroller
i calculatorul de tip PC. Sintaxa utilizat este urmtoarea:
MT.EXE X

n care X=1, 2, 3, 4 specific indicativul portului serial utilizat pentru


comunicaie (1 specific portul serial COM1, 2 specific portul serial
COM2, 3 specific portul serial COM3, 4 specific portul serial
COM4). Dac parametrul X lipsete, este utilizat n mod implicit
portul serial COM1.
Stabilirea comunicaiei seriale ntre cele dou sisteme (pe viteza de
9600 bauds, folosind cuvinte de date cu lungimea de 8 bii, fr
paritate, cu un bit de STOP i protocol XON-XOFF) este indicat prin
apariia pe display-ul sistemului de calcul a unui mesaj, urmat de
prompter-ul de monitor (caracterul #). n acest stadiu poate fi
transferat ctre sistemul cu microcontroller programul de aplicaie,
NIV.HEX, folosind comanda de up-load F2 i indicnd numele
programului de aplicaie. Urmeaz procesul de up-load, indicat prin
apariia pe display-ul calculatorului a unei succesiuni de linii, de
lungime constant cu excepia ultimei, ce ncep cu #:_, i sunt
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

355

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

alctuite din cte 16 octei n format hexa (date) plus un octet sum de
control. La terminarea transferului de date pe legatura serial, pe
display-ul calculatorului apare prompter-ul de monitor (caracterul #).
Lansarea n execuie a programului se execut cu comanda de monitor
GO ADR, n care ADR reprezint adresa la care este organizat
programul n memoria de date a microcontroller-ului, specificat n
prima linie a acestuia prin directiva ORG. n cazul de fa, sintaxa
este urmtoarea:
G 8000

n faza ulterioar punerii la punct a programului de aplicaie, acesta va fi


nscris n memoria de program a unitii centrale de prelucrare cu
microcontroller.
Interconectarea sistemului de calcul cu unitatea central de prelucrare cu
microcontroller este realizat prin intermediul unui cablu serial cu trei fire.

10.2.1 DESCRIEREA PROGRAMULUI DE APLICATIE


NIV.ASM
Programul surs de aplicaie, cu denumirea NIV.ASM, este organizat
modular, sub forma unui corp principal al aplicaiei i o colecie de subrutine.
Acestea reprezint secvene de linii de cod care au o frecven de apariie mare
n cadrul aplicaiei. O astfel de subrutin este apelat cu instruciunea ACALL
subrutina i se ncheie cu instruciunea RET pentru a se reveni la poziia
imediat ulterioar apelrii acesteia n cadrul programului principal.
n fig. 10.2 este prezentat organigrama general a programului
NIV.ASM.

10.2.1.1 SECIUNEA DE INIIALIZARE I DECLARATIV


Secvena de linii de cod n limbaj de asamblare ce reprezint programul
principal ncepe cu instruciunea ORG adresa, specificnd adresa din memoria
de date a microcontroller-ului la care ncepe programul.
n continuare urmeaz declararea tuturor resurselor specifice ale
microcontroller-ului 80C552 (care nu exist n cadrul microcontroller-ului 8051)
utilizate n cadrul aplicaiei, cum ar fi:
ADCON - adresa registrului de control al convertorului analog-digital;

356

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Start

Mesaj introductiv
Nivelmetru cu ultrasunete

Rutina citire tastatura

NU

Tasta apasata ?

DA

DA

Tasta validare (#)?

NU

Secventa de
programare

Secventa de
masurare propriu-zisa

Fig. 10.2 Organigrama general a programului NIV.ASM.

ADCH - adresa registrului care conine octetul cel mai semnificativ al


rezultatului conversiei analog-digitale;
PWMP - adresa registrului de setare a frecvenei de ieire comun
ambelor canale modulate n durat;
PWM0, PWM1 - adresele registrelor de setare a factorului de umplere
pentru cele dou canale cu ieiri modulate n durat;
CTH0, CTL0 - adresele registrelor superior, respectiv inferior de
captare a evenimentelor CT0;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

357

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

CTH1, CTL1 - adresele registrelor superior, respectiv inferior de


captare a evenimentelor CT1;
TMH2, TML2 - adresa octeilor superior, respectiv inferior ale timerului T2;
TM2CON - adresa registrului de control al timer-ului T2;
CTCON - adresa registrului de control al registrelor de captare a
evenimentelor;
IEN1 - adresa registrului de activare a ntreruperilor asociate
registrelor de captare a evenimetelor i de comparare.
Urmeaz o seciune introductiv de linii de cod, care iniializeaz
resursele unitii centrale cu microcontroller (afiajul cu cristale lichide, canalele
de ieire modulate n durat, portul de ieire de comenzi), afieaz un mesaj
introductiv, afieaz un al doilea mesaj destinat validrii operrii echipamentului
de msurare sau de parcurgere a seciunii de programare a funcionrii.
Ramificarea n cadrul programului este realizat prin citirea tastaturii: dac este
acionat tasta de validare (#), atunci se execut un salt n program pn la
seciunea de msurare (funcionare normal a echipamentului); dac este
acionat tasta de programare (*) sau oricare alt tast, se intr n seciunea de
programare a funcionrii echipamentului de msurare.

10.2.1.2 SECIUNEA DE PROGRAMARE A PARAMETRILOR


DE FUNCIONARE
n cadrul seciunii de programare a funcionrii echipamentului de
msurare, accesul este limitat prin validarea unei parole prestabilite: n urma
afirii unui mesaj de validare a parolei, se ateapt acionarea temporizat a
dou taste, avnd drept rezultat un octet mpachetat BCD. Acionarea unei taste
se soldeaz cu afiarea a cte unui caracter * pe cea de-a doua linie a afiajului
LCD. Octetul mpachetat BCD este comparat cu parola prestabilit, proprie
echipamentului de msurare. n cazul n care cei doi octei nu coincid, se
afieaz un mesaj de incorectitudine a parolei, iar programul revine n bucl la
seciunea de validare a parolei. n cazul coincidenei celor doi octei, se afieaz
un mesaj de corectitudine a parolei, iar utilizatorul are acces la seciunea
efectiv de programare a parametrilor de msurare.
n prima faz, este programat nlimea vasului n care se face
determinarea nlimii coloanei de lichid (H), prin intermediul tastaturii. Se
tasteaz patru cifre de la tastatur, ceea ce conduce la obinerea a doi octei
mpachetai BCD. n paralel se execut i afiarea valorii programate. Cei doi
octei mpachetai BCD, reprezentnd nlimea vasului, sunt depui n memoria
de date a unitii centrale la adresele FF00H i FF01H.
n faza a doua, este programat nivelul superior de alarmare (NSA), prin
358

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

intermediul tastaturii. Se tasteaz patru cifre de la tastatur, ceea ce conduce la


obinerea a doi octei mpachetai BCD. n paralel se execut i afiarea valorii
programate. Cei doi octei mpachetai BCD, reprezentnd nivelul superior de
alarmare, sunt comparai cu nlimea vasului, programat n pasul anterior i
depui n memoria de date a unitii centrale la adresele FF02H i FF03H doar
dac rezultatul scderii pe 16 bii (H - NSA) este pozitiv. Dac nivelul superior
de alarmare programat este mai mare dect nlimea vasului, programul revine
n bucl la seciunea de programare a nivelului superior de alarmare.
n faza a treia, este programat nivelul inferior de alarmare (NIA), prin
intermediul tastaturii. Se tasteaz patru cifre de la tastatur, ceea ce conduce la
obinerea a doi octei mpachetai BCD. n paralel se execut i afiarea valorii
programate. Cei doi octei mpachetai BCD, reprezentnd nivelul inferior de
alarmare, sunt comparai cu nivelul superior de alarmare, programat n pasul
anterior i depui n memoria de date a unitii centrale la adresele FF04H i
FF05H doar dac rezultatul scderii pe 16 bii (NSA - NIA) este pozitiv. Dac
nivelul inferior de alarmare programat este mai mare dect nivelul superior de
alarmare, programul revine n bucl la seciunea de programare a nivelului
inferior de alarmare.
n cea de-a patra faz a seciunii de programare a parametrilor de
funcionare ai echipamentului este realizat calibrarea generatorului de curent
comandat cu care este echipat sistemul. Aceast calibrare este realizat n dou
etape:
n prima etap, este programat factorul de umplere al ieirii modulate
n durat PWM0 la valoarea FFH, astfel nct la ieire (care este
negat) se obine un nivel zero (0V). Acest nivel este utilizat pentru
calibrarea captului inferior de scal a generatorului de curent la
valoarea de 4 mA. Programul ateapt n bucl acionarea unei taste; la
acionare se trece la cea de-a doua etap;
n cea de-a doua etap, este programat factorul de umplere al ieirii
modulate n durat PWM0 la valoarea 00H, astfel nct la ieire (care
este negat) se obine un nivel ridicat (+5V). Acest nivel este utilizat
pentru calibrarea captului superior de scal a generatorului de curent
la valoarea de 20 mA. Programul ateapt n bucl acionarea unei
taste; acionarea oricrei taste ncheie seciunea de programare a
parametrilor de funcionare ai echipamentului;
trebuie menionat faptul c n cadrul celor dou etape descrise anterior
pentru calibrarea independent a capetelor de scal ale generatorului
de curent, poate fi efectuat i calibrarea circuitelor de intrare cu care
sunt echipate dou dintre cele opt intrri ale convertorului analogdigital, implementat n structura microcontroller-ului.
n fig. 10.3 este prezentat organigrama seciunii de programare a
parametrilor de funcionare a echipamentului nivelmetru cu ultrasunete.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

359

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

Start

Mesaj
Validare parola
Citire tastatura
(2 taste)

NU

Parola
corecta ?

Mesaj
Parola incorecta

DA

Mesaj
Parola corecta
Mesaj
Inaltime vas
Citire tastatura
(4 taste)
Afisare
inaltime vas (H)
Memorare
inaltime vas (H)
Mesaj
Nivel superior alarmare
Citire tastatura
(4 taste)

NSA>H
Afisare
nivel superior alarmare
Memorare
nivel superior alarmare
Mesaj
Nivel inferior alarmare
Citire tastatura
(4 taste)
Citire tastatura
(1 tasta)
DA
NU

Tasta apasata ?

NU

DA
Afisare
nivel inferior alarmare
Programare
PWM0=FFH

Memorare
nivel inferior alarmare
Mesaj calibrare
generator de curent

Citire tastatura
(1 tasta)

NU

NIA>NSA

Tasta apasata ?

Programare
PWM0=FFH

DA

End

Fig. 10.3 Organigrama seciunii de programare a parametrilor de funcionare.

360

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

10.2.1.3 SECIUNEA DE MSURARE PROPRIU-ZIS


n acest punct, cele dou ramuri - de validare a operrii normale a
echipamentului, respectiv de programare a parametrilor de funcionare, converg
i se intr n seciunea de msurare propriu-zis.
Seciunea de msurare propriu-zis ncepe cu afiarea unui mesaj de
avertizare a faptului c s-a ajuns n seciunea de msurare, care este meninut
circa 0,5 secunde. Se continu cu iniializarea seciunii de captare a
evenimentelor:
sunt dezactivate ntreruperile provenite de la depirea superioar pe
8/16 bii a coninutului timer-ului T2, de la registrele de captare a
evenimentelor, de la circuitele de comparare a coninutului timer-ului
T2 cu registrele special prevzute n acest sens;
sunt iniializate (ncrcate cu 0) registrele CTL0, CTH0, CTL1, CTH1,
TML2, TMH2;
este programat registrul CTCON, astfel nct registrele de captare a
evenimentelor CTI0 i CTI1 s fie activate de fronturile descresctoare
ale impulsurilor externe;
este programat timer-ul T2, prin activarea acestuia, cu dezactivarea
depirii pe 8/16 bii, ceasul de numrare fiind constituit de un
oscilator intern cu frecvena 1/12 din frecvena oscilatorului
microcontroller-ului, urmat de un registru de divizare cu 8 a acestui
ceas.
Este, n continuare, activat emitorul senzorului cu ultrasunete prin
bascularea nivel cobort / nivel ridicat a bitului AX8. Frontul cresctor al
semnalului AX8 determin captarea n registrul CTI0 a coninutului timer-ului
T2 la acest moment de timp. Dup reflexia ultrasunetelor de suprafaa lichidului,
acestea sunt captate de senzor, care emite un semnal de acelai tip cu cel de
activare. Frontul cresctor al acestui semnal determin captarea coninutului
timer-ului T2 n registrul CTI1. Se determin numrul de impulsuri captate pe
durata emisie-recepie prin efectuarea diferenei pe 2 octei ntre registrele CTI1
i CTI0. Aceast diferen este codificat, urmnd s fie utilizat pentru
determinarea nlimii coloanei de lichid din vas, conform urmtoarei relaii:
CTI1 CTI0 CODIFICARE

N
(10.1)
N MAX N
6 = h
N MAX
n aceast faz de elaborare a programului, codificarea este realizat prin
extragerea biilor 118, respectiv 74, ai diferenei dintre CTI1 i CTI0 i
alctuirea unui octet (N). Obinerea nlimii coloanei de lichid din vas se obine
conform ecuaiei de mai sus, n care N MAX reprezint valoarea octetului de cod
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

361

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

pentru nlimea maxim a vasului, respectiv depinde de tipul de traductor


( N MAX = 127 pentru 6 m). nlimea coloanei de lichid este afiat dup
determinarea cifrelor BCD ale acesteia, utiliznd un algoritm iterativ de
mprire la 10. Cele patru cifre BCD obinute prin acest algoritm sunt
mpachetate n doi octei codificai BCD i memorate n memoria de date a
microcontroller-ului la adresele FF006H i FF07H
Cuvntul de date care corespunde nlimii coloanei de lichid,
complementat, adic 2 (N MAX N ) , este folosit pentru programarea factorului
de umplere al impulsurilor de la ieirea modulat n durat PWM0, care
comand generatorul de curent.
Se verific depirea nivelurilor prestabilite de alarmare (NSA i NIA),
comparnd nlimea coloanei de lichid din vas cu pragurile programate anterior.
Se efectueaz diferena dintre nivelul superior de alarmare (NSA) i nlimea
coloanei de lichid din vas, iar dac diferena este negativ (setarea indicatorului
CARRY) se poziioneaz pe 1 logic bitul AX9. Se efectueaz diferena dintre
nlimea coloanei de lichid din vas i nivelul inferior de alarmare (NIA), iar
dac diferena este negativ (setarea indicatorului CARRY) se poziioneaz pe
1 logic bitul AX10. Aceti bii ai portului de ieire acioneaz releele
corespunztoare. Att valorile nivelului superior, ct i inferior de alarmare,
NSA i NIA, sunt citite din memoria de date a microcontroller-ului, de la
adresele specificate anterior.
Urmeaz msurarea temperaturii mediului n care este efectuat
determinarea nlimii coloanei de lichid. Ieirea n curent, de tip unificat (4...20)
mA, a sondei de temperatur este aplicat unui convertor curent-tensiune de tip
unt. Aceast tensiune este aplicat intrrii ADCIN0 a convertorului analogdigital. Conversia este demarat prin software, programnd n registrul ADCON
bitul ADCCON.3 la 1 logic, iar biii ADCON.2, ADCON.1, ADCON.0
conform adresei canalului de intrare utilizat (n aceast situaie, cei trei bii sunt
programai la 0 logic). Se ateapt sfritul conversiei analog-digitale, lucru
sesizat prin poziionarea n 1 logic a bitului ADCON.4 (se execut de fapt o
verificare n bucl a acestui bit, prin intermediul acumulatorului). Urmeaz
interpretarea rezultatului i afiarea acestuia. Rezultatul conversiei este
transferat n acumulator, este mprit la 2 pentru a se realiza conversia n
domeniul specificat de temperatur, apoi se obin cifrele temperaturii printr-un
algoritm de acelai tip ca n cazul determinrii nlimii coloanei de lichid.
Programul execut un salt necondiionat la secvena de iniializare a
timer-ului T2, pentru reluarea n bucl infinit a seciunii de msurare propriuzis. Ieirea din program se poate face doar prin reset-area unitii centrale cu
microcontroller. Poate fi prevzut, ns, facilitatea de citire a tastaturii dup
fiecare secven de msurare i n cazul actionrii tastei de validare (#) s se
ncheie forat execuia acestuia.
Rutinele scrise i utilizate n cadrul acestei aplicaii sunt:
362

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

subrutina de citire a unei cifre zecimale de la o tastatur matricial cu


trei linii i patru coloane. Rezultatul citirii sub form BCD se afl n
registrul R1;
subrutina de scriere la un port de ieire i de citire de la un port de
intrare, utilizat n cadrul subrutinei de gestionare a tastaturii.
Informaiile sunt vehiculate prin intermediul acumulatorului;
subrutina de scriere ir de caractere la afiajul cu cristale lichide LCD;
subrutina de ntrziere cu 0,5 secunde (0,5sec = (7 instr. NOP x 12
perioade ceas/NOP x 256 x 256)/11,059MHz);
subrutina de conversie hexa-ASCII, utilizat pentru afiarea la LCD.
Sursa i destinaia sunt constituite de acumulator;
subrutina de transmisie la LCD a unui caracter ASCII coninut n
registrul R2;
subrutina de iniializare LCD. Aceast rutin trimite la LCD comanda
#38H = 0011 1000B. Conform datelor de catalog, acest comand
seteaz urmtorii parametri ai afiajului: bitul 5 - definete aceast
comand (function set); bitul 4 (DL-Data Length) = 1 seteaz dialogul
pe 8 bii ntre procesor i LCD; bitul 3 (N-Number of display lines) = 1
seteaz numrul liniilor afiajului ca fiind 2^N=2; bitul 2 (F-Character
Font) = 0 seteaz forma caracterului ca fiind 5*7 puncte;
subrutina de tergere a afiajului cu cristale lichide i setare a modului
de lucru;
subrutina ce testeaz dac este sau nu posibil transmiterea unui nou
caracter ctre LCD, pe baza informaiilor furnizate de rutina RDCMD.
Se testeaz bitul 7 (BF-Busy Flag) al registrului de stare al LCD. Dac
BF=1, nseamn c LCD efectueaz o operaie intern i, deci, nu
poate accepta un nou caracter;
subrutina RDCMD selecteaz afiajul i citete din registrul de stare al
LCD starea curent a driver-elor acestuia, informaie care este depus
n acumulator;
rutina WRCMD scrie o comand la driver-ele de afiaj, n urma
verificrii strii acestora. Se selecteaz afiajul LCD i comanda
coninut de registrul R2 este transferat driver-elor din LCD;
subrutina WRDAT este identic cu WRCMD, dar este utilizat pentru
scrierea la driver-ele LCD a codului caracterelor ce urmeaz a fi
afiate;
subrutina DELAY, ce realizeaz o ntrziere cu 80 microsecunde,
pentru funcionarea intern a LCD.
n fig. 10.4 este prezentat organigrama seciunii de msurare propriu-zis
a nlimii coloanei de lichid din vas i a temperaturii. n fig. 10.5 este
prezentat organigrama rutinei de gestionare a tastaturii matriciale cu trei linii i
patru coloane.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

363

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

Start

Mesaj
Regim masurare
Initializare si programare
timer T2
Activare impuls
iesire AX8
Captare T2
in registrul CTI0
Rutina
intarziere
Calcul
CTI1-CTI0
Codificare si calcul
inaltime coloana (h)
Programare
registru PWM0
Obtinere cifre BCD
inaltime h si afisare

Activare semnal
depasire superioara AX9

DA

Activare semnal
depasire inferioara AX10

DA

h>NSA

NU

NU

h>NSA

Programare
convertor A/D
Citire
registru ADCON

NU

End of
Convertion ?

DA

Citire rezultat
conversie A/D
Codificare si calcul
temperatura
Afisare
temperatura
Citire tastatura
(1 tasta)
Citire tastatura
(1 tasta)

NU

Tasta
validare ?

DA

End

Fig. 10.4 Organigrama seciunii de msurare propriu-zis.

364

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Start

Programare port iesire


Bit3=1 Bit2=0 Bit1=1 Bit0=1
Delay
Citire port intrare

NU

Tasta apasata ?

DA

Programare port iesire


Bit3=1 Bit2=1 Bit1=0 Bit0=1
Delay
Citire port intrare

NU

Tasta apasata ?

DA
Salvare octet

Programare port iesire


Bit3=1 Bit2=1 Bit1=1 Bit0=0

Mascare biti semnificativi


Determinare cod coloana

Delay

Reconstituire octet

Citire port intrare

Interschimb grup de 4 biti


NU

Tasta apasata ?

DA

Mascare biti semnificativi


Determinare cod linie
Determinare cod tasta

End

Fig. 10.5 Organigrama rutinei de gestionare a tastaturii.


SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

365

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

10.3 PROGRAMUL DE APLICAII NIVOK.ASM


A doua variant a programului surs de aplicaie, cu denumirea
NIVOK.ASM, este organizat modular, sub forma unui corp principal al
aplicaiei i o colecie de subrutine.

10.3.1 SECIUNEA DE INIIALIZARE I DECLARATIV


Secvena de linii de cod n limbaj de asamblare ce reprezint programul
principal ncepe cu instruciunea ORG adresa, specificnd adresa din memoria
de date a microcontroller-ului la care ncepe programul.
n continuare urmeaz declararea tuturor resurselor specifice ale
microcontroller-ului 80C552 (care nu exist n cadrul microcontroller-ului 8051)
utilizate n cadrul aplicaiei.
Urmeaz o seciune introductiv de linii de cod, care iniializeaz
resursele unitii centrale cu microcontroller (afiajul cu cristale lichide, canalele
de ieire modulate n durat, portul de ieire de comenzi), afieaz un mesaj
introductiv, afieaz un al doilea mesaj destinat validrii operrii echipamentului
de msurare sau de parcurgere a seciunii de programare a funcionrii.
Ramificarea n cadrul programului este realizat prin citirea tastaturii: dac este
acionat tasta de validare (ENTER), atunci se execut un salt n program pn
la seciunea de msurare (funcionare normal a echipamentului); dac este
acionat tasta de programare (MODE), se intr n seciunea de programare a
funcionrii echipamentului de msurare.

10.3.2 SECIUNEA DE CALIBRARE A GENERATORULUI DE


CURENT
Se intr ntr-un meniu (opional) destinat calibrrii generatorului de
curent, care afieaz un ecran indicnd operaia curent. Calibrarea
generatorului de curent este validat prin acionarea tastei de programare
(MODE) sau poate fi ocolit prin acionarea tastei de validare (ENTER).
Calibrarea generatorului de curent al sistemului necesit reglarea manual a
capetelor de scal (reglajele sunt independente), efectundu-de, de obicei, doar
n faza de realizare a echipamentului de msurare i comportnd dou etape:
n prima etap, este programat factorul de umplere al ieirii modulate
n durat PWM0 la valoarea 00H, astfel nct la ieire (care este
direct) se obine un nivel zero (0V) i se afieaz un ecran care indic

366

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

operaia curent. Acest nivel este utilizat pentru calibrarea captului


inferior de scal a generatorului de curent la valoarea de 4 mA.
Programul ateapt n bucl acionarea tastei de validare (ENTER); la
acionarea ei se trece la cea de-a doua etap;
n cea de-a doua etap, este programat factorul de umplere al ieirii
modulate n durat PWM0 la valoarea FFH, astfel nct la ieire (care
este direct) se obine un nivel ridicat (+5V) i se afieaz un ecran
care indic operaia curent. Acest nivel este utilizat pentru calibrarea
captului superior de scal a generatorului de curent la valoarea de 20
mA. Programul ateapt n bucl acionarea tastei de validare
(ENTER); acionarea ei ncheie seciunea de calibrare a generatorului
de curent;
trebuie menionat faptul c n cadrul celor dou etape descrise anterior
pentru calibrarea independent a capetelor de scal ale generatorului
de curent, poate fi efectuat i calibrarea circuitelor de intrare
(convertoare curent-tensiune) cu care sunt echipate dou dintre cele
opt intrri ale convertorului analog-digital, implementat n structura
microcontroller-ului.
Se afieaz un mesaj destinat seleciei fie a operrii echipamentului de
msurare, fie de parcurgere a seciunii de programare a funcionrii. Ramificarea
n cadrul programului este realizat prin citirea tastaturii: dac este acionat
tasta de validare (ENTER), atunci se execut un salt n program pn la
seciunea de msurare (funcionare normal a echipamentului); dac este
acionat tasta de programare (MODE), se intr n seciunea de programare a
funcionrii echipamentului de msurare.

10.3.3 SECIUNEA DE PROGRAMARE A PARAMETRILOR


DE FUNCIONARE
n cadrul seciunii de programare a funcionrii echipamentului de
msurare, accesul este limitat prin validarea unei parole prestabilite: n urma
afirii unui mesaj ce indic aciunea de introducere a parolei, se acioneaz
tastele UP / DOWN pentru configurarea primei cifre a parolei, se valideaz
prima cifr prin acionarea tastei de validare, se poziioneaz a doua cifr prin
acionarea tastelor UP / DOWN, urmat de validarea acesteia i, implicit a
parolei. Configurarea celor dou cifre ale parolei au drept rezultat un octet
mpachetat BCD. Octetul mpachetat BCD este comparat cu parola prestabilit,
proprie echipamentului de msurare. n cazul n care cei doi octei nu coincid, se
afieaz un mesaj de incorectitudine a parolei, iar programul revine n bucl la
seciunea de validare a parolei. n cazul coincidenei celor doi octei, se afieaz
un mesaj de corectitudine a parolei, iar utilizatorul are acces la seciunea
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

367

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

efectiv de programare a parametrilor de msurare.


Aceasta variant de aplicaie utilizeaz valori prestabilite ale parametrilor
globali utilizai de ctre echipamentul de msurare: nlimea vasului, nivelul
superior de alarmare, respectiv nivelul inferior de alarmare, pentru a se reduce
timpul de programare. Valoarea implicit a nlimii vasului este 6.000 m
(conform specificaiei de proiectare), iar valorile implicite ale nivelurilor de
alarmare reprezint dou treimi, respectiv o treime din nlimea vasului (6.000
m), adic NSA=4.000m iar NIA=2.000m.
n prima faz, este programat nlimea vasului n care se face
determinarea nlimii coloanei de lichid (H), prin intermediul tastaturii. Se
afieaz meniul de programare a nlimii vasului i valoarea implicit a
acesteia. Cursorul este poziionat pe prima cifr a nlimii, urmnd modificarea
acesteia, folosind tastele UP / DOWN sau validarea ei, folosind tasta de
validare. Validarea cifrei determin deplasarea cursorului pe cea de-a doua cifr,
urmat de modificarea sau validarea ei. Operaiile se repet pentru ultimele dou
cifre. Validarea ultimei cifre nseamn i validarea nlimii vasului. Se afieaz
un mesaj de confirmare i se ateapt acionarea tastei de programare pentru
reprogramarea nlimii sau tasta de validare pentru a se continua. Validarea
celor patru cifre conduce la obinerea a doi octei mpachetai BCD,
reprezentnd nlimea vasului, ce sunt depui n memoria de date a unitii
centrale la adresele FF00H i FF01H. n continuare, cei doi octei mpachetai
BCD sub forma MSZU (mii-sute-zeci-uniti de milimetru), reprezentnd
nlimea vasului, sunt convertii n binar conform algoritmului:
(MSZU )H (M )H 1000 + (S)H 100 + (Z )H 10 + (U )H
(10.2)
i depui n memorie pentru calculele ulterioare.
n faza a doua, este programat nivelul superior de alarmare (NSA), prin
intermediul tastaturii, folosind un algoritm identic. Cei doi octei mpachetai
BCD reprezentnd nivelul superior de alarmare sunt comparai cu nlimea
vasului, programat n pasul anterior i depui n memoria de date a unitii
centrale la adresele FF02H i FF03H doar dac rezultatul scderii pe 16 bii (H NSA) este pozitiv. Dac nivelul superior de alarmare programat este mai mare
dect nlimea vasului, programul revine n bucl la seciunea de programare a
nivelului superior de alarmare. n continuare, cei doi octei mpachetai BCD sub
forma MSZU (mii-sute-zeci-uniti de milimetru), reprezentnd valoarea
nivelului superior de alarmare, sunt convertii n binar conform algoritmului:
(MSZU )NSA (M )NSA 1000 + (S)NSA 100 + (Z)NSA 10 + (U )NSA (10.3)
i depui n memorie pentru calculele ulterioare.
n faza a treia, este programat nivelul inferior de alarmare (NIA), prin
intermediul tastaturii, folosind un algoritm identic. Cei doi octei mpachetai
BCD reprezentnd nivelul inferior de alarmare sunt comparai cu nivelul
superior de alarmare, programat n pasul anterior i depui n memoria de date a
unitii centrale la adresele FF04H i FF05H doar dac rezultatul scderii pe 16
368

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

bii (NSA - NIA) este pozitiv. Dac nivelul inferior de alarmare programat este
mai mare dect nivelul superior de alarmare, programul revine n bucl la
seciunea de programare a nivelului inferior de alarmare. n continuare, cei doi
octei mpachetai BCD sub forma MSZU (mii-sute-zeci-uniti de milimetru),
reprezentnd valoarea nivelului inferior de alarmare, sunt convertii n binar
conform algoritmului:
(MSZU )NIA (M )NIA 1000 + (S)NIA 100 + (Z)NIA 10 + (U )NIA
(10.4)
i depui n memorie pentru calculele ulterioare.

10.3.4 SECIUNEA DE MSURARE PROPRIU-ZIS


n acest punct, cele dou ramuri - de validare a operrii normale a
echipamentului, respectiv de programare a parametrilor de funcionare, converg
si se intr n seciunea de msurare propriu-zis.
Seciunea de msurare propriu-zis ncepe cu afiarea unui mesaj de
avertizare a faptului ca s-a ajuns n seciunea de msurare, care este meninut
circa 0,5 secunde. Se continu cu iniializarea seciunii de captare a
evenimentelor:
sunt dezactivate ntreruperile provenite de la depirea superioar pe
8/16 bii a coninutului timer-ului T2, de la registrele de captare a
evenimentelor, de la circuitele de comparare a coninutului timer-ului
T2 cu registrele special prevzute n acest sens;
sunt iniializate (ncrcate cu 0) registrele CTL0, CTH0, CTL1, CTH1,
TML2, TMH2;
este programat registrul CTCON, astfel nct registrele de captare a
evenimentelor CTI0 i CTI1 s fie activate de fronturile descresctoare
ale impulsurilor externe;
este programat timer-ul T2, prin activarea acestuia, cu dezactivarea
depirii pe 8/16 bii, ceasul de numrare fiind constituit de un
oscilator intern cu frecvena 1/12 din frecvena oscilatorului
microcontroller-ului, urmat de un registru de divizare cu 2 a acestui
ceas.
Este, n continuare, activat emitorul senzorului cu ultrasunete prin
bascularea nivel cobort / nivel ridicat a bitului AX8. Primele dou fronturi
crectoare ale semnalului recepionat de la ieirea senzorului cu ultrasunete sunt
prelucrate n vederea obinerii a dou semnale diferite: frontul cresctor al
primului semnal determin captarea n registrul CTI0 a coninutului timer-ului
T2 la acest moment de timp; frontul cresctor al celui de-al doilea semnal
(obinut prin recepionarea ultrasunetelor captate n urma reflexiei pe suprafaa
lichidului) determin captarea coninutului timer-ului T2 n registrul CTI1. Se
determin numrul de impulsuri captate pe durata emisie-recepie prin
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

369

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

efectuarea diferenei pe 2 octei ntre registrele CTI1 i CTI0.


Urmeaz secvena de msurare a temperaturii mediului n care este
efectuat determinarea inlimii coloanei de lichid. Ieirea n curent, de tip
unificat 420 mA, a sondei de temperatur este aplicat unui convertor curenttensiune de tip unt. Aceast tensiune este aplicat intrrii ADCIN0 a
convertorului analog-digital. Conversia este demarat prin software, programnd
n registrul ADCON bitul ADCCON.3 la 1 logic, iar biii ADCON.2,
ADCON.1, ADCON.0 conform adresei canalului de intrare utilizat (n aceast
situaie, cei trei bii sunt programai la 0 logic). Se ateapt sfritul conversiei
analog-digitale, lucru sesizat prin poziionarea n 1 logic a bitului ADCON.4
(se execut de fapt o verificare n bucl a acestui bit, prin intermediul
acumulatorului). Urmeaz interpretarea rezultatului i afiarea acestuia.
Rezultatul conversiei transferat n acumulator, este mprit la 2 pentru a se
realiza conversia n domeniul specificat de temperatur (00H pentru temperatura
de -20oC, respectiv 80H pentru temperatura de 108oC). Apoi de obin cifrele
temperaturii printr-un algoritm de comparare cu valoarea 14H i efectuarea
scderii (14H - rezultat) pentru afiarea temperaturilor negative, respectiv
(rezultat - 14H) pentru afiarea temperaturilor pozitive i mprire 10 pentru
obinerea cifrelor pentru grade i zeci de grade.
Urmeaz secvena de determinare a nivelului lichidului din vas, conform
algoritmului:
o
%
[ ]
1
mm N T s 1 + 0,17 o C t C
h[mm] = H[mm] v 0
(10.5)

2
s
ms
1000
ms
n care: h reprezint nivelul lichidului din vas, H reprezint valoarea programat
a nlimii vasului, v0 reprezint viteza ultrasunetelor la temperatura de 0oC
m

v 0 = 321,5 , N reprezint numrul de impulsuri captate pe durata emisies

recepie, T reprezint durata unui ciclu main al microcontroller-ului


1

reprezint coeficientul de
= 1,085s , 0,17 % o
T = 12
C
11,059200MHz

variaie a vitezei de propagare a ultrasunetelor cu temperatura, iar t reprezint


temperatura mediului ambiant. Toate calculele se efectueaz n binar, cu
rezultatul pe 2 octei, ceea ce asigur o rezoluie de msurare a nivelului mai
bun de 1 mm.
nlimea coloanei de lichid este afiat dup determinarea cifrelor BCD
ale acesteia, utiliznd un algoritm iterativ de mprire la 10. Cele patru cifre
BCD obinute prin acest algoritm sunt mpachetate n doi octei codificai BCD
i memorate n memoria de date a microcontroller-ului la adresele FF006H i
FF07H.

370

[ ])

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Cuvntul de date care corespunde nlimii coloanei de lichid, redus la o


valoare pe un octet folosind un algoritm de codificare, este folosit pentru
programarea factorului de umplere al impulsurilor de la ieirea modulat n
durat PWM0, care comand generatorul de curent.
Se verific depirea nivelurilor prestabilite de alarmare (NSA i NIA),
comparnd nlimea coloanei de lichid din vas cu pragurile programate anterior,
compararea avnd un histerezis de 25 mm. Se efectueaz diferena dintre
nivelul superior de alarmare (NSA) si nlimea coloanei de lichid din vas, iar
dac diferena este negativ (setarea indicatorului CARRY) se poziioneaz pe
1 logic bitul AX9. Se efectueaz diferena dintre nlimea coloanei de lichid
din vas i nivelul inferior de alarmare (NIA), iar dac diferena este negativ
(setarea indicatorului CARRY) se poziioneaz pe 1 logic bitul AX10. Aceti
bii ai portului de ieire acioneaz releele corespunztoare. Att valorile
nivelului superior, ct i inferior, de alarmare, NSA i NIA, sunt citite din
memoria de date a microcontroller-ului, de la adresele specificate anterior.
Se citete tastatura local. Daca nu s-a acionat nici o tast, programul
execut un salt necondiionat la secvena de iniializare a timer-ului T2, pentru
reluarea n bucl a seciunii de msurare propriu-zis. Dac, ns, s-au acionat
simultan (pentru evitarea unei acionri accidentale a tastaturii) tastele de
programare (MODE) i de validare (ENTER), programul execut un salt la
nceputul seciunii de programare a parametrilor globali de funcionare.
Rutinele specifice scrise i utilizate n cadrul acestei aplicaii sunt:
KEY - subrutina de citire a unei taste de la o tastatur cu o linie i
patru coloane. Rezultatul citirii se afl n acumulator;
INPORT - subrutina de citire de la un port de intrare, utilizat n cadrul
subrutinei de gestionare a tastaturii. Informaiile sunt vehiculate prin
intermediul acumulatorului;
UP - subrutina de incrementare a unei cifre BCD coninut n registrul
R5, folosid tastatura local;
DOWN - subrutina de decrementare a unei cifre BCD coninut n
registrul R5, folosind tastatura local;
DKEY1 - subrutina de programare a dou cifre utiliznd tastatura
local, afiarea celor dou cifre la afiajul cu cristale lichide pe
poziiile 7 i 9 ale celei de-a doua linii i mpachetare ntr-un octet
codificat BCD;
DKEY2 - subrutina de programare a dou cifre utiliznd tastatura
local, afiarea celor dou cifre la afiajul cu cristale lichide pe
poziiile 10 i 11 ale celei de-a doua linii i mpachetare ntr-un octet
codificat BCD;
SCR - afiarea a patru cifre la afiajul cu cristale lichide pe poziiile 7,
9, 10 i 11 ale celei de-a doua linii. Cele patru cifre se obin din doi
octei codificai BCD, manipulai prin intermediul registrelor R4 i R5;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

371

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

SCR1 - afiarea a patru cifre la afiajul cu cristale lichide pe poziiile


7, 9, 10 i 11 ale primei linii. Cele patru cifre se obin din doi octei
codificai BCD, manipulai prin intermediul registrelor R4 i R5.

10.4 LISTINGUL PROGRAMULUI DE APLICAIE PENTRU


MSURAREA NIVELULUI NIVOK.ASM
; --------------------------; "Nivelmetru cu ultrasunete"
; --------------------------ORG
8000H
; declararea resurselor suplimentare
ADCON equ
0C5H
ADCH equ
0C6H
PWMP equ
0FEH
PWM0 equ
0FCH
PWM1 equ
0FDH
CTH0 equ
0CCH
CTL0 equ
0ACH
CTH1 equ
0CDH
CTL1 equ
0ADH
TMH2 equ
0EDH
TML2 equ
0ECH
TM2CON equ
0EAH
CTCON equ
0EBH
IEN1 equ
0E8H
RAM
equ
70H
; secventa de initializare
LJMP INIT
INIT: MOV
A,#00H
MOV
P2,#1
MOV
R0,#40H
MOVX @R0,A
MOV
A,#1
MOV
PWMP,A
MOV
SCON,#40H
MOV
TMOD,#20H
MOV
PCON,#00H
MOV
TH1,#0FDH
MOV
TCON,#40H
CLR
TI
LCALL INILCD
LCALL CLRLCD
MOV
DPTR,#TEXT
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
; definirea valorilor initiale
MOV
DPTR,#0E000H

372

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
MOVX
INC
MOV
MOVX
MOV
MOV
MOVX
INC
MOV
MOVX
MOV
MOV
MOVX
INC
MOV
MOVX
MOV
MOV
MOVX
INC
MOV
MOVX
; calibrare
LCALL
LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
OK4: LCALL
LCALL
JB
JB
JB
JB
GC4: LCALL
LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
MOV
MOV
OK5: LCALL
LCALL
JB
JB
JB
JB
GC20: LCALL

A,#60H
@DPTR,A
DPTR
A,#00H
@DPTR,A
DPTR,#0E004H
A,#40H
@DPTR,A
DPTR
A,#00H
@DPTR,A
DPTR,#0E008H
A,#20H
@DPTR,A
DPTR
A,#00H
@DPTR,A
DPTR,#0E012H
A,#00H
@DPTR,A
DPTR
A,#00H
@DPTR,A
generator de curent
SEC
CLRLCD
DPTR,#TEXT8
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
KEY
SEC1
ACC.0,NON4
ACC.1,OK4
ACC.2,OK4
ACC.3,GC4
SEC
CLRLCD
DPTR,#TEXT14
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
A,#0FFH
PWM0,A
KEY
SEC1
ACC.0,GC20
ACC.1,OK5
ACC.2,OK5
ACC.3,OK5
SEC

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

373

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


LCALL CLRLCD
MOV
DPTR,#TEXT15
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
A,#00H
MOV
PWM0,A
OK6: LCALL KEY
LCALL SEC1
JB
ACC.0,NON4
JB
ACC.1,OK6
JB
ACC.2,OK6
JB
ACC.3,OK6
; selectare mod de functionare
NON4: LCALL SEC
LCALL CLRLCD
MOV
DPTR,#TEXT1
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
LCALL SEC
TAST: LCALL KEY
LCALL SEC1
JB
ACC.0,OPER
JB
ACC.1,TAST
JB
ACC.2,TAST
JB
ACC.3,PROGR
OPER: LJMP ACH
; introducere parola
PROGR: LCALL CLRLCD
MOV
DPTR,#TEXT2
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
R5,#0
MOV
R2,#1110B
LCALL WRCMD
KEY1: MOV
R2,#0C7H
LCALL WRCMD
LCALL KEY
LCALL SEC1
JB
ACC.0,VAL1
JB
ACC.1,SUS1
JB
ACC.2,JOS1
JB
ACC.3,PROGR
SUS1: LCALL UP
SJMP PLAY1
JOS1: LCALL DOWN
PLAY1: MOV
A,R5
374

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
LCALL
MOV
LCALL
AJMP
VAL1: MOV
ANL
SWAP
PUSH
MOV
KEY2: MOV
LCALL
LCALL
LCALL
JB
JB
JB
JB
SUS2: LCALL
SJMP
JOS2: LCALL
PLAY2: MOV
LCALL
MOV
LCALL
AJMP
VAL2: POP
ORL
SUBB
JNZ
JZ
RAU: LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
LCALL
AJMP
BINE: LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
; programare
INALT: LCALL
LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL

HEXASC
R2,A
TRX
KEY1
A,R5
A,#0FH
A
ACC
R5,#0
R2,#0C8H
WRCMD
KEY
SEC1
ACC.0,VAL2
ACC.1,SUS2
ACC.2,JOS2
ACC.3,PROGR
UP
PLAY2
DOWN
A,R5
HEXASC
R2,A
TRX
KEY2
ACC
A,R5
A,#59H
RAU
BINE
CLRLCD
DPTR,#TEXT3
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
SEC
ACH
CLRLCD
DPTR,#TEXT4
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
inaltime vas
SEC
CLRLCD
DPTR,#TEXT5
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

375

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


MOV
MOVX
MOV
INC
MOVX
MOV
LCALL
LCALL
MOV
MOV
MOVX
LCALL
MOV
MOV
MOVX
; validare a
LCALL
LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
MOV
MOVX
MOV
INC
MOVX
MOV
LCALL
OK1: LCALL
LCALL
JB
JB
JB
JB
NON1: AJMP
; programare
NSA: LCALL
LCALL
MOV
LCALL
MOV
LCALL
INC
LCALL
MOV
MOVX
MOV
INC
MOVX
MOV
LCALL
LCALL
376

DPTR,#0E000H
A,@DPTR
R5,A
DPTR
A,@DPTR
R4,A
SCR
DKEY1
DPTR,#0E000H
A,R5
@DPTR,A
DKEY2
DPTR,#0E001H
A,R5
@DPTR,A
inaltimii vasului
SEC
CLRLCD
DPTR,#TEXT11
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
DPTR,#0E000H
A,@DPTR
R5,A
DPTR
A,@DPTR
R4,A
SCR1
KEY
SEC1
ACC.0,NSA
ACC.1,OK1
ACC.2,OK1
ACC.3,NON1
INALT
nivel superior alarmare
SEC
CLRLCD
DPTR,#TEXT6
TRX1
R2,#0C0H
WRCMD
DPTR
TRX1
DPTR,#0E004H
A,@DPTR
R5,A
DPTR
A,@DPTR
R4,A
SCR
DKEY1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
DPTR,#0E000H
MOVX A,@DPTR
CLR
C
SUBB A,R5
JC
NSA
PUSH ACC
MOV
DPTR,#0E004H
MOV
A,R5
MOVX @DPTR,A
LCALL DKEY2
POP
ACC
CLR
C
SUBB A,#0
JNZ
GATA
MOV
DPTR,#0E001H
MOVX A,@DPTR
CLR
C
SUBB A,R5
JC
NSA
GATA: MOV
DPTR,#0E005H
MOV
A,R5
MOVX @DPTR,A
; validare nivel superior alarmare
LCALL SEC
LCALL CLRLCD
MOV
DPTR,#TEXT12
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
DPTR,#0E004H
MOVX A,@DPTR
MOV
R5,A
INC
DPTR
MOVX A,@DPTR
MOV
R4,A
LCALL SCR1
OK2: LCALL KEY
LCALL SEC1
JB
ACC.0,NIA
JB
ACC.1,OK2
JB
ACC.2,OK2
JB
ACC.3,NON2
NON2: AJMP NSA
; programare nivel inferior alarmare
NIA: LCALL
SEC
LCALL CLRLCD
MOV
DPTR,#TEXT7
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
DPTR,#0E008H
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

377

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


MOVX A,@DPTR
MOV
R5,A
INC
DPTR
MOVX A,@DPTR
MOV
R4,A
LCALL SCR
LCALL DKEY1
MOV
DPTR,#0E004H
MOVX A,@DPTR
CLR
C
SUBB A,R5
JC
NIA
PUSH ACC
MOV
DPTR,#0E008H
MOV
A,R5
MOVX @DPTR,A
LCALL DKEY2
POP
ACC
CLR
C
SUBB A,#0
JNZ
GATA1
MOV
DPTR,#0E005H
MOVX A,@DPTR
CLR
C
SUBB A,R5
JC
NIA
GATA1: MOV
DPTR,#0E009H
MOV
A,R5
MOVX @DPTR,A
; validare nivel inferior alarmare
LCALL SEC
LCALL CLRLCD
MOV
DPTR,#TEXT13
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
DPTR,#0E008H
MOVX A,@DPTR
MOV
R5,A
INC
DPTR
MOVX A,@DPTR
MOV
R4,A
LCALL SCR1
OK3: LCALL KEY
JB
ACC.0,ACH
JB
ACC.1,OK3
JB
ACC.2,OK3
JB
ACC.3,NON3
NON3: AJMP NIA
; masurare h si temperatura
ACH: LCALL CLRLCD
MOV
DPTR,#TEXT9
LCALL TRX1
378

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
LCALL SEC
; calcul valoare binara H
MOV
DPTR,#0E001H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R3,A
MOV
A,R7
SWAP A
ANL
A,#00001111B
MOV
B,#10
MUL
AB
ADD
A,R3
PUSH ACC
MOV
DPTR,#0E000H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R1,#0
MOV
R2,A
MOV
R3,#0
MOV
R4,#64H
MOV
A,R2
MOV
B,R4
MUL
AB
PUSH ACC
MOV
A,R4
MOV
R4,B
MOV
B,R1
MUL
AB
ADD
A,R4
MOV
R5,A
MOV
A,B
ADDC A,#0
MOV
R6,A
MOV
A,R2
MOV
B,R3
MUL
AB
ADD
A,R5
PUSH ACC
MOV
A,B
ADDC A,R6
MOV
R6,A
MOV
A,R3
MOV
B,R1
MUL
AB
ADD
A,R6
MOV
A,B
ADDC A,#0
MOV
A,R7
SWAP A
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

379

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


ANL
MOV
MOV
MOV
MOV
MOV
MOV
MUL
PUSH
MOV
MOV
MOV
MUL
ADD
MOV
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
PUSH
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
MOV
ADDC
POP
MOV
POP
MOV
POP
MOV
POP
MOV
POP
MOV
MOV
CLR
ADD
MOV
MOV
ADDC
MOV
MOV
CLR
ADD
MOV
MOV
ADDC
380

A,#00001111B
R1,#0
R2,A
R3,#03H
R4,#0E8H
A,R2
B,R4
AB
ACC
A,R4
R4,B
B,R1
AB
A,R4
R5,A
A,B
A,#0
R6,A
A,R2
B,R3
AB
A,R5
ACC
A,B
A,R6
R6,A
A,R3
B,R1
AB
A,R6
A,B
A,#0
ACC
R3,A
ACC
R4,A
ACC
R5,A
ACC
R6,A
ACC
R7,A
A,R7
C
A,R6
R6,A
A,R5
A,#0
R5,A
A,R6
C
A,R4
R4,A
A,R5
A,#0

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
ADD
A,R3
MOV
R3,A
MOV
DPTR,#0E002H
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; calcul valoare binara NSA
MOV
DPTR,#0E005H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R3,A
MOV
A,R7
SWAP A
ANL
A,#00001111B
MOV
B,#10
MUL
AB
ADD
A,R3
PUSH ACC
MOV
DPTR,#0E004H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R1,#0
MOV
R2,A
MOV
R3,#0
MOV
R4,#64H
MOV
A,R2
MOV
B,R4
MUL
AB
PUSH ACC
MOV
A,R4
MOV
R4,B
MOV
B,R1
MUL
AB
ADD
A,R4
MOV
R5,A
MOV
A,B
ADDC A,#0
MOV
R6,A
MOV
A,R2
MOV
B,R3
MUL
AB
ADD
A,R5
PUSH ACC
MOV
A,B
ADDC A,R6
MOV
R6,A
MOV
A,R3
MOV
B,R1
MUL
AB
ADD
A,R6
MOV
A,B
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

381

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


ADDC
MOV
SWAP
ANL
MOV
MOV
MOV
MOV
MOV
MOV
MUL
PUSH
MOV
MOV
MOV
MUL
ADD
MOV
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
PUSH
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
MOV
ADDC
POP
MOV
POP
MOV
POP
MOV
POP
MOV
POP
MOV
MOV
CLR
ADD
MOV
MOV
ADDC
MOV
MOV
CLR
ADD
382

A,#0
A,R7
A
A,#00001111B
R1,#0
R2,A
R3,#03H
R4,#0E8H
A,R2
B,R4
AB
ACC
A,R4
R4,B
B,R1
AB
A,R4
R5,A
A,B
A,#0
R6,A
A,R2
B,R3
AB
A,R5
ACC
A,B
A,R6
R6,A
A,R3
B,R1
AB
A,R6
A,B
A,#0
ACC
R3,A
ACC
R4,A
ACC
R5,A
ACC
R6,A
ACC
R7,A
A,R7
C
A,R6
R6,A
A,R5
A,#0
R5,A
A,R6
C
A,R4

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R4,A
MOV
A,R5
ADDC A,#0
ADD
A,R3
MOV
R3,A
MOV
DPTR,#0E006H
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; calcul NSAI
MOV
A,R4
CLR
C
SUBB A,#3CH
MOV
R4,A
MOV
A,R3
SUBB A,#00H
MOV
R3,A
MOV
DPTR,#0E014H
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; calcul valoare binara NIA
MOV
DPTR,#0E009H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R3,A
MOV
A,R7
SWAP A
ANL
A,#00001111B
MOV
B,#10
MUL
AB
ADD
A,R3
PUSH ACC
MOV
DPTR,#0E008H
MOVX A,@DPTR
MOV
R7,A
ANL
A,#00001111B
MOV
R1,#0
MOV
R2,A
MOV
R3,#0
MOV
R4,#64H
MOV
A,R2
MOV
B,R4
MUL
AB
PUSH ACC
MOV
A,R4
MOV
R4,B
MOV
B,R1
MUL
AB
ADD
A,R4
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

383

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


MOV
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
PUSH
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
MOV
ADDC
MOV
SWAP
ANL
MOV
MOV
MOV
MOV
MOV
MOV
MUL
PUSH
MOV
MOV
MOV
MUL
ADD
MOV
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
PUSH
MOV
ADDC
MOV
MOV
MOV
MUL
ADD
MOV
ADDC
POP
MOV
POP
384

R5,A
A,B
A,#0
R6,A
A,R2
B,R3
AB
A,R5
ACC
A,B
A,R6
R6,A
A,R3
B,R1
AB
A,R6
A,B
A,#0
A,R7
A
A,#00001111B
R1,#0
R2,A
R3,#03H
R4,#0E8H
A,R2
B,R4
AB
ACC
A,R4
R4,B
B,R1
AB
A,R4
R5,A
A,B
A,#0
R6,A
A,R2
B,R3
AB
A,R5
ACC
A,B
A,R6
R6,A
A,R3
B,R1
AB
A,R6
A,B
A,#0
ACC
R3,A
ACC

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R4,A
POP
ACC
MOV
R5,A
POP
ACC
MOV
R6,A
POP
ACC
MOV
R7,A
MOV
A,R7
CLR
C
ADD
A,R6
MOV
R6,A
MOV
A,R5
ADDC A,#0
MOV
R5,A
MOV
A,R6
CLR
C
ADD
A,R4
MOV
R4,A
MOV
A,R5
ADDC A,#0
ADD
A,R3
MOV
R3,A
MOV
DPTR,#0E00AH
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; calcul NIAS
MOV
A,R4
CLR
C
ADD
A,#3CH
MOV
R4,A
MOV
A,R3
ADDC A,#00H
MOV
R3,A
MOV
DPTR,#0E016H
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; captare evenimente START si STOP
ACH1: CLR
A
MOV
IEN1,A
MOV
CTL0,A
MOV
CTH0,A
MOV
CTL1,A
MOV
CTH0,A
MOV
TML2,A
MOV
TMH2,A
MOV
A,#00000101B
MOV
CTCON,A
MOV
A,#00100101B
MOV
TM2CON,A
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

385

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


MOV
A,#01H
MOV
R3,A
MOV
DPTR,#0E012H
MOVX A,@DPTR
ORL
A,R3
MOV
R3,A
INC
DPTR
MOVX A,@DPTR
ORL
A,R3
MOV
P2,#1
MOV
R0,#40H
MOVX
@R0,A
MOV
A,#00H
MOV
R3,A
MOV
DPTR,#0E012H
MOVX A,@DPTR
ORL
A,R3
MOV
R3,A
INC
DPTR
MOVX A,@DPTR
ORL
A,R3
MOV
P2,#1
MOV
R0,#40H
MOVX
@R0,A
LCALL SEC1
MOV
A,#00100100B
MOV
TM2CON,A
MOV
A,CTL1
MOV
R4,CTL0
CLR
C
SUBB A,R4
MOV
R4,A
MOV
A,CTH1
MOV
R3,CTH0
SUBB A,R3
MOV
R3,A
; salvare N
MOV
DPTR,#0E00CH
MOV
A,R3
MOVX @DPTR,A
INC
DPTR
MOV
A,R4
MOVX @DPTR,A
; masurare temperatura
LCALL CLRLCD
MOV
DPTR,#TEXT10
LCALL TRX1
MOV
R2,#0C0H
LCALL WRCMD
INC
DPTR
LCALL TRX1
MOV
R2,#1100B
LCALL WRCMD
MOV
R2,#0C8H
LCALL WRCMD
386

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R2,#0DFH
LCALL TRX
CLR
A
MOV
ADCON,A
ORL
A,#08H
MOV
ADCON,A
WAIT: MOV
A,ADCON
JNB
ACC.4,WAIT
MOV
A,ADCH
MOV
B,#2
DIV
AB
MOV
DPTR,#0E00FH
MOVX @DPTR,A
; REZ1 = 17 x DELTA_T + 10000
MOV
DPTR,#0E00FH
MOVX A,@DPTR
MOV
B,A
MOV
A,#17
MUL
AB
MOV
R1,#27H
MOV
R2,#10H
CLR
C
ADD
A,R2
MOV
R4,A
MOV
A,B
ADDC A,R1
MOV
R3,A
; REZ2 = N x (10000 + 17 x DELTA_T)
MOV
DPTR,#0E00CH
MOVX A,@DPTR
MOV
R1,A
INC
DPTR
MOVX A,@DPTR
MOV
R2,A
MOV
A,R2
MOV
B,R4
MUL
AB
PUSH ACC
MOV
A,R4
MOV
R4,B
MOV
B,R1
MUL
AB
ADD
A,R4
MOV
R5,A
MOV
A,B
ADDC A,#0
MOV
R6,A
MOV
A,R2
MOV
B,R3
MUL
AB
ADD
A,R5
PUSH ACC
MOV
A,B
ADDC A,R6
MOV
R6,A
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

387

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


MOV
A,R3
MOV
B,R1
MUL
AB
ADD
A,R6
PUSH ACC
MOV
A,B
ADDC A,#0
PUSH ACC
; REZ3 = REZ2 / 16384
POP
ACC
MOV
R4,A
POP
ACC
MOV
R5,A
POP
ACC
MOV
R6,A
POP
ACC
MOV
R3,#6
SHR1: MOV
A,R4
CLR
C
RRC
A
MOV
R4,A
MOV
A,R5
RRC
A
MOV
R5,A
MOV
A,R6
RRC
A
MOV
R6,A
DJNZ R3,SHR1
; REZ4 = REZ3 x 9353
MOV
A,R5
MOV
R3,A
MOV
A,R6
MOV
R4,A
MOV
R1,#24H
MOV
R2,#89H
MOV
A,R2
MOV
B,R4
MUL
AB
PUSH ACC
MOV
A,R4
MOV
R4,B
MOV
B,R1
MUL
AB
ADD
A,R4
MOV
R5,A
MOV
A,B
ADDC A,#0
MOV
R6,A
MOV
A,R2
MOV
B,R3
MUL
AB
ADD
A,R5
PUSH ACC
MOV
A,B
ADDC A,R6
388

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
MOV
MOV
MUL
ADD
PUSH
MOV
ADDC
PUSH
; s = REZ4 /
POP
MOV
POP
MOV
POP
MOV
POP
MOV
SHR2: MOV
CLR
RRC
MOV
MOV
RRC
MOV
MOV
RRC
MOV
DJNZ
; calcul h =
MOV
MOVX
MOV
INC
MOVX
MOV
MOV
CLR
SUBB
MOV
MOV
SUBB
MOV
; corectie h
CLR
MOV
ADD
MOV
MOV
ADDC
MOV
; salvare h
MOV
MOV
MOVX

R6,A
A,R3
B,R1
AB
A,R6
ACC
A,B
A,#0
ACC
16384
ACC
R4,A
ACC
R5,A
ACC
R6,A
ACC
R3,#6
A,R4
C
A
R4,A
A,R5
A
R5,A
A,R6
A
R6,A
R3,SHR2
H - s
DPTR,#0E002H
A,@DPTR
R3,A
DPTR
A,@DPTR
R4,A
A,R4
C
A,R6
R6,A
A,R3
A,R5
R5,A
+ 800
C
A,R6
A,#20H
R6,A
A,R5
A,#03H
R5,A
DPTR,#0E010H
A,R5
@DPTR,A

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

389

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


INC
DPTR
MOV
A,R6
MOVX @DPTR,A
; cifra milimetri
MOV
DPTR,#0E010H
MOVX A,@DPTR
MOV
R6,A
INC
DPTR
MOVX A,@DPTR
MOV
R5,A
MOV
R3,A
CLR
A
MOV
R2,A
MOV
R4,#8
MOV
R7,A
MOV
A,R6
MOV
B,#10
DIV
AB
MOV
R1,A
MOV
R6,B
T_TWO1:
MOV
A,R5
RLC
A
MOV
R5,A
MOV
A,R6
RLC
A
MOV
R6,A
MOV
A,R7
RLC
A
MOV
R7,A
COMP1: CJNE A,#0,DONE1
MOV
A,R6
CJNE A,#10,DONE1
CJNE R5,#0,DONE1
DONE1: CPL
C
B_QUO1:
MOV
A,R2
RLC
A
MOV
R2,A
JNB
ACC.0,LOP1
SUBS1: MOV
A,R6
SUBB A,#10
MOV
R6,A
MOV
A,R7
SUBB A,#0
MOV
R7,A
LOP1: DJNZ R4,T_TWO1
MOV
A,#10
MOV
B,R2
MUL
AB
MOV
B,A
MOV
A,R3
SUBB A,B
PUSH ACC
CLR
OV
; cifra centimetri
MOV
A,R1
390

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R6,A
MOV
A,R2
MOV
R5,A
MOV
R3,A
MOV
R4,#8
CLR
A
MOV
R2,A
MOV
R7,A
MOV
A,R6
MOV
B,#10
DIV
AB
MOV
R1,A
MOV
R6,B
T_TWO2:
MOV
A,R5
RLC
A
MOV
R5,A
MOV
A,R6
RLC
A
MOV
R6,A
MOV
A,R7
RLC
A
MOV
R7,A
COMP2: CJNE A,#0,DONE2
MOV
A,R6
CJNE A,#10,DONE2
CJNE R5,#0,DONE2
DONE2: CPL
C
B_QUO2:
MOV
A,R2
RLC
A
MOV
R2,A
JNB
ACC.0,LOP2
SUBS2: MOV
A,R6
SUBB A,#10
MOV
R6,A
MOV
A,R7
SUBB A,#0
MOV
R7,A
LOP2: DJNZ R4,T_TWO2
MOV
A,#10
MOV
B,R2
MUL
AB
MOV
B,A
MOV
A,R3
SUBB A,B
PUSH ACC
CLR
OV
; cifra decimetri si metri
MOV
A,R2
MOV
B,#10
DIV
AB
MOV
R2,A
MOV
A,B
PUSH ACC
MOV
A,R2
PUSH ACC
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

391

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


; afisare h
MOV
R2,#84H
LCALL
WRCMD
POP
ACC
LCALL
HEXASC
MOV
R2,A
LCALL
TRX
MOV
R2,#86H
LCALL
WRCMD
POP
ACC
LCALL
HEXASC
MOV
R2,A
LCALL
TRX
MOV
R2,#87H
LCALL
WRCMD
POP
ACC
LCALL
HEXASC
MOV
R2,A
LCALL
TRX
MOV
R2,#88H
LCALL
WRCMD
POP
ACC
LCALL
HEXASC
MOV
R2,A
LCALL
TRX
; afisare temperatura
MOV
DPTR,#0E00FH
MOVX A,@DPTR
MOV
R5,A
CLR
C
SUBB A,#20
MOV
R4,A
JC
TNEG
TPOZ: MOV
R2,#0C4H
LCALL WRCMD
MOV
R2,#00101011B
LCALL TRX
MOV
R2,#0C5H
LCALL WRCMD
MOV
A,R4
MOV
B,#10
DIV
AB
LCALL HEXASC
MOV
R2,A
LCALL TRX
MOV
R2,#0C6H
LCALL WRCMD
MOV
A,B
LCALL HEXASC
MOV
R2,A
LCALL TRX
LJMP SALT
TNEG: MOV
R2,#0C4H
LCALL WRCMD
MOV
R2,#00101101B
392

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
LCALL TRX
MOV
R2,#0C5H
LCALL WRCMD
MOV
A,#20
CLR
C
SUBB A,R5
MOV
B,#10
DIV
AB
LCALL HEXASC
MOV
R2,A
LCALL TRX
MOV
R2,#0C6H
LCALL WRCMD
MOV
A,B
LCALL HEXASC
MOV
R2,A
LCALL TRX
SALT: LCALL SEC
; programare generator curent
; codificare h pe un octet
MOV
DPTR,#0E010H
MOVX A,@DPTR
MOV
R6,A
INC
DPTR
MOVX A,@DPTR
MOV
R7,A
MOV
R3,#3
SHL1: CLR
C
MOV
A,R7
RLC
A
MOV
R7,A
MOV
A,R6
RLC
A
MOV
R6,A
DJNZ R3,SHL1
; codificare H pe un octet
MOV
DPTR,#0E002H
MOVX A,@DPTR
MOV
R4,A
INC
DPTR
MOVX A,@DPTR
MOV
R5,A
MOV
R3,#3
SHL2: CLR
C
MOV
A,R5
RLC
A
MOV
R5,A
MOV
A,R4
RLC
A
MOV
R4,A
DJNZ R3,SHL2
; calcul valoare hx255
MOV
A,R6
MOV
B,#0FFH
MUL
AB
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

393

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


; calcul (hx255)/H
MOV
R6,B
MOV
R5,A
MOV
R3,A
MOV
A,R4
MOV
R0,A
MOV
RAM,A
MOV
R4,#8
CLR
A
MOV
R2,A
MOV
R7,A
MOV
A,R6
MOV
B,R0
DIV
AB
MOV
R1,A
MOV
R6,B
T_TWO3:
MOV
A,R5
RLC
A
MOV
R5,A
MOV
A,R6
RLC
A
MOV
R6,A
MOV
A,R7
RLC
A
MOV
R7,A
COMP3: CJNE A,#0,DONE3
MOV
A,R6
CJNE A,RAM,DONE3
CJNE R5,#0,DONE3
DONE3: CPL
C
B_QUO3:
MOV
A,R2
RLC
A
MOV
R2,A
JNB
ACC.0,LOP3
SUBS3: MOV
A,R6
SUBB A,R0
MOV
R6,A
MOV
A,R7
SUBB A,#0
MOV
R7,A
LOP3: DJNZ R4,T_TWO3
MOV
A,R0
MOV
B,R2
MUL
AB
MOV
B,A
MOV
A,R3
SUBB A,B
CLR
OV
MOV
A,R2
; programare PWM0
CPL
A
MOV
PWM0,A
; citire h in binar
MOV
DPTR,#0E010H
MOVX A,@DPTR
394

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
MOV
R1,A
INC
DPTR
MOVX A,@DPTR
MOV
R2,A
; depasire inferioara
; citire NIA in binar
DEI: MOV
DPTR,#0E00AH
MOVX A,@DPTR
MOV
R4,A
INC
DPTR
MOVX A,@DPTR
MOV
R5,A
; citire NIAS in binar
MOV
DPTR,#0E016H
MOVX A,@DPTR
MOV
R6,A
INC
DPTR
MOVX A,@DPTR
MOV
R7,A
; calcul h-NIA si semnalizare
MOV
A,R2
CLR
C
SUBB A,R5
MOV
A,R1
SUBB A,R4
JC
DEPINF
JNC
NDI
DEPINF:
MOV
A,#04H
MOV
DPTR,#0E012H
MOVX @DPTR,A
MOV
P2,#1
MOV
R0,#40H
MOVX @R0,A
AJMP CONTS
NDI: MOV
DPTR,#0E012H
MOVX A,@DPTR
ANL
A,#04H
JB
ACC.2,CAZ1
JNB
ACC.2,CAZ2
; scadere NIAS-h si avertizare
CAZ1: MOV
A,R7
CLR
C
SUBB A,R2
MOV
A,R6
SUBB A,R1
JNC
DEPINF
JC
NDPI
NDPI: MOV
A,#00H
MOV
DPTR,#0E012H
MOVX @DPTR,A
MOV
P2,#1
MOV
R0,#40H
MOVX @R0,A
AJMP DES
CAZ2: AJMP NDPI
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

395

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


; depasire superioara
; citire NSAI in binar
DES: MOV
DPTR,#0E014H
MOVX A,@DPTR
MOV
R4,A
INC
DPTR
MOVX A,@DPTR
MOV
R5,A
; citire NSA in binar
MOV
DPTR,#0E006H
MOVX A,@DPTR
MOV
R6,A
INC
DPTR
MOVX A,@DPTR
MOV
R7,A
MOV
DPTR,#0E013H
MOVX A,@DPTR
ANL
A,#02H
JB
ACC.1,CAZ3
JNB
ACC.1,CAZ4
CAZ3: MOV
A,R2
CLR
C
SUBB A,R5
MOV
A,R1
SUBB A,R4
JC
NDPS
JNC
DEPSUP
CAZ4: MOV
A,R2
CLR
C
SUBB A,R7
MOV
A,R1
SUBB A,R6
JC
NDPS
JNC
DEPSUP
DEPSUP:
MOV
A,#02H
MOV
DPTR,#0E013H
MOVX @DPTR,A
MOV
P2,#1
MOV
R0,#40H
MOVX @R0,A
AJMP CONTS
NDPS: MOV
A,#00H
MOV
DPTR,#0E013H
MOVX @DPTR,A
MOV
P2,#1
MOV
R0,#40H
MOVX @R0,A
AJMP CONTS
CONTS: LCALL SEC
; transmisie seriala
MOV
R7,#3
MOV
DPTR,#0E00FH
TRANS: MOVX A,@DPTR
MOV
SBUF,A
CLR
TI
396

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
WT:

PRO:
GO:
;
UP:

JNB
CLR
INC
DJNZ
LCALL
JZ
JB
LJMP
LJMP

TI,WT
TI
DPTR
R7,TRANS
INPORT
GO
ACC.0,PRO
PROGR
ACH1

MOV
INC
DA
ANL
MOV
RET

A,R5
A
A
A,#0FH
R5,A

;
DOWN: MOV
ANL
CLR
SUBB
JC
JNC
ADJST: MOV
CONT: ANL
MOV
RET
;
KEY: LCALL
JZ
RET
;
INPORT:
MOV
MOVX
CPL
ANL
RET
;
DKEY1: MOV
MOV
SWAP
ANL
MOV
MOV
LCALL
KEY3: MOV
LCALL
LCALL
LCALL
JB
JB
JB
SUS3: LCALL
SJMP

A,R5
A,#0FH
C
A,#1
ADJST
CONT
A,#9H
A,#0FH
R5,A

INPORT
KEY

MOV
P2,#1
R0,#60H
A,@R0
A
A,#0FH

A,R5
R3,A
A
A,#0FH
R5,A
R2,#1110B
WRCMD
R2,#0C6H
WRCMD
KEY
SEC1
ACC.0,VAL3
ACC.1,SUS3
ACC.2,JOS3
UP
PLAY3

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

397

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


JOS3: LCALL
PLAY3: MOV
LCALL
MOV
LCALL
AJMP
VAL3: MOV
ANL
SWAP
PUSH
MOV
ANL
MOV
KEY4: MOV
LCALL
LCALL
LCALL
JB
JB
JB
SUS4: LCALL
SJMP
JOS4: LCALL
PLAY4: MOV
LCALL
MOV
LCALL
AJMP
VAL4: POP
ORL
MOV
RET
;
DKEY2: MOV
MOV
SWAP
ANL
MOV
MOV
LCALL
KEY5: MOV
LCALL
LCALL
LCALL
JB
JB
JB
SUS5: LCALL
SJMP
JOS5: LCALL
PLAY5: MOV
LCALL
MOV
LCALL
AJMP
398

DOWN
A,R5
HEXASC
R2,A
TRX
KEY3
A,R5
A,#0FH
A
ACC
A,R3
A,#0FH
R5,A
R2,#0C8H
WRCMD
KEY
SEC1
ACC.0,VAL4
ACC.1,SUS4
ACC.2,JOS4
UP
PLAY4
DOWN
A,R5
HEXASC
R2,A
TRX
KEY4
ACC
A,R5
R5,A

A,R4
R3,A
A
A,#0FH
R5,A
R2,#1110B
WRCMD
R2,#0C9H
WRCMD
KEY
SEC1
ACC.0,VAL5
ACC.1,SUS5
ACC.2,JOS5
UP
PLAY5
DOWN
A,R5
HEXASC
R2,A
TRX
KEY5

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
VAL5: MOV
ANL
SWAP
PUSH
MOV
ANL
MOV
KEY6: MOV
LCALL
LCALL
LCALL
JB
JB
JB
SUS6: LCALL
SJMP
JOS6: LCALL
PLAY6: MOV
LCALL
MOV
LCALL
LJMP
VAL6: POP
ORL
MOV
RET
;
SCR: MOV
LCALL
MOV
LCALL
MOV
SWAP
ANL
CALL
MOV
LCALL
MOV
LCALL
MOV
ANL
LCALL
MOV
LCALL
MOV
LCALL
MOV
SWAP
ANL
CALL
MOV
LCALL
MOV
LCALL
MOV

A,R5
A,#0FH
A
ACC
A,R3
A,#0FH
R5,A
R2,#0CAH
WRCMD
KEY
SEC1
ACC.0,VAL6
ACC.1,SUS6
ACC.2,JOS6
UP
PLAY6
DOWN
A,R5
HEXASC
R2,A
TRX
KEY6
ACC
A,R5
R5,A

R2,#1100B
WRCMD
R2,#0C6H
WRCMD
A,R5
A
A,#0FH
HEXASC
R2,A
TRX
R2,#0C8H
WRCMD
A,R5
A,#0FH
HEXASC
R2,A
TRX
R2,#0C9H
WRCMD
A,R4
A
A,#0FH
HEXASC
R2,A
TRX
R2,#0CAH
WRCMD
A,R4

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

399

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


ANL
LCALL
MOV
LCALL
RET
;
SCR1: MOV
LCALL
MOV
LCALL
MOV
SWAP
ANL
CALL
MOV
LCALL
MOV
LCALL
MOV
ANL
LCALL
MOV
LCALL
MOV
LCALL
MOV
SWAP
ANL
CALL
MOV
LCALL
MOV
LCALL
MOV
ANL
LCALL
MOV
LCALL
RET
;
TRX1: CLR
MOVC
CJNE
RET
TRCAR1:
LCALL
INC
SJMP
;
SEC: MOV
LOOP1: MOV
LOOP: NOP
NOP
NOP
NOP
400

A,#0FH
HEXASC
R2,A
TRX

R2,#1100B
WRCMD
R2,#086H
WRCMD
A,R5
A
A,#0FH
HEXASC
R2,A
TRX
R2,#088H
WRCMD
A,R5
A,#0FH
HEXASC
R2,A
TRX
R2,#089H
WRCMD
A,R4
A
A,#0FH
HEXASC
R2,A
TRX
R2,#08AH
WRCMD
A,R4
A,#0FH
HEXASC
R2,A
TRX

A
A,@A+DPTR
A,#24H,TRCAR1
MOV
R2,A
WRDAT
DPTR
TRX1
R6,#255
R7,#255

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
NOP
NOP
NOP
NOP
DJNZ
DJNZ
RET

R7,LOOP
R6,LOOP1

;
SEC1: MOV
R6,#255
LOOP3: MOV
R7,#255
LOOP2: NOP
NOP
NOP
NOP
DJNZ R7,LOOP2
DJNZ R6,LOOP3
RET
;
TEXT: DB '
NIVELMETRU
$'
DB ' CU ULTRASUNETE $'
TEXT1: DB 'OPERARE (ENTER)$'
DB 'PROGRAMARE(MODE)$'
TEXT2: DB 'VALIDARE PAROLA:$'
DB '
00
$'
TEXT3: DB '
PAROLA
$'
DB '
INCORECTA!
$'
TEXT4: DB '
PAROLA
$'
DB '
CORECTA!
$'
TEXT5: DB ' INALTIME VAS $'
DB ' H = .
m
$'
TEXT6: DB 'NIV.SUP.ALARMARE$'
DB 'NSA = .
m
$'
TEXT7: DB 'NIV.INF.ALARMARE$'
DB 'NIA = .
m
$'
TEXT8: DB 'CALIBRARE G.C.?$'
DB '(D-MODE N-ENTER)$'
TEXT9: DB ' REGIM NORMAL $'
DB ' DE FUNCTIONARE $'
TEXT10:
DB 'h = .
m
$'
DB 't =
C
$'
TEXT11:
DB ' H = .
m ?$'
DB '(D-ENTER N-MODE)$'
TEXT12:
DB 'NSA = .
m ?$'
DB '(D-ENTER N-MODE)$'
TEXT13:
DB 'NIA = .
m ?$'
DB '(D-ENTER N-MODE)$'
TEXT14:
DB ' CALIBRARE 4 mA $'
DB ' (GATA - ENTER) $'
TEXT15:
DB ' CALIBRARE 20mA $'
DB ' (GATA - ENTER) $'
;
HEXASC:
ANL
A,#0FH
JNB
ACC.3,NOADJ
JB
ACC.2,ADJ
JNB
ACC.1,NOADJ
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

401

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI


ADJ: ADD
NOADJ: ADD
RET
;
TRX: CLR
MOV
LJMP
LL7: RET
TRCAR: MOV
LCALL
SJMP
;
INILCD:
LCALL
MOV
DEL4MS:
DJNZ
MOV
LINI: LCALL
LCALL
DJNZ
LCALL
MOV
LCALL
LCALL
MOV
LCALL
LCALL
MOV
LCALL
LCALL
RET
;
CLRLCD:
LCALL
MOV
LCALL
RET
;
WLCD: LCALL
JB
RET
;
RDCMD: MOV
MOV
MOVX
RET
;
WRCMD: LCALL
MOV
MOV
MOV
MOVX
RET
;
402

A,#07H
A,#30H

A
A,R2
TRCAR
R2,A
WRDAT
LL7
MOV
R2,#38H
WRCMD
R4,#50
LCALL DELAY
R4,DEL4MS
R4,#4
WRCMD
DELAY
R4,LINI
WLCD
R2,#6
WRCMD
WLCD
R2,#0EH
WRCMD
WLCD
R2,#1
WRCMD
WLCD

MOV
R2,#1
WRCMD
R2,#1100B
WRCMD

RDCMD
ACC.7,WLCD

P2,#1
R0,#2
A,@R0

WLCD
A,R2
P2,#1
R0,#0
@R0,A

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
WRDAT: LCALL
MOV
MOV
MOV
MOVX
RET
;
DELAY: MOV
LL1: NOP
NOP
DJNZ
RET
;
END

WLCD
P2,#1
R0,#1
A,R2
@R0,A

R3,#17

R3,LL1

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

403

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

404

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

BIBLIOGRAFIE
1.

Albu, M., Vlaicu, C., .a.: Probleme legate de proiectarea, alegerea i


utlizarea programelor specializate pentru msurri electrice, Lucrrile
Sesiunii Jubiliare de Comunicri tinifice, Facultatea de Electrotehnic,
decembrie 1996, pg.111-115;

2.

Antoniu, M., Poli, t., Antoniu, E.: Msurri electronice - Aparate i


sisteme de msur numerice, Editura SATYA, 1997;

3.

Damms, K. J., Heinze, R .: Leittechnik: Unix und Windows NT, ETZ


Archiv, Heft 1-2/1998, pg. 8-10;

4.

Dale, N., Weems, C.: Introduction to PASCAL and Structured Design, D.


C. Heath and Company, 1987;

5.

Dale, N., Lilly, C. S.: PASCAL Plus Data Structures. Algorithms and
Advanced Programming, D. C. Heath and Company, 1989;

6.

Fitzgerald, J.: Businesd Data Comunications - Basic Concepts, Security


and Design, J. Wiley & Sons Inc., 1990;

7.

Ghinea, D., Popescu, C., Popescu, M., Analiza spectral a semnalelor


energetice, Ars docendi, Bucureti, 1999;

8.

Golovanov, C., tefnescu, C.: Real Time Microcontroller - Based System


For Assessing Voltage Quality With Relation To Unbalance, Rev. Roum.
Sci. Techn. - Electrotechn. et Energ., 41, 3, Bucharest, 1996;

9.

Golovanov, C., tefnescu, C.: Intelligent Data Acquisition System for


Assessing Quality to Unbalance, AMSE Press - Modelling, Measurement
& Control, A, Vol. 59, No. 3, pag. 1-10, 1995;

10. Gray, P. R., Meyer, R. G.: Circuite integrate analogice. Analiz i


proiectare, Editura Tehnic, Bucureti, 1983;
11. Hilburn, J.: Manual of Active Filter Design, McGraw Hill, 1973;
12. Hilton, H. E.: A 10 Megasample-per-Second Analog-to-Digital Converter
with Filter and Memory, Hewlett - Packard Journal, Volume 44, Number 5,
Octomber 1993;
13. Holland, R. C.: Microcomputers and Their Interfacing, Pergamon Press,
1987;
14. Kientzle, T.: The Working Programmer's Guide to Serial Protocols,
Coriolis Group Books, 1995;
15. Lacanette, K.: A Basic Introduction to Filters, Active, Passive and
Switched-Capacitor, AN 779, National Semiconductor, 1991;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

405

BIBLIOGRAFIE

16. Lipovski,G.,J.: Object - Oriented Interfacing to 16-Bit Microcontrollers,


Prentice-Hall, Texas, 1993;
17. Melkonian, L. G.: Dynamic Specifications for Sampling A/D converters,
AN 769, National Semiconductor, 1991;
18. Millman, J., Grabel, A.: Microelectronics (second edition), Mc Graw Hill,
1987;
19. Posdrscu, E., Cupcea, N., tefnescu, C. - Sistem automat de msur i
control al transferului termic pentru incinte izoterme n regim stationar, A
Doua Conferin Internaional de Sisteme Electromecanice SIELMEC99,
vol. III, pag. 63-68, 8-9 octombrie 1999, Chiinu;
20. Posdrscu, E., Cupcea, N., tefnescu, C. - Stand pentru studierea
experimental a amortizoarelor hidraulice de translaie, A Doua
Conferin Internaional de Sisteme Electromecanice SIELMEC99, vol.
III, pag. 168-173, 8-9 octombrie 1999, Chiinu;
21. Potolea, E., Gheorghe, t.: Calitatea tensiunii n reelele electrice poluate
cu armonici. Sistem de analiz i datele obinute, Simpozionul Naional de
Reele Electrice, Suceava 1994, vol. I, pag. 121-131;
22. Potolea, E., Ptrcoiu, S., Gheorghe, t.: Supravegherea reelelor i
analiza regimului deformant n sistemele electroenergetice zonale, Revista
Energetica nr. 1, seria B, Editura Tehnic, 1992;
23. Schumny, H.: Metechnik mit dem Personal Computer, Springer Verlag,
Berlin, 1993;
24. tefnescu, C.: Sistem inteligent de analiz a regimului deformant n reele
electrice, Tez de doctorat, U.P.B., Bucureti, 1998;
25. tefnescu, C., .a.: Sistem inteligent de analiz a calitii tensiunii n
reele electrice trifazate, funcionnd n regim nesinusoidal, Conferina
Naional de Energetic Industrial CNEI 98, Bacu 30 oct - 1 nov 1998;
26. tefnescu, C., Cupcea, N., .a.: Sistem cu microcontroller pentru
msurarea nivelului lichidelor depozitate n vase staionare la presiune
joas, Conferina Naional de Energetic Industrial CNEI 98, Secia I Electroenergetic, Bacu 30 oct - 1 nov 1998;
27. tefnescu, C., Cupcea, N., Popescu, D. - Intelligent Power Quality
Analyzer, Proceedings of 5th International Conference on Information
Systems Analysis and Synthesis ISAS 99, vol. 7 - Industrial Systems, pag.
192-198, Orlando, Florida, July 31 - August 4, 1999;
28. tefnescu, C., Cupcea, N. - Echipamente numerice versatile destinate
proceselor de reglare in domeniul industrial, A Doua Conferin
Internaional de Sisteme Electromecanice SIELMEC99, vol. II, pag. 1518, 8-9 octombrie 1999, Chiinu;
406

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

29. tefnescu, C., Cupcea, N. - Sisteme inteligente de msurare a perioadei


semnalelor electrice, A Doua Conferin Internaional de Sisteme
Electromecanice SIELMEC99, vol. III, pag. 15-18, 8-9 octombrie 1999,
Chiinu;
30. tefnescu, C., Cupcea, N., Simion, V.: Microcontroller-based
development system for system control applications, Proceedings of the
Symposium on Advanced Topics in Electrical Engineering ATEE - 2000,
pag. 139-146, Bucharest, 2000;
31. tefnescu, C., Srcin, M.: Sistem inteligent, multifuncional, de achiziii
de date, Grupul ICPE: Electronica Prezent i Perspective, pag. M32-M36,
Bucureti, 30-31 oct. 1995;
32. tefnescu, C., Simion, V.: General-purpose digital scope based on PIC
microcontrollers, Proceedings of the Symposium on Advanced Topics in
Electrical Engineering ATEE - 2000, pag. 147-154, Bucharest, 2000;
33. Tedeschi, F.: Active Filter Cookbook, Tab Book No. 1133, 1979;
34. Tertico, M., Stoica, P., Popescu, Th.: Identificarea asistat de calculator a
sistemelor, Editura Tehnic, Bucureti, 1987;
35. Tran Tien Lang: Acquisition et traitement des signaux de masure a l'aide
de microprocesseur, Techniques de l'ingenieur, Mesures et Controle, R
525-1 SUPELEC, Paris 1989;
36. Tran Tien Lang: Microprocesseurs de traitement du signal de mesure,
Techniques de l'ingenieur, Mesures et Controle, R 526-1 SUPELEC, Paris
1989;
37. Tran Tien Lang: Systemes de Mesures Informatises - mise en oeuvre des
microprocesseurs et microcontroleurs en instrumentation, Masson Paris,
1992;
38. Turturea, D.: Totul despre WINDOWS 3.1, Editura Tehnic, Bucureti,
1993;
39. Vlaicu, C.: Sisteme digitale de msurare, Editura ICPE, 2000;
40. Vlaicu, C., Albu, M.: Sisteme numerice de msurare, ndrumar de
laborator, Litografia UPB, 1999;
41. Wong, T. : Understanding USB, in Electronics World, November 1999, pg.
890-900;
42. Young, D.A.: Motif Debugging and Performance Tuning, Prentice Hall,
1995;
43. ***: Advanced Micro Devices - CMOS Memory Products Data
Book/Handbook, 1991;
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

407

BIBLIOGRAFIE

44. ***: Advanced Micro Devices - PAL Device Data Book and Design Guide,
1993;
45. ***: Analog Devices - Data Acquisition Components and Subsystems Data
Book, 1996;
46. ***: Burr Brown - Intelligent Instrumentation: Personal Computer
Instrumentation - Data Acquisition, Test, Measurement and Control -,
1994;
47. ***: Cyberresearch - PC Systems HandBook for Scientists and Engineers,
No. 1, 1997;
48. ***: Getting Started with HP VEE for Windows, Hewlett-Packard
Company, 1995;
49. ***: Hybrid Memory Products Ltd. - Advanced MOS Memory, 1990;
50. ***: Keithley Metrabyte Data Acquisition - Catalog & Reference Guide,
1993;
51. ***: National Instruments - Data Acquisition Systems Data Book, 1997;
52. ***: Micron Semiconductor Inc, - SRAM Data Book, 1993;
53. ***: Micron Semiconductor Inc, - DRAM Data Book, 1993;
54. ***: Micron Semiconductor Inc, - Specialty DRAM Data Book, 1993;
55. ***: National Semiconductor - Data Acquisition Systems Data Book, 1996;
56. ***: National Semiconductor - Interface Products Data Book, 1996;
57. ***: National Semiconductor - Linear Applications' Data Book (second
edition), 1995;
58. ***: Philips Semiconductor - 80C51-Based 8-Bit Microcontrollers, 1997.

408

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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