You are on page 1of 416

COSTIN TEFNESCU

NICOLAE CUPCEA

ELECTRONIC APLICAT SISTEME INTELIGENTE HARDWARESOFTWARE DE MSURARE I CONTROL

Filtrare FTJ Semnal

Conversie analogdigital CA/D

Unitatea de calcul

Conversie digitalanalogic Filtrare CD/A Analog FTJ

Circuit de amplificare

Analog Numeric

Semnal

Bucureti 2003

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 1

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
2 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 3

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

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.

Operator

SISTEM DE CALCUL N TIMP REAL

Generare rapoarte, semnalizri, alarmri

Calcule conform unor strategii de conducere

Comenzi

Baz de date reea

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 5

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

Decodificator

Comenzi

Comenzi

Adrese

Adrese

Date

Selecie

Comenzi

Date

Comenzi

Adrese

Date

Selecie

Date

Adrese

Microprocesor P Ceas

Memorii ROM

Memorii RAM Adres canal

Circuit interfa paralel

Comand E/M 1 Alte canale Date Semnal de studiat Etaj adaptare Selecii Multiplexor analogic Circuit eantionarememorare

Convertor analog-digital

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

START

EOC

Sfrit conversie Start conversie

Selecie

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.

0 1 Intrri analogice
n

Aplicaie _ 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 7

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 E/M

Ue

t1 t2 t3 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;


Eroare staionar

Intrare Ieire Eroare de decalaj

Eroare de decalaj

Intrare Ieire

Ieire ideal

Timp de stabilire

Eantionare (E) Memorare (M)

Timp de apertur

Timp de stabilire

a) caracteristici de urmrire

b) caracteristici de tranziie E/M


Timpi de stabilire Intrare

Intrare Cdere Ieire ideal Ieire

Ieire Timp de achiziie Eantionare (E) Memorare (M)

Ptrundere

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) E/M A1

_
K A(Ue-Ui) C A2

Ue(t)

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) E/M

K A1

_ +

C A2 Ue(t)
Ui(t) E/M

_
A1

_ +

C A2 Ue(t)

a)

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
AD582 AD583 LF398 SHC298 AD346 SHC85 HTS0025

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 2 s 4 s 20 ns 0,10 % 0,01 % 0,10 % 0,01 % 0,10 % 0,01 % 0,10 % 0,01 % 0,01 % 0,01 % 0,01 % 150 ns 50 ns 150 ns 200 ns 60 ns 25 ns 20 ns 0,5 s 0,8 s 1,5 s 0,5 s 0,5 s 30 ns

Tehnologie; Particulariti
monolitic, uz comun monolitic, rapid monolitic, uz comun monolitic, uz comun 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

R Ui(t)

_
E M A

Ue(t)

E M

Circuit de comand

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 Semnal de ieire al CA/D
Uref

3/4 =110 5/8 =101 1/2 =100 3/8 =011 1/4 =010 1/8 =001 0 =000 1 1 3 1 5 3 8 4 8 2 8 4 Semnal analogic de intrare 7 8 Ui

Ui

n CA/D Ieire numeric

Niveluri 0 cuantificate (Ui /Uref)

a) structura funcional a CA/D

b) caracteristica de transfer ideal a CA/D

14

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
U0 7/8U ref Semnal analogic de ieire
Uref

6/8U ref 5/8U ref 4/8U ref 3/8U ref 2/8U ref 1/8U ref 0 0 0 0 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

n CD/A Intrare numeric

U0

c) structura funcional a CD/A

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

16

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

execute excursia maxim n cadrul domeniului de variaie. 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);
Ieire

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

17

SISTEME DE ACHIZIIE I PRELUCRARE A DATELOR

Semnal de ieire al CA/D

Eroarea de decalaj 0 Semnal analogic de intrare Ui max

Semnal de ieire al CA/D

Eroarea de amplificare

0 Semnal analogic de intrare

Ui max

a) eroarea de decalaj
Neliniaritatea integral

b) eroarea de amplificare
Neliniaritatea diferenial

Semnal de ieire al CA/D

Semnal de ieire al CA/D

Codul omis (001)

Pasul de cuantizare neideal 0 Semnal analogic de intrare Ui max

0 Semnal analogic de intrare

Ui max

c) neliniaritatea integral

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:

B N1B N2 ...B1B0 = Bi 2i
i =0

N 1

(2.5)

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: B1B 2 ...B N1B N = Bi 2 i
i =1 N

(2.6)

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

_ +
Interfa digital (numeric) N Reea de comutatoare Reea de rezistene U0

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
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

20

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.
-Uref B1 B2 2R -I K1 K2 2 R I1 I 2 R I2
N 2 1

Rr

_ +
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 K1

1 2R

U0

2R KN

2R KN-1

BN BN-1 B1 Uref

b) Structura reelei rezistive R-2R.


Uref 1 R 2R K1 I1 K2 2 2R I2 KN R N 2R IN 2R

B1 B2 BN

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

KN

KN-1 R N N-1 2R R

K1 Iout 1 2R 2R

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 N CS WR Registru de intrare N CLR

Ctre CD/A N LDAC Registru CD/A N CLR

Ctre CD/A_1 CSL DIN 12 Registru de deplasare (24 bii) Registru CD/A_1 12
WR CSH

Registru de intrare LOW Registru de intrare HIGH


8 8

SCLK

12 Registru CD/A_2 12 Ctre CD/A_2


8

CS LDAC

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

_
R

_
Ui R C2N-2

+ _
R

Codificator de prioriti

(2 -1 nivele la N bii de ieire)

C2N-1

B0B1...BN-1

C1

-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.
_
A=2
U0

+
Ui +Uref R

0 1

U0

2Umax

Uref =Umax

_
A=2

+
+Uref /2

Umax 0 1

_
R C

B
0 Umax /2 Umax Ui

a) Celula elementar de conversie


B1

B2

b) Caracteristica de transfer
BN

Ui Uref

B Ui Uref U0 Ui

B Uref U0 Ui

B Uref U0

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

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

B1

B2

B3

B4

28

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Buffer 1 B8 LSB B7 B6 B5 B4 B3 B2 B1

Ui

E/M Start

