15. mikroprocesorsko upravljani konačni...

21
15. Mikroprocesorsko upravljani kona čni automat Mikroprocesori predstavljaju jedan alternativni pristup za sintezu sinhronih sekvencijalnih mašina. Primena mikroprocesora obezbeđuje sledećih nekoliko prednosti u odnosu na konvencionalne sinhrone sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone konačne automate: 1. Mikroprocesor ima izvršnu jedinicu koja pruža značajnu fleksibilnost kod sinteze sekvencijalnih mašina jer u svom repertoaru poseduje bogat skup aritmetičkih i logičkih instrukcija. Tako na primer, moguće je da se naredno stanje mašine odredi pomoću neke od aritmetičkih operacija, kakva je recimo, sabiranje ili oduzimanje, a zatim da se dobijeni rezultat komparira sa unapred odre đenom vrednošću sa ciljem da se aktivira prelazak mašine iz jednog stanja u drugo. 2. Druga prednost se sastoji u sledećem: Mikroprocesor može putem korišćenja softverskih kašnjenja da unese promenljiva vremenska kašnjenja između stanja mašine. Drugim rečima, trajanje stanja mašine nije više ograničeno, tj. vezano sa trajanjem taktnog intervala. Definisanje promenljivog vremena trajanja između dva stanja, kod standardnog pristupa, zahteva uvođenje eksternog uređaja (logike) tipa brojač koji se mora prethodno postaviti na vrednost željenog kašnjenja što u suštini usložnjava i poskupljuje rešenje. 3. Treća prednost je veoma značajna i sastoji se u sledećem: U odnosu na iznos odgovarajućeg hardvera moguće je generisati veliki broj stanja. Drugim rečima, dodavanjem izlaznih portova, broj stanja koji je dostupan spoljnim uređajima može drastično da se poveća. Ipak kod najvećeg broja sistema, dodatna stanja uglavnom se odnose samo na povećanje softvera a ne i hardvera. 4. Četvrta prednost se tiče uvođenja promena (izmene) u radu mašine. Ako se specifikacijama mašine zahtevaju promene u dijagramu stanja tada se te modifikacije obično implementiraju softverski. To je u suprotnosti sa konceptom realizacije hardwired mašina kod kojih promene mogu da zahtevaju izbacivanje ili dodavanje novih veza (ožičenje) u kolu. To znači da je mikroprocesorsko upravljana sekvencijalna mašina značajno fleksibilnija u odnosu na hardwired mašinu. 5. Peta prednost se sastoji u sledećem: U okviru jednog mikroprocesorskog sistema moguće je konfigurisati veći broj mašina. Svaka mašina se upravlja od strane različitog programa koji je smešten u memoriji mikroprocesorskog sistema. Takođe, svaka mašina je povezana sa odgovarajućim spoljnim kolom preko jedinstvenih U/I portova. Pri ovome prvenstveno zbog konačnog vremena izvršenja programa postoje i neka ograničenja, a ona se odnose na broj (posebnih) mašina koji se može implementirati od strane jednog procesora. 6. Šesta prednost je sledeća: Operacije mašine mogu se jedinstveno definisati od strane softvera. Nakon što je već jedanput hardver izveden, funkcionalnost mašine je određena od načina programiranja hardvera pri čemu moraju biti zadovoljene odgovarajuće specifikacije mašine. Oba tipa FSM mašine, Moore-ov i Mealy-ev automat, se mogu implementirati od strane mikroprocesora. 7. Sedma prednost se ogleda u sledećem: Moguće je aplicirati velike (složene) mašine na koje je moguće povezati veći broj perifernih uređaja. Struktura prekida kod mikroprocesora omogućava spoljnjem uređaju da inicira U/I operaciju pomoću generisanja zahteva za prekid. Svakom uređaju se dodeljuje jedinstveni prekidni vektor koji usmerava procesor da iz memorije izvrši odgovarajuću prekidno-uslužnu rutinu sa ciljem da se opsluži uređaj koji je zahtevao uslugu. Na osnovu prethodno nabrojanih prednosti, čitaocu se na prvi pogled može učiti da mikroprocesorsko upravljane sekvencijalne mašine predstavljaju znatno bolje tehničko rešenje u odnosu na mašine koje se implementiraju sa diskretnim komponentama. Ipak kod ovakvog pristupa postoje i neki značajni nedostaci koji se tiču primene mikroprocesora kod sinteze sekvencijalnih mašina. Kao prvo, mikroprocesorski sistem je veoma skup za implementaciju kod malih mašina. Za korektan rad mikroprocesorskih sistema potreban je rad i podrška drugih kola kakva su taktni generator, RAM i ROM memorija, U/I portovi, i odgovarajuća adresno dekoderska logika. Cena ovakvog sistema je suviše velika ako mašina treba da ima samo nekoliko stanja. Jedno od rešenja je da se koriste mikrokontroleri koji u sebi imaju ugrađen ograničen iznos RAM-a, ROM-a i U/I portova. Kao što smo već pomenuli, značajnu prednost mikroprocesorski baziranih sekvencijalnih mašina predstavlja to što se one mogu programirati. To sa jedne strane predstavlja prednost jer ovakva mogućnost pruža fleksibilnost u radu, ali sa druge sttrane je nedostatak jer zahteva da se koristi još jedan uređaj koji se naziva ROM programator. Ovaj programator se koristi za upis programa mašine u ROM

Upload: others

Post on 18-Oct-2020

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

15. Mikroprocesorsko upravljani konačni automat

Mikroprocesori predstavljaju jedan alternativni pristup za sintezu sinhronih sekvencijalnih mašina. Primena mikroprocesora obezbeđuje sledećih nekoliko prednosti u odnosu na konvencionalne sinhrone sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone konačne automate:

1. Mikroprocesor ima izvršnu jedinicu koja pruža značajnu fleksibilnost kod sinteze sekvencijalnih mašina jer u svom repertoaru poseduje bogat skup aritmetičkih i logičkih instrukcija. Tako na primer, moguće je da se naredno stanje mašine odredi pomoću neke od aritmetičkih operacija, kakva je recimo, sabiranje ili oduzimanje, a zatim da se dobijeni rezultat komparira sa unapred određenom vrednošću sa ciljem da se aktivira prelazak mašine iz jednog stanja u drugo.

2. Druga prednost se sastoji u sledećem: Mikroprocesor može putem korišćenja softverskih kašnjenja da unese promenljiva vremenska kašnjenja između stanja mašine. Drugim rečima, trajanje stanja mašine nije više ograničeno, tj. vezano sa trajanjem taktnog intervala. Definisanje promenljivog vremena trajanja između dva stanja, kod standardnog pristupa, zahteva uvođenje eksternog uređaja (logike) tipa brojač koji se mora prethodno postaviti na vrednost željenog kašnjenja što u suštini usložnjava i poskupljuje rešenje.

