Sunteți pe pagina 1din 105

AUTOMATE

PROGRAMABILE
Curs 2014: Facultatea E.T.T.I. Iai, Secia E.A.

ef lucr. dr. ing.


Hricu Alioa

PREFA

Dispozitivele de comand, numite automate, au fost realizate prin interconectarea pe


o plac de circuit imprimat a unor circuite electronice digitale, spunndu-se c aceste
dispozitive sunt realizate n logic cablat. Un dispozitiv de comand n logic cablat, ce
nglobeaz un mare efort de proiectare i realizare, este dedicat controlului unei singure
aplicaii, o alt aplicaie necesitnd sinteza i realizarea unui nou circuit de comand.
Dezvoltarea industrial a societii moderne a impus crearea de automate a cror
principal caracteristic s fie flexibilitatea, adic automatele s aib structuri identice, sau
asemntoare, i un automat s poat fi refolosit n alte comenzi.
Aceste automate sunt numite automate programabile, fiind realizate cu structuri
electronice programabile prin instruciuni, numite automate programabile SOFT, ori cu
structuri electronice n care conexiunile dintre porile logice sunt programabile, numite
automate programabile HARD.
n sinteza automatelor programabile, ce sunt automate secveniale, se folosete
teoria abstract a automatelor.
Cursul include contribuiile autorului n teoria abstract a automatelor, ce constau n:
- Noi demonstraii ale teoremelor de transformare MooreMealy i MealyMoore,
care fundamenteaz un nou algoritm matriceal de realizare simpl a acestor transformri.
- Introducerea simpl n reprezentarea matematic a unui automat.
- Reprezentarea unui automat prin matrice de tranziii, diferit de reprezentarea prin
matrice de conexiuni, noua reprezentare conducnd la o nou metod de identificare a
unui homomorfism de simulare a funcionrii unui automat pe un altul, cu aplicaie i n
descompunerea serie a unui automat.
Acest material reprezint cursul de Automate programabile predat la anul 3, Secia
de Electronic aplicat, Facultatea de Electronic, Telecomunicaii i Tehnologia
Informaiei, Universitatea Tehnic GHEORGHE ASACHI din Iai.
Acest curs prezint sintetic domeniul automatelor programabile.
ef lucr. dr. ing. Hricu Alioa

Iai,
12 octombrie 2014

Cuprins
Capitolul 1 Automate programabile cu prelucrare pe bit (APB)............................ 1-1
1.0. Introducere.. 1-1
1.1. Noiuni fundamentale............................................................................ 1-2
1.1.1
Structura i funcionarea unui sistem de calcul..................... 1-2
1.1.2
Limbaje de programare. Tipuri de limbaje. ............................. 1-6
1.1.3
Asamblorul microprocesorului pe 8 bii, Intel 8080................ 1-8
Caracteristicile unui asamblor............................................. 1-8
Pseudoinstruciuni................................................................. 1-10
1.2. Componentele unui APB 1-12
1.2.1. Procesorul MC 14500B (MMC 4500) 1-12
1.2.2. Numrtorul de program P 14104.. 1-16
1.2.3. Circuitul multiplexor P 14151... 1-20
1.2.4. Circuitul demultiplexor P 14113.. 1-21
1.3. Realizarea programelor pentru un APB.... 1-22
1.3.1. Prelucrarea logic a datelor.. 1-22
1.3.2. Validarea intrrilor i ieirilor unui APB 1-24
1.3.3. Ramificaiile ntr-un program. 1-26
1.3.4. Aplicaii complexe 1-29
1.3.5. Temporizrile ntr-un APB........ 1-35
1.4. Structuri de APB 1-40
1.4.1. Generaliti 1-40
1.4.2. Unitate logic n tehnic de acumulator... 1-40
1.5. Interfaarea automatelor cu prelucrare pe bit.. 1-43_47
Capitolul 2 Teoria automatelor ....... 2-1
2.1. Automate. 2-1
2.2. Automate conexe... 2-5
2.3. Stri interne echivalente2-6
2.4. Automate echivalente 2-9
2.5. Automate incomplet definite. 2-15
2.6. Reprezentarea automatelor..2-16
2.6.1. Organigrama funcional .. 2-16
2.6.2. Graful de fluen . 2-17
2.6.3. Tabelul de adevr .. 2-18
2.6.4. Matricea de conexiuni 2-20
2.6.5. Matricea de tranziii. .......................... 2-19
2.7. Stri compatibile 2-20
2.8. Exemplu de sintez2-21_27
Capitolul 3 Arii logice programabile ........ 3-1
3.1. Suport teoretic ... 3-1
3.2. Arhitectur intern, funcionare, utilizare .. 3-3
3.3. Exemplu ..3-7_9
Capitolul 4 Microprogramarea ......... 4-1_3
Capitolul 5 Automate programabile algoritmice (APA)......... 5-1
5.1. Introducere . 5-1
5.2. Memoriile ntr-un APA .. 5-2
5.3. APA cu memorie n format fix . 5-7
5.3.1. APA cu un cmp conexiune stare 5-7
5.3.2. APA cu dou cmpuri conexiune stare ..................... 5-8
C-1

5.4.

5.3.3. APA cu un cmp conexiune stare i incrementare


5.3.4. APA folosind combinaii de memorii
APA cu memorie n format variabil
5.4.1. APA cu separare pe grupuri de cmpuri..
5.4.2. APA cu separare complet a cmpurilor..............................

5-9
5-10
5-11
5-11
5-13_16

C-2

Capitolul 1
Automate programabile cu prelucrare pe bit (APB)
1.0. Introducere
Problemele de automatizare discontinu au fost tratate pe baza logicii cu relee
electromagnetice, folosindu-se limbajul logicii releelor. Utilizarea circuitelor cu
semiconductoare a marcat nlocuirea releelor folosind logica static asincron bazat pe
interconectarea elementelor logice ca pori logice, numrtoare, temporizatoare, registre
de deplasare, etc .
O caracteristic important a numeroase sisteme de comand, indiferent dac sunt
realizate cu relee sau cu circuite tranzistorizate, const n aceea c ele comand elemente
ca relee, bobine, electrovalve, contactoare, lmpi, etc i c semnalele de intrare ce se
prelucreaz provin de la limitatoare de curs, butoane cu revenire, detectoare diverse.
Att intrrile n sistemul de comand al unei automatizri, ct i ieirile ce controleaz
elementele de execuie din procesul tehnologic automatizat, transfer semnale binare
corespunztoare celor dou stri logice posibile notate prin 0 i 1. La ndeplinirea
funciei sale, blocul de comand realizeaz legtura ntre anumite intrri i ieiri printr-o
logic de tipul: Dac limitatorul de curs L este acionat i contactul K este nchis, atunci
motorul M va fi pornit .
ntr-o comand, prelucrrile necesare asupra informaiilor receptate, impun
interconectarea unor elemente logice pe baza unei sinteze logice. Astfel, fiecare aplicaie
necesit un bloc de comand realizat n logic cablat, prin interconectarea de circuite
integrate digitale, care nglobeaz mult manoper n proiectarea, testarea i realizarea
sa, iar modificarea aplicaiei impune realizarea unui nou bloc de comand. Rezult c o
comand n logic cablat nu are flexibilitate deoarece controleaz o aplicaie unic.
Pentru eliminarea acestui neajuns major s-au creat blocuri de comand programabile
ce pot deservi o larg categorie de aplicaii, caracterizate prin flexibilitate i numite
automate programabile. Automatele programabile au o mare capacitate de prelucrare
logic, se programeaz uor i sunt adaptate automatizrilor discontinui.
Comanda unei automatizri se poate face i cu sisteme de calcul puternice, dar
acestea sunt scumpe i necesit personal de nalt calificare.
Astfel, a aprut necesitatea unor blocuri de comand care s opereze la un moment
dat cu o singur intrare, sau o singur ieire, numite automate programabile cu prelucrare
pe bit (APB).
Avnd o arhitectur intern simplificat i un set redus de instruciuni, un APB
realizeaz prelucrri simple de date, n principal logice, fiind ns capabil s controleze
ntr-o siguran funcional ridicat un numr mare de intrri i ieiri de un bit, asociate
aplicaiei controlate.
Un APB este realizat n jurul unor magistrale la care se conecteaz intrrile i ieirile
prin circuite de interfa, unitatea central de operare (procesare), notat CPU (=Central
Processing Unit) i memoria, fapt ce sugereaz structura unui sistem de calcul, de care se
deosebete ns prin setul redus de instruciuni.
La un APB execuia programului utilizator este ciclic, fapt ce a determinat
renunarea la funcionarea n ntreruperi. Derularea ciclic rapid a unui program liniar
(fr salturi napoi), permite sesizarea evenimentelor dintr-un proces lent la puin timp
dup ce apar, fr riscul pierderii de informaie sau alterare a procesului controlat.
n acest capitol ne vom referi la automate programabile cu prelucrare pe cuvinte de
un bit, notate APB, avnd un numr de 16 instruciuni, fiecare codificat pe cte un cuvnt
i executat ntr-un ciclu de main cu durata unei perioade de tact ce ncepe cu frontul
cztor de citire a instruciunii a crei execuie va avea loc pe frontul cresctor de la
jumtatea perioadei.
1-1

1.1. Noiuni fundamentale


1.1.1 Structura i funcionarea unui sistem de calcul
Un ajutor preios n orice munc de eviden, proiectare, cercetare, automatizare
complex l constituie sistemele de calcul. Aceste sisteme s-au impus prin precizia de
calcul i viteza de operare, ducnd la creterea calitii i productivitii muncii.
Blocul principal dintr-un sistem de calcul este reprezentat de unitatea central de
operare, numit i procesor, ce poate efectua un numr limitat de operaii elementare:
aritmetice (adunare, adunare cu transport, scdere, scdere cu mprumut, incrementare,
decrementare, negare), logice (AND, OR, XOR, comparare, complementare), de transfer,
de rotire, de ramificare i de comand.
Definiie
Unitatea central de operare realizat ca un circuit integrat, se numete
microprocesor (notat P).
Microprocesorul reprezint realizarea de vrf n tehnica de calcul, realizare datorat
progreselor n tehnologia circuitelor integrate.
Fiecare operaie elementar prevzut a fi efectuat de microprocesor presupune
existena unuia sau a cel mult doi operanzi, unele operaii impunnd existena a doi
operanzi, iar prin altele acionndu-se asupra unui singur operand.
Microprocesorul este prevzut fie cu o unitate aritmetic i logic, notat ALU
(Arithmetic Logic Unit), fie cu o unitate logic, notat LU (Logic Unit), ambele avnd cte
dou intrri la care se aplic operanzii i cte o ieire prin care rezultatul dintr-o operaie
efectuat este transferat ntr-un registru numit fie registru rezultat, notat RR, fie registru
acumulator, notat A. Funcionarea ALU i LU impune ca ntr-o operaie cu doi operanzi
primul operand s se afle deja n registrul A, de unde va fi aplicat pe o intrare.
Pentru ca microprocesorul ce controleaz un sistem de calcul s efectueze o
operaie elementar ce i s-a prevzut, trebuie s i se comunice att operaia de efectuat,
ct i unul din operanzii implicai, sau locul din sistem de unde acesta va fi transferat la o
intrare ALU.
Definiie
Ansamblul informaiilor necesare unui microprocesor pentru a efectua o operaie
elementar ce i s-a prevzut (implementat), se numete instruciune.
O instruciune, reprezentnd un ordin dat microprocesorului, mai este numit i
instruciune de comand.
Din considerente de imunitate la perturbaii, sistemele de calcul, numite i sisteme cu
procesarea informaiei, ori sisteme cu microprocesor, opereaz n baza doi de numeraie,
pe cuvinte binare formate dintr-un acelai numr de caractere binare numite bii, numr ce
reprezint o caracteristic a sistemului, fiind sisteme ce opereaz pe cuvinte din 1, 2, 4, 8,
16, 32 sau 64 de bii.
Rezult c o instruciune va avea o simbolizare binar care ncepe cu un numr de
bii, numit cmp instruciune, prin care se codific operaia din instruciune, urmat de un
numr de bii, numit cmp de adres, sau cmp operand, prin care se codific mrimea
unui operand sau adresa locaiei sistemului de unde va fi preluat operandul.
Numrul de bii pe care-i codificat o instruciune este mprit pe cuvinte binare
avnd acelai numr de bii, cmpul instruciune fiind coninut ntotdeauna n primul cuvnt
al instruciunii numit cuvnt instruciune, n timp ce cmpul de adres este distribuit n
toate cuvintele instruciunii. Numrul de cuvinte din codificarea unei instruciuni difer de la
o instruciune la alta.
Cuvintele binare ale unei instruciuni de executat trebuie depuse n locaii din sistem
special destinate pstrrii cuvintelor binare, fiecare locaie fiind identificat de
1-2

microprocesor prin numrul su de ordine numit adres, n vederea efecturii unei operaii
de scriere, sau de citire. O astfel de locaie este format din celule, n fiecare celul a
locaiei memorndu-se doar un bit din cuvntul nscris n locaie. Ca urmare, locaiile unui
sistem cu microprocesor sunt formate dintr-un numr de celule egal cu numrul de bii ai
cuvintelor pe care opereaz sistemul.
Locaiile sunt distribuite n toate circuitele sistemului a cror funcionare presupune
transferuri de cuvinte binare, iar circuitele a cror singur funcie este de a pstra cuvinte
binare sunt numite circuite de memorie, ce se caracterizeaz prin capacitatea de
memorare exprimat prin numrul de locaii, sau numrul de bii coninui. Totalitatea
circuitelor de memorie dintr-un sistem de calcul formeaz memoria sistemului, a crei
capacitate de memorare, n locaii, sau n bii, este dat de suma capacitilor circuitelor
de memorie coninute.
Transferul de cuvinte binare ntre locaiile sistemului i registrele microprocesorului,
se realizeaz n ambele sensuri, printr-un grup de trasee numit MAGISTRAL DE DATE
(=DATA BUS), transferul fiind de tip paralel, n sensul c toi biii unui cuvnt sunt
transferai simultan, fiecare bit fiind transferat pe cte un traseu distinct.
Pentru transferul unui cuvnt binar cu o locaie a sistemului, procesorul trebuie s
identifice locaia prin numrul su de adres, transferul datei realizndu-se efectiv pe
durata identificrii, cnd locaia este conectat la magistrala de date. Rezult c simultan
cu datele trebuie transferate i numerele de adres, transferul numerelor de adres
fcndu-se tot n mod paralel, dar pe alt grup de trasee, numit MAGISTRAL DE
ADRESE (=ADDRESS BUS), ce este o magistral unidirecional n sensul c numerele
de adres sunt transferate numai de la microprocesor ctre circuitele sistemului, deoarece
doar microprocesorul, ca unic element de control al sistemului, poate genera numere de
adres. n vederea generrii i transferrii de numere de adres, microprocesorul dispune
de un numr de locaii doar pentru numere de adres, numite registre de adrese.
n sistemul pe care-l controleaz, microprocesorul apeleaz la circuitele sistemului
numai pentru a efectua cu locaiile de care acestea dispun transferuri de cuvinte, o adres
de locaie transferat pe magistrala de adrese realiznd, att identificarea circuitului
locaiei, numit selecie, ct i identificarea locaiei n circuitul selectat, numit adresare.
Transferul unui cuvnt fcndu-se ntre microprocesor, caracterizat printr-o vitez
mare de operare, i un circuit al sistemului, ce este mai lent ca microprocesorul, sunt
necesare semnale logice de comand i control ce s asigure sincronizarea circuitelor pe
durata transferului, aceste semnale fiind transferate n paralel pe alt grup de trasee numit
MAGISTRAL DE COMAND I CONTROL, ori simplu MAGISTRAL DE CONTROL
(=CONTROL BUS).
Definiie
Un transfer de date, sincronizat cu semnale de comand i control, se numete
transfer handshaking (handshake=strngere de mn).
Fiecare circuit a crui funcionare presupune transferuri handshaking dispune de o
logic de comand i control ce se conecteaz la magistrala de comand i control a
sistemului creat de blocul de comand i control din microprocesor.
Rezult c orice circuit al sistemului, a crui funcionare presupune transfer de date,
se conecteaz la toate cele trei magistrale, create de microprocesor pentru a controla
sistemul: magistrala de date, magistrala de adrese i magistrala de comand i control.
Transferul de date cu exteriorul sistemului de calcul se face prin echipamente
specializate numite ECHIPAMENTE PERIFERICE (=PERIPHERALS) care se conecteaz
la sistem prin intermediul unor circuite prevzute sistemului, numite CIRCUITE DE
INTERFA INTRARE / IEIRE (=INPUT/OUTPUT INTERFACE).
Arhitectura unui sistem de calcul este prezentat n fig.1-1.1.
Rezolvarea unei probleme complexe pe un sistem de calcul, presupune
1-3

descompunerea problemei ntr-o succesiune strict de operaii elementare ce pot fi


comandate microprocesorului din sistemul de calcul prin instruciuni, descompunere
realizat pe baza unei metode de rezolvare numit algoritm i a crei form grafic se
numete organigram.
Definiie
Succesiunea strict de instruciuni de comand a unui microprocesor, prin a cror
efectuare se rezolv o problem complex, se numete program.

MICROPROCESSOR
(CENTRAL UNIT)

DATA BUS
ADDRESS BUS
CONTROL BUS

OTHER CIRCUITS

MEMORY

INTERFACE
INPUT / OUTPUT

...

INTERFACE
INPUT / OUTPUT

COMPUTING SYSTEM
PERIPHERAL
1

PERIPHERAL
k

Fig.1-1.1 Arhitectura unui sistem de calcul (=sistem cu microprocesor)


Un program va fi descris prin cuvintele binare ale instruciunilor din componena sa,
dispuse n ordinea n care instruciunile apar n desfurarea programului i n descrierea
fiecrei instruciuni. Executarea unui program impune depunerea cuvintelor din
componena programului n locaii succesive de memorie, ocupate n ordinea cresctoare
a numerelor de adres, i depunerea adresei de nceput a programului n registrul
microprocesorului numit registru numrtor de adrese sau registru numrtor de program,
i notat PC (=Program Counter).
Rezolvarea unui program se face instruciune cu instruciune, cuvintele unei
instruciuni de executat fiind transferate succesiv n microprocesor prin numerele de
adres a locaiilor de memorie n care se afl, ntr-o prim etap, numit faz pregtitoare,
dup care, efectuarea operaiei din instruciune n blocul ALU al microprocesorului i a
transferurilor de cuvinte asociate operaiei, au loc ntr-o a doua etap, numit faz de
execuie.
Faza pregtitoare dintr-o instruciune de executat, ncepe cu transferul cuvntului
instruciune, din locaia sistemului cu adresa din registrul numrtor de adrese PC al
microprocesorului, n registrul de instruciuni, notat IR (=Instruction Register), al blocului de
comand i control din microprocesor, de unde cuvntului instruciune se decodific cu un
decodor (=Decoder).
ntr-un microprocesor simplu, destinat unui automat programabil cu prelucrare pe
cuvinte de un bit, prin decodificarea unui cuvnt instruciune, se obin direct semnalele ce
comand execuia instruciunii ntr-o singur perioad a tactului sistemului, spunndu-se
c un astfel de microprocesor are un singur nivel de programare, reprezentat prin forma
simbolic binar a instruciunilor de executat citite din memoria sistemului.
ntr-un microprocesor complex, instruciunile se execut secvenial ca o succesiune
1-4

de microoperaii, fiecare microoperaie fiind executat ntr-o perioad de tact, sub


comanda unor semnale logice generate ca bii distinci ai cuvntului binar citit dintr-o
locaie a memoriei de comand din microprocesor. Cuvntul binar de comand a unei
microoperaii, pe care o codific n forma simbolic binar, se numete microinstruciune,
iar o succesiune de microinstruciuni, prin care se execut o instruciune a
microprocesorului, se numete microprogram. Tehnica de programare a execuiei unei
instruciuni prin microinstruciuni se numete microprogramare. Se spune c un
microprocesor complex are dou nivele de programare: primul nivel reprezentat prin
codificarea binar a instruciunilor din memoria sistemului i al doilea nivel reprezentat prin
codificarea binar a microinstruciunilor din memoria de comand a microprocesorului,
numit i memorie de microprograme.
La decodarea unei instruciuni a unui microprocesor cu dou nivele de programare,
se obine adresa microprogramului prin a crui citire se genereaz semnalele de comand
a executrii instruciunii.
Definiie
Intervalul de timp necesar transferului unui cuvnt se numete ciclu de main, iar
ciclul de main n care se transfer un cuvnt instruciune se numete ciclu fetch.
ADDRESS BUS

Address

Address

RAM MEMORY
& TIMERS

PROGRAM
MEMORY

Data

Data

I0

O0 ...

On

Ik

INPUT

...

OUTPUT

DATA BUS
Data
Registers

PC
(Program Counter)
Incrementer Register
(PCPC+1)

IR (=Instruction
Register)

DECODER

Address Registers

Observaie
CONTROL MEMORY lipsete
dintr-o unitate centrala cu un singur
nivel de programare.

Internal
Control

CONTROL BLOCK

Address Buffer

Address
CONTROL MEMORY
(microprograms)
Data

CONTROL LOGIC

LOGIC
UNIT

A
(=RR)

CENTRAL UNIT
Control
Command
CONTROL BUS

Fig.2-1.1 Arhitectura unui sistem cu unitate central microprogramat


Efectuarea unei instruciuni are loc n attea cicluri de main, cte transferuri de
cuvinte sunt necesare n instruciune, deoarece operaia din instruciune are loc la sfritul
ciclului de main al ultimului transfer i nu ntr-un ciclu de main distinct. Astfel, o
instruciune ncepe cu un ciclu fetch i continu cu attea cicluri de main cte transferuri
de cuvinte sunt necesare n efectuarea instruciunii.
1-5

Pentru efectuarea unui program la viteza mare de operare a microprocesorului, n


fiecare ciclu de main se transfer adresa cuvntului de citit, din registrul PC n registrul
tampon de adrese (=Address Buffer) conectat la magistrala de adrese, iar registrul PC,
eliberat de meninerea pe durata transferului a adresei pe magistrala de adrese, este
incrementat cu 1 prin registrul de incrementare (=Incrementer Register), pentru a genera
adresa locaiei urmtorului cuvnt de citit din program n urmtorul ciclu de main.
Arhitectura intern a unui microprocesor microprogramat ce controleaz un sistem de
calcul este ilustrat n fig.2-1.1.

1.1.2. Limbaje de programare. Tipuri de limbaje


Pentru efectuarea unui program ntr-un sistem de calcul, instruciunile i datele din
componena programului vor trebui codificate (reprezentate) prin cuvinte binare, adic n
forma simbolic binar .
Dificultatea de programare direct n forma simbolic binar, singura form simbolic
acceptat ntr-un sistem de calcul, a condus spre alte forme simbolice de reprezentare a
datelor i instruciunilor, forme simbolice mai accesibile unui programator.
Definiii
1. Ansamblul instruciunilor de comand a unei uniti centrale de operare,
reprezentate ntr-o form simbolic, se numete limbaj de programare.
2. Ansamblul instruciunilor de comand a unei uniti centrale de operare,
reprezentate n form simbolic binar, se numeste limbaj main.
3. Un program realizat n limbaj main se numete program obiect.
4. Un program realizat cu un limbaj de programare ntr-o form simbolic diferit de
forma simbolic binar a limbajului main, se numete program surs.
Efectuarea ntr-un sistem de calcul a unui program obiect necesit depunerea
cuvintelor binare din componena programului n locaiile memoriei sistemului.
O cretere a eficienei programrii s-a obinut prin nlocuirea formei simbolice binare
a limbajului main, cu forma simbolic octal sau forma simbolic hexazecimal, astfel
reducndu-se numrul de caractere dintr-un cuvnt. Efectuarea ntr-un sistem de calcul a
unui program surs realizat n forma simbolic octal sau hexazecimal, impune conversia
sa ntr-un program obiect ale crui cuvinte binare s se depun n memoria sistemului n
care se opereaz, sarcini ce se realizeaz automat cu un program special rezident n
memoria sistemului i numit n cazul conversiei din forma simbolic octal ncrctor octal,
iar n cazul conversiei din forma simbolic hexazecimal ncrctor hexazecimal.
Dificultatea programrii cu limbaje de programare n formele simbolice binar,
octal i hexazecimal a condus la un nou limbaj de programare, ntr-o nou form
simbolic, numit form simbolic de asamblare, n care fiecare instruciune de comand
a unitii centrale de operare primete o notaie ce sugereaz operaia pe care o
efectueaz i indic registrele unitii centrale sau locaiile din sistem implicate n
efectuarea instruciunii.
Definiie
Totalitatea instruciunilor de comand a unei uniti centrale de operare, exprimate n
forma simbolic de asamblare se numete limbaj de asamblare.
Pentru a efectua ntr-un sistem de calcul un program surs n limbaj de ansamblare,
acest program trebuie convertit ntr-un program obiect ale crui cuvinte binare s fie
depuse n locaiile sistemului, sarcini ce se realizeaz automat cu un program special
rezident n memoria sistemului i numit program de asamblare, ori simplu asamblor.
Instruciunile limbajelor de programare ce corespund formelor simbolice binar,
octal, hexazecimal i de ansamblare, fiind doar reprezentri simbolice ale instruciunilor
de comand ale unitii centrale de operare, vor specifica i registrele folosite din
1-6

unitatea central de operare, ceea ce impune ca la utilizarea unor asemenea limbaje


programatorul s gestioneze registrele unitii centrale de operare ale crei arhitectur
intern i funcionare trebuie s le cunoasc.
Fiecare tip de unitate central de operare dispune de limbaje proprii de programare
n formele simbolice binar, octal, hexazecimal i de ansamblare i ca urmare un
program realizat ntr-un asemenea limbaj al unui tip de unitate central de operare, nu
poate fi efectuat ntr-un sistem de calcul coninnd alt tip de unitate central de operare,
spunndu-se c limbajele de programare n formele simbolice binar, octal,
hexazecimal i de asamblare nu au portabilitate.
Necesitea unor limbaje de programare ce s aib portabilitate i s fie mai
accesibile unui utilizator, a condus la crearea de noi limbaje de programare formate din
instruciuni complexe, diferite de cele de comand ale unitii centrale de operare i de
independente de arhitectura intern i funcionarea unitii centrale de operare, numite
limbaje de progamare de nalt nivel. Astfel de limbaje de programare sunt : BASIC,
FORTRAN, COBOL, C++, etc.
Pentru efectuarea ntr-un sistem de calcul a unui program surs realizat ntr-un
limbaj de programare de nalt nivel, se impune, att conversia programului surs ntr-un
program obiect format din instrunciuni de comand ale unitii centrale de operare din
sistemul de calcul n care se opereaz, ct i depunerea cuvintelor binare ale programului
obiect n memoria sistemului. Aceste sarcini, de conversie i depozitare, sunt efectuate
automat cu un program rezident n memoria sistemului numit compilator i despre care se
spune c realizeaz o compilare.
Realizarea conversiei instruciunilor unui limbaj de programare de nalt nivel,
caracterizat prin portabilitate, n instruciuni de comand ale unitii centrale de operare
din sistemul de calcul folosit, impune compilatorului s preia gestionarea registrelor interne
ale unitii centrale de operare, programul compilator fiind astfel dependent de tipul unitii
centrale de operare folosite.
O instruciune a unui limbaj de programare de nalt nivel fiind mai complex dect o
instruciune de comand a unitii centrale de operare, va fi convertit de compilator n mai
multe instruciuni de comand a unitii centrale de operare, dintre care unele nu au nici
un efect n sarcina de efectuat. De aceea, programul obiect obinut prin compilarea unui
progam surs realizat cu un limbaj de programare de nalt nivel va fi mai mare dect n
cazul realizrii programului cu un limbaj de programare format din instruciuni de comand
a unitii centrale de operare, cum sunt limbajele de programare n formele simbolice
binar, octal, hexazecimal i de asamblare. Din aceast cauz , ntr-un sistem de calcul
timpul de efectuare a unei sarcini programat ntr-un limbaj de programare de nalt nivel
va fi mai mare dect n cazul programrii sarcinii direct ntr-un limbaj de programare ntruna din formele simbolice binar, octal, hexazecimal, sau de asamblare, adic ntr-un
limbaj de programare la nivelul unitii centrale de operare.
Indiferent de limbajul de programare folosit, conversia unui program surs n
program obiect se realizeaz cu un progam special de conversie corespunztor limbajului
de programare folosit i care va ocupa o parte a memoriei sistemului, fapt ce reduce
capacitatea de memorie aflat la dispoziia programatorului.
n afara conversiei propriuzise, programelor de conversie li se pot implementa i
efectuarea altor sarcini, ceea ce duce la creterea mrimii i complexitii acestor
programe. Dintre programele de conversie amintite, un asamblor poate necesita, dup
complexitatea sa, o zon de memorie de 2 ... 16 kilolocaii, n timp ce un compilator
necesit peste 32 kilolocaii.
Din considerentele prezentate mai sus, se recomand ca pogramarea n limbaj de
asamblare s fie utilizat n sisteme de calcul de capacitate redus, pentru comenzi n
timp real ce necesit rezolvri rapide, n aplicaii de serie mare (pentru economie de
circuite de memorie) i n aplicaiile necesitnd multe operaii de transfer i puine calcule,
1-7

