62
ATR0110 ANALOOG- JA DIGITAALTEHNIKA Kevad 2019 Digitaaltehnika arvutid Martin Jaanus NRG-308 [email protected] 56 91 31 93 Õppetöö : http://isc.ttu.ee Õppematerjalid : http:// isc.ttu.ee/martin

ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ATR0110 ANALOOG- JA

DIGITAALTEHNIKA

Kevad 2019

Digitaaltehnika – arvutid

Martin Jaanus NRG-308

[email protected] 56 91 31 93

Õppetöö : http://isc.ttu.ee

Õppematerjalid : http://isc.ttu.ee/martin

Page 2: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Teemad

Digitaalelektroonika analoogmaailmas

• Arvuti ahkitektuur

• Mikroprotsessor, mikrokontroller

Page 3: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mikroprotsessoriga süsteem (arvuti)

• Mikroprotsessorist ei piisa.

Mikroprotsessor

Takt

Liidestamise siin

RAM ROM

USB Video Ethernet Kõvaketas

Andmesiinid

Page 4: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Von Neumanni arvutistruktuur

• Olemuselt digitaalautomaat (John von Neumann, 1945)

• Aritmeetika loogikaseade

• Juhtseade (käsuloendur)

• Mälu (käsukoodidele, andmetele)

• Välised seadmed

https://en.wikipedia.org/wiki/Von_Neumann_architecture

Page 5: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Harvardi arvutistruktuur

• Arvutis Harvard Mark I (1944)

• Eraldi andmed ja käsud ( nii mälu kui ka töötlus)

• Eelis, saab samaaegselt tegeleda mõlema mäluga

• Enamkasutatav

Page 6: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mikroprotsessor

• Mikroprotsessor on mitmeotstarbeline programmeeritav seade, mis võtab sisendina vastu digitaalse info, töötleb seda vastavalt mälus salvestatud masinakäskudele ja annab tulemuse väljundina. (wikipedia)

• Tehnoloogia ajas muutub, idee jääb samaks

Intel 4004 (1971)https://en.wikipedia.org/wiki/Intel_4004

Saab luua lihtloogikaelementidest

• ALU (aritmeetika-loogika seade)

• Aadressiregister

• Käsuregister

• Inforegister• Andmesiin

• Aadressisiin

Page 7: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

X86 mikroprotsessorid

• 1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor

• Nimetus X86 tuleb sellest, et hilisemate protsessorite

nimed lõppesid 86ga

• 80186, 80286, 80386 ja 80486

• Erinevad tootjad, arhitektuur muutus

kohmakaks kuid eelis – ühilduvus eelkäija protsessoriga !

• Tänu sellele : PC arvutite võidukäik 1981- tänaseni

• Vanmema tarkvara „jookseb“ uuema arvuti peal.

• CISC protsessorid (complex instruction set) – palju käske

toetatud riistvaras.

Page 8: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ARM mikroprotsessorid

• ARM - Advanced RISC Machine, Acorn RISC Machine

• RISC - reduced instruction set computing (vähendatud käsustikuga protsessor)

• Lihtsam siseehitus, suurm kiirus

• Telefonid, tahvelarvutid

• Mikrokontrollerid

• Hea näide on Arduino Uno

• „ehituskiviks“ olev ATmega168

RISC protsessor – vähe käske.

https://en.wikipedia.org/wiki/ARM_architecture

Page 9: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Suvapöördus - arvutimälu

• Iga biti jaoks eraldi mäluelement

• Vajab adresseerimist

• Sisend ja väljund on omavahel sageli koos

Ühemõõtmeline (4 bitti) Kahemõõtmeline

Page 10: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mälumahu suurendamine

• Mida võib ette võtta:

- suurendada järkude arvu,

• - suurendada säilitatavate sõnade arvu.

• Järkude arvu suurendamine → aadressiini paralleelne lülitus

Aadressi sõna antakse kõigile MS korraga. D0 väljundil iga MS antavalaadressil loetakse maha 1 bit infot.

Skeem 4 järgulise sõna jaoks

Page 11: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mälumahu suurendamine

• Säilitatavate sõnade arvu suurendamine (aadressimahu suurendamine)

• Tuleb kasutada lisadekoorderid (A11, A10). Vastavalt sellele koodile dekooder lülitab vajaliku mälu. Iga mälu maht on 1K ∙ 1. Kokku on siis antaval juhul 4K ∙ 1 ja 12 –järguline aadressi sõna. Iga mälu juhitakse

