BL40A1810 & BL40A1820 Mikroprosessorit A/B. Luento 6: Väylät ja keskeytykset



Samankaltaiset tiedostot
Sulautetut järjestelmät

Väylät. Tietokoneen rakenne. Stallings: Ch 3 Mitä väylällä liikkuu? Väylän ominaisuuksia PCI-väylä PCI Express. Luento 2-1

Luento 2: Väylät Laitteiden väliseen kommunikointiin Tav. yleislähetys: kaikki kuulevat kaiken

Piirien väliset ohjaus- ja tiedonsiirtoväylät H. Honkanen

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Luento 2: Väylät Luento 2. Luento 2-1 R/W. Req / Rel. - Ajoitus. Luento 2-3. Memory. Luento 2-5

1. Keskusyksikön rakenne

MUISTIPIIRIT H. Honkanen

Mikrokontrollerit. Mikrokontrolleri

Arto Salminen,

Älykännykät ovat pieneen tilaan paketoituja, mutta suuret ominaisuudet omaavia tietokoneita.

6.3. AVR_rauta. EEPROM-muisti pva

Käyttöjärjestelmän rakenne

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. Assembly ja konekieli

Suoritin. Jakso 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

2 Konekieli, aliohjelmat, keskeytykset

TIES530 TIES530. Moniprosessorijärjestelmät. Moniprosessorijärjestelmät. Miksi moniprosessorijärjestelmä?

Jakso 5 Suoritin ja väylä

Sulautettujen järjestelmien skaala on niin laaja, että on erittäin vaikea antaa yleispätevää kuvausta siitä millainen on sulautettu järjestelmä.

Jakso 5 Suoritin ja väylä

ELEC-C3240 Elektroniikka 2

Yleinen arkkitehtuuri

Jakso 5 Suoritin ja väylä. Suorittimen rakenne Väylän rakenne Käskyjen suoritussykli Poikkeukset ja keskeytykset TTK-91:n ja KOKSI:n rakenne

Luento 5 (verkkoluento 5) Suoritin ja väylä

1. Yleistä. 2. Ominaisuudet. 3. Liitännät

Väylät. Prosessorin tie ulkomaailmaan Pienissä järjestelmissä vain yksi väylä. Osoite, data ja ohjaussignaalit Prosessori ainoa herra (master)

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 muistin rakenne. TTK-91 suorittimen rakenne

4. Luento: Prosessit ja säikeets. Tommi Mikkonen,

Tietokonejärjestelmä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja. TITO-kurssista. John von Neumann ja EDVAC, 1949.

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne. Käskyjen nouto- ja suoritussykli (5)

Sisältöä. Tietokoneen rakenne. Ch 1 - Ch 8 [Sta06] Valikoituja paloja TITO-kurssista. Tietokonejärjestelmä

Käyttöjärjestelmät: prosessit

Luento 5 Suoritin ja väylä

Luento 5 Suoritin ja väylä

2. Sulautettu järjestelmä ja mikro-ohjain , pva

Ongelma(t): Miten tietokoneen käyttöjärjestelmä toimii sisäisesti, jotta resurssit saadaan tehokkaaseen käyttöön?

Muistipiirit. Digitaalitekniikka (piirit) Luku 20 Sivu 1 (24)

Hammastankohissin modernisointi. Heikki Laitasalmi

Intel MCS-51 -perhe Liite 1 / 1. Intel MCS-51 -perhe

SISÄLLYS sisällys 1 Tietokoneen toimintaperiaate ja käyttö 2 Tietokoneen historia 3 Tietokoneen rakenteen ja toiminnan perusteet

Luento 5 (verkkoluento 5) Suoritin ja väylä

Ongelma(t): Miten mikro-ohjelmoitavaa tietokonetta voisi ohjelmoida kirjoittamatta binääristä (mikro)koodia? Voisiko samalla algoritmin esitystavalla

Prosessi (4) Luento 8 Ohjelman toteutus järjestelmässä. Prosessin elinkaari (10) Prosessin vaihto (4) Prosessin esitysmuoto järjestelmässä (4)

