Sunteți pe pagina 1din 83

inde

SISTEMUL CU
MICROPROCESOR PE 32
DE BIŢI (modul Z3/EV)
Teorie şi exerciţii
Volumul 2/4 şi Appendix
INDEX.....................................................................................................................................................2
LECŢIA 13: INTERFAŢA SERIALĂ..............................................................................................................3
LECŢIA 14: CONVERTORUL DIGITAL/ANALOGIC...................................................................................17
LECŢIA 15: CONVERSIA ANALOG/DIGITALĂ..........................................................................................24
A. MONITORUL DE COMANDĂ AL MODULUI EV/Z3.........................................................................32
B. RESURSELE MONITORULUI...........................................................................................................38
C. COMUNICAREA CU COMPUTERUL PERSONAL..............................................................................45
D. ELEMENTE DE ELECTRONICA ......................................................................................................48
LECŢIA 13: INTERFAŢA SERIALĂ

OBIECTIVE
 Principiile comunicării seriale
 Interfaţa serială a modului Z3/EV
 Controlerul 8250
 Regiştrii controlerului 8250
 Programarea interfeţei seriale
 Realizarea unor aplicaţii şi exerciţii

MATERIALE
 Unitatea de bază pentru sistemele IPES (sursă de curent mod.PS1-PSU/, priză
mod.MU/EV, unitate de management individual mod.SIS1/SIS2/SIS3)
 Modul experimental mod.Z3/EV
 Osciloscop

Principiile comunicării seriale


Pentru transmisia datelor între calculatoare se foloseşte transmisia serială, în locul
transmisiei paralele, atunci când:
 Distanţa e mai mare de 3 – 4 m
 Numerele liniilor de conexiune trebuie să fie minime
Transmisia serială face posibilă transmisia datelor între sisteme, aflate la mare distanţă
unele faţă de celelalte, utilizând doar câteva linii. De asemenea face posibilă utilizarea
liniilor de telefonie prin instalarea unor modulatoare specială, numite modemuri.

Deoarece procesoarele utilizează o magistrală de date de tip paralel, iar în mod normal
cantitatea minimă de informaţii trimisă la un moment dat este un octet, avem nevoie de
conversie din paralel în serial.
Regiştrii de shiftare sunt utilizaţi ca în figura următoare:
Formatul datelor în comunicarea serială asincronă
Pentru a transmite datele în modul asincron, fără utilizarea unui ceas intermediar care
să se ocupe de sincronizarea transmisiei şi recepţiei, într-o linie serială este nevoie de
informaţie suplimentară adaugată biţilor de dată trimişi.
Astfel s-a dezvoltat un nou standard de transmisie:
 Starea liniei de transmisie este în mod normal setată la „1” logic.
 Transmisia începe cu bitul de start (Start Bit) setat la nivelul „0” logic.
 Apoi, sunt transmişi biţi de date (Character Bits) în linie, începând cu cel mai
puţin semnificativ (numărul de biţi este de 7 sau 8 şi se păstrează polaritatea).
 După biţii de date se poate adăuga un bit de paritate (Parity Bit), care poate fi:
 Par: se setează 0 sau 1 pentru a face ca suma biţilor 1 sa dea un
număr par
 Impar: se setează 0 sau 1 pentru a face ca suma biţilor 1 sa dea
un număr impar
 La sfârşitul transmisiei sunt adăugaţi unul sau doi biţi de stop (Stop Bit).
 Durata de transmisie a unui bit depinde de viteza transmisiei (baud-rate) care
poate avea în mod normal una dintre următoarele valori: 300, 600, 1200, 2400,
4800, 9600, 19200, 38400,..

În ceea ce priveşte nivelele semnalelor pe linie, se pot aplica următoarele reguli:


 Un semnal între +3V şi +12 V va avea valoarea logică „1”
 Un semnal între -3V şi -12 V va avea valoarea logică „0”
 Un semnal între -3V şi +3V va avea o stare nedefinită

Toate aceste reguli sunt definite sub standardul RS-232 pentru transmisia serială
asincronă.

Interfaţa serială a modulului EV/Z3


Interfaţa serială a modului EV/Z3 satisface toate caracteristicile standardului RS-232.
În mod particular, chiar şi semnalele de ieşire ale conectorului J2 satisfac acest
standard.
S-a ales pentru realizarea transmisiei seriale un conector cu 9 pini, cel care se
utilizează şi la interfaţa serială a unui PC.

Diagrama interfeţei seriale este prezentată în figura de mai jos.


Interfaţa serială utilizează un controlerul de comunicaţie asincronă 8250
(Asynchronous Communication Controller).
Este un dispozitiv programabil I/O, de uz general, proiectat pentru microprocesoarele
din familia Intel.
Un oscilator extern la frecvenţa de 1.8432 Mhz furnizează ceasul pentru transmisie şi
recepţie. Acest semnal de ceas este apoi divizat intern de către controlerul 8250 pentru
a furniza diferite rate de transmisie.

Semnalele prezente la ieşirea conectului J2 sunt:


 Pin 1(DCD): Data Carrier Detect (semnal de intrare). Este un semnal de control
al modemului.
 Pin 2(RXD): Received Data (semnal de intrare). Datele seriale primite de la
componentele externe.
 Pin 3(TXD): Transmitted Data (semnal de ieşire). Datele seriale transmise
către componentele externe.
 Pin 4(DTR): Data Terminal Ready (semnal de ieşire). Semnal de control al
modemului ce informează asupra momentului când modului EV/Z3 este
pregătit să înceapă o sesiune de transmisie.
 Pin 5(GND): Masă
 Pin 6(DSR): Data Set Ready (semnal de intrare). Semnal de control al
modemului ce informează modulul EV/Z3 asupra momentului în care
componenta externă este pregătită pentru realizarea comunicaţiei.
 Pin 7(RTS): Request To Send (semnal de ieşire). Cere modului EV/Z3 să
trimită un octet.
 Pin 8(CTS): Clear to Send(semnal de intrare). Cere componentei externe să
trimită un octet.

Controlerul 8250 funcţionează cu semnale de nivel logic TTL, iar pentru semnalele de
ieşire se foloseşte standardul RS-232 ce utilizează nivele de +/-12V. Pentru conversia
nivelelor se utilizează IC14 (1488) şi IC15 (489).

Controlerul 8250: Performanţe şi regiştrii interni


Controlerul 8250 este un periferic din familia Intel, ce implementează standardul RS-
232.
Este format din:
 Ceasul intern programabil divizat pentru a genera una din frecvenţele de
transmisie de la 75 la 9600 b/s.
 Bit de start, bit de stop, bit de paritate
 Buffer dublu de intrare şi de ieşire
 Intrare pentru un ceas independent
 Semnale de control a modemului: CTS, RTS, DSR, DTR.

Diferitele moduri de funcţionare ale controlerului se pot selecta prin programarea


regiştrilor.
Poate comunica cu microprocesorul prin intermediul următoarelor adrese, care
corespund următorilor regiştrii interni:
 330H – Registrul buffer de recepţie (Receive Buffer Register)
 330H – Registrul de reţinere a transmisiei (Transmit Holding Register)
 333H – Registrul de control al liniei (Line Control Register)
 335H – Registrul de stare al liniei (Line Status Register)
 334H – Registrul de control al modemului (Modem Control Register)
 336H – Registrul de stare al modemului (Modem Status Register)
 330H – Latch de divizare a celui mai puţin semnificativ octet (Divisor Latch
LSB)
 331H – Latch de divizare a celui mai semnificativ octet (Divisor Latch MSB)
 332H – Registrul de detecţie a întreruperilor (Interrupt Identification Register)
 331H – Registrul de activare a întreruperilor (Interrupr Enable Register)
Controlerul 8250: Semnalele externe
Controlerul 8250 are următoarele linii de I/O:
Semnale de intrare.
 CS0, CS1, CS2# (Chip Select): semnale de activare a componentei. Se
utilizează doar CS2#.
 DISTR# (Data Input Strobe)(Linia de date de intrare): Atunci când DISTR#
are valoarea „0” logic, se selectează componenta, iar citirea este posibilă.
 DOSTR# (Data Output Strobe)(Linia de date de ieşire): Atunci când DOSTR#
are valoarea „0” logic, se selectează componenta, iar scrierea este posibilă.
 ADS# (Address Strobe)(Linia de adrese): Atunci când are valoarea „0” logic,
componenta citeşte adresele de la liniile A0, A1, A2.
 A0, A1, A2 (Register Select)(Selecţia registrului): Liniile de adresă folosite
pentru selectarea registrului. Ele provin din liniile analogice ale magistralei
microprocesorului.
 RESET(resetare): iniţializează procesorul
 RCLK: Semnal de ceas de recepţie
 RXD (Received Data)(Datele receptate): intrare serială a datelor trimise prin
linia de comunicaţie.
 CTS# (Clear to Send) (Şterge pentru trimitere): Linie de control a transmisiei
de date a modemului. Atunci când e activă, se pot transmite datele.
 DSR#(Data Set Ready): Linie de control a modemului pentru a determina
comunicaţia.
 DCD#(Data Carrier Detect)(Detectarea transmisiei de date): Este activă atunci
când comunicaţia se poate realiza.
 RI#(Ring Indicator)(Indicator de inel): nu se utilizează

Semnale de ieşire.
 DTR#(Terminal Ready)(Terminalul e pregătit): Atunci când este activ indică
faptul că controlerul 8250 este pregătit de comunicaţie.
 RTS#(Request To Send)(Cerere de transmisie): Atunci când este activ indică
faptul ca controlerul 8250 este pregătit pentru transmisia unui octet.
 OUT1# (Output1)(Ieşire 1): neutilizat
 OUT2# (Output2)(Ieşire 2): neutilizat
 BAUDOUT# (Baud Out): ceas de transmisie
 TXD (Transmitted Data)(Date transmise): ieşire serială pentru tranmisie a
datelor prin liniile de comunicaţie.

Semnale de intrare/ieşire.
 D0 – D7(Magistrala de date): magistrala de date a conexiunii
microprocesorului
 XTAL (Intrare de ceas): intrare pentru ceas
Programarea interfeţei seriale
Pentru scrierea programelor de comunicaţie se pot folosi direct regiştrii controlerului
8250.
Acest mod de scriere a programelor este foarte complex deoarece cantitatea de
informaţii este foarte mare.
Pentru simplificarea programării interfeţei seriale, monitorul sistemului a fost prevăzut
cu o întrerupere software specială (INT 14H) şi toate funcţiile necesare realizării unei
comunicaţii seriale.

INT14H: Controlează interfaţa serială


Această întrerupere realizează operaţiile necesare funcţionării interfeţei seriale
asincrone RS – 232. Aceste funcţii pot fi alese în funcţie de conţinutul registrului AH:

INTRARE AH = 0 : Iniţializare
AH = 1 : Trimiterea unui caracter
AH = 2 : Recepţia unui caracter
AH = 3 : Citirea stării
AH = 4 : Controlul modemului

AH = 0 : Iniţializarea unui port de comunicaţie


Conţinutul registrului AL determină parametrii iniţializării:

Registrul Programare
AL

Biţi 7, 6, 5 Rata de transmisie


= 000 : 1200
= 001 : 2400
= 010 : 4800
= 011 : 9600

Biţi 4,3 Paritate


= 00 : nu
= 01 : impar
= 10 : nu
= 11 : par

Bit 2 Biţi de stop


=0:1
=1:2

Biţi 1, 0 Lungimea cuvântului


= 10 : 7 biţi
= 11 : 8 biţi

AH = 1 : Transmisia unui caracter


Conţinutul registrului AL reprezintă caracterul trimis.
Înaintea de trimiterea unui caracter, se aşteaptă pentru alte eventuale caractere pentru a
fi trimise mai intâi.

AH = 2 : Recepţia unui caracter


Conţinutul registrului AL reprezintă caracterul receptat.
Se aşteaptă disponibilitatea caracterului înainte de revenirea la programul cel apelează.

AH = 3 : Citirea stării
Conţinutul registrului AH reprezintă starea curentă a liniei de transmisie şi a
modemului.

Registrul Starea modemului


AH

Bitul 7 Detecţia semnalului de pe linia de recepţie


Bitul 6 Indicator de inel
Bitul 5 Setează datele ca fiind disponibile
Bitul 4 Şterge datele pentru trimitere
Bitul 3 Detecţia semnalului de pe linia de recepţie delta
Bitul 2 Detector a urmei marginii inelului
Bitul 1 Setează datele delta ca fiind disponibile
Bitul 0 Şterge datele delta pentru trimitere

Registrul AL Starea liniei

Bitul 7 Time-out
Bitul 6 Registru de shiftare transmiţător gol
Bitul 5 Registru de reţinere a transmisiei gol
Bitul 4 Detecţia breakului
Bitul 3 Eroare de cadru
Bitul 2 Eroare de paritate
Bitul 1 Eroare de depăşire
Bitul 0 Datele sunt disponibile

AH = 4 : Controlul modemului
Conţinutul registrului AL determină starea curentă a modemului ce va fi programat.

Registrul AL Starea modemului

Bitul 7 0
Bitul 6 0
Bitul 5 0
Bitul 4 Loop
Bitul 3 Ieşire 2
Bitul 2 Ieşire 1
Bitul 1 Cerere de trimitere (RTS)
Bitul 0 Terminal de date pregătit
(DTR)

Conexiunea dintre modulul Z3 şi o unitate serială de distanţă


Există mai multe posibilităţi de a conecta între ele două dispozitive prin intermediul
portului serial.
Cea mai simplă este folosind o conexiune cu 3 cabluri ca în figura de mai jos:

Acest tip de conexiune prezintă probleme de sincronizare a semnalelor dintre cele