• aadressi koodiga A9…A0.

• Kasutusel on mõlemad variandid (ka samaaegselt)

Page 12: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Tänapäevane arvutimälu RAM

• Juhupöördusega mälu (Random Access Memory)

• Staatiline (basserub trigeril), kiirem, kallim

• Dünaamiline (mäluelement – kondensaator), võtab vähem ruumi, aga vajab värskndust – laeng aja jooksul väheneb.

• Info hävineb toite katkestamisel !

SRAM DRAM

https://en.wikipedia.org/wiki/Random-access_memory

Page 13: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Tegelikud mälumikroskeemid• Näide -TMM4164

• Antava mikroskeemi organisatsioon on 64K∙1, kuid ta omab ainult 8 aadressi sisendit (A7...A0).

• Strobeerimissignaalid

• RAS ja CAS aitavad vähendada aadressi sisendite arvu, sest 64K sõnade arvu juhul oleks vaja 16 järgulist aadressi koodi. Pool nendest järkudest vastutavad rea valiku eest ja pool – veeru valiku eest. Seepärast

• vanimad ja noorimad aadressisõna järgud antakse ühtede ja samade sisendite peale kordamööda.

• Peale madala pinge nivoo andmist sisendile antakse aadressi sisenditele aadressisõna 8 noorimat järku. Seega on EME maatriksist vajaliku rea valik tehtud. Peale seda antakse pinge madal nivoo sisendile ja aadressi sisenditel formeerivad ülejäänud aadressisõna 8 vanimat järku. Nemad siis omaette valivad maatriksi vajalik veeru.

• Peab ära märkima, et antaval juhul signaali CS ei kasutata. Tema rolli mängivad signaalid , , mida antakse järjestikult, kordamööda.

Page 14: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Tänapäevane arvutimälu ROM

• Ainult lugemiseks (Read Only Memory).

• Informatsioon säilib toite katkestamisel.

• Kasutamine sarnaneb RAM mäluga.

Püsimälu idee:https://www.cl.cam.ac.uk/teaching/1213/SysOnChip/materials/sg3bus/zhp4c6e8640b.html

• ROM – info sisestatakse valmistamisel

• EPROM – infot saabkasutaja sisestada,

kustutamine UV kiirgusega (vananenud)

• EEPROM – elektriliselt kustutatav ning

programmeeritav mälu, aeglane• Flash EEPROM , sama, aga kiirem ning

tänapäevasem variant, masskasutus.

https://en.wikipedia.org/wiki/Flash_memory

• EEPROM mälude põhipuudus –

kirjutuskordade arv on piiratud.• Flash mäluga üritatakse asendada RAM mälu

„Ujuva paisuga“ EEPROM

Vcc

Page 15: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Arvuti siseehitus (näide – ZX spectrum)

• 8 bitine koduarvuti (1982-1992) . Suurbritaannia (Sinclair)

• 8 bitine protsessor Z80, mäluruum 64 kb (16 kB ROM, 28kB RAM) , välismälu – kassettmagnetofon, monitoriks televiisor – sobib tänapäeval õppematerjaliks

• Väga odav tolle aja kohta – £179

• Oli ülipopulaarne ka Eestis 80ndate lõpp, 90ndate algus

(kloonid, iseehitamine)

• Tänapäeva mõistes lihtne skeem võimaldab iseehitust.

• Mängude arv tuhandetes, tehakse ka tänapäeval

• Tänapäeval – emulaatorid, hobielektroonika

https://en.wikipedia.org/wiki/ZX_Spectrum

ZX spectrum 2

Page 16: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum• http://www.worldofspectrum.org/documentation.html

Page 17: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum (elektriskeem)

• https://spectrumforeveryone.com/wp-content/uploads/2017/08/ZXSpectrumIssue3-

Schematics.gif

Page 18: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum

• Protsessor

ja ühendused

CPU

Andmesiin

Aadresssiin

Siini juhtsignaalid

ROM

RAM

DC

Page 19: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum

• Sisend –

väljund

• Spetsiaalne

mikroskeem

Page 20: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum

• Skeem ilma ULA-ta (fragment)

• http://trastero.speccy.org/cosas/JL/Harlequin/Documentac

ion/harlequin_rev_g.pdf

Page 21: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ZX spectrum

• Klaviatuur (maatriksühendus) – sama idee ka PC-l

Page 22: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Aritmeetika-loogika seade

• Mikroprotsessori koostisosa