ltöä rjestelmä Luento 2: LAITTEISTOSTA Tietokonejärjestelm KESKUSYKSIKKÖ Keskusyksikkö Kuva 1.1 KJ-I S2005 / Tiina Niklander & Auvo Häkkinen 2-1

Suoritin. Luento 5 Suoritin ja väylä. TTK-91 suorittimen rakenne (1) TTK-91 muistin rakenne

Luento 5 Suoritin ja väylä

LOAD R1, =2 Sijoitetaan rekisteriin R1 arvo 2. LOAD R1, 100

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Luento 3 (verkkoluento 3) Ttk-91 konekielinen ohjelmointi. Ohjelman esitysmuoto Konekielinen ohjelmointi ttk-91:llä (Titokone, TitoTrainer)

Nopeuden mittaaminen

Järjestelmän ulkoinen muisti I/O

Luento 5 Suoritin ja väylä

Luento 2 (verkkoluento 2) Ttk-91 järjestelmä

Tietokone. Tietokone ja ylläpito. Tietokone. Tietokone. Tietokone. Tietokone

Luento 1 (verkkoluento 1) Ohjelman sijainti Ohjelman esitysmuoto Laitteiston nopeus

BL40A1711 Johdanto digitaaleketroniikkaan: Sekvenssilogiikka, pitopiirit ja kiikut

Käyttöjärjestelmät. Tietokoneen rakenne. Stallings, Luku 1. KJ-I S2003 / Auvo Häkkinen, CT50A2602 / Leena Ikonen 1-1

BL40A17x0 Digitaalielektroniikka A/B: Ohjelmoitavat logiikkapiirit

2. Laitteistorajapinta

Tietojenkäsittelyn perusteet 2. Lisää käyttöjärjestelmistä

7.3. Oheisrautaa. DS

NiMH Laturi. Suunnittelu Olli Haikarainen

Ongelma(t): Miten tietokoneen komponentteja voi ohjata siten, että ne tekevät yhdessä jotakin järkevää? Voiko tietokonetta ohjata (ohjelmoida) siten,

TTY TKT-1110 Mikroprosessorit TKT. HEW-ohjeet ver 1.0

Arto Salminen,

Jakso 8 Ohjelman suoritus järjestelmässä

Muistihierarkia Kiintolevyt I/O:n toteutus

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

Luento 1 Tietokonejärjestelmän rakenne

OSI ja Protokollapino

Luento 1 Tietokonejärjestelmän rakenne

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Luento 1 Tietokonejärjestelmän rakenne. Järjestelmän eri tasot Laitteiston nopeus

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Prosessi (4) Suorituksessa olevan ohjelman esitysmuoto järjestelmässä. Jakso 8 Ohjelman suoritus järjestelmässä. Prosessin elinkaari (9)

Luento 2: LAITTEISTOSTA

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Jakso 8 Ohjelman suoritus järjestelmässä

Ongelma(t): Mistä loogisista lausekkeista ja niitä käytännössä toteuttavista loogisista piireistä olisi hyötyä tietojenkäsittelyssä ja tietokoneen

Jaetun muistin muuntaminen viestin välitykseksi. 15. lokakuuta 2007

SM211 RS485 - JBUS/MODBUS mittarille SM103E. Käyttöohje

Kertausluento 1 (lu01, lu02, lu03) Tietokonejärjestelmän rakenne ttk-91 ja sillä ohjelmointi

Tietokoneen toiminta, Kevät Copyright Teemu Kerola Järjestelmän eri tasot Laitteiston nopeus

ELEC-C5070 Elektroniikkapaja (5 op)

Aliohjelmien toteutus Suoritin ja väylä

LUKUJA, DATAA KÄSITTELEVÄT FUNKTIOT JA NIIDEN KÄYTTÖ LOGIIKKAOHJAUKSESSA

Digitaalitekniikka (piirit) Luku 15 Sivu 1 (17) Salvat ja kiikut 1D C1 C1 1T 1J C1 1K S R

Siltojen haitat. Yleisesti edut selvästi suuremmat kuin haitat 2/19/ Kytkin (switch) Erittäin suorituskykyisiä, moniporttisia siltoja

Harjoitustyö: virtuaalikone

