Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tietokone-järjestelmät

Samankaltaiset esitykset


Esitys aiheesta: "Tietokone-järjestelmät"— Esityksen transkriptio:

1 Tietokone-järjestelmät
Krister Wikström Helsingin ammattikorkeakoulu Tekniikka © Krister Wikström

2 Krister Wikström Toimisto: B324 Puhelin: 050-3408 462 ja 31083410
Kurssit keväällä 2005: elektroniikan perusteet 2 elektroniikan työt 2 tietokonetekniikkaa eri muodoissa yhtä sun toista muutakin © Krister Wikström

3 Opinto-opas 2004 paljastaa:
(sivulla 297) Kaikki mainitut kurssit suoritetaan harjoitustöillä ja kirjallisilla kokeilla. TTXCA01 Tietokonetekniikan perusteet 3 opintoviikkoa II vuoden kurssi TTXCA02 Tietokonejärjestelmät 2 opintoviikkoa III vuoden kurssi TTXCA03 Mikrokontrollerijärjestelmät IV vuoden kurssi Tietokoneen toimintaperiaate, keskusyksikkö, ohjelmointi symbolisella konekielellä, keskusmuisti, syöttö/tulostus, muistihierarkia, suorituskykynäkökohtia, käyttöjärjestelmien peruskäsitteitä Suorituskykynäkökohtia, tietokonearitmetiikka, ohjelmiston ja laitteiston välinen rajapinta Sulautetun mikrokontrolleri-järjestelmän laitteisto- ja ohjelmistotekniikka: mikrokontrolleri, sulautetun järjestelmän määrittely, käyttöjärjestelmäratkaisuja, reaaliaikaisuus, suorituskyky- ja luotettavuusnäkökohtia keskusyksikön rakenne, muistijärjestelmät, tietokoneväylät, prosessoriarkkitehtuurit, © Krister Wikström

4 Tietokonejärjestelmät
TXXCA02 toteutus 14 Puitteet: 36 tuntia lähiopetusta 3 tuntia viikossa = 12 viikkoa yksi kirjallinen koe jokin harjoitustyö (mikrokontrollerin ohjelmointia laiteläheisellä C-kielellä) työt ovat erilaisten tilakoneiden toteutuksia tehdään 2-3 opiskelijan ryhmissä © Krister Wikström

5 Mikrokontrollerijärjestelmät
TXXCA03 toteutus 12 Puitteet: 36 tuntia lähiopetusta yksi kirjallinen koe jokin harjoitustyö (mikrokontrollerin ohjelmointia laiteläheisellä C-kielellä) työt ovat erilaisten sulautettujen sovellusten toteutuksia: anturien liitäntöjä, moottorien ja näyttöjen ohjausta jne. tehdään 2-3 opiskelijan ryhmissä © Krister Wikström

6 Sisältö: 1. Sulautetut järjestelmät 2. Tietokonearkkitehtuurit
3. Liitännät ja oheispiirit 4. Muistipiirit 5. Ohjelmistotekniikka Sovellusesimerkki Anturit sulautetuissa järjestelmissä © Krister Wikström

7 Tietokonejärjestelmät
Perusasioita Elektroniikan tarkoitus on signaalien käsittely Signaaleilla voi olla kaksi muotoa:  Analoginen signaali jatkumo, kuten reaaliluvut; esimerkiksi mikrofonista tuleva jännite Digitaalinen eli numeerinen signaali diskreettiä (erillistä) eli kvantisoitua, kuten murtoluvut Elektroniikka voidaan vastaavasti jakaa kahteen ryhmään: analogiaelektroniikka ja digitaalielektroniikka Tietokone on digitaalielektroninen laite, jonka tarkoitus on digitaalisten signaalien käsittely © Krister Wikström

8 Tietokonejärjestelmät
Perusasioita Tietokone on monitoimityökalu Ei paras mahdollinen mihinkään tehtävään Jokainen tehtävä voidaan paremmin hoitaa erikoistyökalulla Parempi ≈ nopeampi, tarvitsee vähemmän sähkötehoa Tietokone on kuitenkin ylivoimaisen joustava ja periaatteessa sopii mihin tehtävään tahansa Erikoistyökalu soveltuu vain tiettyyn tehtävään Tietokone sovitetaan johonkin tehtävään ohjelmoimalla © Krister Wikström

9 Tietokonejärjestelmät
Perusasioita Tietokonejärjestelmän perusrakenne: © Krister Wikström

10 Tietokonejärjestelmät
Perusasioita Käyttöjärjestelmä: perustoiminto: piilottaa laitteiston epäolennaiset yksityiskohdat (käytännössä lähes kaikki) ja tarjota laitteistoriippumaton rajapinta sovelluksille muita toimintoja: resurssien jako tehtävien (task, thread) tärkeyden mukaisesti, erityisesti reaaliaikakäyttöjärjestelmissä tehtävien välinen tietojenvaihto muut palvelut, kuten tiedostojärjestelmä ja tietoliikenne © Krister Wikström

11 Tietokonejärjestelmät
Perusasioita Käyttöjärjestelmä: käyttöjärjestelmä on hyödyllinen, mutta hyöty ilmenee enimmäkseen monimutkaisissa järjestelmissä joissa on useita samanaikaisia tehtäviä käyttöjärjestelmän tarvitsemat resurssit ovat poissa sovelluksilta käyttöjärjestelmä ei ole pakollinen, eikä sitä käytetä yksinkertaisimmissa tapauksissa, jotka itse asiassa muodostavat valtaosan tietokonesovelluksista sulautetut järjestelmät (embedded systems) silloin sovellukset joutuvat suoraan käyttämään laitteistoa laiteläheinen ohjelmointi © Krister Wikström

12 Sulautetut järjestelmät
Määritelmä Sulautettu järjestelmä (embedded system) = mikä tahansa elektroninen laite joka sisältää mikro-ohjaimen Siis lähes kaikki sähkölaitteet, varsinaisia tietokoneita lukuunottamatta © Krister Wikström

13 Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo
© Krister Wikström

14 Tietokonejärjestelmät Reaktiivinen järjestelmä
Sulautetut järjestelmät ovat yleensä reaktiivisia järjestelmiä: Reaktiivinen järjestelmä Ottoja: Heräte Tapahtuma Mittaus Antoja: Vaste (reaktio) Toimenpide Ohjaus © Krister Wikström

15 Tietokonejärjestelmät
Terminologiaa Yleinen menetelmä minkä tahansa järjestelmän toiminnallisessa testauksessa: syötetään ottoihin sopiva testisignaali eli heräte (stimulus) heräte aiheuttaa antoihin jonkin vasteen (response) vasteesta voidaan päätellä jotain järjestelmän toiminnasta riippuen siitä, mitä halutaan saada selville käytetään erilaisia herätteitä, joista yleisimmät ovat: sinifunktio taajuusvaste askelfunktio askelvaste impulssi impulssivaste Näillä tutkitaan järjestelmän toimintaa muutostilanteissa transienttiominaisuudet © Krister Wikström

16 Tietokonejärjestelmät
Terminologiaa Digitaalisissa järjestelmissä kaikki asiat ovat diskreettejä Siten herätteitä voidaan kutsua tapahtumiksi (event), ja vasteita toimenpiteiksi (action) Tällöin tietokonejärjestelmää kutsutaan reaktiiviseksi järjestelmäksi Suurin osa varsinkin sulautetuista järjestelmistä on luonteeltaan reaktiivisia Kaikki tietokonejärjestelmät eivät ole reaktiivisia, eikä kaikissa tietokonejärjestelmissä voida puhua tapahtumista © Krister Wikström

17 Tietokonejärjestelmät Reaktiivinen järjestelmä
Toimintatapa: järjestelmä reagoi tapahtumiin (event) eli herätteisiin stimulus) havaittuaan tapahtuman järjestelmä reagoi eli suorittaa tarvittavat toimenpiteet (action) eli kehittää vasteen (response) sen jälkeen järjestelmä ryhtyy odottamaan uutta tapahtumaa tapahtumaa odottaessaan järjestelmä ei välttämättä tee mitään, vaan voi mennä lepotilaan esimerkiksi tehonkulutuksen minimoimiseksi © Krister Wikström

18 Tietokonejärjestelmät
Terminologiaa Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne: © Krister Wikström

19 Tietokonejärjestelmät
Automaatiotekniikka Automaatiojärjestelmän perimmäinen tarkoitus on ohjata jonkin prosessin jotain suuretta halutulla tavalla Sangen usein (mutta ei aina) halutaan pitää jokin suure vakiona, esimerkiksi: lämpötila kierrosluku paine Tätä varten on ensin mitattava kyseinen suure anturilla, ja mittauksen sekä jonkin säätöalgoritmin mukaisesti ohjataan toimilaitteella prosessia siten, että suure käyttäytyy halutulla tavalla © Krister Wikström

20 Tietokonejärjestelmät
Automaatiotekniikka Klassinen esimerkki: sähkölämmitin, muun muassa silitysrauta prosessi: lämmittimen ympäristö, esimerkiksi huonetila suure: ympäristön lämpötila, joka halutaan pitää vakiona anturi: lämpötila-anturi, joita on vaikka minkälaisia toimilaite: lämmitysvastus ja sitä ohjaava kytkin (rele, kontaktori) säätöalgoritmi; monenlaisia, joista yleisimmät: PID-säätö, klassinen ja yhäti eniten käytetty sumea säätö (fuzzy control), uudempi ja oudompi kaikkein yksinkertaisin mutta varsin toimiva: “bang-bang” © Krister Wikström

21 Tietokonejärjestelmät Reaktiivinen järjestelmä
Esimerkiksi sähkölämmitin: kaksi toimintatilaa: lämmittää “täysillä” ( ympäristön lämpötila nousee) tai ei lämmitä lainkaan (ympäristön lämpötila laskee) haluttu lämpötila määritellään ylärajan ja alarajan avulla. Näiden eroa kutsutaan järjestelmän hystereesiksi. tapahtuma E1: lämpötila nousee ylärajalle toimenpide A1: lämmitin pois päältä, lämpötila laskee tapahtuma E2: lämpötila laskee alarajalle toimenpide A2: lämmitin päälle, lämpötila kohoaa © Krister Wikström

22 Tietokonejärjestelmät Reaktiivinen järjestelmä
Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2 © Krister Wikström

23 Ohjelmiston vuokaavio
Ohjelmistotekniikka Ohjelmiston vuokaavio sulautetun sovelluksen ohjelmarakenne on aina sama eli päättymätön silmukka Aloitus: C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Päättymätön silmukka: odotellaan tapahtumia Alkuasetukset: ohjausbittien asetukset © Krister Wikström

24 Tietokonejärjestelmät Muunlaiset järjestelmät
Kaikki tietokonejärjestelmät eivät ole reaktiivisia, esimerkiksi signaaliprosessori: Digitaalinen signaali-prosessori Digitaalinen ottosignaali eli isokroninen virta peräkkäisiä lukuarvoja Muokattu digitaalinen antosignaali © Krister Wikström

25 Tietokonearkkitehtuurit
Tietokoneen rakenne Kolme pääyksikköä: I/O = Input/Output eli otto/anto tai syöttö/tulostus siis yhteydet ympä- ristöön CPU = Central Processing Unit suomeksi prosessori tai suoritin, yksikkö joka suorittaa operaatiot eli toiminnot © Krister Wikström

26 Tietokonearkkitehtuurit
Tietokoneen rakenne Kolme pääyksikköä: sama kuin edellinen kuva, mutta vähän eri tavalla piirretty Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta Liitäntäyksiköt Peripherals Ympäristö © Krister Wikström

27 Tietokonearkkitehtuurit
Tietokoneen osat Tarkoitus:  Prosessori: käsittelee tietoa suorittamalla aritmeettisia ja loogisia operaatioita eli “laskutoimituksia”. Kaikki prosessorit ovat nykyään mikroprosessoreja.  Muisti: siellä ovat ohjelmat eli käsittelyohjeet ja käsiteltävät tiedot eli datat. Useita erityyppisiä muisteja käytössä.  I/O-yksiköt: näilla ollaan yhteydessä ympäristöön, siis havaitaan tapahtumia sekä suoritetaan toimenpiteitä. © Krister Wikström

