Sunteți pe pagina 1din 32

Automate şi microprogramare

2. Automate cablate
2.1. Analiza automatelor cablate asincrone

Definiţie. Se numeşte analiză procedura prin care se identifică


evoluţia unui automat asincron pentru orice secvenţă de intrare
şi orice stare.
Analiza este procedura de determinare a funcţiilor pe care un
anumit automat le poate îndeplini şi, eventual, depistarea
deficienţelor ce pot interveni în funcţionarea acestuia.
B) Analiza la nivel de automat
Etapele analizei:
1) Se analizează circuitul dat şi se identifică mărimile de
intrare, variabilele de stare, funcţiile de stare şi mărimile de
ieşire
2) Se determină ecuaţiile de evoluţie (funcţiile de stare Y) şi de
ieşire
3) Se construiesc tabelele funcţiilor de stare Y şi de ieşire.
Tabelul cuprinde atâtea coloane câte combinaţii de intrare se
aplică circuitului şi atâtea linii câte combinaţii de variabile de
stare există.
4) În tabele se introduc pentru fiecare intrare şi stare valoarea
funcţiilor de stare Y şi de ieşire.
5) Se construieşte tabelul de stabilitate al circuitului. Tabelul e
identic cu cel precedent, ca structură, în fiecare locaţie a tabelului
se identifică tipul de stare: stabilă sau instabilă. Starea stabilă o
reprezentăm ca un mic cerc, starea instabilă ca un mic disc (cerc
înnegrit). Se trasează evoluţia stărilor instabile către o anumită
stare stabilă (prin arce cu săgeţi).
6) Se construieşte automatul abstract asociat circuitului.
Acesta e un tabel în care stările primesc simboluri abstracte.
Stările stabile primesc simboluri numerice încercuite, iar stările
instabile primesc simboluri numerice neîncercuite.
Întotdeauna o stare instabilă primeşte simbolul stării stabile în
care evoluează.

7) Se analizează controlabilitatea stărilor. Se determină dacă


există secvenţele de intrare care pot duce circuitul dintr-o stare
iniţială dată în orice altă stare.
Exemplu 1.
Exemplu 2.
Definiţie. Se numeşte ciclu o evoluţie secvenţială finită, care într-
un număr de secvenţe specificat atinge din nou starea iniţială a
ciclului. Numărul de secvenţe se numeşte lungimea ciclului.
Definiţie. Se numeşte cursă într-un circuit asincron o evoluţie
care implică schimbarea simultană a cel puţin 2 variabile de stare.
Dacă în urma comutaţiei reale circuitul evoluează în stări diferite
cursa se numeşte critică.
Dacă indiferent de ordinea de comutaţie se obţine aceeaşi stare
finală stabilă, cursa se numeşte necritică.

Observaţie! Cursele critice şi ciclurile sunt cele mai periculoase


fenomene în cicuitele asincrone.
Exemplu 3.
2.2. Sinteza automatelor
asincrone
Definiţie. Prin sinteză se înţelege procedura de concepere
(proiectare) a circuitelor (schemelor) care implementează
un automat abstract, ce poate implementa un protocol
dorit de funcţionare (specificaţii tehnice).
Punctul de plecare în procesul de sinteză a unui automat îl
constituie enunţarea specificaţiilor pe care trebuie să le
îndeplinească acesta. Ele constituie datele iniţiale de
proiectare.
Plecând de la aceste date, se stabilesc sub formă analitică
sau grafică stările, secvenţele de lucru şi în final
configuraţia sistemului.
Procedura generală de sinteză a automatelor asincrone se poate
rezuma la următoarele etape:
1. Se construieşte automatul secvenţial (o reprezentare
abstractă) conform specificaţiilor temei de proiectare
formulată prin text, fie printr-o diagramă de semnale.
2. Se determină o anumită ataşare (asignare) de variabile
de stare (secundare) care să corespundă unei anumite
tehnologii de circuit secvenţial şi care să permită realizarea
unui optim după anumite criterii de calitate.
3. Se sintetizează circuitul secvenţial care acoperă, prin
codificarea determinată la pct. 2, automatul obţinut la pct. 1.
Aceste trei etape constituie fazele de bază ale sintezei

structurilor secvenţiale, sub forma cea mai generală, care, în

funcţie de specificul problemei, pot căpăta diverse forme

