AS-74.3135 Servotekniikka Seminaariesityksen kirjallinen versio, mikrokontrollerit



Samankaltaiset tiedostot
Mikrokontrollerit. Mikrokontrolleri

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

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

Kontrollerin tehonsäätö

Arduino ohjelmistokehitys

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

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

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

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

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

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

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

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

AS Automaatio- ja systeemitekniikan projektityöt

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

ELEC-A4010 Sähköpaja Arduinon ohjelmointi. Peter Kronström

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

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

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

TIES530 TIES530 PROSESSORIT/KONTROLLERIT

Mikro-ohjain µc harjoitukset - yleisohje

ELEC-C5070 Elektroniikkapaja (5 op)

ROSSI-AVR Versio 1.1, päivitetty

A11-02 Infrapunasuodinautomatiikka kameralle

Suurikokoiset LCD kosketusnäytöt HUMAN TOUCH

OMNIA OPINNÄYTETYÖ AMMATTIOPISTO. Diginoppa ICTP09SLG OMNIAN AMMATTIOPISTO

Ohjelmistoradio. Mikä se on:

Yleinen arkkitehtuuri

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

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

6.3. AVR_rauta. EEPROM-muisti pva

ETS5 Sulautettu Älykäs Langaton. KNX- Partnerpäivä Micael Forsstedt

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

SaSun VK1-tenttikysymyksiä 2019 Enso Ikonen, Älykkäät koneet ja järjestelmät (IMS),

Tietokoneen rakenne: Harjoitustyö. Motorola MC prosessori

Inputs: b; x= b 010. x=0. Elektroniikkajärjestelmät ETT_2068

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

Säätöjen peruskäsitteet ja periaatteet parempaan hallintaan. BAFF-seminaari Olli Jalonen EVTEK 1

Säätöventtiilit. Thermotech lattialämmitysjärjestelmä EDUT TIEDOT

Ohjelmistopäivitysohje

Elektroninen ohjaus helposti

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

BL40A1810 Mikroprosessorit, harjoitus 1

Concurrency - Rinnakkaisuus. Group: 9 Joni Laine Juho Vähätalo

Successive approximation AD-muunnin

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

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

7.3. Oheisrautaa. DS

Signaalien datamuunnokset. Näytteenotto ja pito -piirit

Elektroniikkalajin semifinaalitehtävien kuvaukset

Ohjeita Siemens Step7, Omron CX Programmer käyttöön

Sulautetut järjestelmät

A15 - Inertial Measurement Unit

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

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

A/D-muuntimia. Flash ADC

ELEKTRONISET TOIMINNOT

S09 04 Kohteiden tunnistaminen 3D datasta

DumpDbox-ohjelmiston asennus- ja käyttöohjeet Sisällys

ELEC-C5070 Elektroniikkapaja (5 op)

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

Säätötekniikkaa. Säätöongelma: Hae (mahdollisesti ulostulon avulla) ohjaus, joka saa systeemin toimimaan halutulla tavalla

Silent Gliss 9020/21, 9040/41 ja 5091 moottorit. Uusi moottorisukupolvi

KUINKA DIGITAALISET RADIOPUHELIMET PARANTAVAT JA NOPEUTTAVAT TURVAVIESTINTÄÄ?

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

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

VLT 6000 HVAC vakiopaineen säädössä ja paine-erosäädössä. (MBS 3000, 0-10V)

Kontrollilaitteet. Arsenaali

Robottialustan instrumentointi ja käyttöönotto

Rosemount 3051S sähköiset ERS-anturit

1 Asentaminen. 2 Yleistä ja simuloinnin aloitus 12/

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

MP3 Manager Software for Sony Network Walkman

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

KSFa

Digitaalinen potentiometri Catalyst CAT5401

Harjoitus (15min) Prosessia P säädetään yksikkötakaisinkytkennässä säätimellä C (s+1)(s+0.02) 50s+1

Työasema- ja palvelinarkkitehtuurit (IC130301) Apumuistit. Kiintolevyt. 5 opintopistettä. Petri Nuutinen

