58
15.03.2015 Sisteme de calcul dedicate (05) 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

Cuprins - UTM

  • Upload
    others

  • View
    3

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 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

Page 2: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 2

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

Page 3: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 3

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

Page 4: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 4

Prezentare generală (1)

Microcontrolere RISC de 8 biţi Produse de firma Atmel Arhitectură HarvardArhitectura 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

Page 5: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 5

Prezentare generală (2)

Microcontrolere tinyAVR� Memorie de instrucţiuni între 1..8 KB� Set limitat de periferice

Microcontrolere megaAVR� Memorie de instrucţiuni între 4..256 KB� Set extins de instrucţiuni� Set extins de periferice

Microcontrolere megaAVR cu funcţii speciale� Controlere LCD, USB, Ethernet etc.

Page 6: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 6

Prezentare generală (3)

Microcontrolere FPSLIC� Field Programmable System Level

Integrated Circuit� Conţin un nucleu AVR şi un circuit FPGA� Codul programului este păstrat într-o

memorie SRAM şi nu o memorie flash� Pot funcţiona cu frecvenţe de până la 50

MHz

Page 7: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 7

Prezentare generală (4)

Caracteristici� Memorie flash de instrucţiuni: max. 256 KB

� Metode de programare: ISP (In-SystemProgramming), JTAG, programator hardware

� Memorie EEPROM de date: max. 4 KB� Memorie SRAM de date: max. 8 KB� Spaţiu de adresare de 64 KB pentru o

memorie externă (unele modele)� Moduri multiple pentru reducerea puterii

consumate

Page 8: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 8

Prezentare generală (5)

� Comparatoare analogice� Convertoare A/D de 10 biţi (max. 16 canale)� Contoare de timp de 8 şi 16 biţi

� Ieşire PWM (Pulse Width Modulation)

� Interfeţe seriale� TWI (Two-Wire Interface) → compatibilă I2C� SPI (Serial Peripheral Interface)� UART/USART

� Modele cu diferite controlere: LCD, USB, Ethernet, CAN (Controller Area Network)

Page 9: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 9

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

Page 10: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 10

Nucleul UCP (1)

Nucleul UCP al microcontrolerului ATmega16

Page 11: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 11

Nucleul UCP (2)

Execuţie pipeline a instrucţiunilor� Execuţia este suprapusă cu extragerea

instrucţiunii următoare� Se execută o instrucţiune pe ciclu de ceas

Majoritatea instrucţiunilor sunt de 16 biţi32 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

Page 12: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 12

Nucleul UCP (3)

UAL� Conexiune 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 generale� Timp de acces de un ciclu de ceas� Fiecare registru are asignată şi o adresă a

memoriei de date → primele 32 de locaţii

Page 13: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 13

Nucleul UCP (4)

Registrele generale ale arhitecturii AVR

Page 14: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 14

Nucleul UCP (5)

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

Stiva� Este implementată în memoria SRAM� Registrul SP (SPH, SPL) indică vârful stivei� Stiva creşte spre adrese mici → SP trebuie

iniţializat cu o valoare de peste $60� Registrul SP este decrementat cu 1 (PUSH)

sau cu 2 (CALL, întrerupere)

Page 15: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 15

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

Page 16: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 16

Tipuri de memorii (1)

Memoria de program flash� ATmega16: 16 KB (8 K x 16)� Cel puţin 10.000 de cicluri (scriere/ştergere)� Secţiunea programului încărcător şi cea a

programului de aplicaţieMemoria de date SRAM� 32 locaţii: registrele generale� 64 locaţii: registrele de I/E� 1024 locaţii: memoria SRAM de date

Page 17: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 17

Tipuri de memorii (2)

Page 18: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 18

Tipuri de memorii (3)

Memoria de date EEPROM� ATmega16: 512 octeţi� 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)

Page 19: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 19

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

Page 20: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 20

Porturi de I/E (1)

Porturi bidirecţionale → PORTA .. PORTDDirecţia unui pin de I/E se poate schimba fără a afecta direcţia altor piniFiecare pin are o rezistenţă pull-up selectabilăExistă trei registre pentru fiecare port� Registrul de date PORTx (R/W)� Registrul de direcţie DDRx (R/W)� Registrul pinilor de intrare PINx (R/O)

Page 21: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 21

Porturi de I/E (2)

Configurarea pinului PORTxn� Pentru 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: � Se configurează pinul ca intrare; PORTxn = 0� Sau se configurează pinul ca ieşire

Page 22: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 22

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

Page 23: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 23

Microcontrolere MAXQ

Prezentare generalăArhitectura

Page 24: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 24

Prezentare generală (1)