Clk1 Logic de Clk2 control i Clk3 sincronizare Clk4

Registru (4 bii)

Registru (8 bii)

Circuit de eantionarememorare

Buffer 2

B8 B7 B6 B5 B4 B3 B2 B1 DRDY

CA/D paralel (4 bii)

CA/D paralel (4 bii)

CD/A rapid (4 bii)

MSB

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


Buffer 1 B10 B9 B8 B7 B6 B5 B4 B3 B2 B1 DRDY

CA/D paralel (3 bii)

Ui

E/M Start Logic de control i sincronizare

Clk1

Clk2

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

Registru (10 bii)

Circuit de eantionarememorare

Logic de corecie numeric

CD/A rapid (3 bii)

CA/D paralel (8 bii)

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).
Ui(t) _ C Logic de control Clock Start EOC

N Convertor digitalanalogic (CD/A) Uref

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


Numrtor S Ui(t) _ C R N UN Convertor digitalanalogic (CD/A) Uref Q Clk Reset Qi Start Busy

UN Start Clk

Ui(t)

+ _
C

b) Convertor analog-digital cu numrare U Ui Numrtor


U/D reversibil Qi N UN Convertor digitalanalogic (CD/A) Uref Clk Clock

UN t

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)

+ _

UN

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 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 CA/D cu aproximaii succesive CA/D cu integrare cu dubl pant hibrid/modul Preul relativ hibrid/modul 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
ADC0804 AD7574 AD570 TSC7109 ADC0808 AD5010 AD579 AD574 ADC868 HS9516 ADC71

Rezoluia
8 8 8 12 8 6 10 12 12 16 16

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 100 s 15 s 25 s 33 ms 100 s 10 ns 2,2 s 25 s 0,5 s 100 s 50 s

Tensiunea de alimentare
+5V +5V +5V, -15V +5V +5V 5V +5V, 15V +5V, 15V +5V, 15V +5V, 15V +5V, 15V

Tehnologia de realizare
monolitic monolitic monolitic monolitic monolitic monolitic hibrid hibrid hibrid hibrid hibrid

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


2 3 2 3 2 3 4 5 2 3 4 5 2 3 4 5 6 20 7 2 3 4 5 6 20 7

TXD RXD

TXD RXD

TXD RXD RTS CTS

TXD RXD RTS CTS

TXD RXD RTS CTS DSR DTR

TXD RXD RTS CTS DSR DTR GND

GND

GND

GND

GND

GND

a)
2 3 4 5 6 20 7 7 GND 2 3

b)
2 3 2 3

c)

TXD RXD RTS CTS DSR DTR GND

TXD RXD

TXD RXD

TXD RXD

CTS DSR

5 6 20 DTR GND

GND

d)

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 -25 V nedefinit HIGH

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.
SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

38

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

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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) Primul nivel de distribuire

distribuitor

downstream port upstream port upstream port

Echipament
EP 1

distribuitor

Al doilea nivel de distribuire

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


Bloc de adaptare semnal Circuit de eantionarememorare Bloc de adaptare semnal
Comand eantionarememorare

Intrare 1

Ieiri paralele

Registru tampon

Semnale analogice

C A/N EOC START Ieire serial

Intrare n

Multiplexor analogic Adres canal

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:
i Te = TACH = n (t E / M + t MUX + t C + t MEM ) i =1 n

(3.2)

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

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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.
Intrare 1 Bloc de adaptare semnal Circuit de eantionarememorare Ieiri paralele

Semnale analogice Intrare n Bloc de adaptare semnal Circuit de eantionarememorare

Registru tampon

C A/N EOC START Multiplexor analogic


Sfrit de conversie Comand conversie

Ieire serial

Comand eantionarememorare

Adres canal

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:


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

(3.15)

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

- Extended Industrial Standard Architecture - arhitectur industrial standard extins.

62

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 7

Trigger RTSI 8 AC 9 DC

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

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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:
i Te = TACH = t E / M + t C + n (t MUX + t MEM ) i =1 n

(3.6)

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

Circuit de eantionarememorare
Comand eantionarememorare

C A/N EOC START


Comand conversie

Registru tampon

Semnale analogice Intrare n Bloc de adaptare semnal

Sfrit de conversie

Multiplexor numeric Registru tampon Selecii Adres canal

Circuit de eantionarememorare
Comand eantionarememorare

C A/N EOC START


Comand conversie

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

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

nivele de ntreruperi, care pot fi mascate sau a cror prioritate poate fi modificat.
Linii Port 0 Linii Port 2

Driver-e Port 0

Driver-e Port 2

Registru adrese RAM

RAM intern 128 x 8

Registru Port 0

Registru Port 2

ROM 4k x 8

Registru general B

Registru acumulator

Stiv

Registru temporar 2

Registru temporar 1

Registru adrese program Buffer date Incrementare Contor Program Contor Program Registru adresare memorie

Registre comand, interfa serial, timer-e, ntreruperi ntreruperi porturi seriale, timer-e

Unitate aritmetic i logic

Registru cuvnt de stare a programului Registru de instruciuni Unitate de control Semnale de comand
OSC

Registru Port 1

Registru Port 3

Semnale de ceas

Driver-e Port 1

Driver-e Port 3

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 Acces direct la memorie Port 4 Unitate aritmetic i logic Indicatori de condiii Numrtoare Pointer-i registre Logic de ntreruperi Registre 272 x 8 bii Contor program Unitate de comand Semnale de comand

Interfa serial

Port 3

Port 2

Port 0

Port 1

Intrri-ieiri sau CONTROL programabile la nivel de bit

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)

DFM Ieire

Porturi seriale de ieire

Port paralel de interfa cu microprocesor

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

GSP1

GSP2

GSP3

GSP4

Semnale de comunicaie port paralel

Port paralel

RAM Program 1k x 24b RAM Date 1k x 24b

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 4

Semnale de comunicaie port 2

Port 2 Intrare serial

Adrese/Date

Port 4 Ieire serial

Semnale selecie

Logic selecie ceas

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

SEMNALE

ACHIZIIE I CONTROL

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 1 Calculator 2 Calculator 3 Software

GPIB

VXI/VME

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

Filtrare FTJ Semnal

