76
Cuprins 1. Introducere 2. Modele și limbaje pentru specificația sistemelor 3. Interfețe de comunicație 4. Periferice pentru sisteme dedicate 5. Microcontrolere 6. Procesoare dedicate 7. Dezvoltarea programelor 8. Implementarea sistemelor dedicate Sisteme de calcul dedicate (05) 29.11.2019 1

SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

  • Upload
    others

  • View
    44

  • Download
    1

Embed Size (px)

Citation preview

Page 1: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Cuprins

1. Introducere

2. Modele și limbaje pentru specificația sistemelor

3. Interfețe de comunicație

4. Periferice pentru sisteme dedicate

5. Microcontrolere

6. Procesoare dedicate

7. Dezvoltarea programelor

8. Implementarea sistemelor dedicate

Sisteme de calcul dedicate (05) 29.11.2019 1

Page 2: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere

•Microcontrolere 8051

•Microcontrolere PIC

•Microcontrolere AVR

•Microcontrolere DSP

Sisteme de calcul dedicate (05) 29.11.2019 2

Page 3: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere 8051

Arhitectura 8051

Organizarea memoriei

Registre cu funcții speciale

Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 3

Page 4: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura 8051 (1)

•A fost proiectată de firma Intel la începutul anilor 1980 familia MCS-51

•Numeroase microcontrolere proiectate ulterior sunt compatibile cu arhitectura 8051Diferiț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

Sisteme de calcul dedicate (05) 29.11.2019 4

Page 5: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura 8051 (2)

•UCP de 8 biți aplicații de control•Memorii 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 ROM (EPROM)

Memorie internă de date: 128/256 B RAM•Patru porturi de I/E 32 linii bidirecționale•Două numărătoare/contoare de timp •Interfață serială UART

Sisteme de calcul dedicate (05) 29.11.2019 5

Page 6: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura 8051 (3)

Sisteme de calcul dedicate (05) 29.11.2019 6

Page 7: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura 8051 (4)

•SemnaleINT0#, INT1#: surse de întreruperi externeT0, T1: intrări de ceas pentru numărătoareRD#: 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)

Sisteme de calcul dedicate (05) 29.11.2019 7

Page 8: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

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ă

Sisteme de calcul dedicate (05) 29.11.2019 8

Page 9: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere 8051

Arhitectura 8051

Organizarea memoriei

Registre cu funcții speciale

Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 9

Page 10: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (1)

•Spații de adrese separate pentru memoria de program și cea de dateMemoria 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

Sisteme de calcul dedicate (05) 29.11.2019 10

Page 11: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (2)

•Memoria de program După resetare, execuția programului începe de la adresa 0x0000

Locațiile 0x0003 .. 0x0033 conțin rutinele de tratare a întreruperilor

Adresele memoriei de program sunt întotdeauna de 16 biți

EA#: validează sau invalidează utilizarea memoriei de program interne

Sisteme de calcul dedicate (05) 29.11.2019 11

Page 12: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (3)

Sisteme de calcul dedicate (05) 29.11.2019 12

Page 13: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (4)

Configurație pentru utilizarea memoriei de program externe

29.11.2019 Sisteme de calcul dedicate (05) 13

Page 14: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (5)

•Memoria internă de dateAdresele pentru această memorie sunt de 8 biți spațiu adresabil de 256 octețiMemoria este împărțită în mai multe blocuriAdresele 0x00 .. 0x1F: patru bancuri de câte 8 registre (R0 .. R7)Adresele 0x20 .. 0x2F: locații adresabile la nivel de bit (adrese de biți între 0x00 .. 0x7F) Adresele 0x30 .. 0x7F: 80 de locații disponibile (inclusiv pentru stivă)

Sisteme de calcul dedicate (05) 29.11.2019 14

Page 15: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (6)

Sisteme de calcul dedicate (05) 29.11.2019 15

Page 16: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (7)