MAXQ – familie de microcontrolere RISC produse de firma Maxim (Dallas Semicond.)Arhitectură HarvardVersiuni de 8 şi 16 biţi (registre, date)Instrucţiuni de 16 biţiInstrucţiunile se execută într-un singur ciclu de ceas (excepţie: instrucţiuni de salt şi apel)� Performanţa: ~1 MIPS pe MHz

Nu se utilizează tehnica pipeline

Page 25: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 25

Prezentare generală (2)

Microcontrolerul conţine circuite analogice� Tehnici pentru reducerea zgomotelor care

pot afecta circuitele analogice Stivă hardware dedicată (tipic: 8 x 16 biţi)Periferice digitale� Numărătoare şi contoare de timp� Porturi de I/E� Ceas de timp real� Porturi seriale: RS-232, RS-485, SPI, I2C,

1-Wire, CAN

Page 26: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 26

Prezentare generală (3)

� Circuit de înmulţire (16 x 16 biţi) cu acumularea rezultatelor pe 40 de biţi

� Drivere pentru afişaje LCD Periferice analogice� Convertoare A/D de 12 şi 16 biţi� Convertoare D/A de 12 biţi� Comparatoare analogice� Senzori de temperatură� Referinţe de tensiune

Page 27: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 27

Microcontrolere MAXQ

Prezentare generalăArhitectura

Page 28: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 28

Arhitectura (1)

Arhitectură modulară şi extensibilăRegistrele sunt organizate în module funcţionale� Module/registre sistem� Module/registre periferice

Set ortogonal de instrucţiuni Decodificare simplă a instrucţiunilor� Se bazează pe transferuri între registre

Unitate de gestiune a memoriei (MMU)

Page 29: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 29

Arhitectura (2)

Page 30: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 30

Arhitectura (3)

Spaţiul registrelor� 16 module de registre: câte 32 de registre� M0..M5: module periferice� M6..M15: module sistem

Registre pointer de date → memoria de date� DP[0], DP[1] (Data Pointer) de câte 16 biţi� FP (Frame Pointer): BP (Base Pointer) de

16 biţi; OFFS (Offset) de 8 biţi → BP[OFFS]� Operaţii de post-increm./decrem. (citire) şi

pre-increm./decrem. (scriere)

Page 31: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 31

Arhitectura (4)

Registre acumulator� 8..16 registre accesibile ca A[0]..A[15]� Localizate într-un modul sistem� Un acumulator poate fi desemnat ca activ

prin registrul AP (Accumulator Pointer)� Acc → A[AP]� Operaţiile UAL utilizează în mod implicit

acumulatorul activ ca destinaţie

� Registrul APC (Accumulator-Pointer Control)

Page 32: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 32

Arhitectura (5)

Instrucţiuni� Există o singură instrucţiune în sensul

clasic: MOVE� Operanzii permit diferite operaţii, accesul la

memorie, activarea modulelor hardware

Page 33: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 33

Arhitectura (6)

� Instrucţiunile se reduc la transferuri� Operanzii sursă şi destinaţie se pot asocia

nu numai cu registrele fizice� Citirea sau scrierea unor registre va

declanşa unele operaţii � Accesul indirect la memoria de date prin

DP[0]: operandul @DP[0]� Salturi condiţionate: au ca destinaţie

implicită pointerul de instrucţiuni IP

Page 34: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 34

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

Page 35: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 35

Microcontrolere DSP

Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului

Page 36: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 36

Prezentare generală (1)

DSP – Digital Signal ProcessorProcesoare specifice aplicaţiei optimizate pentru calcule matematice intensive� Preiau sau citesc datele de intrare � Execută prelucrările asupra datelor� Transferă la ieşire sau memorează

rezultatelePot avea spaţii de adresare duale pentru date � Doi operanzi pot fi accesaţi simultan

Page 37: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 37

Prezentare generală (2)

Majoritatea au o arhitectură Harvard� Al treilea spaţiu de adresare pentru program

Aplicaţii� Prelucrarea semnalelor audio şi video� Prelucrarea imaginilor� Comunicaţii (reţele, telefoane)� Radio şi televiziune digitală� Aparatură medicală� Navigare GPS

Page 38: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 38

Prezentare generală (3)

Microcontrolere DSP� Conţ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, camere digitale, robotică

Page 39: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 39

Prezentare generală (4)

Exemple de microcontrolere DSP� Texas Instruments: seria TMS320C2000

(16 biţi şi 32 biţi)� Analog Devices: seriile ADSP-21xx, ADSP-

21xxx (16 biţi); SHARC (32 biţi)� Freescale Semiconductor: seriile DSP56000

(24 biţi) şi DSP56800 (16 biţi)

Page 40: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 40

Microcontrolere DSP

Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului

Page 41: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 41

Arhitectura (1)

Page 42: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 42

Arhitectura (2)

Nucleu UCP de 16 biţi� Instrucţiuni generale şi pe biţi� Transferuri cu memoria executate în

