Interfejs

12
Regionalni centar za talente Beograd II, Karađorđeva 48 Тema istraživačkog rada : SIMULACIJA RADA ARITMETIČKO LOGIČKE JEDINICE SIMULATION OF AN ARITHMETIC LOGIC UNIT Autor: FILIPOVIĆ IVAN, učenik IV razreda Srednje tehničke škole "17. septembar", smer elektrotehničar računara, Lajkovac Regionalni centar za talente Beograd II, Karađorđeva 48 Mentor: MILANOVIĆ VOJO, profesor programiranja u Srednjoj tehničkoj školi "17. septembar", Vuka Karadžića 19, Lajkovac Lajkovac 2006.

Transcript of Interfejs

Page 1: Interfejs

Regionalni centar za talente Beograd II, Karađorđeva 48

Тema istraživačkog rada :

SIMULACIJA RADA ARITMETIČKO LOGIČKE JEDINICE

SIMULATION OF AN ARITHMETIC LOGIC UNIT

Autor:

FILIPOVIĆ IVAN, učenik IV razreda Srednje tehničke škole "17. septembar", smer elektrotehničar računara, Lajkovac

Regionalni centar za talente Beograd II, Karađorđeva 48

Mentor:

MILANOVIĆ VOJO, profesor programiranja u Srednjoj tehničkoj školi "17. septembar", Vuka Karadžića 19, Lajkovac

Lajkovac 2006.

Page 2: Interfejs

- 2 -

SIMULACIJA RADA ARITMETIČKO LOGIČKE JEDINICE

SIMULATION OF AN ARITHMETIC LOGIC UNIT

Autor:

FILIPOVIĆ IVAN, učenik IV razreda Srednje tehničke škole "17. septembar", smer elektrotehničar računara, Lajkovac

Regionalni centar za talente Beograd II, Karađorđeva 48

Mentor:

MILANOVIĆ VOJO, profesor programiranja u Srednjoj tehničkoj školi "17. septembar", Vuka Karadžića 19, Lajkovac

REZIME

Cilj rada je da se simulira rad aritmetičko-logičke jedinice, tj. integrisanog kola 74LS181.

Simulacija rada kola programski je urađena u Delphi okruženju. Osim programske simulacije,

urađeno je i odgovarajuće interfejs kolo na koje program šalje potrebne podatke za njen ispravan

rad, tako da rezultati programske simulacije na ekranu budu isti i na interfejs kolu. Podaci se na

interfejs kolo šalju preko paralelnog porta PC računara. U izradi simulacije upotrebljena je

specifikacija kola 74LS181 proizvođača kompanije Texas Instruments kao i knjiga PC Interfejsi

autora Milanović Voje dipl.el.inž, 2004. godine.

Page 3: Interfejs

- 3 -

ABSTRACT

Purpose of this work is simulation of an Arithmetic Logic Unit, apropos 74LS181 chip.

Simulation of this chip is programatically created in Delphi environment. Besides this program

simulation adequate interface chip is made on which program sends necessery data for his

accurate work, apropos thus to results of progam simulation demonstrate be the same as on

interface chip. Data are sent to interface through paraller port of PC computer. In production of

this simulation manufacturer specification of chip 74LS181 is used, which manufacturer is

comapny Texas Instruments and also book "PC Interfaces" is used which of author Vojo

Milanovic B.Sc.EE, published 2004.

UVOD

PC računari nalaze primenu u svim oblastima ljudskog delovanja. U ovom radu data je

njihova primena za simulaciju rada elektronskih kola. Kao kolo odabrana je aritmetičko-logička

jedinica, odnosno integrisano kolo 74LS181 koje izvršava osnovne, kako logičke, tako i

aritmetičke operacije, što je dobro poznato u digitalnoj elektronici. Budući da aritmetičko-logička

jedinica izvršava najosnovnije logičke i aritmetičke operacije, ovaj interfejs omogućuje da se na

jednostavan način nauče te operacije, pa urađeni interfejs ima, pre svega, edukativnu primenu.

Osnovne logičke i aritmetičke operacije predstavljaju osnove PC računara, zbog čega je njihovo

poznavanje svakako važno za razumevanje osnovnih principa rada njihovog hardverskog dela.

OPIS ARITMETIČKO-LOGIČKE JEDINICE

Aritmetičko-logičke jedinice ili skraćeno ALU (eng. Aritmetic Logic Units) jesu složena

kola, koja mogu da obavljaju više aritmetičkih i logičkih operacija sa dva četvorobitna podatka.

Proizvode se u različitim tehnlogijama, kako TTL i CMOS (74181, 74S181, 74LS181, 74AC181

i 74ACT181). Iste osobine i raspored pinova ima i CMOS kolo 4581. Vezivanjem u niz ovih