3. Treća prednost je veoma značajna i sastoji se u sledećem: U odnosu na iznos odgovarajućeg hardvera moguće je generisati veliki broj stanja. Drugim rečima, dodavanjem izlaznih portova, broj stanja koji je dostupan spoljnim uređajima može drastično da se poveća. Ipak kod najvećeg broja sistema, dodatna stanja uglavnom se odnose samo na povećanje softvera a ne i hardvera.

4. Četvrta prednost se tiče uvođenja promena (izmene) u radu mašine. Ako se specifikacijama mašine zahtevaju promene u dijagramu stanja tada se te modifikacije obično implementiraju softverski. To je u suprotnosti sa konceptom realizacije hardwired mašina kod kojih promene mogu da zahtevaju izbacivanje ili dodavanje novih veza (ožičenje) u kolu. To znači da je mikroprocesorsko upravljana sekvencijalna mašina značajno fleksibilnija u odnosu na hardwired mašinu.

5. Peta prednost se sastoji u sledećem: U okviru jednog mikroprocesorskog sistema moguće je konfigurisati veći broj mašina. Svaka mašina se upravlja od strane različitog programa koji je smešten u memoriji mikroprocesorskog sistema. Takođe, svaka mašina je povezana sa odgovarajućim spoljnim kolom preko jedinstvenih U/I portova. Pri ovome prvenstveno zbog konačnog vremena izvršenja programa postoje i neka ograničenja, a ona se odnose na broj (posebnih) mašina koji se može implementirati od strane jednog procesora.

6. Šesta prednost je sledeća: Operacije mašine mogu se jedinstveno definisati od strane softvera. Nakon što je već jedanput hardver izveden, funkcionalnost mašine je određena od načina programiranja hardvera pri čemu moraju biti zadovoljene odgovarajuće specifikacije mašine. Oba tipa FSM mašine, Moore-ov i Mealy-ev automat, se mogu implementirati od strane mikroprocesora.

7. Sedma prednost se ogleda u sledećem: Moguće je aplicirati velike (složene) mašine na koje je moguće povezati veći broj perifernih uređaja. Struktura prekida kod mikroprocesora omogućava spoljnjem uređaju da inicira U/I operaciju pomoću generisanja zahteva za prekid. Svakom uređaju se dodeljuje jedinstveni prekidni vektor koji usmerava procesor da iz memorije izvrši odgovarajuću prekidno-uslužnu rutinu sa ciljem da se opsluži uređaj koji je zahtevao uslugu.

Na osnovu prethodno nabrojanih prednosti, čitaocu se na prvi pogled može učiti da mikroprocesorsko

upravljane sekvencijalne mašine predstavljaju znatno bolje tehničko rešenje u odnosu na mašine koje se implementiraju sa diskretnim komponentama. Ipak kod ovakvog pristupa postoje i neki značajni nedostaci koji se tiču primene mikroprocesora kod sinteze sekvencijalnih mašina. Kao prvo, mikroprocesorski sistem je veoma skup za implementaciju kod malih mašina. Za korektan rad mikroprocesorskih sistema potreban je rad i podrška drugih kola kakva su taktni generator, RAM i ROM memorija, U/I portovi, i odgovarajuća adresno dekoderska logika. Cena ovakvog sistema je suviše velika ako mašina treba da ima samo nekoliko stanja. Jedno od rešenja je da se koriste mikrokontroleri koji u sebi imaju ugrađen ograničen iznos RAM-a, ROM-a i U/I portova.

Kao što smo već pomenuli, značajnu prednost mikroprocesorski baziranih sekvencijalnih mašina predstavlja to što se one mogu programirati. To sa jedne strane predstavlja prednost jer ovakva mogućnost pruža fleksibilnost u radu, ali sa druge sttrane je nedostatak jer zahteva da se koristi još jedan uređaj koji se naziva ROM programator. Ovaj programator se koristi za upis programa mašine u ROM

Page 2: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

memoriju sistema. Relativno posmatrano cena ROM programatora nije visoka, ali će cena cele FSM biti visoka ako ona ima samo nekoliko stanja. Kod novijih verzija mikrokontrolera postoji mogućnost loadovanja programa preko JTAG interfejsa što u značajnoj meri smanjuje cenu proizvoda a time i čini ovakav proizvod konkurentnim.

Treći nedostatak je verovatno najznačajniji. Nasuprot sekvencijalnih mašina sintetizovanih pomoću diskretnih komponenti, mikroprocesorski kontrolisane sekvencijalne mašine su suviše spore. Po nekoliko ciklusa instrukcija je potrebno da se izvrše u toku svakog prelaza iz jednog stanja u drugo. U toku ovog vremena, sa ciljem da se odredi naredno stanje, ulazni signali se čizaju preko ulaznog porta. Sa druge strane, izlazi su dostupni samo kada su odgovarajući bitovi na izlaznom portu postavljeni. Ulazno/izlazne operacije se realizuju pomoću relativno sporog aplikacionog programa, pri čemu U/I uređaji mogu sa aspekta adresibilnosti da pripadaju memorijsko preslikanom ili izdvojenom U/I prostoru. Kod izdvojenog U/I prostora U/I operacije se obavljaju IN i OUT naredbama, dok kod memorijsko preslikanog koncepta prenos podataka ostvaruje se pomoću instrukcija za obraćanje memoriji kakve su MOV, LOAD, STORE, i druge. 1. Opšta razmatranja Mikroprocesor je idealan za realizaciju velikih sekvencijalnih konačnih automata pod uslovom ako mašina može da toleriše relativno dugo trajanje između stanja. Mikroprocesor mora prvo da pročita ulazne signale sa ulaznog porta, zatim obavi operacije nad ulazima, i na kraju upiše rezultat u izlazni port kako bi definisao stanje na izlazu. Na slici 1 je prikazan opšti blok dijagram mikroprocesorski kontrolisane sekvencijalne mašine kod koje se jasno identifikuju karakteristike narednog stanja δ , memorijskih elemenata, i izlazne logike λ . Treba pri ovome naglasiti da ne postoji potreba za hardverski izvedenom povratnom spregom od registra-koji-čuva-tekuće-stanje (izlazni port) do ulaznog-registra-za-podatke (ulazni port) koji generiše naredno stanje. Softver je taj koji generiše naredno-stanje u funkciji samo tekućeg stanja, ili generiše naredno stanje u zavisnosti od tekućeg stanja i prisutnih ulaza.

δ λ