două componente, şi astfel există o lipsă de control a transmisiei de date.
Componenta ce transmite poate începe transmisia înainte ca componenta de recepţie să
fie disponibilă, aşadar se pot produce pierderi.
Altfel, dacă componenta de recepţie lucrează mai rapid decât cea care trimite, se vor
produce pierderi de date (octeţi) în timpul comunicaţiei.

În mod normal, se utilizează liniile de comunicaţie pentru a controla debitul de date


dintre cele două componente, prin intermediul acestora se va evita pierderea de date.
Conexiunea cu semnale de control a datelor este ilustrată mai jos:

 Liniile DTR (Data Terminal Ready) şi DSR (Data Set Ready) sunt folosite
pentru a face conexiunea între cele două componente. Ele sunt activate la
începutul sesiunii de comunicaţie şi dezactivate la finalul ei.
 Liniile RST (Request To Send) şi CTS (Clear To Send) sunt utilizate pentru
controlul transmisiei unui singur octet.
QUIZ

Setaţi toate comutatoarele în poziţia OFF

Program de transmitere a datelor.


Dorim să realizăm un program care să transmită date de la modulul Z3/EV către un
periferic conectat la portul serial.
Ţinând cont de ce a fost prezentat în partea teoretică, acest program trebuie să
funcţioneze după schema de mai jos.

Analizând această schemă, putem deduce următoarele etape:


 Modulul Z3 trebuie să activeze semnalul DTR pentru a indica celeilalte
componente că se doreşte realizarea unei comunicaţii.
 Cealaltă componentă primeşte acest semnal prin intermediul liniei DSR şi
activeză propria linie DTR.
 Atunci când modulul Z3 va primi un semnal activ pe linia DSR se va activa
linia de comunicare dintre cele două componente.
 Cealaltă componentă va semnala că este gata sa primească date prin
intermediul liniei RTS
 Modulul Z3 aşteaptă până când linia CTS (care este linia RTS a celeilalte
componente) este activă, înainte de a-şi trimite reciproc date
 Modulul Z3 transmite codul ASCII 01010101B
 Rularea programul modulului Z3 care se întrerupe pentru a aştepta semnalul
CTS pentru a se putea permite transmiterea unui nou octet.

Codul sursă al programului este următorul:

1 PAGE 70,166
2 ;----------------------- PRG_TX -----------------------
3 ; transmisia datelor pe portul serial
4 ;parametrii TX: 1200, N, 8, 1
5 ;aşteptarea semnalului DSR la începutul conexiunii
6 ; aşteptarea semnalului CTS la fiecare nou octet transmis
7 = 0800 MEM_POS = 0800H
8 = 0080 DS_SEG = 0080H
9 = 01F4 DELAY = 500 ;întârziere în ms
10 = 000B IDIS_STR = 0BH ; întrerupere de afişare a unui şir de caractere
11 = 000D IWAIT_MS = 0DH ; întrerupere de aşteptare
12 = 0014 ISERIAL = 14H ; întrerupere serială
13 = 000F IDA = 0FH
14
15 ;---------------------------------------- CODE
16 ;Programul este încărcat la adresa 0000:MEM_POS
17 0000 CODE SEGMENT
18 ASSUME CS:CODE, DS:CODE
19 0000 ORG 00H
20 0000 B8 0080 START: MOV AX,DS_SEG
21 0003 B8 0080 MOV AX,DS_SEG
22 0006 8E D8 MOV DS,AX ;încarcă segmentul de date
23 0008 BE 0042 R MOV SI,OFFSET MW_DSR
24 000B CD 0B INT IDIS_STR ;afişează mesajul MSG
25 000D B4 00 MOV AH,00H
26 000F B0 63 MOV AL,01100011B
27 0011 CD 14 INT ISERIAL ; programare serială
28 0013 B4 04 MOV AH,04H
29 0015 B0 01 MOV AL,00000001B ;activare DTR
30 0017 CD 14 INT ISERIAL
31 0019 B4 03 W_DSR: MOV AH,03H
32 001B CD 14 INT ISERIAL
33 001D 80 E4 20 AND AH,00100000B ;verifică DSR
34 0020 74 F7 JZ W_DSR ;salt dacă nu e activ
35
36 0022 BE 0053 R TLOOP: MOV SI,OFFSET MW_CTS
37 0025 CD 0B INT IDIS_STR ;afişează mesajul MSG
38 0027 B4 03 W_CTS: MOV AH,03H
39 0029 CD 14 INT ISERIAL
40 002B 80 E4 10 AND AH,00010000B ;verifică CTS
41 002E 74 F7 JZ W_CTS ;salt dacă nu e activ
42
43 0030 B4 01 MOV AH,01H
44 0032 B0 55 MOV AL,01010101B
45 0034 CD 14 INT ISERIAL ;transmisia datelor
46 0036 BE 0064 R MOV SI,OFFSET MS_BYTE
47 0039 CD 0B INT IDIS_STR ;afişează mesajul MSG
48 003B B8 07D0 MOV AX,2000
49 003E CD 0D INT IWAIT_MS
50 0040 EB E0 JMP TLOOP
51
52 0042 57 61 69 74 20 66 MW_DSR DB 'Wait for DSR ',00H
53 6F 72 20 44 53 52
54 20 20 20 20 00
55 0053 57 61 69 74 20 66 MW_CTS DB 'Wait for CTS ',00H
56 6F 72 20 43 54 53
57 20 20 20 20 00
58 0064 42 79 74 65 20 74 MS_BYTE DB 'Byte transmitted ',00H
59 72 61 73 6D 65 73
60 73 6F 20 20 00
61
62 0075 CODE ENDS
63 END START

Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC


folosiţi aplicaţia MODZ3 pentru transferul programului PRG_TX prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).
Daţi comanda: LD_KB
Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului: B8, 80, 00, ..., 20, 00.

Acest program necesită utilizarea unui dispozitiv extern ca şi unitate de comunicare la


distanţă. În acest caz se va folosi un PC.
Conectaţi modulul Z3 la PC prin intermediul unui cablu serial adecvat.
Rulaţi pe PC programul de comunicaţie (se poate utiliza terminalul de Windows pe
care îl puteţi găsi în accesorii).
Setaţi viteza de transmisie la 1200 baud, 8 biţi, fără paritate, 1 bit de stop.
Presetaţi controlul de debit al datelor al tipului de hardware (ce utilizează liniile DTR,
DSR, CTS, RTS).
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.

Q1 Ce literă, transmisă de la modulul Z3, apare la calculator?

SET

A B

1 2 A

2 5 a

3 1 G

4 3 U

5 4 u

Setaţi comutatorul S13 în poziţia ON

Q2 Se poate observa cum transmisia s-a oprit. Care este motivul acestei opriri?

SET

A B

1 5 Linia de transmisie TX este întreruptă, iar semnalul nu e prezent la


punctul de test corespunzător.

2 4 Semnalul de ceas necesar funcţionării 8250 nu este prezent pe pinul


de intrare respectiv
3 2 Oscilatorul la 1,8432 Mhz nu funcţionează

