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



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

Käyttöjärjestelmän rakenne

1. Keskusyksikön rakenne

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

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

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

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

MUISTIPIIRIT H. Honkanen

Tietokoneen muisti nyt ja tulevaisuudessa. Ryhmä: Mikko Haavisto Ilari Pihlajisto Marko Vesala Joona Hasu

6.3. AVR_rauta. EEPROM-muisti pva

Python-koodaus: Muuttujat

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

Ajattelemme tietokonetta yleensä läppärinä tai pöytäkoneena

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

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

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

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

Petri Koivulahti. Intel mikrokontrollerit. Opinnäytetyö Kevät 2010 Tekniikan yksikkö Tietotekniikan koulutusohjelma Ohjelmistotekniikka

Laiteläheinen C-kieli, yleistä

Kontrollerin sisäisten komponenttien käytöstä. Vielä vähän asiaa sisäisten lohkojen käytöstä

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

Mikro-ohjain µc harjoitukset - yleisohje

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

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

TIES530 TIES530. Kontrollereiden Muistit. Mikrokontrollerit - arkkitehtuuri. Mikrokontrollerin sisäinen arkkitehtuuri

Arto Salminen,

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

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

BL40A1810 Mikroprosessorit, harjoitus 1

Kontrollerin tehonsäätö

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

JOHDATUS ELEKTRONIIKKAAN. Oppitunti 2 Elektroniikan järjestelmät

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

TKT224 KOODIN KOON OPTIMOINTI

2.2. Tietokoneohjelman tekeminen pva, kuvat jma

Yleinen arkkitehtuuri

Mikrokontrollerit. Mikrokontrolleri

TIEP114 Tietokoneen rakenne ja arkkitehtuuri, 3 op. FT Ari Viinikainen

3. C-kieli sulautetun järjestelmän ohjelmointikielenä , pva

Taitaja semifinaali 2010, Iisalmi Jääkaapin ovihälytin

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

Sulautetut järjestelmät

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

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

ELEC-C5070 Elektroniikkapaja (5 op)

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

11/20: Konepelti auki

TIES530 TIES530 PROSESSORIT/KONTROLLERIT

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

Muistimoduulit. Käyttöopas

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

Muistimoduulit. Asiakirjan osanumero: Tässä oppaassa kerrotaan tietokoneen muistin vaihtamisesta ja laajentamisesta.

Muistimoduulit. Käyttöopas

3. Luento: Muistin hallinta. Tommi Mikkonen,

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

KÄYTTÖOHJE LÄMPÖTILA-ANEMOMETRI DT-619

Tietokonetekniikka Edita, Seppo Haltsonen, Esko T. Rautanen

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

Virtuoosi POS-järjestelmien joukossa

SUPIKOIRA-projekti. Tommi Berg Eero Alkkiomäki. (Tero Huttunen, Sami Kiiskilä, Ossi Mäkinen, Ilpo Suominen, Mikko Suominen, Asser Vuola)

Ohjelmassa muuttujalla on nimi ja arvo. Kääntäjä ja linkkeri varaavat muistilohkon, jonne muuttujan arvo talletetaan.

Muistimoduulit Käyttöopas

CT50A2602 Käyttöjärjestelmät Seminaarityö. Tietokoneen muisti nyt ja tulevaisuudessa

Tiedon muuttumattomuuden tarkistus Järjestelmän sisäinen muisti

7.3. Oheisrautaa. DS

Kappale 20: Kantaluvut

AS Servotekniikka Seminaariesityksen kirjallinen versio, mikrokontrollerit

5.6. C-kielen perusteet, osa 6/8, Taulukko , pva, kuvat jma

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

Ongelma(t): Mihin perustuu tietokoneiden suorituskyky ja sen jatkuva kasvu? Mitkä tekijät rajoittavat suorituskyvyn parantamista ja mitkä niistä ovat

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

Luento 1 Tietokonejärjestelmän rakenne

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

Tällä ohjelmoitavalla laitteella saat hälytyksen, mikäli lämpötila nousee liian korkeaksi.

Luento 1 Tietokonejärjestelmän rakenne

Ohjelmistoradio. Mikä se on:

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