Slika 1. Opšti blok dijagram mikroprocesorski kontrolisane sinhrone sekvencijalne mašine Mikroprocesor prvo čita stanje ulaznog porta. Nakon toga sledi programska sekvenca u toku koje on testira stanje ulaznih signala. Ako je određeni uslov ispunjen softver će generisati novo stanje i upisati to stanje u izlazni port. Za demonstraciju rada mikroprocesorski kontrolisane sinhrone sekvencijalne mašine koristićemo mikroprocesor 8088 iz više razloga. Kao prvo, to je mikroprocesor koji pripada poznatoj familiji mikroprocesora x86 firme Intel. Kao drugo, ovaj mikroprocesor je masovno bio ugrađivan u PC mašine pa je zbog toga hardverski i softverski dobro dokumentovan. Kao treće, procedure za sintezu FSM-a razvijene za 8088 se mogu lako promeniti i na savremenije 32-bitne i 64-bitne mikroprocesore. Na slici 2 prikazani su detalji koji se odnose na povezivanje ulaznog porta (state register) i izlaznog porta (data register) na 8-bitnu magistralu podataka.

Page 3: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

akumulator

mikroprocesor 8088

a0 stanje a

b1 stanje b

c2 stanje c

d3 stanje d

e4 stanje e

f5 stanje f

g6 stanje g

h7 stanje h

8

magistrala podataka

LSB

x10ulaz x1

x21ulaz x2

x32ulaz x3

x43ulaz x4

x54ulaz x5

x65ulaz x6

x76ulaz x7

x87ulaz x8

LSBizlazni port

- state register -

ulazni port- data register -

Slika 2. State register i data register sa imenima stanja i dodela ulazno promenljivih Tekuće stanje se puni kada se sadržaj akumulatora upiše u state register pomoću naredbe OUT. Bitovi state register-a su proizvoljno definisani kako bi specificirali pojedino stanje. Tako na primer, stanje a se pridružuje bitu 0, a stanje h bitu 7. Ulazne promenljive se prenose od data register u akumulator preko magistrale podataka, pomoću naredbe IN. Specifični ulazi su proizvoljno doddeljeni bitovima ulaznog porta. S obzirom da je svako pojedinačno stanje mašine definisano stanjem jedinstvenog bita u state register-u to znači da kod ovog rešenja ne postoji potreba za dodeljivanjem kodova svakom stanju (code states assignment), to jest susednost u kodiranju stanja koja se sprovodi radi minimizacije broja stanja nije potrebno promeniti u ovom slučaju. Takođe pojava izlaznih gličeva nije relevantna, jer se stanje flip-flopova više ne dekodira kako bi se generisalo stanje na izlazu. Primera radi, u Tabeli 1 dat je listing za četiri stanja Moore-ove mašine kao funkcija dva flip-flopa y1 i y2, pri čemu se izlaz z1 potvrđuje u stanju

01yy 21 = , a izlaz z2 se potvrđuje u stanju 01yy 21 = . Ako mašina prelazi iz stanja a( 00yy 21 = ) u stanje b( 11yy 21 = ), tada može da se uđe u tranzijentno stanje c( 01yy 21 = ) ili d( 10yy 21 = ). To znači da se kod FSM-a realizovanog pomoću diskretnih logičkih elemenata mogu generisati pogrešne potvrde na izlazima z1 ili z2. Problem gličeva ne postoji kada se za sekvenciranje iz stanja a u b koristi mikroprocesor pri čemu se stanja čuvaju u state register.

Page 4: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Tabela 1. Dodeljivanje kodnih stanja kod Moore-ovog automata sa četiri stanja

tekuće stanje tekuće stanje ime stanja

1y 2y 1z 2z a 0 0 0 0 c 0 1 1 0 d 1 0 0 1 b 1 1 0 0

Slika 3. Prelaz iz stanja a u stanje b kod mikroprocesorski bazirane sekvencijalne mašine: (a) blok dijagram koji prikazuje sadržaje izlaznog porta za stanje a i b; (b) moguća preklapanja stanja a i b kod

prelaza iz stanja a u stanje b. Na slici 3 prikazan je prelaz iz stanja a u stanje b koji se ostvaruje pomoću dve posebne OUT instrukcije. Da bi se ušlo u stanje a prva U/I instrukcija puni state register sa 01H (vidi sliku 2a). Prelaz iz stanja a u stanje b se obavlja izvršenjem druge Out instrukcije pri čemu mikroprocesor upisuje 02H u state register. Ovom operacijom se ostvaruju dva cilja: a) mašina izlazi iz stanja a (resetuje se bit 0); i b) mašina ulazi u stanje b (bit 1 se setuje). S obzirom da se state register implementira pomoću flip-flopova postoje vremenske varijacije u set i reset karakteristikama flip-flopova koje se koriste za predstavljanje stanja a i b. Na primer, stanje b se može setovati pre resetovanja stanja a (vidi sliku 2b). Za kratak vremenski period oba stanja su potvrđena, ali ipak treba naglasiti da neće doći do gliča - tj. mašina ne prelazi kroz drugo stanje iz razloga što se stanja flip-flopova kod ovakvog rešenja ne dekodiraju sa ciljem da se odredi drugo stanje kakav je to slučaj kod FSM-ova sa diskretnim elementima. Naime, korišćenjem mikroprocesorske implementacije kod sekvencijalnih mašina, stanje se predstavlja jedinstvenim bitom u state register, a ne dobija se putem dekodiranja stanja na izlazima flip-flopova.

Page 5: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

2. Sinteza Mealy-eve mašine Pre nego što ćemo prezentirati arhitekturu mikroprocesorski kontrolisane sekvencijalne mašine ukazaćemo prvo preko jednog primera na neophodne korake koje je potrebno preuzeti radi sinteze programa na osnovu skupa specifikacionih zahteva mašine, ili konkretno na osnovu dijagrama stanja. Primer 1 Mealy-ev automat koga ćemo sintetizovati prihvata tri paralelna ulaza, 1x , 2x i 3x , a generiše dva izlaza 1z i 2z . Sledeće ulazne sekvence potvrđuju (aktiviraju) 1z i 2z , respektivno.

1321 ,000,111,000 zaktivirajthenxxxif =

2321 ,111,000,111 zaktivirajthenxxxif = Obe važeće sekvence su prikazane u različitoj prezentaciji na sledeći način: KKK 1010101 =x KKK 1010102 =x KKK 1010103 =x aktiviraj 1z aktiviraj 2z U svim ostalim sekvencama 1z i 2z biće neaktivni. Iskazi za aktiviranje/deaktiviranje nisu neophodni za izlaze mašine iz razloga što je njihovo aktivno stanje kontrolisano od strane mikroprocesora, tj. oni se postavljaju potprogramskom kontrolom i ostaju u tom stanju sve dok se programski ne resetuju. Dodela bitova ulaznim i izlaznim portovima je prikazana na slici 4. Tri ulaza 1x , 2x i 3x se dodeljuju bit pozicijama 0, 1, i 2, respektivno, ulaznog porta. Izlazni port ima ugrađen registar za sve izlaze mašine. Stanja a do f su dodeljena bit pozicijama od 0 do 5, respektivno, a izlazi 1z i 2z pripadaju bitovima 6 i 7, respektivno. Dijagram toka je prikazan na slici 5. Kodovi stanja nisu neophodni jer se flip-flopovi ne dekodiraju sa ciljem da se definiše pojedino stanje, tj. stanje se predstavlja jedinstvenim bitom izlaznog porta (state register). Takođe treba naglasiti da ulazna i izlazna preslikavanja nisu primenljiva na mikroprocesorsko kontrolisane sekvencijalne mašine. Ulazna preslikavanja su zamenjena programskom sekvencom koja čita promenljive, analizira njihove vrednosti i postavlja odgovarajuće stanje u state register. Moore-ovi izlazi se postavljaju kada se unese odgovarajuće stanje, dok se Mealy-evi izlazi postavljaju nakon unosa stanja i eveluacije ulaza.