n timp ce programarea n limbaje de nalt nivel se recomand n sistemele de mare


capacitate, n aplicaiile cu multe calcule, n aplicaiile de serie mic unde preul de cost nu
conteaz i cnd se dispune deja de programe performante de nalt nivel.
Se tinde spre generalizarea limbajelor de nalt nivel prin creterea capacitii
circuitelor de memorie i a vitezei de operare a unitilor centrale de operare integrate
numite microprocesoare i prin apariia de limbaje de pogramare de nalt nivel
performante.

1.1.3. Asamblorul microprocesorului pe 8 bii, Intel 8080


Caracteristicile unui asamblor

Un asamblor impune ca instruciunile dintr-un limbaj de asamblare s fie divizate n


urmtoarele zone, numite cmpuri: cmpul etichet, cmpul mnemonic, cmpul operand
(numit i cmp adres) i cmpul comentariu. Delimitarea cmpurilor dintr-o instruciune n
limbaj de asamblare se realizeaz cu urmtoarele semne separatoare:
- : (= dou puncte) = separ cmpurile etichet i mnemonic;
- (= spaiu alb, sau spaiu blanc) = separ cmpurile mnemonic i operand;
- , (= virgul) = separ doi operanzi din cmpul operand;
- ; (= punct i virgul) = separ cmpurile operand i comentariu.
Cmpul etichet este primul cmp dintr-o instruciune n limbaj de asamblare,
completarea acestiu cmp nefiind ns obligatorie. Acest cmp poate conine o notaie
simbolic, numit etichet, creia asamblorul i atribuie ca valoare adresa locaiei de
memorie n care se afl primul cuvnt al instruciunii numit cuvnt instruciune.
Deoarece, notaiile etichetelor contribuie la documentarea unui program, a crui
rapid urmrire i nelegere o uureaz, se recomand folosirea de notaii sugestive
pentru etichete. Astfel, prima instruciune dintr-un grup de instruciuni ce realizeaz o
temporizare, va primi eticheta TIME .
Pentru stabilirea notaiilor etichetelor se recomand:
s nu se utilizeze ca etichete notaiile simbolice de instruciuni, deoarece aceste
notaii fie creaz confuzie, fie nu sunt luate n consideratie de asamblor;
s nu se utilizeze pentru etichete notaii cu un numr de caractere mai mare dect
cel admis, deoarece asamblorul va elimina, de la nceputul etichetei, caracterele
suplimentare, existnd posibilitatea ca noua etichet rezultat prin eliminare de caractere,
fie s coincid cu o alta, genernd eroare, fie s nceap cu un caracter nterzis de
asamblor;
s se evite utilizarea n notaiile etichetelor a caracterelor speciale numerice i
alfanumerice ori a literelor mici, recomandndu-se doar folosirea majusculelor i a cifrelor;
notaia fiecrei etichete s nceap cu o liter mare, dar diferit de I, O, Z.
Folosirea de etichete la realizarea unui program n limbaj de asamblare ofer
urmtoarele avantaje:
o etichet atribuit unei instruciuni permite eeperarea uoar a instruciunii n
cadrul programului;
dac se atribuie alt valoare unei etichete, asamblorul va efectua automat
modificarea n toate instruciunile din program, ce conin acea etichet;
asamblorul poate translata un ntreg program ntr-o alt zon a memoriei, doar prin
adugarea unei constante la fiecare etichet din program;
etichetarea sugestiv a primei instruciuni dintr-un program, etichet reprezentnd
titlul programului, permite o bun arhivare a programului ntr-o blibiotec de programe;
folosirea etichetelor uureaz munca de programare, prin faptul c nu mai trebuie
calculate adresele locaiilor de memorie n care se depun cuvintele programului.
Cmpul mnemonic al unei instruciuni n limbaj de asamblare, indic operaia din
nstruciune printr-un grup de litere provenit din denumirea operaiei n limba englez.
Cmpul comentariu este admis de toate asambloarele, comentariile neavnd nici un
1-8

efect n obinearea programului obiect. Rolul comentariilor este doar de a permite uoara
nelegere a programelor.
Pentru realizarea de comentarii eficiente se recomand:
comentariile s fie scurte, precise i fr abrevieri;
n comentariu se va arta funcia ndeplinit n aplicaie i nu modul cum unitatea
central de operare execut instruciunile;
se vor comenta punctele cheie ale programului i instruciunile a cror semnificaie
nu este evident;
comentariile se fac pe instruciuni i pe secvene de instruciuni;
se vor comenta detaliile semnificative.
Cmpul operand, numit i cmp adres, este cmpul al crui coninut este lsat la
dispoziia programatorului, asamblorul impunnd n acest cmp urmtoarele:
a) Registrele interne ale unitii centrale s fie indicate printr-o notaie impus;
b) Un numr ce reprezint un operand, sau o adres, poate fi indicat ntr-o
instruciune n limbaj de asamblare n sistemele binar, octal, hexazecimal, indicate prin
literele B, Q i respectiv H adugate la sfritul numrului, n timp ce un numr neurmat de
o liter este interpretat de asamblor ca exprimat n baza zece. Deoarece asamblorul
impune ca un numr s nceap obligatoriu cu o cifr, forma hexazecimal de exprimare a
unui numr, al crui prim caracter este o liter, va fi obligatoriu precedat de cifra 0 (zero).
Exemplu
ORA 00000011B ; A A+00000011B : ORA=or with A (=registru acumu; lator), 00000011B=operand indicat n baza 2, pe 8 bii
MOV A,47H
; A 4716(=n baza 16)=01000111B : MOV=to move
MOV A,0F0H
; A F016=11110000B
MOV A,147Q
; A 1478(=n baza 8)=01100111B
STA 1087
; (108710) A : STA= store A, (108710)= coninutul lo; caiei cu adresa indicat ntre paranteze, n baza 10
c) Un operand sau o adres pot fi expimate prin coduri ASCII (= American Standard
Code for Interchange Information) ale unor caractere, fapt recunoscut de asamblor prin
ncadrarea grupului de caractere ASCII ntre apostrofuri.
Exemplu
MOV H,K
; H (=registru de date din P)cod ASCII al literei K
d) Un operand sau o adres pot fi indicate printr-o notaie simbolic, asamblorul
impunnd ca notaia folosit s fie definit anterior instruciunii unde-i folosit, printr-o
pseudoinstruciune specific, cum ar fi cea de egalitate, cu mnemonicul EQU (=Equal).
Exemplu
NAME : EQU 5
; Se definete NAME = 510 = 00000101B
.
MOV D,NAME
; D(=registru de date din P)NAME = 510 =00000101B
e) Un operand poate fi indicat prin adresa locaiei unde se afl pus ntre paranteze,
adres indicat prin relaia de adunare ntre un numr exprimat ntr-o form acceptat de
asamblor, numit deplasament, i coninutul, simbolizat prin $, al numrtorului de locaii al
asamblorului, numrtor ce are o funcionare similar cu a registrului numrator de adrese
PC (=Program Counter) al unitii centrale de operare.
Exemplu
MOV ($+0E1H), A ; cuvntul din registrul A e ncrcat n locaia a crei
; adres este rezultatul expresiei: $+E116
f) Un operand poate fi indicat prin punerea ntre paranteze a adresei locaiei unde se
afl, adres indicat printr-o expresie complex ntre mrimi exprimate ntr-o form
acceptat de asamblor. ntr-o astfel de expresie, asamblorul va efectua nti operaiile
dintre paranteze, restul operaiilor fiind efectuate ntr-o ordine de prioritate impus de
asamblor, operaiile cu aceeai prioritate fiind efectuate n ordinea n care apar de la
1-9

stnga spre dreapta expresiei.


ntr-un limbaj de asamblare, un numr de adres ntre paranteze semnific coninutul
locaiei de memorie cu aceast adres.

Pseudoinstruciuni

Un limbaj de asamblare al unei uniti centrale de operare este format din


instruciunile de comand a unitii centrale i dintr-un grup special de instruciuni, numite
pseudoinstruciuni, prin care se comanda asamblorului, i nu unitii centrale de operare,
efectuarea unor operatii absolut necesare n obinerea programului obiect corect. O
pseudoinstruciune nu are o codificare binar proprie i, spre deosebire de o instruciune
de comand a unitii centrale de operare, nu este convertit n cuvinte binare.
Limbajul de asamblare al microprocesorului Intel 8080, ce opereaz pe cuvinte
binare din opt bii, conine urmtoarele pseudoinstruciuni:
a) Pseudoinstruciunea cu simbolizarea:
ETICHET: ORG adres; comentariu ,
comand asamblorului s atribuie notaiei din cmpul etichet, ca valoare, numrul de
adres indicat n cmpul operand ntr-o form acceptat de asamblor, i s iniializeze
numrtorul de locaii al asamblorului cu numrul de adres din cmpul operand, ce
reprezint chiar adresa primei locaii a zonei de memorie n care se va depune programul
ce urmeaz, operaie numit de iniializare, i indicat cu mnemonica ORG dup
denumirea ORIGIN dat acestei operaii n limba englez.
Un asamblor formeaz n locaii din memoria RAM, un numrtor de locaii, cu
funcionare similar cu a registrului numrator de adrese PC (=Program Counter) al
microprocesorului, n care, printr-o incrementare cu 1, se genereaz adresa urmtoarei
locaii unde se va depune cuvntul ce urmeaz n desfurarea programului obiect.
ntr-un program n limbaj de asamblare, acolo unde se impune trecerea la o nou
zon de memorie a crei prima adres este diferit de cea coninut n numrtorul de
locaii al asamblorului, se va introduce o nou pseudoinstruciune cu mnemonica ORG.
b) Pseudoinsrtuciunea cu simbolizarea:
ETCHET: EQU operand; comentariu ,
comand asamblorului s atribuie notaiei din cmpul etichet valoarea indicat n cmpul
operand ntr-o form acceptat de asamblor, operaie numit de echivalen (sau de
egaliate) i indicat cu mnemonica EQU stabilit dup denumirea Equate (sau Equal),
dat acestei operaii n limba englez.
ntr-un program, unei etichete i se poate atribui o valoare printr-o pseudoistruciune
de echivalent, doar o singur dat, orice redefinire ulterioar a notaiei etichetei nefiind
luat n consideraie de asamblor.
c) Pseudoinstruciunea cu simbolizarea:
ETICHET: SET operand; comentarii ,
comand asmblorului s atribuie notaiei din cmpul etichet valoarea indicat n cmpul
operand ntr-o form acceptat de asamblor, operaie numit de setare i avnd
mnemonica SET ce reprezint denumirea dat acestei operaii n limba englez.
Pseudoinstruciunea de setare acioneaz ca i cea de echivalen, de care se
deosebete ns prin aceea c ntr-un program o aceeai etichet poate fi redefinit ori de
cte ori este nevoie.
d) Pseudoinstruciunea cu simbolizarea:
ETICHET: DS operand; comentarii ,
comand asamblorului ca, ncepnd cu adresa aflat n numrtorul de locaii al
asamblorului, s rezerve attea locaii succesive de memorie, cte specific numrul
indicat n cmpul operand ntr-o form acceptat de asamblor, i s atribuie notaiei din
cmpul etichet,ca valoare, adresa primei locaii rezervate, operaie numit difinire stocare
i avnd mnemonica DS stabilit dup denumirea Define Storage dat acestei operaii n
1-10

limba englez.
n locaiile rezervate cu aceast pseudoinstruciune, se vor depune ulterior date.
e) Pseudoinstruciunea cu simbolizarea:
ETICHET: DB operand; comentarii ,
comand asamblorului s depun cei maxim 8 octei indicai n cmpul operand ntr-o
form acceptat de asamblor, i n ordinea n care apar de la stnga spre dreapta
cmpului operand, n locaii succesive de memorie, ncepnd cu adresa aflat n
numrtorul de locaii al asamblorului, i s atribuie notaiei din cmpul etichet, ca
valoare, adresa de depozitare a primului octet, operaie numit definire octet i avnd
mnemonica DB stabilit dup denumirea Define Byte dat operaiei n limba englez.
f) Pseudoinstruciunea cu simbolizarea:
ETICHET: DW OPERAND; comentarii ,
comand asamblorului s depun cele maxim 8 cuvinte din cmpul operand, fiecare
cuvnt format din cte doi octei, indicai ntr-o form acceptat de asamblor, ncepnd cu
octetul de pondere minim, n locaii succesive de memorie, pornind de la adresa aflat n
numrtorul de locaii al asamblorului i n ordinea n care octeii apar de la stnga spre
dreapta cmpului operand, i s atribuie notaiei din cmpul etichet, ca valoare, adresa
de depozitare a primului octet, operaie numit definire cuvnt i avnd mnemonica DW,
dup denumirea Define Word dat acestei operaii n limba englez.
g) Pseudoinstruciunea cu simbolizarea:
ETICHET: END operand; comentarii ,
semnaleaz sfritul programului surs n limbaj de asamblare i comand asamblorului
s atribuie notaia din cmpul etichet, ca valoare, adresa indicat n cmpul operand ntro form acceptat de asamblor i s ncarce aceast adres n registrul numarator de
adrese PC al microprocesorului, astfel trecndu-se la executarea programului pornind de
la aceast adres. Necompletarea cmpului operand semnific faptul c adresa de
nceput a programului este zero.
Exemplu
ETICHET: SIMBOLIZARE;
COMENTARII
(Mnemonic+Operand)
CANRAS: ORG 1000H ;
CANRAS=1000H (= adresa primului cuvnt
din program): CANRAS=titlul programului.
CONST: EQU 0F0H;
CONST=F0H= valoare ce nu poate fi redefinit
NAME: SET B;
NAME=Cod ASCII al literei B=valoare ce
poate fi redefinit
(1000H) 10H i CANRAS=1000H
DB 10H ;
(1001H) 00H ; (1002H)10H
DW 0010H ;
CLOCK: DS 1 ;
rezervare locaie cu adresa 1003H=CLOCK
AC ; (1004H) MOV A,C
MOV A,C ;
apel la adresa 5100H; (1005H)CALL;
CALL 0051H ;
(1006H)51H; (1007H)00H
BLOCK: ORG 5100H ;
programul se continu la adresa 5100H=
=BLOCK ce se transfer n numrtorul de
locaii al asamblorului
AA+NAME = A+B
ADI NAME ;
(5100H)ADI ; (5101H)NAME=B
.
PC1004H ; programul surs se ncheie cu
END 1004H ;
declanarea execuiei programului de la
instruciunea MOV A,C aflat n memorie, la
adresa 1004H.
1-11

Observaii
(1) Cnd n cmpul operand al unei pseudoinstruciuni, sau instruciuni, se folosete
o notaie, aceast notaie trebuie definit anterior n program cu o pseudoinstruciune
specific.
(2) ntr-o instruciune, o adres neetichetat va fi indicat printr-o expresie de
adunare ori scdere a unei constante dintr-o etichet din program, astfel reducnd
numrul de etichete folosite ce pot fi astfel sugestive.
(3) Un program n limbaj de asamblare este cuprins ntre pseudoinstruciunile
ORIGIN i END.
(4) Orice limbaj de asamblare conine pseudoinstruciunile prezentate, eventual cu
alte mnemonice.

1.2. Componentele unui APB


1.2.1. Procesorul MC 14500B (MMC 4500)
Arhitectura intern a acestui procesor este dat n fig.1-1.2, iar repartizarea funciilor
pe terminale n fig.2-1.2.
Microprocesorul MC 14500B are ncorporat un oscilator (=OSC) care genereaz la
terminalul X1 semnalul CLOCK, cu factor de umplere 1/2 i a crui frecvena se stabilete
cu un grup R, C extern conectat ca n fig.1-1.2.
O instruciune este efectuat ntr-un interval de timp (=ciclu de main) cu durata
unei perioade a tactului CLOCK ce piloteaz sistemul, fiind preluat n registrul de
instruciuni, notat IR (=Instruction Register), pe frontul cztor de la nceputul perioadei de
tact i executat pe frontul cresctor de la mijlocul perioadei de tact.

WRITE

DATA

DATA BUS

OEN
D

EO

CLK

IEN
EI

CLK

STO

STOC

CLOCK

LOGIC
UNIT
MUX

X1
D

X2

OSC

CLK Q

RR

CONTROL

DECODER

+5V

IR (=Instruction
Register)

Vcc

I3

I1

RR

STO
STOC

I2

I0

JMP RTN FL0 FLF

RESET

0V

RST

GND

Fig.1-1.2 Arhitectura intern MC 14500B (=MMC 4500)


Pe frontul cztor de la nceputul perioadei de tact, codul binar din patru bii al
1-12

instruciunii de executat, aplicat circuitului la terminalele I3 , I2 , I1 , I0 , conectate la


magistrala de adrese a sistemului, este memorat n registrul de instruciuni (=IR) i
decodificat cu circuitul decodor (=DECODER). Pe frontul cresctor de la jumtatea
perioadei tactului CLOCK, sub comanda semnalelor generate la ieirile circuitului decodor,
se efectueaz instruciunea de executat n unitatea logic (=LOGIC UNIT), rezultatul de un
bit fiind memorat n registrul rezultat (=RR), numit i registru acumulator (=A).
RST - 1

16 -

Vcc

15 - RR

DATA - 3

14 -

X1

13 -

X2

I3 - 4
I2 - 5
I1 - 6
I0 - 7
GND - 8

MC 14500B

WRITE - 2

12 - JMP
11 - RTN
10 - FL0
9 - FLF

Fig.2-1.2 Circuitul MC 14500B, funcii la terminale (Top View)


La scrierea unei locaii a sistemului, efectuat cu o instruciune de ieire de date,
starea RR sau RR a rezultatului din registrul rezultat este transferat pe linia DATA, ce
formeaz pentru sistem magistrala de date (=DATA BUS). Acum linia DATA funcioneaz
ca ieire i este activat pe o perioad a tactului CLOCK, iar semnalul WRITE, de
comand a scrierii, trece n starea 1 n prima semiperioad de tact, n care CLOCK=0.
n funcie de instruciunea efectuat, blocul de control (=CONTROL) activeaz
semnalele de comand FLF, FL0, RTN i JMP ce rmn active (n starea 1) pe ntreaga
perioad a tactului.
Registrele IEN (=Input Enable) i OEN (=Output Enable) condiioneaz accesul
datelor de intrare i respectiv de ieire pe linia bidirecional DATA, ncrcarea acestor
registre fcndu-se prin instruciunile cu mnemonicele IEN i respectiv OEN.
Atunci cnd ambele registre, IEN i OEN, sunt n starea 1, datele de intrare i de
ieire circul neafectate conform instruciunilor efectuate. Starea 0 a registrului IEN
determin n permanen starea 0 ca dat citit, indiferent de nivelul logic al intrrii ce
apare pe linia DATA, iar cnd registrul OEN are starea 0, procesorul nu execut nici o
operaie de scriere, linia DATA rmnnd n starea de nalt impedan, notat Z, iar
ieirea WRITE fiind n starea 0.
ncrcarea registrului IEN este comandat cu semnalul EI (=Enable Input) generat la
efectuarea instruciunii de transfer
IEN Im
descris sintetic prin
IEN( Im )= starea logic de la intrarea cu adresa Im ,
iar ncrcarea registrului OEN este comandat cu semnalul EO (=Enable Output) generat
la efectruarea instruciunii de transfer
OEN Ik
descris sintetic prin
OEN( Ik )= starea logic de la intrarea cu adresa Ik .
La iniializarea comandat cu semnalul RST=1, registrele IEN, OEN i RR sunt
puse n starea 0, ncrcarea lor fcndu-se pe linia DATA la frontul cresctor de la
1-13

jumtatea tactului CLOCK, iar oscilatorul este blocat n starea CLOCK= 1. La revenirea
n starea RST=0 amorsarea oscilaiilor are loc n circa 100 ns. Se poate folosi un tact
extern de nivel TTL ce trebuie aplicat la intrarea X1 , cu intrarea X2 conectat la mas.
Codificarea binar pe n bii a unei instruciuni are mrimea unei locaii din memoria
program i este compus din dou cmpuri de bii: cmpul instruciune din 4 bii, ce
codific operaia din instruciune, i cmpul de adres operand din n-4 bii, ce conine
adresa locaiei sistemului unde se afl al doilea operand, a crui mrime este impus de
complexitatea sistemului (fig.5-1.2).

cmp
instruciune
(4 bii)

cmp adres
operand
(n-4 bii)

Fig.5-1.2 Structura unei locaii din memoria program


Cele 16 instruciuni prevzute acestui microprocesor sunt prezentate n tabelul
urmtor, cu specificarea codificrilor binare i a descrierierilor sintetice.
Simbolizare

Descriere sintetic

Codificare
binar
Mnemonic Adres
NOP0
0000...
LD
addr
0001.addr
LDC
addr
0010.addr
AND
addr
0011.addr
ANDC
addr
0100.addr
OR
addr
0101.addr
ORC
addr
0110.addr

FL01
RR(addr)
RR (addr )
RRRR(addr)
RRRR (addr )
RRRR+(addr)
RRRR+ (addr )

XNOR
STO
STOC
IEN
OEN
JMP
RTN
SKZ
NOPF

RR RR (addr)
(addr)RR
(addr) RR
IEN(addr)
OEN(addr)
JMP1 PCaddr
RTN1 PC RTi (=vrf stiv)
If RR=0 skip next instruction
FLF1

addr
addr
addr
addr
addr
addr

0111.addr
1000.addr
1001.addr
1010.addr
1011.addr
1100.addr
1101...
1110...
1111...

Mnemonicelor instruciunilor implementate microprocesorului MC 14500B au


urmtoarele semnificaii:
- NOP0 : No operation and activate FL0 output
- LD : Load register RR
- LDC : Load and complement RR register
- AND : Logical AND
- ANDC : Logical AND with complemented DATA
- OR : Logical OR
- ORC : Logical OR with complemented DATA
- XNOR : Exclusive OR and complement

1-14

- STO : Store register RR


- STOC : Store complemented RR register
- IEN : Load input enable register
- OEN : Load output enable register
- JMP : Activate JMP output (JMP=jump)
- RTN : Activate RTN output (RTN=return)
- SKZ : Skip next instruction if RR=0
- NOPF : No operation and activate FLF output
Modul de transferare a datelor ntr-un APB cu microprocesor MC 14500B este
exemplificat n fig.3-1.2, unde, I j { I0 ,I1,...,In } este adresa unui bit de intrare n sistem,

Oi { O0 ,O1,...,Ok } este adresa unui bit de ieire din sistem, iar un numr de adres pus
ntre paranteze semnific coninutul locaiei cu adresa specificat.

LD Ij ;

LOGIC
UNIT

LDC Ij

AND Ij ; ANDC Ij
OR Ij ; ORC Ij
YEN Ij ;

RR

STO Oi ; STOC Oi

INPUT

OUTPUT

OEN Ij

XNOR Ij

DEMUX

MUX

I0

I1

I2

In

O0 O1 O2

Ok

Fig.3-1.2 Transferul datelor ntr-un APB cu microprocesor MC 14500B


Arhitectura unui APB, ce evideniaz modul de adresare a locaiilor de intrare, ieire
i de memorie este prezentat n fig.4-1.2 .
Prin magistrala de date DATA BUS, se efectueaz transferuri de citire a intrrilor
multiplexoarelor P 14151, prin instruciuni LD i LDC, i transferuri de scriere a ieirilor
demultiplexoarelor P 14113, prin instruciuni STO i STOC.
Programul de control al aplicaiei se afl n memoria program, fiind parcurs ciclic n
ordinea cresctoare a numerelor de adres generate cu circuite numrtoare de program
pe patru bii P 14104. Prin cascadarea a trei circuite P 14104 pot fi adresate
212 = 22 210 = 4K = 4096 locaii ale memoriei program. Automatul programabil cu
prelucrare pe bit poate fi prevzut cu o memorie RAM avnd locaii n mrime de un bit i
cu circuite temporizatoare.
Numrtorul de program genereaz doar adresele de explorare a memoriei program
de tip ROM (=Read Only Memory), n timp ce adresarea celorlalte locaii ale sistemului se
face prin numere de adres indicate n instruciuni.

1-15

Observaii:
- Circuitul PROGRAM COUNTER genereaz
urmtoarea adres din programul n execuie
i efectueaz instruciunile de ramificare.
- M=locaie RAM de 1 bit

PROGRAM
COUNTER

ADDRESS BUS

ADDRESS

ROM

O0 O1

DATA

I0

4 INSTRUCTION
BITS

CONTROL BUS
(FLO, FLF, JMP, RTN, CLOCK, WRITE)

P 14104

I1

I2

Ok

In

MUX

DEMUX

P 14151

RAM &
TIMERS

P 14113

MC 14500

DATA BUS (1 Bit)


WRITE

Fig.4-1.2 Structura APB realizat cu MC 14500B (MMC 4500)

1.2.2. Numrtorul de program P 14104


RS

RST
(system reset)

PC
T

MUX 4:1

I3 ...I0
(Address Bus)

INC

O3 ...O0
(to address pins of
Program Memory)
cn+4
cn

RT0
clock X1
JMP JS
RTN RT

CONTROL

(Control Bus)

QSP

RT1

QSP

Fig.6a-1.2 Arhitectur intern P 14104


Funcionarea circuitului numrtor de program (Program Counter) P 14104, a crui
arhitectur intern, funcii pe terminale i tabel de adevr sunt prezentate n fig.6-1.2,
este controlat de microprocesor cu semnalele FL0, FLF, JMP, RTN, CLOCK.
Circuitul P 14104 este un numrtor binar pe patru bii, cu posibilitatea de extindere
a capacitii de numrare prin cascadare cu alt numrtor de program, prin terminalele c n
1-16

i c n+ 4 . Astfel se pot obine numrtoare de program pe multiplu de patru bii.


