cuprins - masterat.fcim.utm.mdmasterat.fcim.utm.md/informatii/curs_sdc/scd04.pdf · 15.03.2015...

56
15.03.2015 Sisteme de calcul dedicate (04) 1 Cuprins 1. Introducere 2. Modele şi limbaje pentru specificaţia sistemelor 3. Microcontrolere 4. Procesoare dedicate 5. Interfeţe de comunicaţie 6. Periferice pentru sisteme dedicate 7. Dezvoltarea programelor 8. Sisteme de operare dedicate

Upload: others

Post on 08-Sep-2019

8 views

Category:

Documents


0 download

TRANSCRIPT

15.03.2015 Sisteme de calcul dedicate (04) 1

Cuprins

1. Introducere2. Modele şi limbaje pentru specificaţia

sistemelor3. Microcontrolere4. Procesoare dedicate5. Interfeţe de comunicaţie6. Periferice pentru sisteme dedicate7. Dezvoltarea programelor8. Sisteme de operare dedicate

15.03.2015 Sisteme de calcul dedicate (04) 2

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

15.03.2015 Sisteme de calcul dedicate (04) 3

Microcontrolere 8051

Arhitectura 8051Organizarea memorieiRegistre cu funcţii specialePorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 4

Arhitectura 8051 (1)

A fost proiectată de firma Intel la începutul anilor 1980 → familia MCS-51Numeroase microcontrolere proiectate ulterior sunt compatibile cu arhitectura 8051� Diferiţi producători au adoptat arhitectura� Compatibilitatea programelor

Există diferite extensii ale arhitecturii 8051� Memorii de dimensiuni mai mari� Interfeţe de I/E suplimentare

15.03.2015 Sisteme de calcul dedicate (04) 5

Arhitectura 8051 (2)

UCP de 8 biţi → aplicaţii de controlMemorii separate de program şi de date → arhitectură Harvard� Spaţii de adresare de câte 64 KB� Memorie internă de program: 4 KB, 8 KB, 16

KB → EPROM� Memorie internă de date: 128/256 B → RAM

Patru porturi de I/E → 32 de linii bidirecţionaleDouă numărătoare/contoare de timp Interfaţă serială UART

15.03.2015 Sisteme de calcul dedicate (04) 6

Arhitectura 8051 (3)

15.03.2015 Sisteme de calcul dedicate (04) 7

Arhitectura 8051 (4)

Semnale� -INT0, -INT1: surse de întreruperi externe� T0, T1: intrări de ceas pentru numărătoare� -RD: citire pentru memoria RAM externă� -WR: scriere pentru memoria RAM externă� -EA (External Access): selecţia primilor 4

KB (8 KB, 16 KB) ai memoriei de program → memoria internă sau externă

� ALE (Address Latch Enable): semnal pentru multiplexarea adreselor şi datelor (P0)

15.03.2015 Sisteme de calcul dedicate (04) 8

Arhitectura 8051 (5)

� -PSEN (Program Store ENable): semnal de strob pentru citirea memoriei de program externe

� P0: port de adrese (A7..A0) sau date; port de I/E

� P2: port de adrese (A15..A8); port de I/E� P1, P3: porturi de I/E� RXD: intrare pentru comunicaţia serială� TXD: ieşire pentru comunicaţia serială

15.03.2015 Sisteme de calcul dedicate (04) 9

Microcontrolere 8051

Arhitectura 8051Organizarea memorieiRegistre cu funcţii specialePorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 10

Organizarea memoriei (1)

Spaţii de adrese separate pentru memoria de program şi cea de date� Memoria de program poate fi numai citită� Primii 4 KB, 8 KB sau 16 KB ai memoriei de

program sunt interni� Memoria de date poate fi accesată prin

adrese de 8 biţi� Se pot genera adrese de 16 biţi pentru

memoria de date prin registrul DPTR

15.03.2015 Sisteme de calcul dedicate (04) 11

Organizarea memoriei (2)

Memoria de program� După resetare, execuţia programului

începe de la adresa 0000h� Locaţiile 0003h .. 0033h conţin rutinele de

tratare ale întreruperilor� Adresele memoriei de program sunt