28 Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin
Kolme pääyksikköä tässäkin: © Krister Wikström

29 Tietokonearkkitehtuurit
Prosessori Toiminnallinen lohkokaavio: Datatie Data Path Ohjausyksikkö Käsiteltävä tieto Käsitelty tieto Käskyt eli toimintaohjeet Tilatiedot (takaisinkytkentä) Käsittelyn ohjaus GIGO © Krister Wikström

30 Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki)
Kolme pääyksikköä vieläkin: © Krister Wikström

31 Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki)
Mikro-ohjelmointi: mikro-ohjelmointi on paljon käytetty menetelmä toteuttaa ohjausyksikkö tällöin ohjausyksikkö on kuin tietokone tietokoneessa kutakin konekäskyä eli suorittimen käskyä vastaa ohjelmapätkä mikro-ohjelmamuistissa etuna sama joustavuus kuin tietokoneissa ylipäänsä: esimerkiksi uusia konekäskyjä voidaan ottaa käyttöön ilman laitteiston muutoksia toisaalta: ei kaikkein suorituskykyisin tapa toteuttaa ohjausyksikkö © Krister Wikström

32 Tietokonearkkitehtuurit Käskykanta-arkkitehtuuri
ISA: Instruction Set Architecture siis kaikki mitä assembler-ohjelmoinnissa tulee tietää ja tuntea prosessorista: käskyt osoitusmuodot (tässä on villakoiran ydin!) rekisterit C-kielellä tai vastaavalla ohjelmoitaessa ei tarvitse tietää juuri mitään prosessorista laiteläheisessä ohjelmoinnissa tärkein asia on I/O-yksiköiden rekisterit © Krister Wikström

33 Tietokonearkkitehtuurit
Osoitusmuodot konekäskyt ovat tietenkin binäärilukuja, kuten kaikki muukin digitaali- ja tietokonetekniikassa käsky voidaan jakaa kahteen osaan eli bittikenttään: Varsinainen käskykoodi (opcode), kertoo mikä operaatio suoritetaan Osoitteet, eli missä ovat operandit ja mihin tallennetaan tulokset. Tietokoneissa kaksi perusvaihtoehtoa paikan suhteen: rekisterit tai muisti © Krister Wikström

34 Tietokonearkkitehtuurit
Osoitusmuodot Operaatiot ja operandit: kuinka tulkitaan esimerkiksi merkintä ? algebrassa x ja y ovat muuttujia, ohjelmissa taas operandeja algebrassa z on funktio, ohjelmissa taas tulos “+” on itse operaation symbooli, tässä aritmeettinen summa tai Boolen operaatio TAI (OR) RPN-syntaksi (Reverse Polish Notation): esimerkiksi 5*(1+2) merkitään *, käytetään joissakin ohjelmointikielissä © Krister Wikström

35 Tietokonearkkitehtuurit
Osoitusmuodot käytännön suorittimissa yhdellä käskyllä tehdään vain yksi operaatio yksi tulos ja 0…2 operandia, siis enintään 3 lukua eli dataa merkittävä poikkeus: VLIW (Very Large Instruction Word) eli leveän käskysanan arkkitehtuuri siinä samassa käskyssä on useita operaatioita, joita varten koneessa on useita toiminnallisia yksiköitä tässä pyritään lisäämään samanaikaisia toimintoja, jotta ehdittäisiin tehdä enemmän samassa ajassa tärkein kysymys osoitusmuodoissa: montako osoitetta tarvitaan??? © Krister Wikström

36 Tietokonearkkitehtuurit
Operaatiot 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta: ALU Op1 Op2 Tulos © Krister Wikström

37 Tietokonearkkitehtuurit
Osoitteet 3 osoitetta  turhan paljon bittejä esimerkiksi, jos muistialue käsittää 64 Ktavua tarvitaan 16-bittisiä osoitteita, eli kolmella osoitteella yhteensä 48 bittiä. Tämä on aivan liikaa! eri arkkitehtuureissa rajoitetaan muistibittien määrää eri konsteilla: akku-arkkitehtuuri: vain yksi osoite, kaksi muuta = sama implisiittinen vakio load/store-arkkitehtuuri: 3 osoitetta, mutta hyvin pieni osoitealue, tyypillisesti vain 32 mahdollista osoitetta pinoarkkitehtuuri: ei osoitetta ollenkaan (oikeammin: yksi implisiittinen vakio-osoite) © Krister Wikström

38 Tietokonearkkitehtuurit
Akku-arkkitehtuuri erityinen akkurekisteri, jonka osoite on implisiittinen vakio yksi operandi aina akusta, ja tulos aina akkuun, tarvitaan vain toisen operandin osoite ALU Op1 Op2 Tulos Akkurekisteri Akun lataus Muu rekisteri, muisti tai I/O Akun tallennus © Krister Wikström

39 Tietokonearkkitehtuurit Load/store-arkkitehtuuri
joukko samanarvoisia rekistereitä, tyypillisesti 32 kpl kolme osoitetta, mutta kukin osoite vain 5 bittiä (tässä esimerkissä) operaatiot pelkästään rekistereiden välillä, paitsi load/store-operaatiot ALU Op1 Op2 Tulos Rekisterit Load Store © Krister Wikström

40 Tietokonearkkitehtuurit
Pino-arkkitehtuuri operandit pinomuistin kahdessa päällimmäisessä rekisterissä tulos pinoon päällimmäiseksi ALU Op1 Op2 Tulos Push Pop Pinomuisti LIFO-periaate: Last In - First Out © Krister Wikström

41 Tietokonearkkitehtuurit
Pino-arkkitehtuuri varsinaiset pinokoneet harvinaisia prosessoripiireissä, mutta toiminta-ajatusta ja pino-operaatioita käytetään paljon tietokonetekniikassa C-kääntäjä rakentaa virtuaalisen pinokoneen mille tahansa alustalle - käyttäjä ei tiedä tästä mitään FORTH-ohjelmointikielessä (lähes) kaikki operaatiot (käskyt) ovat eksplisiittisesti pinotyyppisiä, vaikka suoritin ei olekaan pinokone FORTH-kielessä RPN-tyyppinen syntaksi pino-operaatioiden tehostamiseksi monissa prosessoreissa on erityinen rekisteri, pino-osoitin © Krister Wikström

42 SFR: Special Function Registers
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) © Krister Wikström

43 Tietokonearkkitehtuurit
Esimerkki: Atmel AVR kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva © Krister Wikström

44 Tietokonearkkitehtuurit Esimerkki: Freescale HC08
kahdeksanbittinen CISC-tyyppinen akku-arkkitehtuuri, myös hyvin selkeä selkeyttä lisää sekin, että suorit- timessa on vain yksi ainoa muistialue eli muistiavaruus © Krister Wikström

45 Tietokonearkkitehtuurit Esimerkki: Microchip PIC16
kahdeksanbittinen RISC-tyyppinen (33 käskyä) akku-arkkitehtuuri, aika hankala akku = W-rekisteri (Working) SFR = Special Function Register eli muut rekisterit, joista osa kuuluu liitäntöihin, ei suorittimeen © Krister Wikström

46 Tietokonearkkitehtuurit Esimerkki: x86-suoritin
x86 tunnetaan myös nimellä IA-32 kuvassa perusrekisterit AH + AL = AX on akkurekisteri punaisella merkityt käytettävissä vain suojatussa toimintatilassa (protected mode) perusrekistereiden lisäksi paljon muitakin rekistereitä tullut mukaan matkan varrella © Krister Wikström

47 Tietokonearkkitehtuurit Esimerkki: x86-suoritin
uudemmissa x86-suorittimissa on lisäksi paljon, paljon muitakin rekistereitä, jotka voidaan jakaa seuraaviin ryhmiin: FP (Floating Point): liukulukulaskentaan liittyvät MMX (MultiMedia eXtensions): SIMD-tyyppisiä rekistereitä (SIMD = Single Instruction Multiple Data) 3DNow!: sama kuin MMX, mutta kilpailijan (AMD) versio MSR (Model Specific Registers): nimensä mukaisesti tietyn suoritintyypin erikoisrekistereitä runsaasti lisätietoja aiheesta löytyy Internetistä Sandpile-sivustosta © Krister Wikström

48 Tietokonearkkitehtuurit
x86-valmistajia suurimmat ja kauneimmat: Intel AMD omaperäinen: VIA Technologies, keskittynyt pienen tehonkulutuksen suorittimiin ja pieniin emolevyformaatteihin (ITX, Micro-ITX, Nano-ITX) yrittää kovasti: Transmeta, keskittynyt kannettavien laitteiden suorittimiin, omaperäinen sisäinen arkkitehtuuri vain sulautetut sovellukset: STMicroelectronics, esimerkiksi STPC Vega: samalla sirulla Pentium II + USB + Ethernet + IDE-liitäntä + I2C-liitäntä + UART-sarjaportti, kilpailee AMD:n Geode-suoritinperheen kanssa © Krister Wikström

49 Tietokonearkkitehtuurit Esimerkki: x86-suoritin
x86-suorittimessa hyvin runsaasti historiallista painolastia tavattoman monimutkaiset osoitusmuodot x86-assemblerohjelmointi on erittäin haasteellista, useimmille jopa täysin ylivoimaista protected mode-tapauksessa dokumentissa “The Ten Commandments for C Programmers” luonnehditaan x86-arkkitehtuuria sangen osuvasti: This particular heresy bids fair to be replaced by “All the world's a Sun” or “All the world's a 386” (this latter being a particularly revolting invention of Satan), but the words apply to all such without limitation. Beware, in particular, of the subtle and terrible “All the world's a 32-bit machine”, which is almost true today but shall cease to be so before thy resume grows too much longer. © Krister Wikström

50 Tietokonearkkitehtuurit PC-emojen arkkitehtuuri
Nykyinen käytäntö: prosessorin lisäksi kaksiosainen piirisarja (chip set) useita emolevy- formaatteja, ATX yleisin monenlaisia liitäntöjä ja väyliä CPU Korppuasema Sarjaportit RinnakkaisporttiNäppäin/hiiri- liitäntä (PS/2) PCI-väylä DRAM AGP LPC- väylä ATA USB AC97 Pohjoissilta North Bridge Memory Bridge Eteläsilta South Bridge I/O Bridge © Krister Wikström

51 Tietokonearkkitehtuurit PC-emojen arkkitehtuuri
Nykyinen käytäntö: prosessorissa on vain asynkroninen rinnakkaisväylä pohjoissillassa (Intel: Memory Controller Hub) nopeimmat liitännät: muistipiirit grafiikkakortti (AGP = Advanced Graphics Port) eteläsillassa (Intel: Integrated Controller Hub) muut liitännät: ATA-liitäntä: kovalevyt sekä CD- ja DVD-asemat USB-väylä AC97: Audio Codec 97 eli äänipiirin liitäntä LPC: Low Pin Count bus, entisen ISA-väylän muisto © Krister Wikström

52 Tietokonearkkitehtuurit
PC-emot Aikojen kuluessa on kehitelty yhtä jos toistakin: XT ja AT (Advanced Technology): alkuperäiset emoformaatit, ei enää käytössä. Baby AT oli AT:n kutistettu versio ATX (Advanced Technology eXtended): AT:n seuraaja vuodelta 1995, pienempikokoinen, erilainen teholähteen liitin. Mini-ATX ja Micro-ATX kutistettuja versioita LPX ja NLX: hyviä ideoita Inteliltä, mutta ei kaupallista menestystä, ilmeisesti liian kalliita ratkaisuja ITX: taiwanilaisen VIA:n kehittämä, Micro-ITX ja Nano-ITX ovat kaikkein pienikokoisimmat emot BTX (Balanced Technology eXtended): uusin emoformaatti, vasta tulossa, tämäkin Intelin kehittämä © Krister Wikström

