Lucrarea de laborator nr. 8                     Convertoare analog numerice cu comparareScopul lucrării       În lucrare s...
Pe baza rezultatului comparării tensiunilor Ui şi Uc obţinut la ieşirea comparatoruluiC, blocul de stabilire a codului de ...
Ui, Uc                Uc                                             Ui                                                   ...
Ui                              +5V    Microsistem S12x                                                                   ...
Pentru un cuvânt de 8 biţi (D) aplicat la intrarea CNA, curentul de la ieşirea acestuiaeste:                              ...
După programarea circuitului PIT, execuţia programului continuă cu o buclă infinitărealizată cu linia de program INF: BRA ...
MOVB   #$20,IVBR       MOVW   #$4050,$207AINF:   BRA    INFORG $4050      MOVB    #$01,PITTF      MOVB    #$80,$1000     ;...
Upcoming SlideShare
Loading in …5
×

L8 convertoare analog numerice cu comparare

425 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
425
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

L8 convertoare analog numerice cu comparare

  1. 1. Lucrarea de laborator nr. 8 Convertoare analog numerice cu comparareScopul lucrării În lucrare se prezintă trei principii de implementare a convertoarelor analognumerice (CAN) cu ajutorul convertoarelor numeric analogice (CNA): cu aproximaţiisuccesive, cu tensiune de comparaţie crescătoare în trepte egale şi cu urmărire.1. CAN realizate cu CNA Schema de principiu de realizare a unui CAN cu ajutorul unui CNA este prezentatăîn figura următoare: STARE COMENZI Ui BLOC STABILIRE f0 GENERATOR C COD INTRARE DE TACT CNA D Ur Uc CNA Fig. 1. Schema bloc a unui CAN realizat cu CNA Tensiunea Ui se aplică la una din intrările comparatorului C. La cealaltă intrare seconectează tensiunea Uc de la ieşirea CNA: Uc=k Ur(b1 2-1+b2 2-2+...+bN 2-N)=qD. (1) b1...bN – valorile logice ale celor N biţi de la intrarea CNA Ur – tensiunea de referinţă a CNA D – valoarea numerică de la intrarea CNA q – cuanta CNA. 1
  2. 2. Pe baza rezultatului comparării tensiunilor Ui şi Uc obţinut la ieşirea comparatoruluiC, blocul de stabilire a codului de intrare pentru CNA determină, prin testări repetate,valorile logice ale biţilor b1...bN pentru a se obţine o relaţie de tipul: Ui≈Uc, Ui≥Uc. În funcţie de procedura de determinare a codului de la intrarea CNA, există maimulte tipuri de CAN: - CAN cu aproximaţii succesive - CAN cu tensiune de comparaţie în trepte egale - CAN cu urmărire.a) CAN cu aproximaţii succesive Prin această tehnică, se realizează aproximarea tensiunii de intrare printr-o sumă detensiuni egale cu FSR/2, FSR/4, FSR/8,…,FSR/(2N), unde N este numărul de biţi pe care serealizează conversia analog numerică. Tensiunile de forma FSR/(2k) reprezintă ponderilefiecărui bit de la intrarea convertorului numeric analogic în tensiunea analogică de la ieşire. O conversie analog numerică începe prin aducerea la intrarea CNA a unui cuvântbinar la care bitul cel mai semnificativ este 1 iar ceilalţi biţi sunt 0. Tensiunea Uc de laieşirea CNA va fi FSR/2. Dacă această valoare a lui Uc este mai mare decât Ui, bitul cel maisemnificativ este adus la 0. Dacă Uc este mai mic decât Ui bitul cel mai semnificativ rămâne 1. Pentru stabilirea biţilor următori se repetă operaţia descrisă pentru bitul cel maisemnificativ. Biţii care au fost stabiliţi rămân la valorile stabilite până la terminareaconversiei analog numerice. Ponderea adusă de ultimul bit pus pe 1 se adaugă tensiunii Ucexistente. Avantajul utilizării acestui tip de CAN este viteza ridicată de conversie.Dezavantajul este complexitatea blocului de stabilire a codului de intrare pentru CNA. Ui, Uc7FSR 8 Ui3FSR 4FSR Uc 2 t 1 1 0 1 Fig. 2. Reprezentarea grafică a tensiunilor Ui şi Ucb) CAN cu tensiune de comparaţie crescătoare în trepte egale Acest tip de CAN realizează stabilirea codului de intrare pentru CNA prinincrementarea valorii transmise CNA. Atunci când Uc depăşeşte Ui, se reţine ultima valoarepentru care Uc<Ui ca fiind rezultatul conversiei analog numerice. Avantajul utilizării acestui CAN constă în simplitatea blocului de stabilire a coduluide intrare pentru CNA. 2
  3. 3. Ui, Uc Uc Ui t Fig. 3. Reprezentarea grafică a tensiunilor Ui şi Ucc) CAN cu urmărire În cazul acestui tip de CAN blocul pentru stabilirea codului de intrare al CNA esteun numărător reversibil. Determinarea cuvântului binar de la ieşirea CAN se realizează prinnumărare în sens crescător (dacă Uc<Ui) sau descrescător (dacă Uc>Ui). Avantajul utilizării acestui tip de CAN este viteza ridicată de conversie dacă intrareaanalogică a CAN este o tensiune continuă sau lent variabilă în timp. Ui, Uc Uc Ui t Fig. 4. Reprezentarea grafică a tensiunilor Ui şi Uc2. Circuitul utilizat în lucrare Se utilizează sistemul cu microcontroler MC9S12xDP512 la care este conectatsistemul cu CNA pe 8 biţi DAC08. Sistemul cu microcontroler realizează funcţia bloculuide stabilire a codului de intrare al CNA. 3
  4. 4. Ui +5V Microsistem S12x +12V R4 2k R5 4.7k 1 U2A U1 1 PORTB.0 12 B8 IOUT 4 I0 U1 4 PORTB.1 11 B7 12 PORTB.2 10 B6 5 PORTB.3 9 B5 _IOUT 2 PORTB.4 8 B4 R3 LM319 PORTB.5 7 B3 1k 6 PORTB.6 6 B2 PORTB.7 5 B1 COMP 16 14 VR+ -12V 15 VR- VLC 1 PTT.0 DAC08 ZK-S12-A R1 R2 4.7k 4.7k C1 100nF Ur +12V -12V4 Title CAN cu comparare Size Document Number REV A Date: October 16, 2007 Sheet 1 of 1
  5. 5. Pentru un cuvânt de 8 biţi (D) aplicat la intrarea CNA, curentul de la ieşirea acestuiaeste: Ur D I0 = ⋅ (2) R1 256 La intrarea comparatorului se obţine tensiunea: R3 ⋅ R4 ⎛ Ui ⎞ U1 = ⎜ R − I0 ⎟ ⎜ ⎟ (3) R3 + R4 ⎝ 4 ⎠ R3 ⋅ R4 ⎛ U i U r D ⎞ U1 = ⎜ − ⋅ ⎟ (4) R3 + R4 ⎜ R4 R1 256 ⎟ ⎝ ⎠ Indiferent de tipul de convertor implementat se urmăreşte anularea tensiunii U1,rezultând astfel funcţia de transfer a CNA: 256 R1 D= ⋅ ⋅U i (5) U r R43. Lucrarea practicăNu se vor aduce tensiuni mai mari de 6V la intrarea Ui a CAN.1). Utilizând programul prezentat în lucrare să se realizeze un CAN cu aproximaţiisuccesive şi să se verifice funcţionarea lui.2). Modificaţi tensiunea Ui de la intrarea CAN astfel încât rezultatul conversiei analognumerice să fie FEh şi calculaţi cuanta CAN: U i (D = FEh ) q= (6) 2543). Considerând o tensiune aplicată CAN, calculaţi rezultatul conversiei. Aplicaţi tensiuneaconsiderată la intrarea CAN şi verificaţi rezultatul calculat.4). Să se vizualizeze şi să se deseneze formele de undă ale semnalelor de la intrareaneinversoare a comparatorului (Uicomp) şi de la ieşirea comparatorului (Uocomp). Interpretaţicele două forme de undă pentru 3 valori diferite ale Ui.5). Modificaţi perioada conversiilor analog numerice.6). Modificaţi programul astfel încât să se obţină un CAN cu tensiune de comparaţie întrepte egale.7). Modificaţi programul astfel încât să se obţină un CAN cu urmărire.Anexă. Programul utilizatCAN_AS Programul conţinut în proiectul can_as realizează conversii analog numerice cuaproximaţii succesive cu ajutorul convertorului numeric analogic. Declanşarea unei conversii analog numerice este realizată cu ajutorul circuituluitemporizator pentru întreruperi periodice (PIT). 5
  6. 6. După programarea circuitului PIT, execuţia programului continuă cu o buclă infinitărealizată cu linia de program INF: BRA INF. La primirea unei cereri de întrerupere de lacircuitul PIT va fi rulat programul care se găseşte în memorie la adresa conţinută în douălocaţii de memorie succesive începând cu adresa de 16 biţi formată din conţinutulregistrului IVBR (8 biţi mai semnificativi ai adresei de 16 biţi) şi o constantă (7Ah)specifică pentru canalul PIT utilizat (canalul 0). La primirea unei cereri de întrerupere se va face o conversie analog numerică cuaproximaţii succesive. Se utilizează o locaţie de memorie (locaţia cu adresa 1000h) pentru a memora unnumăr care reprezentat în binar conţine o singură cifră 1. Iniţial acest număr are valoarea80h. Iniţializarea locaţiei de memorie de la adresa 1000h cu valoarea 80h este realizată prinlinia de program MOVB #$80,$1000. Rezultatul conversiei analog numerice se formează în acumulatorul A. În timpulunei conversii analog numerice, fiecare bit al rezultatului temporar al conversiei(acumulatorul A) este adus la valoarea 1 prin funcţia SAU între A şi conţinutul locaţiei cuadresa 1000h (instrucţiunea ORAA $1000). După realizarea funcţiei SAU, se comandăconvertorul numeric analogic cu rezultatul temporar şi se testează ieşirea comparatorului,care va avea valoarea 1 logic dacă tensiunea generată de convertorul numeric analogic estemai mică decât tensiunea de intrare a convertorului analog numeric. Ieşirea comparatorului este conectată la linia 0 a portului T (PTT) programat ca portde intrare prin linia de program MOVB #$00,DDRT şi se testează prin instrucţiunile LDAB#$01 şi BITB PTT. Prin instrucţiunea BITB PTT se realizează funcţia ŞI logic întreregistrul de date al portului T şi acumulatorul B. Stările biţilor din registrul CCR vor fimodificate conform rezultatului funcţiei ŞI. Dacă ieşirea comparatorului are valoarea 1 logic, rezultatul funcţiei logice ŞI întreaceastă ieşire şi 1 logic din bitul 0 al acumulatorului B va face ca bitul Z din registrul CCRsă fie adus la valoarea 0 logic. În acest caz instrucţiunea BNE BIT1 va face salt lainstrucţiunea LSR $1000 (saltul se face dacă Z=0), iar bitul din rezultatul temporar care afost adus la 1 logic prin funcţia SAU va rămâne pe 1. Dacă ieşirea comparatorului este 0BNE BIT1 nu va face saltul iar bitul din rezultatul temporar care a fost adus la 1 logic prinfuncţia SAU este readus la 0 logic prin funcţia SAU EXCLUSIV între A şi valoareanumerică de la adresa 1000h (instrucţiunea EORA $1000). Conţinutul locaţiei cu adresa 1000h este deplasat la dreapta cu un bit prininstrucţiunea LSR $1000. Valorile succesive de la adresa 1000h vor fi 80h, 40h, 20h, 10h,08h, 04h, 02h şi 01h. Atunci când se ajunge la valoarea 01h, la următoarea rulare ainstrucţiunii LSR $1000 bitul C din registrul CCR va deveni 1, iar instrucţiunea BCC CCnu va mai face salt la linia de program ORAA $1000. LDS #RAMEnd+1 ; initializare contor de stiva CLI ; validare intreruperi MOVB #$FF,DDRB ;PORTB - iesire MOVB #$00,DDRT ;PORTT - intrare MOVB #$00,PITMUX MOVB #$01,PITINTE MOVB #199,PITMTLD0 MOVW #399,PITLD0 MOVB #$80,PITCFLMT MOVB #$01,PITCE 6
  7. 7. MOVB #$20,IVBR MOVW #$4050,$207AINF: BRA INFORG $4050 MOVB #$01,PITTF MOVB #$80,$1000 ;10000000CC: ORAA $1000 STAA PORTB LDX #$40 ;intarziere pentru comparatorCD: DBNE X,CD LDAB #$01 BITB PTT BNE BIT1 ;iesire comparator=1 => Uc<Ui EORA $1000BIT1: LSR $1000 BCC CC STAA PORTB RTI 7

×