4 3 Semnalul de alegere a componentei (CS2#) nu ajunge la 8255

5 1 Semnalele de magistrală nu ajung corect la 8250.

Setaţi comutatorul S13 în poziţia OFF.


Setaţi comutatorul S11 în poziţia ON.

Q3 Transmisia datelor încă nu funcţionează. Care este cauza acestei noi erori?

SET

A B

1 4 Linia de transmisie TX este întreruptă, iar semnalul nu este prezent la


punctul de test corespunzător

2 5 Semnalul de ceas necesar funcţionării 8250 nu este prezent pe pinul


de intrare respectiv

3 1 Oscilatorul la 1,8432 Mhz nu funcţionează

4 2 Semnalul de alegere a componentei (CS2#) nu ajunge la 8255

5 3 Semnalele de magistrală nu ajung corect la 8250.

Setaţi comutatorul S11 în poziţia OFF.


Programul de recepţie al datelor
Vom dori să realizăm un program prin care modulul EV/Z3 să primească date prin
portul serial de la un periferic conectat la el.
Acest program trebuie să urmărească următoarea schema logică:

Analizând diagrama de mai sus putem deduce următoarele informaţii:


 Modulul Z3 activează semnalul DTR pentru a indica perifericului că doreşte
să realizeze o comunicaţie.
 Perifericul primeşte acest semnal prin intermediul liniei DSR şi activează la
rândul lui linia DTR.
 Atunci când modulul Z3 recepţionează semnalul pe linia DSR, consideră
comunicaţia ca fiind iniţiată
 Perifericul semnalează că este pregătit să primească date prin intermediul liniei
RTS
 Modulul Z3 aşteaptă activarea liniei CTS (ce vine de la linia RTS a
perifericului), iar apoi începe transmiterea datelor
 Modulul Z3 trece în modul de recepţie al datelor
 O dată ce a recepţionat datele, modulul Z3 dezactivează linia RTS pentru a
bloca transmiterea altor date
 Programul încărcat în modulul Z3 va începe prelucrarea datelor primite
(afişarea pe ecran)
 Programul încărcat în modulul Z3 revine la ciclul de comunicaţie serială
reactivând linia RTS pentru recepţia altor date.

Codul sursă al programului este următorul:


1 PAGE 70,166
2 ;----------------------- PRG_RX -----------------------
3 ; recepţia datelor de la interfaţa serială
4 ;parametrii lui RX: 1200, N, 8, 1
5 ; activează DTR la începutul conexiunii
6 ; activează RTS la fiecare octet recepţionat
7 = 0800 MEM_POS = 0800H
8 = 0080 DS_SEG = 0080H
9 = 01F4 DELAY = 500 ;aşteptare (ms)
10 = 0009 IDIS_BYTE = 09H ;afişează un octet
11 = 000B IDIS_STR = 0BH ;afişează un şir de caractere
12 = 000D IWAIT_MS = 0DH ;aşteptare
13 = 0014 ISERIAL = 14H ;întrerupere transmitere serială
14 = 000F IDA = 0FH
15
16 ;---------------------------------------- CODE
17 ;programul este încărcat la adresa 0000:MEM_POS
18 0000 CODE SEGMENT
19 ASSUME CS:CODE, DS:CODE
20 0000 ORG 00H
21 0000 B8 0080 START: MOV AX,DS_SEG
22 0003 B8 0080 MOV AX,DS_SEG
23 0006 8E D8 MOV DS,AX ;încarcă segmentul de date
24 0008 B4 00 MOV AH,00H
25 000A B0 63 MOV AL,01100011B
26 000C CD 14 INT ISERIAL ;programare serială
27 000E B4 04 MOV AH,04H
28 0010 B0 01 MOV AL,00000001B ;activează DTR
29 0012 CD 14 INT ISERIAL
30
31 0014 BE 0052 R MOV SI,OFFSET MW_DSR
32 0017 CD 0B INT IDIS_STR ;afişează mesajul MSG
33 0019 B4 03 W_DSR: MOV AH,03H
34 001B CD 14 INT ISERIAL
35 001D 80 E4 20 AND AH,00100000B ;verifică DSR
36 0020 74 F7 JZ W_DSR ;sare dacă nu e activ
37
38 0022 BB 0000 MOV BX,0000H ;numărător
39 0025 BE 0063 R MOV SI,OFFSET M_BYTE
40 0028 CD 0B INT IDIS_STR ;afişează şirul de caractere
41
42 002A B4 04 TLOOP: MOV AH,04H
43 002C B0 03 MOV AL,00000011B ;DTR=ON, RTS=ON
44 002E CD 14 INT ISERIAL
45 0030 B4 02 MOV AH,02H
46 0032 CD 14 INT ISERIAL ;citeşte datele
47 0034 50 PUSH AX
48 0035 B4 04 MOV AH,04H
49 0037 B0 03 MOV AL,00000011B ;DTR=OFF, RTS=ON
50
51 0039 58 POP AX
52 003A B1 0E MOV CL,14
53 003C CD 09 INT IDIS_BYTE ;afişează datele
54 003E 8A C7 MOV AL,BH
55 0040 B1 05 MOV CL,5
56 0042 CD 09 INT IDIS_BYTE ; afişează octetul cel mai semnificativ
57 0044 8A C3 MOV AL,BL
58 0046 B1 07 MOV CL,7
59 0048 CD 09 INT IDIS_BYTE;afişează octetul cel mai puţin semnificativ
60
61 004A 43 INC BX
62 004B B8 00C8 MOV AX,200
63 004E CD 0D INT IWAIT_MS
64 0050 EB D8 JMP TLOOP
65
66 0052 57 61 69 74 20 66 MW_DSR DB 'Wait for DSR ',00H
67 6F 72 20 44 53 52
68 20 20 20 20 00
69 0063 4E 75 6D 2E 20 78 M_BYTE DB 'Num. xxxx B. xx',00H
70 78 78 78 20 20 42
71 2E 20 78 78 00
72
73 0074 CODE ENDS
74 END START

Programul permite afişarea pe display a codului hexazecimal recepţionat (în partea


dreaptă) şi numărul octeţilor primiţi (în partea centrală).
Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC
folosiţi aplicaţia MODZ3 pentru transferul programului PRG_KB prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).

Daţi comanda: LD_KB


Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului.
Acest program necesită utilizarea unui dispozitiv extern ca şi unitate de comunicare la
distanţă. În acest caz se va folosi un PC.
Conectaţi modulul Z3 la PC prin intermediul unui cablu serial adecvat.
Rulaţi pe PC programul de comunicaţie (se poate utiliza terminalul de Windows pe
care îl puteţi găsi în accesorii).
Setaţi viteza de transmisie la 1200 baud, 8 biţi, fără paritate, 1 bit de stop.
Presetaţi controlul de debit al datelor al tipului de hardware (ce utilizează liniile DTR,
DSR, CTS, RTS).
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.
Apăsaţi tasta „A” de la tastatura PC-ului.

Q4 Ce cod hexazecimal, primit de modulul Z3, apare pe afişajul modulului (în


partea dreaptă)?

SET

A B

1 3 00

2 5 FF

3 4 32

4 2 68

5 1 41
Setaţi comutatorul S9 în poziţia ON.

Q5 Se poate observa că apăsând orice tastă la tastatura PC-ului, afişajul modului


Z3 nu este updatat. De unde provine această eroare?

SET

A B

1 4 Semnalul DTR nu mai este activ, iar transmisia este întreruptă

2 1 Semnalul de ceas necesar funcţionării 8250 nu este prezent pe pinul


corespunzător

3 5 Semnalul de recepţie RXD nu este prezent la intrarea în 8250

4 2 Semnalul de activare a componentei generat de 8250 (pinul CS2#) nu


ajunge la destinaţie

5 3 Semnalul magistralei de date nu ajunge corect la 8250

Setaţi comutatorul S9 în poziţia OFF.


LECŢIA 14: CONVERTORUL DIGITAL/ANALOGIC

OBIECTIVE
 Utilizarea principiilor conversiei digitale/analogice
 Utilizarea converterului DAC0800
 Aplicaţii ale converterului DAC0800 pe modulul Z3
 Realizarea unor aplicaţii şi exerciţii

MATERIALE
 Unitatea de bază pentru sistemele IPES (sursă de curent mod.PS1-PSU/, priză
mod.MU/EV, unitate de management individual mod.SIS1/SIS2/SIS3)
 Modul experimental mod.Z3/EV
 Osciloscop

Utilizarea conversiei digitale/analogice


În momentul de faţă microprocesoarele sunt utilizate în diverse aplicaţii, atât în
sisteme digitale, dar şi în sisteme analogice.
Astfel, a apărut problema transformării semnalelor analogice în semnale digitale şi
invers.
Să luăm ca exemplu schema de mai jos, unde este reprezentat modul de control al
rotaţiei unui motor prin intermediul unui microcontroler.

Putem observa următoarele componente:


 Un convertor analogic/digital pentru citirea vitezei de rotaţie a motorului
 Un convertor digital/analogic pentru furnizarea semnalului de comandă către
regulatorul de putere al motorului.

Există mai multe tipuri de convertoare cu performanţe diferite ce se axează pe:


 Timpul de conversie
 Rezoluţie
 Numărul de intrări şi ieşiri
 Etc.

În acest capitol va fi studiat convertorul DAC0800, utilizat în modulul EV/Z3.

Principiile conversiei digitale/analogice


Un convertor digital/analogic transformă informaţia digitală (starea logică a unuia sau
mai multor biţi de intrare) într-un semnal analogic, care deobicei este un curent.
Să luăm în consideraţie exemplul de mai jos:
 Ir este curentul de referinţă al intrării
 B0 – B3 sunt intrări digitale ale convertorului
 Iout este curentul de ieşire

Curentul de ieşire Iout este suma ponderilor curentului de intrare Ir.


Ponderile se obţin prin intermediul unor rezistenţe, iar curentul de ieşire se obţine
însumând curenţii de pe ramurile ce au comutatoarele CMOS activate (aceastea devin
active atunci când intrarea corespunzătoarea este de nivel logic „1”.
Ponderea reţelei poartă numele de reţea scară (Ladder Network), iar precizia
rezistenţei şi a curentului de referinţă Ir, determină precizia convertorului
analogic/digital.

Caracteristicile convertorului DAC0800


DAC0800 este un convertor digital-analogic monolitic, pe 8 biţi, cu o viteză de
conversie mare (100 ns) şi ieşire în curent.
Este prevăzut cu un curent complementar de ieşire, prin intermediul căruia se poate
face raportul diferenţial al tensiunilor de ieşire prin utilizarea unei simple rezistenţe de
încărcare.
Intrările rezistente la zgomote acceptă nivele TTL având un pin VLC cu un prag logic
setat la masă.
Modificând tensiunea la pinul VLC se pot interfaţa şi alte familii logice.
Performanţele şi caractersiticile componentei rămân neschimbate pe parcursul aplicării
unei game de tensiuni admise.
Dispersia de putere este de doar 33 mW la o tensiune de intrare de ±5V şi este
independentă de starea intrărilor logice.
Caracteristicile acestei componente sunt prezentate în următorul tabel:

Caracteristici Valori

Viteză de conversie 100 ns

Eroarea maximă de-a lungul întregului ±1 LSB


interval

Neliniaritate în funcţie de temperatură ±0.1%


Curent de derivare maximă ±10 ppm/°C

Tensiune de intrare mare -10V – 18V

Ieşiri complementare de curent

Interfaţare directă cu TTL, CMOS, PMOS, ...

Intrări rezistente la tensiuni mari ±4.5V – ±18V

Consumator redus de putere 33 mW la ±5V

Cost redus

Pinii de ieşire ai convertorui DAC0800


Pinii de ieşire ai convertorului DAC0800 sunt prezentaţi în următoarea figură:

Semnalele utilizate sunt:

VLC: (Controlul pragului). Semnal de configurare al familiei logice utilizate (VLC =0


pentru TTL).
V+ : Sursă de tensiune pozitivă
V- : Sursă de tensiune negativă
COM: Compensare
VREF+ : Tensiune pozitivă de referinţă
VREF- : Tensiune negativă de referinţă (conectată la 0V pentru funcţionare unipolară)
IOUT+ : Curent de ieşire ce intră în convertor
IOUT- : Curent de ieşire ce iese din convertor
B1 – B8: Intrări digitale.

Schema electrică a conexiunii cu modulul EV/Z3


Diagrama electrică a circuitului corespunzător conversiei digitale/analogice, în
interiorul modulului EV/Z3 este prezentat în figura de mai jos:
Din diagramă putem observa:
 Latch-ul IC18 (74374) furnizează cei 8 biţi de intrare ai convertorului D/A
 Latch-ul este activat cu adresa 0300H
 Covertorul DAC0800 este alimentatăla tensiuni de 12V, -12V.
 Rezistenţa R20 determină valoarea de referinţă a curentului Ir.
Ir =12/R20 = 12/ 4K7 = 2mA

 Amplificatorul operaţional IC20 transformă curentul convertorului într-un


semnal în tensiune:
Vout = (R22 + Rv3) *Ir

 Potenţiometrul RV3 permite reglarea valorii tensiunii de ieşire (maxim 8 V).


 Potenţiometrul RV4 permite reglarea offsetului semnalului de ieşire.

Convertorul D/A poate fi controlat într-un mod simplu utilizând întreruperea


software INT 0FH. Datele sunt încărcate în registrul AL, de unde sunt trimise direct
pe portul 0300H al convertorului.

Vom dori să realizăm un program pentru modulul EV/Z3 ce utilizează convertorul


D/A pentru a genera un semnal de forma „dinţi de fierăstrău” cu o temporizare si
folosind buzzerul de pe interfata paralela de I/O , fiecare incrementare realizandu-se
dupa citirea oricarei taste.

Codul sursă al programului este următorul:


PAGE 70,166
;--------------------- PRG_DA -----------------------
; generarea unui semanl de forma dinţi de fierăstrău
; ieşire a convertorului D/A
MEM_POS = 0800H
IDA_WRITE = 0FH ;întrerupere a conv D/A

;---------------------------------------- CODE
;program încărcat la adresa 0000:MEM_POS
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 0H
START:
MOV AL,0FFH
TLOOP:
INC AL
INT IDA_WRITE ;trimitere pe portul conv.
MOV AH,00H
MOV AL,00H
INT 12H;semnal de enable
MOV BX,10
MOV CX,100
INT 10H;beep
INT 08H;citire tasta in AL
JMP TLOOP
CODE ENDS
END START

Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC


folosiţi aplicaţia MODZ3 pentru transferul programului PRG_KB prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).

Daţi comanda: LD_KB


Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului.
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.
QUIZ
Setaţi toate comutatoarele în poziţia OFF.
Vom dori să realizăm un program pentru modulul EV/Z3 ce utilizează convertorul
D/A pentru a genera un semnal de forma „dinţi de fierăstrău”.
Codul sursă al programului este următorul:

1 PAGE 70,166
2 ;--------------------- PRG_DA -----------------------
3 ; generarea unui semanl de forma dinţi de fierăstrău
4 ; ieşire a convertorului D/A
5 = 0800 MEM_POS = 0800H
6 = 000F IDA_WRITE = 0FH ;întrerupere a conv D/A
7
8 ;---------------------------------------- CODE
9 ;program încărcat la adresa 0000:MEM_POS
10 0000 CODE SEGMENT
11 ASSUME CS:CODE, DS:CODE
12 0000 ORG 0H
13 0000 B0 FF START: MOV AL,0FFH
14 0002 FE C0 TLOOP: INC AL
15 0004 CD 0F INT IDA_WRITE ;trimitere pe portul conv.
16 0006 EB FA JMP TLOOP
17 0008 CODE ENDS
18 END START

Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC


folosiţi aplicaţia MODZ3 pentru transferul programului PRG_KB prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).

Daţi comanda: LD_KB


Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului.
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.

Q1 Care este variaţia semnalului „dinţi de fierăstrău” generat la ieşirea


convertorului D/A?

SET

A B

1 3 0 – 8V

2 4 0 – 5V

3 1 -8 – 8V

4 5 -5 – 5V
5 2 Compatibil TTL

Setaţi comutatorul S17 în poziţia ON.


Q2 Forma de undă a semnalului generat de convertorul D/A s-a schimbat. În ce
constă această modificare?

SET

A B

1 5 Amplitudinea s-a diminuat

2 4 Amplitudinea s-a amplificat

3 2 Frecvenţa s-a diminuat

4 3 Frecvenţa s-a amplificat

5 1 Tipul formei de undă s-a modificat

Q3 Care este cauza acestei schimbări?

SET

A B

1 5 Algoritmul de generare a formei de undă s-a modificat în program

2 1 Amplificarea amplificatorului operaţional IC20 care transformă


semnalul din curent în voltaj s-a modificat

3 4 Lipseşte semnalul de pe bitul D7 de intrare al convertorului D/A

4 3 Lipseşte semnalul de pe bitul D6 de intrare al convertorului D/A

5 2 Tensiunea de referinţă VREF+ este înjumătăţită

Setaţi comutatorul S17 în poziţia OFF.

Q4 Ce tip de semnal se obţine la ieşirea convertorului D/A DAC0800?

SET
A B

1 5 Curent

2 4 Tensiune

3 2 Frecvenţă

4 3 TTL

5 1 CMOS
Q5 Ce semnal de intrare este folosit pentru convertorul DAC 0800 pentru a adapta
convertorul la diferite familii logice?

SET

A B

1 2 VREF+

2 1 COM

3 4 B8

4 5 VLC

5 3 IOUT+

Q6 Care este valoarea curentului de referinţă al pinului de intrare VREF+ al


convertorului DAC 0800 din modulul EV/Z3?

SET

A B

1 4 1A

2 5 0.5 A

3 1 50 mA

4 2 2 mA

5 3 1 mA
LECŢIA 15: CONVERSIA ANALOG/DIGITALĂ

OBIECTIVE
 Utilizarea principiilor conversiei analogic/digitale
 Utilizarea converterului ADC0804
 Configuraţia pinilor convertorului
 Secţiunea analogică
 Secţiunea digitală şi temporizările
 Conexiunile din interiorul modului EV/Z3
 Realizarea unor aplicaţii şi exerciţii

MATERIALE
 Unitatea de bază pentru sistemele IPES (sursă de curent mod.PS1-PSU/, priză
mod.MU/EV, unitate de management individual mod.SIS1/SIS2/SIS3)
 Modul experimental mod.Z3/EV
 Osciloscop

Principiile conversiei analogice/digitale


Conversia analogică/digitală transformă un semnal analogic (un semnal în tensiune) în
informaţie digitală de tip binar compusă dintr-un număr de biţi de „0” şi „1”.

Există mai multe tehnici pentru obţinerea acestui tip de conversie. Una dintre cele mai
utilizate poartă numele de „conversie cu aproximare succesivă” şi este ilustrată în
figura de mai jos:

Această tehnică utilizează un registru de aproximare succesivă SAR (Successive


Approximation Register) pentru a obţine secvenţa de stări a biţilor B0 – B3.
Această secvenţă este transformată într-un semnal analogic de către convertorul DAC.
Acest semnal este apoi comparat cu un semnal de intrare, iar dacă cele două semnale
sunt egale, registrul SAR este oprit.
În acest caz, informaţia digitală furnizată prin pinii B0 – B3 este proporţională cu
valoarea analogică a semnalului de intrare şi se finalizează conversia.

Convertorul ADC0804
ADC0804 este un convertor analogic/digital pe 8 biţi ce se bazează pe tehnica
aproximărilor succesive.
Acest convertor a fost proiectat să poată fi legat direct la magistrala microprocesorului
prin intermediul porţilor tri-state.
Acest convertor se comportă ca un port de intrare, nefiind nevoie de utilizarea unor
unităţi logice de interfaţare.
Prezenţa intrărilor diferenţiale pentru tensiunile analogice furnizează o rată de rejecţie
ridicată a semnalelor.

Caracteristicile convertorului sunt prezentate în următorul tabel:

Caracteristici Valori

Rezoluţie 8 biţi

Timp de conversie 100 µs

Compatibilitate cu microprocesoare. Timp de 135 ns


acces:

Intrări analogice diferenţiale de tensiune

Intrări şi ieşiri logice compatibile cu TTL şi CMOS

Generator de semnal de ceas intern

Alimentare 5V

Tensiune analogică de intrare 0–5V

Soclu cu 20 de pini standard

Configuraţia pinilor convertorului ADC0804


Configuraţia pinilor este următoarea:
Semnalele utilizate sunt următoarele:
VCC: Sursă de tensiune pozitivă
GND : Masă analogică
CLK IN : Semnal de ceas de intrare
CLK R: Rezistenţă şi condensator utilizat la oscilatorul intern
VIN+ : Tensiune diferenţială pozitivă de intrare
VIN- : Tensiune diferenţială negativă de intrare
VREF /2: Tensiune de referinţă
DB0 – 7: Ieşire de date (8 biţi)
INTR: Semnal de întrerupere
CS: Semnal de selecţie a componentei
WR: Semnal de scriere
RD: Semnal de citire
D GND: Masă digitală

Secţiunea analogică a convertorului ADC0804

Ceas
Semnalul de ceas pentru funcţionarea convertorului ADC0804 poate fi preluat de la
microprocesor şi apoi trimis pe pinul CLK-IN al convertorului.
Altfel, putem utiliza ceasul intern al convetorului, adăugând un circuit RC extern.
Utilizând o rezistenţă externă de aproximativ 10 Kohmi, putem calcula frecvenţa după
următoarea formulă:
F = 1/(1.1*R*C)
Intervalul de variaţie al frecvenţei este de: 100 – 1460 kHz
Valoarea normală utilizată este de 640 KHz.
Intrările analogice
Convertorul are o intrare de tensiune analogică diferenţială.
Intrarea VIN- poate fi utilizată pentru a scădea automat o valoare fixă a tensiunii de
intrare citită.
În mod normal, atunci când tensiunea de intrare ia valori între 0 şi 5 V, conexiunile ce
trebuiesc realizate sunt următoarele:

Valoarea tensiunii de referinţă poate fi jumătate din valoarea tensiunii de alimentare


Vcc sau poate fi egală cu valoarea tensiunii aplicată pinului VREF.
În figura de mai sus se utilizează referinţa internă. Pentru a obţine această valoare nu
trebuie decât să conectaţi VREF la masă prin intermediul unui capacităţi de 0.1µF.

Secţiunea digitală şi temporizările convertorului ADC0804


Convertorul ADC0804 a fost proiectat să poată fi conectat direct la magistrala
microprocesorului.
Semnalele utilizate pentru interfaţare sunt:
 CS: Semnal de selecţie a componentei
 WR: Semnal de scriere (începe o nouă conversie)
 INTR: Semnal de întrerupere (semnalează momentele când se realizează
conversia şi când datele sunt disponibile la ieşire).
 RD: semnal de citire (se utilizează pentru a pune rezultatul conversiei pe
magistrală, pentru ca datele să fie preluate apoi de către microprocesor).
Temporizările pentru operaţiile de comandă ale conversiei, sfârşitul conversiei şi
valorile citite sunt ilustrate în figura de mai jos:
Se poate observa:
 O operaţie de scriere (WR#) activează o nouă conversie
 În timpul conversiei linia INTR este activă.
 Atunci când linia INTR devine inactivă, conversia este încheiată iar
convertorul este eliberat.
 O operaţie de citire (RD#) permite citirea datelor.

Schema electrică a conexiunii cu modulul EV/Z3


Schema electrică a circuitului corespunzător conversiei analogice/digitale din
interiorul modului EV/Z3 este următoarea:

Din diagramă se poate deduce:


 Semnalul la intrarea în modulul EV/Z3 este în intervalul 0 – 8 V.
 Deoarece convertorul ADC0804 funcţionează în intervalul 0 – 5V,
amplificatorul operaţional IC16 (µA741) este utilizat ca reductor de tensiune.
 Potenţiometrul RV2 permite reglarea tensiunii de ieşire a amplificatorului
(valoarea maximă este de 5V).
 Potenţiometrul RV1 permite reglarea offsetului semnalului de ieşire.
 ADC0804 este alimentat la o tensiune de +5V.
 Rezistenţa R10 şi capacitatea C5 sunt utilizate pentru realizarea oscilatorului
intern.
 Se utilizează referinţa internă conectând pinul VREF la masă prin intermediul
unui condensator.
 Liniile RD# şi WR# sunt conectate la liniile analogice ale microprocesorului
 Linia CS# provine de la decodarea adresei I/O
 Linia INTR este trimisă către intrarea INT0 a microprocesorului, pentru a se
putea implementa întreruperea pentru operaţiile de citire a convertorului.
 Linia INTR este de asemenea trimisă către IC21 (utilizată pentru citirea de la
tastatură). În acest mod este posibilă citirea stării acestei linii, permiţând
efectuarea operaţiilor la adresa 032EH şi verificarea bitului cel mai
semnificativ (D7). Întreruperea software INT 0EH, ce permite citirea de la
convertorul A/D, utilizează această metodă.
Pentru comandarea şi citirea convertorului A/D se utilizează întreruperea software
INT 0EH.
Aceasta funcţionează în umătorul mod:
 Trimite comanda de iniţiere a conversiei (WR#)
 Aşteaptă semnalul de încheiere a conexiunii (linia INTR)
 Citeşte rezultatul conversiei
 Returnează rezultatul conversiei în registrul AL.
Setaţi toate comutatoarele în poziţia OFF.

Dorim să realizăm un program pentru modulul EV/Z3 care citeşte de la convertorul


A/D şi vizualizează rezultatul conversiei în format hexazecimal cat timp valoarea citita
nu este zero , iar daca valoarea conversiei este zero se afiseaza un mesaj
corespunzator.

Codul sursă al programului este:

PAGE 70,166
;------------------------ PRG_AD ----------------------
;Citeşte de la convertorul A/D
;şi afişează rezultatul dorit
MEM_POS = 0800H
DS_SEG = 0080H
IAD_READ = 0EH ;întrerupere de citire A/D
IDIS_BYTE = 09H ;afişarea unui octet
IDIS_STR = 0BH ;afişarea unui şir de caractere
IWAIT_MS = 0DH ;întrerupere de aşteptare
;---------------------------------------- CODE
;programul este încărcat la adresa 0000:MEM_POS
CODE SEGMENT
ASSUME CS:CODE, DS:CODE
ORG 0H
START:
MOV AX,DS_SEG
MOV DS,AX ;încarcă segmentul de date
MOV SI,OFFSET MSG
INT IDIS_STR ;afişează mesajul MSG
TLOOP:
INT IAD_READ ;citeşte A/D
;resultatul este in AL pe 8 biti
CMP AL,0
JE valoarena
MOV CL,13
INT IDIS_BYTE ;afişează codul caracterului
MOV AX,200
INT IWAIT_MS
JMP TLOOP

valoarena:
;valoare neasteptata
MOV SI,OFFSET MSGNA
INT IDIS_STR ;afişează mesajul MSGNA
MOV AX,3000
INT IWAIT_MS;delay de 3 secunde
JMP START

MSG DB ' A/D value : xx ',00H


MSGNA DB ' Valoare N/A ',00H

CODE ENDS
END START
Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC
folosiţi aplicaţia MODZ3 pentru transferul programului PRG_AD prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).

Daţi comanda: LD_KB


Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului.
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.
QUIZ

Setaţi toate comutatoarele în poziţia OFF.


Dorim să realizăm un program pentru modulul EV/Z3 care citeşte de la convertorul
A/D şi vizualizează rezultatul conversiei în format hexazecimal.

Codul sursă al programului este:

1 PAGE 70,166
2 ;------------------------ PRG_AD ----------------------
3 ;Citeşte de la convertorul A/D
4 ;şi afişează rezultatul dorit
5 = 0800 MEM_POS = 0800H
6 = 0080 DS_SEG = 0080H
7 = 000E IAD_READ = 0EH ;întrerupere de citire A/D
8 = 0009 IDIS_BYTE = 09H ;afişarea unui octet
9 = 000B IDIS_STR = 0BH ;afişarea unui şir de caractere
10 = 000D IWAIT_MS = 0DH ;întrerupere de aşteptare
11 ;---------------------------------------- CODE
12 ;programul este încărcat la adresa 0000:MEM_POS
13 0000 CODE SEGMENT
14 ASSUME CS:CODE, DS:CODE
15 0000 ORG 0H
16 0000 B8 0080 START: MOV AX,DS_SEG
17 0003 8E D8 MOV DS,AX ;încarcă segmentul de date
18 0005 BE 0017 R MOV SI,OFFSET MSG
19 0008 CD 0B INT IDIS_STR ;afişează mesajul MSG
20 000A CD 0E TLOOP: INT IAD_READ ;citeşte A/D
21 000C B1 0D MOV CL,13
22 000E CD 09 INT IDIS_BYTE ;afişează codul caracterului
23 0010 B8 00C8 MOV AX,200
24 0013 CD 0D INT IWAIT_MS
25 0015 EB F3 JMP TLOOP
26
27 0017 20 41 2F 44 20 76 MSG DB ' A/D value : xx ',00H
28 61 6C 75 65 20 3A
29 20 78 78 20 00
30
31 0028 CODE ENDS
32 END START

Introduceţi programul în modulul EV/Z3 de la tastatură (în cazul utilizării unui PC


folosiţi aplicaţia MODZ3 pentru transferul programului PRG_AD prin interfaţa serială
sau paralelă, utilizând cablurile adecvate).

Daţi comanda: LD_KB


Specificaţi adresa de plecare: 0000:0800
Introduceţi codurile programului.
Daţi comanda GO 0080:0000 (sau RUN) pentru a executa programul.
Q1 Setaţi, prin intermediul unei surse externe, un semnal de 6V la intrarea în A/D.
Care este valoarea hexazecimală vizualizată pe afişaj (indicaţi valoarea cea mai
apropiată)?

SET

A B

1 4 20

2 3 7F

3 5 BF

4 2 CF

5 1 DF

Setaţi comutatorul S18 în poziţia ON.

Q2 Valoarea de pe display s-a modificat. Care este cauza acestei schimbări?

SET

A B

1 5 Convertorul CAN nu funcţionează cum trebuie

2 4 Semnalul CS# nu ajunge la convertor.

3 2 Magistrala de date nu e conectată.

4 3 Tensiunea de referinţă VREF s-a modificat.

5 1 Semnalul de intrare nu ajunge la convertorul ADC0804

Setaţi comutatorul S18 în poziţia OFF.

Q3 Care este tipul semnalului de la intrarea convertorului ADC0804?

SET
A B

1 2 Curent

2 1 Tensiune

3 5 Frecvenţă

4 3 TTL

5 4 CMOS
Q4 Ce semnal al convertorului DAC 0800 este utilizat pentru adaptarea
convertorului la diferite familii logice?

SET

A B

1 5 VREF+

2 1 COM

3 4 B8

4 3 VLC

5 2 IOUT+

Q5 Care este valoarea frecvenţei de ceas a oscilatorului intern al convertorului


ADC0804, în cazul în care se utilizează un ceas extern, cu R=15kOhm şi
C=150pF (indicaţi valorea cea mai apropiată)?

SET

A B

1 4 400 KHz

2 5 500 KHz

3 1 700 KHz

4 2 800 KHz

5 3 1 MHz
A. MONITORUL DE COMANDĂ AL MODULUI EV/Z3

INTRODUCERE
MONITOR este un program aflat în interiorul sistemului EPROM, care furnizează
managementul sistemului şi permite utilizatorului să lucreze cu el. Are umătoarele
funcţii de bază:
 Afişează şi modifică memoria şi regiştrii
 Execuţie continuă, pas cu pas, cu întreruperi de program
 Încărcarea programelor în PC de la tastatură
Interacţiunea cu utilizatorul se face prin intermediul tastaturii şi a displayului.

TASTATURA
Tastatura este de forma celei din figură:

Se împarte practic în două:


 4 taste în partea superioară
 16 taste cu 2 funcţii: o funcţie numerică şi una de comandă

Microprocesorul 80386 adresează o cantitate mare de memorie. Componentele (RAM


şi EPROM) prezente în sistem ocupă doar o parte din capacitatea maximă a
microprocesorului.
Atunci când se execută comenzi ale Monitorului ce încearcă adresarea unor adrese de
memorie neocupate ale memoriei RAM sau EPROM, sistemul se blochează, deoarece
microprocesorul aşteaptă semnalul READY de la memorie (care nu va mai veni).
În acest caz este necesar să se reseteze sistemul pentru a reveni la modul de comandă.

Secţiunea celor 4 taste din partea de sus


Aceste taste sunt descrise mai jos:

RESET
Această tastă este conectată la linia de reset a microprocesorului. Este întotdeauna
activă şi realizează resetarea microprocesorului şi iniţializarea programului Monitor în
memoria EPROM a sistemului.

CHG/RE
Această tastă are funcţie dublă. Funcţia CHG (Change) iniţializează secţiunea de
modificare a unei valori afişată pe display (conţinutul unui registru, adresă de
memorie, ...). Funcţia RET (Return) încheie secţiunea de modificare. Se poate observa
când sistemul este în secţiunea de modificare atunci când cursorul se poate vizualiza
pe display.

→ ←
Tastele reprezentate de săgeţi permit mutarea cursorului în timpul sesiunii de
modificare.

Secţiunea celor 16 taste inferioare


Cele 16 taste din această secţiune au dublă funcţie.
Funcţie numerică: În timpul sesiunii de modificare corespund celor 16 numere
hexazecimale 0 – F (sesiunea de modificare se poate iniţializa folosind tasta
CHG/RET).
Funcţie de comandă: Se folosesc pentru generare de comenzi ale Monitorului atunci
când sistemul nu se găseşte în sesiunea de modificare (sesiunea de modificare poate fi
finalizată prin utilizarea tastei CHG/RET).

COMENZILE MONITORULUI
În ceea ce urmează sunt prezentate comenzile Monitorului care fac referinţă la
descrierea tastelor, iar fiecare dintre taste corespunde unei comenzi.

MEM
Această comandă permite examinarea conţinutului memoriei. Se poate afişa câte un
octet o dată.
O dată ce a fost apăsată o tastă, se cere introducerea adresei de memorie a cărui
conţinut urmează să fie reprezentat pe ecran (Sistemul trece automat în sesiunea de
modificare).

A d d r . s s s s : i i i i

O dată ce a fost introdusă adresa dorită, este necesar să se apese tasta CHG/RET
pentru încheierea sesiunii de modificare. Pe ecran va apărea adresa specificată şi datele
corespunzătoare, în următoarea formă:

s s s s : i i i i a x h x x

În partea stângă este reprezentată adresa sub forma segment : adresă.


Caracterul ce apare după litera „a” reprezintă data reprezentată în codul ASCII.
Numărul ce apare după litera „h” reprezintă datele în formă hexazecimală.

Comenzile posibile în această fază sunt:


 Pentru a trece la celula următoare: apăsaţi INC(+)
 Pentru a trece la celula precedentă: apăsaţi DEC(-)
 Pentru a trece la prima celulă din memoria utilizator a RAM-ului: apăsaţi
FIRST
 Pentru a trece la ultima celulă din memoria utilizator a RAM-ului: apăsaţi
LAST
 Pentru a modifica datele afişate: apăsaţi CHG/RET
 Pentru a încheia modificarea: apăsaţi CHG/RET

REG
Această comandă permite vizualizarea/modificarea conţinutului regiştrilor
microprocesorului: EAX, ECX, EDX, ESI, EDI, EBP, ESP,EIP, EFLAGS
După apăsarea tastei este vizualizat pe ecran primul registru.

R e g . E A X x x x x x x x x

Comenzile posibile în acest moment sunt următoarele:


 Pentru a trece la următorul registru: apăsaţi INC(+)
 Pentru a trece la precedentul registru: apăsaţi DEC(+)
 Pentru a trece la primul registru: apăsaţi FIRST
 Pentru a trece la ultimul registru: apăsaţi LAST
 Pentru a modifica valoarea registrului: apăsaţi CHG/RET
 Pentru a finaliza etapa de modificare a registrului: apăsaţi CHG/RET
SEG
Această comandă permite vizualizarea/modificarea conţinutului regiştrilor de segment
ai microprocesorului: CS, SS, DS, ES, FS, GS
După apăsarea tastei este vizualizat pe ecran primul registru.

S e g R e g . C S : x x x x

Comenzile posibile în acest moment sunt următoarele:


 Pentru a trece la următorul registru: apăsaţi INC(+)
 Pentru a trece la precedentul registru: apăsaţi DEC(+)
 Pentru a trece la primul registru: apăsaţi FIRST
 Pentru a trece la ultimul registru: apăsaţi LAST
 Pentru a modifica valoarea registrului: apăsaţi CHG/RET
 Pentru a finaliza etapa de modificare a registrului: apăsaţi CHG/RET

LD_KB
Această comandă permite încărcarea unui program în memorie de la tastatură
introducând codurile instrucţiunilor.
O dată ce tasta a fost apăsată, este cerută introducerea adresei de început a programului
sub forma segment:adresă (sistemul trece direct în sesiunea de modificare).

A d d r . s s s s : i i i i

O dată cu introducerea adresei dorite trebuie apăsată tasta CHG/RET pentru a încheia
sesiunea de modificare. Pe display va apărea de această dată adresa specificată şi
datele corespunzătoare, în următoarea formă:

s s s s : i i i i a x h x x

Sesiunea de modificare este iniţializată, iar cursorul este poziţionat pe prima căsuţă de
date hexazecimale.
O dată ce datele au fost introduse se apasă tasta CHG/RET ce memorează datele,
incrementează adresa de memorie şi pregăteşte sistemul de o nouă inserare de date.
Operaţiile de inserare se finalizează apăsând tasta RESET.

LD_PAR
Această comandă permite încărcarea unui program direct din calculator, prin
intermediul unei interfeţe paralelă.
O dată ce tasta a fost apăsată, sistemul aşteaptă răspunsul de la interfaţa paralelă şi
memorează toţi octeţii primiţi, începând de la adresa de memorie 0000:0800H.
O dată cu încheierea transferului, sistemul vizualizează octeţii primiţi şi trece în starea
de comandă.
Puteţi găsi mai multe detalii legate referitor la mijlocele de comunicaţie cu calculatorul
personal în capitolul 6.

LD_SER
Această comandă permite încărcarea unui program direct din calculator, prin
intermediul unei interfeţe paralelă.
O dată ce tasta a fost apăsată, sistemul aşteaptă răspunsul de la interfaţa serială şi
memorează toţi octeţii primiţi, începând de la adresa de memorie 0000:0800H.
O dată cu încheierea transferului, sistemul vizualizează octeţii primiţi şi trece în starea
de comandă.
Puteţi găsi mai multe detalii legate referitor la mijlocele de comunicaţie cu calculatorul
personal în capitolul 6.

RUN
Această comandă se utilizează pentru rularea unui program începând cu adresa
0000:0800H.
Se utilizează pentru a rula rapid programele încărcate de pe PC, ce vor începe automat
cu această adresă.

GO
Această comandă permite executarea unui program de la o adresă de memorie
specificată. Această adresă de memorie trebuie să fie introdusă sub următoarea formă
CS:IP (sistemul trece direct în sesiunea de modificare):

G O f r o m s s s s : i i i i

O dată ce a fost introdusă adresa de plecare, trebuie apăsată tasta CHG/RET. Execuţia
programului începe de la această adresă.

SS
Această comandă permite realizarea unui pas dintr-un program activ al utilizatorului
începând de la adresa curentă conţinută în regiştrii CS şi IP. Apăsând succesiv această
tastă permite rularea programului pas cu pas.

După fiecare pas programul se opreşte afişând adresa de memorie la care a ajuns.

S t o p A t s s s s : i i i i

Se poate vizualiza ulterior conţinutul regiştrilor şi a memoriei.

BR
Această comandă permite vizualizarea şi modificarea valorilor punctelor de
întrerupere (breakpoint) inserate în program (se admite un maxim de 5 puncte de
întrerupere).
O dată ce tasta a fost apăsată, se afişează adresa primului punct de întrerupere sub
forma segment:adresă.

B r n . x s s s s : i i i i

Comenzile posibile în acest punct sunt:


 Pentru a trece la întreruperea următoare: apăsaţi INC(+)
 Pentru a trece la întreruperea precedentă: apăsaţi DEC(+)
 Pentru a trece la prima întrerupere: press FIRST
 Pentru a trece la ultima întrerupere: apăsaţi LAST
 Pentru a modifica valorile întreruperii: apăsaţi CHG/RET
 Pentru a anula o întrerupere: apăsaţi CB

CB
Această comandă permite anularea breakpointului afişat în mod curent pe ecran (un
breakpoint este considerat ca fiind anulat, aşadar inactiv, atunci când este poziţionat la
adresa FFFF:FFFF).

INC(+)
Incrementează adresa din memorie, din registru, din registrul de segmente sau a
breakpointului vizualizat în mod curent.
DEC(-)
Decrementează adresa din memorie, din registru, din registrul de segmente sau a
breakpointului vizualizat în mod curent.

FIRST
Poziţionează indicatorul de adresă la prima adresă din memorie, registru, registru de
segment sau întrerupere.

LAST
Poziţionează indicatorul de adresă la ultima adresă din memorie, registru, registru de
segment sau întrerupere.

GEN
Tastă de uz general, este neprogramată.
B. RESURSELE MONITORULUI

INTRODUCERE
Monitorul sistemului realizează managementul software al diferitelor periferice ale
modulului EV/Z3.

Acest soft permite manipularea într-un mod cât mai simplu al acestor periferice prin
intermediul întreruperilor software ale microprocesorului.

În acest capitol vor fi prezentate mai multe tipuri de întreruperi împreună cu funcţiile
şi parametrii necesari.
Toate întreruperile software din exemplele localizate în acest manual sunt
implementate pentru managementul perifericelor sistemului.

LISTA ÎNTRERUPERILOR SOFTWARE


Lista întreruperilor software ale modului pe 32 de biţi EV/Z3 este următoarea:

Numărul Numele Descriere


întreruperii rutinei

INT 00H IMONITOR Împărţire la 0. Revine la Monitor

INT 01H Rezervată Se execută un pas

INT 02H Neutilizată Întrerupere nemascabilă

INT 03H Rezervată Breakpoint

INT 04H Neutilizată Depăşire

INT 05H Neutilizată

INT 06H Neutilizată

INT 07H IMONITOR Sfârşitul programului utilizator şi revenire la


Monitor

INT 08H IKEYBOARD Citirea valorii unei taste

INT 09H IDIS_BYTE Afişarea unui octet hexazecimal

INT 0AH IDIS_CHAR Afişarea unui caracter ASCII

INT 0BH IDIS_OUTS Afişarea unui şir de caractere pe ecran

INT 0CH IDIS_CODE Trimite comenzi către display

INT 0DH IWAIT_MS Aşteaptă x milisecunde


INT 0EH IAD_READ Citeşte de la convertorul A/D

INT 0FH IDA_WRITE Comandă convertorul D/A

INT 10H IBUZZER Comandă buzzerul

INT 11H Neutilizată

INT 12H IPARAL Managementul interfeţei paralelă

INT 13H Neutilizată

INT 14H ISERIAL Managementul interfeţei seriale

DESCRIEREA ÎNTRERUPERILOR SOFTWARE


În următoarea secţiune vor fi descrise întreruperile împreună cu parametrii necesari.

INT 07H
Sfârşitul programului
Această întrerupere este utilizată pentru finalizarea execuţiei programului şi transferul
controlului către programul Monitor.
Trebuie apelată la sfârşitul fiecărui program pentru a ceda controlul programului
Monitor.

INTRĂRI Nu

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_JUMP.

INT 08H
Citirea unei taste de la tastatură.
Această întrerupere permite atenţionarea la apăsarea unei taste. Realizează scanarea
tastaturii şi aşteaptă până când o tastă este apăsată. Codul tastei (0 – 18) este încărcat
în registrul AL.

INTRĂRI Nu

IEŞIRI AL = codul tastei (0 – 18)


Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_KB.

INT 09H
Trimite un caracter hexazecimal către afişaj.
Această întrerupere permite scrierea unui octet în formă hexazecimală în orice poziţie
a afişajului.
Poziţia se poate identifica prin utilizarea registrului CL, iar octetul prin intermediul
registrului AL.

INTRĂRI CL = poziţia pointerului pe afişaj (0 – 14)


AL = octetul afişat

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_KB.

INT 0AH
Trimite un caracter ASCII pe afişaj.
Această întrerupere permite scrierea unui caracter ASCII în orice poziţie a afişajului.
Poziţia se poate identifica prin utilizarea registrului CL, iar octetul prin intermediul
registrului AL.

INTRĂRI CL = poziţia pointerului pe afişaj (0 – 14)


AL = octetul afişat

IEŞIRI Nu

Regiştrii Nu
modificaţi

INT 0BH
Trimite un şir de caractere pe afişaj.
Această întrerupere permite trimiterea unui şir de caractere pe afişaj. Şirul de caractere
constă într-un şir de octeţi, ce corespund unor caractere diferite. Sfârşitul şirului este
semnalat prin prezenţa codului 00H.
Şirul de caractere este localizat în regiştrii DS:SI.
Şirul de caractere este afişat începând cu prima căsuţă de pe afişaj.

INTRĂRI DS = indică segmentul ce conţine şirul


de caractere
SI = indică adresa de început a şirului de
caractere, în interiorul segmentului DS

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_KB.

INT 0CH
Trimite comenzi către afişaj.
Această întrerupere trimite comenzi de control către afişaj.

INTRĂRI AH = 1 Anulează afişarea


AH = 2 Poziţionează cursorul pe prima poziţie
AH = 3 Mută cursorul la dreapta
AH = 4 Mută cursorul la stânga
AH = 5 Activează cursorul
AH = 6 Dezactivează cursorul
AH = 7 Aduce cursorul în poziţia conţinută de
registrul AL.

IEŞIRI Nu

Regiştrii Nu
modificaţi

INT 0DH
Aşteaptă x milisecunde.
Această întrerupere realizează o pauză a programului. Lungimea acestei pauze (în
milisecunde) este specificată de conţinutul registrului AX.
INTRĂRI AX = Numărul de milisecunde

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_PAR.

INT 0EH
Citeşte date de la convertorul analogic/digital.
Această întrerupere realizează următoarele operaţii:
 Trimite semnalul de începere a conversiei către convertorul A/D
 Aşteaptă semnalul de sfârşit de conversie
 Citeşte rezultatul conversiei şi îl returnează în registrul AL.

INTRĂRI Nu

IEŞIRI AL = rezultatul conversiei

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_AD.

INT 0FH
Comandă convertorul digital/analogic.
Această întrerupere trimite date (un octet) către convertorul digital/analogic, care le
transformă apoi în valoarea analogică.

INTRĂRI AL = date

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_DA.


INT 10H
Această întrerupere comandă sunetele ce vor fi declanşate de buzzer.
Se poate specifica frecvenţa şi durata sunetelor emise.

INTRĂRI BX = durata
CX = frecvenţa

IEŞIRI Nu

Regiştrii Nu
modificaţi

Puteţi urmări exemplul PRG_PAR.

INT 12H
Managementul interfeţei paralele.
Această întrerupere se ocupă de manipularea interfeţei paralele. Controlerul 8255 se va
utiliza doar în Modul 0 (Modul standard I/O).
Funcţiile acestei întreruperi pot fi identificate în funcţie de conţinutul registrului AH.

INTRĂRI AH = 0 Porturi de programare


AH = 1 Trimite date pe portul A
AH = 2 Trimite date pe portul B
AH = 3 Trimite date pe portul C
AH = 4 Citeşte date de pe portul A
AH = 5 Citeşte date de pe portul B
AH = 6 Citeşte date de pe portul C

IEŞIRI AL = datele citite

Regiştrii Nu
modificaţi

AH = 0: Porturile programabile
Conţinutul registrului AL determină direcţia de transmitere a datelor pe porturi:

Registrul AL Programare

Bitul 0 = 0 : portul A ca ieşire


= 1 : portul A ca intrare

Bitul 1 = 0 : portul B ca ieşire


= 1 : portul B ca intrare
Bitul 2 = 0 : portul C (C0 – C3) ca ieşire
= 1 : portul C (C0 – C3) ca intrare

AH = 1, 2, 3 : Trimite date pe porturile A, B, C


Conţinutul registrului AL determină datele ce trebuiesc trimise pe porturi.

AH = 4, 5, 6 : Citeşte date de la porturile A, B, C


Conţinutul registrului AL la ieşire corespunde datelor citite de pe port.

Puteţi vedea exemplul PRG_PAR.

INT 14H
Managementul interfeţei seriale.
Această întrerupere se ocupă de funcţionarea interfeţei seriale asincrone RS-232. Se
utilizează controlerul 8250.
Funcţiile specifice acestei interfeţe sunt determinate în funcţie de conţinutul registrului
AH.

INTRARE AH = 0 Iniţializare
AH = 1 Trimite un caracter
AH = 2 Primeşte un caracter
AH = 3 Citeşte starea
AH = 4 Controlează modemul

AH = 0 : Iniţializează portului de comunicaţie


Conţinutul registrului AL determină parametrii de iniţializare:

Registrul AL Programare

Biţii 7, 6, 5 Rată de transfer


=000 : 1200
=001 : 2400
=010 : 4800
=011 : 9600
(utilizaţi rata de transfer 1200 pentru
controlerul UMB 8250)

Biţii 4, 3 Paritate
=00 : nu
=01 : impar
=10 : no
=11 : par

Bitul 2 Bit de stop


=0 : 1
=1 : 2

Biţii 1, 0 Lungimea cuvântului


=10 : 7 biţi
=11 : 8 biţi

AH = 1 : Transmisia unui caracter


Conţinutul registrului AL conţine caracterul ce trebuie trimis.
Înainte de trimiterea unui caracter, rutina aşteaptă trimiterea eventualelor caractere
rămase de trimis.

AH = 2 : Recepţia unui caracter


Conţinutul registrului AL conţine caracterul primit.
Rutina aşteaptă disponibilitatea unui caracter înainte de reveni la programul apelat.

AH = 3 : Citirea stării
Conţinutul registrului AH conţine starea liniei curente şi a modemului.

Registrul Starea modemului


AH

Bitul 7 Detectarea semnalului recepţionat


Bitul 6 Indicatorul de inel
Bitul 5 Pregăteşte setul de date
Bitul 4 Şterge pentru trimitere
Bitul 3 Detectarea semnalului delta de recepţie
Bitul 2 Frontul pozitiv al detectorului de inel
Bitul 1 Pregăteşte setul de date delta
Bitul 0 Şterge delta pentru trimitere

Registrul AL Starea liniei

Bitul 7 Time-out
Bitul 6 Golirea registrului de shiftare a transmisiei
Bitul 5 Golirea registrului de menţinere a transmisiei
Bitul 4 Detectarea întreruperii
Bitul 3 Eroare de cadru
Bitul 2 Eroare de paritate
Bitul 1 Eroare de depăşire
Bitul 0 Datele sunt pregătite

AH = 4 : Controlul modemului
Conţinutul registrului AH conţine starea curentă a modemului, ce urmează a fi
modificată.
Registrul AL Starea modemului

Bitul 7 0
Bitul 6 0
Bitul 5 0
Bitul 4 Salt
Bitul 3 Ieşire 2
Bitul 2 Ieşire 1
Bitul 1 Necesitate de trimitere (RTS)
Bitul 0 Terminal de date pregătit
(DTR)

Puteţi vedea programele PRG_TX şi PRG_RX.


C. COMUNICAREA CU COMPUTERUL PERSONAL

Aplicaţia MODZ3 pentru Windows


Modulul Z3 are ca suport aplicaţia pentru Windows MODZ3, utilizată în proiectarea
aplicaţiilor pe un calculator personal.
MODZ3 poate fi utilizată pe orice calculator ce are instalat unul din sistemele de
operare Windows 3.x, Windows 95 sau Windows 98.
Această aplicaţie încape pe un simplu DISK şi se poate instala în calculator utilizând
comanda A:>SETUP

Procedura de instalare este simplă. Această comandă instalează în mod automat toate
aplicaţiile necesare (EV: 32 bit Microprocessor).
Împreună cu aplicaţia de bază sunt instalate şi exemple de aplicaţii. Pentru detalii
consultaţi fişierul README.TXT.

Funcţiile de bază ale aplicaţiei sunt prezentate în cele ce urmează:

Meniul FILE: Open, New, Save, ...Files


Aceste comenzi permit scrierea sau deschiderea programelor de tip ASCII, cu extensia
.ASM.
O dată ce programul a fost deschis, fereastra de editare devine activă şi se pot insera
sau modifica linii de program.

Meniul EDIT: Undo, Cut, Copy, Paste, Delete, Find, Find Next,
Replace
Aceste comenzi permit scrierea programelor, având disponibile toate funcţiile
programelor standard de editare din Windows, precum Notepad, WordPad, etc.

Meniul COMM
Această secţiune permite transferul programului în cod maşină (programul
corespunzator codului sursă activ) către modulul EV/Z3.
Dacă de exemplu se deschide programul PROVA.ASM, se vor transfera către modulul
EV/Z3 programele PROVA.BIN sau PROVA.EXE.

Pentru generarea fişierului PROVA.BIN este necesar să se utilizeze asamblorul de la


Microsoft MASM, cu următoarele comenzi:

MASM PROVA;
LINK PROVA;
EXE2BIN PROVA.EXE PROVA.BIN
Aceste comenzi pot fi realizate în mod automat utilizând opţiunea din meniul de
utilităţi.

Meniul COMM: Transmisia serială


Această comandă permite transferul unui program către modulul EV/Z3 prin
intermediul intefeţei seriale RS-232 ce leagă calculatorul de modul.
Conectorul J2 al calculatorului şi al modulului trebuie să fie conectate împreună
utilizând un cablu adecvat.
Transmisia se realizează cu o viteză de 1200 biţi/s, fără paritate, având un bit de stop
şi 8 biţi de date (1 caracter).
Înainte de transmisie, apare o fereastră de dialog unde se pot seta parametrii necesari.
Această fereastră permite setarea:
 Interfeţei utilizate: COM1, COM2 şi ceilalţi parametrii de comunicare.
 Directorul unde a fost salvat programul ce urmează a fi trimis
 Extensia fişierului ce urmează a fi trimis. Poate fi .BIN, în cazul în care
programul folosit pentru conversie a fost EXE2BIN, sau poate fi .EXE dacă se
utilizează direct fişierul generat de Linker.
 Numărul de octeţi ce trebuie sărit. Acest lucru este important în cazul utilizării
fişierelor .EXE, care conţin în mod normal în primii 200H octeţi informaţii ce
servesc doar în modul de operare MS-DOS.

Meniul COMM: Transmisia paralelă


Această comandă permite transferul unui program către modulul EV/Z3 utilizând
interfaţa paralelă a calculatorului şi a modulului.
Calculatorul şi modulul EV/Z3 trebuie să dispună fiecare de un conector J2, care să fie
conectate între ele utilizând un cablu adecvat de date.

Înainte de transmisie, apare o fereastră de dialog unde se pot seta parametrii necesari.
Această fereastră permite setarea:
 Interfeţei utilizate: LPT1, LPT2, ...
 Directorul unde a fost salvat programul ce urmează a fi trimis
 Extensia fişierului ce urmează a fi trimis. Poate fi .BIN, în cazul în care
programul folosit pentru conversie a fost EXE2BIN, sau poate fi .EXE dacă se
utilizează direct fişierul generat de Linker.
 Numărul de octeţi ce trebuie sărit. Acest lucru este important în cazul utilizării
fişierelor .EXE, care conţin în mod normal în primii 200H octeţi informaţii ce
servesc doar în modul de operare MS-DOS.
 Întârzierea TX, care controlează transmiterea datelor: nu permite calculatorului
să transmită datele mai rapid decât este capabil modulul EV/Z3 să le
primească. Se foloseşte datorită faptului că nu există linii de sincronizare în
cadrul transmisiei paralele. În cazul în care apar probleme de transmisie,
încercaţi să creşteţi acest timp.
Meniul UTILITY
Acest meniu conţine comenzile pentru execuţia directă a operaţiilor de asamblare din
aplicaţia MODZ3, precum Linkerul şi conversia binară a programului.

Meniul UTILITY : Setaţi parametrii


Această comandă setează parametrii pentru executarea operaţiilor de asamblare,
Linkerul şi conversia binară.
Aceşti parametri sunt următorii:
 Comanda de asamblare. Apelează un fişier de tip batch (ex. MASM.BAT)
unde este scrisă comanda pentru pornirea asamblorului. Un exemplu de un
astfel de fişier de tip batch conţine următoarele instrucţiuni:
masm %1,,%1,;
pause
 Comandă de Linker. Apelează un fişier de tip batch (EXE2BIN.BAT), unde
este scris programul pentru conversia codului. Un exemplu de un astfel de
fişier de tip batch conţine următoarele instrucţiuni:
exe2bin %1.exe %1.bin
pause

Meniul UTILITY : Asamblorul


Porneşte automat comanda de asamblare având ca parametru numele programului
activ.

Meniul UTILITY : Linker


Porneşte automat comanda de legătură având ca parametru numele programului activ.

Meniul UTILITY : Conversie în modul binar


Începe în mod automat conversia binară având ca parametru numele programului
activ. Sistemul de operare MS-DOS utilizează un program (EXE2BIN.EXE) ce are
această finalitate.

În unele calculatoare programul EXE2BIN nu este disponibil în versiunea de DOS


instalată.

În acest caz, conversia binară este abandonată, iar fişierul .EXE este utilizat în mod
direct (nu uitaţi ca în acest caz să săriţi peste primii 512 octeţi ai fişierului).

Meniul UTILITY : Lista de programe


Această comandă deschide o fereastră unde se poate vizualiza lista programului
asamblat (în cazul în care programul este generat cu asamblorul NomeProg.LST).

Meniul UTILITY : Programul în codul binar


Această comandă deschide o fereastră unde se poate vizualiza codul binar al
programului activ (în cazul în care fişierul NomeProg.BIN există).
Aceste informaţii sunt importante deoarece ele urmează să fie introduse în memoria
modulului EV/Z3, atunci când programul este încărcat direct de la tastatură.
Codurile pot fi vizualizate începând cu adresa 0000H.

Atunci când le inseraţi în modulul Z3 este necesar să se înceapă cu adresa de unde va


fi încărcat programul (în mod normal 0000:0800H).
D. ELEMENTE DE ELECTRONICA

Tranzistorul

Conceptele crearii circuitelor digitale pot fi descrise privind implementarea lor cu


ajutorul tranzistorilor. Figura de mai sus prezinta un tranzistor cu cele trei terminale:
baza , colector si emitor.

Un tranzistor poate opera liniar sau in comutatie. In functia liniara , tranzistorul


amplifica semnalul de intrare aplicat in bază. Acesta utilizeaza modul de lucru al
tranzistorului în circuitele de amplificare.

In circuitele digitale se utilizează modul de operare in comutatie al tranzistotului. In


acest mod, tranzistorul actioneaza ca un comutator intre colector si emitor. Tensiunea
aplicata bazei tranzistorului determină dacă comutatorul este deschis(circuit deschis
între colector si emitor) sau închis(scurtcircuit între colector şi emitor).

O tensiune de peste 2 V va determina tranzistorul sa se comporte ca un comutator


inchis, in timp ce o tensiune sub 0,8 V va determina tranzistorul sa se comporte ca un
comutator deschis.

Tinand cont de modul de functionare al tranzistotului, este usor sa implementam o


poarta NOT aşa cum este prezentata in figura de mai sus. Colectorul tranzistorului este
legat la VCC prin intermediul unui rezistor. In mod uzual VCC are valoarea de 5V.

Presupunand ca 0V reprezinta 0 logic şi +5 V reprezinta 1 logic, putem observa că


implementarea cu un singul tranzistor din figura corespunde unei porti NOT. Atunci
cand VIN este joasa, apare un circuit deschis intre colector si emitator. De aici rezulta
ca nu trece curent prin tranzistor . Astfel VOUT va avea valoarea de 5V .
Pe de altă parte , atunci cand VIN are o valoare mare, apare un scurtcircuit între
colector si emitor, ceea ce determina un nivel scazut de tensiune pentru Vout.

Motoare de curent continuu

Acţionarea cu motoare de curent continuu are avantajul important că momentul creat


este practic independent de poziţia şi viteza motorului, depinzând numai de câmpul
înfăşurărilor şi curentul din armături. Dacă înfăşurările de câmp sunt înlocuite cu un
magnet permanent atunci momentul dezvoltat este proporţional cu valoarea curentului
din armături şi deci cu tensiunea aplicată.
Anumite proceduri tehnologice au permis micşorarea greutăţii motoarelor. Ele se
referă, de exemplu, la eliminarea înfăşurărilor de excitaţie prin utilizarea motoarelor cu
magnet sau micşorarea greutăţii rotorului prin motoarele disc. Deşi teoretic, orice
motor electric este susceptibil de utilizare, pentru acţionări se utilizează numai
motoare de curent continuu şi pas cu pas, primul datorită sistemelor performante de
control, iar al doilea datorită facilităţilor pe care le oferă în controlul în buclă deschisă
la operaţiile de poziţionare .
Dezavantajul principal al acestor acţionări este greutatea componentelor. Raportul
putere - greutate sau moment - greutate este mai mic decât la acţionările hidraulice.
Această greutate nu poate fi redusă în mod semnificativ datorită circuitului magnetic
care, pentru asigurarea unor performanţe ridicate necesită o geometrie
corespunzătoare.
Utilizarea motorului de c.c în acţionari impune :
a) un sistem de control utilizând tahogeneratoare şi transformatoare de poziţie;
b) un sistem mecanic care să realizeze conversia miscării de rotaţie in mişcare de
translaţie;
c) un sistem mecanic pentru blocarea motorului .
Motoarele de curent continuu sunt formate din două părţi : un sistem de excitatie şi o
înfăşurare dispusă într-o armătură rotorică. Un sistem de comutaţie, asigură în
permanenţă un sens unic al curentului în raport cu câmpul magnetic, deci asigura o
forţă în direcţie constantă.
Schema echivalentă simplificată a motorului de curent c.c cu excitaţie separată este
prezentată în figura D.2.
Fluxul magnetic este proporţional cu valoarea curentului de exciţatie ,
Φ=k e⋅I e (D.1)
iar ecuaţiile ce guvernează regimul staţionar (neglijând anumite efecte secundare)
sunt
U e =R e⋅I (D.2)
U=R⋅I +E c (D.3)
Ec =k⋅ω⋅Φ (D.4)
iar cuplul electromagnetic creat M :
M   E  I (D.5)
Dacă motorul lucrează sub curent de excitaţie constant, atunci fluxul este constant
deci
Ec =k '⋅ω (D.6)
M  k1  I (D.7)
U R
  M