53 Tietokonearkkitehtuurit PC-emojen arkkitehtuuri
Uusin versio: BTX-emolevyformaatti ATA-liitäntä korvattu SATA-liitännällä PCI-väylä ja AGP korvattu PCIExpress-liitännöillä uusin muistipiiriliitäntä on DDR 2 edelleen kahden piirin piirisarja © Krister Wikström

54 Tietokonearkkitehtuurit
PC-emot NLX-emot: emolevy helppo irroittaa ja laittaa takaisin ilman muiden korttien ja yksiköiden irroittamista © Krister Wikström

55 Tietokonearkkitehtuurit
PC-emot BTX-emot: jatkokehitelmä ATX-emoille jäähdytykseen huomiota uusi teholähde © Krister Wikström

56 Tietokonearkkitehtuurit
PC-emot Nano-ITX-emo: VIA EPIA N koko 12x12 cm © Krister Wikström

57 Tietokonearkkitehtuurit
PC-emot Internetistä löytyy tavattomasti PC-tekniikalle omistautuneita nettisivuja, tässä muutama: Motherboards.org: emot PCMechanic Form Factors: emot Tom’s Hardware Guide The PC Guide The Hardware Book: PC-tekniikan liittimet ja kaapelit Wim’s BIOS: BIOS-ohjelmat © Krister Wikström

58 Tietokonearkkitehtuurit
Muut PC-kortit Teollisuudessa käytettyjä tietokonekorttien formaatteja: VME: enemmän muita kuin PC-kortteja CompactPCI PC/104 EBX epästandardeja valmistajakohtaisia formaatteja: DIMM-PC, esimerkiksi Kontron Xboard © Krister Wikström

59 Tietokonearkkitehtuurit
Muut PC-kortit CompactPCI: huoltoystävällinen mekaanisesti kestävä © Krister Wikström

60 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: kortit pinotaan suoraan päällek- käin ilman emo- levyä tai muuta alustaa koko 9x9,5 cm mekaanisesti jämäkkä, mutta keskeltä työlästä irroittaa moduuleja mekaniikkaa paljon tarjolla © Krister Wikström

61 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: todellakin merkittävä korttiformaatti hyllytavarana paljon erilaisia suoritinkortteja, liitäntäkortteja sekä koteloita sun muuta mekaniikkaa kolme standardiversiota: PC/104: alkuperäinen, perustui ISA-väylään, 104- nastainen liitin, josta koko standardin nimikin PC/104-Plus: lisättiin PCI-väylä 120-nastaiseen liittimeen PCI-104: poistettiin ISA-väylä © Krister Wikström

62 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: AMD SC520- pohjainen suoritinkortti (Sensoray) © Krister Wikström

63 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: Digital-Logic MSM855 Pentium M 755 MHz © Krister Wikström

64 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: vähän kaikenlaisia teollisuussovelluk- sissa käyttökelpoi- sia liitäntäkortteja esimerkki: servo- moottorin ohjaus- kortti (Ajeco Oy) © Krister Wikström

65 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: ARM-pohjainen suoritinkortti (Technologic Systems) © Krister Wikström

66 Tietokonearkkitehtuurit
Koteloja PC/104: valmiita laitekoteloita runsaasti tarjolla, esimerkiksi Parvus DuraChassis © Krister Wikström

67 Tietokonearkkitehtuurit
Koteloja PC/104: Parvus DuraChassis räjäytyskuva © Krister Wikström

68 Tietokonearkkitehtuurit
Koteloja PC/104: kehikko- asennukseen tarkoitettu kotelo (Access) © Krister Wikström

69 Tietokonearkkitehtuurit
Koteloja PC/104: kauniita koteloja: Diamond Systems Pandora © Krister Wikström

70 Tietokonearkkitehtuurit
Muut PC-kortit EBX: todellisia emolevjä koko 203x147 mm © Krister Wikström

71 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: WinSystems © Krister Wikström

72 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: Digital- Logic © Krister Wikström

73 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: Diamond Systems © Krister Wikström

74 Tietokonearkkitehtuurit
Muut PC-kortit Kontron Xboard: SO-DIMM- reunaliitin DIMM-PC- standardi (eräänlainen) © Krister Wikström

75 Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki)
Kolme pääyksikköä vieläkin: © Krister Wikström

76 Tietokonearkkitehtuurit
Prosessori Yksityiskohtaisempi rakenne: tärkein yksityiskohta: rekisterit rekisterit muodos- tavat ohjelmiston ja laitteiston rajapinnan kaikki vuorovaikutus ohjelman ja koneen välillä tapahtuu yksin- omaan rekistereiden kautta!!!! © Krister Wikström

77 Tietokonearkkitehtuurit
Prosessori Toimintaperiaate: kuin kaksitahtimoottori kaksi toistuvaa toimintavaihetta:  Luetaan käsky muistista  Suoritetaan käsky eli operaatio toiminta periaatteessa sarjamuotoista eli yksi asia kerrallaan, mutta hyvin nopeasti. Aivoissa taas tehdään kukin asia hyvin hitaasti, mutta hyvin, hyvin paljon asioita samanaikaisesti myös prosessoreissa pyritään lisäämään suoritustehoa rinnakkaisilla eli samanaikaisilla toiminnoilla superskalaari- ja VLIW-arkkitehtuurit © Krister Wikström

78 Liitännät Luokitteluperiaatteita: Liitäntätyypit
tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väylä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen liitäntöjen ja prosessorin välissä on erilaisia liitäntäyksiköitä © Krister Wikström

79 Tietokonearkkitehtuurit
Tietokoneen rakenne Kolme pääyksikköä: sama kuin edellinen kuva, mutta vähän eri tavalla piirretty Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Tässä on monenlaisia liitäntöjä, jotka ovat jokaisen tietokonejärjestelmän tärkein yksityiskohta Liitäntäyksiköt Peripherals Ympäristö © Krister Wikström

80 Liitännät Liitäntöjä voidaan myös tarkastella sovelluksen kannalta:
Liitäntätyypit Liitäntöjä voidaan myös tarkastella sovelluksen kannalta: kolme hierarkiatasoa: Järjestelmä  laitteiden väliset liitännät Laite  piirilevyjen väliset liitännät Piirilevy  komponenttien väliset liitännät © Krister Wikström

81  Point-to-point, käytetään toisinaan nimitystä portti (port):
Liitännät Liitäntätyypit Väylä vai ei? Yksikkö VÄYLÄ Bus  Point-to-point, käytetään toisinaan nimitystä portti (port): Yksikkö A Yksikkö B © Krister Wikström

82 Liitännät Toimintaperiaate: Väyläliitäntä
väylä on usean yksikön välinen yhteinen siirtotie kaikki voivat kuunnella, mutta vain yksi voi lähettää siksi tarvitaan arbitrointia ja keino selvitä törmäyksistä tämän kymysyksen kannalta väylät voidaan jakaa kahteen pääryhmään:  Master-slave-tyyppinen: yksi laite on isäntä, muut orjia  Tasa-arvoinen eli peer-to-peer-tyyppinen: kaikki laitteet ovat yhdenvertaisia, siis tässä suhteessa isäntiä © Krister Wikström

83 Liitännät Master-slave-väylässä: Väyläliitäntä
isäntä ohjaa täysin kaikkea väyläliikennettä orjat eivät koskaan ole suoraan yhteydessä toisiinsa, kaikki orjien välinen liikenne tapahtuu vain isännän kautta orja lähettää vain sen jälkeen kun isäntä on pyytänyt lähetystä eli isäntä haluaa lukea jotain orjasta siten törmäyksiä ei oikeastaan voi esiintyä eikä arbitrointia varsinaisesti tarvita © Krister Wikström

84 Liitännät Peer-to-peer-väylässä: Väyläliitäntä
törmäykset kuuluvat asian luonteeseen eikä niitä voida välttää; tarvitaan arbitrointia ja keino selvitä törmäyksistä useimmiten arbitrointi sisältyy väylän siirtoprotokollaan käytetään useita eri arbitrointimenetelmiä, esimerkiksi: CSMA/CD: Carrier Sense Multiple Acces/Collision Detect, muun muassa Ethernet-lähiverkko Token Passing: muun muassa Token Ring-lähiverkko Token Passing nykyään epämuodikasta ja vanhanaikaista, CSMA/CD:n tapaiset systeemit eniten käytössä sekä langallisissa että langattomissa verkoissa © Krister Wikström

85 Liitännät CSMA/CD: Arbitrointi
kukin yksikkö pystyy havaitsemaan onko jokin muu yksikkö “linjalla” (carrier sense) eivätkä silloin ryhdy lähettämään törmäys tapahtuu kun useat yksiköt toteavat linjan vapaaksi ja ryhtyvät lähettämään jokseenkin samanaikaisesti yksiköt havaitsevat törmäyksen (collision detect), lopettavat lähetyksen ja käynnistävät viiveajastimen viiveen jälkeen yksikkö voi yrittää uudelleen törmänneet yksiköt eivät yritä uudestaan samanaikaisesti, koska viiveen pituus on satunnainen © Krister Wikström

86 Liitännät Token Passing: Arbitrointi
yksiköillä on yksi yhteinen “puheenjohtajan nuija” eli token, joka on aina vain yhden yksikön hallussa vain se yksikkö voi lähettää jonka hallussa on token lähetyksen jälkeen token siirtyy jollekin toiselle yksikölle täten törmäyksiä ei periaatteessa voi esiintyä toisaalta seuraavat ongelmatilanteet voivat esiintyä: token katoaa kokonaan useita tokeneita samanaikaisesti mainitut tilanteet on jollakin tavalla hallittava verkkoproto-kollassa © Krister Wikström

87 Liitännät Suorituskykynäkökohtia: Vertailua
väylässä törmäyksiin kuluu aikaa, mikä tietenkin huonontaa suorituskykyä eli pienentää väylän tehollista kaistaleveyttä point-to-point-yhteys tehokkaampi, kun törmäyksiä ei voi esiintyä useimmiten järjestelmässä on paljon yksiköitä, joiden on aika ajoin voitava liikennöidä keskenään: väyläliitännnässä vähemmän johtimia N kpl yksikköä tarvitsee ( …+ N-1) kpl point-to-point-yhteyttä, esim. 6 yksikköä tarvitsee 15 yhteyttä © Krister Wikström

88 Liitännät Uusin liitäntäarkkitehtuuri: Uusinta kehitystä
yhdistää väyläliitännän ja point-to-point-liitännän edut ja välttää kummankin haitat idea peräisin puhelinkeskustekniikasta: kytkettävät point-to-point-yhteydet; puhelintekniikassa piirikytkentäinen yhteys sekä lanka- että kännykkäpuhelut ovat aina point-to-point-tyyppisiä, järjestelmä kytkee jatkuvan yhteyden kahden tilaajan välille poikkeus: kännyköiden push-to-talk-toimintamuoto, yleinen USA:ssa, siinä käytetään pakettikytkentää IP-protokollan tapaan © Krister Wikström

89 Liitännät Kytkentäverkko Switching Fabric
Uusin liitäntäarkkitehtuuri: periaate: Yksikkö Kytkentäverkko Switching Fabric © Krister Wikström

90 Liitännät Uusin liitäntäarkkitehtuuri: Uudempia liitäntöjä
kytkentäverkko muodostaa tarpeen mukaan point-to-point-yhteyden kahden yksikön välillä yleinen kehityssuunta tietokone- ja tietoliikennejärjestelmissä, esimerkiksi PCI Express, RapidIO ja InfiniBand © Krister Wikström

91 Liitännät Luokitteluperiaatteita: Liitäntätyypit
tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen © Krister Wikström

92 Liitännät Rinnakkain vai sarjassa? Rinnakkaismuoto: Sarjamuoto:
Liitäntätyypit Rinnakkain vai sarjassa? Rinnakkaismuoto: kaikki bitit samaan aikaan eri johtimilla Sarjamuoto: kaikki bitit eri aikaan samalla johtimella © Krister Wikström