TIES530 - Sulautettujen järjestelmien arkkitehtuurit. Jukka Ihalainen, Tietoliikennelaboratorio,

Ohjelmointitaito (ict1td002, 12 op) Kevät Java-ohjelmoinnin alkeita. Tietokoneohjelma. Raine Kauppinen

2. Lisää Java-ohjelmoinnin alkeita. Muuttuja ja viittausmuuttuja (1/4) Muuttuja ja viittausmuuttuja (2/4)

Electronisen nopeus ja matkamittarin kalibrointi laite huippunopeus muistilla.

OHJELMISTOKEHITYS -suuntautumisvaihtoehto

Tietokoneen toiminta. Virtuaalilaboratoriotyö

Opastusta ohjelmointiin, C-kieleen ja mikro-ohjaimiin. Se kaikki se tulee tässä kirjassa.

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

AU Automaatiotekniikka. Toimilohko FB

Mikro-ohjaimen ohjelmoinnin perusteet Flowcode ympäristössä

ELEC-C5070 Elektroniikkapaja (5 op)

Verilogvs. VHDL. Janne Koljonen University of Vaasa

Teollisuusautomaation standardit Osio 9

MINPak Monitori VIANMÄÄRITYS, TARKASTUS JA PAIKANNUS. Ominaisuudet. Ominaisuudet

4.2. ALIOHJELMAT 71. Tulosvälitteisyys (call by result) Tulosvälitteinen parametri kopioidaan lopuksi

Muistimoduulit. Oppaan osanumero: Tässä oppaassa kerrotaan tietokoneen muistin vaihtamisesta ja laajentamisesta.

Ohjelmoinnin perusteet Y Python

Muistimoduulit Käyttöopas

C++ Kuva 1-1. C- ja C++ kielien perustana olevat kielet.

815338A Ohjelmointikielten periaatteet Harjoitus 3 vastaukset

Algoritmit. Ohjelman tekemisen hahmottamisessa käytetään

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

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

Transkriptio:

2. Sulautettu järjestelmä ja mikro-ohjain 11.12.2007, pva Henkilökohtaisesti olen aina valmis oppimaan, vaikka en välitäkään tulla opetetuksi. - Winston Churchill Yleistä Sulautettu järjestelmä, Embedded System, on järjestelmä, jossa laitteisto ja ohjelmisto on sulautettu (embedded, upotettu) erottamattomasti yhteen. Kun lämmitämme mikroaaltouunissa pitsan, tyhjennämme astianpesukonetta tai etsimme televisiosta kauko-ohjaimella uusia kanavia, tuskin tulemme ajatelleeksi että käytämme kaikkiin noihin toimiin mikrotietokonetta. Kun tietokone on liitetty osaksi jonkin laitteen toimintaa siten, ettei sitä käytössä huomaa, tai ulospäin laite ei vaikuta tietokoneelta, sanomme kokonaisuutta sulautetuksi järjestelmäksi. Sulautettu järjestelmä, Embedded System, koostuu mikro-ohjaimesta, joka on yhdelle piipalalle integroitu mikroprosessori, muistipiirit ohjelmalle ja käsiteltävälle tiedolle, liitännät ulkomaailmaan ja tarvittavat ohjelmistot. Sulautetun järjestelmän päätehtävänä on valvoa ja ohjata sen elektronisen laitteen toimintoja johon se on integroitu. Mikro-ohjaimia voi olla useitakin samassa laitteessa, esimerkkinä vaikka kamerakännykkä ja DVD-soitin. Mikro-ohjaimella pyritään tuomaan laitteeseen älyä. Äly merkitsee lisää ominaisuuksia ja käyttömukavuutta, parempaa luotettavuutta, pienempää tehonkulutusta ja mikä ehkä tärkeintä, pienempiä valmistuskustannuksia. Sulautetulle järjestelmälle on tyypillistä reaaliaikaisuus. Mikroohjaimen on reagoitava välittömästi ärsykkeen saatuaan. Auton turvatyynyn on lauettava juuri oikeaan aikaan, samoin digikameran ja palohälytyksen on lähdettävä viiveettä ja oikeaan paikkaan. Jatkuvasti, tietämättämme, törmäämme sulautettuihin järjestelmiin. Nykykoti on täynnä sulautettua elektroniikkaa. Aamukahvit keitetään, lasten lelut ääntelevät, isän harrasterobotti liikkuu ja kodin viihde-elektroniikka toimii tietokoneen valvonnassa. Töihin tai kouluun ajamme autolla, jossa mikroohjaimia on kymmenittäin. Yhteydenpito kavereihin hoidetaan kännykällä, jonka tietoliikenteen hoitavat monet prosessorit ja tietoverkoissa on vielä niitä lisää. Sulautetun järjestelmän suunnittelu ja tekeminen edellyttää ohjelmiston ja laitteistojen syvällistä tuntemusta. Laitteisto-osaamiseen liittyy usein tarve tuntea sovelluskohde ja sen toiminta perusteellisesti. Upotetun systeemin rautaa ja sen ohjelmistoa suunnitellaan ja tehdään yleensä samanaikaisesti. Pienissä järjestelmissä työn tekee sama henkilö, suuremmissa joka työhön on oma spesialisti.

