cuprins - utm

Post on 26-Oct-2021

3 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

15.03.2015 Sisteme de calcul dedicate (05) 2

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

15.03.2015 Sisteme de calcul dedicate (05) 3

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

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

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.

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

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

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)

15.03.2015 Sisteme de calcul dedicate (05) 9

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

15.03.2015 Sisteme de calcul dedicate (05) 10

Nucleul UCP (1)

Nucleul UCP al microcontrolerului ATmega16

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

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

15.03.2015 Sisteme de calcul dedicate (05) 13

Nucleul UCP (4)

Registrele generale ale arhitecturii AVR

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)

15.03.2015 Sisteme de calcul dedicate (05) 15

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

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

15.03.2015 Sisteme de calcul dedicate (05) 17

Tipuri de memorii (2)

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)

15.03.2015 Sisteme de calcul dedicate (05) 19

Microcontrolere AVR

Prezentare generalăNucleul UCPTipuri de memoriiPorturi de I/E

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)

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

15.03.2015 Sisteme de calcul dedicate (05) 22

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

15.03.2015 Sisteme de calcul dedicate (05) 23

Microcontrolere MAXQ

Prezentare generalăArhitectura

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

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

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

15.03.2015 Sisteme de calcul dedicate (05) 27

Microcontrolere MAXQ

Prezentare generalăArhitectura

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)

15.03.2015 Sisteme de calcul dedicate (05) 29

Arhitectura (2)

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)

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)

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

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

15.03.2015 Sisteme de calcul dedicate (05) 34

Microcontrolere

Microcontrolere 8051Microcontrolere PICMicrocontrolere AVRMicrocontrolere MAXQMicrocontrolere DSP

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

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

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

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ă

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)

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

15.03.2015 Sisteme de calcul dedicate (05) 41

Arhitectura (1)

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)

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

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ă

15.03.2015 Sisteme de calcul dedicate (05) 45

Structura nucleului (2)

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)

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

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)

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

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

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

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

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

15.03.2015 Sisteme de calcul dedicate (05) 54

Arhitectura memoriei (2)

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

15.03.2015 Sisteme de calcul dedicate (05) 56

Blocuri externe nucleului (1)

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

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

top related