Tampereen ammattiopisto Pyynikin ammattioppilaitos KÄVIJÄLASKURI

TIES325 Tietokonejärjestelmä. Jani Kurhinen Jyväskylän yliopisto Tietotekniikan laitos

TKT-1230 Digitaalitekniikan laboratoriotyöt

Projektityöt. Sami Alaiso, Jyri Lujanen 30. marraskuuta 2009

Tehtävä 2: Tietoliikenneprotokolla

9. Luento: Ohjelmistotyö. Tommi Mikkonen,

ELEC-A4010 Sähköpaja Arduinon väylät tutuiksi

Ohjelmoinnin perusteet Y Python

Muistihierarkia Kiintolevyt I/O:n toteutus

Käyttöjärjestelmät: poissulkeminen ja synkronointi

Transkriptio:

BL40A1810 & BL40A1820 Mikroprosessorit A/B Luento 6: Väylät ja keskeytykset 2 5.3.2012

Johdanto Sulautettua järjestelmää voidaan ajatella sen toiminnallisuuden kannalta: Prosessointi Tiedonkäsittelyoperaatiot Toteutetaan prosessoreilla Tiedon varastointi Datan säilytys Toteutetaan muistin avulla Tiedonsiirto Tiedonsiirto prosessorin ja muistin välillä Toteutetaan väylien avulla (osoite-, data- ja ohjausväylät) Kellosignaali Resetointi Keskeytykset Mikroprosessori Osoiteväylä Ohjausväylä Ohjelmamuisti Dataväylä Datamuisti Oheispiirit Lähdöt Tulot 5.3.2012 3

Yksinkertainen väylärakenne Johdotus: Yksisuuntaista tai kaksisuuntaista Väylä: Piirikaavioissa väylän leveys (johtimien lukumäärä ilmaistaan numerolla) Johtimia, joilla on yhteinen toiminnallisuus Osoiteväylä, dataväylä, jne. Prosessori rd'/wr enable addr[0-11] data[0-7] Muisti Tai laajempi kokonaisuus: Osoite-, data- ja ohjausväylät väylä Tiedonsiirtoon liittyvä protokolla - säännöt tietoliikenteelle (miten toimitaan tietoa vaihdettaessa, millaisia viiveitä, etc.) 5.3.2012 4

Portit portti Prosessori rd'/wr enable addr[0-11] Muisti data[0-7] Kytkee väylän prosessoriin tai muistiin Koostuu pinneistä: Jalka kotelossa, liittyy padiin piirilevyllä BGA-kotelon tapauksessa metallipallo pohjassa Nykyään myös metalliset padit, joilla esim. muisti ja prosessori liitetään toisiinsa saman kotelon sisällä Portti on joukko johtimia, joilla on yhtenäinen toiminnallisuus Esimerkiksi: 12-johtiminen osoiteportti 5.3.2012 5

Ajoituskaaviot Ajoituskaavio on normaali tapa kuvata tiedonsiirtoprotokollan toimintaa Ohjaussignaalit: alhalla / ylhäällä Datasignaali: ei validi / validi Protokollat voivat sisältää aliprotokollia Kutsutaan väyläjaksoksi: esim. luku ja kirjoitus Väyläjakso voi sisältää useita kellojaksoja Esimerkki muistin lukemisesta: rd/wr asetetaan alas, osoite kirjoitetaan osoiteväylälle vähintään ajaksi tsetup ennen enablesignaalin aktivointia. Enable-signaali liipaisee muistin kirjoittamaan muistipaikan sisällön dataväylälle tread ajan sisällä rd'/wr enable addr data rd'/wr enable addr data t setup t read Lukuprotokolla t setup t write Kirjoitusprotokolla 5.3.2012 6

Protokollien peruskonsepteja Master req Aikamultipleksattu tiedonsiirto Servant Master req Servant data(15:0) data(15:0) addr data addr data mux data(8) demux mux addr/data demux req req data 15:8 7:0 addr/data addr data Toimijat: Master (mestari) kontrolloi, Slave (orja) vastaa Suunnat: Lähettäjä, vastaanottaja Osoitteisto: erityistyyppistä dataa Määrittää paikan muistissa, oheislaitteessa, tai rekisterin oheislaitteessa Aikamultipleksaus: Datan sarjoitus Siirrettävä data jaetaan samalle joukolle johtimia aikatasossa Säästää johtimia, tuhlaa aikaa Osoitteen/datan multipleksaus 5.3.2012 7