k1 k12 (D.8)
Caracteristicile statice de funcţionare se obţin din această ultimă relaţie, (Figura D.3).
Dacă operează în curent de excitaţie variabil şi tensiune de alimentare constantă,
atunci ecuaţiile de funcţionare devin :
M =k⋅Φ⋅I (D.9)
U=k⋅Φ+ R⋅I (D.10)
U R⋅M
ω= −
k⋅Φ (k⋅Φ )2 (D.11)
Ie I R L

+
Re
u M u
Le
e
-

Figura D.2
Ultima relaţie indică o dependenţă neliniară pronunţată a vitezei în raport cu fluxul,
deci curentul de excitaţie. Această neliniaritate complică legea de control şi face ca
reglajul turaţiei prin controlul curentului de excitaţie să fie rar utilizat în sistemele de
acţionare, în general, şi a roboţilor, în particular.
Regimul tranzitoriu al motorului ce operează sub flux constant se obţine imediat din
figura D.2.
di(t )
u(t )=R⋅i(t )+L +k⋅ω(t )
dt (D.12)
iar cuplul motor va fi:
dω( t )
M =J + k f⋅ω + M f + M s
dt (D.13)

unde J este momentul de inerţie al elementelor de rotaţie,


kf defineşte
coeficientul de frecare vâscoasă,
Mf este cuplul corespunzător frecării uscate iar
M s este cuplul de sarcină.
Din ( D.9 ) si (D.13 ) se obţine:
dω ( t )
ki ( t ) =J + k f ω+ M f + M s
dt (D.14)

 