Adresele 0x80 .. 0xFF: 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 dateAdresele pentru această memorie pot fi de 8 sau 16 biți

RD#, WR#: semnale pentru citirea și scrierea memoriei externe de date

Sisteme de calcul dedicate (05) 29.11.2019 16

Page 17: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Organizarea memoriei (8)

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

29.11.2019 Sisteme de calcul dedicate (05) 17

Page 18: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere 8051

Arhitectura 8051

Organizarea memoriei

Registre cu funcții speciale

Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 18

Page 19: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Registre cu funcții speciale (1)

•Registre utilizate pentru unele instrucțiuni și pentru controlul diferitelor perifericePot fi accesate numai prin adresare directă

•Nucleul de bază 8051 conține 21 de registre speciale SFR

•Microcontrolerele îmbunătățite conțin registre SFR suplimentare

•Registrele cu adrese de forma X0 și X8 sunt adresabile și la nivel de bit (între 0x80 .. 0xFF)

Sisteme de calcul dedicate (05) 29.11.2019 19

Page 20: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Registre cu funcții speciale (2)

Sisteme de calcul dedicate (05) 29.11.2019 20

Page 21: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Registre cu funcții speciale (3)

•Registrul ACCRegistru acumulator

Conține unul din operanzii instrucțiunilor aritmetice/logice și rezultatul

Transferurile între registre trebuie efectuate prin intermediul acumulatorului

•Registrul BConține unul din operanzii instrucțiunilor de înmulțire și împărțire

Sisteme de calcul dedicate (05) 29.11.2019 21

Page 22: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

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

Sisteme de calcul dedicate (05) 29.11.2019 22

Page 23: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Registre cu funcții speciale (5)

•Registrul SP (Stack Pointer)Indicator de stivă

La resetare este inițializat cu 0x07

La execuția instrucțiunilor PUSH și CALL, conținutul SP este incrementat cu 1

•Registrul IE (Interrupt Enable)Permite validarea/invalidarea întreruperilor

5 surse de întrerupere: INT0#, INT1#, T0, T1, portul serial

Sisteme de calcul dedicate (05) 29.11.2019 23

Page 24: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Registre cu funcții speciale (6)

•Registrul IP (Interrupt Priority)Permite setarea priorității întreruperilor

Prioritate înaltă sau scăzută

•Registrele P0, P1, P2, P3Conț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

Sisteme de calcul dedicate (05) 29.11.2019 24

Page 25: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

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

Sisteme de calcul dedicate (05) 29.11.2019 25

Page 26: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

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 serial

•Registrul SCON (Serial Port Control)Conține biți pentru: selecția modului; starea transmisiei și recepției

Sisteme de calcul dedicate (05) 29.11.2019 26

Page 27: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere 8051

Arhitectura 8051

Organizarea memoriei

Registre cu funcții speciale

Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 27

Page 28: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Porturi de I/E (1)

•Porturile sunt bidirecționale•Fiecare port conține: un registru (P0..P3); un driver de ieșire; un buffer de intrare•Pinii portului P3 sunt multifuncționaliLa acești pini se conectează și semnalele RXD,

TXD, INT0#, INT1#, T0, T1, WR#, RD#•Controlul direcției unei linii de I/E: prin setarea bitului corespunzător al registrului PxIeșire: Px = '0'

Intrare: Px = '1'

Sisteme de calcul dedicate (05) 29.11.2019 28

Page 29: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Porturi de I/E (2)

•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

Sisteme de calcul dedicate (05) 29.11.2019 29

Page 30: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere

•Microcontrolere 8051

•Microcontrolere PIC

•Microcontrolere AVR

•Microcontrolere DSP

Sisteme de calcul dedicate (05) 29.11.2019 30

Page 31: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere PIC

Prezentare generală

Arhitectura PIC24H

Sisteme de calcul dedicate (05) 29.11.2019 31

Page 32: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (1)

•PIC – Programmable Interface Controller, redenumit în Programm. Intelligent Computer

