TIES530 TIES530 PROSESSORIT/KONTROLLERIT



Samankaltaiset tiedostot
Mikrokontrollerit. Mikrokontrolleri

Kontrollerin tehonsäätö

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

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

AS Servotekniikka Seminaariesityksen kirjallinen versio, mikrokontrollerit

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

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

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

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

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

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Signaalien datamuunnokset. Näytteenotto ja pito -piirit

Luento 1 (verkkoluento 1) Tietokonejärjestelmä

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

Ohjelmistoradio. Mikä se on:

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

Successive approximation AD-muunnin

Flash AD-muunnin. Ominaisuudet. +nopea -> voidaan käyttää korkeataajuuksisen signaalin muuntamiseen (GHz) +yksinkertainen

ELEC-C5070 Elektroniikkapaja (5 op)

Luento 1 Tietokonejärjestelmän rakenne

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

Luento 1 Tietokonejärjestelmän rakenne

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

Sulautetut järjestelmät

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

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

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

Flash AD-muunnin. suurin kaistanleveys muista muuntimista (gigahertsejä) pieni resoluutio (max 8) kalliita

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

ELEC-C5070 Elektroniikkapaja (5 op)

ELEC-C5070 Elektroniikkapaja (5 op)

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

2 Konekieli, aliohjelmat, keskeytykset

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

Signaalien datamuunnokset

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

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

Agenda. Johdanto Ominaispiirteitä Kokonaisjärjestelmän määrittely Eri alojen edustajien roolit Sulautetut järjestelmät ja sulautettu ohjelmointi

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

A/D-muuntimia. Flash ADC

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

Arto Salminen,

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

Arduino ohjelmistokehitys

Digitaalinen potentiometri Catalyst CAT5401

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

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

6. Analogisen signaalin liittäminen mikroprosessoriin Näytteenotto analogisesta signaalista DA-muuntimet 4

Laitteistonläheinen ohjelmointi

Algoritmit 1. Luento 3 Ti Timo Männikkö

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

Yleinen arkkitehtuuri

1. Keskusyksikön rakenne

LIITE. asiakirjaan. komission delegoitu asetus

OHJ-1010 Tietotekniikan perusteet 4 op Syksy 2012

MUISTIPIIRIT H. Honkanen

Dell Inspiron 560/570: Tekniset tiedot

Tietokonetekniikka Edita, Seppo Haltsonen, Esko T. Rautanen

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

Käyttöjärjestelmän rakenne

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

1 YLEISTÄ. Taitaja2002, Imatra Teollisuuselektroniikkatyö Protorakentelu 1.1 PROJEKTIN TARKOITUS

ECIO käyttöohje. Matrix Multimedia Limited. JJJ-Automaatio Oy. Keijo Salonen Jyväskylän ammattiopisto

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

Virtuoosi POS-järjestelmien joukossa

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

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

Digikamera. Perustietoa digikamerasta ja kuvien siirtämisestä tietokoneelle

OMNIA OPINNÄYTETYÖ AMMATTIOPISTO. Diginoppa ICTP09SLG OMNIAN AMMATTIOPISTO

5. Luento: Rinnakkaisuus ja reaaliaika. Tommi Mikkonen,

TIES530 TIES530. A/D-muuntimet. Mikrokontrollerit - arkkitehtuuri. Mikrokontrollerit - arkkitehtuuri. A/D- ja D/A-muuntimet

BL40A17x0 Digitaalielektroniikka A/B: Ohjelmoitavat logiikkapiirit

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

7.3. Oheisrautaa. DS

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

Kertausluento luennoista 1-3 1

TKT224 KOODIN KOON OPTIMOINTI

S Elektroniikan häiriökysymykset. Laboratoriotyö, kevät 2010

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

Laitteistonläheinen ohjelmointi

Älypuhelimet. Sisällysluettelo

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

Integrointialgoritmit molekyylidynamiikassa

P I C A X E O H J E L M O I N T I

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

Käyttöjärjestelmät: prosessit

Teemun juustokakku Rekisterien, välimuistin, muistin, levymuistin ja magneettinauhan nopeudet suhteutettuna juuston hakuaikaan juustokakkua tehdessä?

Nopea tiedonkeruulaitteisto radiokanavamittauksiin

S14 09 Sisäpeltorobotti AS Automaatio ja systeemitekniikan projektityöt. Antti Kulpakko, Mikko Ikonen

Kojemeteorologia. Sami Haapanala syksy Fysiikan laitos, Ilmakehätieteiden osasto

Jakso 5 Suoritin ja väylä

Moderneissa grafiikkakorteissa hyödynnetään myös samanlaista toimintamallia

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

Raspberry Pi. Yhden piirilevyn tietokone. Tässä dokumentissa kerrotaan yleistä tietoa Rasberry Pi- tietokoneesta ja. sen toiminnoista.

Jakso 5 Suoritin ja väylä

Ulkoiset mediakortit. Asiakirjan osanumero: Tässä oppaassa kerrotaan ulkoisten tallennusvälinekorttien käytöstä.

Intel Pentium Pro -prosessori. tietokonearkkitehtuurit, syksy -96 Ari Rantanen

4. Lausekielinen ohjelmointi 4.1

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

Jakso 12 Yhteenveto. Keskeiset asiat Teemu Kerola, K2000

Transkriptio:

Mikrokontrollereiden kehityksestä ja tarjonnasta. Sulautettujen järjestelmien vaatimukset ja mikrokontrollereiden valintaperusteet. Katsaus muutamiin nykyisin yleisesti käytettyihin kontrollereihin Sulautettujen järjestelmien suorittimet Sulautetut järjestelmät ovat johonkin tiettyyn tarkoitukseen räätälöityjä järjestelmiä, eivät yleiskäyttöisiä tietokoneita. Sulautetuissa järjestelmissä ohjelmisto ja laitteisto ovat kiinteässä yhteydessä toisiinsa. Nopeita, tehokkaita, tarkoituksenmukaisia erikoistyökaluja. Mikä tahansa elektroninen laite, joka sisältää mikro-ohjaimen. Ne ovat myös melkein aina reaaliaikaisia järjestelmiä. Joskus rajanveto sulautetun järjestelmän ja tietokoneen välillä on vaikeaa. Sulautetutkin monesti kuin pieniä tietokoneita. Yhä enemmän sulautettujen laitteiden täytyy kyetä kommunikoimaan toisten laitteiden ja järjestelmien kanssa ja muodostamaan myös verkkoja. Suorittimet/ Mikroprosessorit Mikroprosessorit Mikro-ohjaimet/ Mikrokontrollerit Signaaliprosessorit

Sulautettujen järjestelmien suorittimet Monet järjestelmät ovat reaktiivisia, jolloin mikro-ohjaimen on reagoitava ympäristön tapahtumiin tarkoituksenmukaisella tavalla. Tällaisia järjestelmiä ovat mm. monet automaatiojärjestelmät. On myös toisenlaisia vaatimuksia. Mikro-ohjaimen on muunnettava tulevaa signaalia halutulla tavalla (DSP-prosessorit). Digitaalinen signaaliprosessori on tarkoitettu ja optimoitu erityisesti signaalienkäsittelyyn.harvard-arkkitehtuuri ja nopea käskynsuoritus tukee reaaliaikaisten signaalien käsittelyä säänöllisesti toistuvilla algoritmeilla. Sulautettujen järjestelmien suorittimet Koska käyttökohteita on hyvin paljon, tarvitaan myös monenlaisia suorittimia. Yleisprosessorit (Intel MCS-86 /MCS-96, Motorola 680XX, Zilog, ) Mikro-ohjaimet/kontrollerit (MCS-51, AVR, PIC, ) Signaaliprosessorit. Mikrokontrolleri = pieni mikroprosessori, joka on suunniteltu erityisesti sulautettuihin järjestelmiin. Sisältää yleensä sekä ohjelma- että datamuistia ja omaa hyvät liitäntämahdollisuudet. Miten suorittimet jaetaan mikroprosessoreihin ja mikrokontrollereihin? Mikroprosessorit pöytätietokoneet, kannettavat muistinhallinta ja paljon cache-muistia järeitä 32- ja 64-bittisiä Mikrokontrollerit sulautetut järjestelmät sisältää RAM- ja ROM-muistia ja myös muita mikrotietokoneen osia 8- ja 16-bittisiä Nykyisin on yhä enemmän myös 32-bittisiä mikrokontrollereita. Motorola 68000, Intel i960, Sun Sparc, Hitachi SuperH, Advanced RISC Machine ARM, Järeiden kontrollereiden tarve johtuu paljolti viihde-elektroniikan tarpeista (videopelit, digitaalikamerat, kännykät, ) Monet nykyiset videopelikonsolit ovat tehokkaampia kuin tietokoneet jokin aika sitten).

Sulautettujen järjestelmien suorittimet New view of the 32-bit market: From left to right, the traditional embedded area, traditional DSP, merged CPU/DSP field, extended architectures with multimedia extensions. Manfred Schlett: Trends in Embedded Microprocessor Design, IEEE Computer 31(8): 44-49 (1998) Sulautettujen järjestelmien suorittimet Puolijohdetekniikka on kehittynyt valtavasti viime vuosina ja jatkaa kehitystään - Mooren laki. Kuitenkin monet varsin iäkkäätkin piiriratkaisut ovat edelleen voimissaan, 8051 jne. Sovelluksia, jotka pakottavat kehittämään prosessoreja sulautettuihin järjestelmiin: 1. Videopelikonsolit vaativat hyvää grafiikkaa 2. PDA-laitteet vaativat virtuaalimuistin käyttöä ja standardiliityntöjä 3. Kännykät ja kommunikaattorit vaativat äärimmäisen pientä virrankulutusta, tehokasta laskentaa ja digitaalista signaalinkäsittelyä. 4. Modeemit, faksit ja printterit vaativat halpoja komponentteja 5. Lisälaitteet ja DVD vaativat tiukkaa integrointia 6. Digitaalikamerat vaativat kuvankäsittelykykyä ja muuta laskentaa.