întotdeauna de 16 biţi� -EA: validează sau invalidează utilizarea

memoriei de program interne

15.03.2015 Sisteme de calcul dedicate (04) 12

Organizarea memoriei (3)

15.03.2015 Sisteme de calcul dedicate (04) 13

Organizarea memoriei (4)

Configuraţie pentru utilizarea memoriei de program externe

15.03.2015 Sisteme de calcul dedicate (04) 14

Organizarea memoriei (5)

Memoria internă de date� Adresele pentru această memorie sunt de

8 biţi → spaţiu adresabil de 256 octeţi� Memoria este împărţită în mai multe blocuri� Adresele 00h..1Fh: patru bancuri de câte 8

registre (R0 .. R7)� Adresele 20h..2Fh: locaţii adresabile la

nivel de bit (adrese de biţi între 00h..7Fh) � Adresele 30h..7Fh: 80 de locaţii disponibile

(inclusiv pentru stivă)

15.03.2015 Sisteme de calcul dedicate (04) 15

Organizarea memoriei (6)

15.03.2015 Sisteme de calcul dedicate (04) 16

Organizarea memoriei (7)

� Adresele 80h..FFh: registre cu funcţii speciale SFR (Special Function Register) → adresare directă

� Aceeaşi zonă poate conţine 128 de locaţii suplimentare → adresare indirectă

Memoria externă de date� Adresele pentru această memorie pot fi de

8 sau 16 biţi� -RD, -WR: semnale pentru citirea şi

scrierea memoriei externe de date

15.03.2015 Sisteme de calcul dedicate (04) 17

Organizarea memoriei (8)

Configuraţie pentru utilizarea unei memorii externe de date de până la 2 KB

15.03.2015 Sisteme de calcul dedicate (04) 18

Microcontrolere 8051

Arhitectura 8051Organizarea memorieiRegistre cu funcţii specialePorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 19

Registre cu funcţii speciale (1)

Registre utilizate pentru unele instrucţiuni şi pentru controlul diferitelor periferice� Pot fi accesate numai prin adresare directă

Nucleul de bază 8051 conţine 21 de registre speciale SFRMicrocontrolerele îmbunătăţite conţin registre SFR suplimentareRegistrele cu adrese de forma X0h şi X8h sunt adresabile şi la nivel de bit (adrese între 80h..FFh)

15.03.2015 Sisteme de calcul dedicate (04) 20

Registre cu funcţii speciale (2)

15.03.2015 Sisteme de calcul dedicate (04) 21

Registre cu funcţii speciale (3)

Registrul ACC� Registru acumulator� Conţine unul din operanzii instrucţiunilor

aritmetice/logice şi rezultatul� Transferurile între registre trebuie

efectuate prin intermediul acumulatoruluiRegistrul B� Conţine unul din operanzii instrucţiunilor de

înmulţire şi împărţire

15.03.2015 Sisteme de calcul dedicate (04) 22

Registre cu funcţii speciale (4)

Registrul PSW (Program Status Word)� Biţi de stare: CY, AC, OV, P� Bit de stare definit de utilizator: F0� Doi biţi pentru selecţia bancului de registre

Registrul DPTR (Data Pointer)� Constă din două registre de 8 biţi: DPH, DPL� Se utilizează pentru adresarea memoriei

externe

15.03.2015 Sisteme de calcul dedicate (04) 23

Registre cu funcţii speciale (5)

Registrul SP (Stack Pointer)� Indicator de stivă� La resetare este iniţializat cu 07h� La execuţia instrucţiunilor PUSH şi CALL,

conţinutul SP este incrementat cu 1Registrul IE (Interrupt Enable)� Permite validarea/invalidarea întreruperilor� 5 surse de întrerupere: -INT0, -INT1, T0,

T1, portul serial

15.03.2015 Sisteme de calcul dedicate (04) 24

Registre cu funcţii speciale (6)

Registrul IP (Interrupt Priority)� Permite setarea priorităţii întreruperilor� Prioritate înaltă sau scăzută

Registrele P0, P1, P2, P3� Conţin starea liniilor porturilor de I/E� Permit configurarea liniilor porturilor ca

intrări sau ieşiri � La resetare, toate liniile sunt configurate ca