2.1. Mikrotietokone Tietokone on elektroninen laite, joka suorittaa sille annettua tehtävää eli ohjelmaa. Tietokone voi olla yleiskäyttöinen, - moneen erilaiseen tehtävään soveltuva, kuten PC, tai johonkin tiettyyn erityistarkoitukseen valmistettu, - jollaisia kaikki sulautetut järjestelmät ovat. Tämä kirja opastaa mikro-ohjaimen C-kieliseen ohjelmointiin. Siksi tutkitaan vain 8-bittisen sulautetun järjestelmän mikrotietokonetta. PC-ympäristö unohdetaan. Samat peruskäsitteet koskevat kyllä kaikkia tietokoneita, vain yksityiskohdissa - ja koossa, on eroja. Mikroprosessori, suoritin, CPU, Central Processing Unit CPU on mikro-ohjaimen sydän. Se hakee ohjelman käskyn ohjelmamuistista, tulkitsee sen ja jos käskyyn liittyy tiedon käsittelyä, hakee tarvittavan tiedon muistista ja lopuksi tekee käskyn määräämän toimenpiteen tiedolle. Käsitelty tieto toimitetaan takaisin muistiin, tai se pannaan I/O-portin (input/output, tulo/lähtö) kautta ohjaamaan moottoria, näytetään LCD-näytössä, tms. Ohjelmamuisti, Program Memory Ohjelmamuisti säilöö ohjelman käskyt. Sen tulee pitää tietonsa vaikka käyttösähkö katkeaa, eli sen tulee olla ns. haihtumatonta muistia. Sulautetuissa systeemeissä käytetään ohjelmamuistina flashmuistia. Datamuisti, Data Memory, (käyttömuisti) Datamuistissa tallennetaan käsiteltävä ja käsitelty tieto. Siksi sitä on kyettävä sekä lukemaan, että kirjoittamaan. Sulautetun järjestelmän datamuisti on tyypiltään SRAM, Static Random Access Memory, staattinen RAM. Tulo- ja lähtöliitännät, I/O-piirit, Input/Output I/O-liitännät ovat IC-piirejä (Integrated Circuit) ja/tai irtokomponentein tehtyjä kytkentöjä, joilla prosessori liittyy ulkoiseen maailmaan. Näitä ovat esimerkiksi erilaiset anturit (lämpötila-anturi, savuilmaisin, ovikytkin) ja toimilaitteet (näyttö, summeri, tasavirtamoottori, toinen tietokone, Internet). Kello-oskillaattori, Clock Oscillator Kaikki toiminta mikrotietokoneessa tapahtuu kello-oskillaattorin tahdittamana. Virtalähde, Teholähde, Power Supply Tietokone toimii sähköllä, jota saadaan paristosta, akusta tai virtalähdeosan avulla vaihtosähköverkosta. 2

2.2.1. Mikroprosessori, CPU, Central Processing Unit Mikroprosessori on mikrotietokoneen keskusyksikkö, joka suorittaa sille ohjelmakoodina annettua tehtävää. CPU voidaan ajatella koostuvan kolmesta lohkosta. 1. Datan käsittely-yksikkö 2. Koodin käsittely-yksikkö 3. Osoitteen käsittely-yksikkö Tässä lohkokaaviokuva AVR-mikro-ohjaimesta. JTAG-liitäntä on olennainen osa nykyaikaista mikroohjainta, sen toiminnasta ja käytöstä lisää liitteessä. 3