Järjestelmän vaatimukset ja suorittimen valintakriteerit Miten tehdä vaatimusmäärittelyt ja miten valita oikea kontrolleri? Kriteerejä esim. Paljonko tietoa on käsiteltävä, muistinkulutus Laskentakapasiteetti Tehonkulutus, voidaanko ja pitääkö käyttää paristoilla ja mikä on käyttöjännite? Luotettavuus Vasteajat, reaaliaikaisuus Valmistusmäärät vaikuttavat komponenttivalintoihin. Kontrollerin kapasiteetti versus oheiskomponentit Paljonko ja mitä liitäntöjä tarvitaan ulkomaailmaan (I/O, sarjaliikenne, rf, keskeytyspalvelut, ) Hinta (laitteen kustannukset suunnittelusta valmistukseen) Suorittimen valintakriteerit - Tehokkuus Suorittimen nopeus ja laskentakapasiteetti voi olla kriittinen tekijä järjestelmän toiminnan kannalta, mutta ei ole ainoa systeemin nopeuteen vaikuttava asia. Oheislaitteiden (liitäntäpiirit, lisämuisti ym.) toiminta ja hitaus on otettava myös huomioon. Sovelluksen tarvitsema suorituskyky on selvitettävä. Suorittimen nopeusvaatimus katsotaan pahimman tapauksen mukaan eli palvelun pitää olla riittävän nopeaa, vaikka kaikki keskeytykset sattuisivat yhtä aikaa. Käytettävä kide ei suoraan kerro suorittimen nopeutta. Suurempi kellotaajuus lisää tehokkuutta, mutta samalla myös tehonkulutus kasvaa (myös lämpö- ym. muut säteilyongelmat). Rekistereiden ja väylän leveys vaikuttaa suorittimen tehokkuuteen. (piirejä saatavissa esim. 4-, 8-, 16- ja 32-bittisinä). Rekistereiden määrä ja käskykanta vaikuttavat tehokkuuteen. Käskykanta saattaa hidastaa ohjelman suoritusta (esim. kertolaskukäskyt on suoritettava silmukassa tai muuta vastaavaa) Suorittimen arkkitehtuurissa voi olla erikoisominaisuuksia, kuten nopeat laskutoimitukset mutta samalla hidas muistinkäsittely. Tietoväylän ja rekisterien rakenne vaikuttavat kontrollerin/prosessorin tehokkuuteen

Suorittimen valintakriteerit - Muisti Tarvittava muistin määrä, sekä ohjelma- että datamuisti, olisi hyvä voida arvioida jotakuinkin oikein. Liian vähäinen muisti aiheuttaa ongelmia (voi jopa pakottaa suunnittelemaan laitteen uudelleen), mutta ylimääräinen muisti taas lisää kustannuksia. RAM (työmuisti) Tarve = Muuttujien tarvitsema tila + käytetyt puskurit (FIFO) + pino. Voidaan tarvittaessa käyttää ulkoista muistia, mutta sen käyttö voi olla ongelmallisempaa kuin kontrollerin oman muistin käyttö. Vie vähintään I/O-linjoja. Kontrollerin rekisterit voivat myös kuluttaa RAM:ia, joka on otettava huomioon. Kaikki ohjelmointityökalut eivät ole samanlaisia. ROM (ohjelmamuisti) Tarve = ohjelma + ROM-muistissa olevat taulukot, muistirakenteet. Alle 80%:n muistisääntö. Olisi hyvä jättää tilaa muutoksille ja lisäyksille. Riippuu kääntäjästä kuinka tehokasta konekielistä koodia saadaan aikaiseksi. Lausekieliset kääntäjät voivat haaskata muistia toisaalta assembler-ohjelmointi on hidasta.. Optimointi. Ohjelmointikielen ja ympäristön valinnalla voi olla suuri vaikutus lopputulokseen. Liukulukuvaatimus? Suorittimen valintakriteerit - Liitännät Mikrokontrollereissa on yleensä paljon ulkoisia liitäntämahdollisuuksia. Eroja on kuitenkin sekä porttien määrässä että porttityypeissä. Pitää siis miettiä, millaisia liityntöjä tarvitaan. Montako keskeytyslinjaa? Tai ehkä useampi sarjaliikenneportti? Ja paljonko virtaa voidaan I/O-linjan kautta oheislaitteelle syöttää? Ennen suorittimen valintaa kannattaa tutkia datasheetit tarkkaan, koska eri tiloissa prosessorin/kontrollerin liityntöjen toimintaa voi olla rajoitettu. Valmistaja Intel Microchip Microchip Zilog Signetics/Philips Atmel suoritin 8031/8051 family PIC18C601 PIC10C206 Z8 (Z86E40) 83C751 ATtiny11 I/O lkm 32 26 4 32 19 6 Esimerkkejä I/O-linjojen määrästä

Suorittimen valintakriteerit - Reaaliaikaisuus Sulautetut järjestelmät yleensäkin on tarkoitettu vastaamaan nopeasti ympäristön herätteisiin. Jotkin sovellukset vaativat kuitenkin erikoishuomiota. Tällöin vasteen on tultava tietyn ajan kuluessa riippumatta suorittimen sen hetkisestä tilasta tai toiminnasta (esim. ABSjarrut). Prosessoritekniikan kehitys mahdollistaa yhä suurempien kellotaajuuksien käytön, mutta tämä ei vielä takaa reaaliaikaisuutta. Reaaliaikajärjestelmissä kullakin prosessilla on omat aikavaatimuksensa ja tämä tarkoittaa laitteiden ja ohjelmistojen ennustettavaa käyttäytymistä (esim. välimuistien käyttö voi olla ongelmallista). Reaaliaikaiset palvelut taataankin paljolti oikealla ohjelmoinnilla ja tarvittaessa sopivalla käyttöjärjestelmällä (RTOS). Suorittimen valintakriteerit - Keskeytykset Suorittimien keskeytysmahdollisuuksissa on eroja. Paljonko keskeytyspalveluita tarvitaan? Pitääkö keskeytykset voida priorisoida? Mistä keskeytys aktivoituu, reunasta vai tasosta? Voiko ohjelmoida? Keskeytysten käyttö pitää olla perusteltua, koska niiden käsittely aiheuttaa poikkeaman normaalista ohjelman ajosta ( ja voi joskus johtaa hankaliin virheisiin). Kuvassa Atmelin AtMega128