Conversie analogdigital CA/D

Unitatea de calcul

Conversie digitalanalogic Filtrare CD/A Analog FTJ

Circuit de amplificare

Analog Numeric

Semnal

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 A/D

Bloc de memorie virtual contiguu

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 32 Aplicaii WIN 16

Aplicaii WIN 16

Aplicaii WIN 16

Resurse sistem KERNEL, USER, GDI

Aplicaii WIN 16 Windows NT

Spaiu de memorie partajat Spaiu de memorie separat

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:
DAQScope 5102 Canale de intrare Frecvent maxim de eantionare Frecven maxim de repetiie Lungimea nregistrrii Rezoluia (bii) Banda de frecvene Trigger 2 20MS/s 1GS/s 662kB 8 15MHz analog i digital CompuScope CS220 2 20MS/s 32kB 8 20MHz analog THM565 TekMeter 2 25MS/s 256kB 8 5MHz analog Fluke PM3335 2 20MS/s 8kB 8 60MHz analog HP 54603B 2 20MS/s 10GS/s 4kB 8 60MHz 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 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.

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

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 VXI 40 MHz 16 kB 1 nu 20V 12 bii multiple nu 50 HP 33120A tradiional 42 MHz 16 kB 1 Da 10V 12 bii Multiple Nu 50 Standford DS340 tradiional 40 MHz 16 kB 1 nu 10V 12 bii unic nu 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.
DAQMeter 4050 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 0,02% 20mV...250V max. 2% 20mV...250V 0,05% 200...20M 0,1% max. 2% 1A...10A THM 565 TekMeter 0,5% 400mV...850V 2% 400mV...600V 0,5% 400...40M Fluke PM 2525 0,02% 200mV...2000V 0,2% 200mV...2000V 0,1% 200...200M 0,1% max. 3% 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 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);

120

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

2000 h 1FFF h INTERNAL (EA = 1) 0000 h PROGRAM MEMORY EXTERNAL FF h (EA = 0) 7F h 00 h

OVERLAPPED MEMORY SPACE

SFR 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 ACC ADCH ADCON B CTCON CTH3 CTH2 CTH1 CTH0 CMH2 CMH1 CMH0 CTL3 CTL2 CTL1 Descriere Accumulator A/D converter High A/D control B register Capture control Capture 3 High Capture 2 High Capture 1 High Capture 0 High Compare 2 High Compare 1 High Compare 0 High Capture 3 Low Capture 2 Low Capture 1 Low Adresa directa E0 H C6 H C5 H F0 H EB H CF H CE H CD H CC H CB H CA H C9 H AF H AE H AD 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 xxxxxxxx B xxxxxxxx B xxxxxxxx B xxxxxxxx B 00 H 00 H 00 H xxxxxxxx B xxxxxxxx B xxxxxxxx B

128

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT
CTL0 CML2 CML1 CML0 DPTR: DPH DPL IEN0 IEN1 IP0 IP1 P5 P4 P3 P2 P1 P0 PCON PSW PWMP PWM1 PWM0 RTE SP S0BUF S0CON S1ADR SIDAT S1STA SICON STE TH1 TH0 TL1 TL0 TMH2 TML2 TMOD TCON TM2CON TM2IR T3 Capture 0 Low Compare 2 Low Compare 1 Low Compare 0 Low Data pointer Data pointer High Data pointer Low Interrupt enable 0 Interrupt enable 1 Interrupt priority 0 Interrupt priority 1 Port 5 Port 4 Port 3 Port 2 Port 1 Port 0 Power control Program status word PWM prescaler PWM 1 register PWM 0 register Reset/toggle enable Stack pointer Serial 0 data buffer Serial 0 control Serial 1 address Serial 1 data Serial 1 status Serial 1 control Set enable Timer 1 High Timer 0 High Timer 1 Low Timer 0 Low Timer 2 High Timer 2 Low Timer mode Timer control Timer 2 control T2 interrupt flag register Timer 3 AC H AB H AA H A9 H 83 H 82 H A8 H E8 H B8 H F8 H C4 H C0 H B0 H A0 H 90 H 80 H 87 H D0 H FE H FD H FC H EF H 81 H 99 H 98 H DB H DA H D9 H D8 H EE H 8D H 8C H 8B H 8A H ED H EC H 89 H 88 H EA H C8 H FF H 9F SM0 9E SM1 9D SM2 9C REN 9B TB8 9A RB8 99 TI 98 RI GC 0 DA AA SP42 0 D9 CR1 SP41 AF EA EF ET2 BF -FF PT2 AE EAD AD ES1 AC ES0 AB ET1 AA EX1 A9 ET0 A8 ET1 xxxxxxxx B 00 H 00 H 00 H 00 H 00 H 00 H

EE ED EC EB EA EMC2 EMC1 EMC0 ECT3 ECT2 BE BD BC BB BA PAD PS1 PS0 PT1 PX1 FE FD FC FB FA PCM2 PCM1 PCM0 PCT3 PCT2

E9 E8 00 H ECT1 ECT0 B9 B8 x0000000 B PT0 PX0 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 A7 A15 97 SDA 87 AD7 SMOD D7 CY B6 WR A6 A14 96 SCL 86 AD6 -D6 AC B5 T1 A5 A13 95 RT2 85 AD5 -D5 F0 B4 T0 A4 A12 94 T2 84 AD4 WLE D4 RS1 B3 INT1 A3 A11 93 CT3I 83 AD3 GF1 D3 RS0 B2 INT0 A2 A10 92 CT2I 82 AD2 GF0 D2 OV B1 TXD A1 A9 91 CT1I 81 AD1 PD D1 F1 B0 FF H RXD A0 FF H A8 90 FF H CT0I 80 FF H AD0 IDL D0 P 00xx0000 B 00 H

TP47

TP46

RP45

RP44

RP43

RP42

RP41

00 H 00 H 00 H RP40 00 H 07 H

00 H 00 H 00 H F8 H

SLAVE ADDRESS SC4 DF CR2 TG47 SC3 DE ENS1 TG46 SC3 DD STA SP45 SC1 DC STO SP44 SC0 DB SI SP43

0 D8 00 H CR0