Slika 4. Dodela bitova za ulazni i izlazni port registra kod Primera 1

Page 6: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

''' xxxxxx 322131 ++

''' xxx 321 321 xxx

''' xxx 321 ++ 321 xxx ++

''' xxx 321 ++321 xxx ++

''' xxx 321 321 xxx

''' xxx 321321 xxx

Slika 5. Dijagram stanja Mealy-eve mašine za Primer 1

Mašina počinje sa radom unosom stanja a, pri čemu se pristupa vrednostima prisutnim na paralelnim ulazima. Mašina prelazi u stanje b ili c samo ako su ulazne promenljive 111ili,000321 =xxx . Za sve ostale ulazne kombinacije mašina ostaje u stanju a. Zahtevi za ostajanje u stanju a su tabelirani na slici 6a, a minimizirani su korišćenjem Karnaugh-ove mape sa slike 6b. Alternativno, mašina ostaje u stanju a uvek kada ulazne promenljive zadovoljavaju izraz ( ) ( )'' 321

'3

'2

'1 xxxxxx ⋅ , koji se može redukovati Boole-

ovom algebrom na minimizirani izlaz tipa suma-proizvoda (SOP - Sum of Products) kako je to prikazano na slici 6b.

''' xxxxxx 322131 ++

(a) (b) Slika 6. Ulazne vrednosti za 1x , 2x i 3x koje uzrokuju da Mealy-eva mašina sa slike 4 ostane u stanju a:

(a) tablica istinitosti; (b) Karnaugh-ova mapa Da bi se odredilo da li je prelaz iz jednog stanja u drugo relevantan, mašina pod programskom kontrolom čita stanje ulaznog porta. Ispituju se sadržaji bitova pa se zatim obavlja prelazak u odgovarajuće stanje postavljanjem odgovarajućeg stanja na vrednost 1 u izlaznom portu. Na slici 7 prikazan je listing kodnog segmenta koji usmerava mašinu u saglasnosti sa dijagramom stanja. Neophodno je pri tome izlistati ceo program, uključujući segmente magacina i podataka. Adrese ulaznih i izlaznih portova su unapred definisane i označene kao INPORT i OUTPORT, respektivno. Da bi se ušlo u stanje a program prvo mora da napuni vrednost 01H u registar AL. Ova vrednost odgovara stanju a (bit 0 OUTPORT-a je postavljen na 1 dok su svi ostali postavljeni na 0). Nakon ovoga sadržaj AL-a se prenosi u state register pomoću naredbe OUT. U tom trenutku mašina ulazi u stanje a. Instrukcije za ovu sekvencu su prikazane na slici 7, a to su

Page 7: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

STTA: Mov AL,01h ; priprema za ulazak u stanje a Out OUTPORT,AL ; izlazak iz prethodnog stanja i ulazak u stanje a U stanju a program ispituje vrednosti triju promenljivih 1x , 2x i 3x kako bi odredio naredno stanje. Ako je 111ili,000321 =xxx mašina prelazi u stanje b ili c, respektivno; inače mašina ostaje u stanju a i ponovo testira vrednosti ulazno promenljivih. Ova aktivnost se obavlja na osnovu sledeće sekvence instrukcija: STTA1: In AL,INPORT ; AL ← 321 xxx And AL,07h ; maskiranje svih bitova osim 321 xxx Jz STTB ; go to stanje b if 000321 =xxx Cmp AL,07h ; testiraj za 111321 =xxx Je STTC ; go to stanje c if 111321 =xxx Jmp STTA1 ; otherwise go to stanje a Listing programa na asemblerskom jeziku mikroprocesora x86 koji se odnosi na Mealy-ev automat iz Primera 1 i sa slike 5 je sledeći: STTA: Mov AL,01h ; priprema za ulazak u stanje a Out OUTPORT,AL ; izlazak iz prethodnog stanja i ulazak u stanje a STTA1: In AL,INPORT ; AL ← 321 xxx And AL,07h ; maskiranje svih bitova osim ... 321 xxx Jz STTB ; go to stanje b if 000321 =xxx Cmp AL,07h ; testiraj za 111321 =xxx Je STTC ; go to stanje c if 111321 =xxx Jmp STTA1 ; otherwise go to stanje a ** ---------------------------------------------------------------------------------------- STTB: Mov AL,02h ; priprema za prelaz iz stanja a u stanje b Out OUTPORT,AL ; izlazak iz stanja a i ulazak u stanje b In AL,INPORT ; AL ← 321 xxx And AL,07h ; maskiranje svih bitova osim ... 321 xxx Cmp AL,07h ; testiraj za 111321 =xxx Je STTD ; go to stanje d if ... 111321 =xxx Jmp STTE ; otherwise go to stanje e ** ---------------------------------------------------------------------------------------- STTC: Mov AL,04h ; priprema za prelaz iz stanja a u stanje c Out OUTPORT,AL ; izlazak iz stanja a i ulazak u stanje c In AL,INPORT ; AL ← 321 xxx And AL,07h ; maskiranje svih bitova osim ... 321 xxx Jz STTF ; go to stanje f if ... 000321 =xxx Jmp STTE ; otherwise go to stanje e ** ---------------------------------------------------------------------------------------- STTD: Mov AL,08h ; priprema za prelaz iz stanja b u stanje d Out OUTPORT,AL ; izlazak iz stanja b i ulazak u stanje d In AL,INPORT ; AL ← 321 xxx

Page 8: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

And AL,07h ; maskiranje svih bitova osim ... 321 xxx Jnz STTA ; go to stanje a if ... 000321 ≠xxx Mov AL,48h ; priprema za aktiviranje z1 dok je u stanju d Out OUTPORT,AL ; aktiviranje z1 u stanju d Mov AL,08h ; priprema za deaktiviranje z1 dok je u stanju d Out OUTPORT,AL ; deaktiviranje z1 Jmp STTA ; go to stanje a ** ---------------------------------------------------------------------------------------- STTE: Mov AL,10h ; priprema za izlazak iz stanja b ili c i ulazak u a Out OUTPORT,AL ; ulazak u stanje a Jmp STTA ; produžetak u stanje a ** ---------------------------------------------------------------------------------------- STTF: Mov AL,20h ; priprema za prelaz iz stanja c u stanje f Out OUTPORT,AL ; izlazak iz stanja c i ulazak u stanje f In AL,INPORT ; AL ← 321 xxx And AL,07h ; maskiranje svih bitova osim ... 321 xxx Cmp AL,07h ; testiraj za 111321 =xxx Jnz STTA ; go to stanje a if ... 111321 ≠xxx Mov AL,0A0h ; priprema za aktiviranje z2 dok je u stanju f Out OUTPORT,AL ; aktiviranje z2 u stanju f Mov AL,20h ; priprema za deaktiviranje z2 dok je u stanju f Out OUTPORT,AL ; deaktiviranje z2 Jmp STTA ; go to stanje a ** ---------------------------------------------------------------------------------------- Slika 7. Program na asemblerskom jeziku mikroprocesora x86 koji se odnosi na rad Mealy-evog automata

sa slike 5 Vreme trajanja svakog stanja je promenljivo, i zavisi od broja instrukcija u tom stanju. Dijagram stanja sa slike 5 i program na asemblerskom jeziku reprodukovani na konkurentan način dati su na slici 8. Paralelna prezentacija na slici 8 omogućava nam da lakše razumemo rad mašine putem smeštaja programskih segmenata pored odgovarajućih stanja.

Page 9: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

''' xxxxxx 322131 ++