Suorittimen valintakriteerit Kehitysympäristö Suunnittelukustannusten osuus lopputuotteesta voi olla merkittävä hyvillä kehitystyökaluilla voidaan saada aikaan merkittäviä säästöjä. Kynnys suorittimen vaihtoon on korkea, jos se tarkoittaa uuden ohjelmointikielen tai kehitysympäristön opettelua vanhat suorittimet pitävät pitkään pintansa siitä huolimatta, että parempia olisi saatavilla. Vanhoista piireistä tulee myös uusia päivityksiä, jotka ovat yhteensopivia vanhojen versioiden kanssa, mutta joissa on integroituna uusia oheispiirejä ja käskyjä. Mitä yleisempi suoritin on kyseessä ja mitä enemmän sillä on valmistajia, sitä helpommin sille löytyy hyviä kehitysympäristöjä ja myös valmista koodia, kirjastoja, jne. Suorittimen valintakriteerit Lisäksi Lisäksi laitteen/järjestelmän käyttötarkoitus sanelee pitkälle sen, millainen suoritin on käyttökelpoisin. Suurissa sarjoissa ehkä kovon puutteita kannattaa korjata ohjelmallisesti, koska ohjelma on kertakustannus, mutta suoritin on oltava joka laitteessa. Laitteen elinkaari ratkaisee, pitääkö valita uudelleenohjelmoitava suoritin. Käyttöympäristö sanelee tarvittavan robustisuuden (esim. lämpötila). Onko piirin saatavuus varmaa koko elinkaaren ajan (kakkosvalmistaja(t))? Onko piiri ennestään tuttu tai opitaanko se ja kehitysympäristö helposti?

ARM ARM 80-luvun alussa Acorn Computer Ltd:llä alettiin kehittää uutta nopeaa prosessoria, jonka mallina oli Berkeley RISC-prosessori. Vuonna 1985 valmistui ensimmäinen ARM-prosessorin prototyyppi (Acorn RISC Machine) VLSI Technogyn valmistamana. Advanced RISC Machines Ltd. perustettiin 1990 (omistajat Acorn, Apple ja VLSI). Se suunnittelee ja lisensioi kehittämiään RISCprosessoriytimiä sekä niihin liittyvää muuta teknologiaa ja ohjelmistoja. ARM on pitkäikäisimpiä RISC-arkkitehtuureja yksi lisenssoiduimpia prosessoriytimiä. Pienen tehonkulutuksen ansiosta sitä suositaan nykyisin varsinkin kämmenmikrojen, matkapuhelimien ja sulautettujen järjestelmien suorittimissa. ARM on nykyään maailman eniten valmistettu 32-bittinen suoritinarkkitehtuuri ohittaen mm. PC-laitteissa käytettävät x86- suorittimet.

ARM Prosessoriytimiä: ARM1 / v1, ARM2 / v2, ARM2aS, ARM3 / v2a, ARM6, ARM600, ARM610 / v3 ARM7, ARM700, ARM710 / v3 ARM7TDMI, ARM710T, ARM720T, ARM740T / v4t StrongARM, ARM8, ARM810 / v4 ARM9TDMI, ARM920T, ARM940T / v4t ARM9E-S / v5te ARM10TDMI, ARM1020E / v5te ARM ARM-mikro-ohjaimet on jaettu kahdeksaan eri versioita sisältävään tuoteperheeseen, joiden ominaisuudet vaihtelevat käyttötarkoituksen mukaan. Käyttötarkoituksesta riippuen voi mikro-ohjain sisältää esimerkiksi DSPominaisuuksia. ARM:iin on olemassa lukuisia erilaisia käyttöjärjestelmiä kuten esimerkiksi Symbian, Embedded Linux, Windows CE, FreeRTOS ja monia muita.

ARM 32-bittinen RISC-prosessoriydin Voidaan käyttää eri tiloja, jotka vaikuttavat käytössä oleviin toimintoihin ja rekistereihin (esim. 16-bittinen Thumb-tila) Yhteensä 37 rekisteriä (31 yleisrekisteriä ja 6 statusrekisteriä). Prosessorin tila määrittää, mitkä rekisterit kulloinkin ovat käytössä. ARMtilassa käytössä on 16 yleisrekisteriä ja yksi tai kaksi status rekisteriä. Liukuhihnalla nopeutetaan käskyjen suoritusta (3, 5 ja 6-tilainen liukuhihna) Välimuistitettu (riippuen toteutuksesta) Väylältään Von Neumann-tyyppinen 8 / 16 / 32 -bittiset tietotyypit 7 toimintatilaa (usr, fiq, irq, svc, abt, sys, und) Yksinkertainen rakenne -> hyvä nopeus / tehonkulutus ARM