SP40 C0 H 00 H 00 H 00 H 00 H 00 H 00 H 00 H 00 H

GATE 8F TF1

C/T 8E TR1

M1 8D TF0

M0 8C TR0 T2B0 CC CMI0

GATE 8B IE1 T2P1 CB CTI3

C/T 8A IT1 T2P0 CA CTI2

M1 89 IE0

M0 88 IT0

T2IS1 T2IS0 T2ER CF T20V CE CMI2 CD CMI0

T2MS T2MS 00 H 1 0 C9 CTI1 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

T0 Reference 8051 Core without ROM/RAM

T1

INT0

INT1

PWM0 PWM1

ADC0 .. STADC ADC7

SDA

SCL

XTAL1

XTAL2 Timer 0 Timer 1 (16 bit) UCP Dual PWM Program Memory (8kytes) Data Memory (256 bytes)

EA

ALE

MUX & ADC

I 2C BUS

PSEN

WR 8 bit Internal BUS

RD

AD0..AD7 Parallel I/O Ports & External Bus Serial UART Port 8 bit Port Four 16 bit Capture Latches

Timer T2

ELECTRONIC APLICAT

A8..A15

16 bit Comparators with Registers

Comparator Outputs Selection

Watchdog Timer T3

Fig. 5.2 Structura microcontroller-ului 80C552.


P0 P1 P2 P3 TxD RxD P4 CT0I .. CT3I T2 RT2 CMSR0 .. CMSR5 CMT0, CMT1 ALTERNATIVE FUNCTIONS OF PORT P1 ALTERNATIVE FUNCTIONS OF PORT P4

RST

EW

ALTERNATIVE FUNCTIONS OF PORT P0

ALTERNATIVE FUNCTIONS OF PORT P2 ALTERNATIVE FUNCTIONS OF PORT P5

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ALTERNATIVE FUNCTIONS OF PORT P3

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

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 C/T M1 Temporizator 0 M0 gate C/T M1 Temporizator 1 (LSB) M0

unde:

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

132

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

8-Bit Comparator Internal BUS

Output Buffer

PWM0

PWMP

8-Bit Counter

fOSC

1:2

8-Bit Comparator

Output Buffer

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 AVREF- AVREF+ AVDD AVSS

ADR0

ADR1

ADCON

ADR2

ADC0 ADC1 ADC2 ADC3 ADC4 ADC5 ADC6 ADC7

ADCS ADCI ADEX D0 D1

MUX

10-Bit A/D Converter D2 D3 D4 D5 D6 D7 D8 D9


0 1 2 3 4 5 6 7

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

V DAC START STOP

1 VIN
3 4 1 2 7 8

15 16

29 32

59 64

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 CT2I INT CT3I INT

CT0I

CT1I

CT2I

CT3I

CT0

CT1

CT2

CT3

off fOSC 8-bit overflow interrupt 1:12 Prescaler Timer T2 16-bit overflow interrupt

T2 RT2 T2ER External reset enable Comparator INT Comparator

INT

Comparator

INT

CM0 (Set)

CM1 (Reset)

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

Exemplu:

Octei: Ciclii main: Codare: Operaii:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

(SP) (SP)+1 (SP) (PC158) (PC100) adresa blocului 2 ADD Funcia: Descriere:
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

Exemplu:

3 ADDC Funcia: Descriere:

144

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

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
145

4 AJMP Funcia: Descrierea:

Exemplu:

5 ANL Funcia: Descriere:

Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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

Exemplu:

7 CJNE Funcia: Descriere:

146

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

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
147

8 CLR Funcia: Descriere: Exemplu:

9 CLR Funcia: Descriere:

Exemplu:

10 CPL Funcia:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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:

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

12 DA Functia: Descriere:

148

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

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
149

13 DEC Funcia: Descriere:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

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

14 DIV Funcia: Descrierea:

Exemplu:

15 DJNZ Funcia: Descriere:

150

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

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.

16 INC Funcia: Descriere:

Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

151

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

17 INC Funcia: Descriere:

Exemplu:

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

18 JB Funcia: Descriere:

Exemplu:

19 JBC Funcia: Descriere:

152

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

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

20 JC Funcia: Descriere:

Exemplu:

21 JMP Funcia: Descriere:

Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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

Exemplu:

23 JNC Funcia: Descriere:

Exemplu:

154

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

Exemplu:

25 JZ Funcia: Descriere:

Exemplu:

26 LCALL Funcia:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Descriere:

Exemplu:

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.

27 LJMP Funcia: Descriere:

Exemplu:

28 MOV Funcia: Descriere:

Exemplu:

156

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

Exemplu:

30 MOV Funcia: Descriere:

Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

157

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

31 MOVC Funcia: Descriere:

Exemplu:

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

32 MOVX Funcia: Descriere:

158

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

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
159

33 MUL Funcia: Descriere:

Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

este setat, iar cel de transport este zero. 34 NOP Funcia: Descriere: Exemplu: 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

35 ORL Funcia: Descriere:

Exemplu:

160

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:


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

Exemplu:

37 POP Funcia: Descriere:

Exemplu:

38 PUSH Funcia: Descriere: Exemplu:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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

Exemplu:

40 RETI Funcia: Descriere:

Exemplu:

162

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

execuia programului de la adresa 0123H. 41 RL Funcia: Descriere: Exemplu:


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
163

42 RLC Funcia: Descriere:

Exemplu:

43 RR Funcie: Descriere: Exemplu:

44 RRC Funcia: Descriere:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

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

45 SETB Funcia: Descriere: Exemplu:

46 SJMP Funcia: Descriere:

Exemplu:

47 SUBB Funcia: Descriere:

164

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT

Exemplu:

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
165

48 SWAP Funcie: Descriere:

Exemplu:

49 XCH Funcie: Descriere:

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

PREZENTAREA MICROCONTROLLERULUI 80C552 (PHILIPS)

Exemplu:

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

50 XCHD Funcia: Descriere:

Exemplu:

51 XRL Funcie: Descriere:

Exemplu:
166

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 I 2 C Bus
XTAL1 XTAL2 LCD OUT 0..7 OUT 8..15 IN 0..7 CONNECTOR CONNECTOR CONNECTOR CONNECTOR
XD1
LATCH 74HCT374 OE LE