Punerea n zero a numrtoarelor de program P 14104 se face prin comanda de
resetare RST=1.

RST - 1
-

2
3
4
5

O0 - 6
X1 - 7
GND - 8

P 14104

cn
O3
O2
O1

16 - Vcc
15
14
13
12

c n+4
I3
I2
I1

11 - I0
10 - RT
9 - JS

Fig.6b-1.2 Funcii la terminale P 14104 (Top View)

RST

cn

RT

JS

0
0
0
0
0
1

0
1

0
0
0
1
1

0
0
1
0
1

Funcie
Descriere
NO OPERATION
INCREMENT
SUBROUTINE CALL
RETURN FROM SUBROUTINE
JUMP
RESET

Simbol
NOP
INC
CALL
RTN
JMP
RST

Fig.6c-1.2 Tabel de adevr P 14104


Registrul PC (=Program Counter), numit numrtor de program sau numrtor de
adrese, avnd rolul de a aplica memoriei program adresa instruciunii de executat, este
incrementat cu 1 (prin registrul INC) la execuia fiecrei instruciuni, pentru a genera
adresa instruciunii ce urmeaz n desfurarea programului. n cazul execuiei unei
instruciuni de salt, apel, sau revenire, numite instruciuni de ramificare, programul se
continu cu o instruciune aflat la alt adres dect cea generat prin incrementarea cu
unu a registrului PC.
Astfel, ntr-un program, trecerea la efectuarea unei subrutine se face prin efectuarea
unei instruciuni de apel
CALL addr,
ce determin continuarea cu execuia primei instruciuni a subrutinei apelate, a crei
adres addr se afl n cmpul de adres al instruciunii de apel. Execuia instruciunii de
apel ncepe cu incrementarea, prin intermediul registrului INC, a registrului PC (n care se
obine astfel adresa instruciunii imediat urmtoare celei de apel, la care, dup efectuarea
subrutinei, se va reveni n continuarea programului), continu cu salvarea adresei de
revenire din registrul PC, ntr-unul din registrele RT0 , RT1 (ce formeaz o memorie stiv
din dou locaii) i se ncheie cu transferul adresei de apel addr n registrul PC (transfer ce
declaneaz execuia efectiv a subrutinei apelate).
1-17

Memorie Program
Adres

Coninut

OEN IHigh

IEN IHigh

RTi PC+1(=addr+1)

PC addrj

addr-1
addr

CALL addrj

addr+1

STOC Op

addr+2

addr+q

JMP addrk

PC addrk

addr+q+1

addrk

LDC Iv

addrk +1

addrj

LD Mh

addrj +1

ORC Ih

addrj +m-1

STO Mb

addrj +m

RTN

addrj +m+1

subrutin

addrj -1

PC RTi (=addr+1)

Fig.7-1.2 Operarea instruciunilor de ramificare


Execuia instruciunii de apel este descris sintetic, astfel
- RTi (i = 0,1) PC+1 (=adres de revenire din subrutina apelat)
- PCaddr
Locaiile RT0 i RT1 ale memoriei stiv special destinat salvrii numerelor de
adres, sunt selectate prin ieirile QSP i QSP ale unui bistabil cu rol de registru
numrtor de stiv, notat SP (=Stack Pointer), iar ultima locaie RTi ocupat din memoria
stiv i selectat cu bistabilul SP, se numete vrful stivei.
Revenirea dintr-o subrutin efectuat, la executarea instruciunii din continuarea
programului apelant, se face prin efectuarea instruciunii de revenire
1-18

RTN
de la sfritul subrutinei, a crei execuie const n transferul n registrul PC a adresei de
revenire, ce este ultima adres salvat n locaia RTi din vrful stivei.
Instruciunea de revenire este descris sintetic prin
- PC (=PC+1) RTi (i = 0,1) = vrful stivei (conine adresa de revenire).
Memoria stiv din dou locaii permite doar dou nivele de subrutine, deoarece, prin
efectuarea a dou apeluri succesive, se ocup ntreaga memorie stiv.
Ultima adres salvat n memoria stiv fiind prima adres ce se va citi, se spune c
stiva este de tipul ultimul intrat - primul ieit, notat LIFO (Last In - First Out).
ntr-un program, saltul la efectuarea instruciunii aflat n memoria program la alt
adres dect cea generat n registrul PC prin incrementare cu 1, se face prin efectuarea
unei instruciuni de salt
JMP addr
a crei execuie const n transferul n registrul PC a adresei addr din cmpul de adres al
instruciunii, operaie descris sintetic prin
- PC (=PC+1) addr
Modul de operare al instruciunilor de ramificare este prezentat grafic n fig.7-1.2.
Microprocesorul, prin semnalele aplicate la terminalele RT i JS ale circuitului
numrtor de program, determin funcionarea acestuia n urmtoarele etape, ce
realizeaz sarcinile de numrtor sincron, de apel, de revenire, de salt i de iniializare:
a) Funcia de numrtor sincron de patru bii cu transport prin terminalul c n+ 4 este
realizat prin comenzile RT=JS=0 aplicate circuitului prin magistrala de control i const n
incrementarea cu 1 a registrului numrtor de program PC n fiecare perioad a tactului
clock al sistemului dac c n =1 i blocarea incrementrii cnd c n =0, sarcin descris
sintetic prin
PCPC+1 (O3O2O1O0 )n = (O3O2O1O0 )n-1 + cn .
Ieirea de transport c n+ 4 va fi trecut n starea 1 pe o perioad a tactului clock al
sistemului cnd
O3 = O2 = O1 = O0 = cn = 1.
Rezult c pentru un numrtor pe multiplu de patru bii, format din nserierea mai
multor circuite P 14104, doar circuitul de pondere minim va avea c n =1 , iar fiecare
circuit va avea terminalul de transport c n+ 4 conectat la terminalul c n al circuitului de
pondere imediat superioar.
b) Funcia de apel realizat sub comenzile JS=1 i RT=0 generate de microprocesor
pe durata efecturii instruciunii de apel
CALL addr,
const n salvarea coninutului incrementat cu 1 al registrului PC n registrul RTi din vrful
memoriei stiv i ncrcarea adresei addr din instruciunea de apel n registrul PC, prin
terminalele I3 , I2 , I1 , I0 , conectate la magistrala de adrese a sistemului, operaii descrise
sintetic prin

(Ri3Ri2R1i Ri0 )n = (O3O2O1O0 )n 1 + c n cu i=0,1;


RTi PC+1

PC addr
(O3O2O1O0 )n = (I3 I2 I1I0 )n-1 ;
c) Funcia de revenire realizat sub comenzile JS=0 i RT=1, generate de
microprocesor pe durata efecturii instruciunii de revenire
RTN
const n ncrcarea registrului PC cu ultima adres salvat n registrul RTi din vrful
memoriei stiv, sarcin descris sintetic prin
1-19

PC (=PC+1) RTi (O3O2O1O0 )n = (Ri3Ri2R1i Ri0 )n-1


d) Funcia de salt este realizat sub comenzile JS=1 i RT=1 generate de
microprocesor pe durata efecturii instruciunii de salt
JMP addr
const n ncrcarea registrului PC cu adresa addr, indicat n instruciunea de salt i
aplicat circuitului PC la terminalele I3 I2 I1 I0 conectate la magistrala de adrese, operaie
descris sintetic astfel:
PC (=PC+1) I3 I2 I1 I0 (O3O2O1O0 )n = (I3 I2 I1 I0 )n-1
e) Funcia de iniializare comandat prin semnalul RST=1 const n anularea
coninutului registrului PC:
O3 = O2 = O1 = O0 = cn + 4 = 0 .
Observaie
Funciile de apel i de revenire, simbolizate cu mnemonicele CALL i respectiv RTN,
s-au implementat doar circuitului P 14104 i lipsesc circuitului PC 14104.

1.2.3. Circuitul multiplexor P 14151


Repartizarea funciilor pe terminale i arhitectura intern pentru circuitul P 14151
folosit ntr-un APB pentru intrare de date, sunt prezentate n fig.8a-1.2 i fig.8b-1.2.
-

1
2
3
4

16
15
14
13

P 14151

I3
I2
I1
I0

Q - 5
NC - 6

Vcc
I4
I5
I6

12 - I7
11 - A 0
10 - A1
9 - A2

S - 7
GND - 8

Fig.8a-1.2 Funcii pe terminale P 14151 (Top View)


I0
Q ( to DATA BUS)

I1

I7

DECODER

A2

A1

Fig.8b-1.2

A0

( to ADDRESS BUS)

Arhitectur intern P 14151

La acest circuit, ieirea Q urmrete starea logic a intrrii Ii validate prin


1-20

A 2 A1A 0 = i , cnd S =0. Dac intrarea de selecie este pus n starea S =1, atunci
ieirea Q trece n starea de nalt impedan, notat Z.

1.2.4. Circuitul demultiplexor P 14113


O0
(Reset)
RST

X1
(WRITE)

O7

Dataliu celul de ieire

R
T

D
D
(Data Bus)

(Address Bus)

O1

SEL0

SEL1

SEL7

RST

X1

A2
DECODER

A1

Qk

D
MUX

A0
SELk

Fig.9a-1.2

1
0
0
0

CLK

ADDRESSED OUTPUT OTHER OUTPUTS

0
0
UNCHANGED
0 1 Qi = D , i = A 2 A1A 0
1
UNCHANGED
Fig.9b-1.2
O3
O2
O1
O0
D
RST

1
2
3
4
5
6

X1 - 7
GND - 8
Fig.9c-1.2

0
UNCHANGED
UNCHANGED
UNCHANGED

Tabela de adevr P 14113

P 14113

RST

Arhitectur intern P 14113

16
15
14
13
12
11

Vcc
O4
O5
O6
O7
A0

10 - A1
9 - A2

Funciile pe terminale ale circuitului P 14113 (Top View)

Acest circuit, ale crui arhitectur intern, funcii pe terminale i tabel de adevr
sunt date n fig.9-1.2, realizeaz pe frontul cresctor al tactului X1 ( = WRITE) , trecerea
ieirii Qi a bistabilului i, adresat prin A 2 A1A 0 = i , n starea logic aplicat la intrarea D, n
1-21

timp ce bistabilele neselectate sunt renscrise cu vechiul lor coninut.


Prin comanda RST=1 circuitul este adus n starea: Q0 = Q1 = ... = Q7 = 0 .

1.3. Realizarea programelor pentru un APB


Un APB realizeaz n principal operaii logice. Prin programul unei aplicaii se
testeaz o serie de intrri i ieiri n vederea emiterii unor comenzi. Orice instruciune
logic efectuat n program realizeaz implicit testarea unei intrri, n timp ce testarea unei
ieiri se poate realiza fie printr-o intrare la care-i conectat ieirea, fie prin locaia de
memorie RAM ce conine copia ieirii. Ansamblul locaiilor de memorie n care se copie
comenzile calculate pentru ieirile automatului formeaz memoria imagine de ieire.
n cazul unui APB cu memorie imagine de ieire, comenzile generate n program i
memorate n memoria imagine de ieire, sunt transferate pe ieirile automatului cu ultimile
instruciuni din program.
n scopul simplificrii programrii, o intrare a automatului va fi pus n 0, sau n 1,
iar alta va fi conectat la terminalul RR al microprocesorului n vederea testrii rapide a
registrului rezultat RR. O intrare pus n 0 sau n 1 va fi notat IL (ori ILOW ), respectiv
IH (ori IHIGH ), intrarea conectat la registrul RR se va nota IRR , iar intrarea conectat la
ieirea Oi va avea notaia IO . Adresa locaiei din memoria imagine de ieire alocat ieirii
i

Oi va fi notat MO .
i

n vederea protejrii la perturbaii pe intrri, se prevede automatului o memorie


imagine de intrare din care, pe durata unui ciclu program, se citesc mrimile de intrare
ncrcate la nceputul ciclului, ce rmn astfel nemodificate n ciclul program n execuie.
Adresa locaiei din memoria imagine de intrare, asociat intrrii de adres IK va fi notat
MI .
K

1.3.1. Prelucrarea logic a datelor


O comand cu relee electromagnetice, realiznd prelucrri logice de date poate fi
uor nlocuit cu un APB.
ntr-o logic cu relee, un semnal logic Ik (activ cnd este comutat n tensiunea strii
logice 1) se materializeaz cu un contact normal deschis (activ cnd este comutat nchis
pentru a transfera tensiunea strii logice 1), n timp ce un semnal logic Ij , (activ cnd
este comutat n tensiunea nul a strii logice 0) se materializeaz cu un contact normal
nchis (activ cnd este comutat deschis pentru a transfera tensiunea nul a strii logice
0). Astfel, un contact E de la ieirea unui releu (definit ca normal nchis sau normal
deschis dup starea sa cnd releul este nealimentat) fiind comutat doar la alimentarea
releului cu o tensiune VR , va reprezenta chiar funcia logic f de comand a alimentrii
releului, dac este normal deschis, sau inversa f a acestei funcii, dac este normal
nchis.
Aadar, n materializarea unei funcii logice cu relee electromagnetice, exemplificat
n fig.1-1.3, un contact normal nchis semnific starea complementat a semnalului pe
care-l reprezint.
Schemele de comand cu relee se folosesc n aplicaiile foarte simple, ce impun un
pre redus al schemei de comand.
Releele asigur o bun separare galvanic, iar tehnologiile actuale de realizare le
asigur dimensiuni reduse i fiabilitate ridicat.
Modul de nlocuire cu un program APB a unei logici cu relee, este artat n exemplele
1-22

urmtoare, n care, pentru fiecare schem de comand, s-a determinat funcia logic
materializat.
VR

VR

Ij
Ik

Ij
f = Ik + Ij In

Ik

In

f = Ik + Ij In

In

E=f

E=f
R

Fig.1-1.3 Transferul de semnal cu un releu electromagnetic


Exemplu
S se realizeze programul APB pentru urmtoarea schem de comand cu relee:
VR

E2

R1 O1

I1

I3

I4

MOk

I2

R2
R0

E3

E1

E4

R3 O2

O3

R4

Rezolvare
Schema de comand cu relee materializeaz urmtoarele funcii logice de comand

O2 = O1 MO ; O3 = I4 + I3 + O1 = I4 I3 O1 ,
K
realizate cu urmtorul program APB:

O1 = I2 I1 ;

Etichet: Simbolizare ; Descriere sintetic


CTRL: LD
I2 ; RR (I2 )
ANDC I1

RR RR (I2 ) = (I2 ) (I1)

STO

O1 ;

(O1) RR = (I2 ) (I1)

STO

MO ;

(MO ) RR = (I2 ) (I1)

ANDC MO ;

RR RR (MO ) = (I2 ) (I1) (MO )

STO

O2 ;

(O2 ) RR = (I1) (I2 ) (MO )

STO

MO ;

(MO ) RR = (I1) (I2 ) (MO )

LDC

I4

RR (I4 )

ANDC I3 ;

RR RR (I3 ) = (I4 ) (I3 )


1-23

Etichet: Simbolizare ; Descriere sintetic


AND MO ; RR RR (MO ) = (I4 ) (I3 ) (I2 ) (I1)
1
1

STO

O3 ;

(O3 ) RR = (I4 ) (I3 ) (I2 ) (I1)

STO

MO ;

(MO ) RR = (I4 ) (I3 ) (I2 ) (I1)

1.3.2. Validarea intrrilor i ieirilor unui APB


n modul de operare secvenial, dup efectuarea instruciunilor din seciunea
combinaional a unui program este necesar ca, n funcie de rezultatul logic al evalurilor
fcute prin prelucrare logic, s se execute doar o parte a instruciunilor din seciunea
secvenial asociat. Aceasta presupune realizarea unor salturi peste anumite secvene
de instruciuni ale programului, sau inhibarea unor semnale de la ieirea APB la
parcurgerea unor secvene de instruciuni.
La un APB, modul secvenial de operare impune ca setul de instruciuni s cuprind
fie instruciuni de salt, ce s ntrerup adresarea normal a memoriei program, fie
instruciuni de validare i inhibare a intrrilor i ieirilor automatului, caz n care se execut
toate instruciunile dintr-un program. Prin instruciuni ce valideaz, ori inhib intrri i ieiri
ale automatului , se poate determina ca o secven de program, dei executat, s nu
aib efect asupra ieirilor din automat, situaie echivalent cu un salt peste secvena de
program, numit pseudo-salt.
Pseudo-saltul peste o secven dintr-un program poate fi realizat inhibnd pe durata
secvenei fie intrrile, prin instruciunea IEN Ii , fie ieirile, prin instruciunea OEN Ii .
Punerea rapid n 0 sau 1 a bistabilelor IEN i OEN prin transferul strii logice de
pe orice intrare de adres Ii cu instruciunile IEN Ii i respectiv OEN Ii , impune ca
automatul s aib fie o intrare conectat la bistabilul RR al microprocesorului a crei
adres este notat IRR , fie o intrare pus n 0 sau 1 i avnd adresa notat IL ,
respectiv IH .
ntr-un program, pseudosaltul peste o secven de instruciuni impune ca secvena s
nceap cu punerea n 0 a bistabilului folosit, IEN ori OEN, i s se ncheie cu repunerea
n 1 a acestui bistabil pentru a nu se afecta continuarea programului.
Folosirea pseudosaltului face ca timpul de ciclu TC i cel de reacie TR s fie
constante i apreciate din faza de programare ( TR.max = 2 TC ).
Modul de utilizare a bistabilelor IEN i OEN n realizarea unui pseudosalt este artat
n urmtoarele exemple.
Exemplul 1
S se realizeze programul APB pentru comanda descris prin urmtoarea
organigram:
=1

O1 = O7 = 0

I1 = ?

=0

O5 = O9 = 1

O40 = 1

1-24

Rezolvare
Programul folosind pseudo-salt are urmtoarea form:
Etichet: Simbolizare; Descriere sintetic
CTRL: LD
I1 ; Condiionare pseudosalt de starea logic a intrrii I1
OEN

IRR ;

prin IRR

STO O7 ;

Comenzi pe ieirile O1 i O7 dac I7 = 1 i lips comenzi


dac I7 = 0

LDC

IRR ;

Complementarea strii bistabilului OEN

OEN

IRR ;

STO O1 ;

STO O9 ;

Comenzi pe ieirile O5 i O9 dac I7 = 0 i lips comenzi


dac I7 = 1

ORC

IRR ;

Se pune bistabilul OEN n 1 prin IRR pentru a nu afecta.

OEN

IRR ;

continuarea programului

STO O5 ;

STO O40 ;

Comand ieire O40

Exemplul 2
S se realizeze programul APB pentru urmtoarea schem de comand cu relee :
VR

I7

I8

I9

I5

I40

I4

I3
I1

I51
I2
O10

R0

R1

O3

R2

O2

R3

O1

Rezolvare
Programul APB ce realizeaz funcia de comand a schemei cu relee prin folosirea
pseudo-saltului are urmtoarea form:
Etichet: Simbolizare ; Descriere sintetic
CTRL: LD
I5 ; Comand pe ieirea O10
AND

I4

STO

O10 ;

IEN
LD
STO
LD

I7 ; Pseudosalt condiionat de starea logic a intrrii I7


; Comand pe ieirea O2 dac I7 = 1 i lips comand dac
O2 ; I7 = 0
I40 ; Comand pe ieirea O3 dac I7 = 1 i lips comand dac
I1

1-25

Etichet: Simbolizare ;
AND
I51 ;

Descriere sintetic
I7 = 0

ANDC I2 ;
STO

O3 ;

ORC
IEN

IRR ; Repunere n 1 a bistabilului IEN folosind intrarea IRR ,


IRR ; la sfritul secvenei implicat n pseudosalt

LD

I9 ; Comand pe ieirea O1

OR

I8 ;

AND

I3 ;

STO

O1 ;

1.3.3. Ramificaiile ntr-un program


Programarea aplicaiilor necesit efectuarea operaiilor de ramificare (salt, apel i
revenire) att necondiionat, ct i condiionat de rezultatul FALS sau ADEVRAT al
unui test logic.

A. Saltul necondiionat

O operaie de salt necondiionat este realizat cu instruciunea simbolizat prin


JMP addr
descris sintetic prin
PC addr = coninutul cmpului de adres al instruciunii de salt,
i care semnific transferul n registrul numrtor de program PC a numrului addr aflat n
cmpul de adres din locaia memoriei program destinat acestei instruciuni.
n aplicaiile controlate cu APB se recomand numai saltul nainte, excepie fcnd
saltul la prima adres a programului, realizat la sfritul unui ciclu program i care
determin reluarea programului. Efectuarea n program doar de salturi nainte, permite
controlul relurii corecte a programului cu un circuit de supraveghere ce msoar timpul n
care se execut un ciclu program, numit temporizator de supraveghere (Watchdog Timer).
Astfel, numai n ciclul program a crui durat depete valoarea programat n
temporizatorul declanat la nceputul fiecrui ciclu program, pe ieirea tempotizatorului se
genereaz un impuls de anulare a comenzilor emise de automat.
La un APB cu procesor MMC 4500, ca instruciune de salt de iniializare, ce s fac
saltul la adresa 000 ce conine prima instruciune din program, poate fi folosit una din
instruciunile NOPO sau NOPF, n condiia conectrii semnalului FLO, respectiv FLF, la
terminalul RST al numrtorului de program P 14104.
ntr-un astfel de APB, n care se pot executa doar ramificri prin salt, semnalul JMP,
emis de microprocesor la execuia unei instruciuni de salt
JMP addr ,
se va aplica terminalelor RT i JS ale numrtorului de program, iar prin conectarea
semnalului RST al numrtorului de program, la semnalul RTN al microprocesorului,
instruciunea de revenire
RTN
devine instruciune de iniializare.

B. Saltul condiionat

ntr-un APB, neexistnd bistabile de condiie, un salt poate fi condiionat doar de


starea 0 a registrului RR prin implementarea instruciunii
1-26

SKZ (Skip if Zero) ,


ce semnific ignorarea urmtoarei instruciuni din program dac RR=0.
Aceast instruciune urmat de una de salt necondiionat constituie secvena de
program ce realizeaz saltul condiionat de starea RR=1.
Un salt poate fi condiionat de starea 0 sau 1, a unei intrri Ik a automatului, dac
secvena de salt condiionat de RR=0, este precedat de transferul n RR a strii (Ik ) ,
respectiv (Ik ) .
Exemplu
Etichet: Simbolizare;
...
SKZ
;
JMP TIME;
AND

Im ;

Descriere sintetic
Dac RR=1 salt la adresa TIME, iar dac RR=0
continu cu instruciunea AND Im
RR RR (Im )

; Dac (Ii ) = 1 salt la adresa STOP, iar dac (Ii ) = 0 se


; continu cu instruciunea LD I0
JMP STOP;
LD
I0 ;

LDC
Ip ; Dac (Ip ) = 0 salt la adresa READ, iar dac (Ip ) = 1
LD
SKZ

Ii

SKZ

; continu cu instruciunea XNOR Ii


JMP READ;
XNOR Ii ;

C. Apelul necondiionat

Microprocesorul P 14500 nu are o instruciune de apel distinct. Ramificarea prin


apel , impunnd comanda numrtorului de program cu semnalele RT=0 i JS=1, poate fi
realizat cu una din instruciunile NOP0 sau NOPF, folosind semnalul FL0, respectiv FLF,
al microprocesorului. Astfel, sarcinile de salt, apel i revenire sunt realizate prin instruciuni
distincte de circuitul numrtor de program ce este comandat printr-o logic suplimentar
artat n fig.2-1.3.

RT
JMP

JS

FLF

PROGRAM
COUNTER

RTN

Fig.2-1.3

RT JS Funcie
1
0
1

0
1
1

Mnemonic

Revenire RTN
Apel
NOPF
Salt
JMP

Comanda instruciunilor de ramificare

D. Apelul condiionat

Ca i operaia de salt i cea de apel poate fi condiionat de starea registrului rezultat


RR, ntr-un APB cu microprocesor P 14500. Astfel apelul condiionat de starea RR=1 se
1-27

realizeaz cu o secven format dintr-o instruciune


SKZ
urmat de o instruciune de apel necondiionat.
Un apel poate fi condiionat de starea 0 sau 1, a unei intrri Ik a automatului,
dac secvena de apel condiionat de RR=0, este precedat de transferul n RR a strii
(Ik ) , respectiv (Ik ) .
Exemplu
Etichet: Simbolizare ;

SKZ
;
NOPF PULS;

Descriere sintetic
Dac RR=1 apeleaz subrutina PULS, iar dac RR=0
continu cu instruciunea AND I0

AND

I0

RR RR (I0 )

LD

Ii

Dac (I i ) = 1 apeleaz subrutina OFF. Dac (I i ) = 0


se continu cu instruciunea LDC In

SKZ

NOPF OFF ;
LDC
In ;

LDC
Ir ; Dac (Ir ) = 0 apeleaz subrutina PASS. Dac (Ir ) = 1
SKZ
; continu cu instruciunea LD IO
K

NOPF PASS ;
LD
IO ;
K

E. Revenire necondiionat

ntr-un APB cu microprocesor P 14500, revenirea necondiionat dintr-o subrutin


se realizeaz comandnd circuitul numrtor de program cu RT=1 i JS=0 printr-o logic
de comand la care se aplic impulsul RTN generat de microprocesor cnd efectueaz
instruciunea de revenire
RTN
de la sfritul subrutinei.
Sub comenzile RT=1 i JS=0, ultima adres salvat n stiv este depus n registrul
numrtor de adrese.

F. Revenire condiionat

Ca i operaiile de salt i de apel, operaia de revenire poate fi condiionat de starea


registrului rezultat RR. Astfel, revenirea condiionat de starea RR=1 se realizeaz cu o
secven format dintr-o instruciune
SKZ
urmat de o instruciune de revenire necondiionat, n timp ce dac aceast secven
este precedat de o instruciune de complementare a registrului RR se obine o revenire
condiionat de starea RR=0.
O revenire poate fi condiionat de starea 0 sau 1, a unei intrri a automatului, cu
adresa I k , dac secvena de revenire condiionat de starea RR=1 este precedat de
transferul n RR a strii (I k ) , respectiv (I k ) .
1-28

Exemplu
Etichet : Simbolizare ;

SKZ
;
RTN
LD

;
MO ;
K

LD

MI

Descriere sintetic
La RR=0 continu cu LD MO

la RR=1 revenire n programul apelant

SKZ

; Dac (M I ) = 1 revenire iar dac


k
; (M I ) = 0 se continu cu instruciunea

RTN

; STO MO

STO

MO

LDC

MI

SKZ

; Dac (M I ) = 0 revenire
r
; Dac (M I ) = 1 continu cu instruciunea

RTN

; LD M I

LD

MI

Modul de operare al instruciunilor de ramificare condiionat este prezentat sintetic


n fig.3-1.3.

1.3.4. Aplicaii complexe


O aplicaie complex rezult din reunirea mai multor sarcini distincte, fiecare descris
cu un subprogram. Ca urmare, programul aplicaiei va fi unul de gestionare a
subprogramelor, fapt ce implic utilizarea instruciunilor de ramificare.
Un exemplu n acest sens l constituie realizarea cu un APB a funciilor unor circuite
integrate digitale ca numrtoare, registre de deplasare, sumatoare, decodoare, etc.
Funcia realizat de un asemenea circuit poate necesita incrementarea i decrementarea
unui numr binar, operaii ce vor trebui realizate numai cu instruciunile logice ale setului
de instruciuni care nu conine i instruciuni aritmetice.
Din analiza operaiei de numrare se observ c modificarea unui bit S j+1 are loc
ntr-o incrementare numai dac bitul S j trece din 1 n 0, iar ntr-o decrementare numai
dac bitul S j trece din 0 n 1.
Asociind numrrii un bit MF ca fanion ce s indice prin MF = 1 incrementarea i prin
MF = 0 decrementarea, rezult c ntr-o numrare bitul S j+1 se va modifica numai dac