ARM ARM7:n toimintatilat: User : Normaali ARM-sovellusten suoritustila. FIQ : Tiedonsiirtotila IRQ : Käytetään yleisten keskeytyksien palvelemiseen Supervisor : Suojattu tila käyttöjärjestelmää varten Abort mode : Valitaan datan tai käskyn haun keskeytyessä System : Käyttöjärjestelmän etuoikeus -tila käyttäjälle Undefined : Valitaan kun kohdataan määrittelemätön käsky CPSR PIC

PIC PIC on Microchip Technologyn 8-bittinen RISC-suoritinperhe, jota on kehitetty 1990-luvulta alkaen. PIC-piirit ovat Harvard-arkkitehtuurin mukaisia eli ohjelma- ja käyttömuisteille on omat väylänsä. Tämä tarkoittaa sitä, että käskykoodia voidaan hakea samanaikaisesti kun edellisen käskyn tuloksia viedään muistiin. Käskyjen ja käyttömuistin leveydet voivat myös poiketa toisistaan. PIC-perheen mikro-ohjaimet voidaan jakaa ryhmiin käskysanan leveyden perusteella. Käskysana voi olla 12-, 14- tai 16-bittinen. Ohjelmamuistina helposti uudelleenohjelmoitava EEPROM- tai Flashmuisti (saatavissa myös ROM ja EPROM-muisteilla). Edullinen. Käskykanta PIC:ssä on yksinkertainen ja konekielinen ohjelmointi on melko helppoa. Käskyt mahtuvat yhteen sanaan ja ne myös yleensä suoritetaan yhden jakson aikana. PIC Pinon käsittelykäskyt puuttuvat kokonaan. Aliohjelmakutsun yhteydessä oleva paluosoitteen talletus ja palautus hoidetaan automaattisesti. Energiankulutukseltaan ne ovat edullisia ja alhainen käyttöjännite sopii hyvin paristokäyttöisin laitteisiin. I/O-linjat kestävät kuormitusta hyvin. PIC-perheeseen kuuluu monenlaisia piirejä, joiden muistien rakenne poikkeaa toisistaan. PIC-piireistä löytyy A/D-muuntimia, PWM-lähtöjä (Pulse Width Modulation), LCD-näytön ohjaimia, analogisia vertailijoita. Koteloinniltaan piirejä on monenlaisia aina 6-jalkaisesta 80- jalkaiseen koteloon.

PIC PIC Baseline Product Architecture (PIC10F-piirit ja piirejä PIC12- and PIC16-perheistä) Ominaisuudet: Vähän liitäntöjä ja pieni kotelo Flash-ohjelmamuisti Alhainen virrankulutus Edullinen Helppo käytettävys

PIC Mid-range Product Architecture (piirejä PIC12- and PIC16-perheistä) Ominaisuudet: Laaja piirivalikoima (8:sta 64:ään jalkaan) Flash-ohjelmamuisti Alhainen virrankulutus Paljon oheistoimintoja (USB, SPI, I2C, USART, LCD, A/D-muuntimet) 5 MIPS suorituskyky Hyvä hinta/suorituskykysuhde PIC High Performance Features (PIC18) Ominaisuudet: Laaja piirivalikoima 18:sta 80:een jalkaan) Flash-ohjelmamuisti Alhainen virrankulutus Ohjelmamuistia aina 2Mbytes asti 10 MIPS suorituskyky 8x8 kovokertoja Edistykselliset tiedonsiirto-ominaisuudet ja protokollat (CAN, USB, TCP/IP)

PIC PIC10F200 PIC10F200/202/204/206 Data Sheet 6-Pin, 8-Bit Flash Microcontrollers Yksinkertainen 6-nastainen mikropiiri. Samoja liitäntöjä käytetään useisiin eri tarkoituksiin jalkojen lukumäärä pieni. Samaa nastaa voidaan käyttää esim. I/O:na, komparaattorin sisääntulona tai ohjelmointiin. Piirissä on sisäinen 4MHz:n oskillaattori. Linjojen kuormitettavuus 25mA. Lepotilassa virrankulutus 100nA. 12-bittiset käskyt ja 8-bittinen dataväylä. Piirissä on myös timer ja watchdog. Sopii mainiosti paristokäyttöisiin laitteisiin, esim. kaukosäätimiin. Program Memory Type Program Memory Size (Kbytes) RAM (bytes) Data EEPROM (bytes) I/O Packages Standard Flash 0.375 16 0 4 2x3 DFN, SOT-23, 8p DIP PIC

PIC PIC18C242 PIC18CXX2 Data Sheet High Performance Microcontrollers with 10-bit A/D Ominaisuuksia mm. Liitännän kuormitettavuus 25mA 3 ulkoista keskeytystä, keskeytykset voidaan priorisoida 4 timeria PWM-liitännät SPI ja I²C USART PIC