X15
LATCH 74HCT374

X14

X16
BUFFER 74HCT244

OE

LE

OE

S0 EEPROM
ST24C04

S1

S2

S3

AD0 .. AD7

SDA SCL

MICROCONTROLLER
RD WR

RESET

AD0 .. AD7
74HCT373

RAM
DATA ADR

AD0 .. AD7 A0 ..A14


A15

EPROM
DATA ADR
RD CS 27C256

To PC

RS-232
MAX232

TxD RxD AD0 .. AD7 ALE P5.0 .. P5.7 P4.0 .. P4.7 PSEN
74HCT08

A0 ..A14
A15

OE

LATCH

A0.. A7

LE

PWM 0..1 IN ADC 0..7 IN/OUT 0..7 FFFF H DATA MEMORY - RAM (EXTERNAL) 32 Kbytes PROGRAM MEMORY - EPROM (EXTERNAL) 32 Kbytes 8000 H 7FFF H

WR A15 CS RD KM62256

A8 .. A15

A8 .. A15

A0 .. A15
A5 . . A7

A0 .. A15

C 80C552
74HCT08

DCD
A..C G1 G2A G2B 0 1 2 3 4 5 6 7

A8 A15

S4 S5 S6 S7

0000 H

74HCT138

a) Structura de baz a sistemului de dezvoltare IMC500.


U6 X14 X15 X16 XD1 R9 R10 74LS244 74LS04 CD3 U6 D5 GND VCC X7 X1 KM 62256 27C256 74LS374 X6 U5 74LS08 74LS138 X2

168

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

X5

U7

74LS374

C2 CD4 X12 C3 Q1

U13 U12 U11

U10 U1 74LS373

CD1

X11

X13 XA1 C5

PCB80C552

U2 X10 CD2 JP1 R7 R8 R2 R3 ST24C04 R4 R5 X3

CD6 CD5 CX3 +

+ +
CX1

CX5 MAX 232

CX4

C4 R6

X4

+
CX2 PB1

+
R1 C1

b) Amplasarea componentelor sistemului de dezvoltare IMC500.


Fig. 5.8 Sistemul de dezvoltare IMC500.

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 X5 (ROM_SEL) 1 PSEN/ 2 CE_P 3 RD/ 4 CE_P CONECTOR X6(ROM_EN) 1 VCC_P 2 VCC 3 GND 4 NC CONECTOR X7 (MAIN_SUPPLY) 1 GND 2 VCC CONECTOR X8 (JP1) 1 EW / 2 GND

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

INT1 T1 RD/ NC XT1 GND A8 A10 A12 ADC7 AVREF+ AD0 AD2 AD4 AD6 EA/ PSEN/ A14

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

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 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 CMSR4 CMSR1 EW/ PW M1 VCC ADC1 ADC3 ADC5 ADC7 CMSR3 CMSR5 CMT1 CT0I CT2I T2 PSCL PRXD INT0

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

1
Cupla CANNON (mama) 9 pini catre sistemul de dezvoltare cu microcontroller 80C552 TxD (2) RxD (3) GND (5)

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

(2) TxD (3) RxD (7) GND (4) RTS (5) CTS (6) DSR (8) DCD (20) DTR

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

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 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X 1 1 1 1 1 1 1 1 0 0 0 0 1 1 1 1 0 0 1 1 0 0 1 1 0 1 0 1 0 1 0 1 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X

Ieire DCD
S0 S1 S2 S3 S4 S5 S6 S7

Adresa (H)
100H..11FH 120H..13FH 140H..15FH 160H..17FH 180H..19FH 1A0H..1BFH 1C0H..1DFH 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) ORL MOV MOV JNB MOV MOV MOV ORL MOV MOV JNB MOV A,#08H ADCON,A A,ADCON ACC.4,WAIT1 A,ADCH A,#1 ; CONVERSIE A/D CANAL 1 ADCON,A A,#08H ADCON,A A,ADCON ACC.4,WAIT1 A,ADCH

WAIT1:

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 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 T2P0 Registrul IEN1. Adresa E8H. Valoare la reset 00H Bit 7 (MSB) ET2 ECM2 ECM1 ECM1

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 ECT3 ECT2 ECT1

176

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 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 CTP1 CTN0 Registrul RTE. Adresa EFH. Valoare la reset 00H Bit 7 (MSB) TP4.7 TP4.6 RP4.5 RP4.4

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.3 RP4.2 RP4.1 Registrul STE. Adresa EEH. Valoare la reset 00H Bit 7 (MSB) TG4.7 TG4.6 SP4.5 SP4.4

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.3 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 Bit 0 (LSB) CTI0 Indicator ntrerupere CTI0 ntrerupere

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

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 Bit 0 (LSB) Send _2 Send _1 Comend Captare

Linie 1

Out _Log_ 2 Out_ Log_ 1

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 Bit 0 (LSB) Send_1

Linie 1

Out _Log_ 2 Out _Log_ 1 Comand Ieiri logice

Send_2

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 179

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 Lin. 2 Lin. 3 Lin. 4

F1 F2 F3 F4

7 4 1 C

8 5 2 0

9 6 3 E

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 Bit 0 (LSB) Send _0

Linie 1

Out _Log_ 1 Out_ Log_ 0

Send_ 1

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 DB1 DB0(LSB)

182

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 RUTI NE DE BAZ PENTRU MANIPULA REA IN 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 JNB JB JNB ADJ: ADD NOADJ: ADD RET END 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 A,#0FH ACC.3,NOADJ ACC.2,ADJ ACC.1,NOADJ A,#07H A,#30H ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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 ; 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 ACALL SEC1 MOV DPTR,#TEXT1

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 P2,#1 R0,#0 190 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

; 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

R7,LOOP

ELECTRONIC APLICAT ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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) 193

; a doua linie NEXT1: MOV A,#0D0H MOV MOV MOVX MOV MOV MOVX CPL MOV ANL JZ JNZ P2,#1 R0,#20H @R0,A P2,#1 R0,#60H A,@R0 A R3,A A,#0FH NEXT2 COL