Protokollien perusteet: Tiedonsiirron kontrollointi Master req Servant Master req Servant ack data data req data 1 2 3 4 req ack data 1 2 3 4 t access 1. Master asserts req to receive data 2. Servant puts data on bus within time t access 3. Master receives data and deasserts req 4. Servant ready for next request 1. Master asserts req to receive data 2. Servant puts data on bus and asserts ack 3. Master receives data and deasserts req 4. Servant ready for next request Strobe protocol Handshake protocol [Embedded System Design, Vahid/Givargis] 5.3.2012 8

Protokollien perusteet - Strobe/Handshake Master req wait data Servant req 1 3 req 1 4 wait wait 2 3 data 2 4 data 5 t access 1. Master asserts req to receive data 2. Servant puts data on bus within time t access (wait line is unused) 3. Master receives data and deasserts req 4. Servant ready for next request t access 1. Master asserts req to receive data 2. Servant can't put data within t access, asserts wait ack 3. Servant puts data on bus and deasserts wait 4. Master receives data and deasserts req 5. Servant ready for next request Fast-response case Slow-response case [Embedded System Design, Vahid/Givaris] 5.3.2012 9

ISA-väyläprotokolla ISA (Industry Standard Architecture): Sovellettiin yleisesti x86- prosessorien yhteydessä: 8086, 80286, 80386, jne. Muistit+oheislaitteet Ominaisuuksia: 20-bittinen osoiteväylä Strobe/handshake-protokollan kompromissi Luku/kirjoitus vie vakiona 4 väyläjaksoa CHRDY-signaalia alhaalla pitämällä voidaan lukua/kirjoitusta pitkittää 6 väyläjaksoon Mikroprosessori Muisti I/O-laite CYCLE CLOCK D[7-0] A[19-0] ALE /MEMR CHRDY CYCLE CLOCK D[7-0] A[19-0] ALE /MEMW CHRDY ISA-väylä Muistin lukusevenssi C1 C2 WAIT C3 C4 ADDRESS Muistin kirjoitussekvenssi C1 C2 WAIT C3 C4 ADDRESS DATA DATA [Embedded System Design, Vahid/Givaris] 5.3.2012 10

Mikroprosessorin ulkoinen I/O Mikroprosessorin kommunikointi oheispiirien kanssa voidaan jakaa: Porttipohjainen I/O (rinnakkainen I/O) Prosessorilla on yksi tai useampia N-bittisiä portteja Portit näkyvät prosessorin ohjelmoijalle rekistereinä, joita voi lukea ja kirjoittaa Tyypillinen toteutustapa mikrokontrollereissa Esimerkiksi: P0 = 0xFF; v = P1.2, jne (portit P0 ja P1 8-bittiä leveitä) Väyläpohjainen I/O Prosessorilla on osoite- data, ja ohjausväylät(portit), jotka muodostavat yhteisen väylän Väylällä käytettävä protokolla on sisällytetty prosessoriin Väylän lukemista ja kirjoittamista voidaan toteuttaa prosessorin käskykantaan kuuluvilla käskyillä Yleisprosessorit 5.3.2012 11

Kompromisseja/laajennuksia Rinnakkaismuotoinen porttipohjainen I/O oheispiirillä: Prosessoreille, jotka tukevat ainoastaan väyläpohjaista I/O:ta Jokainen oheislaitteen portti sisältää rekisterit portin lukemiseen, kirjoittamiseen ja konfigurointiin Laajennettu rinnakkaismuotoinen porttipohjainen I/O: Sovelletaan kun prosessori tukee porttipohjaista I/O:ta, mutta portit eivät riitä Yhteen porttiin liitetään laajdennusmoduli, jolla porttien määrää pystytään kasvattamaan Processor Memory Parallel I/O peripheral Port A System bus Port B Port C Adding parallel I/O to a busbased I/O processor Processor Port 0 Port 1 Port 2 Port 3 Parallel I/O peripheral Port A Port B Port C Extended parallel I/O [Embedded System Design, Vahid/Givaris] 5.3.2012 12