M
0
M
=

U2>U
M
0

1
M

U1

M U

Figura D.3
Aplicând transformarea Laplace relaţiilor (D.12) şi (D.13), considerând condiţii
iniţiale nule, rezultă :
U ( s)=( R+L⋅s )⋅I (s )+k⋅ω( s ) (D.15)
k⋅I ( s )=( J s +k f )⋅ω (s)+M f ( s )+M s ( s ) (D.16)
Ecuaţiile acestea definesc schema bloc echivalentă a motorului (figura D.4).
Din (D.15) si (D.16) rezultă ,
k⋅U (s ) ( M f (s )+ M s (s ) )⋅( R+ Ls )
ω( s )= 2
− 2
k +( R+ L⋅s )( k f + J⋅s ) k +( R+ L⋅s )( k f + J⋅s ) (D.17)

Considerând cuplurile de frecare


Mf foarte mici şi neglijând cuplul de sarcină
M s rezultă funcţia de transfer între viteză şi tensiune :
ω (s ) k
Y ( s )= =
U ( s ) LJs + ( RJ + Lk ) s+ ( Rk + k 2 )
2
f f (D.18)
sau
A
Y ( s )=
1+2ξτ s+τ 2 s 2 (D.19)
unde
k L⋅J R⋅J + L⋅k f
A= τ 2= 2 ζτ=
R⋅k f +k 2 ; R⋅k f + k 2 ; R⋅k f +k 2 (D.20)