• ALU juurde kuuluvad ka registrid info hoidmiseks.

• ALU ise on kombinatsioonloogikaseade – mälu ei ole.

• Riistvaraliselt on toetatud järgmised tehted:

• → aritmeetiline liitmine;

• → aritmeetiline lahutamine;

• → loogikaline korrutamine;

• → loogikaline liitmine;

• → liitmine mooduli 2 järgi;

• → inversioon; nihe vasakule, nihe paremale, inkrement, dekrement.

Page 23: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU -Liitmine

• Elementaaroperatsioon – välistav VÕI

• Vaja lisada NING element, et saada ülekannet,

kuid ei arvestata eelmist ülekannet –

Poolsummaator (half adder)

Ülekanne järgmisesse järku

0101010101 ||| XXXXXXXXXXS

Page 24: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU - Täissummaator

• Koostatakse kahest poolsummaatorist

101101 PXXPXXS

10101 PXXXXP

Page 25: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU - summaator

• Järjestikülekanne: Igale järgule eraldi

(näide 4 bitiline –kerge on suurendada

bittide arvu)

• Z – tulemuse mahalugemiseks

sandmesiinile.

• Aega võtab ülekande liikumine.

• Saab teha ka paralleelülekandega

Page 26: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU - lahutamine• Tegelikult tehakse liitmine aga täiendkoodiga !

• Kuigi erakdi märgibitt ning arvubitid tundub loogiline, on see halb

• Esitatakse täiendkoodis.

• Täiendkood: Sama posiivne arv , vahetame nullid ühtedeks ning ühed nullideks ja liidame juurde 1 (sisuliselt teeme nullkoha nihutamise)

• Arv +14(dec)= 00001110b

• Arv -14(dec)= 11110001b+00000001b=11110010b

• Kontroll 00001110b

• + 11110010b

• -------------------

• (1)00000000b

NB !

Arv -14 võib olla aga ka positiivne arv 242 !!! Arvuti ei tee sellel vahet !, vahet peab tegema programmeerija (ja vahest ka kompilaator).

Ülekanne (Carry), kui ei võeta spetsiaalselt midagi ette, läheb see kaduma !

Page 27: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU-lahutaja - näide

• Näide riistvaraliselt liitjast-lahutajast

Page 28: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU -Korrutamine

• Ühe biti puhul lihtne – NING element