93 Liitännät Rinnakkaismuoto Ominaisuudet:
+ nopeampi kuin sarjamuoto (samalla bittinopeudella) – paljon johtimia: paksu kaapeli ja iso liitin – johtimien välillä ylikuulumista – kulkuaikaero eli skew: signaalit etenevät eri vauhtia eri johtimissa rajoittaa siirtoetäisyyttä, kun etäisyys pitenee saapuvat hitaimmat signaalit perille liian myöhään kulkuaikaerot riippuvat kaapelista vaikutus vähenee kun bittinopeutta pienennetään © Krister Wikström

94 Liitännät Prosessorin väylä: Väylät kolmiosainen
useimmiten asynkroninen erityisesti muisti- piirien liitäntä lyhyt siirtoetäisyys, mikropiirin tai piirilevyn sisällä © Krister Wikström

95 Liitännät Esimerkiksi klassinen C52: Prosessorin väylä
kahdeksanbittinen suoritin, osoite 16 bittiä eli 64K väyläliitäntä voi puuttua kokonaan, mikäli mikro- ohjaimessa on sisäiset muistit A[8..15] AD[0..7] Multipleksoitu data ja osoitteen vähiten merkitsevä tavu Osoitteen eniten merkitsevä tavu Ohjaus- signaalit © Krister Wikström

96 Liitännät Sarjamuoto Ominaisuudet:
– hitaaampi kuin rinnakkaismuoto (samalla bittinopeudella) + vähän johtimia: ohut kaapeli ja pieni liitin + ei kulkuaikaeroa, siirtoetäisyydet voivat olla hyvin pitkiä Trendinä siirtyminen rinnakkaismuodosta sarjamuotoon, esimerkiksi ATA  SATA ja PCI  PCI Express © Krister Wikström

97 Liitännät Käytäntö: mikropiirien sisällä: rinnakkaismuoto
mikropiirien välillä piirilevyllä: molemmat muodot tapauksesta riippuen laitteen sisällä piirilevyjen välillä: enimmäkseen rinnakkaismuoto, mutta sarjamuotoinen liitäntä yleistyy vauhdikkaasti  SATA ja PCIExpress laitteiden välillä: pääasiassa sarjamuoto, varsinkin pitkillä etäisyyksillä © Krister Wikström

98 Liitännät Luokitteluperiaatteita: Liitäntätyypit
tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen © Krister Wikström

99 Liitännät Balansoitu vai balansoimaton? Signaalin muoto
tämä kymysys koskee vain langallista siirtoa langallisessa siirrossa tarvitaan aina johdinpari, eli signaalijohdin ja paluujohdin. Informaation lähettäjä ja energialähde Informaation vastaanottaja ja energia-lähteen kuorma Signaali-jännite U Signaalivirta I Paluuvirta © Krister Wikström

100 Liitännät Siirtotapoja: Signaalin muoto
useilla signaaleilla voi olla yhteinen paluujohdin. Silloin signaalijännitteet ovat yhteismuotoisia ja siirtotapa on balansoimattomaton. Esimerkkinä PC:n sarjaliitäntä RS-232. balansoidussa eli differentiaalisessa siirrossa jokaisella signaalilla on oma paluujohdin ja signaalijännitteet ovat eromuotoisia: © Krister Wikström

101 Liitännät Kierretty parikaapeli: Balansoitu siirto
balansoidussa siirrossa signaalijohdin ja paluujohdin yleensä järjestetään kierrretyksi pariksi: © Krister Wikström

102 Liitännät Käytäntö: Signaalin muoto
piirilevyillä lähes aina balansoimaton siirto laitteiden sisällä yleensä samoin sarjamuotoinen siirto laitteiden välillä: useimmiten balansoitu siirto varsinkin pitkillä etäisyyksillä kierretty pari hyvin epäherkkä ulkoisille häiriöille esimerkkejä balansoidusta siirrosta kierretyllä parilla: RS-485 Ethernet 10BaseT ja 100BaseT USB-väylä lukuisat erilaiset kenttäväylät, esimerkiksi CAN © Krister Wikström

103 Liitännät Luokitteluperiaatteita: Liitäntätyypit
tietokoneissa on runsaasti erilaisia sekä sisäisiä että ulkoisia yksiköitä, jotka liittyvät toisiinsa tavalla jos toisellakin kaikilla liitännöillä on ainakin seuraavat tärkeät ominaisuudet:  Väyläliitäntä tai point-to-point  Sarjamuotoinen tai rinnakkaismuotoinen  Balansoitu tai balansoimaton  Synkroninen tai asynkroninen © Krister Wikström

104 Liitännät Synkroninen vai asynkroninen? Liitäntätyypit
digitaalipiirit (sekvenssipiirit) voidaan yleisesti jakaa synkronisiin ja asynkronisiin synkronisessa piirissä kaikki tilan muutokset ovat tahdistettuja johonkin kellosignaaliin, t.s. kiikkujen tilojen muutokset tapahtuvat jokseenkin samaan aikaan asynkronisissa piireissä eri kiikuilla ei ole yhteistä kelloa, vaan muutokset tapahtuvat eri aikaan riippuen piirien viiveistä synkronisuus on suosittua, koska viiveet eivät vaikeuta suunnittelua samassa määrin kuin asynkronisessa piirissä toisaalta, synkronisessa piirissä tapahtuu paljon “tarpeettomia” tilanmuutoksia, mikä kuluttaa turhaan tehoa © Krister Wikström

105 Liitännät Käytäntö: Liitäntätyypit
muistipiirien rinnakkaisliitännät usein asynkronisia merkittävä poikkeus: synkroniset muistipiirit SDRAM ja RDRAM (Rambus DRAM) synkronisia rinnakkaisväyliä ja liitäntöjä: PCI-väylä, ATA-liitäntä, AGP-liitäntä, SCSI-väylä sekä GPIB-väylä eli IEEE-488 sarjaliitännät enimmäkseen synkronisia, poikkeuksena muun muassa RS-232-liitäntä © Krister Wikström

106 Sarjaliitännät ja -väylät
Tahdistus sarjamuotoisessa siirrossa: sarjamuotoisessa siirrossa avainkysymys on lähettimen ja vastaanottimen tahdistus asynkroninen siirto: siirretään merkkejä, tahdistus merkki kerrallaan, kellosignaalia ei tarvitse siirtää synkroninen siirto: siirretään data ja kello joko erikseen tai dataan yhdistettynä synkroninen siirto voi olla merkkipohjaista mutta ei tarvitse olla synkroninen siirto tehokkaampaa, vähemmän “turhia” bittejä © Krister Wikström

107 Sarjaliitännät ja -väylät
Asynkroninen siirto (UART): merkki (5…8 bittiä) kerrallaan merkkien välillä mieli- valtainen tauko, mutta vähintään yksi bitti © Krister Wikström

108 Sarjaliitännät ja -väylät
Synkroninen siirto: a) data ja kello eri johtimissa (lyhyet etäisyydet, piirilevyjen sisällä) b) data ja kello yhdistetty samassa johtimessa (pitkät etäisyydet) © Krister Wikström

109 Sarjaliitännät ja -väylät
Synkroninen siirto: Manchester-koodi: esimerkki yhdistetystä datasta ja kellosta NRZ-L on pelkkä data © Krister Wikström

110 Liitännät Synkroninen siirto: Sarjaliitännät ja -väylät
perustuu useimmiten kehysrakenteeseen, esimerkiksi: monenlaisia kehysrakenteita eri siirtoprotokollissa kehys (frame)  sanoma (message) Flag (Preamble) Control field Data field Flag (Postamble) Aloitus-merkki Ohjauskenttä, yleensä osoite yms. Tietokenttä eli varsinainen sanoma Ohjauskenttä, yleensä virheen-korjaus Lopetus-merkki © Krister Wikström

111 SYNC (tahdistuskenttä)
Liitännät Sarjaliitännät ja -väylät Esimerkiksi USB-väylän kehysrakenne: PID = Packet Identifier, kertoo sanoman tyypin CRC = Cyclic Redundancy Code eli tarkistussumma, jolla voidaan havaita siirtovirheet SYNC (tahdistuskenttä) PID 8 bittiä Osoite bittiä Data tavua CRC 5 bittiä © Krister Wikström

112 Sarjaliitännät ja -väylät
Mikropiirien välisiä sarjaväyliä: etu: mikropiirin kotelossa vähemmän nastoja ja piirilevyllä vähemmän johtimia mekaaninen koko pienenee SPI (Serial Peripheral Interface) ja Microwire: yksinkertaisia synkronisia sarjaliitäntöjä, käytetään mikropiirien välillä yhden piirilevyn sisällä IIC eli I2C eli I2C (Inter-IC): synkroninen sarjaväylä, käytetään mikropiirien välillä “yksijohdinväylä”, Dallasin (nykyään Maxim) kehittämä 1-Wire: asynkroninen ja hidas, mutta yksinkertainen, halpa ja suuri siirtoetäisyys ( m tilanteesta riippuen) © Krister Wikström

113 Sarjaliitännät ja -väylät
Laitteiden välisiä sarjaväyliä: UART: asynkroninen sarjaliitäntä, mm. PC:n sarjaportti USB: nopea, USB Mbit/s, melko lyhyt etäisyys IEEE 1394 (FireWire): nopeus samaa luokkaa kuin USB 2.0 (1394a), suurempi siirtoetäisyys ja muitakin eroja. Versiossa 1394b siirtonopeus 800 Mbit/s. Ethernet: ainoa paikallisverkko eli LAN kenttäväylät: teollisuuden eri toimialoilla kehiteltyjä keskinopeita väyliä, joissa pääpaino siirtoetäisyydellä esimerkiksi CAN (autoteollisuus), ProfiBus (automaatiotekniikka) ja LON (rakennustekniikka) © Krister Wikström

114 Sarjaliitännät ja -väylät
SPI/Microwire-liitäntä: neljä johdinta:  Kello: SCK (Serial Clock)  Data: MOSI (Master Out, Slave In)  Data: MISO (Master In, Slave Out)  Piirin valinta: CS (Chip Select) yksi isäntä, useita orjia ei osoitteita eikä varsinaista siirtoprotokollaa isäntä valitsee yhden orjan CS-signaalilla (Chip Select, aktiiivinen nollatilassa) © Krister Wikström

115 Sarjaliitännät ja -väylät
SPI/Microwire-liitännän käyttö: © Krister Wikström

116 Sarjaliitännät ja -väylät
SPI/Microwire-liitännän rekisterit: © Krister Wikström

117 Sarjaliitännät ja -väylät
SPI/Microwire-esimerkkejä: SPI-liitännällä varustettuja piirejä on paljon tarjolla, eritoten monenlaisia muistipiirejä sekä “digitaalisia” antureita esimerkkejä antureista: lämpötila-anturi Maxim kiihtyvyysanturi kulmanopeusanturi © Krister Wikström

118 Sarjaliitännät ja -väylät
Yksijohdinväylä: samalla johtimella siirretään osoite, data (vuorosuuntaisesti) ja väylään liitettyjen piirien syöttöteho väylässä passiivinen ylösveto, piirien antoliitäntä avoin kollektorityyppinen antoliitännät muodostavat yhdessa NOR-funktion johdin lepotilassa looginen 1, aktiivitilassa looginen 0 ykköset ja nollat siirretään eripituisina pulsseina, ei jännitetasoina: lyhyt pulssi = 1 pitkä pulssi = 0 © Krister Wikström

119 Sarjaliitännät ja -väylät
Yksijohdinväylä: väylän pituus riippuu siirtonopeudesta, topologiasta ja kaapelista yksinkertaisimman väylän pituus  25 m, parhaassa tapauksessa voidaan päästä jopa  300 m pituuteen © Krister Wikström