•Microcontrolere produse de MicrochipTechnology

•Diferite serii: PIC10, PIC12, PIC16, PIC17, PIC18,PIC24, PIC32

•Instrucțiuni de 12, 14, 16, 24 sau 32 biți

•Date de 8, 16 sau 32 biți

•Arhitectură Harvard

•Arhitectură RISC

Sisteme de calcul dedicate (05) 29.11.2019 32

Page 33: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (2)

•Instrucțiunile se execută într-un singur ciclu de instrucțiuni (salturi: 2 cicluri)Un ciclu de instrucțiuni: 4 cicluri de ceas

•Memoria de date RAMSetul de registre funcționează ca o memorie RAM Bancuri de memorie pentru extinderea adresării

•Memoria de program Implementare: memorie ROM, EEPROM sau flash

•Dimensiunea cuvântuluiUnitatea de adresare a memoriei de program nu este

aceeași cu cea a memoriei de date

Sisteme de calcul dedicate (05) 29.11.2019 33

Page 34: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (3)

•Arhitectura de bază (PIC10)Un singur registru acumulator (W)64 de registre (8 biți) locații RAMMemoria de date și memoria de program nu sunt

adresabile directMemorie de date (flash): 128 B Memorie de program (flash): 256 .. 576 cuvinte

(12 biți)Stivă hardware de două cuvinte pentru apeluri de

subrutine Adresarea indirectă este posibilă prin două

registre suplimentare (FSR și INDF)

Sisteme de calcul dedicate (05) 29.11.2019 34

Page 35: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (4)

•PIC12Memorie RAM: 256 B•Primele 32 locații (8 biți): registre cu funcții speciale

•Următoarele locații: memorie RAM

Memorie de date (flash): 128 B

Memorie de program (flash): 3,5 KB (2 K cuvinte de 14 biți), adresabilă direct •Extindere până la 8 K cuvinte

Stivă hardware de 8 cuvinte

Sisteme de calcul dedicate (05) 29.11.2019 35

Page 36: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (5)

•PIC16Memorie RAM: 1 KB, 2KB sau 4 KB

Memorie de date (flash): 128 B sau 256 B

Memorie de program (flash): 3,5 KB .. 56 KB (2 K cuvinte .. 32 K cuvinte de 14 biți), adresabilă direct

Stivă hardware de 8 cuvinte

Sisteme de calcul dedicate (05) 29.11.2019 36

Page 37: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (6)

•PIC18 Memorie RAM: 3728 B, 4 KB sau 8 KBMemorie de date (flash): 256 B .. 1 KBMemorie de program (flash): 16 KB .. 128 KBAcces de citire la memoria de programTransferuri directe între registre Circuit de înmulțire de 8 x 8 biți Stivă hardware de 31 cuvinte Instrucțiuni de salt condiționat

Sisteme de calcul dedicate (05) 29.11.2019 37

Page 38: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (7)

•PIC24 Familii de 16 biți•PIC24F: consum de energie redus, până la 16 MIPS•PIC24H: performanțe medii, până la 40 MIPS•PIC24EP: performanțe superioare, până la 70 MIPS

16 registre de lucru (W0 .. W15), 16 bițiMemorie RAM: 512 B .. 96 KB Memorie de program (flash): 4 KB .. 1024 KBInstrucțiuni de 24 biți Stivă software Operație de înmulțire de 16 x 16 biți cu semn

Sisteme de calcul dedicate (05) 29.11.2019 38

Page 39: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (8)

•PIC32 Nucleu MIPS M4K sau microAptiv de 32 biți

Instrucțiuni de 32 sau 16 biți

Buffer de preîncărcare a instrucțiunilor (256 B)

Operație de înmulțire și acumulare (32x32 biți)

Serii cu performanțe diferite•De bază: PIC32MM, PIC32MX1/2/5

•Performanțe medii: PIC32MX3/4/6/7, PIC32MK

•Performanțe ridicate: PIC32MZ