Väyläpohjaisen I/O:n tyypit Väyläpohjainen I/O Prosessori kommunikoi muistin ja oheispiirien kanssa, kommunikoinnissa kaksi tapaa Muistiavaruuteen sijoitettu I/O: Muistiavaruus ja oheislaitteet sijaitsevat samassa muistiavararuudessa Esim. 16-bittinen osoiteväylä; alimmat 32 k varattu muistille ja ylimmät 32 k varattu I/O:lle Standardi I/O: Oma avaruus muistille ja oheispiireille Avaruus valitaan M/IO-signaalilla Esim. 16-bittinen osoiteväylä; 64 k varattu muistille (M/IO = 1) ja 64 k varattu I/O:lle (M/IO = 0) 5.3.2012 13

Muistiavaruuteen sijoitettu I/O vs. Standardi I/O Muistiavaruuteen sijoitettu I/O: Ei vaadi erityisiä käskyjä Assembler-käskyt liittyen muistiin, kuten MOV ja ADD toimivat yhtälailla myös oheislaitteille Standardi I/O vaatii omat käskyt I/O-avaruuden käsittelyyn (esimerkiksi IN ja OUT) data liikuttelemiseksi oheislaitteiden rekisterien ja muistin välillä Standardi I/O: Ei tarvitse varata muistiosoitteita oheislaitteille Yksinkertaisempi osoitteen dekoodauslogiikka oheislaitteille Kun tarvittava osoiteavaruus on pieni, riittää osoitteistossa pieni osoitteen leveys -> päästää nopeaan osoitteen dekoodaukseen 5.3.2012 14

ISA-väylä ISA tukee standardia I/O:ta /IOR-signaalia käytetään /MEMR:n sijasta oheislaitteiden lukemiseen IOW oheislaitteiden lukemiseen 16-bittinen osoiteavaruus oheislaitteille vs. 20-bittinen muistille CYCLE CLOCK D[7-0] A[15-0] ISA I/O-väylän lukuprotokolla C1 C2 WAIT C3 C4 ADDRESS DATA Muuten muistin ja oheislaitteiden lukemiseen käytetään samanlaisia protokollia ALE /IOR CHRDY 5.3.2012 15

Muistiprotokolla: 8051 uc ja ulkoinen muisti P0 P2 Q ALE /RD Adr. 7..0 Adr. 15 8 Adr. 7 0 Data P0 D Q /CS ALE G 74373 8 P2 /WR /RD /PSEN 8051 [Embedded System Design, Vahid/Givargis] D<0...7> A<0...15> /OE /WE CS2 /CS1 HM6264 /CS D<0...7> A<0...14> /OE 27C256 8051 uc:n ominaisuuksia: Portit P0 ja P2 tukevat porttipohjaista I/O:ta kun 8051:n sisäistä ohjelma- ja datamuistia käytetään Portteja voidaan käyttää myös väyläpohjaisen I/O:n osoite- ja dataväylinä silloin kun prosessoriin on kytketty ulkoista muistia Osoiteväylä on 16-bittinen-> P0 on multipleksattu osoite- ja dataväylä -> tarvitaan pitopiiri osoitteen bittejä 0..7 varten ja ALE-signaali (address latch enable) 5.3.2012 16

Kompleksinen muistiprotokolla CLK /ADSP /ADSC Yksittäisen lukuoperaation toteutus S0 GO=0 ADSP=1, ADSC=1 ADV=1, OE=1, Addr = Z Tilakoneen kuvaus GO=1 GO=0 ADSP=0, ADSC=0 ADV=0, OE=1, Addr = Addr0 S1 /ADV addr <15 0> /WE GO=0 GO=1 Data is ready here! /OE /CS1 and /CS2 CS3 S2 ADSP=1, ADSC=0 ADV=1, OE=1, Addr = Z GO=1 ADSP=1, ADSC=1 ADV=0, OE=0, Addr = Z S3 data<31 0> GO=1 GO=0 Generoi ohjaussignaalin, jolla ajetaan TC55V2325FF piiriä purskemoodissa Addr0 on aloitusosoite muistille GO on enable/disable-signaali muistille 5.3.2012 17