PRINCIPLES OF PROGRAMMING LANGUAGES - DEBUGGER

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

Sukupuu -ohjelma. Ossi Väre ( ) Joni Virtanen ( )

MicaFlex MF-PFCP Asennus- ja käyttöohje

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

PM10OUT2A-kortti. Ohje

Dell Inspiron 560/570: Tekniset tiedot

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

Asteri Vuokrankanto (Dos) Vuosipäivitys

Anturit ja Arduino. ELEC-A4010 Sähköpaja Tomi Pulli Signaalinkäsittelyn ja akustiikan laitos Mittaustekniikka

JOHDATUS ELEKTRONIIKKAAN. Oppitunti 2 Elektroniikan järjestelmät

EA Sähköiset ilmanlämmittimet

SÄÄTÖJÄRJESTELMIEN SUUNNITTELU

Algoritmit 1. Luento 3 Ti Timo Männikkö

ELM GROUP 04. Teemu Laakso Henrik Talarmo

Julkaisutiedot. Scania Diagnos & Programmer 3 versio 2.27

TKT224 KOODIN KOON OPTIMOINTI

Apuohjelmat-valikko. Paperinkäsittely. Huolto. Vianmääritys. Ylläpito. Hakemisto

11/20: Konepelti auki

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

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

Transkriptio:

AS-74.3135 Servotekniikka Seminaariesityksen kirjallinen versio, mikrokontrollerit Vesa Nikkilä 16. huhtikuuta 2012 Mikrokontrolleri on pieni tietokone, joka sisältää prosessorin eli CPU:n lisäksi ohjelmamuistia (yleensä flash tai ROM), RAM-muistia eli datamuistia ja IO-nastoja [1]. Lisäksi tärkeä ominaisuus mikrokontrollereissa on keskeytyksistä huolehtiva yksikkö. Tämä interrupt unit tarkkailee haluttuja toimintoja, jotka voivat antaa keskeytyssignaalin. Keskeytyssignaalin saatuaan mikrokontrolleri siirtyy suorittamaan ohjelmakoodia toisesta kohtaa, jossa keskeytys käsitellään. Keskeytys voi esimerkiksi olla käyttäjän näppäinpainallus. Toinen tärkeä ominaisuus useissa nykyisissä mikrokontrollereissa on ad-muunnin, joka siis muuntaa analogisen signaalin digitaaliseksi. Muunninta voidaan käyttää esimerkiksi haettaessa analoginen lämpötilasignaali anturilta. Signaali muutetaan digitaaliseksi ja prosessoidaan celsiusasteiksi. Mikrokontrollerien ja -prosessorien kehitys kulkee käsi kädessä. Ensimmäinen (yhden piirin) mikroprosessori oli Intelin julkaisema malli Intel 4004 [2]. Transistoreita, jotka oikeinohjelmoituina (ja järjestettynä) luovat halutun loogikan, tässä 4-bittisessä prosessorissa oli vain 2 300 nykyään uusimmissa prosessoreissa voi taas olla jopa yli 500 miljoonaa transistoria [2]. Ensimmäinen laajalti menestynyt mikrokontrollerisarja oli Intelin MCS-48, jolla oli jo kaupallistakin käyttöä. Esimerkiksi varhainen pelikonsoli Magnavox Odyssey 2 käytti Intelin 8048-mikrokontrolleria. Mikrokontrollereiden kehityksessä mentiin suuri askel eteenpäin 90-luvulla, kun niissä otettiin käyttöön EEPROM (electronic erasable ROM). EEPROM mahdollistaa mikrokontrollerin yksinkertaisen ja nopean uudelleenohjelmoinnin. Lyhyen ajan sisällä tuli myös flash-muisti, joka vakiintunut mikrokontrollerin ohjelmamuistina [3]. Tunnettuja mikrokontrollereiden valmistajia ovat mm. Atmel, Microchip Technology ja Texas Instruments. Mikrokontrollereiden sovellusalueet Mikrokontrolleri tarjoaa sen ominaisuuksien ansiosta erinomaisen vaihtoehdon kompleksisen logiikan toteuttamiselle. Elektroniset järjestelmät, jotka tarvitsevat tietokoneohjausta on eräs mikrokontrollereiden tärkeimmistä sovellusalueista. Tällöin puhutaan sulautetuista järjestelmistä, jossa yhdistyvät siis jokin järjestelmä (mekaaninen ja/tai elektroninen) ja tie- 1