Sisteme de calcul dedicate (05) 29.11.2019 39

Page 40: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (9)

PIC32MM•Frecvența: 25 MHz; putere consumată redusă•Memorie SRAM: 4 KB .. 32 KB•Memorie de program (flash): 16 KB .. 256 KB

PIC32MX1/2/5•Frecvența: 40 MHz, 50 MHz sau 72 MHz•Memorie SRAM: 4 KB .. 64 KB•Memorie de program (flash): 16 KB .. 512 KB •Interfață USB (gazdă, dispozitiv, OTG)•Opțiunea eXtreme Low Power (XLP)•PIC32MX5: interfață CAN 2.0B

Sisteme de calcul dedicate (05) 29.11.2019 40

Page 41: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (10)

PIC32MX3/4/6/7•Frecvența: până la 120 MHz (PIC32MX3/4) sau 80

MHz (PIC32MX6/7)•Memorie SRAM: 16 KB .. 128 KB•Memorie de program (flash): 64 KB .. 512 KB •Interfață USB (gazdă, dispozitiv, OTG)•PIC32MX6/7: controler Ethernet MAC 10/100•PIC32MX7: interfață duală CAN 2.0B

PIC32MK•Frecvența: 120 MHz•Modul PWM pentru controlul motoarelor

Sisteme de calcul dedicate (05) 29.11.2019 41

Page 42: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (11)

PIC32MZ•Nucleu MIPS M4K: 252 MHz, 415 MIPS

•Nucleu MIPS microAptiv: 200 MHz, 330 MIPS

•Unitate în VM (PIC32MZ EF): 32 și 64 de biți

•Memorie SRAM: 128 KB .. 640 KB

•Memorie de program (flash): 512 KB .. 2 MB

•Memorii cache de instrucțiuni și de date (32 KB)

•Unitate grafică (GPU) 2D

•Modul criptografic, cu generator de numere aleatoare

Sisteme de calcul dedicate (05) 29.11.2019 42

Page 43: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere PIC

Prezentare generală

Arhitectura PIC24H

Sisteme de calcul dedicate (05) 29.11.2019 43

Page 44: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (1)

•CaracteristiciSet de instrucțiuni optimizat pentru limbajul C

Adresare liniară a memoriei de program

Adresare liniară a memoriei de date

Un ciclu de ceas pentru majoritatea instrucțiunilor

Operații de împărțire de 32/16 și 16/16 biți

Modul DMA cu 8 canale, cu buffer de 2 KB

Memorie SRAM de date: până la 30 KB

Memorie flash de program: până la 256 KB

Până la 85 pini de I/E, pini de intrare toleranți la 5 V

Sisteme de calcul dedicate (05) 29.11.2019 44

Page 45: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (2)

Schema bloc

29.11.2019 Sisteme de calcul dedicate (05) 45

Page 46: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (3)

•UCP Fiecare registru de lucru poate conține date,

adrese sau valori de offset•W15: indicator de stivă (SP)

Spațiul memoriei de program: 4 M cuvinte (24 biți)Spațiul memoriei de date: 32 K cuvinte sau 64 KB Unitate de generare a adreselor (AGU):

accesează memoria de date ca un spațiu liniar (indirect)Datele din memoria de program pot fi accesate

direct prin mecanismul Program Space Visibility

Sisteme de calcul dedicate (05) 29.11.2019 46

Page 47: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (4)

Memorie RAM DMA de 2 KB, accesibilă simultan de UCP și controlerul DMA

Se pot executa instrucțiuni cu trei operanzi într-un singur ciclu de ceas

Instrucțiune REPEAT pentru bucle de program

Circuit de înmulțire de 17 x 17 biți

Operații de împărțire iterative bucle REPEAT

Circuit de 40 biți pentru deplasarea la stânga sau la dreapta cu până la 16 biți un ciclu

Sistem de întreruperi cu 7 nivele de prioritate

Sisteme de calcul dedicate (05) 29.11.2019 47