; a treia linie NEXT2: MOV A,#0B0H MOV MOV MOVX MOV MOV MOVX CPL MOV ANL JZ JNZ P2,#1 R0,#20H @R0,A P2,#1 R0,#60H A,@R0 A R3,A A,#0FH NEXT COL

COL:

JB

ACC.0,COL0

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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.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 ; ACC.1,COL1 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 Local CPU

Low-pass Filter

Low-pass Filter

Data Acquisition Conversion Data Acquisition Conversion

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

Sample/Hold Amplifier

Sample/Hold Amplifier

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

Data Cut-off Frequency Selection Bus 74HCT374 Latch Data Bus Address Bus Command Bus Microcontroller Bus Command

Address Bus

Latch 74HCT374 Sample/Hold Command GAIN0..GAIN2

OE

LE

80C552
Command Register Selection
WR RD WR RD WR D0..D7 A0..A14

D0..D6

MODE HBEN BIP DIFF LE OE

Low-pass Active Filter

SampleHold Amplifier

Programmable Gain Amplifier

Differential Voltage Inputs IN A/D Converter MAX 181


BD0..DB11 WR RD CS RD

FIFO1-H Read FIFO


WR

Data Memory CS 32 Kbytes FIFO1-L Read


PSEN RD D0..D7 A0..A14

Signal Conditioner / Optical Isolation / Overvoltage Protection

D0..D6

MODE HBEN BIP DIFF

A/D Converter Selection


WR RD

Program Memory CS 32 Kbytes

Low-pass Active Filter

SampleHold Amplifier

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

Programmable Gain Amplifier

Differential Current Inputs IN A/D Converter MAX 181


BD0..DB11 WR RD CS

A15

FIFO2-H Read FIFO


WR RD

A5..A7 IN G1 G2 A8 A15

Fig. 6.2 Arhitectura detaliat a sistemului de achiziii de date i analiz (varianta simplificat).
Clock Circuitry Serial Interface FIFO2-L Read
OUT0 OUT1 OUT2 OUT3 OUT4 OUT5 OUT6 OUT7

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL


Decode Logic

To Host Computer

202
RS-232/ RS-485

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


Logic de comand

EN EN Ieire circuit de eantionarememorare

Intrare filtru B EN MAX 271 +Vcc Comand eantionarememorare (T/R) T/H A/B Ieire filtru B Ieire filtru

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

+
P1

AO2 AO1

Out

In

S/H
Comparator

Command

LF198

P2 CS
Dynamic offset compensation

CH

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 AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 REFIN ADCIN REFADJ

MAX 181
S/H MUX COMP DAC

REFOUT REFADJ REF SAR CONTROL BUSY LATCH 3-STATE

CONTROL

DB0..DB11

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


TRACK-AND-HOLD AND COMPARATOR R ADCIN AIN_ (DIFF=1) AGND (DIFF=0) R
IN IN

TRACK

C 5pF

H O L D

COMPARATOR

+
HOLD C 20pF
S W

IT C H

5k

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.
+5V MUXOUT

74HCT574
1k 16k 8k AIN2 4k AIN3 2k AIN4 1k AIN5 1k DB0..DB11 ADCIN AIN0 AIN1 A2 A1 A0 BIP DIFF HBEN MODE 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

_
MAX 400 VIN

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):
Ai = 1 +

Rk
k =1 6 k =i +1

Rk

(6.4)

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 D +15V ADCIN

+
MAX 400 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7 AGND -15V VV+ OUT

MUXOUT

64k 32k 16k 8k 4k 2k 1k 1k

ANALOG MUX MAX 368

SEL2 SEL1 SEL0 WR EN

GAIN2 GAIN1 GAIN0

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 DATAOUT HOLD SAMPLE 3 CLK VALID DATA NEW DATA DB0..DB11 VALID DATA

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 Comand citire Semnal selecie convertor Scriere FIFO W R Citire FIFO_L Semnal selecie LSByte
74HCT32

WR RD CS

MAX181
DB0..DB11

DB0..DB7

Am7204A DIN DOUT XI

D0..D7

Magistral

DB0..DB11
W Am7204A DIN DOUT XI RS RT FF R

D0..D7
de date

DB8..DB11

D0..D7
Citire FIFO_H
74HCT32

Semnal selecie MSByte 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
L L H H

A0
L H L H

REGISTRUL DE INTRARE SELECTAT


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

CSMSB H H H L L

WR L

LDAC H H H H H H L

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.

L L

H H H X H H

L H H L H L L L L L

X H L X L L H H H

L H L H L L H

L L L H H

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
LOCAL KEYBOARD 0 4 1 5 DATA (6/8 x 2 x 8 bits) 9 * 4 3 WR FIFO RD RD RD RD FIFO ... FIFO FIFO WR WR WR 8 LATCH OE LE 7 LATCH LE OE # 2 6 3 7 8 ANALOG SECTION CIRCUITRY WR RD CONVERSION CUT-OFF CS PARAMETERS FREQUENCY

LOCAL LCD DISPLAY

Q 30,0 MHz

OUT 0..7

IN 0..7

SDA DATA BUS

EEPROM

SCL

AD0 .. AD7

RESET WR RD DATA
RAM WR RD CS RD CS 6 DATA EPROM

C 80C552

TxD

RS-232

RxD PSEN ADR ADR

RS-485

DECODE LOGIC IN OUT EN 2 UNIDIRECTIONAL (R/W) SELECTION BUS

ALE
A0 .. A7 A8 .. A15 ADDRESS BUS (A0 .. A15)

LATCH LE OE

PWM 0..1 INADC 0..7

IN/OUT 0..7

A8 .. A15

SISTEM UNIVERSAL, MODULAR, DE ACHIZIII DE DATE

IN OUT EN DECODE LOGIC

BIDIRECTIONAL (R&W) SELECTION BUS

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 DATA MEMORY - RAM (EXTERNAL) 32 Kbytes 32 K PROGRAM MEMORY - EPROM (EXTERNAL) 32 Kbytes 0K 0000 H 8000 H 7FFF H FFFF 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

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

224

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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X X A8 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 A7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 A6 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 A5 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 A4 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 A3 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 A2 X X X X X X X X X X X X X X X X X X X X X X X X A1 X X X X X X X X X X X X X X X X X X X X X X X X A0 X X X X X X X X X X X X X X X X X X X X X X X X