S j MF = 1 S j MF = 0 ,
modificrile ncetnd de la bitul Sk pentru care
Sk MF = 0 Sk MF = 1 .
Fie cazul numrtorului cu incrementare, decrementare i ncrcare avnd schema
din fig.4-1.3, iar funcionarea descris cu organigrama din fig.5-1.3.
1-29

Memorie Program
Adres

Coninut

OEN IHigh

IEN IHigh

=1

IN
=0

RTi PC+1(=addr+1)
PC addrj

addr-2

LD IN

addr-1

SKZ

addr

CALL addrj

addr+1

STOC Op

addr+2

addr+q-2

LD IN

addr+q-1

SKZ

addr+q

JMP addrk

IN

=1

=0

addr+q+1

addrk

PC addrk
LDC Iv

addrk +1

addrj

LD Mh

addrj +1

ORC Ih

subrutin

STO Mb

addrj +m-2

LD IN

addrj +m-1

SKZ

addrj +m

RTN

PC RTi (=addr+1)

IN

=1

=0

addrj +m+1
...

addrj +m+p

RTN

Fig.3-1.3 Operarea instruciunilor de ramificare condiionat


Organigrama prezentat n fig.5-1.3 evideniaz realizarea funciilor circuitului prin
ndeplinirea urmtoarelor sarcini: detectare front setare cu ncrcare numrtor, test
1-30

blocare incrementare, test blocare decrementare, detectare front impuls incrementare,


detectare front impuls decrementare, numrare reversibil, testare golire numrtor,
testare umplere numrtor.

START
INIT:
Iniializare numrare :
MS = M+ = M = 1
COUNT:
Nu

IS = 0 1 ?
Da

FILL:

ncrcare numrtor
FULL:
Da

OF = 1 ?
TESTI+

Nu
Nu

I+ = 0 1 ?

EMPTY:

Da

O0 = 1 ?
TESTI-:

Da
Nu
Nu

I = 0 1 ?
Da
Pentru incrementare:
MC 1

Pentru decrementare:
MC 0

MODIFY:
Numrare
TEST0:
La golire numrtor
O0 1
TESTF:
La umplere numrtor
OF 1

STOP

Fig.5-1.3

Organigram numrtor reversibil

1-31

IS

ID

IC

IB

IA

I+
UP

COUNTER

I
DOWN

z0 z15 QD QC QB Q A

O0 OF OD OC OB O A

Fig.4-1.3 - Circuit de numrare cu incrementare, decrementare i ncrcare


Notaiile folosite au urmtoarele semnificaii :
- I+ = intrarea impulsului de incrementare care acioneaz pe frontul cresctor;
- I = intrarea impulsului de decrementare ce acioneaz pe front cresctor;
- IS = intrarea de comand a ncrcrii numrtorului cu data IDICIBIA de intrare,
comand realizat pe frontul cresctor a impulsului;
- ID , IC , IB , IA = intrri la care se aplic dat de ncrcat;
- QD , QC , QB , Q A = ieiri de emisie a coninutului numrtorului;
- O0 = ieire ce indic prin starea 1 anularea numrtorului i care blocheaz
intrarea I ;
- OF = ieire ce indic ncrcarea maxim a numrtorului ( QDQCQBQ A = 1111) i
care blocheaz intrarea I+ .
Programul are urmtoarea form:
Etichet: Simbolizare
INIT: ORC IRR

;
;

Descriere sintetic
MS ,M+ ,M 1 ( numai n primul ciclu n care doar
se citesc impulsurile i se determin strile O0 i OF ;
urmtoarele cicluri ncep de la COUNT)

STO

MS

STO

M+

STO

IS

Testare IS = 0 1 (prin compararea strii curente IS

SKZ

cu cea anterioar aflat n locaia MS ).

JMP

TESTS ;

LOOPS: STO
JMP

MS
;
FULL ;

COUNT: LD

TESTS: XNOR MS

SKZ

JMP

LOOPS;

MS IS =stare anterioar n urmtorul ciclu program.

MS IS = 0 cnd IS = 0 1

1-32

Etichet: Simbolizare
STOC MS
FILL: LD

;
;

ncrcare numrtor

IA

STO

OA

LD

IB

STO

OB

LD

IC

STO

OC

LD

ID

STO

OD

IO

FULL: LD
SKZ
JMP
TESTI+: LD
SKZ
JMP

Dac OF = 1 , salt la EMPTY.

;
EMPTY ;
I+

Testare I+ = 0 1

;
PULS+ ;

LOOP+: STO M+
;
JMP EMPTY;
PULS+: XNOR M+
;
SKZ

JMP

LOOP+ ;

STOC M+
LD

Descriere sintetic

M+ conine starea anterioar a lui I+

RR M+ ( = M+ I+ = M+ 1 = M+ )
Testare M+ (=0 cnd I+ = 0 1 )
Salt la adresa LOOP+ cnd M+ =0
M+ I+ = stare anterioar n ciclul urmtor

ILOW ;

STOC MC
; MC = 1 pentru a indica incrementare
JMP MODIFY; Salt la modificarea ieirilor
EMPTY: LD
IO
; O0 = 1 salt la TEST0
0

SKZ
JMP
TESTI-: LD

;
TEST0 ;
I
;

SKZ
JMP
LOOP-: STO
JMP
PULS-: XNOR

;
PULS- ;
M
;
TEST0 ;
M
;

SKZ
;
JMP LOOP- ;
STOC M
;
LD
STO

Test I = 0 1

M conine starea anterioar a lui I

M I = 0 cnd I = 0 1

M I =stare anterioar n ciclul urmtor

ILOW ;
MC

MC =0 pentru a indica decrementare

1-33

Etichet: Simbolizare
MODIFY: LDC
IO
A

;
;

STO
OA
;
NOPF CARRY;
LDC
IO
;

Descriere sintetic

NOPF CARRY CALL CARRY

STO

OB

NOPF CARRY;
LDC

IO

STO

OC

;
;

NOPF CARRY;
LDC

IO

STO

OD

;
;

NOPF CARRY;
TEST0: LDC

IO

ANDC IO

ANDC IO

ANDC IO

STO
TESTF: LD

O0

;
;
;
;
;

IO

AND

IO

AND

IO

AND

IO

Generare semnal umplere OF

;
;
;

STO
OF
;
JMP COUNT;
CARRY: XNOR MC
;
SKZ
JMP
RTN

Generare semnal golire O0

;
TEST0;
;

Subprogram de transport a modificarii ctre bitul de


pondere imediat superioar
Revenire n programul apelant.

1.3.5. Temporizrile ntr-un APB


Un APB trebuie prevzut i cu posibiliti de temporizare. Pentru ca o temporizare s
poat fi realizat prin program, cu o etap de numrare ntr-un ciclu program, e necesar
ca timpul de ciclu s fie constant i ca urmare programul s nu utilizeze instruciuni de salt.
Temporizarea se realizeaz astfel, ncrcnd valoarea a temporizrii n numrtor
i realiznd cte o decrementare pe ciclu program pn la anularea coninutului
numrtorului. Cu alte cuvinte ntre dou decrementri succesive se efectueaz m
instruciuni, iar dac fiecare instruciune este efectuat ntr-un timp ti rezult c
numrtorul trebuie ncrcat cu numrul
1-34

=
; TC =ciclu program
m ti TC
precizia temporizrii fiind m ti .
Decrementarea numrului binar
A = anan 1 a1a0
implic operaia:
R = A-1 = anan-1 a1a0 A=

-00
01
echivalent n complement faa de 2 cu adunarea
S = snsn-1 s1s0 =

= anan-1 a1a0 +
+ 11
1 0 +
+ 01
01
n care transportul de la rangul n este neglijat.
n suma S = snsn-1 s1s0 , bitul de rang k se determin prin sumare modulo doi cu
relaiile:
s0 = a0 , c 0 = a0
c k = ak + ck-1

sk = (ak bk ) ck-1 = (ak 1) c k-1 = ak c k-1


c k-1 ck
Organigrama pentru o temporizare prin numrare cu decrementare este prezentat
n fig.6-1.3.
n determinarea bitului de rang k al rezultatului dintr-o decrementare, folosind
relaiile:
(Mc ) (Ma ) + (Mc ) = c k
k-1

(Ma ) (Ma ) (Mc


k

(Mc

k-1

k-1

k-1

) = sk

) (Mc ) = c k
k

se obine urmtoarea secven de program:


Etichet: Simbolizare ; Descriere sintetic
Ma ; (Mc ) c k = ak + c k 1,
DCRk : LD
k

OR

Mc

STO

Mc ;

LDC

Ma

k-1

unde : + = OR

XNOR Mc

k-1

(Ma ) sk = ak ck 1
k

LDC

IRR ;

STO

Ma ;

LD

Mc ;

STO

Mc

k-1

(Mc

k-1

) c k =(Mc )
k

1-35

START

Memorie RAM

a0 = (Ma )
0

Lansare temporizare

a1 = (Ma1 )

TIMER:
Iniializare numrare:
(MCk ),(MCk ) 0

ak = (Mak )

DCR0

Decrementare rang
0

an = (Man )
ck 1 = (Mck 1 )

DCRn

ck = (Mck )

Decrementare rang
n
Calcul :
s = sn + sn1 + ... + s0
Nu

s=0 ?
Da

Sfrit temporizare
STOP

Fig.6-1.3 Organigrama la temporizare prin decrementare

DATA BUS
INPUT

OUTPUT

ADDRESS
BUS

DEMUX

MUX

I0

I1

Ip

Iq

M M

ZONA T
Load
Out

COUNTER
(Timer 1)

O0

O1

On

Ok
R

Reset

Out ONE SHORT Input


(Timer j)

Fig.7-1.3

Zona de temporizare a unui automat


1-36

Temporizrile realizate hardware utilizeaz circuite specializate prevzute sistemului,


fiecare temporizator avnd intrarea de declanare conectat la o ieire din automat, iar
ieirea conectat la o intrare a automatului, situaie prezentat n fig.7-1.3. Un APB, prin
magistrala intern, semnale de comand i ieiri ale sale poate controla un temporizator
numeric.
Temporizatorul poate fi de tip analogic realizat spre exemplu cu circuitul integrat
CDB4121 n conexiunea prezentat n fig.8-1.3.
Durata temporizrii se determin cu relaia:
= RT CT ln2 0,7 RT CT .
Formele de und de pe ieirile i ale circuitului de temporizare fiind diferite,
determin temporizri diferite.
CT

IAPB

T0

RT
T1

CDB
4121

Vcc

O APB _

A1

LD

IA1 IB1 IC1 ID1

A
B

DW
LD

Load
Reset

IAPB

Temporizator monostabil cu circuitul CDB 4121

CDB
4192

DW

IA0 IB0 IC0 ID0


CLK

O APB

Fig.8-1.3

O APB

GND

A2

O APB _

CDB
4192

Forme de und:
B

LD
0

CDB 474
Q

Fig.9-1.3

RD

Vcc

CLK

Temporizator prin numrare cu circuite CDB 4192

Un temporizator numeric poate fi obinut cu circuite de numrare reversibil. Astfel de


temporizatoare permit realizarea att a temporizrilor, ct i numrare unor evenimente. n
astfel de temporizatoare pot fi utilizate circuitele integrate CDB 4190 CDB 4193.
Un temporizator cu numrare prin decrementare, ce folosete dou numrtoare
CDB 4192, este prezentat n fig.9-1.3.
Iniial are loc resetarea numrtorului sub comanda Reset=1 care, prin starea Q = 0
a bistabilului D, inhib poarta AND ce nu mai transfer impulsuri la intrarea de numrare
DW. Sub comanda Load=0, cele dou numrtoare sunt ncrcate cu data
ID1 IC1 IB1 IA1 ID0 IC0 IB0 IA0 , iar poarta AND este validat prin Q = 1, astfel ncepnd
numrarea impulsurilor aplicate la intrarea DW. Se numr frontul cresctor al fiecrui
impuls, prin decrementare pn la anularea numrtorului cnd semnalul de la terminalul
1-37

de transport B determin prin bascularea bistabilului CDB 474 la care-i conectat, inhibarea
porii AND i semnalarea sfritului numrrii prin Q=1, semnal testat prin intrarea din APB
la care-i conectat.
Utilizarea de temporizatoare simplific programarea, putndu-se realiza diferite
diagrame de temporizare.
Exemplu
S se activeze ieirea Q1 dup secunde din momentul cnd I1 = 1.
Aceast aplicaie are urmtoarea diagram de timp:
I1
0

O1
0

descris cu programul de mai jos:


Etichet: Simbolizare ; Descriere sintetic
TIMER1: LD
I1 ; Declanare temporizator prin ieirea OT ,
ANDC

IT ;

dac I1 IT IQ = 1 ( test ncepere temporizare);


1
1

AND

IQ ;

IT =la ieire temporizator

OEN
STO

IRR ; Declanarea timerului prin ieirea OT cnd


OT ; I1 IT IQ = 1

LDC

IT ;

ANDC

Dac IT IO IQ = 1 valideaz Q1=1 i


1
T
1
Anuleaz
comand
temporizator, adic se face
IO ;
T
IQ ; testul logic de sfrit al temporizrii

OEN

IRR ;

AND

STOC OT ;
STO
Q1 ;
XNOR IRR ; Valideaz ieirile prin OEN=1 pentru a nu se
OEN
IRR ; afecta continuarea programului.
...

1-38

SKZ
Cod: E

LD
1

LD
1

LDC
2

JMP
C

RTN
D

STO
8

STOC
9

IEN
A

OEN
B

NOPF
F

NOP0
0

NOPF
F

Reset
P

LD
1

X1

t
0
=

T
=

PC
WRITE
NOPF
NOP0

Instruciune
neglijat

JMP

RR
DATA

Stare Z

RTN

IAPB

IAPB

RR

RR

IAPB

IAPB

RST (Reset P)

IAPB
t

Fig.10-1.3.

Semnale la efectuare de instruciuni


1-39

1.4. Structuri de APB


1.4.1. Generaliti
Unitatea central a unui APB include o unitate logic (LU=Logic Unit) care poate fi
realizat fie n tehnica de acumulator , fie n tehnica microprogramat.
Unitatea central trebuie s realizeze funcionarea sincronizat a circuitelor
sistemului pe care-l controleaz, n vederea accesului la memoria program de unde
extrage cte o instruciune de executat, prin a crei decodare se genereaz semnalele de
comand a operaiei din instruciune, operaie care necesit fie accesul la zona de intrare
I, pentru testarea unor parametri, fie a zonei de ieire O, pentru lansarea comenzilor.
Unui APB i se implementeaz un set redus de instruciuni prin care s se comande
efectuarea urmtoarelor operaii:
- operaii de transfer cu locaiile sistemului;
- operaii logice;
- operaii de ramificare.

1.4.2. Unitate logic n tehnic de acumulator


Unitatea logic n tehnic de acumulator va efectua doar instruciunile de transfer i
instruciunile logice, n timp ce instruciunile de ramificare vor fi executate de alte circuite
ale APB, sub controlul semnalelor de de comand emise dup decodarea unei astfel de
instruciuni. O astfel de unitate logic va conine un bistabil, notat A, cu rol de registru
acumulator al rezultatului operaiei efectuate.
Deoarece execuia unei instruciuni necesit efectuarea unor sarcini ntr-o
succesiune determinat, timpul de efectuare a unei instruciuni, numit ciclu de main, se
mparte n intervale numite stri, n fiecare stare efectundu-se cte o sarcin, sub
comanda unui semnal de stare generat.
Semnalele de stare generate cu circuitul din fig.1-1.4, comand efectuarea
urmtoarelor sarcini, indicate n ordinea succesiunii lor:
- T1 = comand ncrcarea registrului de instruciuni ;
- T2 = comand incremetarea registrului numrtor de program PC ;
- T3 = comand salvarea registrului PC n memoria stiv ;
- T4 = comand ncrcarea registrului PC ;
- T5 = comand efectuarea operaiei n unitatea logic, rezultatul fiind memorat n
registrul acumulator A.
n generatorul de stri din fig.1-1.4, cu semnalul MAN=0 se genereaz permanent
cicluri de main succesive pentru execuia unui ntreg program, iar cu semnalul MAN=1,
o comand STEP = 0 determin o funcionare pas cu pas (= Step by Step) prin generarea
unui singur ciclu de main, n care se efectueaz o singur instruciune.
Funcionarea pas cu pas este necesar la depanarea unui program.
Arhitectura intern a unei uniti logice n tehnic de acumulator este reprezentat n
fig.2-1.4, n care automatul combinaional, notat AC, avnd ca semnale de intrare strile
logice Q A sau Q A ale operandului din registrul acumulator, starea logic a operandului
indicat n instruciunea de efectuat, aplicat prin DATA BUS i semnalele de comand a
operaiei, obinute prin decodificarea instruciunii, va genera rezultatul operaiei din
instruciune prin efectuarea unei funcii logice f.
Semnalul EN valideaz registrul acumulator A numai n instruciunile efectuate de
unitatea logic.
1-40

Ciclu de main (=timpul de efectuare a unei instruciuni)


0

OSC

T1
T2
T3

0
0
0

T4
0

T5
0

OSC

GND

CDB 474

MAN
CLK

Vcc

1K
LD

1K
DW

Vcc

R ST

Fig.1-1.4

UP

T1

CDB 4192

RST

OA

OB

OC

OD

O1

CDB 442

STEP

O2
O3
O5
O9

T2
T3
T4
T5

Generator de stri: schem, forme de und

RST

CLR

STO

T5
EN

CLK R

QA

A
CONTROL

AC

D
Vcc

QA
STOC

DATA BUS

Fig.2-1.4

Unitate logic n tehnic de acumulator

Instruciunile prevzute a fi efectuate n automatul combinaional AC sunt:


1-41

Tip

Mnemonic Descriere sintetic


A A DATA

LOGIC: AND
ANDC

A A DATA

OR

A A + DATA

ORC

A A + DATA

XNOR

A A DATA

NOT

AA

CLR

A=0
A DATA

INTRARE: LD
LDC

A DATA

IEIRE: STO

DATA A
DATA A

STOC

NOT
CDB 400

XNOR

RST

ANDC

CLR

ORC

LD
LDC

STO

T5
EN

AND

OR

CDB 403

A
B
C
D
A
B
C
D
A
B
C
D

CLK R Q A

A
f

A B + C D

CDB 474

2
74126

QA

Vcc

STOC

A B + C D

A B + C D
3 CDB 451

DATA BUS

Fig.3-1.4. Schem unitate logic n tehnic de acumulator

1-42

Asociind fiecrei instruciuni executate n unitatea logic cte un semnal distinct


avnd aceeai simbolizare ca a instruciunii, funcia logic f de la ieirea automatului
combinaional are expresia:
f = LD DATA + LDC DATA + AND Q A DATA + ANDC Q A DATA + OR (Q A +

+ DATA) + ORC (Q A + DATA) + XNOR Q A DATA + NOT Q A


n care semnalele LD, LDC, AND, ANDC, OR, ORC, XNOR i NOT sunt emise n urma
decodrii instruciunii din registrul de instruciuni, DATA = operandul indicat n instruciune
i aflat pe DATA BUS, iar QA , QA = strile operandului din registrul acumulator A.
Avnd n vedere funcia logic f materializat prin automatul combinaional, unitatea
logic poate fi realizat ca n fig.3-1.4.

1.5. Interfaarea automatelor cu prelucrare pe bit


Controlul unei aplicaii necesit testarea unor semnale logice la intrrile automatului
i emiterea unor semnale logice de comand pe ieirile automatului. Conectarea
automatului cu intrrile la senzorii, traductoarele i convertoarele analog-numerice (CAN)
ale aplicaiei i cu ieirile la elementele de acionare din aplicaie se face prin circuite de
interfaare ce realizeaz att separarea galvanic ntre aplicaie i automat, ct i
adaptarea intrrilor i ieirilor automatului cu elementele aplicaiei la care-s conectate.
Separarea galvanic fa de aplicaie, protejeaz automatul ca parte de comand ce
opereaz la tensiuni i puteri reduse.
RELEU
Vcc
R

Out

Fig.1-1.5

*
Primar

*
Secundar

Elemente de separare galvanic

Rf

Rf

+5V

+5V

R1
Q
R2

R1

Cf

Cf

GND

R2

Th
TI.
*

sec.

pr,

R4

Q1

R3

OAPB

Fig.2-1.5

TRANSFORMATOR
DE IMPULS
TI

OPTO IZOLATOR
(=OPTOCUPLOR)

OAPB
D

R3

Q2

Ec

R5
D

Opto
izolator

Separare galvanic prin opto izolator i transformator de impuls

Separarea galvanic se poate realiza:


1-43

- electromecanic: prin relee, contactoare i electrovalve;


- electromagnetic: prin transformatoare de impuls;
- optoelectronic: prin elemente semiconductoare fotosensibile cum sunt opto
izolatoarele.
Elementele de separare galvanic sunt prezentate n fig.1-1.5.
Separrile galvanice de tip electromecanic i electromagnetic introduc sarcini
inductive ce necesit protecie suplimentar la supratensiuni inductive de comutare.
Din exemplele prezentate rezult c separarea galvanic cu optocoplor impune
existena n circuitul de for a unei tensiuni suplimentare EC .
ntr-o serie de circuite cum sunt redresoarele comandate, contactoarele statice de
curent alternativ sau cicloconvertoarele, comanda fiecrui tiristor trebuie realizat pe
durata unei semialternane dintr-o tensiune alternativ de sincronizare generat cu
nfurri ale transformatorului de alimentare.
Rf

Eex

+5V

R1

Cf

L ex

GND

La

R2

Mcc

Ea

OAPB

Fig.3-1.5

Separare galvanic prin releu

+5V

RC
Q1

ea

Q2

usin
D1

t
0

D2

RB

ti

usin
ea

t
0

T+

u'sin
+5V

T = T+ + T = 2 (T+ + ti )

RB

t
0

RC

ua

u'sin
D

Fig.4-1.5

Circuite de sincronizare i forme de und


1-44

ntr-o comand numeric cu un automat, tensiunea alternativ de sincronizare


trebuie transformat ntr-un semnal rectangular ale crui impulsuri s indice fie o
alternan, fie trecerile prin zero ale tensiunii de sincronizare, semnalul rectangular de
nivel TTL putnd fi testat printr-o intrare a automatului.
Semnalul rectangular de sincronizare poate fi generat cu circuitele din fig.4-1.5
ntruct diodele i tranzistoarele au la deschidere o tensiune de prag up , pentru
circuitul se sincronizare cu dou tranzistoare, trecerea prin zero a tensiunii de sincronizare
ea e marcat n semnalul rectangular de sincronizare cu impulsuri pe a cror durat ti

-2up ea + 2up
iar pentru circuitul de sincronizare cu un tranzistor, n tensiunea rectangular de
sincronizare, durata T+ a altenanei pozitive difer de durata T a alternanei negative:
T T+ = 2 ti
Deci, intervalul ti introduce o incertitudine n detectarea att a trecerilor prin zero, ct
i a alternantelor tensiunii de sincronizare ea . Reducerea intervalului de incertitudine ti la
valori neglijabile se obine prin creterea amplitudinii tensiunii de sincronizare ea i
folosirea de dispozitive semiconductoare cu tensiune redus de prag.
Pe baza consideraiilor prezentate, controlul cu un automat al unui redresor
monofazat n punte semicomandat se realizeaz ca n fig.6-1.5.
+5V

E = 220Vef
RC

IAPB

usin

TR.

RB

Qsin

esin

DB

+ Ecc

RC1

RC2

RB1
Q0

OAPB

TUP

Dp

*
pr,

RB2

*
sec
.
TI

GND

Th1

D1

Th2

D2

La

Mcc

L ex

Uex

Fig.6-1.5

Redresor monofazat n punte semicomandat

Pentru redresorul monofazat n punte semicomandat, tensiunea rectangular de


1-45

sincronizare
prin intrarea

usin , format cu tranzistorul TS din tensiunea sinusoidal ea , este testat


IAPB a automatului ce va comanda tiristoarele cu impulsurile generate cu

oscilatorul de relaxare cu tranzistorul unijonciune programabil T, ct timp ieirea OK a


automatului este n starea logic 1. Prin ieirea O APB se controleaz att durata
comenzii tiristoarelor ct i momentul aplicrii comenzii.
Tiristoarele sunt comandate simultan n fiecare alternan, dar va intra in conducie
doar tiristorul polarizat direct.
Intervalul de incertitudine ti , introdus la formarea tensiunii
rectangulare de
sincronizare, poate fi estimat i apoi compensat n programul de comand prin modificarea
duratei unor temporizri.
Comanda cu un automat poate conduce la simplificarea controlului unei aplicaii.
Astfel, comanda cu un automat a unui redresor trifazat cu tiristoare necesit doar o
singur tensiune de sincronizare fapt evideniat n fig.7-1.5 pentru redresorul trifazat n
punte semicomandat.
E1

+5V

E2

E3

RC

IAPB

RB

Qsin

usin

esin

DB

+ Ecc

RB1

Co
Do

Qo

RB2

Rb
R1

OAPB.Th1
R2

Rp
TI

* Dp
w sec

wr
w pr

Th3

D3

Th2

D2

Th1

D1

L ex

Mcc

GND

Fig.7-1.5

Redresor trifazat n punte semicomandat

Pentru circuitul din fig.7-1.5, doar comanda tiristorului T1 este sincronizat cu


tensiunea usin , tiristoarele T2 i T3 fiind comandate dup 120 i respectiv 240 ,
intervale msurate precis prin temporizare. Fiecare tiristor este comandat prin cte un
oscilator de relaxare cu funcionare similar cu a oscilatorului de relaxare cu tranzistor
unijonciune programabil.
n controlul cu un automat al unui variator de tensiune continu (numit i chopper) nu
mai sunt necesare tensiuni de sincronizare ci doar temporizri precise. Astfel, controlul
1-46

chopperului cu stingere forat din fig.8-1.5 se face cu cele dou tiristoare T1 i T2


comandate la intervale precise de timp fiecare prion cte un generator autoblocat
monostabil declanat cu un impuls scurt pe ieirea automatului la care-i conectat.
Ec

RC
CB

R1

DB
Q

OAPB.Th1
R2

TI

RB

*
*
w r w pr

*
w sec
Th1

(-) +

La

D1

(+) -

+
E

L
-

Da

Th2

Mcc

L ex

Eex

R
D2

Fig.8-1.5 Chopper cu stingere forat

1-47

Capitolul 2
Teoria automatelor
2.1. Automate
Despre o main sau instalaie care realizeaz o serie de sarcini fr intervenie
uman se spune c este automatizat .
Automatizarea unei maini, instalaii, sau proces presupune realizarea unui bloc de
comand numit automat, care, n urma prelucrrii unor semnale ce i se aplic pe intrri,
emite la ieirile sale semnale de comand prin care determin realizarea unor sarcini.
Semnalele de la intrrile i ieirile unui automat realizat cu circuite logice, reprezint
informaii simbolizate n baza 2 de numeraie folosind simbolurile notate 0 i 1.
Semnalele logice de la intrrile i ieirile unui automat reprezentnd informaii binare,
rezult c un automat realizeaz funcia de control prin procesare de informaie.
Definiie
1). Un dispozitiv de prelucrare a informaiei se numete automat.
2). Automatul ale crui semnale logice de ieire depind n orice moment doar de
semnalele logice de intrare se numete automat combinaional sau circuit logic
combinaional.
Un automat combinaional materializeaz prin fiecare ieire
y j ; j =1, 2 , , p
cte o funcie logic
h j : Bk2 B2 ,
care pentru o combinaie logic