• Korrutamine – erikorrutiste liitmine (sarnaneb paberil

„kirjaliku“ korrutamisega

• Nii saab hakkama kui bitte on vähe !

• Keerukus kasvab hüppeliselt

bittide arvu kasvades.

Page 29: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU -Korrutamine

• Reaalne lahendus -

Osakorrutisteks jagamine ja

summeerimine

• Iga plokk peab tegema

korrutamise ja liitmise ja

arvestama veel ka ülekannet.

• Mi = A∙B + C + D

Page 30: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ALU- korrutamine• Eelmise slaidi jätk

• Siia juurde kuuluvad

veel NING elemendid

osakorrutise saamiseks

Page 31: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mikrokontroller

• Mirkroprotsessorsüsteem ühes mikroskeemis

Protsessor

Takt

Liidestamise siin

RAM EEPROM

SPI,I2C,USB DAC,ADC I/O registrid SD/MMC

Andmesiin

Page 32: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mikrokontrolleri eripärad

• Reeglina üsna aeglased või võimalus teha aeglaseks. (energiakulu !)

• Programmeeritakse vaid konkreetse ülesande jaoks.

• Programmeerija peab teadma üldist tööpõhimõtet.

• Sisend-väljund klemmid reeglina universaalsed ja multifunktsionaalsed.

• Kasutusel arendusplatvormises (nt. Arduino, PI...)

• Odavad, programmeeritakse madala taseme keeles (C, ASM)

Page 33: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

AVR arhitektuur

• 8 bitine sisemine andmesiin,

millega liiguvad andmed

aritmeetika-loogika-

seadmesse(ALU)

• status register (SREG)

• program counter (PC),

• Juhupöördusega

mälu(SRAM)

• Programm on eraldi mälus

(Flash)

• ALU on 32 8-bitilist

üldotstarbelist registrit.

Page 34: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

AVR arhitektuur (CPU) käsustik

• Vaata andmelehte !

Siin ja edaspidi mikrokontrollerite pildid – AVR

http://ww1.microchip.com/downloads/en/DeviceDoc/Atmel-2545-8-bit-AVR-Microcontroller-ATmega48-88-168_Datasheet.pdf

Page 35: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Mikrokontrolleri sisend-väljund

• Näide – Atmega328 (Arduino)

• Kolm üldotstarbelist porti

• Arduino – arenduskeskkond

• Oluline on lugeda andmelehte !

Page 36: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

• Enne kasutamist tuleb seadistada

(nt Arduino – pinMode)

• Võimaldab nii sisendit kui ka väljundit.

• Sisendifunktsioonis kasulik

konfigureeritav takisti sisendi ja

toite vahele (pull-up), osadel kontrolleritel ka „maa“ vahele

(pull-down)

• Portidel on olemas ka

„alternatiivfunktsioonid“

Mikrokontrolleri sisend-väljund

Page 37: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Registerid

• Võib vaadelda kui koduelektroonika nupupaneeliga

• Iga nupp teeb midagi, aga õigesti vaid siis kui ta on õigel

ajal sisse lülitatud.

http://home.roboticlab.eu/en/avr/registers

Kassettmagnetofoni nupud Register buttons and bit values

S – set

Binary value 01100001

Decimal value – 97

Hexdecimal value – 61

Octal value -141

S S S

Page 38: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Registrid

• CPU sees – harilikult D või RS trigerid (8,16,32 või 64 bitti)

• Registril on juurdepääsuaadress (ja harilikult nimi)

• Saab pöörduda protsessorikäsuga( C keeles peab olema

defineeritud kui muutuja)

• Harilikult annab tootja nimetused (include file)

• Arvutuse jaoks või sisend-väljundiga ühendatud.

4- bit parallel register 4 bit serial register

https://www.electronicshub.org/d-flip-flop/

Page 39: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Katkestused

• Informaatikas tähendab katkestus asünkroonset signaali,

mis katkestab programmi täitmise tsükli, et kontroll

järgmisele protseduurile üle anda .

https://www.slideshare.net/ramadanahmadramdan/timer-interrupt

Page 40: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Katkestused

• Mikrokontrolleri puhul võib katkestus tekkida loendurite, andmesideliidese, konverterite jne..puhul või ka signaali loogilise oleku muutuse korral.

• Iga katkestus on seotud oma sündmusega (alamprogrammiga)

• C näide (ka Arduino)

• #include <avr/interrupt.h>

• ISR(XXX_vect)

• {

• // Do something

• }

Page 41: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Katkestused (paha näide)

• Oletame, et meil on 16 bitine muutuja , mille väärtusi saab muuta

mitmes kohas :

Y võib olla 0x3333, 0x1111 kuid samuti 0x3311 ! Kuidas parandada ?

Page 42: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Lihtne digitaalne väljund

• Sobib siis, kui tarbijaid vähe, väljaviike palju.

• Voolu tarbitakse läbi protsessori !

• Arvestada tuleb voolutarvet , see ei tohi ületada lubatut !

Page 43: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Puhverdatud digitaalne väljund

• Vajab nihkeregistreid

• Lisatavate sõltumatute väljundite arv on piiramatu.

• Suhteliselt lihtne programmeerida

Page 44: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Dünaamiline indikatsioon

• Sobib , kui vaja palju valgusdioode juhtida

• Saab juhtida n2 valgusdioodi (2 baidiga 256 )

• Programmeerimine keerukam (taimeriga ja katkestusega alamprogramm)

• Lihtne skeem

http://www.siwawi.arubi.uni-kl.de/avr_projects/matrix44/index.html

Page 45: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Digitaalsisendid• Kui väljaviike on piisavalt – lihtne, saab kasutada kui puudu, kasutada puhvrit,

skaneerimist, multiplekserit

• Eelistatakse madalapingelist aktiivset olekut

• Sisendpinge ei tohi olla suurem kui Vcc ja väiksem kui 0V !!!!!!

• Vajadusel kasutada pingejagurit , optroni ,transistorlülitit…

Page 46: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Komparaator

• Töö sarnaneb OV tööga, sageli kasutataksegi OV-d

• Kõige lihtsam 1 bitine A/D muundur

• Kui lisame positiivse tagasiside, saame Schmitti trigeri

Väljund:

• Kõrge (1) kui Vin>Vref

• Madal (0) kui Vin<Vref

Veel kasutusalasi:• Signaali nullist läbimise detektor

• Digisignaalide mürast puhastaja

Page 47: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Analoogmaailm –pidevad suurused

Digitaalmaailm – diskreetsed(lõplikud) suurused.

Võivad olla kombineeritud (diskreetne aeg analoogsüsteemis ja vastupidi )

ADMX(t)

kood

Pideva signaali x(t) teisendamine arvude jadaks xi

1. Diskreetimine (aeg)

2. Kvantimine (nivood)

3. Kodeerimine

Lõplik arv väärtusi väljundis

Analoog-digitaalmuundur

Page 48: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Diskreetimine (sampling)

Pidevate signaalide x(t) esitus arvude jadana xi, i=1, 2, 3, ..

Ts valik

Kui signaali spektris on maksimaalne sagedus F, siis tuleb F(f) diskreetimisintervall

Ts valida tingimusest: Ts<=1/(2F) ehk Fs>2F . Kui ei ole täidetud tekivad moonutused.

( Nyquist–Shannoni teoreem )

Analoog-digitaalmuundur

Page 49: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Kvantimine (quantization)

Signaalile (reaalarvule X) seatakse vastavusse väljundsignaal (ratsionaalarv m/n

ehk täisarv kvante i=1/n). Kuidas teha nii, et viga oleks kõige väiksem?

• arvude ümardamine /rounding/

Analoog-digitaalmuundur

Page 50: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Parim karakteristik koostatakse järgmiselt:

(sisendsignaal on pidev suurus, väljundsignaal –diskreetne.

sisend ja väljundsuurusi mõõdetakse kvantides q)

- sisendi väärtusel 0 on väljund 0 - sisendsignaalil q/2 muutub väljund q

- sisendi muutudes q võrra muutub väljund q võrra.

Mõõtepiirkond (Full Scale) on sisendsignaali

vahemik kus viga Δ ei välju piiridest ±q/2

ning on väärtusega FS=(n+1/2)*q

nn. „täisskaala“)