particulare.
2.2.1. Metoda Huffmann
Algoritm:
1. Se determină matricea primitivă de stări (forma abstractă a
automatului) conform specificaţiilor de proiectare. Prin matrice
primitivă se înţelege o tabelă care conţine pe o linie o singură
stare stabilă şi toate tranziţiile posibile implicate de această
stare. Numărul de coloane corespunde numărului maxim de
secvenţe de intrare care poate fi aplicat circuitului (N = 2n).
Matricea primitivă de stări trebuie să cuprindă alăturat o altă
matrice a ieşirilor sistemului, pentru fiecare stare stabilă
determinată. În această matrice se completeză toate locaţiile,
chiar dacă unele nu sunt atinse prin ciclurile de funcţionare
complete, datorită specificului procesului sau a unor
imposibilităţi funcţionale fizice.
Exemplu 1.
Să se sintetizeze automatul secvenţial cu o intrare (x, de tip push-
button – comutator cu revenire) şi o ieşire (z), care să funcţioneze
conform specificaţiilor următoare:
- La orice comutare din 0 în 1 a intrării ieşirea va trece în starea
inversă stării în care se afla înaintea comutării intrării.
- La trecerea din 1 în 0 a intrării, ieşirea îşi păstrează starea.
1) Realizarea matricei primitive
Presupunem o stare iniţială (starea 1) în care intrarea este 0 logic
(comutatorul nu este apăsat) şi ieşirea este 0 logic. Dacă se apasă
pe comutator (intrarea x trece în 1 logic) se trece prin starea 2
instabilă în starea stabilă 2 în care ieşirea a comutat în 1. Dacă se
ia degetul de pe comutator (intrarea x revine în 0 logic), se trece
prin starea instabilă 3 în starea stabilă 3 în care ieşirea se
păstrează 1 logic, ş.a.md.
2. Se construieşte matricea de stări redusă. Această etapă se
impune în momentul în care se doreşte obţinerea unei forme cât mai
simple a circuitului secvenţial final. Reducerea matricei primitive se
obţine prin fuzionarea liniilor acesteia în condiţiile impuse de
compatibilităţile şi acoperirile din teoria automatelor secvenţiale.
Conform acestei teorii, două linii ale matricei primitive pot fuziona
dacă cele două stări stabile corespunzătoare fiecărei linii au ca
succesori (ori de câte ori aceştia sunt specificaţi) aceleaşi stări
stabile. Altfel spus, fuzionarea a două linii se realizeză după
următoarele reguli:
a) Pot fuziona două linii dacă locaţiile corespunzătoare fiecărei
coloane corespund aceluiaşi număr de stare, stabilă sau instabilă;
b) Prin fuzionarea unei stări stabile cu una instabilă, se obţine starea
stabilă corespunzătoare;
c) Prin fuzionarea unei stări stabile sau instabile cu una interzisă, se
obţine starea stabilă sau instabilă, respectiv.
Gruparea liniilor, prin fuzionare, duce la o formă minimă, dar,
conform teoriei automatelor secvenţiale incomplet specificate,
această formă nu este unică datorită diverselor posibilităţi de
grupare a stărilor. Pentru obţinerea unei grupări de linii cât mai
convenabile se realizarea diagrama de fuzionare. În acest scop
se numerotează liniile matricei primitive şi se marchează prin
segmente fuzionările posibile. Două sau mai multe linii pot
fuziona dacă segmentele respective formeză un poligon complet.
Aceste grupări se numesc partiţii de fuzionare.

Cele două etape prezentate corespund fazei 1 din procedura de


