Lataa esitys
Esittely latautuu. Ole hyvä ja odota
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
Samankaltaiset esitykset
© 2024 SlidePlayer.fi Inc.
All rights reserved.