Keskeytykset Periaate Mikroprosessoriin liitetty oheislaite vastaanottaa tietyin väliajoin dataa, johon vaaditaan prosessorilta reagointia: Prosessori voi tarkistaa oheislaitteen tilan säännöllisesti, ohjelmallisesti pollaamalla, useimmat tarkistuksista turhia kuluttaa prosessorin resursseja Oheislaite voi antaa prosessorille keskeytyksen silloin kun käsiteltävää dataa saapuu Vaatii ylimääräisen nastan (nastoja) INT prosessoriin: JOS INT = 1, prosessori suorittaa meneillään olevan käskyn ja siirtyy keskeytysaliohjelmaan (Interrupt Service Routine, ISR) Menettelyä kutsutaan keskeytyspohjaiseksi I/O:ksi Keskeytyssignaalien, pollaus on prosessorin rautaan sisäänrakennettu ominaisuus -> ei haaskaa prosessorin resursseja 5.3.2012 18

Keskeytykset Keskeytysaliohjelman ISR, (interrupt service routine) alkuosoite, toteutusvaihtoehtoja: Kiinteä keskeytysosoite (fixed interrupt): Prosessorin ohjelmamuistissa on tietty keskeytysosoite, jota ei voi muuttaa Keskeytysaliohjelma alkaa tästä osoitteesta tai osoite sisältää hyppykäskyn keskeytysaliohjelman osoitteeseen Vektoroitu keskeytys (vectored interrupt): Oheislaitteiden täytyy antaa keskeytysaliohjelman osoite Yleistä silloin kun mikroprosessorilla on useita oheislaitteita, jotka on kytketty järjestelmäväylään Kompromissi kiinteän keskeytyksen ja vektoroidun keskeytyksen välillä: Keskeytysosoitetaulukko 5.3.2012 19

Kiinteä keskeytysosoite: Microchip PIC16F87x [Microchip PIC16F87x, datasivu] 5.3.2012 20

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella Aika 1(a): P suorittaa pääohjelmaa. 1(b): P1 vastaanottaa dataa rekisteriinsä, osoite 0x8000. 3: Kun käsky muistiosoitteessa 100 on suoritettu, P havaitsee, että (Int=1). Prosessori tanllentaa pinoon ohjelmalaskurin arvon ja asettaa laskuriin kiinteän keskeytysaliohjelmaosoitteen 16. 2: P1 aktivoi keskeytyspalvelupyynnön (Int=1) vaatien palvelua mikroprosessorilta 4(a): Keskeytysaliohjelma lukee datan rekisteristä 0x8000, muokkaa dataa ja kirjoittaa tuloksen rekisteriin 0x8001. 4(b): Kun keskeytys on luettu P1 deaktivoi palvelupyynnön (Int=0). 5: ISR:n suoritus loppuu, Ohjelmalaskurin arvoksi palautetaan 100+1=101, josta P jatkaa ohjelman suoritusta. 5.3.2012 21

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella 1(a): Mikroprosessori suorittaa pääohjelmaansa. 1(b): Oheislaite P1 vastaanottaa dataa rekisteriinsä, osoite 0x8000. Ohjelmamuisti ISR 16: MOV R0, 0x8000 17: # modifies R0 18: MOV 0x8001, R0 19: RETI # ISR return... Pääohjelma... 100: 101: käsky käsky P PC Int P1 0x8000 Datamuisti Järjestelmäväylä P2 0x8001 [Embedded System Design, Vahid/Givargis] 5.3.2012 22

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella 2: P1 aktivoi keskeytyspalvelupyynnön (Int=1) vaatien palvelua mikroprosessorilta Ohjelmamuisti ISR 16: MOV R0, 0x8000 17: # modifies R0 18: MOV 0x8001, R0 19: RETI # ISR return... Pääohjelma... 100: 101: käsky käsky P PC Int 1 P1 0x8000 Datamuisti Järjestelmäväylä P2 0x8001 [Embedded System Design, Vahid/Givargis] 5.3.2012 23

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella 3: Kun käsky muistiosoitteessa 100 on suoritettu, P havaitsee, että (Int=1). Prosessori tanllentaa pinoon ohjelmalaskurin arvon ja asettaa laskuriin kiinteän keskeytysaliohjelmaosoitteen 16. Ohjelmamuisti ISR 16: MOV R0, 0x8000 17: # modifies R0 18: MOV 0x8001, R0 19: RETI # ISR return... Pääohjelma... 100: 101: käsky käsky P PC 100 Int P1 0x8000 Datamuisti Järjestelmäväylä P2 0x8001 [Embedded System Design, Vahid/Givargis] 5.3.2012 24

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella 4(a): Keskeytysaliohjelma lukee datan rekisteristä 0x8000, muokkaa dataa ja kirjoittaa tuloksen rekisteriin 0x8001. 4(b): Kun keskeytys on luettu P1 deaktivoi palvelupyynnön (Int=0). Ohjelmamuisti ISR 16: MOV R0, 0x8000 17: # modifies R0 18: MOV 0x8001, R0 19: RETI # ISR return... Pääohjelma... 100: 101: käsky käsky P Int PC 100 0 P1 0x8000 Datamuisti Järjestelmäväylä P2 0x8001 [Embedded System Design, Vahid/Givargis] 5.3.2012 25