sinteză generală, fază care permite obţinerea, într-o reprezentare
abstractă, a automatului secvenţial.
Exemplu 1.
Să se sintetizeze automatul secvenţial cu o intrare (x, de tip push-
button – comutator cu revenire) şi o ieşire (z), care să funcţioneze
conform specificaţiilor următoare:
- La orice comutare din 0 în 1 a intrării ieşirea va trece în starea
inversă stării în care se afla înaintea comutării intrării.
- La trecerea din 1 în 0 a intrării, ieşirea îşi păstreză starea.
2) Se construieşte matricea de stări redusă
Nu se pot realiza fuzionări între liniile matricei primitive.
În diagrama de fuzionare (cele 4 noduri ce reprezintă cele 4
linii) nu se pot uni nodurile pentru că nu pot fuziona liniile
matricei primitive.
3. Se ataşează variabile de stare (secundare) pentru
codificarea fiecărei linii a matricei de stări reduse astfel încât
să corespundă unei anumite tehnologii de circuit secvenţial şi să
satisfacă anumite criterii de calitate (o funcţionare fără risc, fără
curse critice, o configuraţie minimală de circuit etc.). Întrucât o
matrice de stări redusă conţine cel puţin o stare stabilă pe o linie,
trecerea dintr-o stare în alta de pe altă linie trebuie să impună
comutarea unei singure variabile de stare (secundare). Această
condiţie restricţionează numărul s de variabile de stare necesar
pentru codificare:
2s mai mare sau egal cu L,
unde L este numărul de linii al matricei reduse.
Pentru simplificarea procedurii de ataşare se construieşte
diagrama de tranziţii. Aceasta cuprinde atâtea noduri câte linii
conţine matricea redusă, fiecare segment al diagramei
corespunzând unei tranziţii posibile între două stări ale liniilor
respective.
Se impune o codificare într-o astfel de manieră încât codul
asociat unui vârf să fie adiacent tuturor combinaţiilor de cod din
vârfurile alăturate ale poligoanelor formate.
Exemplu 1.
Să se sintetizeze automatul secvenţial cu o intrare (de tip push-
button) şi o ieşire, care să funcţioneze conform specificaţiilor
următoare:
- La orice comutare din 0 în 1 a intrării ieşirea va trece în starea
inversă stării în care se afla înaintea comutării intrării.
- La trecerea din 1 în 0 a intrării, ieşirea îşi păstreză starea.
3) Ataşarea variabilelor de stare (secundare) pentru codificarea
fiecărei linii a matricei de stări reduse
Numărul minim de variabile de stare este 2 (fiind 4 linii). Realizăm diagrama
de tranziţii. Între liniile a şi b există tranziţia din starea instabilă 2 în starea
stabilă 2 (unim nodurile a şi b). Între liniile a şi c nu există tranziţii. Între liniile
a şi d există tranziţia din starea instabilă 1 în starea stabilă 1 (unim nodurile a şi
d), ş.a.m.d.
Putem găsi o codificare într-o astfel de manieră încât codul asociat unui vârf să
fie adiacent tuturor combinaţiilor de cod din vârfurile alăturate ale poligonului
format. Am ales codificarea: a=00; b=10; c=11; d=01. Nu este singura posibilă,
există şi alte posibilităţi de codificare cu respectarea regulii adiacenţei.
4. Se construiesc matricele funcţiilor de stare (secundare) şi de
ieşire. Construcţia primei matrice se bazează pe proprietăţile
stărilor stabile şi instabile. În acest fel, valorile funcţiilor de stare
ale unei stări vor fi date prin combinaţia de cod a variabilelor de
stare care asigură codificarea liniei ce conţine starea. Codificarea
stărilor instabile se realizeză prin aceeaşi combinaţie ca cea a
stărilor stabile corespunzătoare.
Codificarea funcţiilor de ieşire depinde de restricţiile care se
impun acestor mărimi. Pentru a elimina riscul apariţiei unor
semnale false la ieşire, stărilor instabile li se ataşează acelaşi cod
ca şi stările stabile cu acelaşi număr (în care evoluează). Codul
acestora din urmă este obţinut din matricea primitivă.
Exemplu 1.
Să se sintetizeze automatul secvenţial cu o intrare (de tip push-
button) şi o ieşire, care să funcţioneze conform specificaţiilor
următoare:
- La orice comutare din 0 în 1 a intrării ieşirea va trece în starea
inversă stării în care se afla înaintea comutării intrării.
- La trecerea din 1 în 0 a intrării, ieşirea îşi păstreză starea.
4) Se construiesc matricele funcţiilor de stare (secundare) şi de
ieşire
5. Se sintetizează funcţiile de stare (secundare) şi de ieşire din
tabelele (matricele) corespunzătoare.

Practic, prin sinteza acestor funcţii, procedura de implementare a


automatului se poate considera încheiată. Totuşi, configuraţia
circutului final trebuie să ţină cont de o serie de aspecte legate de
natura procesului, perturbaţiile mediului, caracteristicile acestuia,
preţ de cost etc.
Exemplu 1.
Să se sintetizeze automatul secvenţial cu o intrare (de tip push-
button) şi o ieşire, care să funcţioneze conform specificaţiilor
următoare:
- La orice comutare din 0 în 1 a intrării ieşirea va trece în starea
inversă stării în care se afla înaintea comutării intrării.
- La trecerea din 1 în 0 a intrării, ieşirea îşi păstreză starea.
5) Se sintetizează funcţiile de stare (secundare) şi de ieşire
Exemplu 2.
Se cere proiectarea unui automat secvenţial, cu două variabile de
intrare x1, x2 şi o variabilă de ieşire Z, care să funcţioneze
conform specificaţiilor următoare:
- dacă x2 = 1, ieşirea Z ia valoarea variabilei x1,
- pentru x2 = 0, ieşirea păstrează ultima valoare pe care a avut-o
înainte ca x2 să fie zero.
Exemplu 3.
Se cere proiectarea unui automat secvenţial cu două variabile de
intrare şi două variabile de ieşire care să funcţioneze conform
următoarelor specificaţii:
- La fiecare comutare din 0 în 1 a unei varibile de intrare xi,
variabila de ieşire cu acelaşi indice Zi ia valoarea 1 (dacă era în
1 îşi păstreză valoarea) iar cealaltă comută în 0.
- O comutare din 1 în 0 a variabilei de intrare nu schimbă valorile
ieşirilor.
- La orice moment, cele două ieşiri pot avea numai valori
complementare.
- Nu se acceptă comutări simultane ale celor două variabile de
intrare.

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