Esittely latautuu. Ole hyvä ja odota

Esittely latautuu. Ole hyvä ja odota

Tietokone-järjestelmät

Samankaltaiset esitykset


Esitys aiheesta: "Tietokone-järjestelmät"— Esityksen transkriptio:

1 Tietokone-järjestelmät

2 Sisältö: 1. Sulautetut järjestelmät 2. Tietokonearkkitehtuurit
3. Liitännät ja oheispiirit 4. Muistipiirit 5. Ohjelmistotekniikka Sovellusesimerkki Anturit sulautetuissa järjestelmissä

3 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

4 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

5 Tietokonejärjestelmät
Perusasioita Tietokonejärjestelmän perusrakenne:

6 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

7 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

8 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

9 Sulautetut järjestelmät Esimerkki: nykyaikainen ajoneuvo

10 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

11 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

12 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

13 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

14 Tietokonejärjestelmät
Terminologiaa Automaatiotekniikka on merkitsevin sulautettujen järjestelmien osa-alue. Siinä on seuraava tilanne:

15 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

16 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”

17 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

18 Tietokonejärjestelmät Reaktiivinen järjestelmä
Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2

19 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

20 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

21 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

22 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ö

23 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ä.

24 Tietokonearkkitehtuurit Suorittimen rakenne vähän tarkemmin
Kolme pääyksikköä tässäkin:

25 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

26 Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki)
Kolme pääyksikköä vieläkin:

27 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ö

28 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

29 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

30 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ä

31 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???

32 Tietokonearkkitehtuurit
Operaatiot 2 operandia ja yksi tulos vaatii periaatteessa 3 osoitetta: ALU Op1 Op2 Tulos

33 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)

34 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

35 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

36 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

37 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

38 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)

39 Tietokonearkkitehtuurit
Esimerkki: Atmel AVR kahdeksanbittinen, RISC-tyyppinen load/store-arkkitehtuuri, selkeyden perikuva

40 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

41 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

42 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

43 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

44 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

45 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.

46 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

47 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

48 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ä

49 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

50 Tietokonearkkitehtuurit
PC-emot NLX-emot: emolevy helppo irroittaa ja laittaa takaisin ilman muiden korttien ja yksiköiden irroittamista

51 Tietokonearkkitehtuurit
PC-emot BTX-emot: jatkokehitelmä ATX-emoille jäähdytykseen huomiota uusi teholähde

52 Tietokonearkkitehtuurit
PC-emot Nano-ITX-emo: VIA EPIA N koko 12x12 cm

53 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

54 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

55 Tietokonearkkitehtuurit
Muut PC-kortit CompactPCI: huoltoystävällinen mekaanisesti kestävä

56 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

57 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ä

58 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: AMD SC520- pohjainen suoritinkortti (Sensoray)

59 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: Digital-Logic MSM855 Pentium M 755 MHz

60 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)

61 Tietokonearkkitehtuurit
Muut PC-kortit PC/104: ARM-pohjainen suoritinkortti (Technologic Systems)

62 Tietokonearkkitehtuurit
Koteloja PC/104: valmiita laitekoteloita runsaasti tarjolla, esimerkiksi Parvus DuraChassis

63 Tietokonearkkitehtuurit
Koteloja PC/104: Parvus DuraChassis räjäytyskuva

64 Tietokonearkkitehtuurit
Koteloja PC/104: kehikko- asennukseen tarkoitettu kotelo (Access)

65 Tietokonearkkitehtuurit
Koteloja PC/104: kauniita koteloja: Diamond Systems Pandora

66 Tietokonearkkitehtuurit
Muut PC-kortit EBX: todellisia emolevjä koko 203x147 mm

67 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: WinSystems

68 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: Digital- Logic

69 Tietokonearkkitehtuurit
Muut PC-kortit EBX esimerkki: Diamond Systems

70 Tietokonearkkitehtuurit
Muut PC-kortit Kontron Xboard: SO-DIMM- reunaliitin DIMM-PC- standardi (eräänlainen)

71 Tietokonearkkitehtuurit Ohjausyksikön rakenne (esimerkki)
Kolme pääyksikköä vieläkin:

72 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!!!!

73 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

74 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ä

75 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ö

76 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

77  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

78 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ä

79 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

80 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

81 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

82 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

83 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ä

84 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

85 Liitännät Kytkentäverkko Switching Fabric
Uusin liitäntäarkkitehtuuri: periaate: Yksikkö Kytkentäverkko Switching Fabric

86 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

87 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

88 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

89 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

90 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ä

91 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

92 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

93 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ä

94 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

95 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

96 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:

97 Liitännät Kierretty parikaapeli: Balansoitu siirto
balansoidussa siirrossa signaalijohdin ja paluujohdin yleensä järjestetään kierrretyksi pariksi:

98 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

99 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

100 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

101 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ä

102 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ä

103 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

104 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)

105 Sarjaliitännät ja -väylät
Synkroninen siirto: Manchester-koodi: esimerkki yhdistetystä datasta ja kellosta NRZ-L on pelkkä data

106 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

107 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ä

108 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)

109 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)

110 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)

111 Sarjaliitännät ja -väylät
SPI/Microwire-liitännän käyttö:

112 Sarjaliitännät ja -väylät
SPI/Microwire-liitännän rekisterit:

113 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

114 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

115 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

116 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

117 Sarjaliitännät ja -väylät
Yksijohdinväylän siirtotapa: loogiset nollat ja ykköset ovat eripituisia pulsseja ala- jännitteeseen

118 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.

119 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.

120 Sarjaliitännät ja -väylät
Esimerkki: DS2890: yksijohdinliitännällä varustettu 100 k potentiometri, jonka liukua voidaan siirtää 256 eri asentoon

121 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

122 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

123 Sarjaliitännät ja -väylät
Esimerkkinä DS2890-potentiometripiiri:

124 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ä

125 Sarjaliitännät ja -väylät
I2C-väylä: kaikkien piirien antoliitännöissä avoin kollektori ja väylän johtimissa ylösvetovastukset

126 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

127 Sarjaliitännät ja -väylät
I2C-väylän kellotus: kello ja data

128 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

129 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ä

130 Sarjaliitännät ja -väylät
I2C-väylä: isäntä lähettää aina ensin vastaanottajan osoitteen ja siirron suunnan ilmaisevan bitin:

131 Sarjaliitännät ja -väylät
I2C-väylä, esimerkki: a) tiedon luku orjasta b) tiedon kirjoitus orjaan

132 Mikro-ohjaimet Prosessori Yksityiskohtaisempi rakenne:
tärkein yksityiskohta: rekisterit kaikki vuorovai- kutus ohjelman ja koneen välil- lä tapahtuu yksin- omaan rekiste- reiden kautta!!!!

133 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)

134 Mikro-ohjaimet Luokittelu:

135 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.

136 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

137 16-bittiset mikro-ohjaimet
enemmän suorituskykyä mm. ajoneuvoissa yleisimmät piiriperheet ja valmistajat: C166: Infineon ja STMicroelectronics HC12 ja HC16: Motorola H8S: Hitachi

138 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

139 Muistipiirit Rakenne ja liitännät: Yleistä
Bittimäärästä riippumatta muistipaikan sisältöä kutsutaan sanaksi (word)

140 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

141 Muistipiirit Yleistä Tyypillinen tietokoneen muistihierarkia:

142 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

143 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

144 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

145 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

146 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

147 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

148 Muistipiirit Muistikennot ROM:

149 Muistipiirit Muistikennot PROM: Sulake ehjä = bitti on 1

150 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
muistikenno on kahdella hilalla varustettu avaustyyppinen n-kanava-MOSFET

151 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
kennon tila riippuu siitä, onko kelluvassa hilassa varausta vaiko eikö

152 Muistipiirit EPROM, EEPROM ja flash: Muistikennot
käyttö muistimatriisissa

153 Muistipiirit EPROM: Muistikennot
tyhjentäminen valaisemalla sirua noin 30 minuuttia voimakkaalla ultravioletti- valolla kotelossa lasi-ikkuna, kallista ja tyhjennys hidasta

154 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ä

155 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

156 Muistipiirit SRAM: Muistikennot
muistikenno on kuudesta transistorista muodostuva kiikku

157 Muistipiirit DRAM: Muistikennot
muistikenno on konden- saattori ja valintakytkin- transistori

158 Muistipiirit DRAM: Muistikennot
tilan säästämiseksi kondensaattorit on asetettu reuna pystysuuntaan haastava valmistus- tekniikka, jonka vain harvat piitehtaat hallitsevat

159 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ä

160 Muistipiirit SDRAM-piirit “Tavallinen” SDRAM:

161 Muistipiirit DDR I: SDRAM-piirit
kaksinkertainen nopeus “tavalliseen” verrattuna samalla kellotaajuudella

162 Muistipiirit DDR II: SDRAM-piirit
nelinkertainen nopeus “tavalliseen” verrattuna kaksinkertaisella kellotaajuudella

163 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

164 Mikro-ohjaimet Ajoituskaaviot
Digitaalipiirien signaalien välisiä riippuvuuksia kuvataan usein ajoituskaavioilla:

165 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
lukujakso

166 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
kirjoitusjakso