Analoog-digitaalmuundur

Page 51: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

ADM tegelikud vead on palju suuremad

Analoog-digitaalmuundur

Page 52: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

• Muundusaeg . Signaal ei tohi muundamishetkel muutuda

Signaal X(t) muutub ajas. Tulemus saadakse ajahetkel t2, see vastab signaalile

mingil eelneval ajahetkel, seda hetke on raske fikseerida täpselt,

eksisteerib ebamäärasus Δt nn. “apertuuriaeg”.

Fikseerida X(t) väärtused kindlatel ajahetketel

ja teha siis ADM-ga muundamine.

(sample & hold)

Analoog-digitaalmuundur

Page 53: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Järkude arv n=log2(N)

• 8 bitisel muunduril 256 nivood

• 16 bitisel muunduril 65536 nivood

Mida suurem , seda täpsemini saab signaali digiteerida.

AD/DA muundamisel tekib kvantimismüra ( q/2), mis lisandub kasulikule signaalile.

Kn(dB)=6n+3 . See on alati olemas !!!

Analoog-digitaalmuundur

Page 54: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Paralleelmuundur

• Kiire

• Reaalajas toimiv

• Vajab 2n-1komparaatorit !

• Kasutatakse kuni 8 bitiste muundurite korral (256 taset)

• Videotöötlus

Kõik teised on aeglasemad !

Sisend+

-

Vref

R/2

+

-

+

-

R

R

R/2

DC

Komparaatorid koodimuundur

2 bitine väljund

Analoog-digitaalmuundur

Page 55: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Integraatormuundur

C

V I 123456

Schmitti triger loendur

nullimine

f0

f0

• Pinge muundatakse ajamuutuseks (ka VCO – voltage controlled oscillator)

• Kõige täpsemad kuid kõige aeglasemad (aega saab mõõta väga täpselt)

• Kasutusel eelkõige multimeetrites

loendamine

SisendS/H

Analoog-

mälu Integraator

Analoog-digitaalmuundur

Page 56: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

Kaalumismuundur

Sisend+

-Nihkeregister

D/A muundur

Vref

kood

Komparaator

• Tööpõhimõte sarnaneb kangkaaludega kaalumisega. Koodid proovitakse läbi.

• Enamlevinud meetod. Täpsus sõltub D/A muunduri kvaliteedist.

• muundusaeg- n-takti ( n- muunduri bittide arv)

Clk

S/H

Analoog-

mälu

Analoog-digitaalmuundur

Väljundkood avaldub kujul:

𝐾𝑜𝑜𝑑 =𝑉𝑖𝑛𝑉𝑅𝑒𝑓

∗ (2𝑛−1)