x = (x1,x 2 ,..,xk ) Bk2 = B2 B2 .. B2 ; xi B2 = {0,1}


de k ori
aplicat la cele k intrri ale sale, asociaz o stare logic de ieire
y j = h j (x)B2 = {0,1} .
Reunind funciile logice
h j : Bk2 B2

cu j = 1,2,.,p ,

ale celor p ieiri ale automatului combinaional, ntr-o funcie logic vectorial
h = (h1,h2 ,..,hp ): Bk2 Bp2 ,
ce asociaz unei combinaii logice

x = (x1,x 2 ,..,xk ) Bk2 = B2 B2 .. B2 ; xi B2 = {0,1} cu i = 1,2,..,k


aplicat la cele k intrri, o combinaie logic
h = (h1(x),h2 (x),..,hp (x)) Bp2 = B2 B2 .. B2 ; hi (x) B2 cu i = 1,2,..,p
generat la cele p ieiri, un automat combinaional are din punct de vedere matematic
urmtoarea:
Definiie
Se numete automat combinaional gruparea A = (X, Y, h(x)), n care X = mulimea
combinaiilor logice de intrare, numit alfabet de intrare, Y = mulimea combinaiilor logice
de ieire, numit alfabet de ieire, iar funcia logic
h:XY,
este numit funcie de ieire.
2-1

Un automat combinaional este simbolizat ca n fig.1.

h:XY

Fig.1 Reprezentarea unui automat combinaional


Controlul unei activiti automatizate, impune ca automatul, n funcie de valorile
logice a semnalelor aplicate pe intrri la un moment t, s emit la momentul t + t ,
anumite valori logice de comand pe ieirile sale.
Funcionarea unui automat este deci descris n timp, printr-o succesiune de etape
distincte numite secvene, n care se efectueaz anumite sarcini, spunndu-se c
automatul are o funcionare secvenial.
Definiii
1). Un automat ce determin efectuarea unei sarcini prin executarea de operaii ntr-o
succesiune temporal de etape, adic n mod secvenial, se numete automat secvenial.
2). Trecerea unui automat ntr-o alt stare se numete tranziie.
3). Durata dintre dou tranziii succesive se numete secven.
4). Identificarea noii stri interne dintr-o tranziie se numete secveniere.
5). O combinaie logic de ieire se numete comand.
Un automat secvenial poate reaciona diferit la o aceeai combinaie logic de
intrare, n funcie de nivelele logice memorate la ieirile unor circuite din componena sa,
fiecare combinaie logic ntre ieirile acestor circuite cu memorare codificnd o stare
intern a automatului. Un automat va fi deci caracterizat i de mulimea strilor interne n
care se poate afla, numit mulime de stare.
Deci, n orice moment, starea unui automat secvenial este caracterizat att prin
starea sa intern, ct i prin combinaia logic emis pe ieirile sale. Starea unui automat
secvenial nu se modific ntr-o secven.
Rezult c pentru un autromat secvenial, o combinaie logic a semnalelor de ieire
la un moment t + t este determinat att de combinaia logic a semnalelor de intrare,
ct i de starea intern a automatului de la momentul t. De asemenea, sub aciunea
combinaiei logice de intrare de la momentul t, circuitele automatului i vor modifica
nivelele logice, determinnd la momentul t + t alt stare intern pentru automat.
Circuitele automatului realiznd prelucrri logice, rezult c ieirea este rezultatul
unei funcii logice g(x,z), iar starea intern este rezultatul unei funcii logice f(x,z).
Pe baza consideraiilor de mai sus se poate scrie:
y(t + t) = g(x(t),z(t))

z(t + t) = f(x(t),z(t))
Cunoscnd funciile f(x,z) i g(x,z), se poate prevedea funcionarea automatului.
Un automat realizeaz i memorarea strii interne n care a ajuns, iar numrul
strilor interne ale automatului este limitat de numrul finit de circuite coninute.
Rezult c pentru un automat, din punct de vedere matematic, se poate da
urmtoarea:
Definiie
Se numete automat n sens Mealy, gruparea ordonat A=(X,Z,Y,f(x,z),g(x,z)), n
care X = { x0 ,x1,...,xn } este mulimea combinaiilor semnalelor de intrare, numit alfabet

de intrare, Y = { y0 ,y1,...yk } este mulimea combinaiilor semnalelor de ieire, numit


alfabet de ieire, Z = { z0 ,z1,...zk } este mulimea strilor interne numit mulime de stare,
f : X Z Z este funcia de tranziie, prin care se determin starea intern n care va
2-2

trece automatul dup aplicarea unei intrri, iar g : X Z Y este funcia de ieire, ce
indic ieirea pe care o genereaz automatul sub aciunea unei intrri.
Un automat Mealy se reprezint ca n fig.1-2.1, unde prin CLC s-au notat circuitele
logice combinaionale ce materializeaz funciile de tranziie f(x,z) i de ieire g(x,z).

xn X

CLC
zn +1 =

zn +1

CLC
yn+1 =

Memorie

zn

=g(xn ,zn )

yn+1 Y

zn Z

=f(xn ,zn )

Fig.1- 2.1 Automat Mealy

xn X

CLC
zn +1 =

=f(xn ,zn )

zn+1

Memorie

zn

zn Z

CLC
yn+1 =

=g(zn )

yn+1 Y

Fig.2-2.1 Automat Moore


Un caz particular de automat Mealy este automatul Moore A=(X,Z,Y,f(x,z),g(z)), care
difer de un automat Mealy prin funcia de ieire g : Z Y , reprezentarea unui automat
Moore fiind dat n fig.2-2.1.
Rezult c, att automatul Moore, ct i automatul combinaional reprezint cazuri
particulare ale automatului Mealy.
Definiii
a) Numrul de elemente al mulimii M se numete cardinal i se noteaz Card M, iar
pentru M = (= mulimea vid), Card = 0.
b) Automatul A=(X,Z,Y,f,g) se numete automat iniial dac exist o singur stare
z0 Z de la care se pune n funciune automatul, adic dac Card Zi = 1, unde Zi este
mulimea strilor din care poate porni automatul.
c) Un automat A=(X,Z,Y,f,g) se numete automat slab iniial dac exist cel puin
dou stri din care poate porni, adic: Card Zi > 1 .
d) Un automat A=(X,Z,Y,f,g) se numete automat neiniial, dac poate porni din orice
stare a sa, adic: Card Zi = Card Z.
e) Automatul A=(X,Z,Y,f,g) cu Card X = 1 , adic a crui evoluie e determinat de o
singur intrare, ce este necesar n validarea tranziiilor, se numete automat autonom,
sau orologiu.
Observaie
Denumirea de orologiu dat unui automat autonom se datoreaz faptului c,
indiferent din care stare intern pornete, secvena de ieire este periodic.
f) Un automat A=(X,Z,Y,f,g) se numete Z-determinist dac prin tranziie trece ntr-o
singur stare intern, adic:
z Z , x X : Card { f(x,y) } = 1.

2-3

g) Un automat A=(X,Z,Y,f,g) se numete Y-determinist dac, n urma unei tranziii,


trece ntr-o singur ieire, adic:
z Z , x X : Card { g(x,y) } = 1 .
h) Un automat A=(X,Z,Y,f,g) care este Z-determinist i Y-determinist se numete
automat determinist.
i) Se numete evoluie a unui automat A=(X,Z,Y,f,g) un ir de stri interne
z0 ,z1,...,zp , n care z0 este starea intern de nceput a evoluiei.
j) Se numete semiautomat ataat automatului A=(X,Z,Y,f,g), gruparea S A = (X,Z,f) ,
semiautomatele servind la analiza separat a tranziiei strilor interne.
Observaie
Unui automat A=(X,Z,Y,f,g) i se ataeaz un semiautomat unic, notat S A = (X,Z,f) , n
timp ce un semiautomat poate fi ataat mai multor automate ce difer prin ele prin Y i g.
k) Un automat
A=(X,Z,Y,f,g), dac:

A1 = (X1,Z1,Y1,f 1,g1)

se numete subautomat al automatului

X1 X, Z1 Z, Y1 Y i x X1, z Z1 : f 1(x,z) = f(x,z) i

g1(x,z) = g(x,z) ,

Iar subautomatul A1 = (X,Z1,Y,f 1,g1) reprezint forma redus a automatului A=(X,Z,Y,f,g).


l) Se numete macroautomat ataat automatului A=(X,Z,Y,f,g), automatul notat
MA = (X, Z* ,Y * ,F,G) , n care:
x X, (z) = (z0 ,z1,...zp ) Z* : F(x,(z)) = f(x,zi ) i G(x,(z)) = g(x,zi ) .
zi (z)

zi (z)

Pe durata funcionrii sale, unui automat i se aplic un ir de simboluri ale alfabetului


de intrare, fiecare gsind automatul n starea intern lsat de simbolul precedent, iar sub
aciunea irului de simboluri de intrare, automatul genereaz la ieirea sa un ir de
simboluri din alfabetul su de ieire.
Pentru un automat A=(X,Z,Y,f,g) aflat n starea z0 i ieirea y0 , care sub aciunea
irului de combinaii de intrare
not

(x) = x0 , x1,...,xn ,
va tranzita prin irul de stri interne
(z) = z1 , z2 ,..., zn+1 = f(x0 ,z0 ), f(x1, z1),..., f (xn , zn ) ,
intereseaz att irul combinaiilor de ieire generate, definit ca o funcie de ieire
def

G : X* Z Y * ; G(( x),z0 ) = g(x0 ,z0 ), g(x1,z1),..., g(xn ,zn ) .


ct i starea intern n care a ajuns automatul, definit ca o funcie de tranziie
def

F : X* Z Z ; F((x),z0 ) = zn +1 = f(xn ,zn )


Cu notaia
not

x0 ,x1,...,xn 1, xn = (x ') xn ,
se obine urmtoarea relaie de transformare
def

not

G((x ')xn,z0 ) = g(x0 ,z0 ),...,g(xn 1,zn 1),g(xn,zn ) = G((x '), z0 ), g(xn,zn ) =
not

= G((x '),z0 ),g( xn ,F((x '), z0 )) .


De asemenea rezult c
F((x ')xn ,z0 ) = zn +1 = f(xn , zn ) = f( xn , F((x '),z0 ))
Similar, cu notaia

2-4

not

x0 , x1,..., xn1,xn = x 0 (x ") ,


se obin urmtoarele relaii de transformare
def

G(x0 (x "),z0 ) = g(x 0 ,z0 ), g(x1,z1),...,g(xn,zn ) = g(x 0 ,z0 ), G((x "),z1) =

= g( x0 ,z0 ), G((x "),f(x0 , z0 )),

F(x 0 (x "),z0 ) = F((x "),z1) = F((x "),f(x 0 ,z0 ))


iar cu notaia
not

x0 ,x1,..., x j, x j+1,...,xn = (x A ),(xB )


se obine
def

G((x A )(xB ),z0 ) = g(x0 ,z0 ),g(x1,z1),...,g(x j,z j ), g(x j +1,z j+1),...,g(xn ,zn ) =
def

= G((x A ),z0 ), G((xB ), z j+1) = G((x A ),z0 ), G((xB ),F((x A ), z0 ))

F((x A )(xB ),z0 ) = F((xB ),z j+1) = F((xB ),F((x A ),z0 ))


Automatului ce i se aplic la intrare irul vid X* , i va pstra starea intern z0 i
ieirea y0 n care se afl:
F(, z0 ) = z0 = f( xk ,zk )
G(, z0 ) = y0 G(,f(xk ,zk )) = g(xk ,zk )
Pentru cazul particular al irurilor dintr-un element
(x0 ) = x 0 = x0 = x0 ,
rezult
G((x 0 ),z0 ) = G( x0,z0 ) = G(,f( x0 ,z0 )) = g( x0 , z0 )
F((x0 ),z0 ) = F( x0 ,z0 ) = f ( x 0 ,F(,z0 )) = f( x 0 ,z0 ) ,
fapt ce arat c funciile F i G sunt extensii pe iruri ale funciilor f i respectiv g.
n cele ce urmeaz funciile F i G vor fi notate prin f i respectiv g, relaiile de
transformare avnd urmtoarea form:

f((x)xn ,z0 ) = f(xn ,f((x),z0 ))


g((x)xn,z0 ) = g((x),z0 ),g(xn ,f((x),z0 ))
f(x0 (x),z0 ) = f((x),f(x 0 ,z0 ))
g(x0 (x),z0 ) = g(x0 ,z0 ),g((x),f(x 0 ,z0 ))
f((x A )(xB ),z0 ) = f((xB ),f((x A ),z0 ))
g((x A )(xB ),z0 ) = g((x A ),z0 ),g((xB ),f((x A ),z0 ))
f(,z0 ) = z0
g(,f(x0 ,z0 )) = g(x 0 ,z0 )

2.2. Automate conexe


Funcionarea unui automat este o secven de stri interne parcurs prin tranziie de
la o stare de nceput ctre starea intern final. n stabilirea funcionrii unui automat
apare necesitatea cunoaterii posibilitii de a ajunge ntr-o stare intern z j pornind dintr-o
stare intern zi , cu alte cuvinte dac starea intern z j este accesibil din starea intern zi
prin parcurgerea unor stri interne intermediare.

2-5

Definiii
a) Se spune c o stare intern z j este accesibil dintr-o stare intern zi dac exist
o secven de intrare ( xp ) X* ce descrie o funcionare posibil a automatului, astfel
nct: z j = f((xp ), zi ) .
b) Se spune c o stare intern z j este k-accesibil dintr-o stare intern zi , dac
lg(xp ) k , unde notaia lg (xp ) reprezint lungimea secvenei de intrare.
c) Se numete subautomat conex de stare intern z0 al automatului A=(X,Z,Y,f,g),
automatul A( z0 )= (X,Z( z0 ),Y,f,g) n care Z (z0 ) = { z, z0 z0 , zZ i z accesibil din z0 }.
d) Se spune c un automat A=(X,Z,Y,f,g) este conex de stare intern z0 dac
A = A(z0 ).
e) Se spune c un automat este tare conex dac orice stare intern a sa este
accesibil din oricare alt stare intern.
Teorem 1-2.2
ntr-un automat A=(X,Z,Y,f,g) cu Card Z = n, o stare intern z j accesibil dintr-una
zi este cel mult n -1 accesibil, adic:
(x) X* : z j = f((x), zi ) cu lg(x) n - 1
Demonstraie
Fie Z = {z1,z 2,...,zn } i (xp )= x1,x 2 ,..., xp X* .
Presupunem c pentru orice secven de intrare (xp ) X* , prin care se accede din
zi n z j , lg(xp ) = p n . Deoarece p n , rezult c n secvena de p stri interne, un
numr de p-n stri interne se vor repeta. Secvena de stri interne obinut va fi:
zi ,z1,...,zk ,...,zm ,...,z j , cu zk = zm ,
iar cea de intrare este:
(xp ) = x1,..., xk ,...,xm ,...,xp .
Rezult c exist i secvena de stri interne:
zi ,z1,...,zk ,zm +1,...,z j
n care zk apare o singur dat, obinut din secvena de intrare:
1
(x1p ) = x1,..., xk , xm +1,..., xp , cu lg(xp ) = p - (m - k) ,
adic o secven mai scurt cu m - k tranziii.
Secvena de intrare ( xp ) poate fi scurtat, n acest mod, pn la eliminarea tuturor

strilor interne ce se repet, adic pn cnd n secvena de stri interne rmn doar stri
interne distincte.
n cel mai defavorabil caz, secvena de stri interne (z) include toate cele n stri
interne ale automatului, prima stare intern fiind starea intern de plecare zi . Deci
lungimea secvenei de intrare este mai scurt cu un pas dect cea a strilor interne.
Deoarece:
lg(z) = n = Card Z ,
rezult c:
lg(x1p ) = lg(z) - 1 = n - 1 = Card Z - 1 ,

i deci:
2-6

not

(x1p ) = (x) X* : z j = f((x), zi ) cu lg(x1p ) = n - 1.


Consecin 2-2.2
Dac un automat A=(X,Z,Y,f,g) este tare conex, atunci:
zi, z j Z (xp ) X* : z j = f((xp ),zi ) , cu lg(xp ) < Card Z .
Demonstraie
ntr-un automat tare conex orice stare intern z j Z este accesibil din oricare alt
stare intern zi Z.
Conform teoremei anterioare rezult c:
(xp ) X* : z2 = f((xp ),z1) cu lg(xp ) =n 1

Card Z =n
zi,z j Z (xp ) X* : z j = f((xp ), zi ) , cu lg(xp ) < Card Z

2.3. Stri interne echivalente


Din punctul de vedere al funcionrii automatului interesez doar acele stri interne
care asigur automatului funcii diferite de ieire. ntre strile interne ale unui automat
exist i stri interne din care pornind automatul generez funcii identice pe ieire, adic
exist stri interne ce determin o aceeai funcionare a automatului.
O mulime de astfel de stri interne, asigurnd aceeai comportare pe ieire a
automatului, va fi nlocuit printr-o singur stare intern. Astfel, mulimea strilor interne
pe care trebuie s le asigure un automat fiind mai mic i stuctura automatului va rezulta
mai simpl.
Din aceast cauz, n faza de proiectare, se impune eliminarea strilor interne ce
determin aceeai funcionare pe ieirea automatului de realizat. Aceste stri interne
redundante se numesc stri echivalente deoarece se afl ntr-o relaie de echivalen.
Noiunea de relaie de echivalen se introduce n teoria mulimilor prin urmtoarele:
Definiii
a) Se numete relaie binar pe mulimile M1 i M2 , o proprietate notat R, ce exist
ntre elementele x M1 i y M2 (fapt notat prin xRy) ale fiecrei perechi dintr-o
submulime
M R = {(x, y) | x M1,y M2 , x R y } M1 M2
b) Se numete relaie binar pe mulimea de elemente M, o proprietate R ce exist
ntre elementele x, yM (fapt notat prin xRy) ale fiecrei perechi dintr-o submulime
M R = { (x,y) | x,yM, xRy } MM
c) O relaie binar R definit pe mulimea M se numete relaie de echivalen dac
are urmtoarele proprieti:
- este reflexiv : x M : xR x
- este simetric : x, y M : xR y yR x (relaia de echivalen e reciproc)
- este tranzitiv : x, y, z M : xRy i yRz xRz (relaia binar pe o mulime
de elemente echivalente ntre ele, este obligatoriu tranzitiv !)
O relaie de echivalen R pe o mulime M determin mprirea mulimii M n
submulimi nevide disjuncte ce epuizeaz mulimea M, toate elementele unei submulimi
fiind n relaie binar de echivalen. Aceste submulimi, induse de o relaie binar de
echivalen, se numesc clase de echivalen i constituie o partiie a mulimii M. Partiia
2-7

unei mulimi n clase de echivalen are la baz urmtoarea:


Teorem 1-2.3
Dou clase de echivalen dintr-o partiie indus de o relaie de echivalen R pe o
mulime M sunt, sau disjuncte, sau identice.
Demonstraie
Fie Mx = { z | zR x , z M } i My = { z | zR y, z M } dou clase de echivalen din
partiia indus pe mulimea M de relaia de echivalen R.
(a) Fie xRy .

z Mx : zR x
zR y z My Mx My
xR y

Mx = My
z My : zR y

zR x z Mx My My
xR y yR x

(b) Fie xR y .
Pentru demonstraie se folosete metoda reducerii la absurd .
Mx My k Mx ,My : k R x si k R y

k R x x Rk

xR y se contrazice ipoteza xR y
Deci: Mx My = .
Din cele prezentate mai sus rezult c dou stri interne z1,z2 Z ale unui automat
A=(X,Z,Y,f,g) sunt redundante, dac se afl n relaia R definit astfel:
z1 R z2 g((x),z1) = g((x),z2 ) (x) X* .
Aceast relaie R este una de echivalen, deoarece are urmtoarele proprieti:
- este reflexiv :

z Z : g((x),z) = g((x),z) (x) X* zR z


- este simetric:
z1,z2 Z : z1R z2 g((x),z1)= g((x),z2 ) (x) X* g((x),z2 )= g((x),z1) (x) X*
z2R z1
- este tranzitiv:
z R z g((x),z ) = g((x),z ) (x) X*
1
2
1
2

z1,z2,z3 Z :
*
z2R z3 g((x),z2 ) = g((x),z3 ) (x) X

g((x),z1) = g((x),z3 ) (x) X* z1R z3 .


Echivalena a dou stri interne ale unui automat se poate defini astfel:
Definiii
a) Dou stri interne z1,z2 Z ale unui automat A=(X,Z,Y,f(x,z),g(x,z)) se numesc
stri interne echivalente dac:

(x) X* : g((x),z1) = g((x), z 2 ) .


b) Dou stri interne din care pornind un automat genereaz secvene identice pe
ieire, se numesc stri interne echivalente.
2-8

Se pot introduce relaii de echivalen pentru secvene de intrare (x) X* de diferite


lungimi k=lg(x) astfel:

z1Rk z 2 (x) X* , lg(x)=k : g((x), z1) = g((x),z 2 ) .


Definiii
a) Dou stri interne z1,z2 Z ale unui automat A=(X,Z,Y,f,g), aflate n relaia
z1Rk z2 (x) X* , lg(x)=k : g((x), z1) = g((x),z2 ) ,
se numesc k-echivalente, altfel, fiind numite k-separabile, fapt notat prin
z1Rk z2 .
b) Dou stri interne ale unui automat se numesc stri interne echivalente dac
sunt k-echivalente pentru orice valoare a lui k:
z1R z2 z1Rk z2 k N .
c)
Se numete automat redus, un automat A=(X,Z,Y,f,g) fr stri interne
echivalente, adic:
z1,z2 Z : z1R z 2 z1= z2 .
Teorem 2-2.3
ntr-un automat A=(X,Z,Y,f,g), oricare dou stri interne k-echivalente sunt i mechivalente dac 1 m< k.
Demonstraie
Fie z1, z2 Z : z1Rk z2 (x) X* i lg(x) = k : g((x), z1) = g((x), z2 )

(x)' X* , lg(x)'=m < k, (x)' (x), lg(x)=k :g((x)',z1) = g((x)',z2 ) z1Rm z2


Teorem 3-2.3
ntr-un automat A=(X,Z,Y,f,g), stri interne echivalente trec n stri interne
echivalente.
Demonstraie
Fie z1,z2 Z : z1 R z2 (xp ) X* , cu lg(xp )= p =oarecare : g((xp ),z1)= g((xp ),z2 )
Avnd n vedere c : (xp ) = (xi )(x j ) cu lg(xp ) = lg(xi ) + lg(x j )

g((xi )(x j ),z1) = g((xi )(x j ),z 2 )

g((xi )(x j ),z1) = g((xi ),z1) g((x j ),f((xi ),z1)

g((xi )(x j ),z 2 ) = g((xi ),z2 ) g((x j ),f((xi ),z2 )


g((xi ),z1) = g((xi ),z2 ) deoarece z1R z2

g((x j ),f((xi ),z2 )) = g((x j ),f((xi ),z2 ))

(xi ) este un ir oarecare

f((xi ),z1)R f((xi ),z2 )

2.4. Automate echivalente


Corespondena ntre elementele a dou mulimi A i B are la baz urmtoarele:
Definiii
a) Fiind date dou mulimi A i B, o coresponden prin care unui element a A i se
atribuie un element b B , se numete funcie de la A la B i se noteaz:
f :A B

2-9

a A b B : b = f(a) .
b) O funcie f : A B se numete funcie surjectiv, dac:
B = { b | aA : b = f(a) }.
c) O funcie f : A B se numete funcie injectiv , dac:
a1,a2 A i a1 a2 f(a1) f(a2 ) .
d) O funcie f : A B ce este att injectiv, ct i surjectiv se numete funcie
bijectiv.
e) Fie dou funcii f : A B i g : A1 B , unde A1 A . Dac a A1 : f(a) = g(a) ,
atunci funcia g se numete restricia lui f pe A1 .
f) Fie dou funcii

f : A1 B1 i

g: A B

cu

B1 B

A1 A . Dac

a A1 : f(a) = g(a) , atunci funcia g se numete extensia funciei f.


Observaie
O funcie f : M A realizeaz o indexare a mulimii A cu mulimea de indici M,
elementul f(m) A fiind notat am .
Definiie
O funcie f peste o mulime M, ce realizez o coresponden ntre o parte a mulimii
MM = { (x,y) | x,yM } i mulimea M:
f : M M M
f(x,y) = x y M
se numete relaie binar, deoarece opereaz doar ntre dou elemente.
Teoria abstract a automatelor are la baz teoria matematic a grupurilor.
Definiii
a) Gruparea G=(M,g), unde M este o mulime, iar g : M M M cu g(x,y)=xy este o
relaie binar (numit i lege de compoziie intern), se numete semigrup, dac are
proprietile:
- x,yM : g(x,y) = x yM, adic M este nchis fa de relaia binar ;
- x,y,zM : g(g(x,y),z) = g(x,g(y,z)) sau (xy)z = x(yz), adic funcia g este
asociativ.
b) Un semigrup G=(M,g)se numete grup dac are proprietile:
- e M : x M g(e,x)=x sau e x = x , adic exist element neutru;
- x M x -1: g(x,x -1) = x x 1 =e, adic fiecare element xM are un invers.
c) Un grup G=(M,g) se numete grup comutativ dac are i proprietatea de
comutativitate:
- x,y M : g(x,y)=g(y,x) sau x y = y x
d) O grupare H=(M1,g) se numete subgrup al unui grup G=(M,g), dac este grup i
dac M1 M .
e) Fiind date dou grupuri:
G1 = (M1,g1) cu g1 : M1 M1 M1 , g1 (x,y) = x y M1 i
G2 = (M2,g2 ) cu g2 : M2 M2 M2 , g2 (z,t) = z t M2 , o aplicaie h : M1 M2 cu
proprietatea:
x,y M1 : h(g1(x,y)) = g2 (h(x),h(y)) ,
proprietate ce poate fi pus sub forma:
x,y M1 : h(x y) = h(x) h(y) ,
se numete omomorfism al grupului G1 n grupul G2 .

2-10

f) Un omomorfism bijectiv

h : M1 M2

ntre dou grupuri

G2 = (M2,g2 ) se numete izomorfism.


Observaie
Din cele de mai sus, rezult c un omomorfism

G1 = (M1,g1)

h : M1 M2 al unui grup

G1 = (M1,g1) ntr-un grup G2 = (M2,g2 ) , face trecerea de la grupul G1 = (M1,g1) , la grupul


G2 = (M2,g2 ) , prin realizarea ntre mulimile M1 i M2 , a unei corespondene ce pstreaz
relaiile binare ale funcionarea grupurilor, g1 i g2 . Altfel spus, un omomorfism
h : M1 M2 realizeaz simularea grupului G1 = (M1,g1) , n grupul G2 = (M2,g2 ) .
n studiul automatelor apare necesitatea reproducerii pe un automat
A 2 = (X2,Z2 ,Y2 ,f2 ,g2 ) a funcionrii altui automat A1 = (X1,Z1,Y1,f1,g1) , fapt ce implic
existena a trei funcii:
: X1 X2 , :Z1 Z2 , : Y1 Y2 ,
ce s pstreze relaiile binare f1, g1 , f2 , g2 , adic existena unui omomorfism h=(,,) al
automatului
A1 = (X1,Z1,Y1,f1,g1) n automatul A 2 = (X2,Z2 ,Y2 ,f2 ,g2 ) , definit prin
urmtoarele relaii:
h(f1(x,z)) = f2 (h(x),h(z))
(f (x,z)) = f2 ((x), (z))
1