Keskeytyspohjainen I/O kiinteällä keskeytysaliohjelman alkuosoitteella 5: ISR:n suoritus loppuu, Ohjelmalaskurin arvoksi palautetaan 100+1=101, josta P jatkaa ohjelman suoritusta. Ohjelmamuisti ISR 16: MOV R0, 0x8000 17: # modifies R0 18: MOV 0x8001, R0 19: RETI # ISR return... Pääohjelma... 100: käsky 101: käsky P Int PC 100 +1 P1 0x8000 Datamuisti Järjestelmäväylä P2 0x8001 [Embedded System Design, Vahid/Givargis] 5.3.2012 26

Esimerkki: Keskeytykset Microchip PICkontrollerilla ja Assembly-kielellä #include "p16f876.inc ; Header-tiedosto, rekisterimakrot, yms. ORG 0 ; Ohjelman aloituspiste GOTO START ; Hypätään osoitteeseen START ORG 4 ; Ohjelma jatkuu osoitteesta 0x04 GOTO INTERRUPTSERVICE ; Keskeytysosoite (osoite 0x04) ORG 5 ; Ohjelma jatkuu osoitteesta 0x05 START ; ;***************************************************************************** ; Pääohjelma ;***************************************************************************** BSF INTCON,INTE ; Aktivoidaan ulkoinen keskeytys (RB0) BCF STATUS,RP0 ; Muistipankin vaihto BSF INTCON,GIE ; Aktivoidaan keskeytykset MAINLOOP ; Label: pääohjelmasilmukka NOP ; No operation GOTO MAINLOOP ; Hyppy ohjelmamuistin osoitteeseen MAINLOOP ;***************************************************************************** ; Keskeytysrutiini ;***************************************************************************** INTERRUPTSERVICE ; Keskeytysrutiinin alkuosoite ; Tähän asiat, jotka keskeytyksessä tehdään RETFIE ; Paluu keskeytyksestä, keskeytysten enablointi END 5.3.2012 27

Yhteenveto Sulautetussa järjestelmässä prosessorin väylällä siirretään dataa: Muistin ja prosessorin välillä Muistin ja oheispiirien välillä Prosessorin väylä on kokonaisuus, joka koostuu: osoiteväylästä, dataväylästä ja ohjausväylästä Signaloinnin lisäksi väylään liittyy protokolla periaattet ja signalointiin liittyvät ajoitukset, joilla: Väylä varataaraan Jolla tietoa siirretään väylällä Keskeytykset ovat mekanismi, joilla prosessori hoitaa sen väylään liittettyjen oheispiirien palvelupyyntöjä Mekanismi ei kuluta prosessorin resursseja vrt. pollaus 5.3.2012 28