Kus n on muunduri bittide arv

Page 57: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

AD muundur tänapäeva mikrokontrolleris

• Kasutamisel tuleb hoolega lugeda andmelehte (datasheet) !

• Reeglina on sisendis mux ja üks muundur protsessori kohta.

• Tavaliselt kas 8 või 10bitine.

• Mõnikord on lisatud ka võimendi.

• VRef kas sisene või väline.

• Sisend ja VRef peavad olema

positiivsed ja mitte suuremad kui

toitepinge.

Väljundkood avaldub kujul:

𝐾𝑜𝑜𝑑 =𝑉𝑖𝑛𝑉𝑅𝑒𝑓

∗ (2𝑛−1)

Kus n on muunduri bittide arv

Page 58: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

• Enamikes mikrokontrolleris on AD muundur

• Kasutatakse multiplekserit, juhtimine täpselt andmelehe järgi.

• Tugipinge – kas sisemine või välimine.

• Vajadusel ette võimendi või pingejagur !

AD muundur tänapäeva mikrokontrolleris

Page 59: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

DA muundur

Paralleelmuundur

• Iga biti väärtus korrutatakse tema kaaluteguriga 2n ning korrutised liidetakse.

• Lihtsam variant –kasutada takisteid, millest iga järgmine on 2 korda väiksem

Kasutusala – diskreetelemendid

(takistid), kui vajalik bittide arv on

väike.

Näiteks 12 biti puhul peab takistite

suhe olema juba 2048 ! Seetõttu on see variant ebapraktiline ja

vähe kasutuses.

Page 60: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

DA muundur

Paralleelmuundur

• Iga biti väärtus korrutatakse tema kaaluteguriga 2n ning

korrutised liidetakse.

• Parem variant –kasutada püsiva impedantsiga R-2R ahelat

Eelis- takistite takistused ei ole

kriitilise suurusega, kuid peavad

olema võimalikult ühesugused,

mikroskeemides lihtne realiseerida.

Page 61: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

DA muundur

1 bitine muundur (impulss-laius muundur, PWM)

• Sisendsignaaliks on nelinurksignaal, mille harvendustegur

(duty cycle) muutub vastavalt keskväärtusele.

• Väljundis peab olema kindlasti

integreeriv element (kondensaator,

mootor, küttekeha, valjuhääldi) !

• Vajab signaali sämplimissageduse

tõstmist 2n korda (n-bittide arv)

• Odav

• Kvaliteetse analoogsignaali

saamiseks vajab väga head filtrit !

Ideaalsignaal

Sama keskväärtusega nelinurksignaal

Tegelik ,filtreeritud väljundsignaal

Page 62: ATR0110 ANALOOG-JA DIGITAALTEHNIKAisc.ttu.ee/materials/martin/ATR0110/Analoog-ja-digitehnika12.pdfX86 mikroprotsessorid •1978 Intel 8086 täissiiniga 16 bitine mikroprotsessor •Nimetus

PWM mikrokontrolleris• Reguleeritakse nelinurksignaali harvendustegurit

• Võimalus reguleerida näiteks valgusdioodi heledust

• Lihtne võimalus saada analoogpinget.

• Arduino - analogWrite

𝑉ä𝑙𝑗𝑢𝑛𝑑𝑝𝑖𝑛𝑔𝑒 𝑘𝑒𝑠𝑘𝑣ää𝑟𝑡𝑢𝑠 = 𝑇𝑜𝑖𝑡𝑒𝑝𝑖𝑛𝑔𝑒 ∗𝐼𝑚𝑝𝑢𝑙𝑠𝑖 𝑝𝑖𝑘𝑘𝑢𝑠

𝑃𝑒𝑟𝑖𝑜𝑜𝑑𝑖 𝑝𝑖𝑘𝑘𝑢𝑠

𝑉ä𝑙𝑗𝑢𝑛𝑑𝑝𝑖𝑛𝑔𝑒 𝑒𝑓𝑒𝑘𝑡𝑖𝑖𝑣𝑣ää𝑟𝑡𝑢𝑠 = 𝑇𝑜𝑖𝑡𝑒𝑝𝑖𝑛𝑔𝑒 ∗𝐼𝑚𝑝𝑢𝑙𝑠𝑖 𝑝𝑖𝑘𝑘𝑢𝑠

𝑃𝑒𝑟𝑖𝑜𝑜𝑑𝑖 𝑝𝑖𝑘𝑘𝑢𝑠