intrări

15.03.2015 Sisteme de calcul dedicate (04) 25

Registre cu funcţii speciale (7)

Registrele TL0/TH0 (Timer 0 Low/High)� Conţin valoarea contorului de timp T0

Registrele TL1/TH1 (Timer 1 Low/High)� Conţin valoarea contorului de timp T1

Registrul TMOD (Timer Mode)� Selectează modul de funcţionare al

contoarelor de timp T0 şi T1: 13 biţi; 16 biţi; 8 biţi cu auto-reîncărcare; două contoare independente de câte 8 biţi

15.03.2015 Sisteme de calcul dedicate (04) 26

Registre cu funcţii speciale (8)

Registrul TCON (Timer Control)� Permite pornirea/oprirea contoarelor� Conţine biţi indicatori ai depăşirii

Registrul SBUF (Serial Port Buffer)� Conţine datele transmise şi recepţionate de

portul serialRegistrul SCON (Serial Port Control)� Conţine biţi pentru: selecţia modului;

starea transmisiei şi recepţiei

15.03.2015 Sisteme de calcul dedicate (04) 27

Microcontrolere 8051

Arhitectura 8051Organizarea memorieiRegistre cu funcţii specialePorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 28

Porturi de I/E (1)

Porturile sunt bidirecţionaleFiecare port conţine: un registru (P0..P3); un driver de ieşire; un buffer de intrarePinii portului P3 sunt multifuncţionali� La aceşti pini se conectează şi semnalele

RXD, TXD, -INT0, -INT1, T0, T1, -WR, -RDControlul direcţiei unei linii de I/E: prin setarea bitului corespunzător al registrului Px� Ieşire: Px = 0 logic� Intrare: Px = 1 logic

15.03.2015 Sisteme de calcul dedicate (04) 29

Porturi de I/E (2)

15.03.2015 Sisteme de calcul dedicate (04) 30

Porturi de I/E (3)

Porturile P1, P2 şi P3 au rezistenţe interne pentru conectarea la tensiunea Vcc (pull-up)� Porturi cvasi-bidirecţionale

Portul P0 nu are o rezistenţă internă pull-up� Liniile P0 utilizate ca ieşiri sunt cu drenă

deschisă → port bidirecţional Porturile P0 şi P2 nu se pot utiliza ca I/E generale dacă este necesară adresarea unei memorii externe

15.03.2015 Sisteme de calcul dedicate (04) 31

15.03.2015 Sisteme de calcul dedicate (04) 32

256 bytes RAM12K FlashAT89S53

256 bytes RAM8K FlashAT89S8252

256 bytes RAM20K FlashAT89C55

256 bytes RAM8K FlashAT89C52

128 bytes RAM4K FlashAT89C51

128 bytes RAM4K FlashAT89C4051

128 bytes RAM2K FlashAT89C2051

64 bytes RAM1K FlashAT89C1051

Data memory sizeFlash memory sizeDevice name

15.03.2015 Sisteme de calcul dedicate (04) 33

15.03.2015 Sisteme de calcul dedicate (04) 34

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

15.03.2015 Sisteme de calcul dedicate (04) 35

Microcontrolere PIC

Arhitectura PICOrganizarea memorieiPorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 36

Arhitectura PIC (1)

PIC – Programmable Interface Controller, redenumit în Programm. Intelligent ComputerMicrocontrolere produse de MicrochipTechnologySpaţii de adresare diferite pentru instrucţiuni şi date → arhitectură HarvardArhitectură RISCDiferite serii: PIC12, PIC16, PIC17, PIC18Date de 8 biţiInstrucţiuni de 12, 14 sau 16 biţi

15.03.2015 Sisteme de calcul dedicate (04) 37

Arhitectura PIC (2)

Număr redus de instrucţiuni: între 33 (PIC12) şi ~80 (PIC18) Instrucţiuni simetrice (ortogonale)Instrucţiunile se execută într-un singur ciclu de instrucţiuni, cu excepţia salturilor (2 cicluri)� Un ciclu de instrucţiuni: 4 cicluri de ceas

Se utilizează suprapunerea fazelor de citire şi execuţie� Pipeline cu două etaje