Ieire DCD
LCD ADCSEL CMDREG CUTOFF OUT 0..7 FIFO1L FIFO1H FIFO2L OUT 8..15 FIFO2H FIFO3L FIFO3H IN 0..7 FIFO4L FIFO4H FIFO5L FIFO5H FIFO6L FIFO6H FIFO7L FIFO7H FIFO8L FIFO8H NC

Adresa (H)
100H..07H 108H..10FH 110H..117H 118H..11FH 120H..127H 128H..12FH 130H..137H 138H..13FH 140H..147H 148H..14FH 150H..157H 158H..15FH 160H..167H 168H..16FH 170H..177H 178H..17FH 180H..187H 188H..18FH 190H..197H 198H..19FH 1A0H..1A7H 1A8H..1AFH 1B0H..1B7H 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: 2 2 A = N NS (6.5) 2 2 2 = N A2 unde 2 N reprezint dispersia zgomotului.
A
f0

n0 = T0

A
f0 = n0 0,5 T0

n -3 n -2 n -1
0 0 0

n +1 n +2 n +3
0 0 0

n -3 n -2 n -1
0 0 0

n +1 n +2 n +3
0 0 0

a) Eantionarea coerent

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 Valoare Tipic 12 Maxim 12 -2,5 .. +2,5 1 -2 4 10 Unitate de msur Bit V A MA LSB LSB

1 2

Eroare de conversie

1 0,012% LSB 2

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 2 SAD = CANA + ( 2 AO + QOS + CH + DESC ) + 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 ANALIZORUL FOURIER .1


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 SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

258

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 261

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 DEC JZ DEC JZ DEC JZ DEC JZ DEC JZ DEC JZ DEC JZ DEC JZ DEC JZ SCH: MOV ACALL ACALL LJMP MOV CLR SUBB MOV ACALL ACALL MOV INC INC INC A SCH A SCH A SCH A SCH A SCH A DCH A DCH A DCH A ALL 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

DCH:

262

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT 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

ALL:

; SH:

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

comanda de esantionare, selectie canal si amplificare asteapta 5us pentru achizitia semnalului de intrare

comanda de memorare pentru canalul de intrare selectat

; SINGLE: ACALL WRCONV ACALL WAIT10 ACALL RDCONV ACALL RDLSBYTE ACALL WRMEM ACALL RDMSBYTE

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 263

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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

ACALL WRDAT INC SJMP DPTR TRX1

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

; 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 MOV MOV MOVX CPL RET @R0,A P2,#1 R0,#60H A,@R0 A ; ; ; ; ; ; ; ; ; 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 3 secunde x 256)/11,059MHz cu #255 cu #255

; 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

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

ELECTRONIC APLICAT NOP NOP DJNZ DJNZ

R7,LOOP R6,LOOP1

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

; ; ; ; ;

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

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 AVSS

P1

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

R2 + R3

i =1

(8.9)

Ri
i =1

AVDD

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: R 2 = R i R 3 = 4,01k 2,73k = 1,28k
i= 2 3

(8.12)

Valoarea rezistenei R1 rezult conform ecuaiei: R 1 = R i R j = 5k 4,01k = 0,99k


i =1 j= 2 3 3

(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

R1 4,7k Q1 BC177
OUT IN OUT

D1 1N4001

+Vcc

IOUT=0 R2 62,5 U(t C) I(t C)


0 0

+ U1 LM35 I-=I+

IREF R3 402

U2 LM317
ADJ

VREF (1,25V) P1 50

IADJ<100A 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 = 153 5V = 3V 255 (8.22)

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

+15V Rp Vs D1 D2 Rp +15V T R

220V~

Rs

AA145

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 MOV ACALL MOV ACALL INC ACALL ACALL ACALL MOV ACALL MOV ACALL MOV ACALL MOV ACALL MOV ACALL INC ACALL MOV ACALL MOV ACALL MOV ACALL MOV MOV ACALL MOV ACALL MOV ACALL MOV MOV CALL MOV ACALL ACALL ACALL MOV MOV CALL MOV ACALL MOV SWAP ORL MOV 290 DPTR,#TEXT TRX1 R2,#0C0H WRCMD DPTR TRX1 SEC CLRLCD DPTR,#TEXT1 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 PWMP,A KEY R2,#1110B WRCMD R2,#08BH WRCMD A,R1 R4,A HEXASC R2,A TRX SEC KEY A,R1 R5,A HEXASC 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 ; 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 SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL MOV RRC MOV DJNZ A,R1 A A,R1 R3,SHIFTR

ELECTRONIC APLICAT ; 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 SUBB JC A,R5 LABEL1

SISTEM CU CONTROLLER PENTRU MSURAREA I CONTROLUL TEMPERATURII COL: JB 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: MOV ADD MOV SJMP LINIE2: 294 ACC.0,COL0 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,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 PLAY A,#04H A,R1 R1,A PLAY ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; ; 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 acumulatorul se incarca cu 4 aduna acumulatorul cu R1 se transfera acumulatorul in R1 salt la eticheta PLAY

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 DJNZ RET

R7,LOOP 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

; 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 MOV DEL4MS: ACALL DJNZ MOV LINI: ACALL ACALL DJNZ ACALL MOV ACALL ACALL MOV ACALL ACALL MOV ACALL ACALL RET WRCMD R4,#50 DELAY R4,DEL4MS R4,#4 WRCMD DELAY R4,LINI 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 ; ; ; ; ; ; ; 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

MOVX

A,@R0

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 ; sfarsitul programului

298

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
JP1 4 HEADER 4 3 2 1 LED1 RLED GND 470 +5V C2 100nF XTAL 1 2 GND 3 GND 2 R2B 1k1 12 13 1k U1D TL084 GND GND 10 9 1k5 U1C TL084 +9Vcc 4 SW1 5 2 11 U1A TL084 -9Vcc R6B 620 1 5 R8 1k D1 DZ5V1 GND GND 1 2 3 4 3 6 11 5 6 1k5 U1B TL084 7 1k R7 R6A 11 GND 1k 620 8 R13 R12A R12B D2 DZ5V1 14 R14 U2 R2A 1k1 R1B 1k1 GND R1A 1k1 R3 1K 1 C10 15pF 20MHz GND C11 15pF C3 22uF DN G 3 LED U4 LM7905CT -9Vcc Vin C4 22uF C1 22uF DN G 2 Vin 1 +9Vcc -5V U3 LM7805CT 3 C6 22uF C5 100nF LPT

Sg.B

RB1

GND

200k RB2

200k RB3

100k RB4

200k RB5

100k RB6

100k

RB7

100k

GND

17 C61

Sg.A

RA1

1 2 3 4 5 6 7 8 9

RA2 RA3 RA4 MCLR Vss RB0 RB1 RB2 RB3 16C71

GND

200k RA2

RA1 RA0 OSC1 OSC2 Vdd RB7 RB6 RB5 RB4

18 17 16 15 14 13 12 11 10

200k RA3 1 2 3 4 6 7 8 9 10 7 8 9 10 SWITCH

100k RA4

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

200k RA5

100k RA6

100k

RA7

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

100k

GND

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 Capacitate memorie Capacitate memorie de program de date 512 x 14 36x8 1K x 14 36x8 1K x 14 68x8 2K x 14 128x8

PIC16C710 PIC16C71 PIC16C711 PIC16C715

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 BSF STATUS, RP0 PORTB 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 org 0x10 movlw movwf tris call bcf call bcf bsf bsf 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 b'00000000' PORT_B PORT_B InitializeAD flag, adover SetupDelay ADCON0, adif ADCON0, go INTCON, gie ; ; ; ; ; reset software flag A/D delay >= 10uS. reset A/D flag intrerupere start conversie A/D activare globala intreruperi ; initializare porturi I/O 0x00 start 0x04 service_ad

; ; start

; vector intrerupere

; update

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

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

328

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 IULUI APLICAIEI EASYSCOPE NI


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 int: 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 0 start 4

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

331

IMPLEMENTAREA UNUI INSTRUMENT DE VIZUALIZARE A SEMNALELOR int2: btfsc goto bcf bsf goto bsf bcf nop nop mode,1 int3 ADCON0,CHS0 mode,1 int4 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 333

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 loop: movwf TMR0 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

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

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: } 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];