Page 48: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (5)

•Convertoare A/D

Până la 32 canale analogice

Rezoluție configurabilă de 10 sau 12 biți

Rata de eșantionare•10 biți: 1,1 M eșantioane/s (2,2 M eșantioane/s cu

două convertoare A/D)

•12 biți: 500 K eșantioane/s (1 M eșantioane/s cu două convertoare A/D)

Comanda conversiei: manuală sau sincronizată cu una din patru surse de declanșare

Sisteme de calcul dedicate (05) 29.11.2019 48

Page 49: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (6)

•Contoare de timpPână la 9 contoare de timp de 16 biți Se pot configura ca și 4 contoare de 32 de bițiDiferite moduri: ceas de timp real, contor de

timp, numărător sincron sau asincron

•Module comparatoare/PWMCompară valoarea unei baze de timp selectate

cu valoarea unor registre de comparare Pot genera un impuls sau o secvență de

impulsuriPână la 8 canale, mod de funcționare PWM

Sisteme de calcul dedicate (05) 29.11.2019 49

Page 50: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (7)

•Module SPI Comunicație serială sincronă Permit toate modurile de funcționare SPICuvinte de 8 sau 16 biți

•Module UART Comunicație serială asincronă (RS-232, RS-485) Generator integrat al ratei de biți Viteze de până la 10 Mbiți/s

Sisteme de calcul dedicate (05) 29.11.2019 50

Page 51: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (8)

•Module I2CComunicație serială sincronă

Adrese de 7 sau 10 biți

Frecvențe de 100 KHz sau 400 KHz

Funcționare multi-master: detectarea coliziunilor

•Module CAN Implementează protocoalele CAN 2.0A și 2.0B

Cadre de date standard și extinse

Lungimi ale mesajelor până la 8 octeți

Viteză programabilă până la 1 Mbit/s

Sisteme de calcul dedicate (05) 29.11.2019 51

Page 52: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Arhitectura PIC24H (9)

•Porturi de I/E Unii pini ai porturilor de I/E au funcții alternative pentru periferice Pinii porturilor de I/E au trei registre asociate Registrul de direcție TRISx: specifică dacă pinul este intrare ('1') sau ieșire ('0') Registrul latch de date LATx: memorează datele de ieșireRegistrul portului PORTx: permite citirea stării logice a pinilor de intrare

Sisteme de calcul dedicate (05) 29.11.2019 52

Page 53: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere

•Microcontrolere 8051

•Microcontrolere PIC

•Microcontrolere AVR

•Microcontrolere DSP

Sisteme de calcul dedicate (05) 29.11.2019 53

Page 54: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere AVR

Prezentare generală

Arhitectura megaAVR•Nucleul UCP

•Tipuri de memorii

•Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 54

Page 55: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (1)

•Microcontrolere RISC de 8 și 32 de biți

•Produse de firma Atmel

•Arhitectură Harvard

•Arhitectura de bază a fost proiectată la Institutul Norvegian de Tehnologie tehnologie transferată la Atmel Norvegia

•AVR Advanced Virtual RISC sau Alf & Vegard [RISC]

•AT90S8515: aceiași pini ca și 8051 Sisteme de calcul dedicate (05) 29.11.2019 55

Page 56: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (2)

•Familiile de 8 biți: 32 de registre generale Registrele sunt mapate în spațiul memoriei •Sistem pipeline cu două etaje Instrucțiuni executate în 1-2 cicluri de ceas •Unele modele conțin o interfață cu o magistrală externăSpațiu de adresare de 64 KB Conectarea unor memorii de date sau periferice •Moduri multiple pentru reducerea energiei consumate

Sisteme de calcul dedicate (05) 29.11.2019 56

Page 57: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (3)

•Microcontrolere tinyAVR (ATtiny)Memorie flash de program: 512 B .. 32 KB

Memorie SRAM de date: 32 B .. 2 KB

Memorie EEPROM: 64 B .. 512 B