120 Sarjaliitännät ja -väylät
Yksijohdinväylän siirtotapa: lepotilassa, kun yksikään piiri ei lähetä mitään, linjajohdin on yläjännitteessä 2V8…6V0 kaikissa antoliitännöissä on avoin kollektori, joten kukin piiri voi ainoastaan vetää linjajohtimen alajännitteeseen  0V © Krister Wikström

121 Sarjaliitännät ja -väylät
Yksijohdinväylän siirtotapa: loogiset nollat ja ykköset ovat eripituisia pulsseja ala- jännitteeseen © Krister Wikström

122 Sarjaliitännät ja -väylät
Yksijohdinväylän ajoitus: ajoituksen perusyksikkö on aikaväli, jossa siis lyhyt pulssi merkitsee loogista ykköstä ja pitkä pulssi loogista nollaa “perusnopeudella” aikavälin kesto on 60 µs…120 µs, ja kahden aikavälin välissä linjan on oltava lepotilassa eli yläjännitteessä vähintään 1 µs ajan. ajoitus riippuu kaapelin pituudesta, pitkällä kaapelilla käytetään hitaampaa ajoitusta eli pitempiä pulsseja monet piirit voivat käyttää nopeampaa overdrive-siirtotapaa, jossa aikavälin kesto on 6 µs…16 µs. © Krister Wikström

123 Sarjaliitännät ja -väylät
Yksijohdinpiirit: Maxim Semiconductor valmistaa kattavaa joukkoa yksijohdinliitännällä varustettuja piirejä, esimerkiksi: C52-yhteensopiva mikro-ohjain DS80C400 erilaiset muistipiirit A/D-muuntimet lämpötila-anturit reaaliaikakellot ja ajastimet ohjattavat kytkimet jne. jne. © Krister Wikström

124 Sarjaliitännät ja -väylät
Esimerkki: DS2890: yksijohdinliitännällä varustettu 100 k potentiometri, jonka liukua voidaan siirtää 256 eri asentoon © Krister Wikström

125 Sarjaliitännät ja -väylät
Yksijohdinväylän siirtoprotokolla: isäntä kommunikoi orjien kanssa lähettämällä kahdeksanbittisiä komentokoodeja ennen varsinaista kommunikointia isäntä lähettää vähintään 6 aikaväliä kestävän nollauspulssin jokaisella orjalla on yksilöllinen ja ainutkertainen 64-bittinen tunnistekoodi ROM-muistissa © Krister Wikström

126 Sarjaliitännät ja -väylät
Yksijohdinväylän komentokoodit: muistikomennot ovat samoja kaikilla piireillä lisäksi piirikohtaisiin toimintohin liittyvät erityiskomennot ennen erityiskomentoja isännän on annettava jokin muistikomento © Krister Wikström

127 Sarjaliitännät ja -väylät
Esimerkkinä DS2890-potentiometripiiri: © Krister Wikström

128 Sarjaliitännät ja -väylät
I2C-väylä: kaksi johdinta: SDA ja SCL osoite ja data siirtyvät vuorosuuntaisesti SDA-linjassa SCL on kellosignaali siten kyseessä on synkroninen sarjaväylä © Krister Wikström

129 Sarjaliitännät ja -väylät
I2C-väylä: kaikkien piirien antoliitännöissä avoin kollektori ja väylän johtimissa ylösvetovastukset © Krister Wikström

130 Sarjaliitännät ja -väylät
I2C-väylä: jokaisella piirillä oma osoite, 7 tai 10 bittiä siirtonopeus 100 kbit/s tai 400 kbit/s kahdenlaisia piirejä:  Orjat, jotka eivät voi aloittaa siirtoa  Isännät, jotka todellakin voivat aloittaa siirron väylässä voi olla useita isäntiä, mutta tietenkin vain yksi näistä on kerrallaan aktiivinen © Krister Wikström

131 Sarjaliitännät ja -väylät
I2C-väylän kellotus: kello ja data © Krister Wikström

132 Sarjaliitännät ja -väylät
Siirron aloitus ja lopetus I2C-väylässä: isäntä aloittaa siirron startehdolla ja lopettaa stopehdolla orja ei voi aloittaa siirtoa eikä antaa stopehtoa © Krister Wikström

133 Sarjaliitännät ja -väylät
I2C-väylä: tieto siirretään 8 bitin paloina eli yksi tavu kerrallaan, ja vastaanottajan on kuitattava (ACK) jokainen siirretty tavu: isäntä lopettaa siirron stopehdolla ellei orja kuittaa ellei isäntä kuittaa niin orja lopettaa ja poistuu väylältä © Krister Wikström

134 Sarjaliitännät ja -väylät
I2C-väylä: isäntä lähettää aina ensin vastaanottajan osoitteen ja siirron suunnan ilmaisevan bitin: © Krister Wikström

135 Sarjaliitännät ja -väylät
I2C-väylä, esimerkki: a) tiedon luku orjasta b) tiedon kirjoitus orjaan © Krister Wikström

136 Mikro-ohjaimet Prosessori Yksityiskohtaisempi rakenne:
tärkein yksityiskohta: rekisterit kaikki vuorovai- kutus ohjelman ja koneen välil- lä tapahtuu yksin- omaan rekiste- reiden kautta!!!! © Krister Wikström

137 SFR: Special Function Registers
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) © Krister Wikström

138 Mikro-ohjaimet Luokittelu: © Krister Wikström

139 Mikro-ohjaimet Nimityksiä:
mikro-ohjain = prosessori + muistipiirit + oheispiirit jaetaan ryhmiin muun muassa sananpituuden mukaan: 8-bittiset, 16-bittiset, 32-bittiset jne. sananpituus (oikeammin leveys): ilmaisee kuinka suuria lukuja prosessori käsittelee yhdellä käskyllä sananpituus ei vaikuta laskentatarkkuuteen, vaan ainoastaan nopeuteen ja sitä kautta suoritustehoon kaikki prosessorit voivat suorittaa kaikkia operaatioita ja laskutoimituksia, mutta 8-bittiset hitaampia kuin 16-bittiset, jne. © Krister Wikström

140 8-bittiset mikro-ohjaimet
varsinaisia työjuhtia, suurin osa sulautetuista järjestelmistä 8-bittisiä yleisimmät piiriperheet ja valmistajat: C52: alunperin Intel, nykyään useita valmistajia, joista suurimmat Philips, Atmel, Maxim, Infineon ja Cygnal HC08: Freescale (Motorola) PIC: Microchip, useita eri perheitä AVR: Atmel H8: Renesas (Hitachi + Mitsubishi), useita eri perheitä Z8 ja Z80: Zilog © Krister Wikström

141 16-bittiset mikro-ohjaimet
enemmän suorituskykyä mm. ajoneuvoissa yleisimmät piiriperheet ja valmistajat: C166: Infineon ja STMicroelectronics HC12 ja HC16: Motorola H8S: Hitachi © Krister Wikström

142 32-bittiset mikroprosessorit
Mikro-ohjaimet 32-bittiset mikroprosessorit useimmiten mikroprosessoreita, joissa erilliset muistipiirit runsaasti suorituskykyä yleisimmät arkkitehtuurit: ARM: ylivoimaisesti eniten käytetty 32-bittinen, useita eri versioita ja valmistajia MIPS: klassinen arkkitehtuuri, hyvä mutta ei yhtä menestynyt kuin ARM PowerPC: Motorola ja IBM, käytetään muun muassa Apple-tietokoneissa ja tietoliikennelaitteissa x86: ikä alkaa jo hieman painaa, mutta silti yhä voimissaan PC-sovelluksissa ja monissa sulautetuissakin © Krister Wikström

143 Muistipiirit Rakenne ja liitännät: Yleistä
Bittimäärästä riippumatta muistipaikan sisältöä kutsutaan sanaksi (word) © Krister Wikström

144 Muistipiirit Käyttö: Yleistä binäärilukujen tallennus
luvut ovat joko käskyjä tai dataa kussakin muistipaikassa yksi binääriluku eli sana binääriluku koostuu biteistä bitit tallennetaan muistielementteihin eli kennoihin useita erityyppisiä muistielementtejä, joilla erilaiset ominaisuudet osoite: muistipaikan järjestysnumero © Krister Wikström

145 Muistipiirit Tyypillinen tietokoneen muistihierarkia: Yleistä
© Krister Wikström

146 Muistipiirit Ihanteellinen muistipiiri, ei toistaiseksi saatavissa:
Puolijohdemuistit Ihanteellinen muistipiiri, ei toistaiseksi saatavissa: suuri toimintanopeus olematon hinta ja tehonkulutus luku ja kirjoitus yhtä nopeasti kaikkiin muistipaikkoihin luku- ja kirjoituskertojen lukumäärä ei rajoitettu tieto säilyy kaikissa olosuhteissa kunnes se halutaan muuttaa © Krister Wikström

147 Muistipiirit Kolme pääryhmää: Puolijohdemuistit
olennaisin seikka on haihtuvuus tai haihtu- mattomuus toinen yhtä tärkeä asia on kirjoitus- nopeus ja muistin kuluminen kirjoitet- taessa © Krister Wikström

148 Muistipiirit Nimityksiä ja ominaisuuksia: Puolijohdemuistit
haihtuva: sisältö katoaa kun käyttöjännite pannaan pois päältä haihtumaton: sisältö säilyy myös ilman käyttöjännitettä kiintomuisti: haihtumaton muisti, josta voidaan vain lukea (ROM, Read Only Memory) PROM: Programmable (ohjelmoitava) ROM, voidaan kirjoittaa, mutta vain yhden kerran EPROM: Eraseable (tyhjennettävä) PROM EEPROM: Electrically Eraseable (sähköisesti tyhjennettävä) PROM © Krister Wikström

149 Muistipiirit Nimityksiä ja ominaisuuksia: Puolijohdemuistit
Flash: tietynlaisen rakenteen omaava EEPROM RAM: Random Access Memory, luku-kirjoitusmuisti, suorasaantimuisti, yhtä nopea luku ja kirjoitus NVRAM: nonvolatile RAM, haihtumaton RAM SRAM: Static RAM, nopea luku-kirjoitusmuisti DRAM: Dynamic RAM, tiedon säilymiseksi täytyy virkistää (refresh) tyypillisesti neljän millisekunnin välein. DRAM on hitaampi mutta halvempi kuin SRAM. Virkistys: tieto luetaan ja kirjoitetaan heti takaisin © Krister Wikström

150 Muistipiirit Muistipiirin perusrakenne, ei riipu tyypistä:
Puolijohdemuistit Muistipiirin perusrakenne, ei riipu tyypistä: esimerkkinä 256x8 ROM 256 sanaa eli 8-bittinen osoite R- ja W-signaaleja ei tarvita, koska ei voi kirjoittaa © Krister Wikström

151 Muistipiirit Toiminta: Puolijohdemuistit
muistielementit eli kennot sijaitsevat 256x8 matriisin solmupisteissä n-bittinen osoite dekoodataan 2n sanajohtimeksi, joista yksi kerrallaan on aktiivinen ja muut lepotilassa aktiivisen sanajohtimen solmupisteissä olevien kennojen tila (sisältö) siirretään bittijohtimilla ulos piiristä eli luetaan lähtöpuskurin kautta OE-signaali valitsee koko muistipiirin, puskurien lähdöt muuten Z-tilassa usean muistipiirin lähdöt voidaan kytkeä suoraan toisiinsa © Krister Wikström

152 Muistipiirit Muistikennot ROM: © Krister Wikström

153 Muistipiirit PROM: Muistikennot Sulake ehjä = bitti on 1 23.4.2003
© Krister Wikström

154 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
muistikenno on kahdella hilalla varustettu avaustyyppinen n-kanava-MOSFET © Krister Wikström

155 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
kennon tila riippuu siitä, onko kelluvassa hilassa varausta vaiko eikö © Krister Wikström

156 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
käyttö muistimatriisissa © Krister Wikström

