Microcontrollers Week 1 – Introductie microcontroller Jesse op den Brouw INLMIC/2014-2015
Computersysteem
Een systeem dat rekenkundige operaties, data
manipulaties en beslissingen kan uitvoeren, aan de hand van een lijst instructies.
2
Computersysteem Een computersysteem bestaat uit de fysieke en tastbare onderdelen,
hardware genaamd. Een computersysteem bevat een lijst van instructies die uitgevoerd
moeten worden, een programma. De verzamelnaam voor programma’s is software. Moderne computers zijn digitaal, ze rekenen met getallen.
3
Computersysteem De minimale hardware van een computersysteem bestaat uit: Processor Geheugen Invoer-uitvoer (Secundair geheugen) Een programma kan worden opgebouwd uit: Toekenning (met expressie, bv A=B+5) Beslissing, (if …) Lus (for, while)
4
Processor Een processor is een digitaal systeem dat data verwerkt. Een processor voert instructies uit. Dit vertelt de processor hoe de data
verwerkt moet wordt.
Een processor heeft dus een rekeneenheid, zodat data verwerkt
(berekend) kan worden.
Een processor heeft mogelijkheid tot tussentijdse opslag van data,
zodat complexe berekeningen kunnen worden uitgevoerd.
Een processor op één plak silicium wordt een microprocessor
genoemd.
5
Geheugen Geheugen wordt gebruikt voor opslag van programma’s en data. ROM Read Only Memory wordt gebruikt om permanente informatie in op
te slaan (opslag van het programma, constanten)
RAM Random Access Memory wordt gebruikt voor opslag van informatie
die nodig is om een bepaalde operatie uit te voeren of informatie die door het programma is gegenereerd (data).
Moderne systemen: programmatuur ook in RAM, geladen vanaf
secundair geheugen (disk).
6
Invoer-uitvoer Een computersysteem voert interactie uit met de omgeving door middel
van invoer- en uitvoerapparaten. Invoer: toetsenbord, schakelaars. Uitvoer: beeldscherm, printer, lampjes. Invoer-uitvoer: seriële en parallelle verbindingen. Invoer-uitvoer wordt in de regel I/O genoemd, of periferie, peripherals.
7
Secundair geheugen Onder secundair geheugen verstaan we apparatuur dat informatie
permanent kan opslaan. Disk Snelle toegang tot data Tape Veel opslagcapaciteit tegen lage kosten Floppy Simpel en goedkoop
8
Schema computersysteem Werkt volgens de Von
Neumann architectuur. Stored program computer. Programma en data in één
geheugen en beschikbaar via één bus. Intel x86/x64 etc.
9
Voorbeeld computersysteem
Foto van een VAX 11/780
10
Wat is een microcontroller? Een compleet computersysteem Processor Geheugen I/O peripherals Een enkel stuk silicium
11
Opbouw microcontroller een microcontroller integreert verschillende componenten:
CPU geheugen digitale I/O lijnen analoge I/O lijnen interrupt controller counter/timer seriële interfaces
12
Processor versus Controller Processor Ontworpen om getallen te “crunchen” Losse chip Zeer snel Veel vermogen Controller Een processor met periferie speciaal voor besturingstaken. Alles op één plak Niet snel Weinig vermogen Meestal één specifieke taak 13
Typische toepassing Een eenvoudige besturingstaak: Thermostaat lees periodiek de temperatuur (4 bit digitale waarde) zet de verwarming aan/uit afhankelijk van de temperatuur (1 lijn) display de huidige temperatuur (display 8 +3 bits) gebruiker kan de temperatuur instellen met knoppen (4 knoppen) gebruikt de seriële interface om de temp. data te downloaden (2 bit) > 20 digitale I/O lijnen, timer, seriële interface
14
Thermostaat met de Z80 Benodigde componenten: CPU (Z80) 2x PIO (2x 16 = 32 I/O lijnen) SIO (seriële I/O) CTC (timer) geheugen (SRAM, Flash, EPROM) Totaal nodig: 8 chips (+ verbindingen) op
een PCB
15
PCB board layout thermostaat met Z80
16
PCB board geroute
17
Thermostaat met ATmega32 Indien een microcontoller gebruikt wordt: CPU minstens 20 digitale I/O lijnen seriële interface timer geheugen (SRAM, Flash, EEPROM)
18
Schema thermostaat met ATmega32 Benodigde componenten: 1 microcontroller Alle componenten zijn geintegreerd op een enkele chip
PCB: minder dan een kwart eurokaart 5x8 cm
19
PCB reductie in grootte
20
Waarom microcontrollers? kleiner board oppervlak sneller te ontwerpen eenvoudig te debuggen en te upgraden lage kosten minder energieconsumptie hoge betrouwbaarheid
kortom microcontrollers besparen tijd & geld!
21
Toepassingsgebieden telecommunicatie automotive industrie lucht- en ruimtevaartindustrie huishoudelijke apparaten, domotica fabrieksautomatisering …
meestal in grote hoeveelheden (90 in autos) → gigantische markt
22
Typen microcontrollers Veel verschillende controllers van vele verschillende fabrikanten (bijv.
PIC, AVR, HC11, 8051, ARM) Controller familie: Dezelfde CPU Verschillende peripherals (aantal I/O, timers, …) Verschillende grootte geheugen (RAM, Flash, EEPROM) Voorbeeld: Atmel AVR ATmega familie Allemaal dezelfde opbouw
23
Typen microcontrollers Controllers met (4), 8, 16, 32 bit bus Wij concentreren ons op kleine 8-bit controllers geen MMU (memory management unit) geen DMA (direct memory access) geen cache geheugen geen FPU (floating point unit) Klokfrequenties tussen 1 – 25 MHz
24
Typen microcontrollers PIC 8 en 16 bits uitvoering DSP-variant ARM 32 bit core met en zonder MMU zeer goedkoop (€2 - €12) snel (100 MHz) veel I/O goede ontwikkelomgeving voor ervaren ontwikkelaars Linux OS (Android) 25
Technische terminologie Embedded System: de microcontroller is deel van het systeem dat een
bepaalde functie heeft (magnetron, mobiele telefoon, printer,…).
Real-Time Systeem: een systeem dat binnen een vastgestelde tijd
moet reageren op gebeurtenissen (events). Indien het systeem te laat reageert kan dat rampzalige gevolgen hebben (break-by-wire in de auto, kerncentrale).
26
Opbouw processor Een processor wordt opgebouwd met behulp van de volgende
bouwstenen. Registers Multiplexers Demultiplexers / decoders Optellers ALU Tellers Flipflops Losse logica / tri-state / ROM
27
Register Een register is een groep flipflops geklokt op één kloksignaal. Vaak in een veelvoud van 4 en 8. D3
D2
D
Q
D1
D
Q
D0
D
Q
D
Q
clk
Q3
Q2
Q1
Q0 28
Multiplexer Een multiplexer is een combinatorische schakeling die één van de
ingangen selecteert en doorgeeft aan de uitgang. Andere naam: selector.
29
Demultiplexer / decoder Een demultiplexer is een combinatorische schakeling die de waarde op
de ingang doorgeeft aan één van de uitgangen met behulp van selectiesignalen. Een decoder selecteert één van
de uitgangen afhankelijk van de selectiesignalen. De decoder mist het signaal “in”. Om van een demultiplexer een
decoder te maken, moet op “in” een logische ‘1’ gezet worden. 30
ALU De ALU is een combinatorische schakeling die een aantal
rekenkundige en logische bewerkingen kan uitvoeren. De ALU wordt besproken in week 2.
Data1
Data 2
Function
Flags
Result
31
Teller Een teller is een sequentiele schakeling, die op een klokflank de
huidige telstand met één vermeerderd. Na de hoogste stand volgt weer de laagste stand (cyclische teller). Telcyclus: 0-1-2-3-4-5-6-7-0-.... Tellen vaak in machten van twee: 4, 8, 16, 32 bits.
counter en reset
16 value
clk 32
Flipflops Flipflops worden gebruikt voor het onthouden van één bit (denk hierbij
aan flags). Worden uitgerust met een enable. Hiermee kunnen ze inhoud bewaren
over klokflanken heen (flipflop neemt zijn eigen inhoud over).
d
D
Q
en
q d
m u x
D
Q
q
en clk clk
NB: registers ook met enable! 33
Losse logica / tri-state Losse logica is nodig voor het bouwen van logische functies die niet in
losse bouwstenen te verkrijgen zijn. Vaak wordt de term glue logic gebruikt. Tri-state buffers zijn buffers waarvan de uitgang losgekoppeld kan
worden. Zo kunnen meerdere uitgangen aan elkaar gekoppeld worden. In werkelijkheid is de uitgang niet losgekoppeld maar hoog impedant (high Z).
en
∆
in
out
out = in als en = 1 out = high Z als en = 0 34
ROM Een ROM is een type geheugen dat niet gewist kan worden, de
informatie blijft bewaard ook als de voedingsspanning wordt uitgezet. Na het aanbieden van een bitpatroon, adres genaamd, verschijnt op de
uitgangen een bitpatroon, data genaamd. Losse logica kan in de vorm van een ROM gemaakt worden.
ROM adres
4
16x8
8
data 35
De eenvoudige kassa Ontwerp een apparaat dat extern
data
aangeboden data herhaald kan optellen (kassa). adder
Optellen moet gebeuren op een
klokflank. Resultaat moet voor langere tijd
enable clk
register
vastgehouden kunnen worden. De klok is een hulpsignaal, heeft geen
logische functie.
result
36
Eenvoudige rekenaar Ontwerp een systeem met twee registers en een opteller.
Register A moet data van buiten het systeem halen en van de opteller. Register B moet data van register A overnemen en van de opteller. Lijstje van onderdelen: 1x opteller 2x register met enable 2x multiplexer 2-naar-1 Aantal besturingssignalen is 4.
37
Blokschema eenvoudige rekenaar Voorbeeld werking:
data
sela
muxa
muxb
ena
a
b
adder result
selb enb
a=a+b ena = 1 enb =0 sela = 0 selb = b = a en a = data ena = 1 enb =1 sela = 1 selb = 0 38
De Haagse Hogeschool, Delft 015-2606311
[email protected] www.dehaagsehogeschool.nl