tokoneohjaus [4]. Klassisia esimerkkejä sulautetuista järjestelmistä ovat: digitaalinen rannekello, nykyaikainen radio, mp3-soitin sekä kaukosäädin. Yleensä sulautetuissa järjestelmissä ei ole käyttöjärjestelmää, jonka päällä itse ohjelma(t) pyörivät, mutta on myös mahdollista, että järjestelmässä on jokin yksinkertainen käyttöjärjestelmä; esimerkiksi puhelimista löytyy käyttöjärjestelmä. Mikrokontrolleria voidaan käyttää myös osana suurempaa järjestelmää. Mikrokontrolleri voi siis muodostaa jonkin järjestelmän osan kanssa alijärjestelmän, joka esimerkiksi abstraktoi hankalan säädön ylemmälle tasolle, josta sitä voidaan käyttää helposti. Kuvitellaan esimerkin vuoksi vaunu, jonka päälle on kiinnitetty yhdellä vapausasteella varsi. Systeemi muodostaa näin käänteisen heilurin. Mikrokontrollerin muodostama alijärjestelmä voisi tässä esimerkissä huolehtia siitä, että varsi ei pääse kaatumaan. Alijärjestelmä ottaisi syötteekseen halutun paikan vaunulle, minkä jälkeen alijärjestelmä ajaisi vaunu oikeaan paikkaan. Näin käyttäjän ei tarvitsisi huolehtia enää järjestelmää jatkokehittäessä, siitä mitä tapahtuu pinnan alla. Ja tämä tietenkin oli vain yksi äärettömistä esimerkeistä. Mikrokontrollerilla on mahdollista toteuttaa hyvinkin hienostuneita säätimiä. Useasti käytettyjen P, PD tai PID-säätimien toteutus toteutus on mikrokontrollerilla hyvin yksinkertaista. Hienostuneempien säätöalgoritmien toteutus on myös näppärää, sillä vaadittavien elektronisten komponenttien määrä ei kasva vaikka säätöalgoritmi monimutkaistuisi kaiken tapahtuessa ohjelmallisesti; vain ohjelmakoodi kasvaa. Mikrokontrollerin ohjelmoiminen konkreettisesti tapahtuu yleensä C- tai assembly-kielellä [5]. Ohjelma täytyy siirtää mikrokontrollerin (flash)muistiin, kun ohjelma on käännetty lähdekoodista kääntäjälle. Siirto voidaan suorittaa sarjaporttia käyttämällä ja nykyään paljon käytössä olevan usb-portin kautta [6]. Usb-portin kautta tapahtuva siirto lienee suositeltavampaa, sillä sarjaportti rajoitustensa vuoksi on vanhentunut liitäntätyyppi, joka on jo poistunut tai poistumassa pc-käytöstä [7]; olisihan vaikeaa ladata ohjelma mikrokontrollerille sarjaportin kautta ilman sarjaporttia. Atmelin ATmega32-mikrokontrolleri ATmega32 on Atmelin valmistama mikrokontrolleri, ja se on hyvä esimerkki nykypäivän mikrokontrollerista. Sen prosessori on 8-bittinen, siinä on 32 kilotavua flash-muistia ohjelmalle, IO-pinnejä siitä löytyy 44, ja sen maksimi värähtelytaajuus on 16 MHz [8]. ATmega32:sta löytyy lukuisia hyödyllisiä lisätoimintoja: AD-muunnin, 1 kilotavu EEPROMmuistia, watchdog timer sekä pwm-ulostulo (eli pulse width modulation, pulssinleveys modulaatio) [8]. Watchdog timeriä voidaan käyttää järjestelmän elvyttämiseen, mikäli se on ajautunut virhetilaan. Yleensä tämä tapahtuu antamalla reset-signaali mikrokontrollerille. Pwm-ulostuloa voidaan taas esimerkiksi käyttää hyväksi säädettäessä led-valon kirkautta. ATmega32 CPU:n rekisterien leveys on siis 8 bittiä, mutta kehittyneimmillä mikrokontrollereilla se voi olla jopa 32 bittiä. Fyysisiltä mitoiltaan ATmega32 (TQFP eli thin quad flat package) on hyvin pieni: vain 12 12 millimetriä. Korkeutta sillä on 1,2 millimetriä. QFP-tyypin mikrokontrolleri on ns. s. 2