kola mogu se dobiti kola koja obrađuju i višebitne podatke. Tako bi sa dva kola mogli obrađivati

8-bitne podatke, a sa četiri 16-bitne, tj. podatke dužine jedne reči.

Raspored pinova ovog kola dat je na slici 1.

Page 4: Interfejs

- 4 -

Slika 1: Raspored pinova kola 74LS181 Podaci se na ovo kolo dovode na ulaze A i B. Rezultat su četvorobitni podaci koji se

dobijaju na F izlazima. Vrstu operacije koju će izvršiti kolo definiše pet upravljačkih signala.

Kada je ulaz M na visokom nivou kolo obavlja logičke operacije sa svakim parom ulaznih bitova

brojeva A i B. Kada je stanje M na niskom nivou kolo obavlja aritmetičke operacije. Koja vrsta

logičke ili aritmitičke operacije će biti izvedena određuju njegovi upravljački ulazni signali S0,

S1, S2 i S3. Kako je ovih signala 4, to je maksimalan broj operacija (logičkih ili aritmetičkih)

jednak 16. Ova kola je moguće povezati serijski u slučajevima kada treba da se operiše sa

brojevima većim od četiri bita. Tada se izlaz Cn+4 prethodnog kola spaja sa ulazom Cn sledećeg

kola. Izlazi G i P koriste se za brže određivanje konačnog prenosa kada se upotrebljavaju

posebna kola (74182) na koja se mogu spojiti do četiri 74181 kola.

Ulazni podaci mogu biti aktivni na niskom ili visokom nivou. U tabeli 1 prikazane su

logičke i aritmetičke operacije sa aktivnim ulazima na visokom nivou. Aritmetičke operacije

zavisne su i od stanja Cn ulaza, tj. bita prenosa, pa su u tabeli date funkcije i za visoko i za nisko

stanje ovog ulaza.

Page 5: Interfejs

- 5 -

Tabela 1: Aritmetičke i logičke operacije kola 74181

Kolo može da obavlja i komparatorske funkcije, tj. da poredi dva ulazna četvorobitna

broja A i B. Izlaz A=B biće na logičkoj jedinici u slučaju ako su brojevi jednaki, inače odnos

brojeva definišu stanja ulaza Cn i izlaza Cn+4 što je prikazano u tabeli 2.

Tabela 2: Stanja bita Cn i Cn+4 pri komparaciji dva broja

Ovo kolo može da se upotrebi i kao konvertor binarnog broja u BCD broj u određenoj

konfiguraciji.

Ulaz Cn Izlaz Cn+4 Aktivan–nizak nivo Aktivan visoki - nivo 1 1 A > B A < B 1 0 A < B A > B 0 1 A > B A < B 0 0 A < B A > B

Page 6: Interfejs

- 6 -

INTERFEJS KOLO ZA PODRŠKU SIMULACIJE RADA ARITMETIČKO-LOGIČKE JEDINICE

Na slici 2 prikazana je šema kola za podršku simulacije rada aritmetičko-logičke jedinice

74181 od strane PC računara.

Slika 2: Šema interfejs kola za podršku simulacije rada aritmetičko-logičke jedinice Sa Data porta PC računara na ulaze A i B dovode se odgovarajući binarni brojevi. Prva četiri bita Data porta predstavljaju broj A, dok zadnja četiri bita predstavljaju broj B. Za izbor funkcije kola, tj. kontrolne ulaze S0, S1, S2 i S3 koristimo prva četiri bita Control porta. Budući da su bitovi na pozicijama 0,1 i 3 invertovani, koristili smo invertore na ovim bitovima kako bi se pojednostavio program koji upravlja ovim kolom. Na bitove Data porta 0 – 3 postavljene su četiri led diode koje predstavljaju stanja bita broja A, kao i na bitove 4 – 7 koje predstavljaju bitove broja B. Ove led diode su crvene boje. Takođe, na sva četiri bita Control porta priključene su led diode žute boje koje predstavljaju pojedinačna stanja kontrolnih ulaza S0 – S3. Za izlazne rezultate aritmetičko-logičke jedinice, tj. za F izlaze kola preko tranzistora T1 – T4, postavljene su takođe četiri led diode zelene boje. Pomoću JP2 prekidača biramo stanje ulaza M, odnosno način rada kola, odnosno da li kolo radi logičke ili aritmetičke operacije. Kada je ovaj ulaz na niskom nivou izvršavaju se aritmetičke operacije, a ako je otvoren, ulaz je na visokom nivou i kolo izvršava logičke operacije. Pomoću prekidača JP1 moguće je promeniti stanje Cn ulaza, a podrazumevano stanje je da je on isključen, tj. da se nalazi na logičkoj jedinici, odnosno da nema prenosa – što je bitno za aritmetičke operacije.