h(g1(x,z)) = g2 (h(x),h(z))
(g1(x,z)) = g2 ((x), (z))
Definiie
Dac ntre dou automate A1 = (X1,Z1,Y1,f1,g1) i A 2 = (X2,Z2 ,Y2 ,f2 ,g2 ) exist un
omomorfism bijectiv h=(,,) se spune c automatele sunt automate izomorfe.
Rezult
c
pentru
dou
automate
A 2 = (X2,Z2 ,Y2 ,f2 ,g2 ) exist egalitile:

izomorfe

A1 = (X1,Z1,Y1,f1,g1)

Card X1 = Card X2 , Card Z1 = CardZ2 i Card Y1 = Card Y2 ,


adic cele dou automate difer doar prin notaiile intrrilor, a strilor interne i a ieirilor,
i c exist un omomorfism invers bijectiv:
h1 = ( 1, 1, 1) ,
de la automatul A 2 = (X2,Z2 ,Y2 ,f2 ,g2 ) la automatul A1 = (X1,Z1,Y1,f1,g1) .
Deci, dac ntre dou automate A1 =(X1,Z1,Y1,f1,g1) i A 2 =(X2,Z2 ,Y2 ,f2 ,g2 ) exist
un izomorfism h=(,,), atunci sunt valabile reprezentrile automatelor din fig.1-2.4 .
Observaie
Omomorfismul
h=(,,),
dintre
automatele
A1 =(X1,Z1,Y1,f1,g1)
i
A 2 =(X2,Z2 ,Y2 ,f2 ,g2 ) , poate fi extins pe iruri de simboluri:

: X1* X2* ; : Z1* Z *2 ; : Y1* Y2* .


n sinteza unui automat, se opereaz cu automate avnd aceleai mulimi X i Z, un
omomorfism h=(,,) ntre dou astfel de automate A1 =(X,Z1, Y,f1,g1) i
A 2 =(X,Z2, Y,f2 ,g2 ) , fiind un omomorfism de stare intern:

h = : Z1 Z 2 ; z j Z1 z ' j Z2 : z ' j = (z j )
: X X; x X: x = (x)
: Y Y; y Y: y = (x)
2-11

Definiii
a) Fiind date dou automate A1 =(X,Z1, Y,f1,g1) i A 2 =(X,Z2, Y,f2 ,g2 ) , dou stri
interne z1 Z1 i z2 Z2 se numesc stri interne echivalente i se noteaz z1 R z2 dac:

x X* : g1((x),z1) = g2 ((x),z2 ) .
b) Dou automate A1 =(X,Z1, Y,f1,g1) i A 2 =(X,Z2, Y,f2 ,g2 ) se numesc automate
echivalente dac orice stare intern a unui automat are una echivalent n cellalt
automat.

X2

X1

A1

Y1

X2

A2

Y2

Y2

A2

X1

Y1

A1
Fig.1-2.4 Reprezentarea a dou automate izomorfe A1 i A 2
Strile interne echivalente ale unui automat fiind redundante, vom considera n cele
ce urmeaz doar automatul redus care pstreaz aceeai funcionare i nu are stri
interne echivalente.
Teorem 1-2.4
Dac n automatele A1 =(X,Z1, Y,f1,g1) i A 2 =(X,Z2, Y,f2 ,g2 ) strile interne z1 Z1 i
z2 Z2 sunt echivalente, z1 R z2 , atunci:
(x) X* : f1((x),z1) R f2 ((x),z2 ) ,
adic, n dou automate, din stri interne echivalente se tranziteaz tot n stri interne
echivalente.
Demonstraie

z1R z 2 (x) X* : g1((x),z1) = g2 ((x),z 2 )

(x)(y) X* g1((x)(y),z1) = g1((x)(y),z2 )


g1((x)(y),z1) = g1((x),z1) g1((y),f1((x),z1))
g2 ((x)(y),z2 ) = g2 ((x),z2 ) g2 ((y),f2 ((x),z2 ))
(y) X* : g1((y),f1((x),z1)) = g2 ((y),f2 ((x),z 2 ))

f1((x),z1) R f2 ((x),z2 )

(x) X* , irul (x) fiind un ir oarecare


Teorema 2-2.4
Dou automate izomorfe sunt echivalente.
Demonstraie
Fie A1 =(X1,Z1,Y1,f1(xk ,zk ),g1(xk ,zk )) i A 2 =(X2,Z2 ,Y2 ,f2 (x 'k ,z 'k ),g2 (x 'k ,z 'k ))
dou automate i h =(,,) un omomorfism bijectiv ntre aceste automate, definit astfel:

2-12

: X1 X2 ; x j X1 x' j X2 : x' j = (x j )
:Z1 Z2 ; z j Z1 z' j Z2 : z' j = (z j )
: Y1 Y2

; y j Y1 y' j Y2 : y' j = (y j )
(f1(x j,z j )) = f2 ((x j ), (z j ))
(a)
(g1(x j,z j )) = g2 ((x j ), (z j )) (b)
Pentru irul combinaiilor de intrare

x 0 , x1,..., xn X1*
automatul A1 va trece prin irul de stri interne
z0 , z1 = f1(x 0 ,z0 ),...,zn +1 = f1(xn ,zn ) Z1*
i prin irul de ieiri
y 0 , y1 = g1(x 0 ,z0 ),...,yn +1 =g1(xn ,zn ) Y1*
cruia i va corespunde n mulimea Y2* , prin funcia bijectiva , urmtorul ir de ieiri ale
automatului A 2 :

y '0 = (y o ), y '1 = (y1),..., y 'n +1 = (yn +1) Y2* .


Automatul A 2 , sub aciunea irului de intrare
x '0 = (x 0 ), x '1 = (x1),..., x 'n = ( xn ) X*2
va trece prin irul de stri interne:
(a)

(a)

z '0 = (z0 ), z '1 = f2 ((x0 ), ( z0 )) = (z1),..., z 'n +1 = f2 ((xn ), (zn )) = (zn+1) Z*2
i prin irul de ieiri:
(b)

(b)

y '0 = (y0 ), y '1 = g2 ((x0 ), ( z0 )) = (y1),..., y 'n +1 = g2 ((xn ), (zn )) = (yn+1) Y2* .
Din irurile determinate, rezult urmtoarea conexiune dintre automatele A1 i A 2 :

X1

A1

Y1

X1

A '1

X2

A2

Y2

A '2

Y2

cu urmtoarea echivalen:
( A '1 = A1 ) R ( A '2 = A 2 ) ,
automatele A '1 i A '2 avnd comportare identic pe ieire.
Deoarece funciile bijective i realizeaz doar o modificare de notaii, rezult i
urmtoarea echivalen:
A1 R A 2 .
Teorema 4-2.4
Orice automat Moore are un echivalent Mealy.
Demonstraie
Fie un automat determinist Moore:
A = (X,Z,Y,f(xk ,zk ),g(zk )) .

2-13

Pentru orice stare intern zk = f(xk 1,zk 1) a automatului Moore, exist relaia:
not

zk Z : g ( zk ) =g(f(xk 1,zk 1)) = G(xk 1,zk 1) ,


astfel c automatul Moore A poate fi pus n urmtoarea form:
not

A = (X,Z,Y,f(xk ,zk ),g(zk )) = (X,Z, Y,f(xk ,zk ),G(xk 1,zk 1)) .


Din ultima relaie, rezult c exist un automat Mealy
A' = (X,Z,Y,f(xk ,zk ),G(xk ,zk )) ,
din care, ntrziind ieirea cu o tranziie, se obine automatul Moore
A = (X,Z,Y,f(xk ,zk ),g(zk )=G(xk-1,zk-1)) .
Trecerea de la automatul Moore la automatul Mealy se face cu grupul de aplicaii
h = (, , )

: X X ; (xk ) = xk
:Z Z ; (zk ) = zk
: Y Y ; (g(zk )) = g(zk +1)
Deoarece:
not

(g(zk )) = g(zk +1) = g(f(xk ,zk )) = G( xk ,zk ) = G((xk ), ( zk )) ,


rezult c h=(,,) este un omomorfism de ieire, care, din modul de construcie al
automatului Mealy, este i surjectiv, adic h=(,,) este un izomorfism.
Deci, conform teoremei anterioare, cele dou automate sunt izomorfe i astfel implicit
echivalente.

xm
yp

x0
y1

zi

zk

xr
y0

xn
yq

zj

x0
y1

xr
y0

z1k

zk2

xn
yq

xm
yp
xn
yq

zi

xm
yp
zj

Fig.2-2.4 Transformarea intermediar a unui automat Mealy


Observaie
Automatul Mealy are ns proprietatea c tranziiile de intrare ntr-o stare intern,
determin aceeai ieire pentru automat. Orice automat Mealy poate avea aceast
proprietate dac fiecare stare intern zk , n care se intr prin tranziii ce determin ieiri
diferite pentru automat, este divizat n attea stri interne cte ieiri diferite apar n
tranziiile sale de intrare, fiecare dintre noile stri interne pstrnd din starea intern din
care provine aceleai tranziii de ieire i doar tranziiile de intrare ce determin o aceeai
ieire a automatului. Pentru un automat Mealy reprezentat sub form de graf, aceast
transformare se realizeaz ca n fig.2-2.4.
Teorem 5-2.4
Orice automat Mealy are un automat echivalent Moore.
Demonstraie
Fie A = (X,Z,Y,f(xk ,zk ),g(xk ,zk )) , un automat determinist Mealy.

2-14

Avnd n vedere c :
not

xk X , zk Z : g(xk ,zk ) = g(f 1(zk +1)) = G(zk +1) , unde:

f 1 :Z X Z ; f 1(zk +1) = (xk ,zk )


este inversa funciei de tranziie
f : X Z Z ; f(xk ,zk ) = zk +1 ,
automatul Mealy poate fi pus n forma:
not

A = (X,Z,Y,f(xk ,zk ,g(xk ,zk )) = (X,Z,Y,f(xk ,zk ),G(zk +1))


Din ultima form a automatului Mealy, rezult c exist un automat Moore:
A' = (X,Z,Y,f(xk ,zk ),G(zk )) ,
la care se ajunge prin ntrzierea automatului Mealy cu o tranziie pe ieire, fiind necesar
ns ca automatul Mealy s aib proprietatea ca n fiecare stare intern a sa se intr prin
tranziii ce determin aceeai ieire pentru automat, deoarece, n caz contrar, funcia
f 1(z j ) ar introduce nedeterminare pe ieirea automatului Mealy presupus determinist.
De la automatul A de tip Mealy, la automatul A de tip Moore, se trece cu aplicaia:
h = (, , )

: X X ; (xk ) = xk
:Z Z ; (zk ) = zk
: Y Y ; (g(xk ,zk )) = g(xk 1,zk 1)
Deoarece:
not

(g(xk ,zk )) = g(xk 1,zk 1) = g(f 1(zk )) = G(zk ) = G((zk )) ,


rezult c h=(,,) este un omomorfism de ieire, care, din modul de construcie al
automatului Moore, este i surjectiv, adic h=(,,) este un izomorfism.
Deci, cele dou automate, A = de tip Moore i A = de tip Mealy, sunt izomorfe i
implicit echivalente.

2.5. Automate incomplet definite


n practica automatizrilor industriale, exist multe cazuri n care anumite combinaii
ale semnalelor de intrare nu intereseaz n procesul comandat n care nu au efect. n
aceste condiii o serie de tranziii nu vor fi utilizate, neinteresnd ce va genera automatul
pe ieirile sale n aceste cazuri.
Definiii
a) Se numete automat incomplet definit, automatul ale crui combinaii de intrare
sunt o submulime a tuturor combinaiilor de intrare posibile, adic automatul avnd
tranziii nedefinite.
b) Dou stri interne z1 , z2 Z ale unui automat incomplet definit A=(X,Z,Y,f,g) se
numesc stri interne compatibile i se noteaz z1 C z2 dac (x) X* : g((x),z1) = g((x),z2 )
cnd g((x),z1) i g((x),z2 ) sunt specificate, adic, dac pornind din aceste stri interne,
ieirile generate sunt identice cnd sunt specificate.
Noiunea de compatibilitate este o generalizare a noiunii de echivalen, deoarece,
pentru combinaiile de intrare n care nu-i definit, un automat poate fi redefinit oricum, fr
a se afecta funcionarea sa.
Noiunea de compatibilitate este ns mai slab dect cea de echivalen, deoarece
i lipsete proprietatea de tranzitivitate.

2-15

Astfel, pentru trei stri interne z1 , z2 , z3 Z ale unui automat A=(X,Z,Y,f,g)


incomplet definit, n care:
(x) X* i (x) (x)0 : g((x),z1) = g((x),z2 ) = g((x),z3 ) i g ( (x)0 , z1 ) g ( (x)0 , z3 ),
iar g( (x)0 , z2 ) = nedefinit, se observ c:
z1 C z2 , z2 C z3 , dar z1 C z3
Definiii
a) Dou stri interne zi , z j Z ale unui automat A=(X,Z,Y,f,g) incomplet definit, se
numesc compatibil determinate, sau direct compatibile (ori direct observabile) dac:
x X : g(x,zi ) = g(x,z j ) , cnd sunt definite i fie f(x,zi ) = zi / z j i f(x,z j ) = z j / zi ,
fie f(x,zi ) = f(x,z j ) , fie f(x,zi ) C f(x,z j ) ;
b) Dou stri interne zi , z j Z ale unui automat A=(X,Z,Y,f,g) se numesc compatibil
nederminate, dac:

(x) X* : g((x),zi ) = g((x),z j ) cnd sunt definite, dar (x)0 X* : f ( (x)0 , zi )


f( (x)0 , z j ) .
Observaie
Din cele prezentate rezult c ntr-un automat complet definit relaia de
compatibilitate reprezint o relaie de echivalen.

2.6. Reprezentarea automatelor


n reprezentarea unui automat A=(X,Z,Y,f,g) trebuie s se evidenieze elementele
mulimilor X, Z, Y i funciile de tranziie f i de ieire g. Cele mai uzuale reprezentri
pentru un automat sunt: organigrama funcional, graful de fluen, tabelul de adevr i
matricea de conexiuni.
n cele ce urmeaz aceste reprezentri au fost exemplificate pentru aceleai dou
automate: unul de tip Mealy i altul de tip Moore.

Organigrama funcional

Modul de reprezentare a automatelor Mealy i Moore prin organigram funcional


este ilustrat n fig.1-2.6 .
n reprezentarea prin organigram funcional a unui automat, comenzile generate de
automatul aflat ntr-o stare intern sunt specificate n tranziia prin care s-a intrat n acea
stare intern. O tranziie va fi caracterizat prin ieirea i starea intern pe care le
genereaz, adic prin modificrile pe care le determin n automat. Astfel, n organigrama
funcional a automatului Mealy reprezentat n fig.1-2.6, tranziia z1 z3 va fi simbolizat

z3
care definete o stare a automatului.
y2
Reprezentarea prin organigram funcional, numit i organigram ASM, este
legat de tehnica microprogramrii n care un automat secvenial este numit main
algoritmic de stare i notat ASM (= Algorithmic State Machine), organigrama funcional
fiind compus din blocuri distincte numite blocuri ASM. Un bloc ASM, ce descrie
funcionarea automatului aflat ntr-o stare intern, indic starea intern n care se afl
automatul, testele logice de fectuat, comenzile date pe ieirea automatului i strile interne
n care se poate tranzita din starea curent. ntr-o organigram funcional, orice cale ce
leag o stare intern de una imediat urmtoare se numete conexiune de stri interne.
Un automat determinist va tranzita dintr-o stare intern curent, ctre o singur stare
intern urmtoare, dar care va fi determinat de combinaia de intrare aplicat.
prin notaia

2-16

Cele trei elemente ale unui bloc ASM sunt: cercul (ce reprezint o stare intern),
dreptunghiul (ce conine comenzile generate la ieirile automatului) i rombul sau
triunghiul (ce indic mrimea logic testat i strile interne n care se poate tranzita).
Bloc ASM
z1

z1
Conexiune
stare

= x1

y1

y2

z2

= x1

= x2

z3
= x2

y1

y2

z2

z3

= x1

= x2

= x2

= x1

y1

y1

y1

Automat
Mealy

y2

Automat
Moore
= x2

= x2

= x1

= x1
y1

y2

y1

y2

Fig.1-2.6 Reprezentare automate prin organigram funcional

Graful de fluen

Graful, ca reprezentare a unui automat Mealy, conine cte un nod pentru fiecare
stare intern a automatului, iar o tranziie de la starea intern zi ctre starea intern z j se
reprezint printr-un arc orientat de la nodul zi spre nodul z j i pe care att intrarea

xp care genereaz tranziia, ct i ieirea yq emis de automat sunt specificate prin


notaia simbolic

xp
yq

Pentru un automat Moore ieirea fiind univoc asociat unei stri interne, va fi
specificat n nod, pe arcele tranziiei indicndu-se doar intrarea ce determin tranziia.
2-17

x1
y1

x1
y1
z1

x2
y2

x1
y2

z1
y1

z2
y1
x1

z2

x2
y1

x2
x2

x2

x2
y1

z3

x1

x1

z3
y2

a) Automat Mealy
b) Automat Moore
Fig.2-2.6 Reprezentarea prin graf de fluen a unui automat

Tabelul de adevr

Un automat Mealy va fi reprezentat prin dou tabele de adevr, fiecare avnd cte o
coloan pentru fiecare combinaie de intrare i cte o linie pentru fiecare stare intern. Un
tabel de adevr e destinat valorilor funciei de tranziie f, iar cellalt valorilor funciei de
ieire g.
f(x,z)

x1

x2

g(x,z)

x1

x2

z1

z2

z3

z1

y1

y2

z2

z2

z3

z2

y1

y1

z3

z1

z2

z3

y2

y2

Fig.3-2.6 Reprezentarea tabelar a automatului Mealy

f(x,z)
g(x,z)

x1

x2

z1

z2
y1

z2

z2
y1

z3
y2
z3
y1

z3

z1
y2

z2
y2

Fig.4-2.6 Reprezentare automat Mealy cu tabel de adevr condensat


Cele dou tabele de adevr de reprezentare a unui automat Mealy din fig.3-2.6, pot fi
reunite ntr-un singur tabel, aa cum se arat n fig.4-2.6 .
Un automat Moore se reprezint cu un singur tabel, cel al funciei de tranziie, n care
la coloanele combinaiilor de intrare se adaug o coloan pentru ieirile generate de
automat n fiecare stare intern (fig.5-2.6).
2-18

f(x,z)

x1

x2

g(z)

z1

z2

z3

y1

z2

z2

z3

y1

z3

z1

z2

y2

Fig.5-2.6 Reprezentarea tabelar a automatului Moore

Matricea de conexiuni
z2

x1
y1
z1

x2
y1

x1
y1

x2
y1

MC =

z3

x1

z1
y1

x1 x 2
+
y2 y2

z2
y1

x1
x2

z1

z2

z3

x1
y1

x2
y1

z1

z2

x1
y1

x1
y1

z3

x1 x2
+
y 2 y2

x1 + x 2

x2

z3
y2

x1

x2

x1

x2

x1 + x 2

y1

not

y1

= Mx My

y2

Moore

Fig.6-2.6 Reprezentarea unui automat Moore prin matrice de conexiuni

x2
y2

z1

z2

x1
+
y1

x2
y2

x2
y1

x1
y1
x1
y1

z3

z1
MC =

z2
z3

z1

z2

z3

x1 x 2
+
y1 y 2

x1
y1

x2
y1

x2
y2
x1
y1

Mealy
Fig.7-2.6 Reprezentarea unui automat Mealy prin matrice de conexiuni
2-19

Un automat A=(X,Z,Y,f,g) mai poate fi reprezentat i printr-o matrice ptrat, numit


matrice de conexiuni, avnd attea linii cte stri interne are automatul:
MC = c ij cu i,j = 1,2, ... ,Card Z i
c ij =

xp

zi z j y q

= reuniunea perechilor

xp
yq

prin care se realizeaz tranziia zi z j .

Matricea de conexiuni se obine din graful automatului, aa cum se arat n fig.7-2.6


pentru automatul Mealy i n fig.6-2.7 pentru automatul Moore.

2.7. Stri compatibile


Compatibilitile ntre strile interne ale unui automat A=(X,Z,Y,f,g) pot fi indicate
matriceal prin matricea de compatibilitate Mk avnd alocat pentru fiecare stare intern
cte o linie i cte o coloan n care compatibilitatea ntre strile interne zi i z j este
marcat prin punerea n 1 logic a elementelor din matrice aflate la intersecia dintre linia
unei stri interne i coloana celeilalte stri interne, n timp ce incompatibilitatea ntre
aceste stri interne este marcat prin punerea acestor elemente ale matricei n starea
logic 0. Relaia de compatibilitate fiind simetric, determin ca matricea de
compatibilitate Mk s fie simetric fa de diagonala principal, iar toate elementele
diagonalei principale sunt n starea logic 1, pentru c fiecare stare intern este
compatibil cu ea nsi. Automatul A=(X,Z,Y,f,g) avnd matricea de compatibilitate:
..

Mk =

..
zi
..
zj

zi

..

..
zq

zj

..

zq

..

1
1

1
0

..

are strile interne zi i z j compatibile ntre ele, dar incompatibile cu starea intern z q .
Matricea de compatibilitate asociat strilor interne zi i z j este matricea unitate:

M k.ij =

zi

zj

zi

zj

Un grup de stri interne fiind compatibile dac oricare dou stri interne ale grupului
sunt compatibile ntre ele, rezult c matricea de compatibilitate asociat acestui grup de
stri interne este o matrice unitate coninut n matricea de compatibilitate a automatului.
Pentru simplificarea determinrii compatibilitilor ntre strile interne ale unui
automat se evideniaz doar compatibilitaile nedeterminate ntre dou stri interne zi i

2-20

z j prin analiza n tabelul de adevr al automatului doar a tranziiilor imediate din aceste
stri interne, compatibilitatea fiind indicat prin variabila cij , iar incompatibilitatea prin c ij .
Relaia de compatibilitate fiind simetric ( c ij =c ji ), se convine a se folosi doar
variabilele cij i c ij pentru care i < j. Astfel, compatibilitatea ntre dou stri interne zi i
z j poate fi exprimat analitic cu funcia logic:

fk.ij =c ij c mn + c ij c mn ,
care arat c strile interne zi i z j sunt compatibil nederminate dac strile interne zm i
zn n care se tranziteaz pentru fiecare x X sunt compatibil nederminate, sau strile
interne zi i z j sunt incompatibile dac exist cel puin un x X pentru care strile
interne zm i zn n care se tranziteaz sunt incompatibile.
Rezult c mulimea compatibilitilor peste mulimea Z a strilor interne ale
automatului A=(X,Z,Y,f,g) poate fi exprimat cu urmtoarea funcie de compatibilitate:
fk = fk.ij ,
i< j

n a crei expresie termenii coninnd variabilele cij i c ij sunt eliminai ntruct dou stri
interne zi i z j nu pot fi simultan compatibile i incompatibile.
Fiecare termen al funciei fk evideniaz o posibilitate de compatibilitate pe mulimea
strilor interne. Dintre compatibilitile din funcia logic fk se alege cea mai avantajoas.
Observaie
Cea mai simpl form a unui automat este de tip Mealy, dar analiza compatibilitilor
pe baza tabelei de adevr a automatului este mult simplificat dac automatul este de tip
Moore. De aceea se recomand transformarea Mealy Moore echivalent urmat de
identificarea compatibilitilor n automatul Moore echivalent i determinarea automatului
Moore redus. Apoi printr-o transformare Moore redus Mealy echivalent se determin
automatul Mealy redus ce corespunde celei mai simple realizri practice.
Exemplu de sintez
S se determine automatul Mealy cu urmtoarea tabel de adevr:

f(xk ,zk )
g(xk ,zk )

x1
x2
x3
x4
=00 =01 =11 =10

z0

z1
y0

z2
y0

z0
y0

z1
y1

z1

z0
y0

z2
y0

z0
y0

z1
y1

z2

z1
y1

z2
y0

z0
y0

z3
y1

z3

z2
y0

z1
y1

z0
y0

z3
y1

Rezolvare
Automatul fiind de tip Mealy, se va determina automatul echivalent de tip Moore n
urmtoarele etape:

2-21

Automatul dat are urmtoarea matrice de conexiuni:

z0
z1
z2
z3

z0

z1

z2

z3

x3
y0
x1 + x3
y0
x3
y0
x3
y0

x2
y0
x2
y0
x2
y0
x1
y0

x1 x 4
+
y0 y1
x4
y1
x1
y1
x2
y1

x4
y1
x4
y1

- Se obine automatul Mealy intermediar diviznd starea z1 n strile z1 i z 4 :

z0
z1
MC =

z2
z3
z4

z0

x3
y0
x1 + x3
y0
x3
y0
x3
y0

z1

x4
y1
x4
y1
x1
y1
x2
y1

z2

x2
y0
x2
y0
x2
y0
x1
y0

x1 + x3
y0

x4
y1

x2
y0

z3

x4
y1
x4
y1
-

z4

x1
y0
-

- Prin ntrzierea ieirilor automatului Mealy intermediar cu o tranziie, se obine


automatul Moore echivalent cu urmtoarea matrice de conexiuni:

z0
z1
MC =

z2
z3
z4

z0

x3
y0
x1 + x3
y1
x3
y0
x3
y1
x1 + x3
y0

z1

x4
y0
x4
y1
x1
y0
x2
y1
x4
y0

z2

x2
y0
x2
y1
x2
y0
x1
y1
x2
y0

z3

x4
y0
x4
y1
-

z4

x1
y0
-

2-22

- Pentru automatul Moore astfel generat se obine urmtoarea tabel de adevr:


f(x, y)

x1

x2

x3

x4

g(z)

z0

z4

z0

z1

y0

z1

z0

z2
z2

z0

z1

y1

z2

z1

z2

z0

z3

y0

z3

z2

z1

z0

z3

y1

z4

z0

z2

z0

z1

y0

- Din tabela de adevr a automatului Moore, se determin strile interne compatibile


cu urmtoarele funcii de compatibilitate:
fk.01 =c 01 ; fk.02 = c 02 .c13 c14 + c 02 .(c14 + c13 ) ; fk.03 = c03 ; fk.04 = c 04 ;

fk.12 = c12 ; fk.13 = c13 . c 02 c12 + c13 .( c12 + c 02 ) ; fk.14 = c14 ;


fk.23 = c 23 ; fk.24 = c 24 . c01 c13 + c 24 .( c13 + c 01) ; fk.34 = c 34 .
Funcia de compatibilitate global a automatului Moore este:
fk = fk.ij =c 01 .[c 02 .c13 c14 + c 02 .(c14 + c13 )].c 03 .c 04 .c12 .[c13 .c 02 c12 + c13 .( c 02 +
i< j

+c12 )].c14 .c 23 .[c 24 .c 01 c13 + c 24 .(c 01 + c13 )].c 34 =


=c 01 .c 02 .c 03 .c 04 .c12 .c13 .c14 .c 23 .c 24 .c 34 z0Cz 4 .
Deoarece z0Cz 4 , matricea de compatibilitate a automatului Moore este:
z0