Dacă
k f se consideră suficient de mic, atunci funcţia de transfer (D.19) poate fi
rescrisă sub forma:
A
Y (s)=
(1+τ e s)⋅(1+τ m s) (D.21)

Unde
τ e defineşte constanta de timp electrică ,
L
τe=
R

M f  MS

U  s 1 J  s 1  s k 
k
R  Ls Js  k f

Figura D.4

iar,
τ m constanta de timp electro-mecanică
R⋅J
τm=
k2 (D.22)
Ecuaţiile de mai sus sunt, în principiu, specifice motoarelor disc, dar pot fi aplicate la
toate motoarele utilizate în sistemele de acţionare ale roboţilor, diferenţierile fiind de
ordin tehnologic. Aceste ecuaţii indică reglajul preferenţial al turaţiei prin reglarea
tensiunii de alimentare u . Controlulde tensiune al turaţiei este utilizat practic în
peste 85% din sistemele de acţionare al roboţilor (cu acţionare prin motor de c.c. ) şi
numai o mică parte utilizează controlul prin curent, această ultimă procedură fiind
avantajoasă datorită funcţiei de transfer mai simple între cuplu şi curent.

Controlul în tensiune al turaţiei în acţionarea roboţilor se rezolvă prin două


metode:redresoare comandate cu tiristoare sau variatoare de tensiune continuă.
Redresoarele comandate cu tiristoare reprezintă o soluţie extrem de larg utilizată şi o
literatură extrem de bogată abordează această problematică .Din mulţimea structurilor
şi schemelor bazate pe această metoda, se vor prezenta câteva tipuri utilizate frecvent
în controlul roboţilor.
Redresoare monofazate în punte. Aceste sisteme sunt utilizate în special la puteri şi
tensiuni mici. Schema generală a unui redresor de acest tip este prezentată în figura
D.5.
+
Th1 Th2
Ud t
M
us
t
L id
Th3 Th4