1. Tietokone käsittelee tietoa Tiedon käsittely tapahtuu tietokoneen keskusyksikössä, CPU, Central Prosessing Unit. Tietokone tosin ei tiedä yhtään mitään. Se osaa vain laskea. Ja kun se ei tunne muita numeroita kuin 1 ja 0, ei sen laskentataitokaan kovin kaksinen ole. Tästä voi jo päätellä, että mikroprosessorissa täytyy olla tiedonkäsittely-yksikkö, jossa tuo tiedon työstäminen tapahtuu. Tiedon käsittely voi olla esim. tiedon siirto jostain rekisteristä toiseen rekisteriin tai varsinaiseen muistiin, tai päinvastoin, jonkin rekisterin alustus (arvon asettaminen). Parhaimmillaan se on varsinaista tiedon manipulointia, kuten yhteenlaskua, vähennyslaskua, inkrementointia, dekrementointia, vertailua, AND-operaation tekoa, jne. Tiedon käsittely tapahtuu Accu-rekisterin ja ALUn, Aritmeettis-Looginen yksikkö, yhteistyönä. AVR-ohjaimissa on 32 akkua, General Purpose Register. 2. Miten tietoa käsitellään? Jossain on oltava ohjeet tiedonkäsittelyyn. Ohjeet ovat ohjelmassa, jonka ohjelmoija on kirjoittanut. Siis prosessorissa on oltava osa joka hakee, tunnistaa ja toimii noiden ohjeiden mukaan. Ohjeiden tulee olla yksinkertaisia, joten niitä tarvitaan paljon. Ohjeet ovat pieniä, peräkkäisiä käskyjä, joita tietokone käsittelee hirmuisella nopeudella. Siis toisen lohkon tulee olla käskynkäsittely-yksikkö. Se sisältää myös ohjaus- ja valvontaosan, Control Unit, joka tahdittaa CPU:n sisäisiä toimintoja ja liitäntäpiirien kautta kytkettyjen toimilaitteiden työskentelyä. 4

3. Mistä ohjeet ja työstettävä tieto haetaan, tai minne käsitelty tieto viedään? CPU osoittaa osoiteväylän avulla ohjelmamuistia kun sieltä haetaan ko. osoitteesta käsky käskyrekisteriin. Osoitetta tarvitaan myös, kun haetaan käsiteltävä tieto muistista tai ulkoisesta piiristä, tai kun käsitelty tieto tallennetaan tai viedään ohjaamaan ulkoista laitetta. Prosessorin postipoika on sen kolmas lohko eli osoitteenkäsittely-yksikkö. Ohjelmalaskuri, Program Counter, on osoiterekisteri joka pitää kirjaa ohjelmasta ja osoittaa seuraavaksi noudettavan käskyn osoitteeseen. Ohjelmalaskuri nollautuu tietokoneen käynnistyessä, joten osoitteessa 0x0000 tulee olla ohjelman ensimmäinen käsky. Toinen tärkeä osoiterekisteri on pinomuistin osoitusrekisteri, Stack Pointer. Pinomuisti on datamuistista varattu muistialue, johon keskeytyksen tullessa pääohjelman paluuosoite ja muuttujat tallennetaan. Kun keskeytysohjelma on suoritettu, pääohjelman paluuosoite palautetaan pinosta CPU:n ohjelmalaskurin arvoksi ja pääohjelma jatkuu siitä mihin jäätiin. Näin ajatellen monimutkaisen mikroprosessorin toiminta on helppo ymmärtää. Ja mikä parasta, kaikki prosessorit toimivat samalla periaatteella pienimmästä AVR Tinysta suurimpaan PC:n Pentiumiin. Elektronikko näkee prosessorin, joka - sisältää tuhansittain (miljoonittain) MOSFET-transistoreita, - joista on tehty - portteja, kiikkuja, laskureita, multipleksereitä, koodereita... Ohjelmoija näkee prosessorin, joka - sisältää rekistereitä ja - käskyt, joilla rekistereitä manipuloidaan 2.2.2. Puolijohdemuistit Valmis tietokoneohjelma pitää tallentaa johonkin, josta se on saatavissa käyttöön aina, kun sitä tarvitaan. Myös käsiteltävä, tai käsitelty, tieto pitää tallentaa johonkin. Koodin ja datan tallennukseen käytetään puolijohdemuisteja. Puolijohdemuisti on elektroninen piiri, joka tallentaa numeroita sähköisessä muodossa. 5