z1

z2

z3

z4

z1

1
0

0
1

0
0

0
0

1
0

z2

z3

z4

z0
Mk =

- Eliminnd starea intern z 4 , se obine automatul Moore redus:


z0

z1

z2

z3

x1 + x3
y0

x4
y0

x2
y0

z1

x1 + x3
y1

x4
y1

x2
y1

y0

z2

x3
y0

x1
y0

x2
y0

x4
y0

y1

z3

x3
y1

x2
y1

x1
y1

x4
y1

f(x, y)

x1

x2

x3

x4

g(z)

z0

z0

z2

z0

z1

y0

z1

z0

z2

z0

z1

y1

z2

z1

z2

z0

z3

z3

z2

z1

z0

z3

z0
=

2-23

- Automatul Mealy, echivalent automatului Moore redus, are urmtoarea matrice de


conexiuni:

z0
z1
z2
z3

z0

x1 + x3
y0
x1 + x3
y0
x3
y0
x3
y0

z1

x4
y1
x4
y1
x1
y1
x2
y1

z2

x2
y0
x2
y0
x2
y0
x1
y0

z3

x4
y1
x4
y1

- n matricea de conexiuni a automatului Mealy strile interne z0 i z1 avnd aceleai


tranziii de ieire pe linii identice, pot fi reunite ntr-o singur stare intern z0 , prin
eliminarea strii interne z1 a crei linie dispare i a crei coloan este reunit la coloana
strii interne z0 . Astfel se obine automatul Mealy redus ale crui matrice de conexiuni i
tabel de adevr sunt:
z0

z2

z3

x1 + x3 x 4
+
y0
y1

x2
y0

f(xk ,zk )
g(xk ,zk )

z0

z2

x3 x1
+
y0 y1

x2
y0

x4
y1

z3

x3 x 2
+
y0 y1

x1
y0

x4
y1

z0

x1
x2
x3
x4
=00 =01 =11 =10
z0
z0
z0
z2
y0
y0
y0
y1

z2

z0
y1

z2
y0

z0
y0

z3
y1

z3

z2
y0

z0
y1

z0
y0

z3
y1

Fiecare stare intern a unui automat, fiind o combinaie a strilor logice n care se
afl circuitele integrate digitale din componena automatului, are o codificare binar
proprie prin care poate fi identificat. Numrul n al biilor de codificare a strilor interne ale
unui automat A=(X,Z,Y,f,g) este stabilit cu relaia:
2n 1 < Card Z 2n ; Card Z= numrul strilor interne ale automatului.
Astfel, numrul biilor de codificare a strilor interne ale automatului Mealy redus,
pentru care Card Z = Card { z0 , z2 , z3 } = 3, este n = 2, deoarece:
22 1 < 3 = Card Z < 22 ,
una dintre codificrile posibile fiind:
z0 = 00 ; z2 = 01; z3 = 11.
Pentru automatul Mealy redus, o astfel de codificare introduce hazard la funcionarea
n tranziia z3 = 11 z0 = 00 , ce va fi realizat printr-o stare intern intermediar n
z3 = 11 z2 = 01 z0 = 00 ,
sau
z3 = 11 10 z0 = 00 ,
deoarece
variantele
modificarea celor doi bii de codificare nu se poate face simultan, aceti bii fiind transferai
2-24

prin pori distincte a cror timpi de propagare sunt diferii. Ca urmare, automatul Mealy
redus va avea o funcionare defectuoas.
Eliminarea acestui hazard de codificare a strilor interne poate fi realizat prin
determinarea unei codificri de tip Gray a strilor interne, astfel nct codurile zi i z j ale
strilor interne implicate ntr-o tranziie s difere doar prin bitul de rang k, fapt exprimat cu
relaia:
zi z j = k , cu k = vectorul cu doar bitul de rang k n 1.
Pentru tranziiile din automatul Mealy redus, aceast condiie impune urmtoarele
relaii:
z0 z2 = 0

z2 z3 = 1

z3 z0 = 2
i j: zi z j 0;( = stri interne diferite au codificri diferite)

Din aceste relaii rezult c tranziia:


z3 z0 = 1 0 ,
nu respect condiia de codificare Gray, trebuind realizat printr-o stare intern
intermediar zk , fapt justificat cu relaia:
z3 z0 = (z3 zk ) (zk z0 ) = 1 0 .
Prin introducerea strii interne suplimentare zk rezult urmtoarele variante de
codificare:
-

z0 z2 = 0
z2 z3 = 1
z2 zk = 0 (absurd, deoarece strile z2 i zk sunt diferite)
z3 zk = 1
zk z0 = 0
i, j cu i j : zi z j 0 ,

z0 z2 = 0
z2 z3 = 1
z3 zk = 0
zk z0 = 1
i, j cu i j : zi z j 0 ,

Din ultimul sistem de ecuaii rezult pentru strile interne o codificare pe 2 bii i
necesitatea impunerii codului unei stri interne deoarece sistemul are cele 4 stri ca
necunoscute i doar 3 ecuaii liniar independente. Impunnd codul strii interne z0 ,
codificarea strilor interne ale automatului se obine astfel:
z2 = 0 z0
z3 = 1 z 2 = 1 0 z0
zk = 1 z0

z0 = 00 = impus
z2 = 01
z3 = 11
zk = 10

Introducnd starea intern zk n automatul Mealy redus, se obine automatul Mealy


2-25

final:
z0

z2

z3

zk

z0

x1 + x3 x 4
+
y0
y1

x2
y0

z2

x3 x1
+
y0 y1

x2
y0

x4
y1

z3

x1
y0

x4
y1

zk

x3 x 2
+
y0 y1

x1
x2
x3
x4
=00 =01 =11 =10

xi
zj

z2
=01

z0
y0
z0
y1

x3 x 2
+
y0 y1

z3
=11

z2
y1

zk
=10

z0
=00
=

z2
y0
z2
y0
zk
y1
z0
y1

z0
y0
z0
y0

z0
y1

zk
y0

z3
y1

z0
y0

z3
y1

Notnd biii de codificare a intrrilor i a strilor interne prin:


not

xi = AB
not

z j = CD
din tabela de adevr a automatului Mealy final, prin redefinirea adecvat a tranziiilor
neprecizate, se obin urmtoarele funcii minime de tranziie i de ieire:
not

fC (x,z) = A B D + B C D = P0 + P1
not

fD (x,z) = A B D + A B C + B C = P0 + P2 + P3

funcii de tranziie

not

g(x,z) = A B + A B C + B C D = P4 + P5 + P6
tabela de adevr a automatului Mealy final fiind pus n forma:
AB
CD

00
01

00

01

11

10

00 01 11 10

00 01 11 10

00 01 11 10

00
y0
00
y1

01
y0

00
y1

01
y0
10
y1

00
y0
00
y0

10
y0

11
y1

00
y1

00
y0

-0

-0

-1

-1

-0

-1

11

01
y0

10

11
y1

fC (x,z)

fD (x,z)

y=g(x,z)

Cu funciile logice de tranziie i de ieire astfel determinate, automatul are


urmtoarea realizare cu un circuit secveniator logic programabil, notat PLS
(=Programmable Logic Sequencer):

2-26

A
B
C
D
P0

P6
RS
S

R QN

1
fC

fC
1

fC

R QN

g(x,z)

R QN

RE

2-27

Capitolul 3
Arii logice programabile
3.1. Suport teoretic
Ariile Logice Programabile, notate PLA (=Programmable Logic Array), sunt circuite
integrate ce conin matrici din pori logice, ce simplific realizarea automatelor secveniale.
Orice funcie logic binar

f(x0 , x1,..., xn ) : Bn2+1 = B2 B2 ... B2 B2 = {0,1} ,


de n +1 ori

folosind notaia
x ; ai = 0
a
,
xi i = i
xi ; ai = 1
poate fi exprimat analitic, n Forma Canonic Disjunctiv, notat FCD, prin combinaiile
binare de intrare = ( 0 , 1,.., n ) n care f( ) = f(0 , 1,.., n ) = 1, cu urmtoarea relaie:
(1)

f(x0 ,x1,..,xn ) =

=( 0 ,1,..,n )B2
f( ) = 1
not

( xi i ) =
n+1

i= 0

not

[f(a) ( xi i )] =
n +1

i=0

a =(a0 ,a1,..,an )B2

[f(a) Pa (x0 , x1,.., xn )] ,

a =(a0 ,a1,..,an )Bn2+1

not n

n care Pa (x0 ,x1,.., xn ) = xi i se numete termen produs.


i=0

O funcie logic f(x0 ,x1,...,xn ) poate fi exprimat analitic i n Forma Canonic


Conjunctiv, notat FCC, prin combinaiile de intrare = (0 , 1,.., n ) n care
f() = f(0 , 1,.., n ) = 0 , folosind funcia complementar f(x 0 , x1,...,xn ) , astfel:
(1)

(2) f(x0 ,x1,..,xn ) = f(x0 , x1,.., xn ) =

i= 0

[f(a) + xi i ] =
n+1
i=0

a =(a0 ,a1,..,an )B2

not

[f(a) + xi i ] =
n+1

a =(a0 ,a1,..,an )B2


not n

i=0
n

( xi i ) =

= (0 ,1,..,n ) i = 0
f() = 1 f() =0

[ f(a) xi i ] =
n+1

a = (a0 ,a1,..,an )B2

[f(a) + Sa (x0 ,x1,..,xn )]

a =(a0 ,a1,..,an )Bn2+1

n care Sa (x 0 ,x1,.,xn ) = xi i se numete factor sum .


i= 0

Formele canonice disjunctiv i conjuctiv de exprimare a unei funcii logice,


coninnd doar operaiile AND logic i OR logic pot fi materializate cu diode. Astfel, prin
folosirea diodelor, un termen produs poate fi materializat ca n fig.1-3.1, n timp ce
materializarea formei canonice disjuctive a unei funcii logice este prezentat n fig.2-3.1.
Realizarea simplificat a mai multor funcii logice n form canonic disjunctiv a
condus ctre o matrice cu diode, a crei structur prezentat n fig.3-3.1 conine o matrice
AND, avnd fiecare linie conectat la o variabil de intrare i genernd pe fiecare coloan
cte un termen produs din funciile logice de materializat, i o matrice OR, avnd fiecare

3-1

coloan conectat la cte un termen produs furnizat de matricea AND i genernd pe


fiecare linie a sa cte o funcie logic ca sum a unor termeni produs.
+E
R AND

xn n

f = Pi

Pm

i=0

Dm

D0

ROR
n

...

x0 0

D0

...

P0

Dn

Pk = xi
i= 0

Fig.1-3.1 Materializare termen produs

Fig.2-3.1 Materializare form


canonic disjunctiv

+E

4 R AND

x0

x1

Matrice
AND

x2

x3
Matrice
OR

3 ROR

P0 = x0 x1 x 2

P1 = x3

P2 = x0 x3

P3 = x1 x 2

f0 = P0 + P1 =
= x0 x1 x 2 + x3
f1 = P2 + P3 =
= x0 x3 + x1 x2
f2 = P1 + P3 =
= x3 + x1 x2
Fig.3-3.1 Materializare funcii logice prin matrice cu diode

ntr-o materializare cu diode, rezistoarele R AND i ROR se dimensioneaz pentru a


obine tensiunile aferente strilor logice 0 i 1 pe sarcinile conectate la ieirile matricei.
3-2

Pentru ca rezistoarele de sarcin s nu afecteze tensiunile strilor, conectarea unei matrici


cu diode la fiecare sarcin se va face prin cte un etaj adaptor, ca de exemplu etajul
Trigger Schmidt .
O matrice cu diode coninnd i etaje separatoare pe ieiri, realizat ca circuit
integrat, se numete arie logic programabil, fiind notat PLA (= Programmable Logic
Array), n care fiecare variabil de intrare determin n matricea AND o linie pentru starea
sa normal i o alt linie pentru starea sa complementar, iar conexiunile n matricele
AND i OR fiind programate fie la utilizator, fie prin masc la fabricant.

3.2. Arhitectur intern, funcionare, utilizare

R AND.0

...

R AND.47

+E
Mat

x0

...

x0

x15

x0
x15

Matrice
AND

x15

Matrice
OR

y0

...

ROR.0

y7
ROR.7

CE

Fig.1-3.2

Structura intern a circuitului SIGNETICS 82S100

O matrice cu diode, integrat i permind programarea conexiunilor prin ardere la


utilizator, se noteaz FPLA (= Field Programmable Logic Array).
Structura unui circuit FPLA , programabil la utilizator prin ardere de fuzibile, este
exemplificat n fig.1-3.2 prin circuitul SIGNETICS 82S100 caracterizat prin 16 intrri, 8
3-3

ieiri i 48 termeni produs, iar reprezentarea simbolic a structurii acestui circuit este
prezentat n fig.2-3.2.
Fiecare ieire a circuitului SIGNETICS 82S100 are cte o poart logic XOR ce
poate fi transformat prin ardere de fuzibil n poart inversoare, n vederea generrii
formei complementare a unei funcii logice. Selecia acestui circuit FPLA se realizeaz prin
validarea tampoanelor cu trei stri de pe ieiri cu semnalul CE = 0 , ieirile fiind puse n
nalt impedan ct timp CE = 1 .
Circuitele PLA permit realizarea compact a automatelor secveniale i
combinaionale.
Pentru generarea cu un circuit PLA a unei funcii logice n form canonic
disjunctiv, numrul termenilor produs se reduce aducnd funcia ntr-o form disjunctiv
normal prin metode analitice de minimizare folosind absorbia, alipirea i reducerea.
Pentru c ntr-un PLA s nu se depeasca numrul de termeni produs admis, funciile
logice de ieire vor fi exprimate n forme disjunctive normale i se vor grupa pe un acelai
circuit funcii logice avnd n comun mai muli termeni produs.

x0
Matrice
AND

x15

P0 P47
y0
...

Matrice
OR

y7

CE
Simbolizarea structurii interne a circuitului SIGNETICS 82S100

zt

PLA

OUTPUTS

xt

f(x t ,z t ) = z t +1
INPUTS

Fig.2-3.2

g(x t ,z t ) = y t +1
CE

RS

zt

RE

yt

Clock

Fig.3-3.2 Automat Mealy sincron cu PLA


3-4

x0 ..x15

x j ; j = 0,..,15

y0 ..y7

PLA 1

CE

PLA 2

PLA 2

CE

CE

PLA 3
PLA 1 z0 ..z7

b) Expandare intrri

x0 ..x15 PLA 1 z0 ..z7


PLA 2
CE

CE
y0 ..y7

PLA 2
CE

z8 ..z15

y0 ..y7
x16 ..x 23

CE

c) Expandare intrri

x0 ..x15

PLA 1
y0 ..y7

y0 ..y 2

x0 ..x15

z3 ..z7

PLA 2
CE

CE

d) Expandare intrri

PLA 1

CE

y0 ..y7

CE

x16

a) Expandare termeni produs

x0 ..x15

PLA 1

x0 ..x15

y8 ..y15

e) Expandare ieiri

CE

PLA 2
CE

y3 ..y10

f) Expandare ieiri

Fig.4-3.2 Conexiuni de expandare cu circuite PLA


ntr-un automat programabil algoritmic A=(X,Z,Y,f(x,z),g(x,z)) cu structura de
automat Mealy sincron dat n fig.3-3.2, circuitul PLA materializeaz funciile logice de
tranziie f i de ieire g, registrul de stare RS memoreaz starea intern a automatului pe
care o menine la intrarea PLA, iar registrul de ieire RE memoreaz comenzile de ieire
ce rmn astfel stabile pe durata unei stri interne a automatului. Astfel, registrul de stare
3-5

RS ndeplinete funcia de memorie de stare, iar registrul de ieire RE ndeplinete funcia


de memorie de ieire, numit i memorie de comand.
P0 .. P47
Matrice
AND

...

x0

xS.4
...

x15

xS.0
Matrice
C

R0

R4

...

Q0

S0

Q4

S4

Matrice
OR - f

RS
R0

Q0

y0

R7

S0

+E

Q7

y7

S7
RE

Matrice
OR - g

OE

PR / OE

PR
Clock
Fig.5-3.2

FUZ

Structur circuit PLS SIGNETICS 82S104


3-6

Structura de automat Mealy sincron din fig.3-3.2 s-a realizat ca circuit integrat numit
Secveniator Logic Programabil, notat PLS (= Programmable Logic Sequencer). Structura
intern a unui circuit PLS poate fi exprimat sintetic cu relaia:
PLA = PLA + (RS + RE).
n aplicaiile complexe, un circuit PLA cu numr mare de intrri, ieiri i/sau termeni
produs necesari, este obinut cu mai multe circuite PLA n conexiuni de expandare
adecvate, aa cum se arat n fig.4-3.2.
Arhitectura intern a unui PLS este exemplificat n fig.5-3.2 unde se prezint
arhitectura interna a circuitului SIGNETICS 82S104.
La terminalul PR / OE al acestui circuit, se poate programa, prin fuzibil intact
comanda de presetare a registrelor RS i RE cu validarea permanent a tampoanelor de
ieire cu trei stri, iar prin ardere de fuzibil, comanda de selectare a circuitului prin
validarea tampoanelor de ieire care vor trece n nalt impedan cnd OE = 1.
Circuitul este prevzut cu o linie OR complementat care , fiind conectat la o linie
a matricei AND permite realizarea unei reacii asincrone de la matricea OR la matricea
AND, cele dou linii constituind o matrice complementar.
Matricea complementar permite generarea de termeni produs compleci,
reprezentnd reuniunea mai multor termeni produs ce se regsesc n formele canonice
disjunctive a mai multor funcii de materializat, astfel reducndu-se numrul de termeni
produs de programat n matricea AND a circuitului PLS.
De asemenea, n scopul reducerii numrului de termeni produs, o funcie logic f
poate fi materializat mai simplu cu matricea complementar prin termenii produs ai
funciei complementare f , conform relaiei :
f =f =

( xi i ) =
n+1

=( 0 ,1,..,n )B2
f( ) =1

i =0

[f(a) xi i ] .
n+1
i= 0

a =(a0 ,a1,..,an )B2

Exemplu
S se realizeze cu un circuit PLS funciile logice f(x0 ,x1, x 2 ) i g(x0 ,x1, x 2 ) :

f(x0 ,x1, x 2 ) =

g(x0 ,x1, x 2 ) =

x0 x1
x2

00

01

11

10

x0 x1
x2

00

01

11

10

Rezolvare
Funcia complementar f(x0 , x1, x 2 ) , descris prin tabela de adevr:
x0 x1
00
01
11
10
x2

f(x0 , x1, x 2 ) =

3-7

i avnd forma canonic disjunctiv :


f(x0 , x1,x 2 ) = x0 x1 x 2 + x0 x1 x 2 ,
permite generarea funcilor logice f(x0 ,x1, x 2 ) i g(x0 ,x1, x 2 ) cu relaiile:
not

f(x0 ,x1, x 2 ) = f(x0 ,x1,x 2 ) = x0 x1 x 2 + x 0 x1 x 2 = P0 + P1


not

g(x0 ,x1,x 2 ) = x0 x1 x 2 + (x 0 x1 x 2 + x0 x1 x 2 + x0 x1 x 2 ) = P0 + x 2f = P0 + P2 ,
n care termenul produs P2 = x 2 f reprezint reuniunea celor 3 termeni produs, comuni
funciilor f i g i situai n zona haurat din tabelele de adevr a acestor funcii:

P2 = x 2 f(x 0 , x1, x 2 ) =

x0 x1
x2

00

01

11

10

Materializarea acestor funcii printr-un circuit PLA cu matrice complementar este


reprezentat n fig.6-3.2.

Intrri

x0
Matrice
AND

x1
x2

f
Matrice
C

P0

P1

P2 = x 2 f

f
Ieiri
g
Matrice
OR
f
Fig.6-3.2

3-8

Observaii
1. ntr-o arie logic programabil timpul de propagare este practic acelai pentru
orice funcie logic generat, deoarece strile normal i complementat ale unei variabile
sunt generate simultan prin pori logice cu timp de propagare identic sau foarte apropiat.
2. Matricea complementar duce la o reducere a numrului de termeni produs dar
crete timpul de propagare pentru funciile logice generate.

3-9

Capitolul 4
Microprogramarea
Fie o structur din circuite logice interconectate, controlat cu n semnale logice de
comand S0 ,S1 ,...,Sn1, reprezentate ca bii distinci ai unui cuvnt binar de comand cu
structura:
Dn1

D1

D0

Sn 1

S1

S0

Din cele 2n cuvinte posibile de comand a structurii logice, doar p cuvinte sunt
operaionale ( p < 2n ), fiecare cuvnt operaional comandnd structura logic s efectueze
o sarcin concret i simpl numit microoperaie.
Definiie
Cuvntul de comand care genereaz semnalele logice necesare unei structuri
logice pentru a efectua o microoperaie se numete microinstruciune.
Fiecare sarcin mai complex va putea fi astfel realizat de o structur de circuite
logice n mod secvenial, ca o succesiune strict de microoperaii executate pas cu pas
sub controlul cuvintelor de comand citite din locaii succesive ale unei memorii numit
memorie de comand, organizat pe locaii din n bii i n care fiecare locaie este
identificat i selectat la un moment dat prin numrul su de ordine numit adres. Citirea
memoriei de comand are loc la n ritmul tactelor unui generator pilot, care controleaz un
numrtor cu rolul de a forma adresa fiecrei locaii de citit.
Definiie
Succesiunea strict a microinstruciunilor sub ale cror comenzi o structur de
circuite logice interconectate realizeaz o sarcin complex se numete microprogram.
Memoria de comand a unei structuri de circuite logice interconectate, este
ncrcat cu microprogramele sarcinilor prevzute a se realiza cu structura logic dat i
care, n cazul unui microprocesor realizeaz operaiile elementare prevzute acestuia
(adunare, adunare cu transport, scdere, scdere cu mprumut, operaii logice, transport
ntre locaii, extragere cuvnt instruciune din memoria sistemului, etc).
Astfel, la efectuarea unui program surs n limbaj de asamblare, depozitat n
memoria sistemului n form simbolic binar a instruciunilor ce-l compun, fiecare
instruciune este preluat din memoria sistemului ntr-un registru de instruciuni, de unde
prin decodificare se obine adresa de nceput a microprogramului din memoria de
comand prin a crui citire pas cu pas se realizeaz sarcina prevzut n instruciune, ca
o succesiune de microoperaii (fig.1-4). Adresarea locaiilor succesive ale memoriei de
comand se realizeaz simplu prin incrementarea unui numrtor de adrese de
microinstruciuni.
Multe microprograme din memoria de comand conin ns secvene identice de
microinstruciuni, fapt ce impune folosirea operaiilor de ramificare n microprograme
pentru a se reduce capacitatea memoriei de comand. ntre operaiile de ramificare (salt,
apel i revenire), cele de apel i de revenire necesit o memorie stiv de tip RAM.
Operaiile de ramificare au impus ca unui cuvnt de comand s i se adauge un
numr suplimentar de bii ce constituie cmpul de identificare a urmtoarei adrese a

4-1

microinstruciunii de executat.
ntr-un program, o ramificare se poate face necondiionat, sau condiionat de o
caracteristic a unui rezultat parial memorat ntr-un bistabil de condiie asociat care se
testeaz.
Definiie
Tehnica de realizare cu circuite de memorie a unitii de comand a unei structuri
din circuite logice, se numete microprogramare.
Microprogramarea, ca metod de proiectare a unitii centrale de operare a unui
calculator, a fost definit i introdus n anul 1951 de ctre M. V. Wilkes, profesor la
Universitatea din Cambridge.
Tehnica microprogramrii permite ca aceleai sarcini s poat fi realizate pe
structuri logice diferite, dar cu microprograme distincte. Astfel, modificarea setului de
instruciuni al unui microprocesor, necesit doar o nou microprogramare i nu modificri
n structura sa logic. De asemenea, pe o nou arhitectur de microprocesor se poate
prevedea setul de instruciuni al unui microprocesor mai vechi al crui software poate fi
astfel reutilizat.
ntr-un microprocesor cu o arhitectur intern simpl, realizarea unei sarcini are loc
ntr-un interval de timp mai mare, prin efectuarea mai multor microoperaii succesive
controlate cu un microprogram, despre care se poate spune c-i obinut prin tehnica
microprogramrii pe vertical, deoarece este lung.
Scurtarea timpului de realizare a unei sarcini se obine la microprocesoarele cu
arhitecturi interne complexe, n care se pot realiza n paralel mai multe microoperaii, caz
n care se spune c microprogramul unei sarcini este realizat prin tehnica
microprogramrii pe orizontal, ntruct este mai scurt.
Rezult c, ntr-o microprogramare pe vertical, microprogramele sunt mai lungi,
dar cuvintele de comand au mai puini bii, n timp ce la microprogramarea pe orizontal
microprogramele sunt scurte, dar cuvintele de comand au un numr mai mare de bii
(circa 80) necesari controlului unei arhitecturi logice complexe.
Microprogramele din memoria de comand fiind strns legate de structura logic
controlat, sunt deseori denumite firmware (= parial hardware, parial software).
bit

Load

DECODER

UP

ADDRESS

LD

OUTPUT

COUNTER

microprogram
address

INPUT

0
...
k
...

addressed microinstruction

2n
DATA (= Dn1 ...

Clock

COMMAND
MEMORY

1...

Sn1 ...

D2

D1

D0 )

S2

S1

S0

DIGITAL CIRCUITS
Result
Fig.1-4

Comanda prin circuite de memorie

4-2

Microprogramarea, ca tehnic de comand pentru o structur din circuite logice


(=hard ) cu semnale a cror stri logice sunt reprezentate ntr-o memorie de comand prin
bii de informaie (=soft ), realizeaz legtura dintre soft i hard.

4-3

Capitolul 5
Automate programabile algoritmice (APA)
5.1. Introducere

zt
INPUTS

f(x ,z )
AC
g( x t , z t )

OUTPUTS

Tranziiile prin care se realizeaz evoluia unui automat secvenial printr-un ir de


stri, pot avea loc fie la momente de timp oarecare, cnd se spune c automatul
secvenial este automat asincron, fie la momente de timp precis determinate cu impulsurile
unui generator de tact, cnd se spune c automatul secvenial este automat sincron.
n practic, se prefer automatele sincrone ntruct au funcionarea precis controlat.
Un automat secvenial A = (X,Z,Y,f(x,z),g(x,z)) va conine un automat combinaional
pentru materializarea funciilor f(x,z) i g(x,z), precum i elemente de memorare att a
strii interne curente, ct i a comenzilor generate pe ieiri, ce pot fi realizat sub forma a
dou registre RS (=registru de stare) i respectiv RE (=registru de ieire), aa cum se
arat n fig.1-5.1 pentru un automat Mealy i n fig.2-5.1 pentru un automat Moore .

xt

zt

RS
z t +1 = f(x t ,z t )

yt

RE

y t +1 = g( x t , z t )
Clock

Fig.1-5.1. Structura automatului Mealy

zt

xt

AC
g( z t )

RS
OUTPUTS

INPUTS

f(x t ,z t )

zt

z t +1 = f(x t ,z t )
RE

yt

y t +1 = g( z t )
Clock
Fig.2-5.1. Structura automatului Moore

ntr-un automat A = (X,Z,Y,f(x,z),g(x,z)) funciile logice, de tranziie f(x,z) i de ieire


g(x,z), pot fi materializate, fie n logic cablat, fie prin circuite cu memorare, programabile.
O logic cablat poate fi asimilat unui circuit cu memorare complicat, greu de
realizat, neprogramabil i cu timp mare de propagare.
5-1