157 Muistipiirit EPROM: Muistikennot
tyhjentäminen valaisemalla sirua noin 30 minuuttia voimakkaalla ultravioletti- valolla kotelossa lasi-ikkuna, kallista ja tyhjennys hidasta © Krister Wikström

158 Muistipiirit EEPROM: Muistikennot kennossa kaksi transistoria
etu: kukin bitti voidaan tyhjentää muista riippumatta haitta: kalliimpi ratkaisu kuin flash, jossa on vain yksi transistori per bitti, uudemmissa jopa vain yksi transistori per kaksi bittiä © Krister Wikström

159 Muistipiirit Käytännön ominaisuuksia: Flashmuistipiirit
muisti jaettu lohkoihin (= useita muistipaikkoja), jotka voidaan toisistaan riippumatta tyhjentää ja kirjoittaa uudelleen kirjoitus huomattavasti hitaampaa kuin luku kirjoitus kuluttaa muistia, ja lopuksi ei enää mahdollista kirjoittaa. EEPROM periaatteessa samanlainen, mutta voidaan tyhjentää ja kirjoittaa yksi muistipaikka kerrallaan Flash halvempi kuin EEPROM johtuen muistielementin erilaisesta rakenteesta © Krister Wikström

160 Muistipiirit SRAM: Muistikennot
muistikenno on kuudesta transistorista muodostuva kiikku © Krister Wikström

161 Muistipiirit DRAM: Muistikennot
muistikenno on konden- saattori ja valintakytkin- transistori © Krister Wikström

162 Muistipiirit DRAM: Muistikennot
tilan säästämiseksi kondensaattorit on asetettu reuna pystysuuntaan haastava valmistus- tekniikka, jonka vain harvat piitehtaat hallitsevat © Krister Wikström

163 Muistipiirit Kaksi perustyyppiä, kuten digitaalipiireissäkin:
DRAM-piirit Kaksi perustyyppiä, kuten digitaalipiireissäkin:  Asynkroninen eli “tavallinen” DRAM: FPM: Fast Page Mode EDO: Extended Data Out  Synkroninen DRAM: SDR: Single Data Rate - perusnopeus DDR: Dual Data Rate - tuplanopeus DDR II: Quad Data Rate - nelinkertainen nopeus RDRAM: Rambus DRAM- aivan erilainen liitäntä © Krister Wikström

164 Muistipiirit “Tavallinen” SDRAM: SDRAM-piirit 23.4.2003
© Krister Wikström

165 Muistipiirit DDR I: SDRAM-piirit
kaksinkertainen nopeus “tavalliseen” verrattuna samalla kellotaajuudella © Krister Wikström

166 Muistipiirit DDR II: SDRAM-piirit
nelinkertainen nopeus “tavalliseen” verrattuna kaksinkertaisella kellotaajuudella © Krister Wikström

167 Muistipiirit DRAM-muistipiirien liitännät: DRAM-piirit
historiallisista syistä johtuen DRAM-piireille on vakiintunut erilainen liitäntä osoitelinjojen suhteen osoite on multipleksoitu eli osoitebitit syötetään kahdessa osassa esimerkiksi yhden megabitin muisti- piiri tarvitsee 20 osoitebittiä, mutta piirissä on kuitenkin vain 10 osoitelinjaa A0...A9 © Krister Wikström

168 Mikro-ohjaimet Ajoituskaaviot
Digitaalipiirien signaalien välisiä riippuvuuksia kuvataan usein ajoituskaavioilla: © Krister Wikström

169 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
lukujakso © Krister Wikström

170 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
kirjoitusjakso © Krister Wikström

171 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
virkistysjakso © Krister Wikström

172 Muistipiirit Muistipiirien vertailutaulukko: Puolijohdemuistit
© Krister Wikström

173 Muistipiirit MRAM: Muistikennot
muistikenno on magnetoresistiivinen “täplä” © Krister Wikström

174 Muistipiirit Muita uusia muistipiirejä: Muistikennot
FRAM: Ferroelectric RAM, tallennus perustuu ferrosähköiseen kiteeseen, useimmiten lyijy-zirkonaatti-titanaattiin (PZT). Tämä on itse asiassa vanha keksintö, joka on otettu uudelleen käyttöön, pääkehittäjä on Ramtron. Uudempi tutkimus keskittyy polymeeripohjaisiin ferrosähköisiin aineisiin. OUM: Ovonics Unified Memory, perustuu faasinmuutoskalvoihin, joita käytetään myös CD-RW-levyissä. Kalvon ominaisuudet muuttuvat lämmön vaikutuksesta, CD-levyissä kyse on heijastusominaisuudesta, OUM-muisteissa taas resistanssista. Pääkehittäjä on Ovonyx. © Krister Wikström

175 Muistipiirit FRAM-muistikennon toimintaperiaate: Muistikennot
© Krister Wikström

176 Muistipiirit OUM-muistikennon toimintaperiaate: Muistikennot 23.4.2003
© Krister Wikström

177 Muistit sulautetuissa järjestelmissä
Muistipiirit Muistit sulautetuissa järjestelmissä Käytännön näkökohtia: ohjelmat muuttuvat harvoin jos silloinkaan ohjelma ei saa kadota vaikka laite pannaan pois päältä siispä: ohjelmamuistin tulee olla haihtumaton, kirjoittamista ei paljonkaan tarvita useimmat datat muuttuvat koko ajan siispä: datamuistin tulee olla yhtä nopea luettaessa ja kirjoitettaessa eli RAM-tyyppinen pysyvät datat voidaan tallentaa ohjelmamuistiin © Krister Wikström

178 Muistit sulautetuissa järjestelmissä
Muistipiirit Muistit sulautetuissa järjestelmissä Mikro-ohjainten muistit: kaikissa mikro-ohjaimissa enemmän tai vähemmän sisäistä muistia sisäinen datamuisti lähes aina SRAM-tyyppinen sisäinen ohjelmamuisti yhä useammin flashtyyppinen etu: flashmuisti voidaan ohjelmoida vielä sen jälkeen kun komponentti on asennettu piirilevylle, erillistä ohjelmointilaitetta ei tarvita. Kätevää sekä tuotekehittelyssä että kunnossapidossa. © Krister Wikström

179 Keskusyksikkö Prosessori Suoritin
Mikro-ohjaimet Tietokoneen osat Kolme päälohkoa: Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Oheis- piirit Ympäristö © Krister Wikström

180 Liitännät Tarkoitus: Yleistä liitäntöjen kautta yhteys ympäristöön
kaikissa mikroprosessoreissa aina väyläliitäntä (osoite, data, ohjaussignaalit) pääasiassa muistipiirejä ja erillisiä liitäntäpiirejä varten mikro-ohjaimissa monia sisäisiä liitäntäpiirejä ja niiden kautta erityisiä liitäntöjä väyläliitäntä voi puuttua kokonaan jos mikro-ohjaimessa sisäinen ohjelmamuisti ja datamuisti © Krister Wikström

181 SFR: Special Function Registers
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) © Krister Wikström

182 Liitännät Portit: Liitäntätyyppejä
kahdeksan liitäntänastan ryhmää (mikropiirin kotelossa) kutsutaan tavallisesti portiksi nastat kuitenkin riippumattomia toisistaan liitäntänasta toimii binäärisenä otto- tai antoliitäntänä ottoliitäntä: jokin toinen piiri asettaa jännitteen nollaksi tai ykköseksi, ja prosessori voi lukea eli havaita tämän antoliitäntä: prosessori itse asettaa jännitteen ykköseksi tai nollaksi © Krister Wikström

183 Liitännät Analogia-digitaalimuunnin: Liitäntätyyppejä
tarvitaan lähes kaikissa sovelluksissa “luonnossa” esiintyvät signaalit yleensä analogisia prosessori taas on digitaalipiiri, joka käsittelee vain digitaalisia signaaleja A/D-muunnin muuntaa analogisen jännitteen digitaaliseksi lukuarvoksi © Krister Wikström

184 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Toiminta-ajatus: Analoginen jännite u Jännitteen lukuarvo binäärilukuna x = (x1, x2, x3) LSB (Least Significant Bit): vähiten merkitsevä bitti MSB (Most Significant Bit): eniten merkitsevä bitti © Krister Wikström

185 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin 3-bittisen muuntimen ideaalinen ominaiskäyrä: Jännitteen lukuarvo Analoginen ottojännite © Krister Wikström

186 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Hyviä ominaisuuksia: tarkkuus: käytännössä vaihtelee bittiä nopeus: muunnosviive eli kuinka nopeasti saadaan uusi lukuarvo muutoksen jälkeen, vaihtelee käytännössä sadoista millisekunneista alle nanosekuntiin tarkkuus ja nopeus ovat keskenään ristiriidassa, molempia ei voi saada samanaikaisesti nopea muunnin on epätarkka ja tarkka muunnin on hidas käytössä useita erilaisia rakenteita © Krister Wikström

187 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Eniten käytetyt muunnin- tyypit: © Krister Wikström

188 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Yleisimmät toimintaperiaatteet: -muunnin (sigma-delta): tarkin mutta hitain, epälineaarisuusvirhettä ei kerta kaikkiaan voi esiintyä toimintatavasta johtuen flashmuunnin: nopein mutta epätarkin, johtuen mikropiirien tuotantoteknologian rajoituksista, ei toimintaperiaatteesta sinällään peräkkäisaproksimaatiomuunnin (SAR, Successive Approximation Register): melko nopea ja melko tarkka, yleisin tyyppi mikro-ohjaimen sisäisenä muuntimena © Krister Wikström

189 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Paljonko nopeutta tarvitaan? analogisesta signaaleista otettava näytteitä taajuudella ƒs  2·ƒmax, missä ƒmax on analogisen signaalin spektrin ylärajataajuus tai signaalin kaistanleveys (Nyquistin teoreema) jos näytetaajuus on tätä pienempi, tapahtuu laskostuminen (aliasing), jossa signaaliin ilmestyy “ylimääräisiä” taajuuksia © Krister Wikström

190 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Laskostuminen aikatasossa: puolta näytetaajuutta suuremmat taajuudet siirtyvät puolen näytetaajuuden alapuolelle © Krister Wikström

191 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Laskostuminen spektrissä: spektrit menevät osittain päällekkäin © Krister Wikström

192 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Huonoja ominaisuuksia eli virheitä: useimmat periaatteessa samat kuin analogisissa järjestelmissä ylipäänsä siirrosvirhe (offset error) vahvistusvirhe (gain error) epälineaarisuus (nonlinearity) epämonotonisuus kvantisointivirhe: ei oikeastaan virhe, vaan kuuluu asian luonteeseen © Krister Wikström

193 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Siirrosvirhe: Todellinen Ideaalinen Siirros eli offset Jännite Lukuarvo © Krister Wikström

194 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Vahvistusvirhe: Todellinen Ideaalinen Vahvistus-virhe Jännite Lukuarvo © Krister Wikström

195 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Epälineaarisuus: Todellinen Ideaalinen Epä- lineaarisuus Jännite Lukuarvo © Krister Wikström

196 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Epämonotonisuus: Todellinen Epä- monotonisuus Jännite Lukuarvo Ideaalinen © Krister Wikström

197 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Esimerkkinä SAR-muunnin: Rinnakkaismuotoinen lukuarvo Sarjamuotoinen lukuarvo, MSB ensin Valmis © Krister Wikström

198 Digitaali-analogiamuunnin
Liitännät Digitaali-analogiamuunnin Toiminta-ajatus: Lukuarvo (binääriluku) Analoginen antojännite © Krister Wikström

199 Digitaali-analogiamuunnin
Liitännät Digitaali-analogiamuunnin Yksinkertaisempi toteuttaa kuin A/D-muunnin, esimerkiksi: Vertailu-jännite Kytkin-transistorit Tarkkuus-vastukset Lukuarvo, jonka bitit ohjaavat kytkimiä Anto-jännite © Krister Wikström