Muistiin tallennetaan binäärilukuja, jotka ovat joko käskyjä tai tietoa (dataa). Jokaisella muistipaikalla on oma osoite ja kussakin muistipaikassa on tallessa yksi binääriluku, tavu, joka puolestaan koostuu kahdeksasta bitistä. Bitit tallennetaan muistikennoihin. Muistien toiminta ja käyttö eroaa tuon tallennustavan perusteella. Tänä päivänä sulautetuissa järjestelmissä on käytössä kolmea muistityyppiä: Datamuisti, Data Memory Datamuisti on käyttömuistia jota pitää voida lukea ja kirjoittaa tavu kerrallaan. SRAM-muistikenno (Static Random Access Memory), siis se mihin yksittäinen bitti tallennetaan, koostuu MOSFETtransistoreista rakennetuista kiikuista (flip-flop). Tieto häviää käyttösähkön katkettua. Kuva 1. SRAM-muisti. 6

Ohjelmamuisti, Program Memory Ohjelmamuistin tulee olla haihtumatonta ROM-tyyppistä muistia (Read Only Memory), eli se säilyttää tietonsa sähkökatkoksen yli. Ohjelmointi, bittien tallentaminen muistikennoon, tapahtuu ennen muistin käyttöönottoa. Flash-muisti on tämänpäivän ohjelmamuistia. Siinä bitti talletetaan FET-transistorin gate-kapasitanssiin (kondensaattoriin). Flash-muistia ei voi käsitellä RAM-muistin tapaan bitti bitiltä, vaan kokonainen muistilohko pitää alustaa ja ohjelmoida kerrallaan. Alustettuna eli tyhjennettynä flash-muistin kaikki bitit ovat loogiselta tilaltaan ylhäällä, siis '1'. Lukeminen kyllä onnistuu tavu (8 bittiä) kerralla. Kuva 2. Ohjelmamuisti. Ikidatamuisti EEPROM-muistia (Electrically Eraseable Programmable Read Only Memory) voidaan lukea ja kirjoittaa bitti bitiltä ja se säilyttää tietonsa sähkökatkoksen yli. Sinne talletetaan tavallisesti dataa jota tarvitaan uudelleen ja uudelleen (esim. anturidatan korjauskerrointaulukko). Kallista ja hidasta. 7

Hyvä tietää The AVR is a family of RISC microcontrollers from Atmel. The AVR architecture, first conceived by two electronic engineering students at the Norwegian Institute of Technology (NTH), has been refined and developed by Atmel Norway, in a division founded by the chip's architects. The AVR architects, Vergard Wollan and Alf-Egil Bogen. Bogen's 1992 NTH thesis was "High Speed Analog to Digital Converters in CMOS". 8

Mikrotietokone on laite, - joka suorittaa ohjelmamuistiin tallennettujen käskyjen ( =ohjelma) avulla mikroprosessorin (=CPU) ohjauksessa tiedonsiirtoa työmuistin (RAM) ja syöttö/tulostuslaitteiden (input/output) välillä - ja ennenkaikkea tiedonkäsittelyä. Mikroprosessori, suoritin, CPU on komponentti, - jonka toiminta on ohjattavissa muistiin tallennetuilla käskyillä (=ohjelma) se voi käskyjen mukaan: - siirrellä tietoa - suorittaa aritmetiikka (+, -, inkrementointi, dekrementointi...) ja loogisia operaatioita (AND, OR...) - tehdä päätöksiä (if-else) Mikro-ohjain, mikrokontrolleri on komponentti, jossa samaan piiriin on integroitu * mikroprosessori, * ohjelma- ja työmuistit * ja Input/Output-piirit. Se on siis yhdelle piirille (=chip) integroitu tietokone. 9