Id t
a) b)

Figura D.5
Controlul redresării este obţinut printr-o punte, în circuitul exterior al
redresorului fiind montat motorul de c.c. Se remarcă conducţia, pe fiecare alternanţă a
tensiunii din secundar, a două tiristoare opuse. De exemplu într-o semialternanţă
conduc tiristoarele Th 2 şi Th 3 (linie neântreruptă), iar în cealaltă semialternanţă
grupul Th 1, Th 4 (linie punctată). Controlul valorii curentului redresat se obţine prin
controlul unghiului de aprindere al tiristoarelor. Pentru atenuarea componentelor
alternative ce apar în această redresare, în circuitul motorului se introduce o bobină de
netezire L.
Redresoare trifazate în puncte. Circuitele de acest tip reprezintă stuctura cea mai
eficientă pentru alimentarea motoarelor de c.c. sub raportul puterii şi randamentului.
Configuraţia de bază a unui astfel de circuit este prezentată în figura D.6, iar formele
de undă ale semnalelor se pot urmări în figura D.7.
Variatoare de tensiune continuă. Aceste dispozitive trasformă o tensiune continuă
aplicată la intrare, în impulsuri dreptunghiulare de tensiune, la ieşire, astfel încât
valoarea medie a tensiunii de ieşire se poate modifica în funcţie de factorul de
umplere al impulsurilor. Schema de principiu a unei astfel de valori este prezentată în
figura D.8.

L L
i

L L

Figura D.6
Elementul principal al dispozitivului este un comutator static CS realizat, de obicei,
dintr-un tiristor comandat. Închiderea comutatorului înseamnă aplicarea semnalului
de tensiune de amplitudine U pe bornele motorului, regim menţionat pe o durata de
timp Ti. Prezenţa inductiei L determină o creştere a curentului, presupusă idealizat ca
o creştere liniara (figura D.8b),
di E
=
dt L (D.24)
Deschiderea întrerupatorului înseamnă decuplarea alimentării E şi închiderea
curentului de autoinducţie prin dioda D. Valoarea medie a tensiunii la bornele
motorului va fi:
Ti
U cc =E
T (D.25)
Această relaţie indică doua modalităţi de control a componentei continue: a) prin
ajustarea duratei impulsului T i în cadrul unei perioade T de comutare constantă ; b)
prin menţinerea duratei T i constanta şi varierea perioadei T. Ambele metode
determină funcţionarea motorului într-un singur regim, regimul de motor. O soluţie
înbunataţită este oferită de funcţionarea motorului în două regimuri în cadrul unei
perioade de lucru, regim de motor popriu-zis şi regimul de frână.

t
 
2
Figura D.7

În figura D.9 este reprezentată schema de principiu a unui astfel de variator.


În primul regim este deschis comutatorul CS1, dioda D1 având rol de descărcare.
u
CS L i E
UCC
+ t
+
i
E D M
t
Ti
T
a.) b.)

Figura D.8
În al doilea regim se blochează CS1 şi se deschide CS2 motorul trecând în regim de frână
prin scurtcircuitarea indusului, energia cinetică transformându-se în energie mecanică.
Când se deschide CS2 tensiunea electromotoare a maşinii împreună cu cea de
autoinducţie determină deschiderea diodei D2 şi trecerea curentului spre sursa E, deci
energia magnetică acumulată se transformă în energie electrică. Cele două zone
funcţionale corespund cadranelor I şi II a curenţilor şi tensiunilor de alimentare. O
structură funcţională mai complexă corespunde operării în patru cadrane(figura D.10).
Sistemul cuprinde patru comutatoare statice CS1-CS4 a căror comutare după o anumită
ordine determină funcţionarea în regim de motor şi frână pentru ambele polarităţi de
alimentare a le motorului.

Motorul pas cu pas

Motoarele pas cu pas sunt sisteme sincrone care realizează o corelaţie directă între
mărimea comandată şi poziţia obţinută. Aceste motoare asigură conversia directă a
semnalului de intrare, dat sub formă numerică, într-o mişcare de poziţionare
unghiulară prin cumulări incrementale. Această proprietate determină o utilizare largă
a motoarelor pas cu pas în toate sistemele de poziţionare în bucla deschisă. Conversia
intrinsecă a comenzii în poziţie asigură scheme de control simle, eficiente atât sub
aspect tehnic, cât şi economic.
CS1
D2
+ L i
E U
+
D1 CS2
M

Frînă Motor I

a.) b.)

Figura D.9

Pe lângă aceste avantaje, trebuiesc subliniate şi câteva dezavantaje printre care se


menţionează: acceleraţii şi deceleraţii discontinue, variaţia cuplului cu poziţia
rotorului, puteri mici etc.
Principiul de funcţionare al unui motor pas cu pas este prezentat în figura D.11.
Statorul cuprinde patru poli iar rotorul este realizat dintr-un magnet bipolar. Dacă se
alimentează înfăşurările 1-3, atunci rotorul se va deplasa într-o poziţie în care fluxul
magnetic prin aceste înfăşurări este maxim, deci el se va alinia pa axa înfăşurărilor 1
– 3. Dacă se alimentează înfăşurările 2 – 4 atunci rotorul se va roti cu ±90° ,
sensul de rotaţie depinzînd de polaritatea aplicată, până se va alinia cu noua
înfăşurare. O combinaţie de semnale aplicate va determina poziţii intermediare
corespunzătoare. In absenţa oricârui semnal de alimentare a înfăşurărilor, rotorul va
ocupa o poziţie bine determinată aliniindu-se cu unii din polii statorului , fără a conta
polaritatea .
În acest tip de motor, cuplul dezvoltat va depinde evident de poziţia rotorului şi în
orice caz valorile de cuplu obţinute sunt relativ mici.
O soluţie tehnologică superioară este oferită de motoarele pas cu pas cu reluctanţă
variabilă. Constructiv, aceste motoare sunt cu rotor pasiv, având şi crestături uniform
repartizate pe suprafaţa rotorului. Prin alimentarea unei faze statorice, rotorul se va
roti astfel încât circuitul magnetic să prezinte reluctanţa magnetică minimă producând
alinierea dinţilor statorici şi rotorici. Comutând alimentarea pe faza urmatoare se
obţine o deplasare a rotorului pentru o nouă realiniere a dinţilor acestora, determinând
apariţia unui cuplu.
d1 D3
CS1 CS3

E
u2 u2 L L L
+
d2 D
CS2 CS4

+
M

Figura D.10

După soluţiile constructive utilizate aceste motoare se împart în : motoare cu structură


monostatorică (o singura unitate stator-rotor) şi motoare cu structura polistatorică.
Prima configuraţie, monostatorică , reprezintă o soluţie mai avantajoasă, datorită
simplităţii construcţiei. Aceste motoare pot fi realizate în două variante, cu număr de
dinţi egal pe stator şi rotor şi cu număr de dinţi în rotor mai mare decat în stator
(fig.D.12).
În figura D.12.a este prezentat un motor pas cu pas cu 8 dinţi pe stator şi 6 dinţi pe
rotor, funcţionând în 4 faze cu pas de 15° . Înfăşurarile unei faze sunt dispuse pe 2
poli statorici diametral puşi. La alimentarea unei faze, dinţii rotorici se aşează în faţa
dinţilor statorici pe care este conectată faza comandată . La alimentarea fazei
următoare, rotorul se va roti cu 15° .
Pentru obţinerea unui pas de rotaţie mai mic se măreşte numărul de dinţi statorici şi r
otorici. În figura D.12.b este reprezentat un astfel de motor cu 6 poli aparenţi statorici.
1

N 2

4 S

Figura D.11