15.03.2015 Sisteme de calcul dedicate (04) 38

Arhitectura PIC (3)

15.03.2015 Sisteme de calcul dedicate (04) 39

Arhitectura PIC (4)

Arhitectura PIC12F508/509

15.03.2015 Sisteme de calcul dedicate (04) 40

Arhitectura PIC (5)

Instrucţiuni de 12 biţiFrecvenţa semnalului de ceas: 4 MHz� Durata ciclului de instrucţiune: 1 µs

Memorie de program� 512 x 12 (12F508), 1024 x 12 (12F509)

Memorie de date� 25 x 8 (12F508), 41 x 8 (12F509)

Toate registrele speciale (SFR) sunt mapateîn memoria de date

15.03.2015 Sisteme de calcul dedicate (04) 41

Arhitectura PIC (6)

Registrele şi memoria de date pot fi adresate direct sau indirectUAL de 8 biţi� Adunare, scădere, deplasare, operaţii

logice� Registrul de lucru W → păstrează unul din

operanzi� Indicatori: C (Carry), DC (Digit Carry), Z

(Zero)

15.03.2015 Sisteme de calcul dedicate (04) 42

Microcontrolere PIC

Arhitectura PICOrganizarea memorieiPorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 43

Organizarea memoriei (1)

Memoria de program� Memorie flash� Contor de program PC de 10 biţi (12F508)

sau 11 biţi (12F509) → spaţiu adresabil de 2 K x 12

� Sunt implementate numai primele 512 (12F508) sau 1024 (12F509) cuvinte

� La resetare, execuţia programului începe de la adresa 0000h

15.03.2015 Sisteme de calcul dedicate (04) 44

Organizarea memoriei (2)

Memoria de date� În acest spaţiu sunt mapate registrele� Registre generale GPR (General Purpose

Register): � 12F508: 25 � 12F509: 9 + 32 accesibile pe bancuri prin

registrul FSR (File Select Register)

� Registre speciale SFR (Special FunctionRegister) utilizate pentru controlul UCP şi al perifericelor→ 7 registre

15.03.2015 Sisteme de calcul dedicate (04) 45

Organizarea memoriei (3)

Registrele microcontrolerului PIC12F509

15.03.2015 Sisteme de calcul dedicate (04) 46

Organizarea memoriei (4)

Stiva� Stivă hardware� Două cuvinte (12 biţi), Stack 1 şi Stack 2� Instrucţiunea CALL

� Stack 2 ← Stack 1� Stack 1 ← PC + 1

� Instrucţiunea RETLW� PC ← Stack 1� Stack 1 ← Stack 2

15.03.2015 Sisteme de calcul dedicate (04) 47

Microcontrolere PIC

Arhitectura PICOrganizarea memorieiPorturi de I/E

15.03.2015 Sisteme de calcul dedicate (04) 48

Porturi de I/E (1)

Porturi bidirecţionale PORTA, PORTB� PORTA: 5 linii de I/E� PORTB: 8 linii de I/E� PIC12F508/509 conţin numai PORTB (GPIO)

→ 6 liniiControlul direcţiei se realizează prin registrele TRIS (TRISA, TRISB)� Intrare: bitul din registrul TRIS setat la 1� Ieşire: bitul din registrul TRIS setat la 0

15.03.2015 Sisteme de calcul dedicate (04) 49

Porturi de I/E (2)

Observaţii� Pinul RB3/GP3 poate fi utilizat numai

pentru intrare� După resetare, pinii sunt configuraţi ca

intrări� Pentru operaţiile de intrare, porturile nu

memorează datele� Pentru operaţiile de ieşire, datele sunt

memorate până la rescrierea lor

15.03.2015 Sisteme de calcul dedicate (04) 50

Porturi de I/E (3)

15.03.2015 Sisteme de calcul dedicate (04) 51

15.03.2015 Sisteme de calcul dedicate (04) 52

15.03.2015 Sisteme de calcul dedicate (04) 53

15.03.2015 Sisteme de calcul dedicate (04) 54

15.03.2015 Sisteme de calcul dedicate (04) 55

15.03.2015 Sisteme de calcul dedicate (04) 56