tmp=0x40; break; tmp=0xc0; break; tmp=0x00; break; tmp=0x80; break;

tmp=0x04; break; tmp=0x0c; break; tmp=0x00; break; tmp=0x08; break;

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

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
COMMAND UNIT RELAY UNIT RELAY UNIT DIGITAL FILTER UNIT NSA UNIT NIA UNIT LOCAL LCD DISPLAY LOCAL KEYBOARD +5V CT0I
OUT 8..15 CONNECTOR
LATCH 74HCT374 OE LE OE

352
CT1I Q LCD 11,0592 MHz CONNECTOR PROGRAMARE UP DOWN VALIDARE
IN 0..7 CONNECTOR
BUFFER 74HCT244

ULTRASONIC SENSOR

TEMPERATURE SENSOR

XTAL1 P4.0 .. P4.7 P4.0 .. P4.7

XTAL2

S0

AD0 .. AD7

S2

S3

RESET
RD WR

MICROCONTROLLER AD0 .. AD7


74HCT373

RAM
DATA ADR

AD0 .. AD7 A0 ..A14

EPROM
DATA
OE

To PC
MAX232

RS-232
RxD AD0 .. AD7 ALE

TxD

A0 ..A14
LATCH

A0.. A7
LE

ADR
WR RD CS KM62256

A15

A15

f/I Converter 4..20 mA PWM0 PWM 0..1 ADC0 ADC 0..1 ADC1 I/U Converter 0,5..4 V
P5.0 .. P5.7 A8 .. A15 PSEN

CS RD 27C256 74HCT08

A15

TRADUCTOR INTELIGENT PENTRU MSURAREA NIVELULUI

Fig. 10.1 Schema bloc a nivelmetrului cu ultrasunete.


A8 .. A15 A0 .. A15 C 80C552
74HCT08

A0 .. A15

A5 . . A7 A8 A15

DCD
A..C G1 G2A G2B 0 1 2 3 4 5 6 7
74HCT138

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 ?

DA

Mesaj Parola incorecta

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 ? DA Afisare nivel inferior alarmare Programare PWM0=FFH Memorare nivel inferior alarmare Mesaj calibrare generator de curent Programare PWM0=FFH NIA>NSA NU

Citire tastatura (1 tasta)

NU

Tasta apasata ?

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 Activare semnal depasire inferioara AX10

DA

h>NSA

NU

DA

h>NSA

NU

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 Delay Citire port intrare

Mascare biti semnificativi Determinare cod coloana Reconstituire octet 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 373

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 375

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 389

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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: JNB CLR INC DJNZ LCALL JZ JB LJMP LJMP MOV INC DA ANL MOV RET TI,WT TI DPTR R7,TRANS INPORT GO ACC.0,PRO PROGR ACH1 A,R5 A A A,#0FH R5,A 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 397

PRO: GO: ; UP:

; 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

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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 399

SISTEME INTELIGENTE HARDWARE-SOFTWARE DE MSURARE I CONTROL

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; Antoniu, M., Poli, t., Antoniu, E.: Msurri electronice - Aparate i sisteme de msur numerice, Editura SATYA, 1997; Damms, K. J., Heinze, R .: Leittechnik: Unix und Windows NT, ETZ Archiv, Heft 1-2/1998, pg. 8-10; Dale, N., Weems, C.: Introduction to PASCAL and Structured Design, D. C. Heath and Company, 1987; Dale, N., Lilly, C. S.: PASCAL Plus Data Structures. Algorithms and Advanced Programming, D. C. Heath and Company, 1989; Fitzgerald, J.: Businesd Data Comunications - Basic Concepts, Security and Design, J. Wiley & Sons Inc., 1990; Ghinea, D., Popescu, C., Popescu, M., Analiza spectral a semnalelor energetice, Ars docendi, Bucureti, 1999; 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; 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;

2. 3. 4. 5. 6. 7. 8.

9.

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

You might also like