200 Digitaali-analogiamuunnin
Liitännät Digitaali-analogiamuunnin Pulssinleveysmodulaatio, hyvin yleinen D/A-muunnos-menetelmä: Jännitteen keskiarvo v riippuu pulssisuhteesta tA/T © Krister Wikström

201 Liitännät Ajastin / laskuri
yleisin oheispiiri, löytyy kaikista mikro-ohjaimista ajan kuluminen on yleisimpiä tapahtumia reaktiivisissä järjestelmissä ajastin: määrittelee aikavälien pituuksia eli milloin on kulunut tietty aika laskuri: laskee tapahtumien lukumääriä, käytännössä piirin sisäisiä tai ulkoisia pulsseja mikro-ohjaimissa voi olla paljon monipuolisia (ja monimutkaisia) laskureita, käytetään erityisesti sähkömoottorien ohjauksessa © Krister Wikström

202 Ohjelmistotekniikka Ohjelmointikielet
mikro-ohjain tarvitsee tietenkin aina ohjelman ohjelma laaditaan jollakin ohjelmointikielellä, joita ovat assembler-kieli sekä erilaiset lausekielet ja skriptikielet assembler: symbolinen konekieli, yksi ohjelmarivi = yksi konekäsky lausekieli: abstraktimpi, koneen yksityiskohdat peitetty, yksi ohjelmarivi  kymmenen konekäskyä skriptikieli: vielä abstraktimpi, yksi ohjelmarivi  satoja konekäskyjä periaatteessa lausekielet ja skriptikielet ovat samanlaisia, mutta niillä on eri sovellusalueet © Krister Wikström

203 Ohjelmistotekniikka Ohjelmointikielet
Assembler-esimerkki (yhteenlaskuoperaatio): Konekäsky symbolisessa eli helpommin muistettavassa muodossa Konekäsky on oikeasti binääriluku! © Krister Wikström

204 Ohjelmistotekniikka Sulautetuissa sovelluksissa: Ohjelmointikielet
ennen muinoin enimmäkseen assembler-kieltä nykyään enimmäkseen C-kieli isommissa sovelluksissa lisääntyvässä määrin C++ sekä Java löytyy lukematon määrä vähemmän käytettyjä lausekieliä skriptikieliä (esimerkiksi Tcl/Tk, Perl ja Python) ei juurikaan käytetä yksinkertaisissa sulautetuissa sovelluksissa © Krister Wikström

205 Laiteläheinen ohjelmointi C-kielellä
Ohjelmistotekniikka Laiteläheinen ohjelmointi C-kielellä lausekielen tarkoitus on tehdä näkymättömiksi laitteiston epäolennaiset yksityiskohdat, eli tehdä asia enemmän abstraktiksi ohjelma on jonkin asian toiminnallinen kuvaus, joka ihannetapauksessa ei lainkaan riipu laitteiston rakenteesta laitteisto eli tietokone on universaalinen ja pystyy teoriassa tekemään mitä hyvänsä käytännössä ei onnistu kokonaan näin hyvin © Krister Wikström

206 Laiteläheinen ohjelmointi C-kielellä
Ohjelmistotekniikka Laiteläheinen ohjelmointi C-kielellä Windows-ympäristössä laitteiston peittää alleen käyttöjärjestelmä ja ajurit sulautetuissa sovelluksissa näitä elementtejä ei useinkaan ole silloin joudumme laiteläheiseen ohjelmointiin siinä laitteisto näkyy ohjelmaan rekistereiden kautta eri koneissa erilaiset rekisterit  ohjelmat eivät helposti siirrettävissä koneen rekisterit ja muistikartta tunnettava ohjelmoitaessa © Krister Wikström

207 Ohjelmistotekniikka Projektin vaiheet
Missä tahansa suunnitteluprojektissa on kolme päävaihetta:  Verfiointi: Mallinnus Simulointi Testaus (analyysi)  Kuvaus (design entry)  Toteutus (synteesi) Muutokset Synteesi Tuotanto- prosessin tiedot © Krister Wikström

208 Ohjelmistotekniikka Kuvaus- eli määrittelyvaihe: Projektin vaiheet
määritellään se, mihin pyritään tärkein ja kriittisin, sillä mitä aikaisemmassa vaiheessa virheitä tehdään, sitä laajemmat haittavaikutukset niillä on enimmäkseen manuaalista työtä, vaikka kyllä työkalujakin löytyy, esimerkiksi: UML (Universal Modelling Language) SDL (System Description Language) erilaiset tilakaavioiden piirto-ohjelmat, esim. IAR VisualState em. työkaluista ei hyötyä yksinkertaisissa tapauksissa © Krister Wikström

209 Ohjelmistotekniikka Toteutusvaihe: Projektin vaiheet
määritelmän pohjalta suunnitellaan yksityiskohdat niin että tavoitteisiin päästään ohjelmistoprojekteissa enimmäkseen manuaalista työtä, muuhun suunnitteluun verrattuna sangen vähän automaatiota periaatteessa on olemassa sovelluskehittimiä kuten Delphi, sekä suuri joukko ns. CASE-työkaluja CASE: Computer Aided Software Engineering CASE-työkaluja sangen vähän todellisessa käytössä © Krister Wikström

210 Ohjelmistotekniikka Verifiointivaihe: Projektin vaiheet
pyritään varmistamaan että suunniteltu järjestelmä on vaatimusten mukainen menetelmät: simulointi, emulointi ja prototyypin testaus periaattellinen ongelma: vaikka kuinka testaa niin koskaan ei voi tietää onko kaikki viat ja puutteet löydetty ja poistettu testauksessa käytetään elektroniikan mittalaitteita, varsinkin oskilloskooppia ja logiikka-analysaattoria simuloinnin ja emuloinnin päätarkoitus on havaita mitä ohjelma tekee © Krister Wikström

211 Ohjelmistotekniikka Kehitysympäristö
ohjelman kirjoitus ja alustava testaus tapahtuu nykyään yleensä kehitysympäristössä (IDE, Integrated Development Environment) tämä on Windows-käyttöliittymä, jossa yhdistyvät seuraavat työkalut: editori kääntäjä (compiler) simulaattori ja mahdollisesti myös emulaattori joukko muita aputoimintoja, esimerkiksi koodianalysaattori ja versioiden hallinta © Krister Wikström

212 Ohjelmistotekniikka Kehitysympäristö tyypillinen kehitysympäristö:
Workstation environment © Krister Wikström

213 Ohjelmistotekniikka Kehitysympäristö
tyypillinen Windows- pohjainen käyttö- liittymä (Keil uVision2): Projekti-ikkuna Editointi-ikkuna Konsoli-ikkuna © Krister Wikström

214 Ohjelmistotekniikka Ohjelmiston rakenne
sulautetun sovelluksen ohjelmarakenne on aina sama eli päättymätön silmukka Aloitus: C-kielen toimintaympäristön perustaminen (esim. pinon määrittely) Päättymätön silmukka: odotellaan tapahtumia Alkuasetukset: ohjausbittien asetukset © Krister Wikström

215 SFR: Special Function Registers
Mikro-ohjaimet Prosessori Rekisterit: Mikro-ohjain Ohjelmat SFR: Special Function Registers Laitteisto Status Ohjaus Data Status: tilatieto, kertoo ”tilanteen” eli mitä on tapahtumassa tai tapahtunut Ohjaus: määrittelee mitä tehdään Data: käsiteltävää tietoa (signaali) © Krister Wikström

216 Mikro-ohjain Analog Devices ADuC812
Sovellusesimerkki LED-vilkutin + Virran-rajoitus- vastus Mikro-ohjain Analog Devices ADuC812 LED Invertteri Taajuus 1 Hz © Krister Wikström

217 Reaktiivinen järjestelmä
Sovellusesimerkki LED-vilkutin LED-vilkutin on esimerkki reaktiivisesta järjestelmästä: Reaktiivinen järjestelmä Heräte Tapahtuma Mittaus Vaste (reaktio) Toimenpide Ohjaus © Krister Wikström

218 Sovellusesimerkki Toimintatapa: LED-vilkutin
järjestelmä reagoi tapahtumiin (event) eli herätteisiin stimulus) havaittuaan tapahtuman järjestelmä reagoi eli suorittaa tarvittavat toimenpiteet (action) eli kehittää vasteen (response) sen jälkeen järjestelmä ryhtyy odottamaan uutta tapahtumaa odottaessaan järjestelmä ei välttämättä tee mitään, vaan voi mennä lepotilaan esimerkiksi tehonkulutuksen minimoimiseksi © Krister Wikström

219 Reaktiivinen järjestelmä
Sovellusesimerkki Reaktiivinen järjestelmä Lähtökohtia: suunnittelutyössä tulee aina ensimmäiseksi selvittää mitkä ovat tapahtumat ja mitkä ovat niitä vastaavat toimenpiteet seuraavaksi mietitään kuinka tapahtumat havaitaan ja kuinka toimenpiteet saadaan aikaan havaitseminen liittyy ottoihin ja toimenpiteet liittyvät antoihin toimenpiteet yleensä edellyttävät laitteiston ohjaamista tavalla jos toisellakin © Krister Wikström

220 Reaktiivinen järjestelmä
Sovellusesimerkki Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: kaksi toimintatilaa: lämmittää “täysillä” ( ympäristön lämpötila nousee) tai ei lämmitä lainkaan (ympäristön lämpötila laskee) tapahtuma E1: lämpötila nousee ylärajan yli toimenpide A1: lämmitin pois päältä, lämpötila laskee tapahtuma E2: lämpötila laskee alarajan alle toimenpide A2: lämmitin päälle, lämpötila kohoaa © Krister Wikström

221 Reaktiivinen järjestelmä
Sovellusesimerkki Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2 © Krister Wikström

222 Loistediodin vilkutus
Sovellusesimerkki Loistediodin vilkutus Toimintaperiaate: loistediodissa näkyy valo kun diodi on myötäsuuntainen eli virta kulkee esimerkkikytkennässä virta kulkee kun invertterin antojännite on nolla, ja ei kulje kun antojännite on ykkönen valon tulee vilkkua 1 Hz taajuudella, eli valo on toistuvasti ensin päällä 500 ms ja sitten poissa päältä 500 ms, jne. havaittava tapahtuma on siis 500 ms ajan kuluminen suoritettava toimenpide on antoliitäntänastan loogisen tilan invertointi jokaisen tapahtuman jälkeen © Krister Wikström

223 Sovellusesimerkki Valon ohjaaminen: LED-vilkutin
LEDi on liitetty mikro-ohjaimen johonkin I/O-nastaan invertterin kautta kaikkia I/O-nastoja ohjataan 8-bittisillä porttirekistereillä kukin rekisteri ohjaa yhtä porttia, eli kahdeksan I/O-nastan ryhmää kukin rekisterin bitti ohjaa erikseen ja muista riippumatta vastaavan portin yhtä I/O-nastaa siten I/O-nastaa ohjataan asettamalla sitä vastaava ohjausrekisterin bitti arvoon ‘1’ tai ‘0’ © Krister Wikström

224 Sovellusesimerkki Valon ohjaaminen: LED-vilkutin
tässä tapauksessa kohdejärjestelmä on ADuC812-mikro-ohjaimen kokeilukortti kokeilukortin piirikaaviosta tulee ensin selvittää täsmälleen mihin mikro-ohjaimen I/O-nastaan LEDi on liitetty (invertterin kautta) tämä on nasta, jonka nimi on P3.4, siis nasta 4 portissa 3 HUOM: P3.4 on I/O-nastan symbolinen nimi, kun taas mikropiirin kotelossa mainitun nastan numero on 22 ohjelmoinnissa käytetään vain symbolisia nimiä © Krister Wikström

225 Sovellusesimerkki ADuC812 liitännät: P3.4 LED-vilkutin 23.4.2003
© Krister Wikström

226 Sovellusesimerkki Valon ohjaaminen: + LED-vilkutin
täten saadaan seuraava asetelma: b7 b6 b5 b4 b3 b2 b1 b0 p7 p6 p5 p4 p3 p2 p1 p0 Portin 3 ohjausrekisteri Portin 3 liitäntänastat + Rekisterin bitti 4 ohjaa portin 3 liitäntänastaa 4 Nasta 22 mikro-ohjaimen kotelossa 0xB0 © Krister Wikström

