Transcript Riistvarapõhine programmeerimine
Slide 1
Riistvarapõhine
programmeerimine
Loeng 9
Mikrokontrollerite pered
PIC
Motorola
Slide 2
Mikrokontroller
Ühe kiibi peal:
Protsessor
Sisendi liides
Väljundi liides
Mikrokontrollerite pered – sama
arhitektuuriga kontrollerite seeriad
02/07/2004
ID218 Riistvaralähedane
programmeerimine
2
Slide 3
Mikrokontrollerite pered
CISC arhitektuuriga
Motorola MC68HC11
RISC arhitektuuriga
Microchip PIC16
02/07/2004
ID218 Riistvaralähedane
programmeerimine
3
Slide 4
PIC
Microchip,
http://www.microchip.com
RISC-based architecture of OTP, FLASH,
EEPROM and ROM microcontrollers
16-bit dsPIC® Digital Signal Controllers
A complete line of high-endurance
Serial EEPROMs
Development tools
02/07/2004
ID218 Riistvaralähedane
programmeerimine
4
Slide 5
PIC16C84, üldinfo I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
5
Slide 6
PIC 16C84, üldinfo II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
6
Slide 7
PIC16C84, mälud
ROM INSTRUCTION MEMORY
14 x 1 K
OTI (One Time Programmable)
RAM MEMORY
12 eriregistrit + 36 File Registers
EEPROM MEMORY
8 x 64
02/07/2004
ID218 Riistvaralähedane
programmeerimine
7
Slide 8
PIC16C84, skeem
02/07/2004
ID218 Riistvaralähedane
programmeerimine
8
Slide 9
PIC16C84, ehitus I
Eraldi programmi mälu ja andmete mälu
02/07/2004
ID218 Riistvaralähedane
programmeerimine
9
Slide 10
PIC16C84, ehitus II
Register W - akkumulator, tööregister
02/07/2004
ID218 Riistvaralähedane
programmeerimine
10
Slide 11
PIC16C84, ehitus III
Üldregistrid
02/07/2004
File Registers (RAM)
FSR
Status
PC
ID218 Riistvaralähedane
programmeerimine
11
Slide 12
PIC16C84, ehitus IV
Pinu
Klassikaline puudub
8-level stack
8 pesa ‘return address’-le
Call – 8 korda
02/07/2004
ID218 Riistvaralähedane
programmeerimine
12
Slide 13
PIC16C84, käsustik I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
13
Slide 14
PIC16C84, käsustik II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
14
Slide 15
PIC16C84, käsustik III
Kokku
Käsk
Käsukood
Operand
Käsu täitmine
Siirdekäsud
Konveier
02/07/2004
-
35 käsku
14 bitti
-
7 bitti
7 bitti
-
1 tsükkel
2 tsükkli
2 sammu
ID218 Riistvaralähedane
programmeerimine
15
Slide 16
PIC16C84, käsustik IV
ADDWF f,d
f
d
Näiteks:
ADDWF 30,F
ADDWF 30,W
02/07/2004
File Register
sihtkoht
F30 =
W
=
ID218 Riistvaralähedane
programmeerimine
F30 +
F30 +
W
W
16
Slide 17
PIC16C84, käsustik VI
Kaudne adresseerimine
02/07/2004
ID218 Riistvaralähedane
programmeerimine
17
Slide 18
PIC16C84, käsustik V
Otsene adresseerimine
02/07/2004
ID218 Riistvaralähedane
programmeerimine
18
Slide 19
PIC16C84, input/output
INPUT/OUTPUT PORTS:
Port A
5 bit
Port B
8 bit
Iga bitti suund eraldi programmeeritav
Väljund suuteline LED-i põlema panna
02/07/2004
ID218 Riistvaralähedane
programmeerimine
19
Slide 20
PIC16C84, timer
internal 8 bit counter/timer
CPU clock / 4
Counter from Port A bit 4
02/07/2004
ID218 Riistvaralähedane
programmeerimine
20
Slide 21
PIC16C…, muud valikud I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
21
Slide 22
PIC16C…, muud valikud II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
22
Slide 23
Motorola
Freescale Semiconductors,
http://www.mot-sps.com/
32-bit embedded processors
Digital Signal processors
Microcontrollers
Communication processors
Network processors
02/07/2004
ID218 Riistvaralähedane
programmeerimine
23
Slide 24
MC68HC11F1, üldinfo
8-bitine kontroller
1024 Bytes of On-Chip RAM
512 Bytes of On-Chip EEPROM
Serial Peripheral Interface (SPI)
Eight-Channel 8-Bit A/D Converter
22 int/ext interrupt sources
Enhanced 16-Bit Timer System
Speeds of up to 6 MHz
02/07/2004
ID218 Riistvaralähedane
programmeerimine
24
Slide 25
MC68HC11F1, mälud
Control Registers
EEPROM
RAM
ROM
02/07/2004
96 bytes
512 bytes
1024 bytes
256 bytes
ID218 Riistvaralähedane
programmeerimine
25
Slide 26
MC68HC11F1, mälukaart
02/07/2004
ID218 Riistvaralähedane
programmeerimine
26
Slide 27
MC68HC11F1, registrid
02/07/2004
ID218 Riistvaralähedane
programmeerimine
27
Slide 28
MC68HC11F1,
adresseerimisviisid
Immediate
Direct
Extended
Indexed
Inherent
Relative
02/07/2004
ID218 Riistvaralähedane
programmeerimine
28
Slide 29
MC68HC11F1, Immidiate
Käsus antakse mäluopefrandi
aadress(pikkus sobib sihtkoha
suurusele) - vahetu
ADDA $10
SUBA $20
LDD $30
02/07/2004
ID218 Riistvaralähedane
programmeerimine
29
Slide 30
MC68HC11F1, Direct
Käsus antakse operandi mälu aadress
(pikkus 1 baiti) - otsene
ADDA $10
SUBA $20
LDD $30
02/07/2004
ID218 Riistvaralähedane
programmeerimine
30
Slide 31
MC68HC11F1, Extended
Käsus antakse operandi mäluaadress
(pikkus 2 baiti) - laiendatud
LDAA $1000
LDX
$1000
ADDD $31030
02/07/2004
ID218 Riistvaralähedane
programmeerimine
31
Slide 32
MC68HC11F1, Indexed
Indeks
Operandi mäluaadress on
indeksregistri ja 8-bitise offseti
summa
ADDA
LDAA
02/07/2004
10,X
3,Y
ID218 Riistvaralähedane
programmeerimine
32
Slide 33
MC68HC11F1, Inherent
Operandi aadressi ja adresserimisviisi
määrab ära käsukood –
kaasasündinud
INCB
PSHA
02/07/2004
ID218 Riistvaralähedane
programmeerimine
33
Slide 34
MC68HC11F1, Relative
8-bit offset liidetakse käsuloenduriga.
Kasutatakse siirdkäskudes suhteline
Label
02/07/2004
BEQ Label
ADDA #10
...
DECB
ID218 Riistvaralähedane
programmeerimine
34
Slide 35
MC68HC11F1, skeem I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
35
Slide 36
MC68HC11F1, skeem II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
36
Slide 37
MC68HC11F1, käsustik I
Üle 120 käsku
Käsupikkus 1 – 4 baiti
Täitmiseks läheb 2 – 7 tsükli …
02/07/2004
ID218 Riistvaralähedane
programmeerimine
37
Slide 38
MC68HC11F1, käsustik II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
38
Slide 39
MC68HC11F1, input/output
SCI, serial communications interface
COM-port, (UART)
SPI, serial peripheral interface, (I2C)
Analog-to-Digital Converter
Parallel Input/Output
ports A, B, C, D, E, F, G; 54 pins
02/07/2004
ID218 Riistvaralähedane
programmeerimine
39
Slide 40
MC68HC11F1, timer
16-bit timer
CPU clock / 1, 4, 8 ja 16
8-bit counter
02/07/2004
ID218 Riistvaralähedane
programmeerimine
40
Slide 41
Kokkuvõte I
PIC16
Lihtne RISC protsessor
Harvardi arhitektuur
Eraldi programmi mälu
Lihtne käsustik
Kaks adresseerimisviisi
02/07/2004
ID218 Riistvaralähedane
programmeerimine
41
Slide 42
Kokkuvõte II
MS6800
Keeruline CISC protsessor
von Neumann arhitektuur
Võimalus kasutada välist mälu
Rikas käsustik
Kuus adresseerimisviisi
02/07/2004
ID218 Riistvaralähedane
programmeerimine
42
Slide 43
Kokkuvõte III
Ei ole ‘parimat’ protsessorit.
On olemas antud ülesandele sobivad
või mittesobivad protsessorid.
02/07/2004
ID218 Riistvaralähedane
programmeerimine
43
Riistvarapõhine
programmeerimine
Loeng 9
Mikrokontrollerite pered
PIC
Motorola
Slide 2
Mikrokontroller
Ühe kiibi peal:
Protsessor
Sisendi liides
Väljundi liides
Mikrokontrollerite pered – sama
arhitektuuriga kontrollerite seeriad
02/07/2004
ID218 Riistvaralähedane
programmeerimine
2
Slide 3
Mikrokontrollerite pered
CISC arhitektuuriga
Motorola MC68HC11
RISC arhitektuuriga
Microchip PIC16
02/07/2004
ID218 Riistvaralähedane
programmeerimine
3
Slide 4
PIC
Microchip,
http://www.microchip.com
RISC-based architecture of OTP, FLASH,
EEPROM and ROM microcontrollers
16-bit dsPIC® Digital Signal Controllers
A complete line of high-endurance
Serial EEPROMs
Development tools
02/07/2004
ID218 Riistvaralähedane
programmeerimine
4
Slide 5
PIC16C84, üldinfo I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
5
Slide 6
PIC 16C84, üldinfo II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
6
Slide 7
PIC16C84, mälud
ROM INSTRUCTION MEMORY
14 x 1 K
OTI (One Time Programmable)
RAM MEMORY
12 eriregistrit + 36 File Registers
EEPROM MEMORY
8 x 64
02/07/2004
ID218 Riistvaralähedane
programmeerimine
7
Slide 8
PIC16C84, skeem
02/07/2004
ID218 Riistvaralähedane
programmeerimine
8
Slide 9
PIC16C84, ehitus I
Eraldi programmi mälu ja andmete mälu
02/07/2004
ID218 Riistvaralähedane
programmeerimine
9
Slide 10
PIC16C84, ehitus II
Register W - akkumulator, tööregister
02/07/2004
ID218 Riistvaralähedane
programmeerimine
10
Slide 11
PIC16C84, ehitus III
Üldregistrid
02/07/2004
File Registers (RAM)
FSR
Status
PC
ID218 Riistvaralähedane
programmeerimine
11
Slide 12
PIC16C84, ehitus IV
Pinu
Klassikaline puudub
8-level stack
8 pesa ‘return address’-le
Call – 8 korda
02/07/2004
ID218 Riistvaralähedane
programmeerimine
12
Slide 13
PIC16C84, käsustik I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
13
Slide 14
PIC16C84, käsustik II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
14
Slide 15
PIC16C84, käsustik III
Kokku
Käsk
Käsukood
Operand
Käsu täitmine
Siirdekäsud
Konveier
02/07/2004
-
35 käsku
14 bitti
-
7 bitti
7 bitti
-
1 tsükkel
2 tsükkli
2 sammu
ID218 Riistvaralähedane
programmeerimine
15
Slide 16
PIC16C84, käsustik IV
ADDWF f,d
f
d
Näiteks:
ADDWF 30,F
ADDWF 30,W
02/07/2004
File Register
sihtkoht
F30 =
W
=
ID218 Riistvaralähedane
programmeerimine
F30 +
F30 +
W
W
16
Slide 17
PIC16C84, käsustik VI
Kaudne adresseerimine
02/07/2004
ID218 Riistvaralähedane
programmeerimine
17
Slide 18
PIC16C84, käsustik V
Otsene adresseerimine
02/07/2004
ID218 Riistvaralähedane
programmeerimine
18
Slide 19
PIC16C84, input/output
INPUT/OUTPUT PORTS:
Port A
5 bit
Port B
8 bit
Iga bitti suund eraldi programmeeritav
Väljund suuteline LED-i põlema panna
02/07/2004
ID218 Riistvaralähedane
programmeerimine
19
Slide 20
PIC16C84, timer
internal 8 bit counter/timer
CPU clock / 4
Counter from Port A bit 4
02/07/2004
ID218 Riistvaralähedane
programmeerimine
20
Slide 21
PIC16C…, muud valikud I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
21
Slide 22
PIC16C…, muud valikud II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
22
Slide 23
Motorola
Freescale Semiconductors,
http://www.mot-sps.com/
32-bit embedded processors
Digital Signal processors
Microcontrollers
Communication processors
Network processors
02/07/2004
ID218 Riistvaralähedane
programmeerimine
23
Slide 24
MC68HC11F1, üldinfo
8-bitine kontroller
1024 Bytes of On-Chip RAM
512 Bytes of On-Chip EEPROM
Serial Peripheral Interface (SPI)
Eight-Channel 8-Bit A/D Converter
22 int/ext interrupt sources
Enhanced 16-Bit Timer System
Speeds of up to 6 MHz
02/07/2004
ID218 Riistvaralähedane
programmeerimine
24
Slide 25
MC68HC11F1, mälud
Control Registers
EEPROM
RAM
ROM
02/07/2004
96 bytes
512 bytes
1024 bytes
256 bytes
ID218 Riistvaralähedane
programmeerimine
25
Slide 26
MC68HC11F1, mälukaart
02/07/2004
ID218 Riistvaralähedane
programmeerimine
26
Slide 27
MC68HC11F1, registrid
02/07/2004
ID218 Riistvaralähedane
programmeerimine
27
Slide 28
MC68HC11F1,
adresseerimisviisid
Immediate
Direct
Extended
Indexed
Inherent
Relative
02/07/2004
ID218 Riistvaralähedane
programmeerimine
28
Slide 29
MC68HC11F1, Immidiate
Käsus antakse mäluopefrandi
aadress(pikkus sobib sihtkoha
suurusele) - vahetu
ADDA $10
SUBA $20
LDD $30
02/07/2004
ID218 Riistvaralähedane
programmeerimine
29
Slide 30
MC68HC11F1, Direct
Käsus antakse operandi mälu aadress
(pikkus 1 baiti) - otsene
ADDA $10
SUBA $20
LDD $30
02/07/2004
ID218 Riistvaralähedane
programmeerimine
30
Slide 31
MC68HC11F1, Extended
Käsus antakse operandi mäluaadress
(pikkus 2 baiti) - laiendatud
LDAA $1000
LDX
$1000
ADDD $31030
02/07/2004
ID218 Riistvaralähedane
programmeerimine
31
Slide 32
MC68HC11F1, Indexed
Indeks
Operandi mäluaadress on
indeksregistri ja 8-bitise offseti
summa
ADDA
LDAA
02/07/2004
10,X
3,Y
ID218 Riistvaralähedane
programmeerimine
32
Slide 33
MC68HC11F1, Inherent
Operandi aadressi ja adresserimisviisi
määrab ära käsukood –
kaasasündinud
INCB
PSHA
02/07/2004
ID218 Riistvaralähedane
programmeerimine
33
Slide 34
MC68HC11F1, Relative
8-bit offset liidetakse käsuloenduriga.
Kasutatakse siirdkäskudes suhteline
Label
02/07/2004
BEQ Label
ADDA #10
...
DECB
ID218 Riistvaralähedane
programmeerimine
34
Slide 35
MC68HC11F1, skeem I
02/07/2004
ID218 Riistvaralähedane
programmeerimine
35
Slide 36
MC68HC11F1, skeem II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
36
Slide 37
MC68HC11F1, käsustik I
Üle 120 käsku
Käsupikkus 1 – 4 baiti
Täitmiseks läheb 2 – 7 tsükli …
02/07/2004
ID218 Riistvaralähedane
programmeerimine
37
Slide 38
MC68HC11F1, käsustik II
02/07/2004
ID218 Riistvaralähedane
programmeerimine
38
Slide 39
MC68HC11F1, input/output
SCI, serial communications interface
COM-port, (UART)
SPI, serial peripheral interface, (I2C)
Analog-to-Digital Converter
Parallel Input/Output
ports A, B, C, D, E, F, G; 54 pins
02/07/2004
ID218 Riistvaralähedane
programmeerimine
39
Slide 40
MC68HC11F1, timer
16-bit timer
CPU clock / 1, 4, 8 ja 16
8-bit counter
02/07/2004
ID218 Riistvaralähedane
programmeerimine
40
Slide 41
Kokkuvõte I
PIC16
Lihtne RISC protsessor
Harvardi arhitektuur
Eraldi programmi mälu
Lihtne käsustik
Kaks adresseerimisviisi
02/07/2004
ID218 Riistvaralähedane
programmeerimine
41
Slide 42
Kokkuvõte II
MS6800
Keeruline CISC protsessor
von Neumann arhitektuur
Võimalus kasutada välist mälu
Rikas käsustik
Kuus adresseerimisviisi
02/07/2004
ID218 Riistvaralähedane
programmeerimine
42
Slide 43
Kokkuvõte III
Ei ole ‘parimat’ protsessorit.
On olemas antud ülesandele sobivad
või mittesobivad protsessorid.
02/07/2004
ID218 Riistvaralähedane
programmeerimine
43