Paralelni port PC računara se kontroliše preko tri porta (8-bitna memorijska registra) sa sledećim nazivima:

Page 7: Interfejs

- 7 -

1. Data port 2. Control port 3. Status port

Data port sadrži jedan bajt podataka koji će biti odštampani na štampaču, pod uslovom da su zadovoljeni određeni uslovi. Control port kontroliše operacije slanja podataka na štampač, dok Status port ukazuje na status uređaja. U odnosu na adresu Data porta, adrese ovih portova su pomerane za po jedan, što znači da se one nalaze na tri uzastopne memorijske lokacije. Standardno, adrese ovih portova su date u Tabeli 3.

Printer Data port Status port Control port LPT1 378h 379h 37Ah LPT2 278h 279h 27Ah LPT3 3BCh 3BDh 3BEh

Tabela 3: Standardne adrese LPT portova Oznaka h uz adresu, označava da je adresa porta data u heksadecimalnom kodu.

Paralelni port PC računara ima izlaz preko DB-25 ženskog konektora, a signali na pojedinim

pinovima ovog konektora prikazani su na slici 3.

Slika 3: Pregled signala SPP načina rada paralenog porta

Page 8: Interfejs

- 8 -

Izgled gotovog interfejs kola prikazan je na slici 4.

Slika 4: Izgled interfejs kola za simulaciju rada aritmetičko-logičke jedinice Napajanje interfejs kola je 5 Volti, dok se njegovo povezivanje sa PC računarom vrši standardnim DB-25 kablom na paralelni port PC računara sa muško – ženskim konektorima rasporeda 1:1.

PROGRAMSKA PODRŠKA SIMULACIJE RADA ARITMETIČKO-LOGIČKE JEDINICE

Za simulaciju rada kola i kontrolisanje interfejsa napisan je program u Delphi-u čijim se

pozivom dobija ekran prikazan na slici 5.

Slika 5: Izgled ekrana programa za simulaciju rada aritmetičko-logičke jedinice

Page 9: Interfejs

- 9 -

Promena stanja bita broja A i broja B vrši se klikom mišem na pojedine njihove bitove,

kada se menja boja bita, tj. ako je bila bela biće postavljena crvena i obratno. Crvena boja

predstavlja logičku jedinicu, dok bela predstavlja logičku nulu. Takođe, mišem se vrši izbor

načina rada kola: Aritmeticka ili Logicka. Funkcija koju kolo treba da odradi bira se klikom na

strelicu dole, gde su date sve funkcije. Odabrani kod funkcije biće prikazan u poljima za funkciju.

Klikom na taster Izracunaj biće izvršeno izračunavanje i dobijeni rezultat će biti prikazan u

poljima rezultata. Takođe, tada se prosleđuju brojevi A i B, kao i odabrani kod funkcije na naše

interfejs kolo. Stanja ekrana i interfejs pločice treba da se podudaraju za sve odabrane funkcije i

oba načina rada, što je potvrda ispravnosti programa i interfejs kola .

Objasnićemo glavni deo koda programa za podršku simulacije rada aritmetičko-logičke

jedinice: Unit Prog1; . . var Form1: TForm1; A, B, F, Funk : byte; Broj, Broj0, Broj1, Broj2, Broj3 : byte; Broj4, Broj5, Broj6, Broj7, Brojh : byte; LPTAdresa, KONAdresa : Integer; implementation procedure PortOut(Port: Word; Data: Byte); stdcall; external 'io.dll'; function PortIn(Port: Word): Byte; stdcall; external 'io.dll'; {$R *.dfm} //----------Procedura ucitavanja forme--------------- procedure TForm1.Ucitaj(Sender: TObject); begin LPTAdresa :=$378; KONAdresa:=LPTAdresa + 2; Broj := 0; Broj0 := 0; Broj1 := 0; Broj2 := 0; Broj3 := 0; Broj4 := 0; Broj5 := 0; Broj6 := 0; Broj7 := 0; PortOut(LPTAdresa, 0); PortOut(KONAdresa, 0); ComboBox1.Font.Color:=clRed; ComboBox1.Items.Add('F=A'); ComboBox1.Items.Add('F=A+B'); . . end; //-----Procedura ucitavanja funkcija kola i ComboBox------- procedure TForm1.Ubaci_funkcije(Sender: TObject); begin ComboBox1.Clear; If Nacin_rada.ItemIndex = 0 Then Begin

Page 10: Interfejs

- 10 -