Set limitat de periferice: comparator analogic, amplificator programabil, convertor A/D, interfață serială universală, PWM, senzor de temperatură

Consum redus de energie prin tehnologia picoPower

Posibilitatea alimentării de la o singură baterie Sisteme de calcul dedicate (05) 29.11.2019 57

Page 58: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (4)

•Microcontrolere megaAVR (ATmega)Memorie flash de program: 4 KB .. 256 KBMemorie SRAM de date: 512 B .. 16 KBMemorie EEPROM: 256 B .. 4 KBSet extins de instrucțiuniSet extins de periferice: există în plus contoare

de timp, interfaţă TWI (Two-Wire Interface), interfață SPI, controler USARTVariante de microcontrolere megaAVR care

conțin controlere LCD, USB, CAN, Ethernet etc.

Consum redus de energie Sisteme de calcul dedicate (05) 29.11.2019 58

Page 59: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Prezentare generală (5)

•Microcontrolere xmegaAVR (ATxmega)Memorie flash de program: 8 KB .. 384 KBMemorie SRAM de date: 1 KB .. 32 KBMemorie EEPROM: 1 KB .. 4 KB

Controler DMA (4 canale)

Convertoare A/D și D/A de 12 biți

Sistem de gestiune a evenimentelor (4/8 canale)

Modul de criptare pentru standardele AES și DES

Sub-familia A1: interfață cu o magistrală externă

Interfață USB la majoritatea sub-familiilor Sisteme de calcul dedicate (05) 29.11.2019 59

Page 60: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere AVR

Prezentare generală

Arhitectura megaAVR•Nucleul UCP

•Tipuri de memorii

•Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 60

Page 61: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Nucleul UCP (1)

Sisteme de calcul dedicate (05) 29.11.2019 61

Page 62: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Nucleul UCP (2)

•Execuție pipeline a instrucțiunilorExecuția este suprapusă cu extragerea instrucțiunii următoareSe execută o instrucțiune pe ciclu de ceas•Majoritatea instrucțiunilor sunt de 16 biți

•32 de registre generale (8 biți)

•Spațiul memoriei de program conține:Secțiunea programului încărcător (boot)Secțiunea programului de aplicație

Sisteme de calcul dedicate (05) 29.11.2019 62

Page 63: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Nucleul UCP (3)

•UALConexiune directă cu registrele generale

Instrucțiuni între două registre sau între un registru și o valoare imediată

Unele versiuni conțin un circuit de înmulțire•Registrele generaleTimp de acces de un ciclu de ceas

R0 .. R31

Fiecare registru are asignată și o adresă a memoriei de date primele 32 de locații

Sisteme de calcul dedicate (05) 29.11.2019 63

Page 64: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Nucleul UCP (4)

Registrele R26..R31 se pot utiliza ca trei registre de 16 biți pentru adresarea indirectă a memoriei de date X, Y, Z

•StivaEste implementată în memoria SRAMRegistrul SP (SPH, SPL) indică vârful stiveiStiva crește spre adrese mici SP trebuie inițializat cu o valoare de peste 0x60Registrul SP este decrementat cu 1 (PUSH) sau cu 2 (CALL, întrerupere)

Sisteme de calcul dedicate (05) 29.11.2019 64

Page 65: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere AVR

Prezentare generală

Arhitectura megaAVR•Nucleul UCP

•Tipuri de memorii

•Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 65

Page 66: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Tipuri de memorii (1)

•Memoria flash de programATmega16: 16 KB (8 K x 16 biți)

Cel puțin 10.000 de cicluri (scriere/ștergere)

•Memoria SRAM de date32 locații: registrele generale

64 locații: registrele de I/E

1024 locații: memoria SRAM internă de date

Sisteme de calcul dedicate (05) 29.11.2019 66

Page 67: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Tipuri de memorii (2)

Sisteme de calcul dedicate (05) 29.11.2019 67

Page 68: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Tipuri de memorii (3)