''' xxx 321 321 xxx

''' xxx 321 ++ 321 xxx ++

''' xxx 321 ++

''' xxx 321 321 xxx

''' xxx 321321 xxx

321 xxx ++

Slika 8. Konkurentna prezentacija Mealy-evog automata iz Primera 1: a) dijagram stanja; i b) program na

asemblerskom jeziku 3. Povećanje broja stanja Alfabet stanja Y se može lako povećati povećanjem broja izlaznih portova. Na slici 9 opisano je stanje sa n izlaznih portova što rezultira stanjaosam∗n . Svakom izlaznom portu se pristupa preko jedinstvene adrese. Slično uređenje je moguće i za ulazne portove, mada obično postoji veći broj stanja od ulazno promenljivih. Zbog toga na slici 9 je prikazan samo jedan ulazni port. Suprotan slučaj je moguć kada dva ili tri porta čine stanje alfabeta Y. Problem u radu automata se javlja kada se zahteva promena stanja između dva stanja koja se čuvaju u različitim registrima stanja. Naime, bit ( )tjY tekućeg stanja standardno se resetuje u registru i pomoću Out instrukcije postavljanjem na logičku 0 odgovarajuću bit poziciju izlaznog podatka. Program zatim izvršava sekvencu instrukcija i ulazi u naredno stanje ( )1+tkY . Dok se vrši

Page 10: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

postavljanje u naredno stanje, ipak postoji jedan konačan vremenski period, u kome tekuće stanje ostaje nedefinisano. Ovaj uslov, može ali i ne mora da je od značaja za hardver eksternih kola. Da bi se ovaj problem rešio u samu mašinu je potrebno ugraditi dodatnu logiku.

Slika 9. Mikroprocesorski kontrolisana sekvencijalna mašina sa dodatnim stanjima

Takođe je moguće povećati broj stanja bez dodatnih registara stanja. Kod implementacije registra stanja sa slike 9, svaki bit ukazuje na jedinstveno stanje. Ovakvo uređenje se naziva horizontalna konfiguracija iz razloga što ne zahteva dekodiranje. Horizontalna organizacija je poželjna kada brzina rada pri prelazu iz jednog stanja u drugo postaje kritična. Alternativni pristup se bazira na vertikalnoj organizaciji. Kod potpunog vertikalnog metoda vrši se dekodiranje n-bitova stanja pomoću jednog dekodera tipa nn 2: . Tako na primer, sa 8-bitnim registrom stanja moguće je generisati 256 različitih stanja. Realizacija ovakvog dekodera je ipak nepraktična iz dva razloga. Kao prvo neophodno je realizovati stablastu (hijerarhijsku) strukturu dekodera (u tri ili četiri nivoa) kako bi se dobio željeni broj izlaza (ne postoji dekoderski čip sa 256 izlaza). Ovakvim pristupom u znatnoj meri se povećava logika mašine. Drugi razlog je od manjeg značaja zbog komparativno sporije brzine u fazi tranzicije stanja -

Page 11: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

propagaciono kašnjenje kroz multičip dekoder (hijerarhijski organizovano dekodersko stablo) je u značajnoj meri veće od propagacionog kašnjenja kroz flip-flop. Alternativno rešenje se može realizovati kombinovanjem horizontalnog i vertikalnog pristupa. Neki od bitova registra stanja koriste horizontalnu organizaciju, dok ostali bitovi, uz pomoć jednog dekodera, koriste vertikalnu konfiguraciju. Na slici 10 prikazana je jedna takva organizacija koja koristi jedan izlazni registar.

Slika 10. Kombinacija horizontalne i vertikalne konfiguracije radi generisanja stanja kod mikroprocesorski-upravljane sekvencijalne mašine.

Kao što se vidi sa slike 10, ugradnjom jednog dekodera tipa 3:8 broj stanja sa 8 se povećava na 13. Ugradnjom dekodera ipak se sada otvara jedan novi problem. Naime, da ne bi dva stanja bila istovremeno aktivna (jedno od a do e, a drugo od f do m) neophodno je da se stanje f ne koristi, ili da se ugradi dodatna enable logika kojom se dozvoljava ili brani rad dekodera DX sa slike 10, uvek kada je neko od stanja a do e aktivno (tada su stanja od f do m neaktivna). Način na koji se vrši programiranje registara stanja sa slike 10 sa ciljem da se aktiviraju sva stanja od a do m je dat u Tabeli 2.

Tabela 2. Format za programiranje registara stanja sa slike 9 kako bi sva stanja od a do m bila aktivna

Bitovi na izlaznom portu 7 6 5 4 3 2 1 0 aktivno stanje 0 0 0 0 0 0 0 1 a 0 0 0 0 0 0 1 0 b 0 0 0 0 0 1 0 0 c 0 0 0 0 1 0 0 0 d 0 0 0 1 0 0 0 0 e 0 0 0 0 0 0 0 0 f 0 0 1 0 0 0 0 0 g 0 1 0 0 0 0 0 0 h 0 1 1 0 0 0 0 0 i 1 0 0 0 0 0 0 0 j 1 0 1 0 0 0 0 0 k 1 1 0 0 0 0 0 0 l 1 1 1 0 0 0 0 0 m

Page 12: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

4. Moore-ovi i Mealy-evi izlazi Izlazi mašine se postavljaju pod programskom kontrolom. Kod Moore-ovog automata postavljanje izlaza je koincidentno sa aktiviranjem stanja. U svom najjednostavnijem obliku, Moore-ov izlaz je identičan po vrednošću sa stanjem u kome se postavlja izlaz. Tako na primer, na slici 11a) dat je segment dijagrama stanja mašine sa 8 stanja kod koje se izlaz z1 postavlja u funkciji tekućeg stanja d. Na slici 11b) prikazan je registar stanja (state register) mašine kod koje se stanja od a do h potvrđuju bit pozicijama od 0 do 7, respektivno. Za implementaciju z1 nije potreban dodatni hardver. Kada mašina pod programskom kontrolom uđe u stanje d ona postavi registar stanja na vrednost 08h, čime se aktivita izlaz z1.

a) b)

Slika 11. Postavljanje Moore-ovog izlaza kod mikroprocesorski kontrolisane sekvencijalne mašine: a) segment dijagrama stanja; i b) registar stanja kod koga se izlaz z1 aktivira kada mašina uđe u stanje d

Za postavljanje Mealy-evih izlaza potrebno je sprovesti nešto složeniji proces. Naime, kada se uđe u stanje koje odgovara Mealy-evom izlazu, tada se moraju prvo ispitati (testirati) ulazne promenljive sa ciljem da se odredi da li treba postaviti izlaz. Ova procedura je detaljnije opisana kreiranim asemblerskim programom prikazanim na slici 7, koji važi za Mealy-evu mašinu sa slike 5. Na slici 12a) prikazan je segment dijagrama stanja kod koga se Mealy-ev izlaz postavlja u stanje h ako je 1121 =xx . Na slici 12b) dat je dodatan detalj koji se tiče ulaznih i izlaznih portova generalizovane mikroprocesorski kontrolisane sekvencijalne mašine sa Mealy-evim izlazima. Aplikacioni program utiče na ulazak u stanje h adresiranjem OUTPORT0 koincidentno sa gejtovanim Write impulsom i postavljanjem vrednosti 80h na magistrali za podatke. Mašina ulazi u stanje h kada aktivan-kao-niski gejtovan impuls upisa 1 generiše prelaz sa niskog na visoko na positive edge triggered taktnom ulazu registra OUTPUT0. Program nakon toga čita sadržaj INPORT-a. Jedinstvenom adresom konkurentno se selektuje INPORT pomoću impulsa za čitanje (gejtovan impuls čitanja). Pri ovome se usvaja da se dodatnim kolima ulazne promenljive postave u stabilno stanje (lečuju) pre nego što se programski aktivira gejtovan impuls čitanja. INPORT se implementira kao trostatički bafer/drajver koji povezuje ulazne signale na magistralu podataka. To znači da kada se aktivan kao niski gejtovan impuls čitanja postavi u stanje nisko, ulaz Output Enable (OE) postavlja (propušta) stanje sistemskih ulaza na bidirekcionu magistarlu podataka. Kada se gejtovan impuls čitanja deaktivira, njegovim prelaskom sa nisko na visoko sadržaj akumulatora mikroprocesora se postavlja na vrednost koja je u tom trenutku prisutna na magistrali za podatke.

a)

Page 13: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

mikroprocesor 8088

D0

D1

D2

D3

D4

D5

D6

D7

OUTPORT0registar stanja

Y λδ

8 + stanje a+ stanje b+ stanje c+ stanje d+ stanje e+ stanje f + stanje g+ stanje h

magistrala podataka

- gejtovan impuls upisa 1

D0

D1

D2

D3

D4

D5

D6

D7

OUTPORT1izlazni registar

+ izlaz z1

+ izlaz z2

+ izlaz z3

+ izlaz z4

+ izlaz z5

+ izlaz z6

+ izlaz z7

+ izlaz z8

- gejtovan impuls upisa 2

D0

D1

D2

D3

D4

D5

D6

D7

INPORT- gejtovan impuls

čitanja

+ ulaz x1

+ ulaz x2

+ ulaz x3

+ ulaz x4

+ ulaz x5

+ ulaz x6

+ ulaz x7

+ ulaz x8 b)

Slika 12. Generalni blok dijagram koji prikazuje glavne komponente mikroprocesorski kontrolisane sekvencijalne mašine sa Mealy-evim izlazima: (a) segment dijagrama stanja; i (b) ulazni, state, i izlazni

portovi Ako su ulazi 1121 =xx tada program adresira OUTPORT1 i na magistrali podataka postavlja vrednost 01h (z1). Sa rastućom ivicom gejtovanog impulsa upisa 2 koji je aktivan kao niski sadržaj magistrale podataka se puni u OUTPORT1 čime se postavlja z1. Kod ove aplikacije OUTPORT1 registar je namenjen za generisanje izlaza mašine a može se koristiti i za implementaciju kako izlaza Moore-ove tako i izlaza Mealy-eve mašine. Ipak, za slučaj da registar stanja ne bude u potpunosti iskorišćen tada se njegove neiskorišćene bit pozicije mogu koristiti kao izlazi mašine, što znači da izlazni port nema samo jednu funkciju. 5. Arhitektura sistema Broj pinova integrisanog mikroprocesorskog čipa 8088 je ograničen, pa su zbog toga adresna i magistrala za podatke multipleksirane (vidi sliku 13). U toku prvog dela magistralnog ciklusa na pinovima adrese/podaci AD0-AD7 generišu se adrese. Adrese se pune u transparentni registar i lečuju se pomoću signala ALE (Address Latch Enable) čime se obezbeđuje uslov da one budu stabilne u toku izvršenja ostalog dela instrukcija. Adresno statusne linije od A19/S6 do A16/S3 su takođe vremensko multipleksirane. Arhitektura tipične mikroprocesorski kontrolisane sekvencijalne mašine je prikazana na slici 14.

Page 14: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Slika 13. Mikroprocesor 8088 sa multipleksiranom magistralom adrese/podaci

Arhitektura sa slike 14 se odnosi na minimalnu konfiguraciju, i tipična je za realizaciju sistema male složenosti kod kojih mikroprocesor generiše sve magistralne i upravljačke signale. Logika narednog stanja δ predstavljena je selekt-dekoderom za INPORT i trostatičkim INPORT7 bafer/drajverom. Alfabet stanja Y je opisan pomoću OUTPORT0 registra i selekt-dekoderom OUTPORT, koji je deljiv sa λ izlaznom logikom koja je dodeljena OUTPORT1. Taktni generator obezbeđuje tajming i sinhronizaciju za ceo sistem. Na taktni generator se povezuje kristalni oscilator čija je frekvencija do tri puta veća od procesorske. Obično mikroprocesor 8088 radi na frekvenciji od 8 MHz, a kristal je frekvencije 15 MHz. INPORT selekt-dekoder selektuje ulazni port kada program izvršava naredbu IN. INPORT7 prihvata 8 ulazno promenljivih 821 ,,, xxx K . Adresa ulaznog porta je proizvoljno izabrana da bude A7A6A5A4 = 0111. Na ovaj način INPORT7 se selektuje kada su adresne linije A7A6A5A4 = 0111, IO/(-M) upravljačka linija je u stanju visoko (što ukazuje da se radi o U/I operaciji), a signal Read se postavlja na nisko. Kada su ovi uslovi ispunjeni izlazi trostatičkog INPORT7 bafer/drajvera su dozvoljeni i njegov sadržaj se postavlja na magistrali za podatke u koincidenciji sa signalom Read. Talasni oblici signala Read prikazani su na slici 15a). Sadržaj magistrale podataka punise u registar AL rastućom ivicom signala Read. Ako broj ulazno promenljivih ne premašuje 8 tada se dekoder može zameniti jednim AND kolom pomoću kojeg se može selektovati INPORT7. Implementirajući INPORT selektorsku logiku pomoću dekodera obezbeđuje se proširenje selekcije na sedam ulaznih portova INPORT0, INPORT1, ..., INPORT6 bez dodatnog hardvera za selekciju. Logika za selekciju ulaznog porta se aktivira samo kada je signal Read u aktivnom stanju. Na ovaj način, ako je potrebno, ista adresa se može koristiti i za selekciju izlaznog porta, kome je dozvoljen rad kada je aktivan signal Write. U Tabeli 3 prikazan je listing osam mogućih izlaznih portova. Selekcija izlaznog porta se vrši na sličan način a definisana je Tabelom 4. U toku izvršenja instrukcije OUT, adresa OUTPORT se postavlja na adresnoj magistrali. Nakon toga sledi podatak koji se čita iz registra AL i postavlja na magistrali podataka. Kada je impuls Write aktivan (vidi sliku 15a) i pri njegovoj tranziciji sa nisko na visoko, sadržaj prisutan na magistrali za podatke se puni u adresirani izlazni port. Ako se selektuje OUTPORT0, tada podaci specificiraju tekuće stanje ( )tjY , a ako se selektuje OUTPORT1 tada podaci specificiraju tekuće stanje iz . Izlazni portovi se selektuju samo kada +IO/(-M) signal je postavljen u stanje visoko ukazujući da se tekuće izvršava U/I operacija. Šest dodatnih izlaznih portova OUTPORT2, OUTPORT 3, ..., OUTPORT7 je moguće povezati na izlaze dekodera 2 do 7, respektivno. ROM i RAM memorijski čipovi se selektuju kako je to prikazano na slici 14b).

Page 15: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

D0

D1

D2

D3

D4

D5

D6

D7

OUTPORT0registar stanja

Y λδ

+stanje a+stanje b+stanje c+stanje d+stanje e+stanje f +stanje g+stanje h

magistrala podataka

D0

D1

D2

D3

D4

D5

D6

D7

OUTPORT1izlazni registar

+z1

+z2

+z3

+z4

+z5

+z6

+z7

+z8

D0

D1

D2

D3

D4

D5

D6

D7

INPORT

+x1

+x2

+x3

+x4

+x5

+x6

+x7

+x8

OUTPORT selekcija

BIN/OCT01234567

012

+A4+A5+A6

EN

INPORT selekcija

BIN/OCT01234567

012

+A4

+A5

+A6

EN

+A7

-Read+IO(-M)

+A7

-Read+IO(-M)

kontrolna magistrala

adresna magistrala

8088A19:A0

D7:D0

Control

ROM

clock

RAM

Selekcija memorije

BIN/OCT01234567

012

EN

-Read

+IO(-M)

ROM

RAM

CEOEadresa

CEOEWEadresa

-Read-Write

Page 16: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

T1 T2 T3 T4

-Clock

+A19:A0

A19/S6:A16/S3 adresa status

Ciklus čitanja

+IO(-M)

+AD15:AD0

-Read

adresa ulaz. podat.

load. AL

(a)

Ciklus upisa

+IO(-M)

+AD15:AD0

-Write

adresa izlaz podat.

load. OUTPORT

(b) Slika 15. Arhitektura mikroprocesorski kontrolisane sekvencijalne mašine: (a) ulaz/izlaz port selekcija; i

(b) selekcija memorije

Tabela 3. Adrese ulaznog porta adresni bitovi selektovan

ulazni port A7 A6 A5 A4 A3 A2 A1 A0 INPORT0 0 0 0 0 0 0 0 0 INPORT1 0 0 0 1 0 0 0 0 INPORT2 0 0 1 0 0 0 0 0 INPORT3 0 0 1 1 0 0 0 0

INPORT4 0 1 0 0 0 0 0 0

INTPORT5 0 1 0 1 0 0 0 0 INPORT6 0 0 1 0 0 0 0 0 INPORT7 0 1 1 1 0 0 0 0

Tabela 4. Adrese izlaznog porta

adresni bitovi selektovan izlazni port A7 A6 A5 A4 A3 A2 A1 A0 OUTPORT0 0 0 0 0 0 0 0 0 OUTPORT1 0 0 0 1 0 0 0 0 OUTPORT2 0 0 1 0 0 0 0 0 OUTPORT3 0 0 1 1 0 0 0 0

OUTPORT4 0 1 0 0 0 0 0 0 OUTPORT5 0 1 0 1 0 0 0 0 OUTPORT6 0 0 1 0 0 0 0 0 OUTPORT7 0 1 1 1 0 0 0 0

Page 17: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Primer 2 Na slici 16 prikazan je jedan jednostavan dijagram stanja koji se može implementirati pomoću arhitekture prikazane na slici 14. Mašina ima izlaze tipa Moore-a i Mealy-a. Adrese ulaznih i izlaznih portova su sledeće: INPORT7 EQU 70H OUTPORT0 EQU 00H OUTPORT1 EQU 01H

'2

'1 xx

21 xx

2'1 xx +

'21 xx

21 xx ⊕

Slika 16. Dijagram stanja koji se implementira uz pomoć arhitekture sa slike 14

Mašina ulazi u stanje a pomoću sledeće sekvence instrukcija: STTA: Mov AL,01h ; ulazak u Out OUTPORT0,AL ; ... stanje a Mašina zatim čita vrednosti ulazno promenljivih koristeći sledeću instrukciju: STTA1: In AL,INPORT7 ; AL ← 21xx Program nakon ovoga sekvencira mašinu u stanje b ili c, u zavisnosti od instrukcije uslovnog grananja u stanju a na sledeći način: And AL,03h ; maskiraj sve bitove osim 21xx

Jz STTA1 ; go to stanje a if 0021 =xx Jmp STTB ; ... prelazak u stanje b Jmp STTC ; otherwise, produži sa stanjem c jer je 0121 =xx ili 10 U stanju b Mealy-ev izlaz z1 se aktivira ako je 1021 =xx , što je prikazano sledećom sekvencom: STTB: Mov AL,02h ; izlaz iz stanja a Out OUTPORT0,AL ; ulazak u stanje b In AL,INPORT7 ; AL ← 21xx And AL,03h ; maskiraj sve bitove osim 21xx

Cmp AL,01h ; testiraj za 1021 =xx

Page 18: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Jz SETZ1 ; if true go i potvrdi z1 Jmp STTD ; if 1021 ≠xx then pređi u stanje d SETZ1: Mov AL,01h ; priprema za aktiviranje z1 Out OUTPORT1,AL ; aktiviraj z1 u stanje b Sub AL,AL ; obriši AL radi deaktiviranja z1 Out OUTPORT1,AL ; deaktiviraj z1 Jmp STTD ; if 1021 ≠xx then pređi u stanje d Mašina ulazi u stanje c iz stanja a i aktivira Moore-ov izlaz z2 STTC: Mov AL,04h ; izlaz iz stanja a Out OUTPORT0,AL ; ulazak u stanje c Mov AL,02h ; priprema za aktiviranje z2 Out OUTPORT1,AL ; aktiviraj z2 Sub AL,AL ; obriši AL radi deaktiviranja z2 Out OUTPORT1,AL ; deaktiviraj z2 Jmp STTD ; produži sa stanjem d Mašina ulazi u stanje d iz stanja b ili c i aktivira Moore-ov izlaz z3 STTD: Mov AL,08h ; izlaz iz stanja b ili c Out OUTPORT0,AL ; ulazak u stanje d Mov AL,04h ; priprema za aktiviranje z3 Out OUTPORT1,AL ; aktiviraj z3 Sub AL,AL ; obriši AL radi deaktiviranja z3

Out OUTPORT1,AL ; deaktiviraj z3 Jmp STTA ;go to stanje a 6. Veći broj mašina Prednost, moć i univerzalnost mikroprocesorski baziranih rešenja se može efikasno iskoristiti za sintezu većeg broja FSM-ova pomoću jednog mikroračunara. I pored toga što mikroprocesor u datom trenutku upravlja radom samo jednim FSM-om, FSM-ovi u suštini rade konkurentno. Na slici 17 prikazani su ulazni i izlazni registri za dve mašine A i B pri čemu se svaka upravlja od strane istog mikroprocesora. Kod ove organizacije se pretpostavlja da postoje izdvojeni portovi za izlaze mašina. Svakom od šest portova se pristupa različitom adresom. Prelaz između programskih segmenata koji upravljaju radom svake mašine se ostvaruje izvršenjem intersegmentne instrukcije CALL ili pomoću prekida. Intersegmentna CALL instrukcija prenosi pravo upravljanja između kodnog segmenta mašine A i kodnog segmenta mašine B. Na slici 18 prikazan je pojednostavljeni dijagram toka za programe koji upravljaju radom mašina A i B. Aplikacioni program mašine A (program A) počinje ulaskom u inicijalno stanje. Program zatim izvršava intersegentnu instrukciju CALL kojom se poziva procedura MACHB čime počinje izvršenje programa za mašinu B (program B). Lokacija tekućeg stanja u programu B je prethodno bila zapamćena u Jump tabeli. Program B zatim skače na sekvencu instrukcija koje se odnose na tekuće stanje.

Page 19: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Y λδmagistrala podataka

8pA stanja

mašine A

OUTPORTA1

mA izlazimašine A

OUTPORTA2INPORTA

nAulazimašine A

mašina A

mašina B

pB stanja mašine B

OUTPORTB1

mB izlazimašine B

OUTPORTB2INPORTB

nBulazimašine B

Slika 17. Veći broj mašina upravljan od strane jednog mikroprocesora

Page 20: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Slika 18. Pojednostavljeni dijagram toka za programe dveju sekvencijalnih mašina kontrolisanih od strane

istog mikroprocesora koristeći intersegmentnu instrukciju CALL U kodnoj sekvenci tekuće-stanje program B ispituje ulazne promenljive, ako su dostupne, kako bi odredio naredno stanje. Kada se uđe u naredno stanje, bilo koji Moore-ov izlaz koji se odnosi na to stanje se aktivira postavljanjem odgovarajućeg bita u izlaznom registru mašine OUTPORTB2. Ako je Mealy-ev izlaz pridružen tekućem stanju, a uslovi na ulazu su ispunjeni, tada se odgovarajući bit u izlaznom registru OUTPORTB2 postavlja. Tekuće stanje se zatim pamti u memoriji tako da program B, kada se ponovo pozove, tačno locira tekuće stanje mašine B. Kada se od strane programa B izvrši instrukcija RET sistem vraća ponovo upravljanje programu A na adresi koja sledi nakon instrukcije CALL. Program A nakon toga obavlja sličnu sekvencu instrukcija, ispituje ulazne promenljive, i ako je došlo do promene određuje naredno stanje, a ako je potrebno postavlja odgovarajuće izlaze.

Page 21: 15. Mikroprocesorsko upravljani konačni automates.elfak.ni.ac.rs/es/Materijal/Pog.15-Mikroprocesorsko upravljani FS… · sekvencijalne mašine, tzv. sinhrone FSM-ove ili sinhrone

Program A nakon toga ponovo poziva program B pomoću druge intersegmentne CALL instrukcije i proces se ponavlja. Struktura prekida mikroprocesorskog sistema predstavlja alternativn i pristup za prenos upravljanja između aplikacionih programa. Važni kriterijum kod prekidno upravljanih sistema predstavlja određivanje prioriteta mašina. Tako na primer, mašini A može biti dodeljen viši prioritet opsluživanja u odnosu na mašinu B. Nakon uključenja sistema na napajanje obe mašine se inicijaliziraju na neko unapred određeno stanje, da bi se u tom trenutku generisala dva zahteva za prekid. Arbitar određuje koja će mašina prva biti opslužena. U suštini, arbitar je kolo koje rešava probleme dodele prioriteta u opsluživanju kada se istovremeno javi zahtev za opsluživanjem od strane većeg broja mašina. Kada se INTR signal primi od strane mašine koaj je zahtevala uslugu, na magistrali podataka se u trenutku prihvatanja zahteva za prekid postavlja vektor-broj. Vektor-broj ukazuje na početnu adresu rutine za obradu prekida. Druga tehnika koja se često koristi za prihvatanje zahteva za prekid (preko jedinstvene grupne linije INTR) i identifikacije izvora za prekid se bazira na tehnici kružnog ispitivanja (pooling technique). Kod ova tehnike metodom kružnog ispitivanja testira se status svih potencijalnih inicijatora prekida. Treći pristup prihvatanja zahteva za prekid se može realizovati tehnikom lančanja (daisy chain).