227 Sovellusesimerkki Ohjausbittien asettaminen: LED-vilkutin
ohjausbittien arvo asetetaan kirjoittamalla ohjelmasta käsin vastaavaan rekisteriin jokaisella rekisterillä on tietty absoluuttinen osoite mikro-ohjaimen muistikartassa C-kielessä käytetään pointtereita viittaamaan haluttuihin osoitteisiin, ja näin voitaisiin menetellä tässäkin tapauksessa. ohjelmoinnin helpottamiseksi lähes kaikissa sulautettujen sovellusten C-kääntäjissä on erityisiä mekanismeja laiteriippuvaisten yksityiskohtien hallintaan kukin rekisteri ja joissakin rekistereissä kukin bitti määritellään erityisenä epästandardina muuttujatyppinä © Krister Wikström

228 Sovellusesimerkki Ohjausbittien asettaminen: LED-vilkutin
tällöin bitille voidaan antaa arvo ‘1’ tai ‘0’ soveltamalla C-kielen normaalia sjoituslausetta kyseiseen muuttujaan näin koodaus on helpompaa, mutta vastapainona laiteriippuvuus lisääntyy mainitut epästandardit muuttujatyypit ovat kääntäjäkohtaisia. Mikäli koodi halutaan kääntää toisella kääntäjällä joudutaan väistämättä muokkaamaan I/O-toimintoja toisaalta, K&R:n alkuperäisessä C-kielessä ei ollut lainkaan I/O-toimintoja © Krister Wikström

229 Sovellusesimerkki C-kääntäjät: LED-vilkutin
C-kielen virallinen standardi on ANSI C (ANSI = American National Standards Institute) kaikissa C-kääntäjissä on kuitenkin myös epästandardeja ominaisuuksia, joita tarvitaan kohdejärjestelmän laitteiston hallintaan mainitut ominaisuudet helpottavat ohjelmointia, mutta valitettavasti samalla vaikeuttavat toteutusten siirtoa ympäristöstä toiseen. © Krister Wikström

230 Sovellusesimerkki C-kääntäjät: LED-vilkutin
mainitut epästandardit piirteet liittyvät pääasiassa seuraaviin asioihin: syöttö ja tulostus: alunperin C-kielessä ei lainkaan määritelty syöttö- ja tulostustoimintoja muuttujatyypit: laiteläheisessä ohjelmoinnissa on hyödyllistä määritellä muitakin muuttujatyyppejä kuin mitä ANSI C tuntee keskeytykset: keskeytysmekanismit ovat täysin laitekohtaisia ja siksi ANSI C:ssä ei voi huomioida keskeytyksiä muistikartat: eri mikro-ohjaimilla voi olla hyvinkin erilaiset muistikartat, mikä täytyy huomioida kääntäjissä © Krister Wikström

231 Sovellusesimerkki LED-vilkutin
Muuttuja- tyypit Keil C51 C-kääntä- jässä: © Krister Wikström

232 Sovellusesimerkki Muuttujatyypit Keil C51 C-kääntäjässä: LED-vilkutin
tärkeimmät epästandardit muuttujatyypit ovat: sfr: viittaa 8 bitin rekisteriin mikro-ohjaimessa sfr16: viittaa 16 bitin rekisteriin mikro-ohjaimessa sbit: viittaa yhteen bittiin jossakin mikro-ohjaimen rekisterissä HUOM: nämä ovat muuttujien määrittelyissä käytettyjä attribuutteja rekistereiden ja bittien nimet tulee tietenkin liittää vastaaviin laiteosoitteisiin tiettyä kääntäjäkohtaista syntaksia käyttäen © Krister Wikström

233 Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä:
LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: tässä sovelluksessa tarvitaan muuttuja, joka viittaa portin 3 ohjausrekisterin bittiin 4 mikro-ohjaimen datalehdestä löytyvästä rekisterikartasta voidaan havaita että portin nimi on P3 ja absoluuttinen osoite on 0xB0 tällöin Keilin C-kääntäjässä koko rekisteriin P3 viittaavan muuttujan määrittelylause on: sfr P3 = 0xB0; © Krister Wikström

234 Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä:
LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: emme kuitenkaan halua viitata kaikkiin kahdeksaan bittiin samanaikaisesti, vaan ainoastaan bittiin 4 rekisterissä P3 tarvitsemme siis muuttujan, joka viittaa vain yhteen bittiin Keilin C-kääntäjässä määrittelylause on: sbit P3_4 = P3^4; muuttuja P3 on tietenkin määriteltävä ensin © Krister Wikström

235 Sovellusesimerkki Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä:
LED-vilkutin Rekisterityyppiset muuttujat Keil C51 C-kääntäjässä: useimmiten ei itse tarvitse vaivautua kirjoittamaan mainittuja rekisterimuuttujien määrittelyjä kääntäjän mukana seuraa koko joukko valmiita määrittelyjä header-tiedostoina (*.h) näitä löytyy useimmiten INC-nimisestä kansiosta, esimerkiksi C:\Keil\C51\INC header-tiedosto tulee liittää (include) käännökseen, esim. #include <Reg52.h> HUOM: ei puolipistettä lauseen lopussa! © Krister Wikström

236 Sovellusesimerkki Käyttöesimerkkejä: LED-vilkutin
käyttäen edellä selitettyjä määrittelyjä voimme nyt helposti ohjata LEDin valoa antamalla sopivia arvoja sbit-tyyppiselle muuttujalle P3_4. Tähän käytetään C-kielen sijoituslausetta: P3_4 = 1; // laittaa valon PÄÄLLE P3_4 = 0; // laittaa valon POIS PÄÄLTÄ P3_4 ^= 1; // INVERTOI valon P3_4 = !P3_4; // tämäkin INVERTOI valon © Krister Wikström

237 Sovellusesimerkki Ajan mittaaminen: LED-vilkutin
valon ohjaamisen lisäksi tulee havaita tapahtuma, eli 500 millisekunnin kuluminen aikavälejä mitataan ajastimia käyttäen “tavallisessa” C52-mikro-ohjaimessa on kolme ajastinta, joiden nimet ovat T0, T1 ja T2. Kehittyneemmissä malleissa on runsaasti muitakin ajastimia. T2 on monipuolisin mainituista kolmesta ajastimesta, joten sitä on syytä käyttä tässä sovelluksessa © Krister Wikström

238 Sovellusesimerkki Ajastin T2: LED-vilkutin
ajastimen toimintoja ohjatan rekisterillä, jonka nimi on T2CON rekisterissä on sekä ohjaus- että tilabittejä tilabittien avulla ohjelma saa tiedon tapahtumista, joko pollaamalla eli toistuvasti lukemalla tilabittejä, tai käyttäen keskeytyksiä. tässä sovelluksessa tärkein tilabitti on ylivuotobitti TF2 © Krister Wikström

239 Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin 23.4.2003
© Krister Wikström

240 Sovellusesimerkki LED-vilkutin Timer 2 control register T2CON:
© Krister Wikström

241 Sovellusesimerkki Timer 2 toiminta: LED-vilkutin
periaatteessa T2 on 16-bittinen laskuri, joka koostuu rekistereistä T2L (vähiten merkitsevä tavu) ja T2H (eniten merkitsevä tavu) laskuri laskee kellopulsseja kellosignaali voi olla ulkoinen, siis I/O-nastaan T2EX liitetty kanttiaalto, tai mikro-ohjaimen kellosta muodostettu sisäinen kellosignaali. tässä sovelluksessa käytetään sisäistä kelloa kokeilukortilla mikro-ohjaimen kellotaajuus on 12 MHz, ja ajastimen kello saadaan jakamalla tämä kahdellatoista siten ajastin T 2 laskee yhden mikrosekunnin aikavälejä © Krister Wikström

242 Sovellusesimerkki Timer 2 toiminta: LED-vilkutin
n-bittinen ylöslaskuri laskee nollasta lukuun 2n-1 eli tässä tapauksessa 0  = 65535 maksimiarvoa seuraavalla kellopulssilla laskurissa tapahtuu ylivuoto, ja laskuri aloittaa uudelleen alusta eli nollasta siten 1 µs kellojaksolla laskurin kierros kestää tasan 65,535 millisekuntia, eikä pelkällä ajastimella siis voida mitata sen pitempiä aikavälejä pitempien aikojen kuten 500 ms mittaamiseksi tarvitaan ajastimen ja ohjelmallisen laskurin yhdistelmä © Krister Wikström

243 Sovellusesimerkki Timer 2 toiminta: LED-vilkutin
ajastin T2 voidaan laittaa mittaamaan esimerkiksi 50 ms aikavälejä. Sitten lasketaan kymmenen ylivuotoa ohjelmallisesti, jolloin saadaan kaikkiaan 500 ms. ajastimen T2 kierrosta voidaan lyhentää maksimiarvostaan käyttämällä ajastimen auto reload-toimintamuotoa tällöin ylivuodon jälkeen ajastin ei aloita nollasta, vaan sen sijaan jostain suuremmasta luvusta, jolloin kierros tietenkin lyhenee haluttaessa kellopulssin mittainen kierros, tulee ylivuodon jälkeen tietenkin aloittaa luvusta = 15535 © Krister Wikström

244 Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin
aluksi on asetettava ajastimen lohkokaaviossa näkyvät kolme valintakytkintä sopiviin asentoihin T2CON-rekisterin bitit ohjaavat mainittuja kytkimiä. Tässä tapauksessa sopiva toimintatapa valitaan asettamalla C/T2 = 0, TR2 = 1 ja EXEN2 = 0. auto reload-toiminnossa ylivuodon tapahtuessa rekisterin RCAP2L sisältö kirjoitetaan automaattisesti rekisteriin T2L ja the rekisterin RCAP2H sisältö vastaavasti rekisteriin T2H siten ylivuodon jälkeen ajastin T2 ei aloitakaan nollasta, vaan lukuarvosta rekistereissä RCAP2L + RCAP2H © Krister Wikström

245 Sovellusesimerkki Timer 2 auto reload mode: LED-vilkutin
siten kirjoittamalla lukuarvo –50000 rekistereihin RCAP2L + RCAP2H saadaan ajastimen kierrokseksi kellojaksoa eli 50 ms 1 MHz kellolla mainittu arvo tarvitsee kirjoittaa vain kerran, sillä jokaisen rekisterin sisältö säilyy kunnes rekisteriin kirjoitetaan muuta ohjelmasta käsin voidaan havaita 50 ms kuluminen pollaamalla ylivuotobittiä TF2 ylivuodon jälkeen TF2 asettuu automaattisesti arvoon ‘1’ ohjelmassa täytyy nollata TF2 ylivuodon jälkeen, muutenhan seuraavaa ylivuotoa ei voi havaita © Krister Wikström

246 Sovellusesimerkki Timer 2 auto reload mode: 216-1 RCAP2 LED-vilkutin
216-1 RCAP2 Ylivuodon tapahtuessa: TF2 = 1 T2 ladataan RCAP2-rekisteristä © Krister Wikström

247 Sovellusesimerkki Ohjelmallinen laskuri: LED-vilkutin
500 ms aika voidaan mitata 8 bittisellä muuttujalla nimeltään count (tai jotain), jota kasvatetaan yhdellä aina kun ajastimessa T2 tapahtuu ylivuoto (mikä puolestaan tapahtuu 50 ms välein) 500 ms on kulunut silloin kun muuttujan count arvo on kasvanut alkuarvosta 0 loppuarvoon 10 tällöin invertoidaan LEDiä ohjaava I/O-nasta, ja se on siinä! Lisäksi count tulee nollata uutta laskentakierrosta varten. © Krister Wikström


Lataa ppt "Tietokone-järjestelmät"

Samankaltaiset esitykset


Iklan oleh Google