•Memoria EEPROM de date ATmega16: 512 B

Cel puțin 100.000 cicluri (scriere/ștergere)

Spațiu separat de date

Pentru scriere trebuie urmată o procedură specifică

Registre de acces EEPROM: registre de adresă (EEARH, EEARL); registru de date (EEDR); registru de control (EECR)

Sisteme de calcul dedicate (05) 29.11.2019 68

Page 69: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere AVR

Prezentare generală

Arhitectura megaAVR•Nucleul UCP

•Tipuri de memorii

•Porturi de I/E

Sisteme de calcul dedicate (05) 29.11.2019 69

Page 70: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Porturi de I/E (1)

•Porturi bidirecționale PORTA .. PORTD•Direcția unui pin de I/E se poate schimba fără a afecta direcția altor pini•Fiecare pin are o rezistență pull-upselectabilă•Există trei registre pentru fiecare portRegistrul de date PORTx (R/W)Registrul de direcție DDRx (R/W)Registrul pinilor de intrare PINx (R/O)

Sisteme de calcul dedicate (05) 29.11.2019 70

Page 71: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Porturi de I/E (2)

•Configurarea pinului PORTxnPentru ieșire: DDxn = '1'

Pentru intrare: DDxn = '0'

Activarea rezistenței pull-up: •Se configurează pinul ca intrare; PORTxn = '1'

Dezactivarea rezistenței pull-up: •PORTxn = '0', sau

•Se configurează pinul ca ieșire

Sisteme de calcul dedicate (05) 29.11.2019 71

Page 72: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere

•Microcontrolere 8051

•Microcontrolere PIC

•Microcontrolere AVR

•Microcontrolere DSP

Sisteme de calcul dedicate (05) 29.11.2019 72

Page 73: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere DSP (1)

•DSP – Digital Signal Processor•Procesoare optimizate pentru calcule matematice intensivePreiau sau citesc datele de intrare

Execută prelucrările asupra datelor

Transferă la ieșire sau memorează rezultatele

Conțin unități pentru operații MAC (Multiply –Accumulate) și circuite de deplasare

•Pot avea spații de adresare duale pentru date Doi operanzi pot fi accesați simultan

Sisteme de calcul dedicate (05) 29.11.2019 73

Page 74: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere DSP (2)

•Majoritatea au o arhitectură Harvard •AplicațiiPrelucrarea semnalelor audio și video

Prelucrarea imaginilor

Comunicații (rețele, telefoane)

Radio și televiziune digitală

Aparatură medicală

Navigare GPS

Sisteme de calcul dedicate (05) 29.11.2019 74

Page 75: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere DSP (3)

•Microcontrolere DSPConțin un nucleu de procesor DSP și periferice obișnuite unui microcontroler

Set de instrucțiuni mixt: instrucțiuni DSP (transferuri de date și operații aritmetice) și instrucțiuni obișnuite ale unui procesor

Se utilizează pentru aplicații care necesită calcule intensive, dar costuri reduse: telefoane, aparate foto digitale, robotică

Sisteme de calcul dedicate (05) 29.11.2019 75

Page 76: SCD - Microcontrolere - users.utcluj.rousers.utcluj.ro/~baruch/media/scd/curs/SCD-Microcontrolere.pdf · Cuprins 1.Introducere 2.Modele și limbaje pentru specificația sistemelor

Microcontrolere DSP (4)

•Exemple de microcontrolere DSPTexas Instruments: seriile TMS320C55xx, TMS320C66xx, TMS320C674x

Microchip Technology: seriile dsPIC33F, dsPIC33EP, dsPIC33EV, dsPIC33CH

Freescale Semiconductor (NXP Semiconductors): seriile 56F8xx, 56F8xxx, 56F826xx, 56F827xx, 56F84xxx

Analog Devices: seriile ADSP-21xx, Blackfin, Blackfin+, SHARC, SHARC+

Sisteme de calcul dedicate (05) 29.11.2019 76