AVR Advanced Virtual RISC AVR AVR on Atmelin RISC-tyyppinen mikroprosessoriperhe, joka sisältää kymmeniä erilaisia 8-bittisiä mikrokontrollereja. Atmel julkaisi ensimmäisen AVR-mikro-ohjaimensa 1997. Piiri suunniteltiin alun perin Norjassa Trondheimin yliopistossa eikä se perustunut mihinkään aikaisempaan piiriin. RISC-tyyppisinä ne on suunniteltu suorittamaan nopeasti rajoitetun käskykannan ohjelmia. Monet käskyt voidaan ajaa yhdessä kellojaksossa (esim. 8MHz:n kiteellä varustettu suoritin voisi suorittaa lähes 8 miljoonaa käskyä sekunnissa). Sen arkkitehtuuri on pyritty suunnittelemaan erityisesti c- kielistä ohjelmointia varten (rekisterit & käskyt). AVR mikrokontrollerit jaetaan kolmeen ryhmään niiden sisältämien ominaisuuksien ja muistin määrän mukaan: ATmega / erittäin monipuolisin ominaisuuksin varustettuja AT90S-sarja ATTiny / pieniä, pienitehoisia ja vähän ominaisuuksia omaavia

AVR Kaikissa AVR-mikrokontrollereissa on flash-ohjelmamuistia, SRAM-käyttömuistia (pienimpiä versioita lukuun ottamatta), sekä useita kaksisuuntaisia I/O väyliä. Jotkin kontrollerit sisältävät myös pysyvää EEPROMkäyttömuistia. Joissakin kontrollereissa data- ja osoiteväylät on tuotu piirin ulkoisiin nastoihin, joten lisä-sram -muistin liittäminen on mahdollista. Muita ominaisuuksia ovat esimerkiksi sisäinen kellooskillaattori, ajastimet, keskeytysohjaimet, sarjaliikennepiiri (UART), SPI, io-porttien ylösvetovastukset, taajuusmodulaattori (PWM), AD-muunnin (ADC), analoginen vertailija ja vahtikoira-ajastin. Uusimmista mega-sarjan piireistä löytyvät LCD-näytönohjain sekä CAN- ja USB-väylänohjaimet. AVR Kellotaajuus on yleensä suurimmillaan 16 20 MHz. Käskyt ovat 16-bittisiä ja siten tehokkaita ja dataa käsitellään kahdeksan bitin tavuina. Kaikki 32 yleisrekisteriä toimivat ALUn (Arithmetic Logic Unit) kanssa yhdessä kuten akkurekisteri perinteisissä prosessoreissa. Yhteensä 32 akkua merkitsee sitä, että datan manipulointi on tehokasta, sillä käsiteltävää tietoa ei tarvitse jatkuvasti siirrellä rekisterien ja muistin välillä kuten tapahtuu CISC-ohjaimissa. Piiriperheestä löytyy paljon muistia sisältäviä piirejä eli ehkä hidasta ulkoista muistia ei laitteessa tarvita. Kaikki ohjaimet ovat myös ohjelmoitavissa erilaisiin virransäästötiloihin, joten paristokäyttökin on mahdollista.

AVR AVR-arkkitehtuuri yleiskuva Perheen piirit eivät sisällä aina välttämättä kaikkia lohkoja. Kaikissa piireissä on flashohjelmamuistia ja yleensä myös EEPROM-muistia. Piirin ohjelmointi helppoa ISP-väylän kautta. AVR Muita ominaisuuksia I/O-liitäntöjen määrä suurimmissa piireissä jopa 54, pienimmässä vain muutamia. Aina vähintään yksi laskuri. Analoginen vertailija (analog comparator) kykenee vertailemaan tuloliitäntöjen potentiaaleja keskenään. Watchdog lähes kaikissa. BOD-yksiköllä voidaan valvoa käyttöjännitettä. Testaus mahdollista JTAG-liitännän avulla. RTC-yksikköön voidaan kytkeä erillinen kide, jolloin ajastin toimii erillisenä reaaliaikakellona. Tällaista voidaan käyttää esim. herätettäessä kontrolleri syvästä unesta virransäästötilassa. 10-bittinen A/D-muunnin on myös usemmissa AVRkontrollereissa.

AVR CPU Kaikissa perheen piireissä sama ydin (CPU core). CPU hakee laskutoimitukseen osallistuvien operandien tiedot, suorittaa laskutoimituksen ja sijoittaa tuloksen rekisteriin yhdellä kellojaksolla. ALU laskee kahden rekisterin tai rekisterin ja vakion kanssa. Aliohjelmakutsun yhteydessä vain paluuosoite automaattisesti pinoon nopeuttaa suoritusta (ohjelmoija pinoaa vain välttämättömän). AVR ATtiny11 www.atmel.com

AVR ATMega128 www.atmel.com MCS-51 kontrolleriperhe 8051 on Intelin vuonna 1981 julkaisema, valmistama ja markkinoima. Nykyisin MCS-51 -mikrokontrolleriperheeseen kuuluu paljon piirejä ja se on edelleen maailman käytetyimpiä. Perheen piirit ovat myös edullisia, ne ovat tuttuja suurelle osalle suunnittelijoista ja niille löytyy hyviä kehitysalustoja. Löytyy paljon myös muuta suunnittelua tukevaa materiaalia kirjallisuudesta, netistä ja muualta. Lisenssivalmistajia (Siemens, Advanced Micro Devices, Fujitsu, Philips, Dallas, ) on monia ja tämä takaa piirin hyvän saatavuuden. Muiden valmistajien piirien on oltava 8051-yhteensopiva, jolloin samat ohjelmat toimivat kaikkien valmistajien piireissä. Laskentakapasiteetiltaan perheen piirit ovat monesti sopivia sulautettujen järjestelmien suunnitteluun. Piiriperheen ensimmäinen ja lippulaiva on 8051 ja monesti puhutaan vain 8051:sta, kun tarkoitetaan piiriperhettä. Valmistajat käyttävät 8051:stä omia piiritunnuksiaan. Perheen piirit poikkeavat toisistaan piirille integroitujen ROM-, EPROMja RAM-muistien määrän ja tyypin perusteella. Myös esim. ajastimissa ja piirien nopeudessa on eroja.