pintaliitoskompentti, jolloin piirilevyyn ei porata reikiä komponenttia varten, vaan se liitetään suoraan piirin pintaan (juottamalla) [8]. Käyttö PID-säätimenä Diskreetti PID-säädin on yleisimmin käytetty säädin teollisuudessa [9]. Osaksi tämänkin takia mikrokontrollereiden käyttö PID-säätimenä on hyvin yleistä. Esimerkkikohteita PIDsäätimelle ovat mm. moottorinohjaus, lämpötilan, virtauksen ja paineen säätö tai muiden ominaisuuksien säätö [10]. On muistettava, että säätimen digitalisointi tekee siitä tässä diskreetin. Mikrokontrollerille on helppoa asettaa näytteenottoväli käyttämällä kontrollerin sisäänrakennettuja ajastimia eli timereitä. Haluttaessa näytteenottoväli voi olla niinkin lyhyt ettei diskreetillä ja jatkuva-aikasella säätimellä ole mitään eroa. Tosin, diskreetit ominaisuudet tulevat näkyviin välttämättä säätöprobleemissa, jotka käyttäytyvät hyvin nopeasti, sillä kontrollerin kellotaajus ei ole ääretön. Atmelin diskreetin PID-säätimen esimerkissä mikrokontrolleri on ohjelmoitu C-kielellä [10]; tässä esimerkissä säätimen näytteenottovälin määrittämiseen käytetään ajastinta, joka on nimetty PID_timeriksi. Atmelin esimerkki diskreetistä PID-säätimestä Aivan aluksi säädin alustetaan kutsumalla ohjelman main()-funktiossa säätimen alustavaa Init_PID()-funktiota. Alustusfunktiolle annetaan parametreiksi, p_factor, i_factor ja d_factor, jotka määrittävät säätimen parametrit. Itse PID-säätimen implementaatio ollaan toteutettu erilliseen tiedostoon: pid.c ja sen header -tiedostoon pid.h. Säätimen kirjasto, jos näin voisi sanoa, tarjoaa kaksi funktiota käyttäjälle: alustusfunktion, sekä varsinaisen säätöfunktion PID(), joka palauttaa säätöarvon. Säätöfunktiolle luonnollisesti annetaan parametreiksi asetusarvo ja prosessin nykyinen tila. Esimerkissä on huomattavaa, että pienillä muutoksilla olisi mahdollista määrittää prosessin haluttu asetusarvo myös alustusfunktiossa. Tällöin ei asetusarvoa annettaisi säätöfunktiolle. Tämä kuitenkin rajoittaisi säätimen toimintaa, sillä asetusarvo olisi kiinteä vakio. Ohjelmassa käynnissä oleva ajastin asettaa lipukkeen PID_timer, kun näyttenottovälin määrittämä aika saavutetaan. Lipukkeen syttyessä päärutiini lukee nykyisen prosessiarvon ja kutsuu säätöfunktiota PID(), jolle toisena parametrina annettiin siis haluttu asetusarvo. Lopuksi säätöfunktio siis palauttaa säätöarvon, jonka päärutiini voi ohjata aktuaattorille. Säätöarvo voisi esimerkiksi olla moottorinnopeus. Koska mikrokontrollerilla säädin on täysin ohjelmapohjainen, niin on siihen myös helppo lisätä erikoisominaisuuksia. Kyseisessä Atmelin esimerkissä kontrollerille on toteutettu integraalitermin windup-ilmiön rajoitus. Rajoitus tapahtuu yksinkertaisesti asettamalla vakio MAX_I_TERM, joka huomioidaan säätimen implementaatiossa niin, että yksinkertainen ehtolauseke tarkistaa, ettei I-termi kasva sen yli. Myös säätimen muu lisäkehitys on helppoa; esimerkiksi näytteenottoajan ei tarvitse olla vakio vaan sitä voitaisiin muuttaa dynaamisesti. s. 3