Motoarele pas cu pas polistatorice sunt realizate sub forma unor multistructuri statoric-
rotorice, fixate mecanic în aceeaşi carcasă dar independente din punct de vedere
electric şi magnetic. Statorul şi rotorul au acelaşi număr de dinţi. Subsistemele rotorice
sunt montate pe acelaşi ax , dar sunt separate din punct de vedere magnetic.

a.) b.)

Figura D.12

Pentru a realiza rotaţia este necesar decalarea subsistemelor rotorice sau statorice,
radial unele faţa de altele. În figura D.12 este prezentat un motor cu trei faze, cu
statorul aliniat şi un decalaj de o treime din pasul dentar realizat prin cele trei
subsisteme rotorice.
Indiferent de principiul de funcţionare al motorului, comanda acestuia se realizează prin
comutarea succesivă a fazelor înfăşurarilor. În figura D.14 se pot urmării diagramele
tensiunilor de alimentare în câteva variante funcţionale aplicate unui motor cu patru
faze.
În figura D.14, a este reprezentată aşa numita comandă simetrică simpla în care
alimentarea fazelor este comutată succesiv pe fiecare înfaşurare, semnalele de comanda
fiind disjuncte. În figura D.14,b sunt alimentate în permanenţă două înfăşurări, sensul de
rotaţie al motorului fiind determinat de ordinea de conectare şi deconectare a acestora
(comanda simetrică dublă). Această metoda este îmbunatăţită în figura D.14,c în sensul
că intervalul de timp asociat unei înfăşurări este defalcat în trei zone. Prima şi ultima
corespund alimentării simultane cu faza precedentă şi respectiv succesoare iar în a doua
este asigurată numai alimentarea fazei proprii.

Figura D.13

Comutarea semnalelor pe înfăsurări este realizată cu scheme de comanda specifică.


Aceste scheme trebuie să conţină, pe de o parte, logică de comutare a fazelor, iar pe de
alta parte dispozitive electronice de putere cuplate direct pe înfăsurările motorului.
În figura D.15 se pot urmării principalele elemente ce intră în componenţa acestor
scheme.
Circuitul distribuitor este format dintr-un numărător în inel, cu numărul stărilor egal cu
numărul fazelor motorului, urmat de o logică de decodificare ce permite activarea unei
singure ieşiri într-o stare a numaratorului. Pentru axemplificare, în figura D.16 s-au
prezentat două circuite distribuitoare pentru un motor cu patru faze.

u1 u1
t t
u2 u2
t u3 t
u3
u4 t u4 t
t t
a b

u1
t
u2
t
u3
u4 t
t
c

Figura D.14

Primul distribuitor , figura D.16,a realizat dintr-un numărător modulo 4 activat cu un


tM
generator de impulsuri cu perioada T= 4 unde t M este timpul de explorare al
tuturor fazelor motorului.
F
1

Circuit Bloc F2
Control1 MPP
distribuitor contactor
U2 static
Fn
U3 fd

U4

Generator de
Control2 tact

Figura D.15

Prin decodificare se obţine în fiecare stare a numărătorului un singur impuls, la


fiecare perioadă a generatorului, deci controlul realizat corespunde unei comenzi
simetrice simple. In figura D.16,b este utilizat acelaşi numărător dar logica de
decodificare asigură semnalele următoare:

A=Q1
− −
B=Q0 Q1 +Q0 Q1
C=Q1
− −
D=Q0 Q 1 +Q0 Q1
Prin această selecţie se obţine o distribuţie în timp de forma D.14,b realizând, deci,
comenzi simetrice duble.
Circuitele prezentate sintetizează funcţia de bază a distribuitoarelor, repartiţia
semnalelor pe fiecare fază după o secvenţă impusă, având ca referinţă semnalul unui
generator de tact. In afară de acest semnal, distribuitorul poate fi controlat printr-o
serie de semnale externe ce îi definesc sensul de baleiaj al fazelor, blocarea sau
deblocarea sa şi permit chiar modalităţi funcţionale specifice corespunzătoare unor
regimuri de accelerare sau decelerare a motorului.

a
A
Q0
B
N D
T Q1 C
CK D

f d

b
Figura D.16

Frecvenţa de tact este, la rotaţia nominală a motorului, constanta şi obţinută prin


circuite oscilatoare de uz general. Pentru regimurile de accelerare se impune, in scopul
eliminării fenomenului de pierdere al paşilor, pornirea generatorului de la frecvenţe
joase si creşterea gradată a frecvenţei până se atinge frecvenţa de regim dorită.
O procedură similară este necesară şi la regimurile de decelerare. Această modificare a
frecvenţei poate fi realizată in diferite moduri: prin circuite specializate analogice sau
numerice sau prin sistemul software al unui procesor ce controlează mişcarea. Pentru
exemplificare, in figura D.17 este prezentat un circuit numeric ce realizează controlul
frecvenţei prin informaţia numerică transmisa de la procesor.
Această mărime numerică , reprezentată prin vectorul Nv, este înscrisă intr-un registru
tampon ce este decrementat de un semnal de tact de frecventă ridicată şi riguros
constantă (Ts) emis de un generator GT1. La atingerea stării de zero a registrului , o
poartă logică P1 blochează accesul acestor impulsuri şi permite reînscrierea unei noi
valori numerice cu o întârziere τ. Ieşirea porţii reprezintă totodată semnalul de tact al
distribuitorului.
Ts
de la procesor (Nv)

P2
GT1

D D D D D LOAD
CK
Q Q Q Q Q

P1

ud spre distribuitor
1 1 1
u T1 Nv Nv Nv N v2

Ts Ts t
ud

 Td1 Td1 Td 2
t

Figura D.17

Frecvenţa de control a distribuitorului fd se obţine , din valoarea numerică aplicată ,


după o relaţie de forma
1
f d =k
Nv
Această relaţie este pusă în evidenţă prin diagrama de semnale din figura D.17,b. Pentru
o valoare Nv = 3 înscrisă periodic în registru se obţin impulsurile u d cu perioada Td1.
Mărirea valorii numerice , Nv2 determină o creştere proporţională a perioadei la valoarea
Td2.
Distribuitoarele de impulsuri discutate generează deci logica de comutare a tensiuni de
alimentare pe fiecare fază fără a asigura puterea necesară pentru comutare. Aceasta este
obţinută de un bloc de comutatoare statice care realizează amplificarea necesară a
sistemului.
Problemele impuse acestor circuite sunt numeroase, ele derivând din regimurile speciale
la care operează un motor pas cu pas. Aceste probleme pot fi formulate prin condiţiile
următoare:
-generarea unui curent cu o amplitudine corespunzătoare puterii cerute de motor şi cu
polaritate adecvată. Această implică trazistoare de putere în etajele finale sau chiar
tiristoare;
-comutarea curentului de la valoarea zero la valoarea de regim în timp minim;
-comutarea inversă a curentului de la valoarea nominală la zero în timp minim cu
evitarea apariţiei unor semnale de supraurmărire.

Prima condiţie se realizează prin utilizarea unor configuraţii speciale de amplificare în


curent de tipul circuitelor Darlington. Aceste circuite au avantajul unui factor de
amplificare bun, o impedanţă de intrare mare, o impedanţă de ieşire foarte mică , deci o
adaptare foarte bună faţă de sarcina oferită de motor. Ele reprezintă totodată şi un
excelent comutator static, constantele de timp proprii fiind foarte mici.
În fig D.18 este reprezentat un astfel de comutator Darlington cuplat pe una din
înfăşurările unui motor pas cu pas. Dacă semnalul furnizat de distribuitor este la nivel
logic O, tranzistorul T1 se blochează determinând blocarea tranzistorului T2 şi anulând
deci curentul în fază motorului. Pentru o valoare logică 1, tranzistorul T1 intră în
saturaţie determinând conducţia lui T2 si, deci, un curent corespunzător prin înfăşurarea
motorului.

+5V

Faza 1
+E
R1

T1
De la
D1
distribuito T2

R2 R3

Figura D.18

Condiţile 2 si 3 formulate sunt strâns legate de regimul tranzitoriu al circuitului de


sarcină. Propriu-zis, sarcina acestui comutator este caracterizată prin inductanţa L a
înfăşurării motorului, deci evoluţia în timp a curentului corespunde regimului oricărui
comutator cu sarcina inductivă.
Considerând comutatorul o structură ideală cu rezistenţa de ieşire R0 se obţine,

i ( t )=
E
Rm + R0
1−e ( −
τm
)
(D.26)
unde m este constanta de timp a circuitului.

L
τm=
R m+ R 0 (D.27)

i m
E
I(t) L, Rm Rm

+
E
-
K
Comutator
ideal (R=0) t
t f1
a b

Figura D.19

Timpul de front anterior la comutarea curentului Tfl (figura D.19b) se poate aprecia la
t fl≃3 τ m (D.28)
valoare ce nu satisface întotdeauna cerinţele de comutare ale fazelor motorului,
datorită valorii mari ai inductanţei L şi mici ale rezistenţelor Rm si R0.
Îmbunătăţirea timpului de front este posibilă prin tehnici bine-dezvoltate în literatura
de specialitate, cea mai simplă procedură de micşorare a constantei de timp T m
constând în introducerea în serie cu înfăşurarea motorului a unei rezistenţe R. Noua
constantă de timp va fi.

L
τ ¿m =
R m+ R 0 + R (D.29)
1 Faza 1

D1 R1

2 Faza 2

D2 R2

n Faza n

R +E
Dn Rn

T
Bloc control

Figura D.20

Dezavantajul principal al metodei constă în creşterea puterii consumate prin disiparea


acesteia în rezistenţa internă R. Acest neajuns poate fi remediat prin menţinerea
rezistenţei R numai pe durata regimului tranzitoriu şi anularea ei în restul intervalului de
timp. În figura D.20 este prezentată această soluţie în care rezistenţa R, comună tuturor
fazelor motorului, este scurtcircuitată prin tranzistorul T. Un bloc de control asigură
comutarea tranzistorului T în intervalele de timp necesare.
Un aspect caracteristic comutaţiei în circuitele inductive este apariţia supratensiunilor în
colectorii tranzistorilor finali la comutarea internă a curentului. În acest caz, curentul nu
devine imediat zero, ci se menţine în înfăşurare datorită inductivităţii acesteia. Efectul
imediat este apariţia supratensiunii ce poate provoca străpungerea tranzistorilor şi în
acelaşi timp se creează riscul alimentării simultane a două faze, cea blocată şi faza
succesoare acesteia (prin comutarea distribuitorului). Rezultatul este un efect de frânare
al motorului.
Eliminarea acestui neajuns se obţine prin montarea în paralel cu înfăşurările motorului a
unor diode (figura D.18) sau unor circuite formate din diode şi rezistenţe (figura D.20),
ultimele elemente având ca scop micşorarea costantei de timp de descărcare.

Releul
Releul este un dispozitiv electromecanic care transformă un semnal electric într-o
mişcare mecanică. El este alcătuit dintr-o bobină din conductori izolaţi înfăşuraţi pe un
nucleu metalic şi o armătură metalică cu unul sau mai multe contacte.

In momentul în care o tensiune de alimentare este aplicată la bornele unei bobină,


curentul circulă şi va fi produs un cвmp magnetic care mişcă armătura pentru a închide
un set de contacte şi/sau pentru a deschide un alt set. Cand alimentarea este dezactivată
din releu, cade fluxul magnetic din bobină şi se produce o tensiune înaltă pe direcţia
opusă.

Această tensiune poate strica tranzistorul de comandă şi de aceea este conectată o


diodă cu polarizare inversă de-a lungul bobinei pentru a scurtcircuita vîrfurile de
tensiune în momentul în care apar.

Conectarea unui releu la microcontroler prin intermediul unui tranzistor

Multe microcontrolere nu pot comanda un releu direct şi de aceea un tranzistor de


comandă este necesar.

Un HIGH pe baza tranzistorului activează tranzistorul şi acesta la rвndul lui activează


releul. Releul poate fi conectat la orice dispozitiv electric prin intermediul contactelor.

Rezistenţa de 10K din baza tranzistorului limitează curentul dinspre microcontroler la


o valoare solicitată de tranzistor. Rezistenţa de 10K dinspre bază şi bara negativă
previne ca tensiunile de zgomot aplicate оn baza tranzistorului să activeze releul. De
aceea numai un semnal clar de la microcontroler va activa releul. 

Conectarea printr-un optocuplor a releului de comandă

Un releu poate fi de altfel activat prin intermediul unui optocuplor care în acealşi timp
amplifică curentul provenit de la ieşirea microcontrolerului şi oferă un grad înalt de
izolare. Optocuploarele de curent înalt conţin un tranzistor cu o ieşire „Darlington”
pentru a oferi curent mare de ieşire.
Conectarea prin intermediul unui optocuplor este recomandată în mod special pentru
aplicaţiile unde motoarele sunt activate şi zgomotelele de comutaţie provenite de la
motor pot ajunge la microcontroler prin intermediul liniilor de alimentare.
Optocuplorul comandă un releu iar releul activează motorul.
Optocuplorul

Optocuplorul este un dispozitiv optoelectronic opţinut prin cuplarea optică a unui


fotoemiţător şi a unui fotodetector.Cu ajutorul acestuia se poate realiza transferul unei
comenzi cu izolare galvanic foarte bună între intrare şi ieşire.
Optocuplorul este un dispozitiv unidirecţional , ce transmite un semnal de la un circuit
sursă la un circuit receptor.Semnalul electric de la sursă este transformat în semnal
luminous , transmis prin spaţiul de propagare optic şi transformat în semnal luminous ,
transmis prin spaţiul de propagare optic şi transformat din nou în semnal electric în
circuitul receptor.
Cele mai utilizate optocuploare sunt realizare prin cuplare LED-
fototranzistor.Simbolul unui optocuplor împreună cu caracteristica de transfer sunt
prezentate în figura de mai jos.

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