paralel cu operaţiile aritmeticePeriferice: contoare de timp şi de timp real, porturi serialeMemorii: RAM, flashPorturi de I/E: GPIO (General-Purpose I/O)Port pentru depanare prin interfaţa JTAG� Funcţii OnCE (On-Chip Emulation)

Page 43: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 43

Microcontrolere DSP

Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului

Page 44: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 44

Structura nucleului (1)

Circuit de înmulţire şi acumulare de 16x16 biţiDouă acumulatoare de câte 36 biţiCircuit de deplasare de 16 biţiPatru magistrale interne de date (16 biţi)Trei magistrale interne de adrese (16 biţi)Stivă softwareImplementarea prin hardware a buclelor Două moduri de funcţionare cu putere consumată redusă

Page 45: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 45

Structura nucleului (2)

Page 46: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 46

Structura nucleului (3)

UAL pentru date� Trei registre de intrare (16 biţi): X0, Y0, Y1� Două registre acumulator (36 biţi): A, B

� Registre de 16 biţi: A0, B0� Registre de 16 biţi: A1, B1� Registre de extensie de 4 biţi: A2, B2

� Registru de deplasare pentru acumulator� Circuit de deplasare de 16 biţi� Unitate MAC (Multiply-Accumulate)

Page 47: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 47

Structura nucleului (4)

Unitatea de generare a adreselor� AGU – Address Generation Unit� Calculează adresele efective pentru

adresarea operanzilor în memorie� Funcţionează în paralel cu alte resurse� Conţine două UAL → două adrese de 16 biţi� Patru registre de adresă: R0..R3� Registru indicator de stivă: SP� Registru de modificare: M01

Page 48: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 48

Structura nucleului (5)

� Registru offset: N� Unitate aritmetică modulo� Unitate de incrementare/decrementare

Controlerul de program� Încarcă şi decodifică instrucţiunile� Controlează execuţia buclelor hardware� Gestionează întreruperile� Contor de program: PC� Stivă hardware: HWS (2 cuvinte x 16 biţi)

Page 49: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 49

Structura nucleului (6)

� Registru de adresă pentru bucle DO: LA� Registru contor pentru bucle DO: LC� Registru de stare: SR� Registru de mod: OMR

Magistrale de adrese� Două magistrale de 16 biţi pentru memoria

internă de date X: XAB1, XAB2� O magistrală de 16 biţi pentru memoria de

program: PAB

Page 50: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 50

Structura nucleului (7)

Magistrale de date� Magistrala de date globală pentru nucleu:

CGDB� Magistrala de date pentru program: PDB� Magistrala de date pentru periferice: PGDB

(sau IP-BUS)� Magistrala unidirecţională pentru memoria

X de date: XDB2� Pentru un acces la memorie: CGDB

Page 51: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 51

Structura nucleului (8)

� Pentru două accese simultane de citire: CGDB şi XDB2

� Simultan, se poate citi o instrucţiune prin magistrala PDB

Unitatea pentru magistrale şi operaţii pe biţi� Permite transferuri între magistralele

interne → poate conecta două magistrale� Realizează operaţiile pe biţi pentru registre,

cuvinte de date, registre periferice

Page 52: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 52

Microcontrolere DSP

Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului

Page 53: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 53

Arhitectura memoriei (1)

Arhitectură Harvard dualăFiecare spaţiu de adrese: max. 64 K cuvinteAccesul simultan la memoria de program şi la memoria de dateCale de date la a doua memorie de date (R/O)� Este posibilă iniţierea a două accese

simultane de citireLocaţiile 0..7Fh din memoria de program: vectori de resetare şi de întrerupere

Page 54: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 54

Arhitectura memoriei (2)

Page 55: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 55

Microcontrolere DSP

Prezentare generalăFamilia de microcontrolere DSP56800� Arhitectura� Structura nucleului� Arhitectura memoriei� Blocuri externe nucleului

Page 56: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 56

Blocuri externe nucleului (1)

Page 57: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 57

Blocuri externe nucleului (2)

Memorii externe de date� Spaţiu de 64 KB� Memorii RAM şi/sau flash� Adresele sunt transmise pe magistralele

XAB1 şi XAB2� Transferurile de date au loc pe magistralele

CGDB şi XDB2� O parte a spaţiului de adrese este

rezervată pentru registrele periferice

Page 58: Cuprins - UTM

15.03.2015 Sisteme de calcul dedicate (05) 58

Blocuri externe nucleului (3)

Memorii de program� Spaţiu de 64 KB� Memorii RAM şi/sau flash� Adresele sunt transmise pe magistrala PAB� Datele sunt transferate pe magistrala PDB

Puntea IP-BUS� Necesară pentru perifericele care utilizează

magistrala Freescale IP-BUSPLL (Phase Lock Loop)� Permite utilizarea unui ceas extern