Mikrokontrolleri vaihtoehtona Mikrokontrollerin käyttö, esimerkiksi säätimenä, ei ole pakollista. Kaikki on tietenkin mahdollista toteuttaa analogisesti. Mikrokontrollerin käyttö kuitenkin vähänkään laajemman järjestelmän toteuttamiseen on järkevää ja perusteltua. Ensinnäkin säästetään komponenttikustannuksissa, sillä iso osa analogiakomponenteista on korvattavissa vain yhdellä mikrokontrollerilla [11]. Lisäksi järjestelmä saadaan toteutettua pienempään tilaan ja siitä tulee myös kevyempi. Ja koska koko logiikka voidaan käytännössä paketoida mikrokontrollerille, on ympäröivä elektroniikkaosa yksinkertainen. Tämä lisää järjestelmän selkeyttä ja yksinkertaisuutta. Kaiken lisäksi on järjestelmää on helppoa päivittää, jos logiikkaan halutaan tehdä muutos tai korjaus. Yhteenveto Mikrokontrollerit ovat olellinen osa nykyteknologiaa; mikrokontrollereiden avulla on mahdollista toteuttaa asioita, mitä ei analogisesti ole edes käytännösä mahdollista toteuttaa. Mikrokontrolleri on ainutlaatuinen komponentti, sillä nykyaikaisesta kontrollerista löytyy itsestään suorittimen lisäksi kaikki oleellinen: ohjelmamuisti, IO-pinnit, (staattinen) RAMmuisti, keskeytyskäsittelijä, ad-muunnin ja paljon muuta tulevaisuudessa vielä enemmän. Saattaakin tuntua hassulta, että tämä kaikki mahtuu sentti kertaa sentti kokoiselle alueelle, mutta uskottava se on. Hintaa tavallisesti mikrokontrollerilla on noin yksi euro. Juuri näiden ominaisuuksien ansiosta mikrokontrolleri on erittäin geneerinen komponentti ja se soveltuu kaikkeen. s. 4

Viitteet [1] Wikipedian artikkeli mikrokontrolleista http://en.wikipedia.org/wiki/microcontroller [2] Intelin kotisivut Intel Museum, Online Exhibits, The Intel 4004 http://www.intel.com/about/companyinfo/museum/exhibits/4004/index.htm [3] Atmelin kotisivut Atmel s Self-Programming Flash Microcontrollers (pdf) http://www.atmel.com/dyn/resources/prod_documents/doc2464.pdf [4] Wikipedian artikkeli sulautetuista järjestelmistä http://en.wikipedia.org/wiki/embedded_system [5] C kääntäjä Atmelin AVR mikrokontrollereille http://www.nongnu.org/avr-libc/ [6] Artikkeli Atmelin AVR mikrokontrollereiden ohjelmoinnista http://www.triplespark.net/elec/pdev/avr/ [7] Wikipedian artikkeli sarjaportista. Alaotsikko limitations of the standard http://en.wikipedia.org/wiki/rs-232#limitations_of_the_standard [8] Atmelin kotisivut ATmega32(L) Summary (pdf) http://www.atmel.com/images/2503s.pdf [9] Digitaalinen säätö, AS-74.2112: luentokalvot 9 (Chap 6), p. 59 (pdf) https://noppa.aalto.fi/noppa/kurssi/as-74.2112/luennot/as-74_2112_chap_ 6 print_.pdf [10] Atmelin kotisivut AVR221: Discrete PID controller (pdf) www.atmel.com/images/doc2558.pdf [11] University of California, Berkeley Lab 7: Introduction to Microcontrollers (pdf) www-inst.eecs.berkeley.edu/~ee128/fa04/labs/lab7-intro.pdf s. 5