ComboBox1.Font.Color:=clRed; ComboBox1.Items.Add('F=A'); ComboBox1.Items.Add('F=A+B'); . . End Else Begin ComboBox1.Font.Color:=clGreen; ComboBox1.Items.Add('F=notA'); ComboBox1.Items.Add('F=not(A+B)'); . . End; end; //-----Procedura postavljanja bita A0------------------------- procedure TForm1.DiodaA0(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); begin If A0.Brush.Color = clWhite Then Begin A0.Brush.Color := clRed; Broj0 := 1 End Else Begin A0.Brush.Color := clWhite; Broj0 := 0 End; Izracunaj1; end; . end; //-----Procedura izracunavanja broja za slanje na interfejs--- Procedure TForm1.Izracunaj1; begin Broj:=0; Broj:= 8 * Broj3 + 4 * Broj2 + 2 * Broj1 + 1 * Broj0; Broj:=Broj + 128 * Broj7 + 64 * Broj6 + 32 * Broj5 + 16 * Broj4; B := 8 * Broj7 + 4 * Broj6 + 2 * Broj5 + 1 * Broj4; A := 8 * Broj3 + 4 * Broj2 + 2 * Broj1 + 1 * Broj0; end; //---Procedura sracunavanje vrednosti odabrane funkcije kola---- procedure TForm1.Izracunaj(Sender: TObject); Var pl : boolean; begin If Nacin_rada.ItemIndex=0 Then Begin Case ComboBox1.ItemIndex of 0: Begin F:=A; Funk:=0 End; 1: Begin F:=A Or B; Funk:=1 End; 2: Begin F:=A Or (not B); Funk:=2 End; . . End End Else Begin Case ComboBox1.ItemIndex of 0: Begin F:=not A; Funk:=0 End; 1: Begin F:=not(A Or B); Funk:=1 End; . . End; PortOut(LPTAdresa, Broj); PortOut(KONAdresa, Funk); end; //---------Procedura zavrsetka programa-------------- procedure TForm1.Iskljuci(Sender: TObject);

Page 11: Interfejs

- 11 -

begin PortOut(LPTAdresa, 0); PortOut(KONAdresa, 0); end; end.

Pozivom programa aktivira se procedura Ucitaj u kojoj se bitovi dva četvorobitna broja

postavljaju na 0. Za adresu Data porta, LPTAdresa postavljena je na podrazumevanu adresu

378h, dok je adresa Control porta KONAdresa za dva veća od adrese Data porta. Takođe,

PortOut - u se instrukcijom na Data port pošalje vrednost nula, kako bi diode na interfejs pločici

bile ugašene. Budući da je podrazumevani način rada kola aritmetički, u ComboBox učitaju se

sve aritmetičke funkcije iz tabele rada kola .

U procedurama DiodaAx ili DiodaBx menjamo stanje odgovarajućeg bita broja A ili B.

Svaki pojedinačni bit ima pridružen odgovarajući broj.

U proceduri Izracunaj1 izračunavamo vrednost brojeva A i B na osnovu stanja njihovih

pojedinačnih bitova.

Klikom na taster Izracunaj biće pozvana procedura Izracunaj. Unutar ove procedure

izračunavamo vrednost odabrane funkcije kola i prikazujemo rezultat na ekranu. Takođe, preko

instrukcije PortOut prosledimo broj A i broj B kao ulazne signale funkcije S0 – S3 na naše

interfejs kolo.

Zavšetkom programa poziva se procedura Iskljuci koja na Data port i Control port šalje

logičke nule, kako led diode ne bi svetlele na interfejs kolu.

ZAKLJUČAK

Primenjeni metod u ovom radu moguće je upotrebiti i za druge vrste digitalnih kola. Ne

samo da je moguće uraditi programske simulacije kola, nego i elektronske uređaje koji se

kontrolišu od strane PC računara, a priključuju se na neki od njegovih portova. Najčeće se koristi

paralelni port jer ima dovoljan broj ulaznih i izlaznih signala, a i način programiranja je na njemu

dosta jednostavan. U radu je upotrebljena biblioteka io.dll budući da Delphi-u u Windows XP

okruženju nije dozvoljen direktan pristup portovima. Samo PortOut procedura ove biblioteke je

upotrebljena, tj. procedura koja šalje dati podatak na odgovarajuću adresu, iako ona raspolaže sa

većim brojem funkcija, koje su vrlo korisne za programiranje portova.

Page 12: Interfejs

- 12 -

LITERATURA

1. Milanović Vojo, PC Interfejsi, samostalno izdanje, Lajkovac, 2004.

2. Čabarkapa Milan, Osnovi programiranja u Pascal-u i Delphi-u, Krug, Beograd, 2001.

3. Proizvođačka specifikacija kola 74LS181, Texas Instruments

4. Više sajtova na Internetu