Mikrokontrollerit

Download Report

Transcript Mikrokontrollerit

Mikrokontrollerit
Mikrokontrolleri (microkontroller)
• Mikrokontrolleri eli mikro-ohjain on
mikropiiri eli IC-piiri, jossa on
mikroprosessori ja joitain muisti- ja
liityntälohkoja. Mikrokontrollereita
käytetään sulautetuissa järjestelmisssä
(embedded systen)
• Sulautetuksi järjestelmäksi kutsutaan
laitetta, jossa mikroprosessori on osana
elektroniikkajärjestelmää
Mikrokontrollerit
• Mikrokontrollerit korvaavat ohjelmoitavia
logiikkapiirejä
• Edullisempi vaihtoehto kuin logiikkapiirit
• Uudelleen ohjelmoitavissa jopa 100 000
kertaa
• Muutokset toimintaan ohjelmallisesti
• Runsaasti valinnanvaraa
Surituskyky riippuu
• Rekistereiden ja tietoväylien leveys
– 4,8,16, 32.. Bittiä
– Tietoväylän leveyden myötä myös hinta
kasvaa
•
•
•
•
Kellotaajuus
Rekisterien määrä ja käskykanta
Yleensä tehonkulutus merkittävin tekijä
Sleep, halt, power down tehonsäästö
Ominaisuuksia
• Ohjelmallisesti määriteltävät tulo ja lähtöliitännät
– Ohjelmoitavat ylös/alasveto vastukset
• A/D ja D/A muuntimet
• Analoginen jännitevertailija
– Esim pariston käyttöjännitteen vertailu
• Pulssinleveysmodulaattori PWM
– Tuotetaan analoginen jännitesignaali
• Watchdoc valvoo ettei ohjelma ole jäänyt jumiin
• Reaaliaika kello
PWM
Arduino
• Projekti Olivetin opiskelijoita varten.
• Tavoitteena helppokäyttöinen ympäristö
ohjelmointia ja elektroniikkasuunnittelua
varten
• Alkuperäinen valmistaja italiainen Smart
Projects, mutta koska ympäristön speksit
ovat julkiset myös muita valmistajia löytyy
Arduino
• Arduino on avoimeen laitteistoon perustuva
mikrokontrolleri-elektroniikka-alusta sekä
ohjelmointiympäristö
• Perustuu Atmel mikrokontrolleriin
• Voidaan kytkeä, sensoreita, ledejä, moottoreita..
• Ohjelmoidaan C kielellä johon voidaan upottaa
myös konekieltä
• http://www.ruuvipenkki.fi/2010/08/12/arduinoalustat-esittelyssa
Arduino Uno
•
•
•
•
•
•
•
•
•
Microcontroller :
ATmega328
Operating Voltage 5V
Input Voltage (recommended)
7-12V
Input Voltage (limits) 6-20V
Digital I/O Pins:
14 (of which 6 provide PWM output)
Analog Input Pins: 6
DC Current per I/O Pin:
40 mA
DC Current for 3.3V Pin:
50 mA
Flash Memory:
32 KB (ATmega328) of which 0.5 KB used by
bootloader
• SRAM:
2 KB (ATmega328)
• EEPROM:
1 KB (ATmega328)
• Clock Speed:
16 MHz
Arduino Uno
• Virransyötön valinta automaattinen
• Ylijännitesuoja
• UART TTL tiedonvälitys, sarjamuotoisen
datan lähetys ja vastaanotto
• http://arduino.cc/en/Main/ArduinoBoardUno
Arduino käyttöliittymä
• Arduino on avoin ohjelmointiympäristö
• Käyttöliittymän avulla on mahdollista ohjelmoida
käyttäen useita valmiita funktioita, joilla pääsee nopeasti
alkuun. Asioita ei tarvitse tehdä rekisteritasolla, vaan
kirjastot tarjoavat valmiita funktioita esim digitaalisten
lähtöjen muuttamiseen
• Ohjelmointi tapahtuu C-kielellä, mutta myös
konekielisten käskyjen piilottaminen C-koodin sekaan on
mahdollista.
• Liittymä USB portin kautta
• Suunnitteluun http://fritzing.org/
Ohjelmointi
• Arduinossa on vain kaksi pääfunktiota:
– setup() – Funkio, joka alustaa laitteen
asetukset.
– loop() – Funktio, jota toistetaan virran
sammuttamiseen asti
Esimerkki Ledin vilkutus
•
/*
Blink
Turns on an LED on for one second, then off for one second, repeatedly.
This example code is in the public domain.
*/
void setup() {
// initialize the digital pin as an output.
// Pin 13 has an LED connected on most Arduino boards:
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13, HIGH); // set the LED on
delay(1000);
// wait for a second
digitalWrite(13, LOW); // set the LED off
delay(1000);
// wait for a second
}
http://arduino.cc/en/Tutorial/Blink
Soveltaminen
Kytkennät
• Mikrokontrolleria ei aina voida kytkeä
suoraan toimilaitteeseen ilman
liitäntäelektroniikkaa
– Lähdöstä ei saada tai tulo ei pysty nielemään
tarpeeksi virtaa
– Lähdön ja kuorman väliset jännitetasot ovat
erisuuret
– Tuloliitännässä ongelmia syntyy jos tuleva
signaali ei ole TTL-tasoista (transistortransistor logic )
Lähtö ja tuloliitännät
• Kontrollereiden lähtöjen virransyöttökyky
on pieni parhaimmillaankin vain muutamia
kymmeniä milliampeereja
• Saatava virta riippuu kaikkien lähtöjen
kuormasta
• Lähtöliitäntä voidaan puskuroida esim
transistorilla
C
+Vcc
R2
R1
Kontrolleri
B
Vastus R1 mitoitetaan
siten että transistori on
kyllästystilassa
E
Transistori :
Kun kannalle B
tuodaan jännite,
niin virta kulkee
Collectorin C ja
emitterin E läpi
Tulojen erottaminen
• Jos tuleva signaali ei ole TTL tasoinen pitää
signaalille tehdä logiikkamuunnos
• Muunnos voidaan tehdä optoerottimella
• Optoerotin (optocoupler, optoisolator) on
komponentti, jolla saadaan galvaaninen eristys
häiritsevän ohjaavan virtapiirin ja häiriöalttiin
ohjattavan virtapiirin välille taikka toisinpäin.
• Optoerotin on luonteeltaan digitaalinen
komponentti: se välittää päällä-pois -signaaleja
Optoerotin
• Optoerottimet ovat tyypillisesti pakattuna yhteen
6-pinniseen tai 8-pinniseen, valotiiviiseen ICkoteloon
• Kyseessä on yhdistelmä kahta eri laitetta: optista
lähetintä, joka on tyypillisesti LED sekä optista
vastaanotinta, kuten fototransistori. Näitä kahta
osaa erottaa läpinäkyvä rajapinta, joka estää
sähkövirran kulun niiden välillä, mutta läpäisee
valoa.
Optoerotin
Optoerottimen
periaatekaavio.
Pinnit:
1 anodi
2 katodi
3 ei kiinni
4 emitteri
5 kollektori
6 kanta.
Suojavastus
• Komponeteille on valmistajan
määrittelemä tehonkesto
• Vastuksia käytetään suojamaan
komponetteja (esim ledit , optoerottiemet,
transistorit
• Muistisääntö U = RI