Subiectul 1:
Sa se proiecteze dispozitivul de comanda pentru un automat de schimbat bancnote.
Se considera ca se schimba doar o bancnota in submultiplii specificati de client.
Automat de schimbat bancnote :
In desenul prezentat mai s 757b17h us, ne-am propus sa realizam pentru cazul nostru automatul de schimbat bancnote. Pe ecran, vor aparea mesajele de introducere a bancotei, de alegere a submultiplilor si de apasare a butonului START. Alaturi de acest buton, am introdus altele trei, care sunt de fapt singurii submultiplii pe care clientul ii poate alege si au valorile de 100.000, 50.000 si 10.000.
Avem la dispozitie un automat de schimbat bancnote. Se porneste de la o stare initiala, dupa care la introducerea bancnotei si apasarea butonului START, automatul va solicita tipul submultiplilor pe care dorim sa-i obtinem.
Dispunem de urmatoarele variabile de intrare :
B100, B50 si B10 sunt de fapt 3 taste de pe panoul central, care reprezinta bancnotele cerute de client, in valoare de 100.000, 50.000 si respectiv 10.000.
D - aceasta variabila este furnizata de un bloc aritmetico-logic ce realizeaza calcule aritmetice in timp real, intre valorile bancnotei introduse si a celor oferite la schimb; are semnificatia urmatoare: in cazul in care se sesizeaza ca nu s-a intodus bancnota sau cand se solicita o suma mai mare decat cea disponibila are valoare 0, in celalalt caz, are valoarea 1 si se intra in procesul de schimbare al bancnotei.
E este o variabila de intare in automat, care are rolul de a da informatii despre eliberarea bancnotei; ea valoarea 1 de ori de cate ori o bancnota a fost eliberata
Si in fine, variabila START, notata cu S, care la apasarea acestui buton, devine 1, considerandu-se astfel pornit procesul de schimb.
Dupa
introducerea unei bancnote si specificarea submultiplilor, se vor returna
bancnotele dorite. De aceea avem nevoie de trei variabile de iesire, care
in cazul nostru sunt M
In cazul in care operatia de schimbare a bancotei a fost efectuata, se considera incheiat procesul, automatul setandu-se pe starea initiala
Schema bloc a automatului de schimbat bancnote
in care sunt evidentiate:
Detector de bancnota : cu rolul de a detecta tipul bancnotei introduse, ofera semnale spre UAL
Tastatura, care cuprinde butoanele 100.000, 50.000, 10.000, START
UAL, care da informatii despre suma ce mai poate fi eliberata
Un bloc sumator SI-NU ce da informatie despre eliberarea bancnotelor
3 blocuri de eliberat bancnote de 100.000, 50.000, 10.000
Automatul propriu-zis descris, in continuare
Sinteza automatului
Sinteza circuitelor secventiale sincrone sau asincrone presupune gasirea unui circuit care sa satisfaca cerintele de intrare, respectiv iesire impuse.
Pentru sinteza exista o serie de metode:
metoda matriciala – poate fi utilizata pentru circuite secventiale cu numar mic de intrari
metoda ordinogramei – presupune parcurgerea urmatoarelor etape:
construirea diagramelor starilor pe baza temei date
codificarea starilor
proiectarea schemei
Deoarece sinteza se poate realiza cu mai multe tipuri de circuite, vom prezenta in continuare sase tipuri de sinteze ale automatului, respectiv:
Sinteza asincrona cu porti
Sinteza sincrona cu bistabile si porti
Sinteza sincrona cu decodificatoare
Sinteza sincrona cu multiplexoare si numaratoare
Sinteza sincrona cu memorie fixa programabila PROM
Sinteza sincrona cu memorie fixa programabila PROM si MXP
1. Sinteza in regim asicron cu porti
Etapele sintezei sunt:
Construirea pe baza datelor temei de proiectare a diagramei de stari
Codificarea starilor
Pentru sinteza circuitelor in regim asincron, este important ca intre starile adiacente (adica starile intre care exista tranzitii) sa se aloce coduri adiacente (care difera printr-o singura pozitie binara).
Diagrama de stari pentru automatul de schimbat bancnote si codificarea starilor
In continuare se vor realiza matricile starilor si ale tranzitiilor, pentru variabilele x1, x2, x3, x4 Pentru determinarea lor se utilizeaza diagrame Veitch – Karnaugh la care se utilizeaza variabilele de intrare ca elemente ale diagramei (intervin in relatii).
Matricea starilor este urmatoarea:
|
M4
M0
x
M2
x
M3
x2
Considerand pe rand x1, x2, x3 si respectiv x4 , ca fiind pozitiile cele mai semnificative, se formeaza urmatoarele matrici de tranzitie:
pentru x1:
x |
S |
||||||
x | |||||||
x | |||||||
x2
pentru x2:
B10*D
x |
E | ||||||
x | |||||||
x | |||||||
x2
pentru x3:
x | |||||
x | |||||
x | |||||
E |
x2
pentru x4:
x | |||||
x | |||||
x | |||||
x2
In continuare vom scrie pe baza matricilor starilor urmatoare, ecuatiile de stare ale automatului:
Ecuatiile functiilor de iesire M 100, M 50 si M10, se determina dupa ce se realizeaza diagramele:
pentru M 100:
x | |||||
x | |||||
x | |||||
x2
pentru M 50:
x | |||||
x | |||||
x | |||||
x2
pentru M 10:
x | |||||
x | |||||
x | |||||
x2
Rezulta acum din diagramele de mai sus, ca formulele pentru ecuatiile de iesire sunt:
Implementarea schemei logice (vezi Figura 3)
X4
Figura 3. Schema bloc a circuitului realizat cu porti
LC1 = logica combinationala 1,data de implementarea ecuatiilor x1, x2, x3, x4.
LC2 = logica combinationala 2, data de implementarea ecuatiilor de iesire.
2. Sinteza sincrona cu bistabile si porti
La acestea tranzitiile au loc numai in anumite momente de timp si sunt relative la un semnal de sincronizare.
Toate starile sunt stabile si se mentin pe intreaga perioada dintre doua impulsuri de sincronizare. La aceste circuite nu apare problema curselor critice, iar hazardul static existent nu determina o functionare incorecta.
Intrucat circuitele de memorare de tip sincron impun anumite restrictii semnalelor aplicate la intrare, la codificare putem urma aceleasi reguli ca la circuitele asincrone.
Considerand intrarile ca fiind asincrone acestea vor trebui sa conditioneze schimbarea valorii unei singure variabile de stare. Vom considera aceeasi codificare a starilor ca in exemplul anterior. Vom merge pe idee implementarii circuitului utilizand bistabile J – K pentru care vom determina ecuatia intrarii J, respectiv K.
Qn |
Qn+1 |
J |
K |
X |
|||
X |
|||
X | |||
X |
Vom avea:
pentru x1:
Jx1
| ||||||
|
D | |||||
X |
Kx1
| ||||||||||
X |
X |
X |
||||||||
X | ||||||||||
| ||||||||||
|
S |
pentru x2:
Jx2
| ||||||
|
B10*D | |||||
X | ||||||
Kx2
| ||||||
X |
X |
X |
||||
|
E | |||||
X |
pentru x3:
Jx3
| ||||||
|
B50*D |
X | ||||
X | ||||||
| ||||||
|
X |
X |
E |
|||
X | ||||||
X |
pentru x4 :
| ||||||
|
B100*D | |||||
X | ||||||
| ||||||
|
X |
E |
X |
|||
X | ||||||
X |
Semnalele de comanda au ecuatiile:
Schema corespunzatoare automatului, realizata cu ajutorul bistabilelor J-K este prezentata mai jos:
Jx1 Kx1
X3 X2 M100 M50 M10 Jx4 Kx4 Jx3 Kx3 Jx2 Kx2 X1 LC1
X4
LC2
START
D
B100
B50
B10
E
3. Sinteza sincrona cu decodificatoare
Un decodificator de stare simplifica sinteza acestor circuite intrucat, avand starile decodificate, ecuatiile de excitatie pentru intrarile bistabilului se pot determina direct din diagrama starilor.
Pentru cazul nostru se va studia implementarea automatului folosind circuitul CDB442 – un decodificator zecimal.
Si in acest caz raman valabile problemele de codificare adiacenta si respectiv de sincronizare a intrarilor asincrone ce provoaca tranzitii neadiacente. Deci ecuatiile de excitatie ale bistabilelor pentru cazul in care se foloseste circuitul de decodificare se scriu direct din diagrama starilor.
Decodificatorul va activa la iesire starile P0 P6corespunzatoare pentru M0 M6 Iesirile decodificatorului sunt active pe 0.
P0 |
P1 |
P2 |
P3 |
P4 |
P5 |
P6 |
P7 |
|
Vom utiliza bistabile de tip J-K (J aduce bistabilul in starea 1, iar K in starea 0). Avem urmatoarele ecuatii:
Ecuatiile
functiilor de iesire sunt:
Schema detaliata a automatului realizat cu ajutorul aceastei metode, este prezentata in figura de mai jos.
4. Sinteza sincrona cu multiplexoare si numaratoare
Utilizarea numaratoarelor cu incarcare paralela si a multiplexoarelor simplifica si mai mult sinteza circuitelor secventiale. Multiplexoarele folosite (SN74151) prezinta 8 intrari de date si 3 de adresa. Numaratorul pe care il vom utiliza - SN74163 - are 4 iesiri de date: QA, QB, QC, QD, o intrare de incarcare paralela LOAD, o intrare de initializare CLR, 4 intrari de date DA, DB, DC, DD, o intrarea de tact CLK si o intrare de numarare COUNT.
Daca la intrarea LOAD se aplica nivel logic scazut, intrarile vor fi introduse sincron pe frontul descrescator al impulsului de tact CLK.
In sinteza, intrarile de scriere sunt separate DA, DB, DC, DD, iar functiile de stergere sunt legate impreuna la intrarea CLR.
Daca la intrarea COUNT se aplica semnalul „1” continutul numaratorului e incrementat tot pe frontul descrescator.
Pentru ca numaratorul binar sincron cu incarcare paralela sa poata fi utilizat la memorarea starii unui circuit secvential se impune conditia ca diagrama starilor sa nu contina decat ramificatii cel mult duble.
Codificarea starilor se face astfel incat una din starea urmatoare se obtine prin incrementarea numaratorului, iar cealalta stare urmatoare prin incarcarea paralela a numaratorului.
La intocmirea diagramei starilor nu sunt necesare stari suplimentare pentru ca diagrama nu contine ramificari multiple. In schema ce se va realiza, semnalele se vor aplica la intrarea de numarare sau de incarcare paralela. Ele vor fi sincronizate la acest nivel, astfel realizandu-se sincronizarea intrarilor asincrone. Avand codificata diagrama starilor, urmeaza sa se scrie functiile logice care se aplica la intrarea numaratorului. Acestea sunt COUNT, LOAD, codul starii la care se face saltul DA, DB, DC, DD si CLR.
M0 000
Urmarind diagrama starilor se observa ca secventa de numarare este: M0 M1 M2 M3 M4 M5.
Saltul se face intre starile: M1 M0, M2 M7, M3 M6, M6 M1, M4 M1, M7 M1, M5 M1. Scrierea functiilor logice pentru
intrarile COUNT si LOAD se poate face direct din diagrama
starilor.
Numaratorul trebuie incrementat cand se realizeaza o tranzitie ce apartine secventei principale de numarare. Numaratorul trebuie incarcat in paralel atunci cand trebuie sa se efectueze tranzitii ce nu sunt codificate in secventa principala de numarare.
Intrarile de date trebuie sa contina codul starii la care se efectueaza saltul atunci cand starea se obtine la incarcarea paralela a numaratorului.
DA |
DB |
DC | |
P1 |
|||
P2 |
|||
P3 |
|||
P6 |
|||
P4 |
|||
P7 |
|||
P5 |
Ecuatiile intrarilor de date sunt:
Ecuatia pentru intrarea CLR este: CLR = ST unde ST este semnalul ce va trebui sa fie generat la punerea sub tensiune a ansamblului.
6 5 4 3 2 1 0
CDB442
5. Sinteza sincrona cu memorie fixa programabila PROM
Utilizarea memoriei fixe impreuna cu alte circuite cum ar fi registre, numaratoare, multiplexoare, permite realizarea unor circuite secventiale sincrone caracterizate printr-o flexibilitate sporita.
In cazul memoriilor PROM, aplicandu-se la intrarile de adresare codul starii prezente, la iesire apare codul starii urmatoare la care se poate face saltul si eventual functiile de iesire.
Intr-o prima varianta de implementare a circuitelor secventiale realizata cu ajutorul multiplexoarelor, numaratoarelor si a memoriei PROM, circuitul lucreaza dupa diagrama starilor anterioara si se obtine prin inlocuirea circuitului decodificator si a portilor logice folosite pentru obtinerea semnalelor DA, DB, DC si respectiv a functiilor de iesire, cu o memorie PROM. Semnalele ce se aplica la intrarea de date ale multiplexoarelor sunt identice in cele doua cazuri. Se tine cont de intrarile numaratorului cand LOAD e activ.
Se va utiliza o memorie PROM de tipul SN74188 ce are 32 cuvinte fiind adresabila prin 5 linii binare. Dimensiunea unui cuvant este de 1 octet.
Iesirile numaratorului ce memoreaza starea prezenta sunt utilizate pentru adresarea memoriei PROM, iar restul vor fi legate la masa.
Iesiri Intrari | ||||||||||||||||
x |
x |
x |
x |
x |
||||||||||||
x |
x | |||||||||||||||
x |
x | |||||||||||||||
x |
x | |||||||||||||||
x |
x | |||||||||||||||
x |
x | |||||||||||||||
x |
x | |||||||||||||||
x |
x |
M100 M50 M10 QA QB QC
6 5 4 3 2 1 0 QA QB QC
SN74188
Sinteza sincrona cu memorie fixa programabila PROM si MXP
Acest tip de metoda prezinta un mare avantaj si anume ca nu impune restrictia de codificare a starilor printr-o secventa de numarare, in schimb necesita mai multa memorie.
In schema prezentata mai sus, se pot observa doua multiplexoare, notate cu MUX1 si MUX2, o memorie PROM, a carui date se indreapta spre Registrul de date.
Intrarile multiplexorului raman aceleasi cu cele din implementarea anterioara, fiecare din multiplexorul din schema de mai sus va asigura o conditie de tranzitie astfel incat tabelul ce reprezinta PROM-ul este cel prezentat mai jos. Avem ca si varaiabile LOAD, COUNT, A, B, C si cele de iesire cu care suntem deja familiarizati din diagrama de stare: M100, M50 si M10.
LOAD |
COUNT |
QA |
QB |
QC |
M100 |
M50 |
M10 |
A |
B |
C |
||
x |
X | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
X |
X | |||||||||||
X |
x | |||||||||||
x |
x | |||||||||||
x |
X | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
x |
X | |||||||||||
x |
x | |||||||||||
X |
X |
x |
x |
X |
X |
X |
X |
|||||
X |
x |
x |
x |
X |
X |
X |
x |
|||||
x |
x |
X |
X |
x |
X |
X |
X |
|||||
x |
X |
x |
x |
X |
X |
X |
X |
|||||
x |
x | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
x |
x | |||||||||||
X |
X | |||||||||||
X |
x | |||||||||||
x |
x |
Schema automatului realizat cu multiplexoare si memorie PROM
Bibliografie
D. E. Popescu, C. Popescu : Circuite digitale elementare - Editura Universitatii din Oradea, 2002
|