MCS-51 kontrolleriperhe Alun perin MCS-51 kontrolleriperheeseen kuuluivat seuraavat piirit: 8051 sisäistä ROM-muistia 4KB 8751 sisäistä EPROM-muistia 4KB 8031 ei lainkaan sisäistä ohjelmamuistia Erilaisista ohjelmamuisteista huolimatta piirit ovat muilta ominaisuuksiltaan keskenään samanlaisia sisältäen CPUn, kellooskillaattorin, 128 tavua RAM-muistia, liitännät ulkomaailmaan, kaksi ajastin/laskuria ja keskeytysohjaimen. Perusversioiden lisäksi versioissa 8052, 8752 ja 8032 oli isompi RAMmuisti (256 tavua), lisälaskuri ja piireissä 8052 ja 8752 ohjelmamuistia oli kaksinkertaisesti. MCS-51 kontrolleriperhe Piirimuunnokset 8051:stä on olemassa paljon (yli 1100 ) muunnoksia useilta eri valmistajilta (55). Yleensä ne ovat yhteensopivia ja niissä voi ajaa samoja ohjelmia. Näin ei kuitenkaan aina ole. Liitäntöjä ulkomaailmaan saattaa olla enemmän tai niissä on lisäominaisuuksia, kuten A/D-muuntimia, watchdog, komparaatoreita jne. Myös perusrekisterirakennetta on saatettu muuttaa. Tällä kurssilla käydään perus-8051:n lisäksi läpi Chipconin piiriä CC2430, joka on markkinoiden ensimmäinen IEEE 802.15.4 standardin toteuttava yhden piirin ratkaisu (System-On-Chip). Ytimenä tällä piirillä on 32 MHz:n 8051. Piirille on integroitu radiopiirin (MAC+PHY) lisäksi paljon muitakin ominaisuuksia, kuten 8K SRAM-muisti, jännitetason mittaus, lämpötila-anturi ja ohjelmoitava watchdog. Piiristä löytyy data sheetit ym. tietoa osoitteesta www.chipcon.com.

8051 - Perustietoja ROM-muistia 4K RAM-muistia 128 tavua Neljä 8-bittistä I/O-porttia Kaksi 16-bittistä timeria Sarjaportti Mahdollisuus osoittaa 64K ulkoista ohjelmamuistia Mahdollisuus osoittaa 64K ulkoista datamuistia Boolean-prosessori 210 bittirekisteriä 4µs kerto-/jakolaskutoimitus 8051 lohkokaavio

8051 pohjainen systeemipiiri CC2430 DSPprosessoreista

DSP Digitaalinen signaaliprosessori on mikroprosessori, joka on tarkoitettu erityisesti signaalikäsittelyyn ja eroaa siksi hiukan muista prosessoreista. Niissä on erilainen käskykanta, esim. suodatukseen löytyy erikoiskäskyjä. Tyypillisiä tehtäviä DSP:lle ovat IIR/FIR suotimet, FFT-muunnos, konvoluutiokoodaus ja virheen tunnistusalgoritmit. Tyypillinen käyttöympäristö on kännykkä. Suoritettavat algoritmit vaativat yleensä: Tehokasta laskentaa. Rekisterirakenne on erityisesti laskentaa varten suunniteltu (akku, siirtorekisterit, ) Tehokasta tietojen siirtoa muistin ja rekistereiden välillä Reaaliaikavaatimusten huomioimista. Kaikki sovellukset eivät vaadi reaaliaikaista signaalinkäsittelyä, mutta esim. kännykässä tai vihdeelektroniikassa viiveitä ei voi yleensä sallia. Signaalinkäsittelyrealiteettien huomioimista (ylivuodot, kohina, ) DSP DSP-tekniikan kehitys Ensimmäinen signaaliprosessori kehitettiin 1970-luvun lopussa. DSP-tekniikka on tuonut monia parannnuksia analogiasignaalin käsittelyyn. Samalla yleiskäyttöisellä piirillä voidaan ohjelmaa muuttamalla käsitellä useita signaaleja. Sen avulla on voitu vähentää erilliskomponentteja (esim. puhelimen kehitys) ja tuote saadaan samalla pienempään tilaan. Se helpottaa laitesuunnittelua myös siksi, että ohjelmistoa voidaan testata simuloinnein ja emuloinnen jo ennen varsinaista fyysistä protoa. Monesti myös lopputuotteen hinta saadaan DSP-tekniikalla edullisemmaksi (tapauskohtaista). DSP-prosessorin uudellenohjelmoitavuus on tärkeä etu kehitysvaiheessa!