167 Muistipiirit Asynkronisen DRAM-muistipiirin ajoituskaavio: DRAM-piirit
virkistysjakso

168 Muistipiirit Puolijohdemuistit Muistipiirien vertailutaulukko:

169 Muistipiirit MRAM: Muistikennot
muistikenno on magnetoresistiivinen “täplä”

170 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.

171 Muistipiirit Muistikennot FRAM-muistikennon toimintaperiaate:

172 Muistipiirit Muistikennot OUM-muistikennon toimintaperiaate:

173 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

174 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.

175 Keskusyksikkö Prosessori Suoritin
Mikro-ohjaimet Tietokoneen osat Kolme päälohkoa: Ohjelma- muisti Data- muisti Keskusyksikkö Prosessori Suoritin Oheis- piirit Ympäristö

176 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

177 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)

178 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

179 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

180 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

181 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin 3-bittisen muuntimen ideaalinen ominaiskäyrä: Jännitteen lukuarvo Analoginen ottojännite

182 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

183 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Eniten käytetyt muunnin- tyypit:

184 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

185 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

186 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Laskostuminen aikatasossa: puolta näytetaajuutta suuremmat taajuudet siirtyvät puolen näytetaajuuden alapuolelle

187 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Laskostuminen spektrissä: spektrit menevät osittain päällekkäin

188 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

189 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Siirrosvirhe: Todellinen Ideaalinen Siirros eli offset Jännite Lukuarvo

190 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Vahvistusvirhe: Todellinen Ideaalinen Vahvistus-virhe Jännite Lukuarvo

191 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Epälineaarisuus: Todellinen Ideaalinen Epä- lineaarisuus Jännite Lukuarvo

192 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Epämonotonisuus: Todellinen Epä- monotonisuus Jännite Lukuarvo Ideaalinen

193 Analogia-digitaalimuunnin
Liitännät Analogia-digitaalimuunnin Esimerkkinä SAR-muunnin: Rinnakkaismuotoinen lukuarvo Sarjamuotoinen lukuarvo, MSB ensin Valmis

194 Digitaali-analogiamuunnin
Liitännät Digitaali-analogiamuunnin Toiminta-ajatus: Lukuarvo (binääriluku) Analoginen antojännite

195 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

196 Digitaali-analogiamuunnin
Liitännät Digitaali-analogiamuunnin Pulssinleveysmodulaatio, hyvin yleinen D/A-muunnos-menetelmä: Jännitteen keskiarvo v riippuu pulssisuhteesta tA/T

197 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

198 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

199 Ohjelmistotekniikka Ohjelmointikielet
Assembler-esimerkki (yhteenlaskuoperaatio): Konekäsky symbolisessa eli helpommin muistettavassa muodossa Konekäsky on oikeasti binääriluku!

200 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

201 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

202 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

203 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

204 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

205 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ä

206 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

207 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

208 Ohjelmistotekniikka Kehitysympäristö tyypillinen kehitysympäristö:
Workstation environment

209 Ohjelmistotekniikka Kehitysympäristö
tyypillinen Windows- pohjainen käyttö- liittymä (Keil uVision2): Projekti-ikkuna Editointi-ikkuna Konsoli-ikkuna

210 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

211 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)

212 Mikro-ohjain Analog Devices ADuC812
Sovellusesimerkki LED-vilkutin + Virran-rajoitus- vastus Mikro-ohjain Analog Devices ADuC812 LED Invertteri Taajuus 1 Hz

213 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

214 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

215 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

216 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

217 Reaktiivinen järjestelmä
Sovellusesimerkki Reaktiivinen järjestelmä Esimerkiksi sähkölämmitin: Aika kuluu Lämpötila t tYLÄ tALA E1 E2

218 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

219 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’

220 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ä

221 Sovellusesimerkki LED-vilkutin ADuC812 liitännät: P3.4

222 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

223 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ä

224 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

225 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.

226 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ä

227 Sovellusesimerkki LED-vilkutin
Muuttuja- tyypit Keil C51 C-kääntä- jässä:

228 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

229 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;

230 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

231 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!

232 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

233 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

234 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

235 Sovellusesimerkki LED-vilkutin Timer 2 auto reload mode:

236 Sovellusesimerkki LED-vilkutin Timer 2 control register T2CON:

237 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ä

238 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ä

239 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

240 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

241 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

242 Sovellusesimerkki Timer 2 auto reload mode: 216-1 RCAP2 LED-vilkutin
216-1 RCAP2 Ylivuodon tapahtuessa: TF2 = 1 T2 ladataan RCAP2-rekisteristä

243 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.


Lataa ppt "Tietokone-järjestelmät"

Samankaltaiset esitykset


Iklan oleh Google