Definiie
Automatul secvenial n care att secvenierea, ct i comanda sunt programate n
circuite cu memorare se numete Automat Programabil Algoritmic (=APA).
Un APA are o vitez mare de operare, limitat doar de timpul de acces n circuitele
cu memorare.
O stare a unui APA se atinge prin localizarea sa n circuitul cu memorare, unde este
descris printr-un cmp de ieire format din biii semnalelor logice de comand i un cmp
de adres prin ai crui bii se face identificarea urmtoarei stri interne n care va tranzita
automatul.
ntr-un APA, tranziiile au loc sincron cu impulsurile unui generator avnd perioada
stabilit n funcie de tipul de acces al circuitului cu memorare, iar o stare a automatului
are durata unei perioade de tact.
Structura unui APA, reprezentat n fig.3-5.1, este cea a unui automat Mealy sincron,
n care automatul combinaional AC materializeaz funciile f(x,z) i g(x,z), registrul de
stare RS memoreaz starea intern n care se afl automatul (din care se va tranzita), iar
registrul de ieire RE memoreaz comenzile din starea curent a automatului pe care le
menine pe ieirile automatului.

zt

AC
CE

DATA

ADDRESS

xt

Memory

t +1

t +1

RS
RE

Clock

zt
yt
RS= registru de stare
RE= registru de ieire

Fig. 3-5.1. Structura unui automat programabil algoritmic


ntr-un APA, memorarea se poate realiza att n circuite de memorie, ct i n arii
logice programabile, notate PLA (=Programable Logic Array).

5.2. Memoriile ntr-un APA


Realizarea unui automat secvenial const n materializarea prin logic cablat , sau
cu memorii, a funciilor logice de tranziie i de comand, conform organigramei
funcionale a aplicaiei de controlat.
Cnd numrul de stri ale automatului secvenial este mai mare ca 20, se
recomand, justificat economic, utilizarea n locul logicii cablate a memoriilor care confer
simplitate i flexibilitate unui APA. Dup variantele de utilizare a memoriilor se disting mai
multe variante de APA .
Aa cum se arat n fig.1-5.2., orice funcie logic descris printr-o tabel de adevr,
poate fi materializat printr-un automat combinaional realizat cu o memorie, n care o
combinaie logic de intrare va adresa o locaie, al crei coninut, furnizat la biii de date,
reprezint combinaia logic de ieire indicat n tabela de adevr a funciei.
Un automat combinaional realizat cu o memorie avnd k bii de adres i q bii de
date, dei admite 2k combinaii logice de intrare i maxim 2q combinaii logice de ieire,
5-2

ofer flexibilitate maxim n realizarea unei funcii logice doar prin schimbarea informaiei
nscrise n locaiile de memorie.

DATA

CS

PROM
2564 bits

a) Extensie pe intrare

CS

CS

y0 ..y3
DATA

PROM
2564 bits

y 4 ..y 7
DATA

x0 ..x7

ADDRESS

PROM
2564 bits

CS

y0 ..y3

ADDRESS

PROM
2564 bits

q bits

Automat combinaional ce materializeaz funcia logic


vectorial h : X Y

DATA

x8

ADDRESS

x0 ..x7

ADDRESS

Fig. 1-5.2

h:XY

DATA

x = (x1 ,..., xk ) X

y = (y1 ,...,y q ) Y

Memory

ADDRESS

k bits

b) Extensie pe ieire

Fig.2-5.2 Extensia pe intrarea i ieirea unui automat combinaional cu memorii

2 .(k + p)
bits

q bits

PROM
k

2 .q
bits

DATA

ADDRESS

x = (x1 ,..., xk ) X

k bits

PROM
DATA

ADDRESS

n bits

y = (y1 ,...,y q ) Y

p bits
pentru alte funcii

q bits
bii de
condiionare

y = (y1 ,..., y q ) Y

PROM
2m + q p
bits

DATA

2n m
bits

ADDRESS

n bits

m bits

PROM
DATA

x = (x1 ,..., xk ) X

Automat combinaional cu memorii folosind adresare indirect

ADDRESS

Fig.3-5.2

p bits

Fig. 4-5.2 Automat combinaional cu ieiri condiionate


ntr-un automat combinaional folosind memorii i nu logic cablat, prin eliminarea
decodrii combinaiilor logice de intrare, se realizeaz un transfer direct intrare ieire
5-3

ntr-un interval de timp scurt, limitat doar de timpul de acces al memoriei. Primele utilizri
ale memoriei n logica combinaional au fost de tipul tabelelor de conversie.
Dac numrul de intrri i/sau ieiri ale unui automat combinaional este mai mare
ca cel disponibil la un circuit de memorie se vor folosi mai multe circuite de memorie
interconectate pentru a realiza extensia pe intrare i/sau ieire aa cum se arat n
fig.2-5.2.
Cnd din cei k+p bii ai unei locaii din memoria unui automat combinaional, sunt
alocai pentru comanda aplicaiei doar k bii , acetia vor fi utilizai n adresarea indirect a
maxim 2k combinaii logice de ieire ntr-o memorie suplimentar, aa cum se arat n
fig.3-5.2.
n memoria suplimentar a unui automat combinaional alegerea ntre locaiile
coninnd diferite combinaii logice de ieire posibile pentru o aceeai combinaie logic de
intrare, se face cu semnale logice de condiionare folosite ca bii de adres (fig.4-5.2).
Un automat combinaional, n care cei q bii de condiionare reprezint ieirile unui
numrtor al impulsurilor unui generator de tact, se transform ntr-un APA la care, pe

Clock

2 m
bits

Counter

yY

PROM
2m + q p
bits

DATA

ADDRESS

n bits

m bits

PROM
DATA

xX

ADDRESS

durata unei combinaii logice de intrare, se genereaz succesiv 2q combinaii logice de


ieire ce comand o structur din circuite logice interconectate s realizeze n mod
secvenial o funcie logic complex. Aceast structur de APA, reprezentat n fig.5-5.2,
st la baza realizrii unitilor aritmetice i logice, o combinaie logic de intrare, ce
reprezint codul unei instruciuni identificnd zona memoriei de comand ce conine
combinaiile logice de ieire prin care se comand efectuarea secvenial a instruciunii.
Locaiile memoriei unui APA se mpart pe grupuri de bii, numite cmpuri, destinate a
realiza comanda aplicaiei controlate, testarea unor condiii i conexiunea ctre
urmtoarea stare intern n care se va tranzita, operaii prezente n organigrama oricrei
aplicaii.

CID
p bits

q bits
(bii de
condiionare)

outputs
(ieiri
rezultat)

Fig. 5-5.2 Unitate aritmetic i logic cu APA


5.3 APA cu memorie n format fix
Dac fiecare locaie a memoriei unui APA are aceeai mprire pe cmpuri, se
spune c memoria este n format fix, sau c memoria este programat n format fix.
Prin cmpul numit conexiune stare se realizeaz de fapt o ramificare n memoria
automatului ctre adresa urmtoarei stri interne n care se va tranzita. Dup modul de
identificare n memorie a adresei strii interne n care se va tranzita, se deosebesc
urmtoarele tipuri de APA cu memorie n format fix:
5-4

5.3.1 APA cu memorie adresabil printr-un cmp conexiune stare (CS)


MEMORY: 2n +k (k + p) bits
n
ADDRESS

x = (x1 ,...,xk )

CS

COM

RS = registru de stare
CS = cmp conexine stare
COM = cmp de comand

DATA

y = (y1 ,..., yp )
RS

Clock

Fig.1-5.3
La acest tip de APA, cu structura dat n fig.1-5.3, memoria se adreseaz att cu
biii combinaiei logice de intrare, ct i cu biii cmpului conexiune stare, dezavantajul
major fiind gradul redus de ocupare a memoriei cnd combinaiile logice de intrare sunt
formate din muli bii. Un astfel de APA are ns o vitez mare de operare, perioada unei
stri putnd fi redus la valoarea
TSTARE tacces.memorie + trspuns.registrudestare .
Capacitatea mare de memorie rmas nefolosit a impus gsirea de noi structuri de
APA ca s permit utilizarea unor memorii de capacitate redus.

ADDRESS

5.3.2 APA cu memorie adresabil prin dou cmpuri conexiune stare


Pentru acest tip de APA, reprezentat n fig.2-5.3, este necesar o logic suplimentar
pentru tranzitarea ntr-una din cele dou stri posibile indicate n cmpurile conexiune
stare. Astfel, prin cmpul test, se selecteaz cu multiplexorul MUX 1 bitul de intrare a
crui stare logic decide care din cele dou zone conexiune stare va fi transferat cu
multiplexorul MUX 2, n registrul de stare RS.

TEST

CS 1

CS 2

COM

MEMORY:

2n (m + 2n + p) bits
DATA

m
MUX
1

k 2m
x = ( x1 , .. , xk )

y = (y1 ,..., yp )

MUX
2

RS = registru de stare
MUX = multiplexor
TEST = cmp de testare
CS = cmp conexine stare
COM = cmp de comand

n
RS

Clock

Fig.2-5.3
5-5

zk

zk
=1
=0

xi

=1

xi

zk
=0

y = y0

y = y0

zCS1

zCS2

y = y0

y = y0

zCS1 = zCS2

Fig. 3a-5.3

zCS1 = zCS2
Fig.3b-5.3

n fig.2-5.3, starea n care se tranziteaz dintr-o stare zk , prin testarea intrrii xi ,


se determin prin adresa locaiei corespunztoare din memorie conform relaiilor:
(RS) =
CS1 , dac xi = 0
CS2 , dac xi = 1 ,
relaie ce descrie un bloc ASM cu reprezentarea din fig.3a-5.3.
Pentru un bloc ASM cu reprezentarea din fig.3b-5.3 cele dou cmpuri conexiune
stare, notate CS1 i CS2 trebuie s fie identice.
Memoria unui asemenea tip de APA se caracterizeaz printr-o scdere a numrului
de locaii i o cretere a numrului de bii pe locaii.
O variant de APA cu memorie adresabil prin dou cmpuri de conexiune stare,
prezentat n fig.4-5.3, se caracterizeaz prin eliminarea cmpului test din locaiile de
memorie al cror numr de bii se reduce astfel. Aceast variant se recomand cnd un
cmp conexiune stare are acelai numr de bii ca al unei combinaii logice de intrare.

ADDRESS

CS 1

CS 2

k 2n

MUX
1

xi

MEMORY:
2n (2n + p) bits

DATA

x = ( x1 , .. , xk )

COM

y = (y1 ,..., yp )

MUX
2

RS = registru de stare
MUX = multiplexor
CS = cmp conexine stare
COM = cmp de comand

n
RS

Clock

Fig.4-5.3

5-6

5.3.3 APA cu memorie adresabil printr-un cmp conexiune stare i prin


incrementare
TEST

ADDRESS

CS

COM

MEMORY:
2n (m + n + p) bits

DATA

x = ( x1 , .. , xk )

y = (y1 ,..., yp )
MUX

k 2
Clock

xi

INC

CONTROL
RS/N
LD
LOGIC

RS/N = registru de stare cu


numrare
MUX = multiplexor
CS = cmp conexine stare
COM = cmp de comand
TEST = cmp de testare

Fig.5-5.3
zk
zk
y = yk
y = yk
=0
=0
LD

xi

LD

=1

zCS

INC

xi

=1

zCS

INC
zk +1

zk +1

IF..THEN..

IF..THEN..ELSE..

x j =1
=1
zCS

Fig.6a-5.3

Fig.6b-5.3

Structura unui asemenea tip de APA, dat n fig.5-5.3, ofer avantajul existenei unui
singur cmp conexiune stare n locaiile de memorie al cror numr de bii se reduce astfel
i se recomand n aplicaiile cu numr mic de intrri a cror selecie se face printr-un
cmp test redus.
La un astfel de APA, n funcie de starea logic a intrrii xi indicat n cmpul test,
se poate tranzita dintr-o stare intern curent zk , fie in stare intern zk +1 , aflat la adresa
imediat urmtoare strii curente, fie n starea intern zCS , aflat la adresa indicat n
cmpul conexiune stare CS, conform relaiilor:
5-7

(RS/N) =

(RS/N) + 1, cnd xi = 1
CS
, cnd xi = 0 ,
relaii ce descriu un bloc ASM cu reprezentarea din fig.6a-5.3.
Adresarea memoriei automatului se face cu un registru de stare cu numrare RS/N,
care, n funcie de starea logic a intrrii xi testate, este incrementat cu 1 prin comand cu
semnalul INC, sau ncrcat cu adresa din cmpul conexiune stare prin comand cu
semnalul LD.
Cu un astfel de APA, pentru a realiza salturi pe ambele ramificri dintr-o decizie, pe
ramura cu incrementare se introduce o stare suplimentar din care se face salt prin
testarea unei intrri x j pus n starea logic 1, structura unui asemenea bloc ASM avnd
reprezentarea din fig.6b-5.3.
5.3.4 APA folosind combinaii de memorii
Un astfel de APA, avnd structura din fig.7-5.3, se utilizeaz n aplicaiile ce necesit
att ieiri condiionate, ct i ieiri necondiionate.
Prin cele m intrri de condiionare se asigur pentru fiecare stare intern 2m
descrieri posibile, ce au n comun doar aceleai ieiri condiionate, fapt ce asigur o mare
complexitate automatului. n aceast arhitectur de APA, tranziiile se fac prin structuri
IF..THEN.., prin care, n funcie de starea logic a intrrii xi testate, se face fie saltul n
starea de la adresa din cmpul conexiune stare, fie se continu cu starea de la adresa
urmtoare, obinut prin incrementare cu 1. Cmpul de comand pentru ieirile
necondiionate, comun tuturor variantelor unei stri a automatului, este plasat ntr-o
memorie suplimentar de capacitate mai mic, adresat doar prin cei n bii ai cmpului
conexiune stare.
intrri de
condiionare
m

MEMORY:
n

DATA

ADDRESS

COM

ADDRESS

2 q bits

MEMORY:
2n+m (k + n + p) bits
CS

y = (y1 ,..., y q )

Clock

y = (y1 ,..., yp )

RS/N
LD

COM

DATA

ieiri
necondiionate

TEST

ieiri
condiionate

INC

CONTROL
MUX
LOGIC
xi
r 2k
intrri de
testare

RS/N = registru de stare cu


numrare
MUX = multiplexor
CS = cmp conexine stare
COM = cmp de comanda
TEST = cmp de testare

Fig.7-5.3

5-8

5.4 APA cu memorie n format variabil


Un APA cu memorie programat n format fix, dei are un numr mare de bii pe o
locaie de memorie, prezint avantajul c tranziia ctre o stare intern se face doar ntr-un
tact al generatorului pilot. Datorit standardizrii circuitelor de memorie pe locaii de opt
bii, o memorie adresabil n format fix va fi organizat pe locaii formate dintr-un multiplu
de opt bii i realizat prin mai multe circuite de memorie adresate n paralel. Acest fapt
determin un grad redus de ocupare pentru o memorie adresabil n format fix.
Creterea gradului de ocupare a memoriei se realizeaz n APA cu o memorie
programat n format variabil, n care fiecare stare a automatului este descris n mai
multe locaii succesive ale memoriei organizate pe octei. Astfel, o stare a unui APA cu
memorie programat n format variabil va fi parcurs n attea tacte ale generatorului pilot,
cte cuvinte intr n descrierea unei stri, fiecare cuvnt avnd propria mprire pe
cmpuri de bii. Identificarea fiecrui cuvnt dintr-o stare a unui APA cu memorie
programat n format variabil se realizeaz prin biii unui cmp suplimentar numit
identificare format i notat IF.
Dup modul de mprire pe octei a cmpurilor test , conexiune stare i comand ale
unei stri, se deosebesc urmtoarele tipuri de APA cu memorie programat n format
variabil:
5.4.1 APA cu memorie n format variabil i separare pe grupuri de cmpuri
MEMORY: 2n (m + n + 1) bits
RS/N = registru de stare cu
numrare
MUX = multiplexor
CS = cmp conexine stare
COM = cmp de comand
TEST = cmp de testare
RE = registru de ieire

IF
=1
IF
=0

r 2m
intrri
de testare
x = (x1 ,.., xr )

COM
TEST

m
MUX

CS

COM
TEST
CS

ADDRESS

DATA = 1+m+n bits

RE

y = (y1 ,..., ym +n )

m+n
IF

xj

CONTROL
LOGIC

Clock

RS/N LD = IF x j

INC = IF + IF x j
Fig.8-5.3
Structura de baz a unui asemenea automat este dat n fig.8-5.3, n care o tranziie
se realizeaz fie prin salt la adresa din cmpul conexiune stare al strii curente, fie la
adresa determinat prin incrementare cu 1 a adresei de ncheiere a strii curente, dup
cum starea logic a intrrii xi selectat prin cmpul test este 1 , respectiv 0. Fiecare
stare dintr-un asemenea automat este descris prin dou cuvinte a cror identificare se
face printr-un cmp identificare format, format dintr-un singur bit i notat prin IF.
Pentru acest tip de automat, generarea adreselor de explorare a strii curente i de
5-9

tranzitare n urmtoarea stare se realizeaz conform relaiilor:


(RS/N) = (RS/N) + 1 , dac : INC = IF + IF x j = 1
, dac : LD = IF x j = 1

CS

o tranziie realizndu-se ca o structur logic IF..THEN.. , descris ntr-o organigram


ASM , prin blocul ASM dat n fig.9-5.3.

zk

y = yj
=0

LD

xi

IF..THEN..

=1
INC

zCS

zk +1

Fig.9-5.3
MEMORY: 2n (1 + k + m + 4 n ) bits
n

ADDRESS

DATA = 1+k+m+4n bits

IF
=1
IF TEST TEST
=0
1
2
k

COM
CS
1
n

RE
CS
2

CS
3

CS
4

k+m+4n

yY

p 2k

MUX
1
xX
intrri
de testare

q 2m
MUX
2

xj

xi

MUX 3
n
INC = IF

RS/N

CONTROL
LOGIC

LD = IF
Reset

Clock

x i x j IF

Fig. 10-5.3
5-10

Se observ din cele prezentate, c, spre deosebire de un APA cu memorie


programat n format fix, un APA cu memorie programat n format variabil mai conine un
registru de ieire RE pentru meninerea semnalelor de comand pe durata unei stri a
automatului i o logic de control a registrului de stare cu numrare RS/N i a registrului
de ieire RE.
O conexiune de stare multipl poate fi realizat cu structura de APA prezentat n
fig.10-5.3, n care o tranziie este descris prin relaiile:
(RS/N) = (RS/N) + 1 , dac INC = IF = 1
CS i
, dac LD = IF = 1 .
n automatul cu structura din fig.10-5.3, sub comanda cmpurilor TEST 1 i TEST 2
se transfer la ieirile multiplexoarelor MUX 1 i MUX 2 dou variabile de intrare, a cror
combinaie logic identific starea n care se va tranzita prin selectarea cmpului
conexiune stare cu numrare RS/N. O tranziie este realizat de acest automat ca o
structur logic IF..THEN..ELSE.., sau ca o structur logic IF..THEN.. .
5.4.2 APA cu memorie n format variabil i separare complet a cmpurilor
ntr-un asemenea APA, fiecare din cuvintele ce descriu o stare a automatului se afl
n unul din cmpurile TEST, CS (=conexiune stare) i COM (=comand) folosite.
Identificarea fiecruia din cele N cuvinte ale unei stri a automatului se realizeaz prin
cmpul IF (=identificare format), format dintr-un numr de k bii ce se determin cu relaia:
2k N .
Astfel, pentru APA din fig.11-5.3, n care fiecare stare e format din N=4 cuvinte,
cmpul identificare format, prezent n toate cuvintele, conine k = 2 bii notai IF1 i IF2 .

MEMORY: 2n (2 + n) bits
DATA = 1+1+n bits

ADDRESS

IF1 IF2
=0 =0

COM

RE

=1

=0

TEST xi

=1

CS 1

=1

CS 2

y = (y1 ,..., yn )
xi =0

xi =1

n
TEST, CS 1, CS 2
Fig.11-5.3
Fiecare stare intern din acest APA va fi parcurs prin citirea a trei din cele patru
cuvinte prin care este descris, ntruct prin cmpul TEST se alege doar un cuvnt CS
(=conexiune stare), corespunztor strii logice a variabilei de intrare xi selectate. O
tranziie se realizeaz acum conform relaiilor:
(RS/N) + 1 , dac : IF2 (IF1 + IF1 x i ) = 1

(RS/N) + 2 , dac : IF1 IF2 x i = 1


,
CSi
, dac : IF2 = 1
ca o structur logic IF..THEN..ELSE.. al crei bloc ASM este reprezentat n fig.12-5.3.
(RS/N) =

5-11

zk
y = yk
IF..THEN..ELSE..
=0

xi

=1

zCS1

zCS2

Fig.12-5.3 Bloc ASM pentru structura logic IF..THEN..ELSE..


Reducerea memoriei ntr-un APA cu separare complet a cmpurilor n memorie, se
obine printr-o descriere a unei stri, sub forma structurii logice IF..THEN.. , aa cum se
exemplifica n fig.13-5.3, o tranziie fiind descris cu relaiile:
(RS/N) + 1 , dac : IF x i + IF x i = 1
(RS/N) =
(RS/N) + 2 , dac : IF x i = 1
, dac : IF x i = 1

CS

MEMORY: 2n (1 + n) bits

ADDRESS

DATA =1+n bits

IF
=0

TEST xi

=1

CS

xi =0
xi =1

=1

COM

IF
=0

TEST xk
(next instruction)

TEST,CS
n
COM

RE
n

y = (y1 ,...,yn )

IF
Fig.13-5.3

zk
IF..THEN..
=0

xi

=1
y = yk

zCS

zk +1

Fig.14-5.3 Realizarea unei structuri IF..THEN..

5-12

ntr-un astfel de APA, un bloc ASM se poate realiza i ca o structur logic WHILE
dat n fig.14-5.3, dac:
CS = ADR( TEST x i ) - 3p , cu p 1 .
ntr-un APA cu separare complet a cmpurilor, pentru realizarea n tranziii de
succesiuni de teste, fiecare stare conine n descrierea sa cte un cmp test pentru fiecare
testare de efectuat.
Aceast situaie este exemplificat cu automatul din fig.15-5.3, n care o tranziie este
reprezentat prin blocul ASM reprezentat i descris prin relaiile:
(RS/N) + 1 , dac IF1 IF2 ( x i + x j ) = 1
(RS/N) =

(RS/N) + 2 ,

dac IF1 IF2 ( x i + x j ) + IF1 IF2 x j = 1

CS

dac IF1 IF2 x j = 1 .

MEMORY: 2n (2 + n) bits

Observaie:
Maxim 2n2
instruciuni
n memorie
n

ADDRESS

DATA =2+n bits

IF1 IF2
=0 =0

TEST xi

=0

=0

TEST x j

=1

=0

COM

=1

=1

CS

IF1 IF2
=0 =0

xi =0
xi =1

x j =0

y = (y1 ,..,yn )
RE

x j =1

TEST xi
(next instruction)
n

IF1 IF2

TEST, CS
zk

=0
=1

xj

xi

=1
IF..THEN..

=0
y = yk

zCS

zk +1

Fig.15-5.3 APA cu multiple cmpuri TEST

5-13

Observaie
ntr-o structur de APA cu memorie n format variabil, n care o stare intern este
descris pe mai multe locaii de memorie, registrul de stare cu numrare trebuie
incrementat cu 1 sau cu 2, att n parcurgerea strii interne, ct i la tranziia ctre
urmtoarea stare intern, blocul de comand fiind astfel mai complex.

5-14

BIBLIOGRAFIE RECOMANDAT
[1] Luca-Dan erbnai: Teoria automatelor, Institutul Politehnic Bucureti, Catedra de
Calculatoare, curs 1975
[2] I. Muntean: Sinteza automatelor finite, Editura TEHNIC, Bucureti, 1977
[3] R. L. Morris: Proiectarea cu circuite integrate TTL, Editura TEHNIC, Bucureti, 1980
[4] Iulian Ardelean, Horia Giurgiu, Liviu Lic Petrescu: Circuite integrate CMOS, Editura
TEHNIC, Bucureti, 1983
[5] Al. Valachi, M. Brsan: Tehnici numerice i automate, Editura JUNIMEA, Iai, 1986
[6] Radu Dobrescu, Theodor Borangiu: Automate programabile, Editura ACADEMIEI,
Bucureti, 1986
[7] I.P.R.S. Bneasa (Catalog): Circuite integrate digitale, 1990
[8] John Wakerly: Digital Design: Principles and Practices, Third Edition, PRINTICE
HALL, INC. a Person Education Company, 2000
[9] Hricu V. Alioa: The Mealy in Moore conversion of an automaton, SCIENTIFIC
BULLETIN of the POLITEHNICA University of Timioara, Romania, Transactions on
ELECTRONICS AND COMMUNICATIONS, Tom 51(65), Fascicola 1, pp.188-190,
2006 (Symposium of Electronics and Telecommunications ETc 2006).
[10] Hricu V. Alioa: The Moore in Mealy conversion of an automaton, BULETINUL
INSTITUTULUI POLITEHNIC DIN IAI, Tomul LII (LVI), Fasc.1-2, 2006.
ELECTROTEHNIC, ENERGETIC, ELECTRONIC
[11] Hricu V. Alioa: Metod de transformare matriceal a unui automat Mealy ntr-un
automat Moore echivalent, RO. Brevet de invenie nr.122234, 27.02.2009
[12] Zvi Kohavi, Niraj K. Jha: Switching and Finite Automata Theory, Third Edition,
Cambridge, www.cambridge.org/9780521857482
BIBLIOGRAFIE SUPLIMENTAR
[1] Arden, D. N.: Delay logic and finite state machines, in Proc. Second Ann. Symp.
Switching Theory and Logical Design, pp.133151, October 1961.
[2] Brzozowski, J. A.: A survey of regular expressions and their applications, IRE Trans.
Electron. Computers, vol.EC-11, pp.324335, June 1962.
[3] Brzozowski, J. A.: Derivatives of regular expressions, J. Assoc. Computing
Machinery, vol.11, pp.481494, 1964.
[4] Copi, I. M., C. C. Elgot, and J. B. Wright: Realization of events by logical nets,
J. Assoc. Computing Machinery, vol.5, pp.181196, April 1958; reprinted in Moore [7].
[5] Kleene, S. C.: Representation of Events in Nerve Nets and Finite Automata,pp.341,
Automata Studies, Princeton University Press, 1956.
[6] McNaughton, R., and H. Yamada: Regular expressions and state graphs for
automata, IRE Trans. Electron. Computers, vol.EC-9, pp.3947, March 1960;
reprinted in Moore [7].
[7] Moore, E. F. (ed.): Sequential Machines: Selected Papers, Addison-Wesley, Reading
MA, 1964.
[8] Myhill, J.: Finite automata and the representation of events, WADC Technical Report
57624, pp.112137, 1957.
[9] Ott, G. H., and N. H. Feinstein: Design of sequential machines from their regular
expressions, J. Assoc. Computing Machinery, vol.8, pp.585600, October 1961.
[10] Rabin, M. O., and D. Scott: Finite automata and their decision problems, IBM J. Res.
Develop., vol.3, no.2, pp. 114125, April 1959; reprinted in Moore [7].
[11] Shepherdson, J. C.: The reduction of two-way automata to one-way automata,
IBM J. Res. Develop., vol.3, no.2, pp.198200, April 1959; reprinted in Moore [7].

B-1