cuprins - masterat.fcim.utm.mdmasterat.fcim.utm.md/informatii/curs_sdc/scd04.pdf · 15.03.2015...
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) 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) 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) 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) 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) 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) 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) 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) 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