DSP Nykyisin on alettu yhdistää signaaliprosessori ja mikro-ohjain samalle piirille. Tämä yksinkertaistaa laitesuunnittelua ja helpottaa myös ohjelmointia, koska ei tarvita kahta erillistä ohjelmistoa. Esimerkkejä tällaisista piireistä ovat Texas Instrumentsin TMS320C20X, Motorolan 68HC16 ja DSP56800 sekä Hitachin Super H8. Aivan kaikkeen ei DSP-prosessoreistakaan vielä ole. On joitakin sovelluksia, joihin kaistanleveys tai suorittimen nopeus ei vielä riitä. Sovelluksiin, jotka vaativat erityisen nopeaa signaalinkäsittelyä, voidaan yleiskäyttöisen signaaliprosessorin sijasta toteuttaa digitaalisilla piireillä, jotka on ohjelmoitu piiritasolle (esim. konvoluutiokoodaus viterbi puhelinlaitteissa). Tällainen piiri ei kuitenkaan ole yleiskäyttöinen. DSP Signaaliprosessoreissa käytetään yleensä liukuhihnaa, joka voi olla jopa 10-tasoinen ja nopeuttaa huomattavasti käskyjen suorittamista. Esim. käskyn suorituksen 4 tyypillistä vaihetta 1) Käskyn haku muistista (fetch) 2) Käskyn tulkinta (decode) 3) Datan luku ja kirjoitus (data read/write) 4) Suoritus ja tulosten talletus rekistereihin

DSP Erilaiset suodatukset ovat signaalinkäsittelyssä perusoperaatioita ja DSP-prosessorin on kyettävä suoritumaan näissä tarvittavista laskutoimituksista tehokkaasti, esim. kertolasku + summaus eli MAC (multiply-accumulate), yhdessä kellojaksossa. DSP-prosessoreissa yleensä käytettävä Harvard-arkkitehtuuri kykenee hakemaan tarvittavat operandit yhtä aikaa käskyjen suorituksen kanssa. Muistinkäsittelyyn on olemassa erikoisosoitusmuotoja, joilla tyypillisiä algoritmejä voidaan suorittaa nopeammin. Huolimatta c-kääntäjien optimointimahdollisuuksista, DSP-koodia joudutaan optimoimaan usein konekielitasolla. Käskykanta DSP-prosessoreissa poikkeaa tavallisista prosessoreista ja on vaikeampaa. Usein käytettävissä on simulaattori, jolla algoritmin implementointia voidaan testata ja prosessorin sisäistä toimintaa seurata. DSP-prosessorit jaetaan kokonaisluku- ja liukulukuprosessoreihin (fixed point / floating point). DSP Fixed point Edullisia Pieni tehonkulutus Käsiteltävät luvut joko murtolukuja (fractional) välillä -1 1 tai kokonaislukuja (integer) joko 0 65535 tai -32768 32767. Hankalampia ohjelmoida. Laskutoimituksissa on huomioitava käytettävissä oleva lukualue (dynamic range). Lukualueen ylityksiä ei saisi tapahtua, mutta toisaalta laskentatarkkuus kärsii liian pienestä dynamiikasta. Skaalaus / normalisointi yleensä välttämätöntä.

DSP Floating point Kalliita Kuluttavat enemmän tehoa Hitaampia kuin fixed point prosessorit Helpompia ohjelmoida. Yleensä käytetään standardin IEEE 754 mukaista lukuesitystä, jossa luvussa on merkkibitti, mantissa ja eksponentti. DSP Käskykanta DSP-prosessoreissa on erikoiskäskyjä, jotka helpottavat signaalinkäsittelyalgoritmien toteuttamista. Käskykanta heijastelee laitteistorakennetta. Prosessorin arkkitehtuuri määrittelee mahdolliset operaatiot ja käskykanta tukee näiden operaatioiden suorittamista. Joissakin prosessoreissa on erikoisia muistinhakuja, esim. yhdellä käskyllä voidaan sekä ladata operandi-rekisteri datamuistista ja kopioida sama arvo seuraavaan muistipaikkaan. Silmukoiden tekeminen tehokasta. Viivästetyt hyppykäskyt ja ehdolliset hyppykäskyt mahdollisia. Laaja käskykanta ei kerro kaikkea prosessorin käyttökelpoisuudesta.

DSP Texas Instruments: TMS320C28x Yhdistetty DSP-prosessori ja mikrokontrolleri Ominaisuuksia: 32-bittinen DSP-ydin (fixed-point) 60-150 MIPS Flash: 32KB 235KB RAM: 12 KB 36 K PWM A/D-muuntimia SPI CAN I²C C280xx Lähteitä, linkkejä ja hyviä opuksia Dhananjay V. Garde, Programming and Customizing the AVR Microcontroller, McGraw-Hill. Jari Koskinen, Mikrotietokonetekniikka Sulautetut järjestelmät, Otava Stuart R. Ball, Embedded Microprocessor Systems: Real World Design, Elsevier. Jussi Terkola, Mikko Kärki, Tutkimus ARM-mikro-ohjaimesta, kehittaminen.turkuamk.fi/.../2005/tutkimuss02/ryhma5/tutkimusraportti_arm-mikroohjaimesta_versio_1_0.pdf Martin Trevor, An Introduction to the ARM 7 Architecture, CEng, MIEE Pentti Vahtera: AVR sulauttaa bitit, PROSESSORI 4 2006 http://www.arm.com http://www.microchip.com http://www.atmel.com http://www.ti.com